diff --git a/Package.swift b/Package.swift index b360227ed9..3115cb8824 100644 --- a/Package.swift +++ b/Package.swift @@ -34,7 +34,6 @@ let package = Package( .library(name: "SotoARCZonalShift", targets: ["SotoARCZonalShift"]), .library(name: "SotoAccessAnalyzer", targets: ["SotoAccessAnalyzer"]), .library(name: "SotoAccount", targets: ["SotoAccount"]), - .library(name: "SotoAlexaForBusiness", targets: ["SotoAlexaForBusiness"]), .library(name: "SotoAmp", targets: ["SotoAmp"]), .library(name: "SotoAmplify", targets: ["SotoAmplify"]), .library(name: "SotoAmplifyBackend", targets: ["SotoAmplifyBackend"]), @@ -121,6 +120,7 @@ let package = Package( .library(name: "SotoConnectCases", targets: ["SotoConnectCases"]), .library(name: "SotoConnectContactLens", targets: ["SotoConnectContactLens"]), .library(name: "SotoConnectParticipant", targets: ["SotoConnectParticipant"]), + .library(name: "SotoControlCatalog", targets: ["SotoControlCatalog"]), .library(name: "SotoControlTower", targets: ["SotoControlTower"]), .library(name: "SotoCostAndUsageReportService", targets: ["SotoCostAndUsageReportService"]), .library(name: "SotoCostExplorer", targets: ["SotoCostExplorer"]), @@ -332,6 +332,7 @@ let package = Package( .library(name: "SotoRolesAnywhere", targets: ["SotoRolesAnywhere"]), .library(name: "SotoRoute53", targets: ["SotoRoute53"]), .library(name: "SotoRoute53Domains", targets: ["SotoRoute53Domains"]), + .library(name: "SotoRoute53Profiles", targets: ["SotoRoute53Profiles"]), .library(name: "SotoRoute53RecoveryCluster", targets: ["SotoRoute53RecoveryCluster"]), .library(name: "SotoRoute53RecoveryControlConfig", targets: ["SotoRoute53RecoveryControlConfig"]), .library(name: "SotoRoute53RecoveryReadiness", targets: ["SotoRoute53RecoveryReadiness"]), @@ -419,7 +420,6 @@ let package = Package( .target(name: "SotoARCZonalShift", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/ARCZonalShift", swiftSettings: swiftSettings), .target(name: "SotoAccessAnalyzer", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/AccessAnalyzer", swiftSettings: swiftSettings), .target(name: "SotoAccount", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/Account", swiftSettings: swiftSettings), - .target(name: "SotoAlexaForBusiness", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/AlexaForBusiness", swiftSettings: swiftSettings), .target(name: "SotoAmp", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/Amp", swiftSettings: swiftSettings), .target(name: "SotoAmplify", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/Amplify", swiftSettings: swiftSettings), .target(name: "SotoAmplifyBackend", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/AmplifyBackend", swiftSettings: swiftSettings), @@ -506,6 +506,7 @@ let package = Package( .target(name: "SotoConnectCases", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/ConnectCases", swiftSettings: swiftSettings), .target(name: "SotoConnectContactLens", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/ConnectContactLens", swiftSettings: swiftSettings), .target(name: "SotoConnectParticipant", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/ConnectParticipant", swiftSettings: swiftSettings), + .target(name: "SotoControlCatalog", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/ControlCatalog", swiftSettings: swiftSettings), .target(name: "SotoControlTower", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/ControlTower", swiftSettings: swiftSettings), .target(name: "SotoCostAndUsageReportService", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/CostAndUsageReportService", swiftSettings: swiftSettings), .target(name: "SotoCostExplorer", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/CostExplorer", swiftSettings: swiftSettings), @@ -717,6 +718,7 @@ let package = Package( .target(name: "SotoRolesAnywhere", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/RolesAnywhere", swiftSettings: swiftSettings), .target(name: "SotoRoute53", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/Route53", swiftSettings: swiftSettings), .target(name: "SotoRoute53Domains", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/Route53Domains", swiftSettings: swiftSettings), + .target(name: "SotoRoute53Profiles", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/Route53Profiles", swiftSettings: swiftSettings), .target(name: "SotoRoute53RecoveryCluster", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/Route53RecoveryCluster", swiftSettings: swiftSettings), .target(name: "SotoRoute53RecoveryControlConfig", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/Route53RecoveryControlConfig", swiftSettings: swiftSettings), .target(name: "SotoRoute53RecoveryReadiness", dependencies: [.product(name: "SotoCore", package: "soto-core")], path: "./Sources/Soto/Services/Route53RecoveryReadiness", swiftSettings: swiftSettings), diff --git a/Sources/Soto/Services/AlexaForBusiness/AlexaForBusiness_api.swift b/Sources/Soto/Services/AlexaForBusiness/AlexaForBusiness_api.swift deleted file mode 100644 index 652dd74525..0000000000 --- a/Sources/Soto/Services/AlexaForBusiness/AlexaForBusiness_api.swift +++ /dev/null @@ -1,1938 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// This source file is part of the Soto for AWS open source project -// -// Copyright (c) 2017-2023 the Soto project authors -// Licensed under Apache License v2.0 -// -// See LICENSE.txt for license information -// See CONTRIBUTORS.txt for the list of Soto project authors -// -// SPDX-License-Identifier: Apache-2.0 -// -//===----------------------------------------------------------------------===// - -// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/soto-project/soto-codegenerator. -// DO NOT EDIT. - -@_exported import SotoCore - -/// Service object for interacting with AWS AlexaForBusiness service. -/// -/// Alexa for Business has been retired and is no longer supported. -public struct AlexaForBusiness: AWSService { - // MARK: Member variables - - /// Client used for communication with AWS - public let client: AWSClient - /// Service configuration - public let config: AWSServiceConfig - - // MARK: Initialization - - /// Initialize the AlexaForBusiness client - /// - parameters: - /// - client: AWSClient used to process requests - /// - region: Region of server you want to communicate with. This will override the partition parameter. - /// - partition: AWS partition where service resides, standard (.aws), china (.awscn), government (.awsusgov). - /// - endpoint: Custom endpoint URL to use instead of standard AWS servers - /// - middleware: Middleware chain used to edit requests before they are sent and responses before they are decoded - /// - timeout: Timeout value for HTTP requests - /// - byteBufferAllocator: Allocator for ByteBuffers - /// - options: Service options - public init( - client: AWSClient, - region: SotoCore.Region? = nil, - partition: AWSPartition = .aws, - endpoint: String? = nil, - middleware: AWSMiddlewareProtocol? = nil, - timeout: TimeAmount? = nil, - byteBufferAllocator: ByteBufferAllocator = ByteBufferAllocator(), - options: AWSServiceConfig.Options = [] - ) { - self.client = client - self.config = AWSServiceConfig( - region: region, - partition: region?.partition ?? partition, - amzTarget: "AlexaForBusiness", - serviceName: "AlexaForBusiness", - serviceIdentifier: "a4b", - serviceProtocol: .json(version: "1.1"), - apiVersion: "2017-11-09", - endpoint: endpoint, - errorType: AlexaForBusinessErrorType.self, - middleware: middleware, - timeout: timeout, - byteBufferAllocator: byteBufferAllocator, - options: options - ) - } - - - - - - // MARK: API Calls - - /// Associates a skill with the organization under the customer's AWS account. If a skill is private, the user implicitly accepts access to this skill during enablement. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func approveSkill(_ input: ApproveSkillRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ApproveSkillResponse { - return try await self.client.execute( - operation: "ApproveSkill", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Associates a contact with a given address book. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func associateContactWithAddressBook(_ input: AssociateContactWithAddressBookRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> AssociateContactWithAddressBookResponse { - return try await self.client.execute( - operation: "AssociateContactWithAddressBook", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Associates a device with the specified network profile. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func associateDeviceWithNetworkProfile(_ input: AssociateDeviceWithNetworkProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> AssociateDeviceWithNetworkProfileResponse { - return try await self.client.execute( - operation: "AssociateDeviceWithNetworkProfile", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Associates a device with 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 else a manual sync is required. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func associateDeviceWithRoom(_ input: AssociateDeviceWithRoomRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> AssociateDeviceWithRoomResponse { - return try await self.client.execute( - operation: "AssociateDeviceWithRoom", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Associates a skill group with a given room. This enables all skills in the associated skill group on all devices in the room. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func associateSkillGroupWithRoom(_ input: AssociateSkillGroupWithRoomRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> AssociateSkillGroupWithRoomResponse { - return try await self.client.execute( - operation: "AssociateSkillGroupWithRoom", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Associates a skill with a skill group. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func associateSkillWithSkillGroup(_ input: AssociateSkillWithSkillGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> AssociateSkillWithSkillGroupResponse { - return try await self.client.execute( - operation: "AssociateSkillWithSkillGroup", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Makes a private skill available for enrolled users to enable on their devices. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func associateSkillWithUsers(_ input: AssociateSkillWithUsersRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> AssociateSkillWithUsersResponse { - return try await self.client.execute( - operation: "AssociateSkillWithUsers", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Creates an address book with the specified details. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func createAddressBook(_ input: CreateAddressBookRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateAddressBookResponse { - return try await self.client.execute( - operation: "CreateAddressBook", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Creates a recurring schedule for usage reports to deliver to the specified S3 location with a specified daily or weekly interval. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func createBusinessReportSchedule(_ input: CreateBusinessReportScheduleRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateBusinessReportScheduleResponse { - return try await self.client.execute( - operation: "CreateBusinessReportSchedule", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Adds a new conference provider under the user's AWS account. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func createConferenceProvider(_ input: CreateConferenceProviderRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateConferenceProviderResponse { - return try await self.client.execute( - operation: "CreateConferenceProvider", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Creates a contact with the specified details. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func createContact(_ input: CreateContactRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateContactResponse { - return try await self.client.execute( - operation: "CreateContact", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Creates a gateway group with the specified details. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func createGatewayGroup(_ input: CreateGatewayGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateGatewayGroupResponse { - return try await self.client.execute( - operation: "CreateGatewayGroup", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Creates a network profile with the specified details. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func createNetworkProfile(_ input: CreateNetworkProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateNetworkProfileResponse { - return try await self.client.execute( - operation: "CreateNetworkProfile", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Creates a new room profile with the specified details. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func createProfile(_ input: CreateProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateProfileResponse { - return try await self.client.execute( - operation: "CreateProfile", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Creates a room with the specified details. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func createRoom(_ input: CreateRoomRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateRoomResponse { - return try await self.client.execute( - operation: "CreateRoom", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Creates a skill group with a specified name and description. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func createSkillGroup(_ input: CreateSkillGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateSkillGroupResponse { - return try await self.client.execute( - operation: "CreateSkillGroup", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Creates a user. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func createUser(_ input: CreateUserRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateUserResponse { - return try await self.client.execute( - operation: "CreateUser", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Deletes an address book by the address book ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func deleteAddressBook(_ input: DeleteAddressBookRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteAddressBookResponse { - return try await self.client.execute( - operation: "DeleteAddressBook", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Deletes the recurring report delivery schedule with the specified schedule ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func deleteBusinessReportSchedule(_ input: DeleteBusinessReportScheduleRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteBusinessReportScheduleResponse { - return try await self.client.execute( - operation: "DeleteBusinessReportSchedule", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Deletes a conference provider. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func deleteConferenceProvider(_ input: DeleteConferenceProviderRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteConferenceProviderResponse { - return try await self.client.execute( - operation: "DeleteConferenceProvider", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Deletes a contact by the contact ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func deleteContact(_ input: DeleteContactRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteContactResponse { - return try await self.client.execute( - operation: "DeleteContact", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Removes a device from Alexa For Business. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func deleteDevice(_ input: DeleteDeviceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteDeviceResponse { - return try await self.client.execute( - operation: "DeleteDevice", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// When this action is called for a specified shared device, it allows authorized users to delete the device's entire previous history of voice input data and associated response data. This action can be called once every 24 hours for a specific shared device. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func deleteDeviceUsageData(_ input: DeleteDeviceUsageDataRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteDeviceUsageDataResponse { - return try await self.client.execute( - operation: "DeleteDeviceUsageData", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Deletes a gateway group. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func deleteGatewayGroup(_ input: DeleteGatewayGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteGatewayGroupResponse { - return try await self.client.execute( - operation: "DeleteGatewayGroup", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Deletes a network profile by the network profile ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func deleteNetworkProfile(_ input: DeleteNetworkProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteNetworkProfileResponse { - return try await self.client.execute( - operation: "DeleteNetworkProfile", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Deletes a room profile by the profile ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func deleteProfile(_ input: DeleteProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteProfileResponse { - return try await self.client.execute( - operation: "DeleteProfile", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Deletes a room by the room ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func deleteRoom(_ input: DeleteRoomRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteRoomResponse { - return try await self.client.execute( - operation: "DeleteRoom", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Deletes room skill parameter details by room, skill, and parameter key ID. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func deleteRoomSkillParameter(_ input: DeleteRoomSkillParameterRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteRoomSkillParameterResponse { - return try await self.client.execute( - operation: "DeleteRoomSkillParameter", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Unlinks a third-party account from a skill. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func deleteSkillAuthorization(_ input: DeleteSkillAuthorizationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteSkillAuthorizationResponse { - return try await self.client.execute( - operation: "DeleteSkillAuthorization", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Deletes a skill group by skill group ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func deleteSkillGroup(_ input: DeleteSkillGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteSkillGroupResponse { - return try await self.client.execute( - operation: "DeleteSkillGroup", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Deletes a specified user by user ARN and enrollment ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func deleteUser(_ input: DeleteUserRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteUserResponse { - return try await self.client.execute( - operation: "DeleteUser", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Disassociates a contact from a given address book. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func disassociateContactFromAddressBook(_ input: DisassociateContactFromAddressBookRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DisassociateContactFromAddressBookResponse { - return try await self.client.execute( - operation: "DisassociateContactFromAddressBook", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// 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. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func disassociateDeviceFromRoom(_ input: DisassociateDeviceFromRoomRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DisassociateDeviceFromRoomResponse { - return try await self.client.execute( - operation: "DisassociateDeviceFromRoom", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Disassociates a skill from a skill group. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func disassociateSkillFromSkillGroup(_ input: DisassociateSkillFromSkillGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DisassociateSkillFromSkillGroupResponse { - return try await self.client.execute( - operation: "DisassociateSkillFromSkillGroup", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Makes a private skill unavailable for enrolled users and prevents them from enabling it on their devices. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func disassociateSkillFromUsers(_ input: DisassociateSkillFromUsersRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DisassociateSkillFromUsersResponse { - return try await self.client.execute( - operation: "DisassociateSkillFromUsers", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Disassociates a skill group from a specified room. This disables all skills in the skill group on all devices in the room. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func disassociateSkillGroupFromRoom(_ input: DisassociateSkillGroupFromRoomRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DisassociateSkillGroupFromRoomResponse { - return try await self.client.execute( - operation: "DisassociateSkillGroupFromRoom", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Forgets smart home appliances associated to a room. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func forgetSmartHomeAppliances(_ input: ForgetSmartHomeAppliancesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ForgetSmartHomeAppliancesResponse { - return try await self.client.execute( - operation: "ForgetSmartHomeAppliances", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Gets address the book details by the address book ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func getAddressBook(_ input: GetAddressBookRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetAddressBookResponse { - return try await self.client.execute( - operation: "GetAddressBook", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Retrieves the existing conference preferences. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func getConferencePreference(_ input: GetConferencePreferenceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetConferencePreferenceResponse { - return try await self.client.execute( - operation: "GetConferencePreference", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Gets details about a specific conference provider. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func getConferenceProvider(_ input: GetConferenceProviderRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetConferenceProviderResponse { - return try await self.client.execute( - operation: "GetConferenceProvider", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Gets the contact details by the contact ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func getContact(_ input: GetContactRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetContactResponse { - return try await self.client.execute( - operation: "GetContact", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Gets the details of a device by device ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func getDevice(_ input: GetDeviceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetDeviceResponse { - return try await self.client.execute( - operation: "GetDevice", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Retrieves the details of a gateway. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func getGateway(_ input: GetGatewayRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetGatewayResponse { - return try await self.client.execute( - operation: "GetGateway", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Retrieves the details of a gateway group. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func getGatewayGroup(_ input: GetGatewayGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetGatewayGroupResponse { - return try await self.client.execute( - operation: "GetGatewayGroup", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Retrieves the configured values for the user enrollment invitation email template. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func getInvitationConfiguration(_ input: GetInvitationConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetInvitationConfigurationResponse { - return try await self.client.execute( - operation: "GetInvitationConfiguration", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Gets the network profile details by the network profile ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func getNetworkProfile(_ input: GetNetworkProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetNetworkProfileResponse { - return try await self.client.execute( - operation: "GetNetworkProfile", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Gets the details of a room profile by profile ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func getProfile(_ input: GetProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetProfileResponse { - return try await self.client.execute( - operation: "GetProfile", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Gets room details by room ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func getRoom(_ input: GetRoomRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetRoomResponse { - return try await self.client.execute( - operation: "GetRoom", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Gets room skill parameter details by room, skill, and parameter key ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func getRoomSkillParameter(_ input: GetRoomSkillParameterRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetRoomSkillParameterResponse { - return try await self.client.execute( - operation: "GetRoomSkillParameter", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Gets skill group details by skill group ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func getSkillGroup(_ input: GetSkillGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetSkillGroupResponse { - return try await self.client.execute( - operation: "GetSkillGroup", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Lists the details of the schedules that a user configured. A download URL of the report associated with each schedule is returned every time this action is called. A new download URL is returned each time, and is valid for 24 hours. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func listBusinessReportSchedules(_ input: ListBusinessReportSchedulesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListBusinessReportSchedulesResponse { - return try await self.client.execute( - operation: "ListBusinessReportSchedules", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Lists conference providers under a specific AWS account. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func listConferenceProviders(_ input: ListConferenceProvidersRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListConferenceProvidersResponse { - return try await self.client.execute( - operation: "ListConferenceProviders", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Lists the device event history, including device connection status, for up to 30 days. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func listDeviceEvents(_ input: ListDeviceEventsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListDeviceEventsResponse { - return try await self.client.execute( - operation: "ListDeviceEvents", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Retrieves a list of gateway group summaries. Use GetGatewayGroup to retrieve details of a specific gateway group. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func listGatewayGroups(_ input: ListGatewayGroupsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListGatewayGroupsResponse { - return try await self.client.execute( - operation: "ListGatewayGroups", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Retrieves a list of gateway summaries. Use GetGateway to retrieve details of a specific gateway. An optional gateway group ARN can be provided to only retrieve gateway summaries of gateways that are associated with that gateway group ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func listGateways(_ input: ListGatewaysRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListGatewaysResponse { - return try await self.client.execute( - operation: "ListGateways", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Lists all enabled skills in a specific skill group. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func listSkills(_ input: ListSkillsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListSkillsResponse { - return try await self.client.execute( - operation: "ListSkills", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Lists all categories in the Alexa skill store. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func listSkillsStoreCategories(_ input: ListSkillsStoreCategoriesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListSkillsStoreCategoriesResponse { - return try await self.client.execute( - operation: "ListSkillsStoreCategories", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Lists all skills in the Alexa skill store by category. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func listSkillsStoreSkillsByCategory(_ input: ListSkillsStoreSkillsByCategoryRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListSkillsStoreSkillsByCategoryResponse { - return try await self.client.execute( - operation: "ListSkillsStoreSkillsByCategory", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Lists all of the smart home appliances associated with a room. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func listSmartHomeAppliances(_ input: ListSmartHomeAppliancesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListSmartHomeAppliancesResponse { - return try await self.client.execute( - operation: "ListSmartHomeAppliances", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Lists all tags for the specified resource. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func listTags(_ input: ListTagsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListTagsResponse { - return try await self.client.execute( - operation: "ListTags", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Sets the conference preferences on a specific conference provider at the account level. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func putConferencePreference(_ input: PutConferencePreferenceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> PutConferencePreferenceResponse { - return try await self.client.execute( - operation: "PutConferencePreference", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Configures the email template for the user enrollment invitation with the specified attributes. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func putInvitationConfiguration(_ input: PutInvitationConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> PutInvitationConfigurationResponse { - return try await self.client.execute( - operation: "PutInvitationConfiguration", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Updates room skill parameter details by room, skill, and parameter key ID. Not all skills have a room skill parameter. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func putRoomSkillParameter(_ input: PutRoomSkillParameterRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> PutRoomSkillParameterResponse { - return try await self.client.execute( - operation: "PutRoomSkillParameter", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Links a user's account to a third-party skill provider. If this API operation is called by an assumed IAM role, the skill being linked must be a private skill. Also, the skill must be owned by the AWS account that assumed the IAM role. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func putSkillAuthorization(_ input: PutSkillAuthorizationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> PutSkillAuthorizationResponse { - return try await self.client.execute( - operation: "PutSkillAuthorization", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Registers an Alexa-enabled device built by an Original Equipment Manufacturer (OEM) using Alexa Voice Service (AVS). - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func registerAVSDevice(_ input: RegisterAVSDeviceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> RegisterAVSDeviceResponse { - return try await self.client.execute( - operation: "RegisterAVSDevice", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Disassociates a skill from the organization under a user's AWS account. If the skill is a private skill, it moves to an AcceptStatus of PENDING. Any private or public skill that is rejected can be added later by calling the ApproveSkill API. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func rejectSkill(_ input: RejectSkillRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> RejectSkillResponse { - return try await self.client.execute( - operation: "RejectSkill", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Determines the details for the room from which a skill request was invoked. This operation is used by skill developers. To query ResolveRoom from an Alexa skill, the skill ID needs to be authorized. When the skill is using an AWS Lambda function, the skill is automatically authorized when you publish your skill as a private skill to your AWS account. Skills that are hosted using a custom web service must be manually authorized. To get your skill authorized, contact AWS Support with your AWS account ID that queries the ResolveRoom API and skill ID. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func resolveRoom(_ input: ResolveRoomRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ResolveRoomResponse { - return try await self.client.execute( - operation: "ResolveRoom", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Revokes an invitation and invalidates the enrollment URL. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func revokeInvitation(_ input: RevokeInvitationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> RevokeInvitationResponse { - return try await self.client.execute( - operation: "RevokeInvitation", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Searches address books and lists the ones that meet a set of filter and sort criteria. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func searchAddressBooks(_ input: SearchAddressBooksRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SearchAddressBooksResponse { - return try await self.client.execute( - operation: "SearchAddressBooks", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Searches contacts and lists the ones that meet a set of filter and sort criteria. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func searchContacts(_ input: SearchContactsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SearchContactsResponse { - return try await self.client.execute( - operation: "SearchContacts", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Searches devices and lists the ones that meet a set of filter criteria. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func searchDevices(_ input: SearchDevicesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SearchDevicesResponse { - return try await self.client.execute( - operation: "SearchDevices", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Searches network profiles and lists the ones that meet a set of filter and sort criteria. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func searchNetworkProfiles(_ input: SearchNetworkProfilesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SearchNetworkProfilesResponse { - return try await self.client.execute( - operation: "SearchNetworkProfiles", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Searches room profiles and lists the ones that meet a set of filter criteria. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func searchProfiles(_ input: SearchProfilesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SearchProfilesResponse { - return try await self.client.execute( - operation: "SearchProfiles", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Searches rooms and lists the ones that meet a set of filter and sort criteria. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func searchRooms(_ input: SearchRoomsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SearchRoomsResponse { - return try await self.client.execute( - operation: "SearchRooms", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Searches skill groups and lists the ones that meet a set of filter and sort criteria. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func searchSkillGroups(_ input: SearchSkillGroupsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SearchSkillGroupsResponse { - return try await self.client.execute( - operation: "SearchSkillGroups", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Searches users and lists the ones that meet a set of filter and sort criteria. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func searchUsers(_ input: SearchUsersRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SearchUsersResponse { - return try await self.client.execute( - operation: "SearchUsers", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Triggers an asynchronous flow to send text, SSML, or audio announcements to rooms that are identified by a search or filter. - @Sendable - public func sendAnnouncement(_ input: SendAnnouncementRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SendAnnouncementResponse { - return try await self.client.execute( - operation: "SendAnnouncement", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Sends an enrollment invitation email with a URL to a user. The URL is valid for 30 days or until you call this operation again, whichever comes first. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func sendInvitation(_ input: SendInvitationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SendInvitationResponse { - return try await self.client.execute( - operation: "SendInvitation", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Resets a device and its account to the known default settings. This clears all information and settings set by previous users in the following ways: Bluetooth - This unpairs all bluetooth devices paired with your echo device. Volume - This resets the echo device's volume to the default value. Notifications - This clears all notifications from your echo device. Lists - This clears all to-do items from your echo device. Settings - This internally syncs the room's profile (if the device is assigned to a room), contacts, address books, delegation access for account linking, and communications (if enabled on the room profile). - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func startDeviceSync(_ input: StartDeviceSyncRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartDeviceSyncResponse { - return try await self.client.execute( - operation: "StartDeviceSync", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Initiates the discovery of any smart home appliances associated with the room. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func startSmartHomeApplianceDiscovery(_ input: StartSmartHomeApplianceDiscoveryRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartSmartHomeApplianceDiscoveryResponse { - return try await self.client.execute( - operation: "StartSmartHomeApplianceDiscovery", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Adds metadata tags to a specified resource. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func tagResource(_ input: TagResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> TagResourceResponse { - return try await self.client.execute( - operation: "TagResource", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Removes metadata tags from a specified resource. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func untagResource(_ input: UntagResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UntagResourceResponse { - return try await self.client.execute( - operation: "UntagResource", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Updates address book details by the address book ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func updateAddressBook(_ input: UpdateAddressBookRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateAddressBookResponse { - return try await self.client.execute( - operation: "UpdateAddressBook", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Updates the configuration of the report delivery schedule with the specified schedule ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func updateBusinessReportSchedule(_ input: UpdateBusinessReportScheduleRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateBusinessReportScheduleResponse { - return try await self.client.execute( - operation: "UpdateBusinessReportSchedule", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Updates an existing conference provider's settings. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func updateConferenceProvider(_ input: UpdateConferenceProviderRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateConferenceProviderResponse { - return try await self.client.execute( - operation: "UpdateConferenceProvider", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Updates the contact details by the contact ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func updateContact(_ input: UpdateContactRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateContactResponse { - return try await self.client.execute( - operation: "UpdateContact", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Updates the device name by device ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func updateDevice(_ input: UpdateDeviceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateDeviceResponse { - return try await self.client.execute( - operation: "UpdateDevice", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Updates the details of a gateway. If any optional field is not provided, the existing corresponding value is left unmodified. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func updateGateway(_ input: UpdateGatewayRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateGatewayResponse { - return try await self.client.execute( - operation: "UpdateGateway", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Updates the details of a gateway group. If any optional field is not provided, the existing corresponding value is left unmodified. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func updateGatewayGroup(_ input: UpdateGatewayGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateGatewayGroupResponse { - return try await self.client.execute( - operation: "UpdateGatewayGroup", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Updates a network profile by the network profile ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func updateNetworkProfile(_ input: UpdateNetworkProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateNetworkProfileResponse { - return try await self.client.execute( - operation: "UpdateNetworkProfile", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Updates an existing room profile by room profile ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func updateProfile(_ input: UpdateProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateProfileResponse { - return try await self.client.execute( - operation: "UpdateProfile", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Updates room details by room ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func updateRoom(_ input: UpdateRoomRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateRoomResponse { - return try await self.client.execute( - operation: "UpdateRoom", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } - - /// Updates skill group details by skill group ARN. - @available(*, deprecated, message: "Alexa For Business is no longer supported") - @Sendable - public func updateSkillGroup(_ input: UpdateSkillGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateSkillGroupResponse { - return try await self.client.execute( - operation: "UpdateSkillGroup", - path: "/", - httpMethod: .POST, - serviceConfig: self.config, - input: input, - logger: logger - ) - } -} - -extension AlexaForBusiness { - /// Initializer required by `AWSService.with(middlewares:timeout:byteBufferAllocator:options)`. You are not able to use this initializer directly as there are not public - /// initializers for `AWSServiceConfig.Patch`. Please use `AWSService.with(middlewares:timeout:byteBufferAllocator:options)` instead. - public init(from: AlexaForBusiness, patch: AWSServiceConfig.Patch) { - self.client = from.client - self.config = from.config.with(patch: patch) - } -} - -// MARK: Paginators - -@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) -extension AlexaForBusiness { - /// Lists the details of the schedules that a user configured. A download URL of the report associated with each schedule is returned every time this action is called. A new download URL is returned each time, and is valid for 24 hours. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func listBusinessReportSchedulesPaginator( - _ input: ListBusinessReportSchedulesRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.listBusinessReportSchedules, - inputKey: \ListBusinessReportSchedulesRequest.nextToken, - outputKey: \ListBusinessReportSchedulesResponse.nextToken, - logger: logger - ) - } - - /// Lists conference providers under a specific AWS account. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func listConferenceProvidersPaginator( - _ input: ListConferenceProvidersRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.listConferenceProviders, - inputKey: \ListConferenceProvidersRequest.nextToken, - outputKey: \ListConferenceProvidersResponse.nextToken, - logger: logger - ) - } - - /// Lists the device event history, including device connection status, for up to 30 days. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func listDeviceEventsPaginator( - _ input: ListDeviceEventsRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.listDeviceEvents, - inputKey: \ListDeviceEventsRequest.nextToken, - outputKey: \ListDeviceEventsResponse.nextToken, - logger: logger - ) - } - - /// Retrieves a list of gateway group summaries. Use GetGatewayGroup to retrieve details of a specific gateway group. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func listGatewayGroupsPaginator( - _ input: ListGatewayGroupsRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.listGatewayGroups, - inputKey: \ListGatewayGroupsRequest.nextToken, - outputKey: \ListGatewayGroupsResponse.nextToken, - logger: logger - ) - } - - /// Retrieves a list of gateway summaries. Use GetGateway to retrieve details of a specific gateway. An optional gateway group ARN can be provided to only retrieve gateway summaries of gateways that are associated with that gateway group ARN. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func listGatewaysPaginator( - _ input: ListGatewaysRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.listGateways, - inputKey: \ListGatewaysRequest.nextToken, - outputKey: \ListGatewaysResponse.nextToken, - logger: logger - ) - } - - /// Lists all enabled skills in a specific skill group. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func listSkillsPaginator( - _ input: ListSkillsRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.listSkills, - inputKey: \ListSkillsRequest.nextToken, - outputKey: \ListSkillsResponse.nextToken, - logger: logger - ) - } - - /// Lists all categories in the Alexa skill store. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func listSkillsStoreCategoriesPaginator( - _ input: ListSkillsStoreCategoriesRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.listSkillsStoreCategories, - inputKey: \ListSkillsStoreCategoriesRequest.nextToken, - outputKey: \ListSkillsStoreCategoriesResponse.nextToken, - logger: logger - ) - } - - /// Lists all skills in the Alexa skill store by category. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func listSkillsStoreSkillsByCategoryPaginator( - _ input: ListSkillsStoreSkillsByCategoryRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.listSkillsStoreSkillsByCategory, - inputKey: \ListSkillsStoreSkillsByCategoryRequest.nextToken, - outputKey: \ListSkillsStoreSkillsByCategoryResponse.nextToken, - logger: logger - ) - } - - /// Lists all of the smart home appliances associated with a room. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func listSmartHomeAppliancesPaginator( - _ input: ListSmartHomeAppliancesRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.listSmartHomeAppliances, - inputKey: \ListSmartHomeAppliancesRequest.nextToken, - outputKey: \ListSmartHomeAppliancesResponse.nextToken, - logger: logger - ) - } - - /// Lists all tags for the specified resource. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func listTagsPaginator( - _ input: ListTagsRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.listTags, - inputKey: \ListTagsRequest.nextToken, - outputKey: \ListTagsResponse.nextToken, - logger: logger - ) - } - - /// Searches address books and lists the ones that meet a set of filter and sort criteria. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func searchAddressBooksPaginator( - _ input: SearchAddressBooksRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.searchAddressBooks, - inputKey: \SearchAddressBooksRequest.nextToken, - outputKey: \SearchAddressBooksResponse.nextToken, - logger: logger - ) - } - - /// Searches contacts and lists the ones that meet a set of filter and sort criteria. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func searchContactsPaginator( - _ input: SearchContactsRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.searchContacts, - inputKey: \SearchContactsRequest.nextToken, - outputKey: \SearchContactsResponse.nextToken, - logger: logger - ) - } - - /// Searches devices and lists the ones that meet a set of filter criteria. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func searchDevicesPaginator( - _ input: SearchDevicesRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.searchDevices, - inputKey: \SearchDevicesRequest.nextToken, - outputKey: \SearchDevicesResponse.nextToken, - logger: logger - ) - } - - /// Searches network profiles and lists the ones that meet a set of filter and sort criteria. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func searchNetworkProfilesPaginator( - _ input: SearchNetworkProfilesRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.searchNetworkProfiles, - inputKey: \SearchNetworkProfilesRequest.nextToken, - outputKey: \SearchNetworkProfilesResponse.nextToken, - logger: logger - ) - } - - /// Searches room profiles and lists the ones that meet a set of filter criteria. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func searchProfilesPaginator( - _ input: SearchProfilesRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.searchProfiles, - inputKey: \SearchProfilesRequest.nextToken, - outputKey: \SearchProfilesResponse.nextToken, - logger: logger - ) - } - - /// Searches rooms and lists the ones that meet a set of filter and sort criteria. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func searchRoomsPaginator( - _ input: SearchRoomsRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.searchRooms, - inputKey: \SearchRoomsRequest.nextToken, - outputKey: \SearchRoomsResponse.nextToken, - logger: logger - ) - } - - /// Searches skill groups and lists the ones that meet a set of filter and sort criteria. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func searchSkillGroupsPaginator( - _ input: SearchSkillGroupsRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.searchSkillGroups, - inputKey: \SearchSkillGroupsRequest.nextToken, - outputKey: \SearchSkillGroupsResponse.nextToken, - logger: logger - ) - } - - /// Searches users and lists the ones that meet a set of filter and sort criteria. - /// Return PaginatorSequence for operation. - /// - /// - Parameters: - /// - input: Input for request - /// - logger: Logger used flot logging - @available(*, deprecated, message: "Alexa For Business is no longer supported") - public func searchUsersPaginator( - _ input: SearchUsersRequest, - logger: Logger = AWSClient.loggingDisabled - ) -> AWSClient.PaginatorSequence { - return .init( - input: input, - command: self.searchUsers, - inputKey: \SearchUsersRequest.nextToken, - outputKey: \SearchUsersResponse.nextToken, - logger: logger - ) - } -} - -extension AlexaForBusiness.ListBusinessReportSchedulesRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.ListBusinessReportSchedulesRequest { - return .init( - maxResults: self.maxResults, - nextToken: token - ) - } -} - -extension AlexaForBusiness.ListConferenceProvidersRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.ListConferenceProvidersRequest { - return .init( - maxResults: self.maxResults, - nextToken: token - ) - } -} - -extension AlexaForBusiness.ListDeviceEventsRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.ListDeviceEventsRequest { - return .init( - deviceArn: self.deviceArn, - eventType: self.eventType, - maxResults: self.maxResults, - nextToken: token - ) - } -} - -extension AlexaForBusiness.ListGatewayGroupsRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.ListGatewayGroupsRequest { - return .init( - maxResults: self.maxResults, - nextToken: token - ) - } -} - -extension AlexaForBusiness.ListGatewaysRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.ListGatewaysRequest { - return .init( - gatewayGroupArn: self.gatewayGroupArn, - maxResults: self.maxResults, - nextToken: token - ) - } -} - -extension AlexaForBusiness.ListSkillsRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.ListSkillsRequest { - return .init( - enablementType: self.enablementType, - maxResults: self.maxResults, - nextToken: token, - skillGroupArn: self.skillGroupArn, - skillType: self.skillType - ) - } -} - -extension AlexaForBusiness.ListSkillsStoreCategoriesRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.ListSkillsStoreCategoriesRequest { - return .init( - maxResults: self.maxResults, - nextToken: token - ) - } -} - -extension AlexaForBusiness.ListSkillsStoreSkillsByCategoryRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.ListSkillsStoreSkillsByCategoryRequest { - return .init( - categoryId: self.categoryId, - maxResults: self.maxResults, - nextToken: token - ) - } -} - -extension AlexaForBusiness.ListSmartHomeAppliancesRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.ListSmartHomeAppliancesRequest { - return .init( - maxResults: self.maxResults, - nextToken: token, - roomArn: self.roomArn - ) - } -} - -extension AlexaForBusiness.ListTagsRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.ListTagsRequest { - return .init( - arn: self.arn, - maxResults: self.maxResults, - nextToken: token - ) - } -} - -extension AlexaForBusiness.SearchAddressBooksRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.SearchAddressBooksRequest { - return .init( - filters: self.filters, - maxResults: self.maxResults, - nextToken: token, - sortCriteria: self.sortCriteria - ) - } -} - -extension AlexaForBusiness.SearchContactsRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.SearchContactsRequest { - return .init( - filters: self.filters, - maxResults: self.maxResults, - nextToken: token, - sortCriteria: self.sortCriteria - ) - } -} - -extension AlexaForBusiness.SearchDevicesRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.SearchDevicesRequest { - return .init( - filters: self.filters, - maxResults: self.maxResults, - nextToken: token, - sortCriteria: self.sortCriteria - ) - } -} - -extension AlexaForBusiness.SearchNetworkProfilesRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.SearchNetworkProfilesRequest { - return .init( - filters: self.filters, - maxResults: self.maxResults, - nextToken: token, - sortCriteria: self.sortCriteria - ) - } -} - -extension AlexaForBusiness.SearchProfilesRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.SearchProfilesRequest { - return .init( - filters: self.filters, - maxResults: self.maxResults, - nextToken: token, - sortCriteria: self.sortCriteria - ) - } -} - -extension AlexaForBusiness.SearchRoomsRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.SearchRoomsRequest { - return .init( - filters: self.filters, - maxResults: self.maxResults, - nextToken: token, - sortCriteria: self.sortCriteria - ) - } -} - -extension AlexaForBusiness.SearchSkillGroupsRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.SearchSkillGroupsRequest { - return .init( - filters: self.filters, - maxResults: self.maxResults, - nextToken: token, - sortCriteria: self.sortCriteria - ) - } -} - -extension AlexaForBusiness.SearchUsersRequest: AWSPaginateToken { - public func usingPaginationToken(_ token: String) -> AlexaForBusiness.SearchUsersRequest { - return .init( - filters: self.filters, - maxResults: self.maxResults, - nextToken: token, - sortCriteria: self.sortCriteria - ) - } -} diff --git a/Sources/Soto/Services/AlexaForBusiness/AlexaForBusiness_shapes.swift b/Sources/Soto/Services/AlexaForBusiness/AlexaForBusiness_shapes.swift deleted file mode 100644 index 1be93eeca5..0000000000 --- a/Sources/Soto/Services/AlexaForBusiness/AlexaForBusiness_shapes.swift +++ /dev/null @@ -1,5643 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// This source file is part of the Soto for AWS open source project -// -// Copyright (c) 2017-2023 the Soto project authors -// Licensed under Apache License v2.0 -// -// See LICENSE.txt for license information -// See CONTRIBUTORS.txt for the list of Soto project authors -// -// SPDX-License-Identifier: Apache-2.0 -// -//===----------------------------------------------------------------------===// - -// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/soto-project/soto-codegenerator. -// DO NOT EDIT. - -#if os(Linux) && compiler(<5.10) -// swift-corelibs-foundation hasn't been updated with Sendable conformances -@preconcurrency import Foundation -#else -import Foundation -#endif -@_spi(SotoInternal) import SotoCore - -extension AlexaForBusiness { - // MARK: Enums - - public enum BusinessReportFailureCode: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case accessDenied = "ACCESS_DENIED" - case internalFailure = "INTERNAL_FAILURE" - case noSuchBucket = "NO_SUCH_BUCKET" - public var description: String { return self.rawValue } - } - - public enum BusinessReportFormat: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case csv = "CSV" - case csvZip = "CSV_ZIP" - public var description: String { return self.rawValue } - } - - public enum BusinessReportInterval: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case oneDay = "ONE_DAY" - case oneWeek = "ONE_WEEK" - case thirtyDays = "THIRTY_DAYS" - public var description: String { return self.rawValue } - } - - public enum BusinessReportStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case failed = "FAILED" - case running = "RUNNING" - case succeeded = "SUCCEEDED" - public var description: String { return self.rawValue } - } - - public enum CommsProtocol: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case h323 = "H323" - case sip = "SIP" - case sips = "SIPS" - public var description: String { return self.rawValue } - } - - public enum ConferenceProviderType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case bluejeans = "BLUEJEANS" - case chime = "CHIME" - case custom = "CUSTOM" - case fuze = "FUZE" - case googleHangouts = "GOOGLE_HANGOUTS" - case polycom = "POLYCOM" - case ringcentral = "RINGCENTRAL" - case skypeForBusiness = "SKYPE_FOR_BUSINESS" - case webex = "WEBEX" - case zoom = "ZOOM" - public var description: String { return self.rawValue } - } - - public enum ConnectionStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case offline = "OFFLINE" - case online = "ONLINE" - public var description: String { return self.rawValue } - } - - public enum DeviceEventType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case connectionStatus = "CONNECTION_STATUS" - case deviceStatus = "DEVICE_STATUS" - public var description: String { return self.rawValue } - } - - public enum DeviceStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case deregistered = "DEREGISTERED" - case failed = "FAILED" - case pending = "PENDING" - case ready = "READY" - case wasOffline = "WAS_OFFLINE" - public var description: String { return self.rawValue } - } - - public enum DeviceStatusDetailCode: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case associationRejection = "ASSOCIATION_REJECTION" - case authenticationFailure = "AUTHENTICATION_FAILURE" - case certificateAuthorityAccessDenied = "CERTIFICATE_AUTHORITY_ACCESS_DENIED" - case certificateIssuingLimitExceeded = "CERTIFICATE_ISSUING_LIMIT_EXCEEDED" - case credentialsAccessFailure = "CREDENTIALS_ACCESS_FAILURE" - case deviceSoftwareUpdateNeeded = "DEVICE_SOFTWARE_UPDATE_NEEDED" - case deviceWasOffline = "DEVICE_WAS_OFFLINE" - case dhcpFailure = "DHCP_FAILURE" - case dnsFailure = "DNS_FAILURE" - case internetUnavailable = "INTERNET_UNAVAILABLE" - case invalidCertificateAuthority = "INVALID_CERTIFICATE_AUTHORITY" - case invalidPasswordState = "INVALID_PASSWORD_STATE" - case networkProfileNotFound = "NETWORK_PROFILE_NOT_FOUND" - case passwordManagerAccessDenied = "PASSWORD_MANAGER_ACCESS_DENIED" - case passwordNotFound = "PASSWORD_NOT_FOUND" - case tlsVersionMismatch = "TLS_VERSION_MISMATCH" - case unknownFailure = "UNKNOWN_FAILURE" - public var description: String { return self.rawValue } - } - - public enum DeviceUsageType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case voice = "VOICE" - public var description: String { return self.rawValue } - } - - public enum DistanceUnit: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case imperial = "IMPERIAL" - case metric = "METRIC" - public var description: String { return self.rawValue } - } - - public enum EnablementType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case enabled = "ENABLED" - case pending = "PENDING" - public var description: String { return self.rawValue } - } - - public enum EnablementTypeFilter: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case enabled = "ENABLED" - case pending = "PENDING" - public var description: String { return self.rawValue } - } - - public enum EndOfMeetingReminderType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case announcementTimeCheck = "ANNOUNCEMENT_TIME_CHECK" - case announcementVariableTimeLeft = "ANNOUNCEMENT_VARIABLE_TIME_LEFT" - case chime = "CHIME" - case knock = "KNOCK" - public var description: String { return self.rawValue } - } - - public enum EnrollmentStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case deregistering = "DEREGISTERING" - case disassociating = "DISASSOCIATING" - case initialized = "INITIALIZED" - case pending = "PENDING" - case registered = "REGISTERED" - public var description: String { return self.rawValue } - } - - public enum Feature: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case all = "ALL" - case bluetooth = "BLUETOOTH" - case lists = "LISTS" - case networkProfile = "NETWORK_PROFILE" - case notifications = "NOTIFICATIONS" - case settings = "SETTINGS" - case skills = "SKILLS" - case volume = "VOLUME" - public var description: String { return self.rawValue } - } - - public enum Locale: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case enUS = "en-US" - public var description: String { return self.rawValue } - } - - public enum NetworkEapMethod: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case eapTls = "EAP_TLS" - public var description: String { return self.rawValue } - } - - public enum NetworkSecurityType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case open = "OPEN" - case wep = "WEP" - case wpa2Enterprise = "WPA2_ENTERPRISE" - case wpa2Psk = "WPA2_PSK" - case wpaPsk = "WPA_PSK" - public var description: String { return self.rawValue } - } - - public enum PhoneNumberType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case home = "HOME" - case mobile = "MOBILE" - case work = "WORK" - public var description: String { return self.rawValue } - } - - public enum RequirePin: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case no = "NO" - case optional = "OPTIONAL" - case yes = "YES" - public var description: String { return self.rawValue } - } - - public enum SipType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case work = "WORK" - public var description: String { return self.rawValue } - } - - public enum SkillType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case `private` = "PRIVATE" - case `public` = "PUBLIC" - public var description: String { return self.rawValue } - } - - public enum SkillTypeFilter: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case `private` = "PRIVATE" - case `public` = "PUBLIC" - case all = "ALL" - public var description: String { return self.rawValue } - } - - public enum SortValue: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case asc = "ASC" - case desc = "DESC" - public var description: String { return self.rawValue } - } - - public enum TemperatureUnit: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case celsius = "CELSIUS" - case fahrenheit = "FAHRENHEIT" - public var description: String { return self.rawValue } - } - - public enum WakeWord: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case alexa = "ALEXA" - case amazon = "AMAZON" - case computer = "COMPUTER" - case echo = "ECHO" - public var description: String { return self.rawValue } - } - - // MARK: Shapes - - public struct AddressBook: AWSDecodableShape { - /// The ARN of the address book. - public let addressBookArn: String? - /// The description of the address book. - public let description: String? - /// The name of the address book. - public let name: String? - - public init(addressBookArn: String? = nil, description: String? = nil, name: String? = nil) { - self.addressBookArn = addressBookArn - self.description = description - self.name = name - } - - private enum CodingKeys: String, CodingKey { - case addressBookArn = "AddressBookArn" - case description = "Description" - case name = "Name" - } - } - - public struct AddressBookData: AWSDecodableShape { - /// The ARN of the address book. - public let addressBookArn: String? - /// The description of the address book. - public let description: String? - /// The name of the address book. - public let name: String? - - public init(addressBookArn: String? = nil, description: String? = nil, name: String? = nil) { - self.addressBookArn = addressBookArn - self.description = description - self.name = name - } - - private enum CodingKeys: String, CodingKey { - case addressBookArn = "AddressBookArn" - case description = "Description" - case name = "Name" - } - } - - public struct ApproveSkillRequest: AWSEncodableShape { - /// The unique identifier of the skill. - public let skillId: String - - public init(skillId: String) { - self.skillId = skillId - } - - public func validate(name: String) throws { - try self.validate(self.skillId, name: "skillId", parent: name, pattern: "^(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})$") - } - - private enum CodingKeys: String, CodingKey { - case skillId = "SkillId" - } - } - - public struct ApproveSkillResponse: AWSDecodableShape { - public init() {} - } - - public struct AssociateContactWithAddressBookRequest: AWSEncodableShape { - /// The ARN of the address book with which to associate the contact. - public let addressBookArn: String - /// The ARN of the contact to associate with an address book. - public let contactArn: String - - public init(addressBookArn: String, contactArn: String) { - self.addressBookArn = addressBookArn - self.contactArn = contactArn - } - - public func validate(name: String) throws { - try self.validate(self.addressBookArn, name: "addressBookArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.contactArn, name: "contactArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case addressBookArn = "AddressBookArn" - case contactArn = "ContactArn" - } - } - - public struct AssociateContactWithAddressBookResponse: AWSDecodableShape { - public init() {} - } - - public struct AssociateDeviceWithNetworkProfileRequest: AWSEncodableShape { - /// The device ARN. - public let deviceArn: String - /// The ARN of the network profile to associate with a device. - public let networkProfileArn: String - - public init(deviceArn: String, networkProfileArn: String) { - self.deviceArn = deviceArn - self.networkProfileArn = networkProfileArn - } - - public func validate(name: String) throws { - try self.validate(self.deviceArn, name: "deviceArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.networkProfileArn, name: "networkProfileArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case deviceArn = "DeviceArn" - case networkProfileArn = "NetworkProfileArn" - } - } - - public struct AssociateDeviceWithNetworkProfileResponse: AWSDecodableShape { - public init() {} - } - - public struct AssociateDeviceWithRoomRequest: AWSEncodableShape { - /// The ARN of the device to associate to a room. Required. - public let deviceArn: String? - /// The ARN of the room with which to associate the device. Required. - public let roomArn: String? - - public init(deviceArn: String? = nil, roomArn: String? = nil) { - self.deviceArn = deviceArn - self.roomArn = roomArn - } - - public func validate(name: String) throws { - try self.validate(self.deviceArn, name: "deviceArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case deviceArn = "DeviceArn" - case roomArn = "RoomArn" - } - } - - public struct AssociateDeviceWithRoomResponse: AWSDecodableShape { - public init() {} - } - - public struct AssociateSkillGroupWithRoomRequest: AWSEncodableShape { - /// 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 - } - - public func validate(name: String) throws { - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.skillGroupArn, name: "skillGroupArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case roomArn = "RoomArn" - case skillGroupArn = "SkillGroupArn" - } - } - - public struct AssociateSkillGroupWithRoomResponse: AWSDecodableShape { - public init() {} - } - - public struct AssociateSkillWithSkillGroupRequest: AWSEncodableShape { - /// The ARN of the skill group to associate the skill to. Required. - public let skillGroupArn: String? - /// The unique identifier of the skill. - public let skillId: String - - public init(skillGroupArn: String? = nil, skillId: String) { - self.skillGroupArn = skillGroupArn - self.skillId = skillId - } - - public func validate(name: String) throws { - try self.validate(self.skillGroupArn, name: "skillGroupArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.skillId, name: "skillId", parent: name, pattern: "^(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})$") - } - - private enum CodingKeys: String, CodingKey { - case skillGroupArn = "SkillGroupArn" - case skillId = "SkillId" - } - } - - public struct AssociateSkillWithSkillGroupResponse: AWSDecodableShape { - public init() {} - } - - public struct AssociateSkillWithUsersRequest: AWSEncodableShape { - /// The private skill ID you want to make available to enrolled users. - public let skillId: String - - public init(skillId: String) { - self.skillId = skillId - } - - public func validate(name: String) throws { - try self.validate(self.skillId, name: "skillId", parent: name, pattern: "^(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})$") - } - - private enum CodingKeys: String, CodingKey { - case skillId = "SkillId" - } - } - - public struct AssociateSkillWithUsersResponse: AWSDecodableShape { - public init() {} - } - - public struct Audio: AWSEncodableShape { - /// The locale of the audio message. Currently, en-US is supported. - public let locale: Locale - /// The location of the audio file. Currently, S3 URLs are supported. Only S3 locations comprised of safe characters are valid. For more information, see Safe Characters. - public let location: String - - public init(locale: Locale, location: String) { - self.locale = locale - self.location = location - } - - public func validate(name: String) throws { - try self.validate(self.location, name: "location", parent: name, max: 1200) - try self.validate(self.location, name: "location", parent: name, pattern: "^https://([A-Za-z0-9_.-]+)?(s3-[A-Za-z0-9-]+|s3\\.([A-Za-z0-9-])+|s3|s3.dualstack\\.([A-Za-z0-9-])+)+.amazonaws.com/") - } - - private enum CodingKeys: String, CodingKey { - case locale = "Locale" - case location = "Location" - } - } - - public struct BusinessReport: AWSDecodableShape { - /// The time of report delivery. - public let deliveryTime: Date? - /// The download link where a user can download the report. - public let downloadUrl: String? - /// The failure code. - public let failureCode: BusinessReportFailureCode? - /// The S3 location of the output reports. - public let s3Location: BusinessReportS3Location? - /// The status of the report generation execution (RUNNING, SUCCEEDED, or FAILED). - public let status: BusinessReportStatus? - - public init(deliveryTime: Date? = nil, downloadUrl: String? = nil, failureCode: BusinessReportFailureCode? = nil, s3Location: BusinessReportS3Location? = nil, status: BusinessReportStatus? = nil) { - self.deliveryTime = deliveryTime - self.downloadUrl = downloadUrl - self.failureCode = failureCode - self.s3Location = s3Location - self.status = status - } - - private enum CodingKeys: String, CodingKey { - case deliveryTime = "DeliveryTime" - case downloadUrl = "DownloadUrl" - case failureCode = "FailureCode" - case s3Location = "S3Location" - case status = "Status" - } - } - - public struct BusinessReportContentRange: AWSEncodableShape & AWSDecodableShape { - /// The interval of the content range. - public let interval: BusinessReportInterval - - public init(interval: BusinessReportInterval) { - self.interval = interval - } - - private enum CodingKeys: String, CodingKey { - case interval = "Interval" - } - } - - public struct BusinessReportRecurrence: AWSEncodableShape & AWSDecodableShape { - /// The start date. - public let startDate: String? - - public init(startDate: String? = nil) { - self.startDate = startDate - } - - public func validate(name: String) throws { - try self.validate(self.startDate, name: "startDate", parent: name, pattern: "^\\d{4}\\-(0?[1-9]|1[012])\\-(0?[1-9]|[12][0-9]|3[01])$") - } - - private enum CodingKeys: String, CodingKey { - case startDate = "StartDate" - } - } - - public struct BusinessReportS3Location: AWSDecodableShape { - /// The S3 bucket name of the output reports. - public let bucketName: String? - /// The path of the business report. - public let path: String? - - public init(bucketName: String? = nil, path: String? = nil) { - self.bucketName = bucketName - self.path = path - } - - private enum CodingKeys: String, CodingKey { - case bucketName = "BucketName" - case path = "Path" - } - } - - public struct BusinessReportSchedule: AWSDecodableShape { - /// The content range of the reports. - public let contentRange: BusinessReportContentRange? - /// The format of the generated report (individual CSV files or zipped files of individual files). - public let format: BusinessReportFormat? - /// The details of the last business report delivery for a specified time interval. - public let lastBusinessReport: BusinessReport? - /// The recurrence of the reports. - public let recurrence: BusinessReportRecurrence? - /// The S3 bucket name of the output reports. - public let s3BucketName: String? - /// The S3 key where the report is delivered. - public let s3KeyPrefix: String? - /// The ARN of the business report schedule. - public let scheduleArn: String? - /// The name identifier of the schedule. - public let scheduleName: String? - - public init(contentRange: BusinessReportContentRange? = nil, format: BusinessReportFormat? = nil, lastBusinessReport: BusinessReport? = nil, recurrence: BusinessReportRecurrence? = nil, s3BucketName: String? = nil, s3KeyPrefix: String? = nil, scheduleArn: String? = nil, scheduleName: String? = nil) { - self.contentRange = contentRange - self.format = format - self.lastBusinessReport = lastBusinessReport - self.recurrence = recurrence - self.s3BucketName = s3BucketName - self.s3KeyPrefix = s3KeyPrefix - self.scheduleArn = scheduleArn - self.scheduleName = scheduleName - } - - private enum CodingKeys: String, CodingKey { - case contentRange = "ContentRange" - case format = "Format" - case lastBusinessReport = "LastBusinessReport" - case recurrence = "Recurrence" - case s3BucketName = "S3BucketName" - case s3KeyPrefix = "S3KeyPrefix" - case scheduleArn = "ScheduleArn" - case scheduleName = "ScheduleName" - } - } - - public struct Category: AWSDecodableShape { - /// The ID of the skill store category. - public let categoryId: Int64? - /// The name of the skill store category. - public let categoryName: String? - - public init(categoryId: Int64? = nil, categoryName: String? = nil) { - self.categoryId = categoryId - self.categoryName = categoryName - } - - private enum CodingKeys: String, CodingKey { - case categoryId = "CategoryId" - case categoryName = "CategoryName" - } - } - - public struct ConferencePreference: AWSEncodableShape & AWSDecodableShape { - /// The ARN of the default conference provider. - public let defaultConferenceProviderArn: String? - - public init(defaultConferenceProviderArn: String? = nil) { - self.defaultConferenceProviderArn = defaultConferenceProviderArn - } - - public func validate(name: String) throws { - try self.validate(self.defaultConferenceProviderArn, name: "defaultConferenceProviderArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case defaultConferenceProviderArn = "DefaultConferenceProviderArn" - } - } - - public struct ConferenceProvider: AWSDecodableShape { - /// The ARN of the newly created conference provider. - public let arn: String? - /// The IP endpoint and protocol for calling. - public let ipDialIn: IPDialIn? - /// The meeting settings for the conference provider. - public let meetingSetting: MeetingSetting? - /// The name of the conference provider. - public let name: String? - /// The information for PSTN conferencing. - public let pstnDialIn: PSTNDialIn? - /// The type of conference providers. - public let type: ConferenceProviderType? - - public init(arn: String? = nil, ipDialIn: IPDialIn? = nil, meetingSetting: MeetingSetting? = nil, name: String? = nil, pstnDialIn: PSTNDialIn? = nil, type: ConferenceProviderType? = nil) { - self.arn = arn - self.ipDialIn = ipDialIn - self.meetingSetting = meetingSetting - self.name = name - self.pstnDialIn = pstnDialIn - self.type = type - } - - private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case ipDialIn = "IPDialIn" - case meetingSetting = "MeetingSetting" - case name = "Name" - case pstnDialIn = "PSTNDialIn" - case type = "Type" - } - } - - public struct Contact: AWSDecodableShape { - /// The ARN of the contact. - public let contactArn: String? - /// The name of the contact to display on the console. - public let displayName: String? - /// The first name of the contact, used to call the contact on the device. - public let firstName: String? - /// The last name of the contact, used to call the contact on the device. - public let lastName: String? - /// The phone number of the contact. The phone number type defaults to WORK. You can either specify PhoneNumber or PhoneNumbers. We recommend that you use PhoneNumbers, which lets you specify the phone number type and multiple numbers. - public let phoneNumber: String? - /// The list of phone numbers for the contact. - public let phoneNumbers: [PhoneNumber]? - /// The list of SIP addresses for the contact. - public let sipAddresses: [SipAddress]? - - public init(contactArn: String? = nil, displayName: String? = nil, firstName: String? = nil, lastName: String? = nil, phoneNumber: String? = nil, phoneNumbers: [PhoneNumber]? = nil, sipAddresses: [SipAddress]? = nil) { - self.contactArn = contactArn - self.displayName = displayName - self.firstName = firstName - self.lastName = lastName - self.phoneNumber = phoneNumber - self.phoneNumbers = phoneNumbers - self.sipAddresses = sipAddresses - } - - private enum CodingKeys: String, CodingKey { - case contactArn = "ContactArn" - case displayName = "DisplayName" - case firstName = "FirstName" - case lastName = "LastName" - case phoneNumber = "PhoneNumber" - case phoneNumbers = "PhoneNumbers" - case sipAddresses = "SipAddresses" - } - } - - public struct ContactData: AWSDecodableShape { - /// The ARN of the contact. - public let contactArn: String? - /// The name of the contact to display on the console. - public let displayName: String? - /// The first name of the contact, used to call the contact on the device. - public let firstName: String? - /// The last name of the contact, used to call the contact on the device. - public let lastName: String? - /// The phone number of the contact. The phone number type defaults to WORK. You can specify PhoneNumber or PhoneNumbers. We recommend that you use PhoneNumbers, which lets you specify the phone number type and multiple numbers. - public let phoneNumber: String? - /// The list of phone numbers for the contact. - public let phoneNumbers: [PhoneNumber]? - /// The list of SIP addresses for the contact. - public let sipAddresses: [SipAddress]? - - public init(contactArn: String? = nil, displayName: String? = nil, firstName: String? = nil, lastName: String? = nil, phoneNumber: String? = nil, phoneNumbers: [PhoneNumber]? = nil, sipAddresses: [SipAddress]? = nil) { - self.contactArn = contactArn - self.displayName = displayName - self.firstName = firstName - self.lastName = lastName - self.phoneNumber = phoneNumber - self.phoneNumbers = phoneNumbers - self.sipAddresses = sipAddresses - } - - private enum CodingKeys: String, CodingKey { - case contactArn = "ContactArn" - case displayName = "DisplayName" - case firstName = "FirstName" - case lastName = "LastName" - case phoneNumber = "PhoneNumber" - case phoneNumbers = "PhoneNumbers" - case sipAddresses = "SipAddresses" - } - } - - public struct Content: AWSEncodableShape { - /// The list of audio messages. - public let audioList: [Audio]? - /// The list of SSML messages. - public let ssmlList: [Ssml]? - /// The list of text messages. - public let textList: [Text]? - - public init(audioList: [Audio]? = nil, ssmlList: [Ssml]? = nil, textList: [Text]? = nil) { - self.audioList = audioList - self.ssmlList = ssmlList - self.textList = textList - } - - public func validate(name: String) throws { - try self.audioList?.forEach { - try $0.validate(name: "\(name).audioList[]") - } - try self.validate(self.audioList, name: "audioList", parent: name, max: 1) - try self.ssmlList?.forEach { - try $0.validate(name: "\(name).ssmlList[]") - } - try self.validate(self.ssmlList, name: "ssmlList", parent: name, max: 1) - try self.textList?.forEach { - try $0.validate(name: "\(name).textList[]") - } - try self.validate(self.textList, name: "textList", parent: name, max: 1) - } - - private enum CodingKeys: String, CodingKey { - case audioList = "AudioList" - case ssmlList = "SsmlList" - case textList = "TextList" - } - } - - public struct CreateAddressBookRequest: AWSEncodableShape { - /// A unique, user-specified identifier for the request that ensures idempotency. - public let clientRequestToken: String? - /// The description of the address book. - public let description: String? - /// The name of the address book. - public let name: String - /// The tags to be added to the specified resource. Do not provide system tags. - public let tags: [Tag]? - - public init(clientRequestToken: String? = CreateAddressBookRequest.idempotencyToken(), description: String? = nil, name: String, tags: [Tag]? = nil) { - self.clientRequestToken = clientRequestToken - self.description = description - self.name = name - self.tags = tags - } - - public func validate(name: String) throws { - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, max: 150) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 10) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$") - try self.validate(self.description, name: "description", parent: name, max: 200) - try self.validate(self.description, name: "description", parent: name, min: 1) - try self.validate(self.description, name: "description", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.name, name: "name", parent: name, max: 100) - try self.validate(self.name, name: "name", parent: name, min: 1) - try self.validate(self.name, name: "name", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.tags?.forEach { - try $0.validate(name: "\(name).tags[]") - } - } - - private enum CodingKeys: String, CodingKey { - case clientRequestToken = "ClientRequestToken" - case description = "Description" - case name = "Name" - case tags = "Tags" - } - } - - public struct CreateAddressBookResponse: AWSDecodableShape { - /// The ARN of the newly created address book. - public let addressBookArn: String? - - public init(addressBookArn: String? = nil) { - self.addressBookArn = addressBookArn - } - - private enum CodingKeys: String, CodingKey { - case addressBookArn = "AddressBookArn" - } - } - - public struct CreateBusinessReportScheduleRequest: AWSEncodableShape { - /// The client request token. - public let clientRequestToken: String? - /// The content range of the reports. - public let contentRange: BusinessReportContentRange - /// The format of the generated report (individual CSV files or zipped files of individual files). - public let format: BusinessReportFormat - /// The recurrence of the reports. If this isn't specified, the report will only be delivered one time when the API is called. - public let recurrence: BusinessReportRecurrence? - /// The S3 bucket name of the output reports. If this isn't specified, the report can be retrieved from a download link by calling ListBusinessReportSchedule. - public let s3BucketName: String? - /// The S3 key where the report is delivered. - public let s3KeyPrefix: String? - /// The name identifier of the schedule. - public let scheduleName: String? - /// The tags for the business report schedule. - public let tags: [Tag]? - - public init(clientRequestToken: String? = CreateBusinessReportScheduleRequest.idempotencyToken(), contentRange: BusinessReportContentRange, format: BusinessReportFormat, recurrence: BusinessReportRecurrence? = nil, s3BucketName: String? = nil, s3KeyPrefix: String? = nil, scheduleName: String? = nil, tags: [Tag]? = nil) { - self.clientRequestToken = clientRequestToken - self.contentRange = contentRange - self.format = format - self.recurrence = recurrence - self.s3BucketName = s3BucketName - self.s3KeyPrefix = s3KeyPrefix - self.scheduleName = scheduleName - self.tags = tags - } - - public func validate(name: String) throws { - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, max: 150) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 10) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$") - try self.recurrence?.validate(name: "\(name).recurrence") - try self.validate(self.s3BucketName, name: "s3BucketName", parent: name, pattern: "^[a-z0-9-\\.]{3,63}$") - try self.validate(self.s3KeyPrefix, name: "s3KeyPrefix", parent: name, max: 100) - try self.validate(self.s3KeyPrefix, name: "s3KeyPrefix", parent: name, pattern: "^[A-Za-z0-9!_\\-\\.\\*'()/]*$") - try self.validate(self.scheduleName, name: "scheduleName", parent: name, max: 64) - try self.validate(self.scheduleName, name: "scheduleName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.tags?.forEach { - try $0.validate(name: "\(name).tags[]") - } - } - - private enum CodingKeys: String, CodingKey { - case clientRequestToken = "ClientRequestToken" - case contentRange = "ContentRange" - case format = "Format" - case recurrence = "Recurrence" - case s3BucketName = "S3BucketName" - case s3KeyPrefix = "S3KeyPrefix" - case scheduleName = "ScheduleName" - case tags = "Tags" - } - } - - public struct CreateBusinessReportScheduleResponse: AWSDecodableShape { - /// The ARN of the business report schedule. - public let scheduleArn: String? - - public init(scheduleArn: String? = nil) { - self.scheduleArn = scheduleArn - } - - private enum CodingKeys: String, CodingKey { - case scheduleArn = "ScheduleArn" - } - } - - public struct CreateConferenceProviderRequest: AWSEncodableShape { - /// The request token of the client. - public let clientRequestToken: String? - /// The name of the conference provider. - public let conferenceProviderName: String - /// Represents a type within a list of predefined types. - public let conferenceProviderType: ConferenceProviderType - /// The IP endpoint and protocol for calling. - public let ipDialIn: IPDialIn? - /// The meeting settings for the conference provider. - public let meetingSetting: MeetingSetting - /// The information for PSTN conferencing. - public let pstnDialIn: PSTNDialIn? - /// The tags to be added to the specified resource. Do not provide system tags. - public let tags: [Tag]? - - public init(clientRequestToken: String? = CreateConferenceProviderRequest.idempotencyToken(), conferenceProviderName: String, conferenceProviderType: ConferenceProviderType, ipDialIn: IPDialIn? = nil, meetingSetting: MeetingSetting, pstnDialIn: PSTNDialIn? = nil, tags: [Tag]? = nil) { - self.clientRequestToken = clientRequestToken - self.conferenceProviderName = conferenceProviderName - self.conferenceProviderType = conferenceProviderType - self.ipDialIn = ipDialIn - self.meetingSetting = meetingSetting - self.pstnDialIn = pstnDialIn - self.tags = tags - } - - public func validate(name: String) throws { - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, max: 150) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 10) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$") - try self.validate(self.conferenceProviderName, name: "conferenceProviderName", parent: name, max: 50) - try self.validate(self.conferenceProviderName, name: "conferenceProviderName", parent: name, min: 1) - try self.validate(self.conferenceProviderName, name: "conferenceProviderName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.ipDialIn?.validate(name: "\(name).ipDialIn") - try self.pstnDialIn?.validate(name: "\(name).pstnDialIn") - try self.tags?.forEach { - try $0.validate(name: "\(name).tags[]") - } - } - - private enum CodingKeys: String, CodingKey { - case clientRequestToken = "ClientRequestToken" - case conferenceProviderName = "ConferenceProviderName" - case conferenceProviderType = "ConferenceProviderType" - case ipDialIn = "IPDialIn" - case meetingSetting = "MeetingSetting" - case pstnDialIn = "PSTNDialIn" - case tags = "Tags" - } - } - - public struct CreateConferenceProviderResponse: AWSDecodableShape { - /// The ARN of the newly-created conference provider. - public let conferenceProviderArn: String? - - public init(conferenceProviderArn: String? = nil) { - self.conferenceProviderArn = conferenceProviderArn - } - - private enum CodingKeys: String, CodingKey { - case conferenceProviderArn = "ConferenceProviderArn" - } - } - - public struct CreateContactRequest: AWSEncodableShape { - /// A unique, user-specified identifier for this request that ensures idempotency. - public let clientRequestToken: String? - /// The name of the contact to display on the console. - public let displayName: String? - /// The first name of the contact that is used to call the contact on the device. - public let firstName: String - /// The last name of the contact that is used to call the contact on the device. - public let lastName: String? - /// The phone number of the contact in E.164 format. The phone number type defaults to WORK. You can specify PhoneNumber or PhoneNumbers. We recommend that you use PhoneNumbers, which lets you specify the phone number type and multiple numbers. - public let phoneNumber: String? - /// The list of phone numbers for the contact. - public let phoneNumbers: [PhoneNumber]? - /// The list of SIP addresses for the contact. - public let sipAddresses: [SipAddress]? - /// The tags to be added to the specified resource. Do not provide system tags. - public let tags: [Tag]? - - public init(clientRequestToken: String? = CreateContactRequest.idempotencyToken(), displayName: String? = nil, firstName: String, lastName: String? = nil, phoneNumber: String? = nil, phoneNumbers: [PhoneNumber]? = nil, sipAddresses: [SipAddress]? = nil, tags: [Tag]? = nil) { - self.clientRequestToken = clientRequestToken - self.displayName = displayName - self.firstName = firstName - self.lastName = lastName - self.phoneNumber = phoneNumber - self.phoneNumbers = phoneNumbers - self.sipAddresses = sipAddresses - self.tags = tags - } - - public func validate(name: String) throws { - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, max: 150) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 10) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$") - try self.validate(self.displayName, name: "displayName", parent: name, max: 100) - try self.validate(self.displayName, name: "displayName", parent: name, min: 1) - try self.validate(self.displayName, name: "displayName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.firstName, name: "firstName", parent: name, max: 100) - try self.validate(self.firstName, name: "firstName", parent: name, min: 1) - try self.validate(self.firstName, name: "firstName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.lastName, name: "lastName", parent: name, max: 100) - try self.validate(self.lastName, name: "lastName", parent: name, min: 1) - try self.validate(self.lastName, name: "lastName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.phoneNumber, name: "phoneNumber", parent: name, max: 50) - try self.validate(self.phoneNumber, name: "phoneNumber", parent: name, pattern: "^[\\+0-9\\#\\,\\(][\\+0-9\\-\\.\\/\\(\\)\\,\\#\\s]+$") - try self.phoneNumbers?.forEach { - try $0.validate(name: "\(name).phoneNumbers[]") - } - try self.validate(self.phoneNumbers, name: "phoneNumbers", parent: name, max: 3) - try self.sipAddresses?.forEach { - try $0.validate(name: "\(name).sipAddresses[]") - } - try self.validate(self.sipAddresses, name: "sipAddresses", parent: name, max: 1) - try self.tags?.forEach { - try $0.validate(name: "\(name).tags[]") - } - } - - private enum CodingKeys: String, CodingKey { - case clientRequestToken = "ClientRequestToken" - case displayName = "DisplayName" - case firstName = "FirstName" - case lastName = "LastName" - case phoneNumber = "PhoneNumber" - case phoneNumbers = "PhoneNumbers" - case sipAddresses = "SipAddresses" - case tags = "Tags" - } - } - - public struct CreateContactResponse: AWSDecodableShape { - /// The ARN of the newly created address book. - public let contactArn: String? - - public init(contactArn: String? = nil) { - self.contactArn = contactArn - } - - private enum CodingKeys: String, CodingKey { - case contactArn = "ContactArn" - } - } - - public struct CreateEndOfMeetingReminder: AWSEncodableShape { - /// Whether an end of meeting reminder is enabled or not. - public let enabled: Bool - /// A range of 3 to 15 minutes that determines when the reminder begins. - public let reminderAtMinutes: [Int] - /// The type of sound that users hear during the end of meeting reminder. - public let reminderType: EndOfMeetingReminderType - - public init(enabled: Bool, reminderAtMinutes: [Int], reminderType: EndOfMeetingReminderType) { - self.enabled = enabled - self.reminderAtMinutes = reminderAtMinutes - self.reminderType = reminderType - } - - public func validate(name: String) throws { - try self.validate(self.reminderAtMinutes, name: "reminderAtMinutes", parent: name, max: 1) - try self.validate(self.reminderAtMinutes, name: "reminderAtMinutes", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case enabled = "Enabled" - case reminderAtMinutes = "ReminderAtMinutes" - case reminderType = "ReminderType" - } - } - - public struct CreateGatewayGroupRequest: AWSEncodableShape { - /// A unique, user-specified identifier for the request that ensures idempotency. - public let clientRequestToken: String - /// The description of the gateway group. - public let description: String? - /// The name of the gateway group. - public let name: String - /// The tags to be added to the specified resource. Do not provide system tags. - public let tags: [Tag]? - - public init(clientRequestToken: String = CreateGatewayGroupRequest.idempotencyToken(), description: String? = nil, name: String, tags: [Tag]? = nil) { - self.clientRequestToken = clientRequestToken - self.description = description - self.name = name - self.tags = tags - } - - public func validate(name: String) throws { - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, max: 150) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 10) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$") - try self.validate(self.description, name: "description", parent: name, max: 200) - try self.validate(self.name, name: "name", parent: name, max: 100) - try self.validate(self.name, name: "name", parent: name, min: 1) - try self.validate(self.name, name: "name", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.tags?.forEach { - try $0.validate(name: "\(name).tags[]") - } - } - - private enum CodingKeys: String, CodingKey { - case clientRequestToken = "ClientRequestToken" - case description = "Description" - case name = "Name" - case tags = "Tags" - } - } - - public struct CreateGatewayGroupResponse: AWSDecodableShape { - /// The ARN of the created gateway group. - public let gatewayGroupArn: String? - - public init(gatewayGroupArn: String? = nil) { - self.gatewayGroupArn = gatewayGroupArn - } - - private enum CodingKeys: String, CodingKey { - case gatewayGroupArn = "GatewayGroupArn" - } - } - - public struct CreateInstantBooking: AWSEncodableShape { - /// Duration between 15 and 240 minutes at increments of 15 that determines how long to book an available room when a meeting is started with Alexa. - public let durationInMinutes: Int - /// Whether instant booking is enabled or not. - public let enabled: Bool - - public init(durationInMinutes: Int, enabled: Bool) { - self.durationInMinutes = durationInMinutes - self.enabled = enabled - } - - private enum CodingKeys: String, CodingKey { - case durationInMinutes = "DurationInMinutes" - case enabled = "Enabled" - } - } - - public struct CreateMeetingRoomConfiguration: AWSEncodableShape { - public let endOfMeetingReminder: CreateEndOfMeetingReminder? - /// Settings to automatically book a room for a configured duration if it's free when joining a meeting with Alexa. - public let instantBooking: CreateInstantBooking? - public let proactiveJoin: CreateProactiveJoin? - /// Settings for requiring a check in when a room is reserved. Alexa can cancel a room reservation if it's not checked into to make the room available for others. Users can check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check in.” - public let requireCheckIn: CreateRequireCheckIn? - /// Whether room utilization metrics are enabled or not. - public let roomUtilizationMetricsEnabled: Bool? - - public init(endOfMeetingReminder: CreateEndOfMeetingReminder? = nil, instantBooking: CreateInstantBooking? = nil, proactiveJoin: CreateProactiveJoin? = nil, requireCheckIn: CreateRequireCheckIn? = nil, roomUtilizationMetricsEnabled: Bool? = nil) { - self.endOfMeetingReminder = endOfMeetingReminder - self.instantBooking = instantBooking - self.proactiveJoin = proactiveJoin - self.requireCheckIn = requireCheckIn - self.roomUtilizationMetricsEnabled = roomUtilizationMetricsEnabled - } - - public func validate(name: String) throws { - try self.endOfMeetingReminder?.validate(name: "\(name).endOfMeetingReminder") - } - - private enum CodingKeys: String, CodingKey { - case endOfMeetingReminder = "EndOfMeetingReminder" - case instantBooking = "InstantBooking" - case proactiveJoin = "ProactiveJoin" - case requireCheckIn = "RequireCheckIn" - case roomUtilizationMetricsEnabled = "RoomUtilizationMetricsEnabled" - } - } - - public struct CreateNetworkProfileRequest: AWSEncodableShape { - /// The ARN of the Private Certificate Authority (PCA) created in AWS Certificate Manager (ACM). This is used to issue certificates to the devices. - public let certificateAuthorityArn: String? - public let clientRequestToken: String - /// The current password of the Wi-Fi network. - public let currentPassword: String? - /// Detailed information about a device's network profile. - public let description: String? - /// The authentication standard that is used in the EAP framework. Currently, EAP_TLS is supported. - public let eapMethod: NetworkEapMethod? - /// The name of the network profile associated with a device. - public let networkProfileName: String - /// The next, or subsequent, password of the Wi-Fi network. This password is asynchronously transmitted to the device and is used when the password of the network changes to NextPassword. - public let nextPassword: String? - /// The security type of the Wi-Fi network. This can be WPA2_ENTERPRISE, WPA2_PSK, WPA_PSK, WEP, or OPEN. - public let securityType: NetworkSecurityType - /// The SSID of the Wi-Fi network. - public let ssid: String - /// The tags to be added to the specified resource. Do not provide system tags. - public let tags: [Tag]? - /// The root certificates of your authentication server that is installed on your devices and used to trust your authentication server during EAP negotiation. - public let trustAnchors: [String]? - - public init(certificateAuthorityArn: String? = nil, clientRequestToken: String = CreateNetworkProfileRequest.idempotencyToken(), currentPassword: String? = nil, description: String? = nil, eapMethod: NetworkEapMethod? = nil, networkProfileName: String, nextPassword: String? = nil, securityType: NetworkSecurityType, ssid: String, tags: [Tag]? = nil, trustAnchors: [String]? = nil) { - self.certificateAuthorityArn = certificateAuthorityArn - self.clientRequestToken = clientRequestToken - self.currentPassword = currentPassword - self.description = description - self.eapMethod = eapMethod - self.networkProfileName = networkProfileName - self.nextPassword = nextPassword - self.securityType = securityType - self.ssid = ssid - self.tags = tags - self.trustAnchors = trustAnchors - } - - public func validate(name: String) throws { - try self.validate(self.certificateAuthorityArn, name: "certificateAuthorityArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, max: 150) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 10) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$") - try self.validate(self.currentPassword, name: "currentPassword", parent: name, max: 128) - try self.validate(self.currentPassword, name: "currentPassword", parent: name, min: 5) - try self.validate(self.currentPassword, name: "currentPassword", parent: name, pattern: "^[\\x00-\\x7F]*$") - try self.validate(self.description, name: "description", parent: name, max: 200) - try self.validate(self.description, name: "description", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.networkProfileName, name: "networkProfileName", parent: name, max: 100) - try self.validate(self.networkProfileName, name: "networkProfileName", parent: name, min: 1) - try self.validate(self.networkProfileName, name: "networkProfileName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.nextPassword, name: "nextPassword", parent: name, max: 128) - try self.validate(self.nextPassword, name: "nextPassword", parent: name, pattern: "^(^$)|([\\x00-\\x7F]{5,})$") - try self.validate(self.ssid, name: "ssid", parent: name, max: 32) - try self.validate(self.ssid, name: "ssid", parent: name, min: 1) - try self.validate(self.ssid, name: "ssid", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.tags?.forEach { - try $0.validate(name: "\(name).tags[]") - } - try self.trustAnchors?.forEach { - try validate($0, name: "trustAnchors[]", parent: name, pattern: "^-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}(\\u000D?\\u000A)?$") - } - try self.validate(self.trustAnchors, name: "trustAnchors", parent: name, max: 5) - try self.validate(self.trustAnchors, name: "trustAnchors", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case certificateAuthorityArn = "CertificateAuthorityArn" - case clientRequestToken = "ClientRequestToken" - case currentPassword = "CurrentPassword" - case description = "Description" - case eapMethod = "EapMethod" - case networkProfileName = "NetworkProfileName" - case nextPassword = "NextPassword" - case securityType = "SecurityType" - case ssid = "Ssid" - case tags = "Tags" - case trustAnchors = "TrustAnchors" - } - } - - public struct CreateNetworkProfileResponse: AWSDecodableShape { - /// The ARN of the network profile associated with a device. - public let networkProfileArn: String? - - public init(networkProfileArn: String? = nil) { - self.networkProfileArn = networkProfileArn - } - - private enum CodingKeys: String, CodingKey { - case networkProfileArn = "NetworkProfileArn" - } - } - - public struct CreateProactiveJoin: AWSEncodableShape { - public let enabledByMotion: Bool - - public init(enabledByMotion: Bool) { - self.enabledByMotion = enabledByMotion - } - - private enum CodingKeys: String, CodingKey { - case enabledByMotion = "EnabledByMotion" - } - } - - public struct CreateProfileRequest: AWSEncodableShape { - /// The valid address for the room. - public let address: String - /// The user-specified token that is used during the creation of a profile. - public let clientRequestToken: String? - /// Whether data retention of the profile is enabled. - public let dataRetentionOptIn: Bool? - /// The distance unit to be used by devices in the profile. - public let distanceUnit: DistanceUnit - /// The locale of the room profile. (This is currently only available to a limited preview audience.) - public let locale: String? - /// The maximum volume limit for a room profile. - public let maxVolumeLimit: Int? - /// The meeting room settings of a room profile. - public let meetingRoomConfiguration: CreateMeetingRoomConfiguration? - /// The name of a room profile. - public let profileName: String - /// Whether PSTN calling is enabled. - public let pstnEnabled: Bool? - /// Whether room profile setup is enabled. - public let setupModeDisabled: Bool? - /// The tags for the profile. - public let tags: [Tag]? - /// The temperature unit to be used by devices in the profile. - public let temperatureUnit: TemperatureUnit - /// The time zone used by a room profile. - public let timezone: String - /// A wake word for Alexa, Echo, Amazon, or a computer. - public let wakeWord: WakeWord - - public init(address: String, clientRequestToken: String? = CreateProfileRequest.idempotencyToken(), dataRetentionOptIn: Bool? = nil, distanceUnit: DistanceUnit, locale: String? = nil, maxVolumeLimit: Int? = nil, meetingRoomConfiguration: CreateMeetingRoomConfiguration? = nil, profileName: String, pstnEnabled: Bool? = nil, setupModeDisabled: Bool? = nil, tags: [Tag]? = nil, temperatureUnit: TemperatureUnit, timezone: String, wakeWord: WakeWord) { - self.address = address - self.clientRequestToken = clientRequestToken - self.dataRetentionOptIn = dataRetentionOptIn - self.distanceUnit = distanceUnit - self.locale = locale - self.maxVolumeLimit = maxVolumeLimit - self.meetingRoomConfiguration = meetingRoomConfiguration - self.profileName = profileName - self.pstnEnabled = pstnEnabled - self.setupModeDisabled = setupModeDisabled - self.tags = tags - self.temperatureUnit = temperatureUnit - self.timezone = timezone - self.wakeWord = wakeWord - } - - public func validate(name: String) throws { - try self.validate(self.address, name: "address", parent: name, max: 500) - try self.validate(self.address, name: "address", parent: name, min: 1) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, max: 150) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 10) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$") - try self.validate(self.locale, name: "locale", parent: name, max: 256) - try self.validate(self.locale, name: "locale", parent: name, min: 1) - try self.meetingRoomConfiguration?.validate(name: "\(name).meetingRoomConfiguration") - try self.validate(self.profileName, name: "profileName", parent: name, max: 100) - try self.validate(self.profileName, name: "profileName", parent: name, min: 1) - try self.validate(self.profileName, name: "profileName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.tags?.forEach { - try $0.validate(name: "\(name).tags[]") - } - try self.validate(self.timezone, name: "timezone", parent: name, max: 100) - try self.validate(self.timezone, name: "timezone", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case address = "Address" - case clientRequestToken = "ClientRequestToken" - case dataRetentionOptIn = "DataRetentionOptIn" - case distanceUnit = "DistanceUnit" - case locale = "Locale" - case maxVolumeLimit = "MaxVolumeLimit" - case meetingRoomConfiguration = "MeetingRoomConfiguration" - case profileName = "ProfileName" - case pstnEnabled = "PSTNEnabled" - case setupModeDisabled = "SetupModeDisabled" - case tags = "Tags" - case temperatureUnit = "TemperatureUnit" - case timezone = "Timezone" - case wakeWord = "WakeWord" - } - } - - public struct CreateProfileResponse: AWSDecodableShape { - /// 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 CreateRequireCheckIn: AWSEncodableShape { - /// Whether require check in is enabled or not. - public let enabled: Bool - /// Duration between 5 and 20 minutes to determine when to release the room if it's not checked into. - public let releaseAfterMinutes: Int - - public init(enabled: Bool, releaseAfterMinutes: Int) { - self.enabled = enabled - self.releaseAfterMinutes = releaseAfterMinutes - } - - private enum CodingKeys: String, CodingKey { - case enabled = "Enabled" - case releaseAfterMinutes = "ReleaseAfterMinutes" - } - } - - public struct CreateRoomRequest: AWSEncodableShape { - /// A unique, user-specified identifier for this request that ensures idempotency. - public let clientRequestToken: String? - /// The description for the room. - public let description: String? - /// The profile ARN for the room. This is required. - public let profileArn: String? - /// The calendar ARN for the room. - public let providerCalendarId: String? - /// The name for the room. - public let roomName: String - /// The tags for the room. - public let tags: [Tag]? - - public init(clientRequestToken: String? = CreateRoomRequest.idempotencyToken(), description: String? = nil, profileArn: String? = nil, providerCalendarId: String? = nil, roomName: String, tags: [Tag]? = nil) { - self.clientRequestToken = clientRequestToken - self.description = description - self.profileArn = profileArn - self.providerCalendarId = providerCalendarId - self.roomName = roomName - self.tags = tags - } - - public func validate(name: String) throws { - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, max: 150) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 10) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$") - try self.validate(self.description, name: "description", parent: name, max: 200) - try self.validate(self.description, name: "description", parent: name, min: 1) - try self.validate(self.description, name: "description", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.profileArn, name: "profileArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.providerCalendarId, name: "providerCalendarId", parent: name, max: 100) - try self.validate(self.roomName, name: "roomName", parent: name, max: 100) - try self.validate(self.roomName, name: "roomName", parent: name, min: 1) - try self.validate(self.roomName, name: "roomName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.tags?.forEach { - try $0.validate(name: "\(name).tags[]") - } - } - - private enum CodingKeys: String, CodingKey { - case clientRequestToken = "ClientRequestToken" - case description = "Description" - case profileArn = "ProfileArn" - case providerCalendarId = "ProviderCalendarId" - case roomName = "RoomName" - case tags = "Tags" - } - } - - public struct CreateRoomResponse: AWSDecodableShape { - /// 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 CreateSkillGroupRequest: AWSEncodableShape { - /// A unique, user-specified identifier for this request that ensures idempotency. - public let clientRequestToken: String? - /// The description for the skill group. - public let description: String? - /// The name for the skill group. - public let skillGroupName: String - /// The tags for the skill group. - public let tags: [Tag]? - - public init(clientRequestToken: String? = CreateSkillGroupRequest.idempotencyToken(), description: String? = nil, skillGroupName: String, tags: [Tag]? = nil) { - self.clientRequestToken = clientRequestToken - self.description = description - self.skillGroupName = skillGroupName - self.tags = tags - } - - public func validate(name: String) throws { - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, max: 150) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 10) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$") - try self.validate(self.description, name: "description", parent: name, max: 200) - try self.validate(self.description, name: "description", parent: name, min: 1) - try self.validate(self.description, name: "description", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.skillGroupName, name: "skillGroupName", parent: name, max: 100) - try self.validate(self.skillGroupName, name: "skillGroupName", parent: name, min: 1) - try self.validate(self.skillGroupName, name: "skillGroupName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.tags?.forEach { - try $0.validate(name: "\(name).tags[]") - } - } - - private enum CodingKeys: String, CodingKey { - case clientRequestToken = "ClientRequestToken" - case description = "Description" - case skillGroupName = "SkillGroupName" - case tags = "Tags" - } - } - - public struct CreateSkillGroupResponse: AWSDecodableShape { - /// 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 CreateUserRequest: AWSEncodableShape { - /// A unique, user-specified identifier for this request that ensures idempotency. - public let clientRequestToken: String? - /// The email address for the user. - public let email: String? - /// The first name for the user. - public let firstName: String? - /// The last name for the user. - public let lastName: String? - /// The tags for the user. - public let tags: [Tag]? - /// The ARN for the user. - public let userId: String - - public init(clientRequestToken: String? = CreateUserRequest.idempotencyToken(), email: String? = nil, firstName: String? = nil, lastName: String? = nil, tags: [Tag]? = nil, userId: String) { - self.clientRequestToken = clientRequestToken - self.email = email - self.firstName = firstName - self.lastName = lastName - self.tags = tags - self.userId = userId - } - - public func validate(name: String) throws { - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, max: 150) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 10) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$") - try self.validate(self.email, name: "email", parent: name, max: 128) - try self.validate(self.email, name: "email", parent: name, min: 1) - try self.validate(self.email, name: "email", parent: name, pattern: "^\\w[+-.\\w]*@\\w[\\w\\.\\-]+\\.[0-9a-zA-Z]{2,24}$") - try self.validate(self.firstName, name: "firstName", parent: name, max: 30) - try self.validate(self.firstName, name: "firstName", parent: name, pattern: "^([A-Za-z\\-' 0-9._]|\\p{IsLetter})*$") - try self.validate(self.lastName, name: "lastName", parent: name, max: 30) - try self.validate(self.lastName, name: "lastName", parent: name, pattern: "^([A-Za-z\\-' 0-9._]|\\p{IsLetter})*$") - try self.tags?.forEach { - try $0.validate(name: "\(name).tags[]") - } - try self.validate(self.userId, name: "userId", parent: name, max: 128) - try self.validate(self.userId, name: "userId", parent: name, min: 1) - try self.validate(self.userId, name: "userId", parent: name, pattern: "^[a-zA-Z0-9@_+.-]*$") - } - - private enum CodingKeys: String, CodingKey { - case clientRequestToken = "ClientRequestToken" - case email = "Email" - case firstName = "FirstName" - case lastName = "LastName" - case tags = "Tags" - case userId = "UserId" - } - } - - public struct CreateUserResponse: AWSDecodableShape { - /// 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 DeleteAddressBookRequest: AWSEncodableShape { - /// The ARN of the address book to delete. - public let addressBookArn: String - - public init(addressBookArn: String) { - self.addressBookArn = addressBookArn - } - - public func validate(name: String) throws { - try self.validate(self.addressBookArn, name: "addressBookArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case addressBookArn = "AddressBookArn" - } - } - - public struct DeleteAddressBookResponse: AWSDecodableShape { - public init() {} - } - - public struct DeleteBusinessReportScheduleRequest: AWSEncodableShape { - /// The ARN of the business report schedule. - public let scheduleArn: String - - public init(scheduleArn: String) { - self.scheduleArn = scheduleArn - } - - public func validate(name: String) throws { - try self.validate(self.scheduleArn, name: "scheduleArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case scheduleArn = "ScheduleArn" - } - } - - public struct DeleteBusinessReportScheduleResponse: AWSDecodableShape { - public init() {} - } - - public struct DeleteConferenceProviderRequest: AWSEncodableShape { - /// The ARN of the conference provider. - public let conferenceProviderArn: String - - public init(conferenceProviderArn: String) { - self.conferenceProviderArn = conferenceProviderArn - } - - public func validate(name: String) throws { - try self.validate(self.conferenceProviderArn, name: "conferenceProviderArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case conferenceProviderArn = "ConferenceProviderArn" - } - } - - public struct DeleteConferenceProviderResponse: AWSDecodableShape { - public init() {} - } - - public struct DeleteContactRequest: AWSEncodableShape { - /// The ARN of the contact to delete. - public let contactArn: String - - public init(contactArn: String) { - self.contactArn = contactArn - } - - public func validate(name: String) throws { - try self.validate(self.contactArn, name: "contactArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case contactArn = "ContactArn" - } - } - - public struct DeleteContactResponse: AWSDecodableShape { - public init() {} - } - - public struct DeleteDeviceRequest: AWSEncodableShape { - /// The ARN of the device for which to request details. - public let deviceArn: String - - public init(deviceArn: String) { - self.deviceArn = deviceArn - } - - public func validate(name: String) throws { - try self.validate(self.deviceArn, name: "deviceArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case deviceArn = "DeviceArn" - } - } - - public struct DeleteDeviceResponse: AWSDecodableShape { - public init() {} - } - - public struct DeleteDeviceUsageDataRequest: AWSEncodableShape { - /// The ARN of the device. - public let deviceArn: String - /// The type of usage data to delete. - public let deviceUsageType: DeviceUsageType - - public init(deviceArn: String, deviceUsageType: DeviceUsageType) { - self.deviceArn = deviceArn - self.deviceUsageType = deviceUsageType - } - - public func validate(name: String) throws { - try self.validate(self.deviceArn, name: "deviceArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case deviceArn = "DeviceArn" - case deviceUsageType = "DeviceUsageType" - } - } - - public struct DeleteDeviceUsageDataResponse: AWSDecodableShape { - public init() {} - } - - public struct DeleteGatewayGroupRequest: AWSEncodableShape { - /// The ARN of the gateway group to delete. - public let gatewayGroupArn: String - - public init(gatewayGroupArn: String) { - self.gatewayGroupArn = gatewayGroupArn - } - - public func validate(name: String) throws { - try self.validate(self.gatewayGroupArn, name: "gatewayGroupArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case gatewayGroupArn = "GatewayGroupArn" - } - } - - public struct DeleteGatewayGroupResponse: AWSDecodableShape { - public init() {} - } - - public struct DeleteNetworkProfileRequest: AWSEncodableShape { - /// The ARN of the network profile associated with a device. - public let networkProfileArn: String - - public init(networkProfileArn: String) { - self.networkProfileArn = networkProfileArn - } - - public func validate(name: String) throws { - try self.validate(self.networkProfileArn, name: "networkProfileArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case networkProfileArn = "NetworkProfileArn" - } - } - - public struct DeleteNetworkProfileResponse: AWSDecodableShape { - public init() {} - } - - public struct DeleteProfileRequest: AWSEncodableShape { - /// The ARN of the room profile to delete. Required. - public let profileArn: String? - - public init(profileArn: String? = nil) { - self.profileArn = profileArn - } - - public func validate(name: String) throws { - try self.validate(self.profileArn, name: "profileArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case profileArn = "ProfileArn" - } - } - - public struct DeleteProfileResponse: AWSDecodableShape { - public init() {} - } - - public struct DeleteRoomRequest: AWSEncodableShape { - /// The ARN of the room to delete. Required. - public let roomArn: String? - - public init(roomArn: String? = nil) { - self.roomArn = roomArn - } - - public func validate(name: String) throws { - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case roomArn = "RoomArn" - } - } - - public struct DeleteRoomResponse: AWSDecodableShape { - public init() {} - } - - public struct DeleteRoomSkillParameterRequest: AWSEncodableShape { - /// The room skill parameter key for which to remove details. - public let parameterKey: 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 - - public init(parameterKey: String, roomArn: String? = nil, skillId: String) { - self.parameterKey = parameterKey - self.roomArn = roomArn - self.skillId = skillId - } - - public func validate(name: String) throws { - try self.validate(self.parameterKey, name: "parameterKey", parent: name, max: 256) - try self.validate(self.parameterKey, name: "parameterKey", parent: name, min: 1) - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.skillId, name: "skillId", parent: name, pattern: "^(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})$") - } - - private enum CodingKeys: String, CodingKey { - case parameterKey = "ParameterKey" - case roomArn = "RoomArn" - case skillId = "SkillId" - } - } - - public struct DeleteRoomSkillParameterResponse: AWSDecodableShape { - public init() {} - } - - public struct DeleteSkillAuthorizationRequest: AWSEncodableShape { - /// The room that the skill is authorized for. - public let roomArn: String? - /// The unique identifier of a skill. - public let skillId: String - - public init(roomArn: String? = nil, skillId: String) { - self.roomArn = roomArn - self.skillId = skillId - } - - public func validate(name: String) throws { - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.skillId, name: "skillId", parent: name, pattern: "^(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})$") - } - - private enum CodingKeys: String, CodingKey { - case roomArn = "RoomArn" - case skillId = "SkillId" - } - } - - public struct DeleteSkillAuthorizationResponse: AWSDecodableShape { - public init() {} - } - - public struct DeleteSkillGroupRequest: AWSEncodableShape { - /// The ARN of the skill group to delete. Required. - public let skillGroupArn: String? - - public init(skillGroupArn: String? = nil) { - self.skillGroupArn = skillGroupArn - } - - public func validate(name: String) throws { - try self.validate(self.skillGroupArn, name: "skillGroupArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case skillGroupArn = "SkillGroupArn" - } - } - - public struct DeleteSkillGroupResponse: AWSDecodableShape { - public init() {} - } - - public struct DeleteUserRequest: AWSEncodableShape { - /// 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 - } - - public func validate(name: String) throws { - try self.validate(self.enrollmentId, name: "enrollmentId", parent: name, max: 128) - try self.validate(self.userArn, name: "userArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case enrollmentId = "EnrollmentId" - case userArn = "UserArn" - } - } - - public struct DeleteUserResponse: AWSDecodableShape { - public init() {} - } - - public struct DeveloperInfo: AWSDecodableShape { - /// The name of the developer. - public let developerName: String? - /// The email of the developer. - public let email: String? - /// The URL of the privacy policy. - public let privacyPolicy: String? - /// The website of the developer. - public let url: String? - - public init(developerName: String? = nil, email: String? = nil, privacyPolicy: String? = nil, url: String? = nil) { - self.developerName = developerName - self.email = email - self.privacyPolicy = privacyPolicy - self.url = url - } - - private enum CodingKeys: String, CodingKey { - case developerName = "DeveloperName" - case email = "Email" - case privacyPolicy = "PrivacyPolicy" - case url = "Url" - } - } - - public struct Device: AWSDecodableShape { - /// The ARN of a device. - public let deviceArn: String? - /// The name of a device. - public let deviceName: String? - /// The serial number of a device. - public let deviceSerialNumber: String? - /// The status of a device. If the status is not READY, check the DeviceStatusInfo value for details. - public let deviceStatus: DeviceStatus? - /// Detailed information about a device's status. - public let deviceStatusInfo: DeviceStatusInfo? - /// The type of a device. - public let deviceType: String? - /// The MAC address of a device. - public let macAddress: String? - /// Detailed information about a device's network profile. - public let networkProfileInfo: DeviceNetworkProfileInfo? - /// The room ARN of a device. - public let roomArn: String? - /// The software version of a device. - public let softwareVersion: String? - - public init(deviceArn: String? = nil, deviceName: String? = nil, deviceSerialNumber: String? = nil, deviceStatus: DeviceStatus? = nil, deviceStatusInfo: DeviceStatusInfo? = nil, deviceType: String? = nil, macAddress: String? = nil, networkProfileInfo: DeviceNetworkProfileInfo? = nil, roomArn: String? = nil, softwareVersion: String? = nil) { - self.deviceArn = deviceArn - self.deviceName = deviceName - self.deviceSerialNumber = deviceSerialNumber - self.deviceStatus = deviceStatus - self.deviceStatusInfo = deviceStatusInfo - self.deviceType = deviceType - self.macAddress = macAddress - self.networkProfileInfo = networkProfileInfo - self.roomArn = roomArn - self.softwareVersion = softwareVersion - } - - private enum CodingKeys: String, CodingKey { - case deviceArn = "DeviceArn" - case deviceName = "DeviceName" - case deviceSerialNumber = "DeviceSerialNumber" - case deviceStatus = "DeviceStatus" - case deviceStatusInfo = "DeviceStatusInfo" - case deviceType = "DeviceType" - case macAddress = "MacAddress" - case networkProfileInfo = "NetworkProfileInfo" - case roomArn = "RoomArn" - case softwareVersion = "SoftwareVersion" - } - } - - public struct DeviceData: AWSDecodableShape { - /// The time (in epoch) when the device data was created. - public let createdTime: Date? - /// The ARN of a device. - public let deviceArn: String? - /// The name of a device. - public let deviceName: String? - /// The serial number of a device. - public let deviceSerialNumber: String? - /// The status of a device. - public let deviceStatus: DeviceStatus? - /// Detailed information about a device's status. - public let deviceStatusInfo: DeviceStatusInfo? - /// The type of a device. - public let deviceType: String? - /// The MAC address of a device. - public let macAddress: String? - /// The ARN of the network profile associated with a device. - public let networkProfileArn: String? - /// The name of the network profile associated with a device. - public let networkProfileName: String? - /// The room ARN associated with a device. - public let roomArn: String? - /// The name of the room associated with a device. - public let roomName: String? - /// The software version of a device. - public let softwareVersion: String? - - public init(createdTime: Date? = nil, deviceArn: String? = nil, deviceName: String? = nil, deviceSerialNumber: String? = nil, deviceStatus: DeviceStatus? = nil, deviceStatusInfo: DeviceStatusInfo? = nil, deviceType: String? = nil, macAddress: String? = nil, networkProfileArn: String? = nil, networkProfileName: String? = nil, roomArn: String? = nil, roomName: String? = nil, softwareVersion: String? = nil) { - self.createdTime = createdTime - self.deviceArn = deviceArn - self.deviceName = deviceName - self.deviceSerialNumber = deviceSerialNumber - self.deviceStatus = deviceStatus - self.deviceStatusInfo = deviceStatusInfo - self.deviceType = deviceType - self.macAddress = macAddress - self.networkProfileArn = networkProfileArn - self.networkProfileName = networkProfileName - self.roomArn = roomArn - self.roomName = roomName - self.softwareVersion = softwareVersion - } - - private enum CodingKeys: String, CodingKey { - case createdTime = "CreatedTime" - case deviceArn = "DeviceArn" - case deviceName = "DeviceName" - case deviceSerialNumber = "DeviceSerialNumber" - case deviceStatus = "DeviceStatus" - case deviceStatusInfo = "DeviceStatusInfo" - case deviceType = "DeviceType" - case macAddress = "MacAddress" - case networkProfileArn = "NetworkProfileArn" - case networkProfileName = "NetworkProfileName" - case roomArn = "RoomArn" - case roomName = "RoomName" - case softwareVersion = "SoftwareVersion" - } - } - - public struct DeviceEvent: AWSDecodableShape { - /// The time (in epoch) when the event occurred. - public let timestamp: Date? - /// The type of device event. - public let type: DeviceEventType? - /// The value of the event. - public let value: String? - - public init(timestamp: Date? = nil, type: DeviceEventType? = nil, value: String? = nil) { - self.timestamp = timestamp - self.type = type - self.value = value - } - - private enum CodingKeys: String, CodingKey { - case timestamp = "Timestamp" - case type = "Type" - case value = "Value" - } - } - - public struct DeviceNetworkProfileInfo: AWSDecodableShape { - /// The ARN of the certificate associated with a device. - public let certificateArn: String? - /// The time (in epoch) when the certificate expires. - public let certificateExpirationTime: Date? - /// The ARN of the network profile associated with a device. - public let networkProfileArn: String? - - public init(certificateArn: String? = nil, certificateExpirationTime: Date? = nil, networkProfileArn: String? = nil) { - self.certificateArn = certificateArn - self.certificateExpirationTime = certificateExpirationTime - self.networkProfileArn = networkProfileArn - } - - private enum CodingKeys: String, CodingKey { - case certificateArn = "CertificateArn" - case certificateExpirationTime = "CertificateExpirationTime" - case networkProfileArn = "NetworkProfileArn" - } - } - - public struct DeviceStatusDetail: AWSDecodableShape { - /// The device status detail code. - public let code: DeviceStatusDetailCode? - /// The list of available features on the device. - public let feature: Feature? - - public init(code: DeviceStatusDetailCode? = nil, feature: Feature? = nil) { - self.code = code - self.feature = feature - } - - private enum CodingKeys: String, CodingKey { - case code = "Code" - case feature = "Feature" - } - } - - public struct DeviceStatusInfo: AWSDecodableShape { - /// The latest available information about the connection status of a device. - public let connectionStatus: ConnectionStatus? - /// The time (in epoch) when the device connection status changed. - public let connectionStatusUpdatedTime: Date? - /// One or more device status detail descriptions. - public let deviceStatusDetails: [DeviceStatusDetail]? - - public init(connectionStatus: ConnectionStatus? = nil, connectionStatusUpdatedTime: Date? = nil, deviceStatusDetails: [DeviceStatusDetail]? = nil) { - self.connectionStatus = connectionStatus - self.connectionStatusUpdatedTime = connectionStatusUpdatedTime - self.deviceStatusDetails = deviceStatusDetails - } - - private enum CodingKeys: String, CodingKey { - case connectionStatus = "ConnectionStatus" - case connectionStatusUpdatedTime = "ConnectionStatusUpdatedTime" - case deviceStatusDetails = "DeviceStatusDetails" - } - } - - public struct DisassociateContactFromAddressBookRequest: AWSEncodableShape { - /// The ARN of the address from which to disassociate the contact. - public let addressBookArn: String - /// The ARN of the contact to disassociate from an address book. - public let contactArn: String - - public init(addressBookArn: String, contactArn: String) { - self.addressBookArn = addressBookArn - self.contactArn = contactArn - } - - public func validate(name: String) throws { - try self.validate(self.addressBookArn, name: "addressBookArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.contactArn, name: "contactArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case addressBookArn = "AddressBookArn" - case contactArn = "ContactArn" - } - } - - public struct DisassociateContactFromAddressBookResponse: AWSDecodableShape { - public init() {} - } - - public struct DisassociateDeviceFromRoomRequest: AWSEncodableShape { - /// The ARN of the device to disassociate from a room. Required. - public let deviceArn: String? - - public init(deviceArn: String? = nil) { - self.deviceArn = deviceArn - } - - public func validate(name: String) throws { - try self.validate(self.deviceArn, name: "deviceArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case deviceArn = "DeviceArn" - } - } - - public struct DisassociateDeviceFromRoomResponse: AWSDecodableShape { - public init() {} - } - - public struct DisassociateSkillFromSkillGroupRequest: AWSEncodableShape { - /// The unique identifier of a skill. Required. - public let skillGroupArn: String? - /// The ARN of a skill group to associate to a skill. - public let skillId: String - - public init(skillGroupArn: String? = nil, skillId: String) { - self.skillGroupArn = skillGroupArn - self.skillId = skillId - } - - public func validate(name: String) throws { - try self.validate(self.skillGroupArn, name: "skillGroupArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.skillId, name: "skillId", parent: name, pattern: "^(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})$") - } - - private enum CodingKeys: String, CodingKey { - case skillGroupArn = "SkillGroupArn" - case skillId = "SkillId" - } - } - - public struct DisassociateSkillFromSkillGroupResponse: AWSDecodableShape { - public init() {} - } - - public struct DisassociateSkillFromUsersRequest: AWSEncodableShape { - /// The private skill ID you want to make unavailable for enrolled users. - public let skillId: String - - public init(skillId: String) { - self.skillId = skillId - } - - public func validate(name: String) throws { - try self.validate(self.skillId, name: "skillId", parent: name, pattern: "^(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})$") - } - - private enum CodingKeys: String, CodingKey { - case skillId = "SkillId" - } - } - - public struct DisassociateSkillFromUsersResponse: AWSDecodableShape { - public init() {} - } - - public struct DisassociateSkillGroupFromRoomRequest: AWSEncodableShape { - /// 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 - } - - public func validate(name: String) throws { - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.skillGroupArn, name: "skillGroupArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case roomArn = "RoomArn" - case skillGroupArn = "SkillGroupArn" - } - } - - public struct DisassociateSkillGroupFromRoomResponse: AWSDecodableShape { - public init() {} - } - - public struct EndOfMeetingReminder: AWSDecodableShape { - /// Whether an end of meeting reminder is enabled or not. - public let enabled: Bool? - /// A range of 3 to 15 minutes that determines when the reminder begins. - public let reminderAtMinutes: [Int]? - /// The type of sound that users hear during the end of meeting reminder. - public let reminderType: EndOfMeetingReminderType? - - public init(enabled: Bool? = nil, reminderAtMinutes: [Int]? = nil, reminderType: EndOfMeetingReminderType? = nil) { - self.enabled = enabled - self.reminderAtMinutes = reminderAtMinutes - self.reminderType = reminderType - } - - private enum CodingKeys: String, CodingKey { - case enabled = "Enabled" - case reminderAtMinutes = "ReminderAtMinutes" - case reminderType = "ReminderType" - } - } - - public struct Filter: AWSEncodableShape { - /// 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 - } - - public func validate(name: String) throws { - try self.validate(self.key, name: "key", parent: name, max: 500) - try self.validate(self.key, name: "key", parent: name, min: 1) - try self.values.forEach { - try validate($0, name: "values[]", parent: name, max: 500) - try validate($0, name: "values[]", parent: name, min: 1) - } - try self.validate(self.values, name: "values", parent: name, max: 50) - } - - private enum CodingKeys: String, CodingKey { - case key = "Key" - case values = "Values" - } - } - - public struct ForgetSmartHomeAppliancesRequest: AWSEncodableShape { - /// The room that the appliances are associated with. - public let roomArn: String - - public init(roomArn: String) { - self.roomArn = roomArn - } - - public func validate(name: String) throws { - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case roomArn = "RoomArn" - } - } - - public struct ForgetSmartHomeAppliancesResponse: AWSDecodableShape { - public init() {} - } - - public struct Gateway: AWSDecodableShape { - /// The ARN of the gateway. - public let arn: String? - /// The description of the gateway. - public let description: String? - /// The ARN of the gateway group that the gateway is associated to. - public let gatewayGroupArn: String? - /// The name of the gateway. - public let name: String? - /// The software version of the gateway. The gateway automatically updates its software version during normal operation. - public let softwareVersion: String? - - public init(arn: String? = nil, description: String? = nil, gatewayGroupArn: String? = nil, name: String? = nil, softwareVersion: String? = nil) { - self.arn = arn - self.description = description - self.gatewayGroupArn = gatewayGroupArn - self.name = name - self.softwareVersion = softwareVersion - } - - private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case description = "Description" - case gatewayGroupArn = "GatewayGroupArn" - case name = "Name" - case softwareVersion = "SoftwareVersion" - } - } - - public struct GatewayGroup: AWSDecodableShape { - /// The ARN of the gateway group. - public let arn: String? - /// The description of the gateway group. - public let description: String? - /// The name of the gateway group. - public let name: String? - - public init(arn: String? = nil, description: String? = nil, name: String? = nil) { - self.arn = arn - self.description = description - self.name = name - } - - private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case description = "Description" - case name = "Name" - } - } - - public struct GatewayGroupSummary: AWSDecodableShape { - /// The ARN of the gateway group. - public let arn: String? - /// The description of the gateway group. - public let description: String? - /// The name of the gateway group. - public let name: String? - - public init(arn: String? = nil, description: String? = nil, name: String? = nil) { - self.arn = arn - self.description = description - self.name = name - } - - private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case description = "Description" - case name = "Name" - } - } - - public struct GatewaySummary: AWSDecodableShape { - /// The ARN of the gateway. - public let arn: String? - /// The description of the gateway. - public let description: String? - /// The ARN of the gateway group that the gateway is associated to. - public let gatewayGroupArn: String? - /// The name of the gateway. - public let name: String? - /// The software version of the gateway. The gateway automatically updates its software version during normal operation. - public let softwareVersion: String? - - public init(arn: String? = nil, description: String? = nil, gatewayGroupArn: String? = nil, name: String? = nil, softwareVersion: String? = nil) { - self.arn = arn - self.description = description - self.gatewayGroupArn = gatewayGroupArn - self.name = name - self.softwareVersion = softwareVersion - } - - private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case description = "Description" - case gatewayGroupArn = "GatewayGroupArn" - case name = "Name" - case softwareVersion = "SoftwareVersion" - } - } - - public struct GetAddressBookRequest: AWSEncodableShape { - /// The ARN of the address book for which to request details. - public let addressBookArn: String - - public init(addressBookArn: String) { - self.addressBookArn = addressBookArn - } - - public func validate(name: String) throws { - try self.validate(self.addressBookArn, name: "addressBookArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case addressBookArn = "AddressBookArn" - } - } - - public struct GetAddressBookResponse: AWSDecodableShape { - /// The details of the requested address book. - public let addressBook: AddressBook? - - public init(addressBook: AddressBook? = nil) { - self.addressBook = addressBook - } - - private enum CodingKeys: String, CodingKey { - case addressBook = "AddressBook" - } - } - - public struct GetConferencePreferenceRequest: AWSEncodableShape { - public init() {} - } - - public struct GetConferencePreferenceResponse: AWSDecodableShape { - /// The conference preference. - public let preference: ConferencePreference? - - public init(preference: ConferencePreference? = nil) { - self.preference = preference - } - - private enum CodingKeys: String, CodingKey { - case preference = "Preference" - } - } - - public struct GetConferenceProviderRequest: AWSEncodableShape { - /// The ARN of the newly created conference provider. - public let conferenceProviderArn: String - - public init(conferenceProviderArn: String) { - self.conferenceProviderArn = conferenceProviderArn - } - - public func validate(name: String) throws { - try self.validate(self.conferenceProviderArn, name: "conferenceProviderArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case conferenceProviderArn = "ConferenceProviderArn" - } - } - - public struct GetConferenceProviderResponse: AWSDecodableShape { - /// The conference provider. - public let conferenceProvider: ConferenceProvider? - - public init(conferenceProvider: ConferenceProvider? = nil) { - self.conferenceProvider = conferenceProvider - } - - private enum CodingKeys: String, CodingKey { - case conferenceProvider = "ConferenceProvider" - } - } - - public struct GetContactRequest: AWSEncodableShape { - /// The ARN of the contact for which to request details. - public let contactArn: String - - public init(contactArn: String) { - self.contactArn = contactArn - } - - public func validate(name: String) throws { - try self.validate(self.contactArn, name: "contactArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case contactArn = "ContactArn" - } - } - - public struct GetContactResponse: AWSDecodableShape { - /// The details of the requested contact. - public let contact: Contact? - - public init(contact: Contact? = nil) { - self.contact = contact - } - - private enum CodingKeys: String, CodingKey { - case contact = "Contact" - } - } - - public struct GetDeviceRequest: AWSEncodableShape { - /// The ARN of the device for which to request details. Required. - public let deviceArn: String? - - public init(deviceArn: String? = nil) { - self.deviceArn = deviceArn - } - - public func validate(name: String) throws { - try self.validate(self.deviceArn, name: "deviceArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case deviceArn = "DeviceArn" - } - } - - public struct GetDeviceResponse: AWSDecodableShape { - /// 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 struct GetGatewayGroupRequest: AWSEncodableShape { - /// The ARN of the gateway group to get. - public let gatewayGroupArn: String - - public init(gatewayGroupArn: String) { - self.gatewayGroupArn = gatewayGroupArn - } - - public func validate(name: String) throws { - try self.validate(self.gatewayGroupArn, name: "gatewayGroupArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case gatewayGroupArn = "GatewayGroupArn" - } - } - - public struct GetGatewayGroupResponse: AWSDecodableShape { - public let gatewayGroup: GatewayGroup? - - public init(gatewayGroup: GatewayGroup? = nil) { - self.gatewayGroup = gatewayGroup - } - - private enum CodingKeys: String, CodingKey { - case gatewayGroup = "GatewayGroup" - } - } - - public struct GetGatewayRequest: AWSEncodableShape { - /// The ARN of the gateway to get. - public let gatewayArn: String - - public init(gatewayArn: String) { - self.gatewayArn = gatewayArn - } - - public func validate(name: String) throws { - try self.validate(self.gatewayArn, name: "gatewayArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case gatewayArn = "GatewayArn" - } - } - - public struct GetGatewayResponse: AWSDecodableShape { - /// The details of the gateway. - public let gateway: Gateway? - - public init(gateway: Gateway? = nil) { - self.gateway = gateway - } - - private enum CodingKeys: String, CodingKey { - case gateway = "Gateway" - } - } - - public struct GetInvitationConfigurationRequest: AWSEncodableShape { - public init() {} - } - - public struct GetInvitationConfigurationResponse: AWSDecodableShape { - /// The email ID of the organization or individual contact that the enrolled user can use. - public let contactEmail: String? - /// The name of the organization sending the enrollment invite to a user. - public let organizationName: String? - /// The list of private skill IDs that you want to recommend to the user to enable in the invitation. - public let privateSkillIds: [String]? - - public init(contactEmail: String? = nil, organizationName: String? = nil, privateSkillIds: [String]? = nil) { - self.contactEmail = contactEmail - self.organizationName = organizationName - self.privateSkillIds = privateSkillIds - } - - private enum CodingKeys: String, CodingKey { - case contactEmail = "ContactEmail" - case organizationName = "OrganizationName" - case privateSkillIds = "PrivateSkillIds" - } - } - - public struct GetNetworkProfileRequest: AWSEncodableShape { - /// The ARN of the network profile associated with a device. - public let networkProfileArn: String - - public init(networkProfileArn: String) { - self.networkProfileArn = networkProfileArn - } - - public func validate(name: String) throws { - try self.validate(self.networkProfileArn, name: "networkProfileArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case networkProfileArn = "NetworkProfileArn" - } - } - - public struct GetNetworkProfileResponse: AWSDecodableShape { - /// The network profile associated with a device. - public let networkProfile: NetworkProfile? - - public init(networkProfile: NetworkProfile? = nil) { - self.networkProfile = networkProfile - } - - private enum CodingKeys: String, CodingKey { - case networkProfile = "NetworkProfile" - } - } - - public struct GetProfileRequest: AWSEncodableShape { - /// The ARN of the room profile for which to request details. Required. - public let profileArn: String? - - public init(profileArn: String? = nil) { - self.profileArn = profileArn - } - - public func validate(name: String) throws { - try self.validate(self.profileArn, name: "profileArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case profileArn = "ProfileArn" - } - } - - public struct GetProfileResponse: AWSDecodableShape { - /// 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 GetRoomRequest: AWSEncodableShape { - /// The ARN of the room for which to request details. Required. - public let roomArn: String? - - public init(roomArn: String? = nil) { - self.roomArn = roomArn - } - - public func validate(name: String) throws { - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case roomArn = "RoomArn" - } - } - - public struct GetRoomResponse: AWSDecodableShape { - /// 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 GetRoomSkillParameterRequest: AWSEncodableShape { - /// The room skill parameter key for which to get details. Required. - public let parameterKey: 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 - - public init(parameterKey: String, roomArn: String? = nil, skillId: String) { - self.parameterKey = parameterKey - self.roomArn = roomArn - self.skillId = skillId - } - - public func validate(name: String) throws { - try self.validate(self.parameterKey, name: "parameterKey", parent: name, max: 256) - try self.validate(self.parameterKey, name: "parameterKey", parent: name, min: 1) - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.skillId, name: "skillId", parent: name, pattern: "^(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})$") - } - - private enum CodingKeys: String, CodingKey { - case parameterKey = "ParameterKey" - case roomArn = "RoomArn" - case skillId = "SkillId" - } - } - - public struct GetRoomSkillParameterResponse: AWSDecodableShape { - /// 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 GetSkillGroupRequest: AWSEncodableShape { - /// The ARN of the skill group for which to get details. Required. - public let skillGroupArn: String? - - public init(skillGroupArn: String? = nil) { - self.skillGroupArn = skillGroupArn - } - - public func validate(name: String) throws { - try self.validate(self.skillGroupArn, name: "skillGroupArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case skillGroupArn = "SkillGroupArn" - } - } - - public struct GetSkillGroupResponse: AWSDecodableShape { - /// 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 IPDialIn: AWSEncodableShape & AWSDecodableShape { - /// The protocol, including SIP, SIPS, and H323. - public let commsProtocol: CommsProtocol - /// The IP address. - public let endpoint: String - - public init(commsProtocol: CommsProtocol, endpoint: String) { - self.commsProtocol = commsProtocol - self.endpoint = endpoint - } - - public func validate(name: String) throws { - try self.validate(self.endpoint, name: "endpoint", parent: name, max: 256) - try self.validate(self.endpoint, name: "endpoint", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case commsProtocol = "CommsProtocol" - case endpoint = "Endpoint" - } - } - - public struct InstantBooking: AWSDecodableShape { - /// Duration between 15 and 240 minutes at increments of 15 that determines how long to book an available room when a meeting is started with Alexa. - public let durationInMinutes: Int? - /// Whether instant booking is enabled or not. - public let enabled: Bool? - - public init(durationInMinutes: Int? = nil, enabled: Bool? = nil) { - self.durationInMinutes = durationInMinutes - self.enabled = enabled - } - - private enum CodingKeys: String, CodingKey { - case durationInMinutes = "DurationInMinutes" - case enabled = "Enabled" - } - } - - public struct ListBusinessReportSchedulesRequest: AWSEncodableShape { - /// The maximum number of schedules listed in the call. - public let maxResults: Int? - /// The token used to list the remaining schedules from the previous API call. - public let nextToken: String? - - public init(maxResults: Int? = nil, nextToken: String? = nil) { - self.maxResults = maxResults - self.nextToken = nextToken - } - - public func validate(name: String) throws { - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case maxResults = "MaxResults" - case nextToken = "NextToken" - } - } - - public struct ListBusinessReportSchedulesResponse: AWSDecodableShape { - /// The schedule of the reports. - public let businessReportSchedules: [BusinessReportSchedule]? - /// The token used to list the remaining schedules from the previous API call. - public let nextToken: String? - - public init(businessReportSchedules: [BusinessReportSchedule]? = nil, nextToken: String? = nil) { - self.businessReportSchedules = businessReportSchedules - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case businessReportSchedules = "BusinessReportSchedules" - case nextToken = "NextToken" - } - } - - public struct ListConferenceProvidersRequest: AWSEncodableShape { - /// The maximum number of conference providers to be returned, per paginated calls. - public let maxResults: Int? - /// The tokens used for pagination. - public let nextToken: String? - - public init(maxResults: Int? = nil, nextToken: String? = nil) { - self.maxResults = maxResults - self.nextToken = nextToken - } - - public func validate(name: String) throws { - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case maxResults = "MaxResults" - case nextToken = "NextToken" - } - } - - public struct ListConferenceProvidersResponse: AWSDecodableShape { - /// The conference providers. - public let conferenceProviders: [ConferenceProvider]? - /// The tokens used for pagination. - public let nextToken: String? - - public init(conferenceProviders: [ConferenceProvider]? = nil, nextToken: String? = nil) { - self.conferenceProviders = conferenceProviders - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case conferenceProviders = "ConferenceProviders" - case nextToken = "NextToken" - } - } - - public struct ListDeviceEventsRequest: AWSEncodableShape { - /// The ARN of a device. - public let deviceArn: String - /// The event type to filter device events. If EventType isn't specified, this returns a list of all device events in reverse chronological order. If EventType is specified, this returns a list of device events for that EventType in reverse chronological order. - public let eventType: DeviceEventType? - /// The maximum number of results to include in the response. The default value is 50. 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: Int? - /// 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 only includes results beyond the token, up to the value specified by MaxResults. When the end of results is reached, the response has a value of null. - public let nextToken: String? - - public init(deviceArn: String, eventType: DeviceEventType? = nil, maxResults: Int? = nil, nextToken: String? = nil) { - self.deviceArn = deviceArn - self.eventType = eventType - self.maxResults = maxResults - self.nextToken = nextToken - } - - public func validate(name: String) throws { - try self.validate(self.deviceArn, name: "deviceArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case deviceArn = "DeviceArn" - case eventType = "EventType" - case maxResults = "MaxResults" - case nextToken = "NextToken" - } - } - - public struct ListDeviceEventsResponse: AWSDecodableShape { - /// The device events requested for the device ARN. - public let deviceEvents: [DeviceEvent]? - /// The token returned to indicate that there is more data available. - public let nextToken: String? - - public init(deviceEvents: [DeviceEvent]? = nil, nextToken: String? = nil) { - self.deviceEvents = deviceEvents - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case deviceEvents = "DeviceEvents" - case nextToken = "NextToken" - } - } - - public struct ListGatewayGroupsRequest: AWSEncodableShape { - /// The maximum number of gateway group summaries to return. The default is 50. - public let maxResults: Int? - /// The token used to paginate though multiple pages of gateway group summaries. - public let nextToken: String? - - public init(maxResults: Int? = nil, nextToken: String? = nil) { - self.maxResults = maxResults - self.nextToken = nextToken - } - - public func validate(name: String) throws { - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case maxResults = "MaxResults" - case nextToken = "NextToken" - } - } - - public struct ListGatewayGroupsResponse: AWSDecodableShape { - /// The gateway groups in the list. - public let gatewayGroups: [GatewayGroupSummary]? - /// The token used to paginate though multiple pages of gateway group summaries. - public let nextToken: String? - - public init(gatewayGroups: [GatewayGroupSummary]? = nil, nextToken: String? = nil) { - self.gatewayGroups = gatewayGroups - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case gatewayGroups = "GatewayGroups" - case nextToken = "NextToken" - } - } - - public struct ListGatewaysRequest: AWSEncodableShape { - /// The gateway group ARN for which to list gateways. - public let gatewayGroupArn: String? - /// The maximum number of gateway summaries to return. The default is 50. - public let maxResults: Int? - /// The token used to paginate though multiple pages of gateway summaries. - public let nextToken: String? - - public init(gatewayGroupArn: String? = nil, maxResults: Int? = nil, nextToken: String? = nil) { - self.gatewayGroupArn = gatewayGroupArn - self.maxResults = maxResults - self.nextToken = nextToken - } - - public func validate(name: String) throws { - try self.validate(self.gatewayGroupArn, name: "gatewayGroupArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case gatewayGroupArn = "GatewayGroupArn" - case maxResults = "MaxResults" - case nextToken = "NextToken" - } - } - - public struct ListGatewaysResponse: AWSDecodableShape { - /// The gateways in the list. - public let gateways: [GatewaySummary]? - /// The token used to paginate though multiple pages of gateway summaries. - public let nextToken: String? - - public init(gateways: [GatewaySummary]? = nil, nextToken: String? = nil) { - self.gateways = gateways - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case gateways = "Gateways" - case nextToken = "NextToken" - } - } - - public struct ListSkillsRequest: AWSEncodableShape { - /// Whether the skill is enabled under the user's account. - public let enablementType: EnablementTypeFilter? - /// 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: Int? - /// 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 skill group for which to list enabled skills. - public let skillGroupArn: String? - /// Whether the skill is publicly available or is a private skill. - public let skillType: SkillTypeFilter? - - public init(enablementType: EnablementTypeFilter? = nil, maxResults: Int? = nil, nextToken: String? = nil, skillGroupArn: String? = nil, skillType: SkillTypeFilter? = nil) { - self.enablementType = enablementType - self.maxResults = maxResults - self.nextToken = nextToken - self.skillGroupArn = skillGroupArn - self.skillType = skillType - } - - public func validate(name: String) throws { - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 10) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - try self.validate(self.skillGroupArn, name: "skillGroupArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case enablementType = "EnablementType" - case maxResults = "MaxResults" - case nextToken = "NextToken" - case skillGroupArn = "SkillGroupArn" - case skillType = "SkillType" - } - } - - public struct ListSkillsResponse: AWSDecodableShape { - /// The token returned to indicate that there is more data available. - public let nextToken: String? - /// The list of enabled skills requested. Required. - public let skillSummaries: [SkillSummary]? - - public init(nextToken: String? = nil, skillSummaries: [SkillSummary]? = nil) { - self.nextToken = nextToken - self.skillSummaries = skillSummaries - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case skillSummaries = "SkillSummaries" - } - } - - public struct ListSkillsStoreCategoriesRequest: AWSEncodableShape { - /// The maximum number of categories returned, per paginated calls. - public let maxResults: Int? - /// The tokens used for pagination. - public let nextToken: String? - - public init(maxResults: Int? = nil, nextToken: String? = nil) { - self.maxResults = maxResults - self.nextToken = nextToken - } - - public func validate(name: String) throws { - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case maxResults = "MaxResults" - case nextToken = "NextToken" - } - } - - public struct ListSkillsStoreCategoriesResponse: AWSDecodableShape { - /// The list of categories. - public let categoryList: [Category]? - /// The tokens used for pagination. - public let nextToken: String? - - public init(categoryList: [Category]? = nil, nextToken: String? = nil) { - self.categoryList = categoryList - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case categoryList = "CategoryList" - case nextToken = "NextToken" - } - } - - public struct ListSkillsStoreSkillsByCategoryRequest: AWSEncodableShape { - /// The category ID for which the skills are being retrieved from the skill store. - public let categoryId: Int64 - /// The maximum number of skills returned per paginated calls. - public let maxResults: Int? - /// The tokens used for pagination. - public let nextToken: String? - - public init(categoryId: Int64, maxResults: Int? = nil, nextToken: String? = nil) { - self.categoryId = categoryId - self.maxResults = maxResults - self.nextToken = nextToken - } - - public func validate(name: String) throws { - try self.validate(self.categoryId, name: "categoryId", parent: name, min: 1) - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 10) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case categoryId = "CategoryId" - case maxResults = "MaxResults" - case nextToken = "NextToken" - } - } - - public struct ListSkillsStoreSkillsByCategoryResponse: AWSDecodableShape { - /// The tokens used for pagination. - public let nextToken: String? - /// The skill store skills. - public let skillsStoreSkills: [SkillsStoreSkill]? - - public init(nextToken: String? = nil, skillsStoreSkills: [SkillsStoreSkill]? = nil) { - self.nextToken = nextToken - self.skillsStoreSkills = skillsStoreSkills - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case skillsStoreSkills = "SkillsStoreSkills" - } - } - - public struct ListSmartHomeAppliancesRequest: AWSEncodableShape { - /// The maximum number of appliances to be returned, per paginated calls. - public let maxResults: Int? - /// The tokens used for pagination. - public let nextToken: String? - /// The room that the appliances are associated with. - public let roomArn: String - - public init(maxResults: Int? = nil, nextToken: String? = nil, roomArn: String) { - self.maxResults = maxResults - self.nextToken = nextToken - self.roomArn = roomArn - } - - public func validate(name: String) throws { - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case maxResults = "MaxResults" - case nextToken = "NextToken" - case roomArn = "RoomArn" - } - } - - public struct ListSmartHomeAppliancesResponse: AWSDecodableShape { - /// The tokens used for pagination. - public let nextToken: String? - /// The smart home appliances. - public let smartHomeAppliances: [SmartHomeAppliance]? - - public init(nextToken: String? = nil, smartHomeAppliances: [SmartHomeAppliance]? = nil) { - self.nextToken = nextToken - self.smartHomeAppliances = smartHomeAppliances - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case smartHomeAppliances = "SmartHomeAppliances" - } - } - - public struct ListTagsRequest: AWSEncodableShape { - /// The ARN of the specified resource for which to list tags. - 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: Int? - /// 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? - - public init(arn: String, maxResults: Int? = nil, nextToken: String? = nil) { - self.arn = arn - self.maxResults = maxResults - self.nextToken = nextToken - } - - public func validate(name: String) throws { - try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case maxResults = "MaxResults" - case nextToken = "NextToken" - } - } - - public struct ListTagsResponse: AWSDecodableShape { - /// The token returned to indicate that there is more data available. - public let nextToken: String? - /// The tags requested for the specified 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 MeetingRoomConfiguration: AWSDecodableShape { - /// Settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending. - public let endOfMeetingReminder: EndOfMeetingReminder? - /// Settings to automatically book the room if available for a configured duration when joining a meeting with Alexa. - public let instantBooking: InstantBooking? - public let proactiveJoin: ProactiveJoin? - /// Settings for requiring a check in when a room is reserved. Alexa can cancel a room reservation if it's not checked into. This makes the room available for others. Users can check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check in.” - public let requireCheckIn: RequireCheckIn? - /// Whether room utilization metrics are enabled or not. - public let roomUtilizationMetricsEnabled: Bool? - - public init(endOfMeetingReminder: EndOfMeetingReminder? = nil, instantBooking: InstantBooking? = nil, proactiveJoin: ProactiveJoin? = nil, requireCheckIn: RequireCheckIn? = nil, roomUtilizationMetricsEnabled: Bool? = nil) { - self.endOfMeetingReminder = endOfMeetingReminder - self.instantBooking = instantBooking - self.proactiveJoin = proactiveJoin - self.requireCheckIn = requireCheckIn - self.roomUtilizationMetricsEnabled = roomUtilizationMetricsEnabled - } - - private enum CodingKeys: String, CodingKey { - case endOfMeetingReminder = "EndOfMeetingReminder" - case instantBooking = "InstantBooking" - case proactiveJoin = "ProactiveJoin" - case requireCheckIn = "RequireCheckIn" - case roomUtilizationMetricsEnabled = "RoomUtilizationMetricsEnabled" - } - } - - public struct MeetingSetting: AWSEncodableShape & AWSDecodableShape { - /// The values that indicate whether the pin is always required. - public let requirePin: RequirePin - - public init(requirePin: RequirePin) { - self.requirePin = requirePin - } - - private enum CodingKeys: String, CodingKey { - case requirePin = "RequirePin" - } - } - - public struct NetworkProfile: AWSDecodableShape { - /// The ARN of the Private Certificate Authority (PCA) created in AWS Certificate Manager (ACM). This is used to issue certificates to the devices. - public let certificateAuthorityArn: String? - /// The current password of the Wi-Fi network. - public let currentPassword: String? - /// Detailed information about a device's network profile. - public let description: String? - /// The authentication standard that is used in the EAP framework. Currently, EAP_TLS is supported. - public let eapMethod: NetworkEapMethod? - /// The ARN of the network profile associated with a device. - public let networkProfileArn: String? - /// The name of the network profile associated with a device. - public let networkProfileName: String? - /// The next, or subsequent, password of the Wi-Fi network. This password is asynchronously transmitted to the device and is used when the password of the network changes to NextPassword. - public let nextPassword: String? - /// The security type of the Wi-Fi network. This can be WPA2_ENTERPRISE, WPA2_PSK, WPA_PSK, WEP, or OPEN. - public let securityType: NetworkSecurityType? - /// The SSID of the Wi-Fi network. - public let ssid: String? - /// The root certificates of your authentication server, which is installed on your devices and used to trust your authentication server during EAP negotiation. - public let trustAnchors: [String]? - - public init(certificateAuthorityArn: String? = nil, currentPassword: String? = nil, description: String? = nil, eapMethod: NetworkEapMethod? = nil, networkProfileArn: String? = nil, networkProfileName: String? = nil, nextPassword: String? = nil, securityType: NetworkSecurityType? = nil, ssid: String? = nil, trustAnchors: [String]? = nil) { - self.certificateAuthorityArn = certificateAuthorityArn - self.currentPassword = currentPassword - self.description = description - self.eapMethod = eapMethod - self.networkProfileArn = networkProfileArn - self.networkProfileName = networkProfileName - self.nextPassword = nextPassword - self.securityType = securityType - self.ssid = ssid - self.trustAnchors = trustAnchors - } - - private enum CodingKeys: String, CodingKey { - case certificateAuthorityArn = "CertificateAuthorityArn" - case currentPassword = "CurrentPassword" - case description = "Description" - case eapMethod = "EapMethod" - case networkProfileArn = "NetworkProfileArn" - case networkProfileName = "NetworkProfileName" - case nextPassword = "NextPassword" - case securityType = "SecurityType" - case ssid = "Ssid" - case trustAnchors = "TrustAnchors" - } - } - - public struct NetworkProfileData: AWSDecodableShape { - /// The ARN of the Private Certificate Authority (PCA) created in AWS Certificate Manager (ACM). This is used to issue certificates to the devices. - public let certificateAuthorityArn: String? - /// Detailed information about a device's network profile. - public let description: String? - /// The authentication standard that is used in the EAP framework. Currently, EAP_TLS is supported. - public let eapMethod: NetworkEapMethod? - /// The ARN of the network profile associated with a device. - public let networkProfileArn: String? - /// The name of the network profile associated with a device. - public let networkProfileName: String? - /// The security type of the Wi-Fi network. This can be WPA2_ENTERPRISE, WPA2_PSK, WPA_PSK, WEP, or OPEN. - public let securityType: NetworkSecurityType? - /// The SSID of the Wi-Fi network. - public let ssid: String? - - public init(certificateAuthorityArn: String? = nil, description: String? = nil, eapMethod: NetworkEapMethod? = nil, networkProfileArn: String? = nil, networkProfileName: String? = nil, securityType: NetworkSecurityType? = nil, ssid: String? = nil) { - self.certificateAuthorityArn = certificateAuthorityArn - self.description = description - self.eapMethod = eapMethod - self.networkProfileArn = networkProfileArn - self.networkProfileName = networkProfileName - self.securityType = securityType - self.ssid = ssid - } - - private enum CodingKeys: String, CodingKey { - case certificateAuthorityArn = "CertificateAuthorityArn" - case description = "Description" - case eapMethod = "EapMethod" - case networkProfileArn = "NetworkProfileArn" - case networkProfileName = "NetworkProfileName" - case securityType = "SecurityType" - case ssid = "Ssid" - } - } - - public struct PSTNDialIn: AWSEncodableShape & AWSDecodableShape { - /// The zip code. - public let countryCode: String - /// The delay duration before Alexa enters the conference ID with dual-tone multi-frequency (DTMF). Each number on the dial pad corresponds to a DTMF tone, which is how we send data over the telephone network. - public let oneClickIdDelay: String - /// The delay duration before Alexa enters the conference pin with dual-tone multi-frequency (DTMF). Each number on the dial pad corresponds to a DTMF tone, which is how we send data over the telephone network. - public let oneClickPinDelay: String - /// The phone number to call to join the conference. - public let phoneNumber: String - - public init(countryCode: String, oneClickIdDelay: String, oneClickPinDelay: String, phoneNumber: String) { - self.countryCode = countryCode - self.oneClickIdDelay = oneClickIdDelay - self.oneClickPinDelay = oneClickPinDelay - self.phoneNumber = phoneNumber - } - - public func validate(name: String) throws { - try self.validate(self.countryCode, name: "countryCode", parent: name, pattern: "^\\d{1,3}$") - try self.validate(self.oneClickIdDelay, name: "oneClickIdDelay", parent: name, max: 2) - try self.validate(self.oneClickIdDelay, name: "oneClickIdDelay", parent: name, min: 1) - try self.validate(self.oneClickPinDelay, name: "oneClickPinDelay", parent: name, max: 2) - try self.validate(self.oneClickPinDelay, name: "oneClickPinDelay", parent: name, min: 1) - try self.validate(self.phoneNumber, name: "phoneNumber", parent: name, pattern: "^\\d{10}$") - } - - private enum CodingKeys: String, CodingKey { - case countryCode = "CountryCode" - case oneClickIdDelay = "OneClickIdDelay" - case oneClickPinDelay = "OneClickPinDelay" - case phoneNumber = "PhoneNumber" - } - } - - public struct PhoneNumber: AWSEncodableShape & AWSDecodableShape { - /// The raw value of the phone number. - public let number: String - /// The type of the phone number. - public let type: PhoneNumberType - - public init(number: String, type: PhoneNumberType) { - self.number = number - self.type = type - } - - public func validate(name: String) throws { - try self.validate(self.number, name: "number", parent: name, max: 50) - try self.validate(self.number, name: "number", parent: name, pattern: "^[\\+0-9\\#\\,\\(][\\+0-9\\-\\.\\/\\(\\)\\,\\#\\s]+$") - } - - private enum CodingKeys: String, CodingKey { - case number = "Number" - case type = "Type" - } - } - - public struct ProactiveJoin: AWSDecodableShape { - public let enabledByMotion: Bool? - - public init(enabledByMotion: Bool? = nil) { - self.enabledByMotion = enabledByMotion - } - - private enum CodingKeys: String, CodingKey { - case enabledByMotion = "EnabledByMotion" - } - } - - public struct Profile: AWSDecodableShape { - /// The address of a room profile. - public let address: String? - /// The ARN of the address book. - public let addressBookArn: String? - /// Whether data retention of the profile is enabled. - public let dataRetentionOptIn: Bool? - /// The distance unit of a room profile. - public let distanceUnit: DistanceUnit? - /// Retrieves if the profile is default or not. - public let isDefault: Bool? - /// The locale of a room profile. (This is currently available only to a limited preview audience.) - public let locale: String? - /// The max volume limit of a room profile. - public let maxVolumeLimit: Int? - /// Meeting room settings of a room profile. - public let meetingRoomConfiguration: MeetingRoomConfiguration? - /// The ARN of a room profile. - public let profileArn: String? - /// The name of a room profile. - public let profileName: String? - /// The PSTN setting of a room profile. - public let pstnEnabled: Bool? - /// The setup mode of a room profile. - public let setupModeDisabled: Bool? - /// The temperature unit of a room profile. - public let temperatureUnit: TemperatureUnit? - /// The time zone of a room profile. - public let timezone: String? - /// The wake word of a room profile. - public let wakeWord: WakeWord? - - public init(address: String? = nil, addressBookArn: String? = nil, dataRetentionOptIn: Bool? = nil, distanceUnit: DistanceUnit? = nil, isDefault: Bool? = nil, locale: String? = nil, maxVolumeLimit: Int? = nil, meetingRoomConfiguration: MeetingRoomConfiguration? = nil, profileArn: String? = nil, profileName: String? = nil, pstnEnabled: Bool? = nil, setupModeDisabled: Bool? = nil, temperatureUnit: TemperatureUnit? = nil, timezone: String? = nil, wakeWord: WakeWord? = nil) { - self.address = address - self.addressBookArn = addressBookArn - self.dataRetentionOptIn = dataRetentionOptIn - self.distanceUnit = distanceUnit - self.isDefault = isDefault - self.locale = locale - self.maxVolumeLimit = maxVolumeLimit - self.meetingRoomConfiguration = meetingRoomConfiguration - self.profileArn = profileArn - self.profileName = profileName - self.pstnEnabled = pstnEnabled - self.setupModeDisabled = setupModeDisabled - self.temperatureUnit = temperatureUnit - self.timezone = timezone - self.wakeWord = wakeWord - } - - private enum CodingKeys: String, CodingKey { - case address = "Address" - case addressBookArn = "AddressBookArn" - case dataRetentionOptIn = "DataRetentionOptIn" - case distanceUnit = "DistanceUnit" - case isDefault = "IsDefault" - case locale = "Locale" - case maxVolumeLimit = "MaxVolumeLimit" - case meetingRoomConfiguration = "MeetingRoomConfiguration" - case profileArn = "ProfileArn" - case profileName = "ProfileName" - case pstnEnabled = "PSTNEnabled" - case setupModeDisabled = "SetupModeDisabled" - case temperatureUnit = "TemperatureUnit" - case timezone = "Timezone" - case wakeWord = "WakeWord" - } - } - - public struct ProfileData: AWSDecodableShape { - /// The address of a room profile. - public let address: String? - /// The distance unit of a room profile. - public let distanceUnit: DistanceUnit? - /// Retrieves if the profile data is default or not. - public let isDefault: Bool? - /// The locale of a room profile. (This is currently available only to a limited preview audience.) - public let locale: String? - /// The ARN of a room profile. - public let profileArn: String? - /// The name of a room profile. - public let profileName: String? - /// The temperature unit of a room profile. - public let temperatureUnit: TemperatureUnit? - /// The time zone of a room profile. - public let timezone: String? - /// The wake word of a room profile. - public let wakeWord: WakeWord? - - public init(address: String? = nil, distanceUnit: DistanceUnit? = nil, isDefault: Bool? = nil, locale: String? = nil, profileArn: String? = nil, profileName: String? = nil, temperatureUnit: TemperatureUnit? = nil, timezone: String? = nil, wakeWord: WakeWord? = nil) { - self.address = address - self.distanceUnit = distanceUnit - self.isDefault = isDefault - self.locale = locale - self.profileArn = profileArn - self.profileName = profileName - self.temperatureUnit = temperatureUnit - self.timezone = timezone - self.wakeWord = wakeWord - } - - private enum CodingKeys: String, CodingKey { - case address = "Address" - case distanceUnit = "DistanceUnit" - case isDefault = "IsDefault" - case locale = "Locale" - case profileArn = "ProfileArn" - case profileName = "ProfileName" - case temperatureUnit = "TemperatureUnit" - case timezone = "Timezone" - case wakeWord = "WakeWord" - } - } - - public struct PutConferencePreferenceRequest: AWSEncodableShape { - /// The conference preference of a specific conference provider. - public let conferencePreference: ConferencePreference - - public init(conferencePreference: ConferencePreference) { - self.conferencePreference = conferencePreference - } - - public func validate(name: String) throws { - try self.conferencePreference.validate(name: "\(name).conferencePreference") - } - - private enum CodingKeys: String, CodingKey { - case conferencePreference = "ConferencePreference" - } - } - - public struct PutConferencePreferenceResponse: AWSDecodableShape { - public init() {} - } - - public struct PutInvitationConfigurationRequest: AWSEncodableShape { - /// The email ID of the organization or individual contact that the enrolled user can use. - public let contactEmail: String? - /// The name of the organization sending the enrollment invite to a user. - public let organizationName: String - /// The list of private skill IDs that you want to recommend to the user to enable in the invitation. - public let privateSkillIds: [String]? - - public init(contactEmail: String? = nil, organizationName: String, privateSkillIds: [String]? = nil) { - self.contactEmail = contactEmail - self.organizationName = organizationName - self.privateSkillIds = privateSkillIds - } - - public func validate(name: String) throws { - try self.validate(self.contactEmail, name: "contactEmail", parent: name, max: 128) - try self.validate(self.contactEmail, name: "contactEmail", parent: name, min: 1) - try self.validate(self.contactEmail, name: "contactEmail", parent: name, pattern: "^\\w[+-.\\w]*@\\w[\\w\\.\\-]+\\.[0-9a-zA-Z]{2,24}$") - try self.validate(self.organizationName, name: "organizationName", parent: name, max: 100) - try self.validate(self.organizationName, name: "organizationName", parent: name, min: 1) - try self.validate(self.organizationName, name: "organizationName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.privateSkillIds?.forEach { - try validate($0, name: "privateSkillIds[]", parent: name, pattern: "^(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})$") - } - try self.validate(self.privateSkillIds, name: "privateSkillIds", parent: name, max: 3) - } - - private enum CodingKeys: String, CodingKey { - case contactEmail = "ContactEmail" - case organizationName = "OrganizationName" - case privateSkillIds = "PrivateSkillIds" - } - } - - public struct PutInvitationConfigurationResponse: AWSDecodableShape { - public init() {} - } - - public struct PutRoomSkillParameterRequest: AWSEncodableShape { - /// The ARN of the room associated with the room skill parameter. Required. - public let roomArn: String? - /// The updated room skill parameter. Required. - public let roomSkillParameter: RoomSkillParameter - /// The ARN of the skill associated with the room skill parameter. Required. - public let skillId: String - - public init(roomArn: String? = nil, roomSkillParameter: RoomSkillParameter, skillId: String) { - self.roomArn = roomArn - self.roomSkillParameter = roomSkillParameter - self.skillId = skillId - } - - public func validate(name: String) throws { - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.roomSkillParameter.validate(name: "\(name).roomSkillParameter") - try self.validate(self.skillId, name: "skillId", parent: name, pattern: "^(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})$") - } - - private enum CodingKeys: String, CodingKey { - case roomArn = "RoomArn" - case roomSkillParameter = "RoomSkillParameter" - case skillId = "SkillId" - } - } - - public struct PutRoomSkillParameterResponse: AWSDecodableShape { - public init() {} - } - - public struct PutSkillAuthorizationRequest: AWSEncodableShape { - /// The authorization result specific to OAUTH code grant output. "Code” must be populated in the AuthorizationResult map to establish the authorization. - public let authorizationResult: [String: String] - /// The room that the skill is authorized for. - public let roomArn: String? - /// The unique identifier of a skill. - public let skillId: String - - public init(authorizationResult: [String: String], roomArn: String? = nil, skillId: String) { - self.authorizationResult = authorizationResult - self.roomArn = roomArn - self.skillId = skillId - } - - public func validate(name: String) throws { - try self.authorizationResult.forEach { - try validate($0.key, name: "authorizationResult.key", parent: name, min: 1) - try validate($0.value, name: "authorizationResult[\"\($0.key)\"]", parent: name, min: 1) - } - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.skillId, name: "skillId", parent: name, pattern: "^(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})$") - } - - private enum CodingKeys: String, CodingKey { - case authorizationResult = "AuthorizationResult" - case roomArn = "RoomArn" - case skillId = "SkillId" - } - } - - public struct PutSkillAuthorizationResponse: AWSDecodableShape { - public init() {} - } - - public struct RegisterAVSDeviceRequest: AWSEncodableShape { - /// The device type ID for your AVS device generated by Amazon when the OEM creates a new product on Amazon's Developer Console. - public let amazonId: String - /// The client ID of the OEM used for code-based linking authorization on an AVS device. - public let clientId: String - /// The key generated by the OEM that uniquely identifies a specified instance of your AVS device. - public let deviceSerialNumber: String? - /// The product ID used to identify your AVS device during authorization. - public let productId: String - /// The Amazon Resource Name (ARN) of the room with which to associate your AVS device. - public let roomArn: String? - /// The tags to be added to the specified resource. Do not provide system tags. - public let tags: [Tag]? - /// The code that is obtained after your AVS device has made a POST request to LWA as a part of the Device Authorization Request component of the OAuth code-based linking specification. - public let userCode: String - - public init(amazonId: String, clientId: String, deviceSerialNumber: String? = nil, productId: String, roomArn: String? = nil, tags: [Tag]? = nil, userCode: String) { - self.amazonId = amazonId - self.clientId = clientId - self.deviceSerialNumber = deviceSerialNumber - self.productId = productId - self.roomArn = roomArn - self.tags = tags - self.userCode = userCode - } - - public func validate(name: String) throws { - try self.validate(self.amazonId, name: "amazonId", parent: name, pattern: "^[a-zA-Z0-9]{1,18}$") - try self.validate(self.clientId, name: "clientId", parent: name, pattern: "^\\S+{1,256}$") - try self.validate(self.deviceSerialNumber, name: "deviceSerialNumber", parent: name, pattern: "^[a-zA-Z0-9]{1,50}$") - try self.validate(self.productId, name: "productId", parent: name, pattern: "^[a-zA-Z0-9_]{1,256}$") - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.tags?.forEach { - try $0.validate(name: "\(name).tags[]") - } - try self.validate(self.userCode, name: "userCode", parent: name, max: 128) - try self.validate(self.userCode, name: "userCode", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case amazonId = "AmazonId" - case clientId = "ClientId" - case deviceSerialNumber = "DeviceSerialNumber" - case productId = "ProductId" - case roomArn = "RoomArn" - case tags = "Tags" - case userCode = "UserCode" - } - } - - public struct RegisterAVSDeviceResponse: AWSDecodableShape { - /// The ARN of the device. - public let deviceArn: String? - - public init(deviceArn: String? = nil) { - self.deviceArn = deviceArn - } - - private enum CodingKeys: String, CodingKey { - case deviceArn = "DeviceArn" - } - } - - public struct RejectSkillRequest: AWSEncodableShape { - /// The unique identifier of the skill. - public let skillId: String - - public init(skillId: String) { - self.skillId = skillId - } - - public func validate(name: String) throws { - try self.validate(self.skillId, name: "skillId", parent: name, pattern: "^(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})$") - } - - private enum CodingKeys: String, CodingKey { - case skillId = "SkillId" - } - } - - public struct RejectSkillResponse: AWSDecodableShape { - public init() {} - } - - public struct RequireCheckIn: AWSDecodableShape { - /// Whether require check in is enabled or not. - public let enabled: Bool? - /// Duration between 5 and 20 minutes to determine when to release the room if it's not checked into. - public let releaseAfterMinutes: Int? - - public init(enabled: Bool? = nil, releaseAfterMinutes: Int? = nil) { - self.enabled = enabled - self.releaseAfterMinutes = releaseAfterMinutes - } - - private enum CodingKeys: String, CodingKey { - case enabled = "Enabled" - case releaseAfterMinutes = "ReleaseAfterMinutes" - } - } - - public struct ResolveRoomRequest: AWSEncodableShape { - /// 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 - } - - public func validate(name: String) throws { - try self.validate(self.skillId, name: "skillId", parent: name, pattern: "^(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})$") - try self.validate(self.userId, name: "userId", parent: name, pattern: "^amzn1\\.[A-Za-z0-9+-\\/=.]{1,300}$") - } - - private enum CodingKeys: String, CodingKey { - case skillId = "SkillId" - case userId = "UserId" - } - } - - public struct ResolveRoomResponse: AWSDecodableShape { - /// 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 RevokeInvitationRequest: AWSEncodableShape { - /// 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 - } - - public func validate(name: String) throws { - try self.validate(self.enrollmentId, name: "enrollmentId", parent: name, max: 128) - try self.validate(self.userArn, name: "userArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case enrollmentId = "EnrollmentId" - case userArn = "UserArn" - } - } - - public struct RevokeInvitationResponse: AWSDecodableShape { - public init() {} - } - - public struct Room: AWSDecodableShape { - /// The description of a room. - public let description: String? - /// The profile ARN of a room. - public let profileArn: String? - /// The provider calendar ARN of a room. - public let providerCalendarId: String? - /// The ARN of a room. - public let roomArn: String? - /// The name of a room. - public let roomName: String? - - public init(description: String? = nil, profileArn: String? = nil, providerCalendarId: String? = nil, roomArn: String? = nil, roomName: String? = nil) { - self.description = description - self.profileArn = profileArn - self.providerCalendarId = providerCalendarId - self.roomArn = roomArn - self.roomName = roomName - } - - private enum CodingKeys: String, CodingKey { - case description = "Description" - case profileArn = "ProfileArn" - case providerCalendarId = "ProviderCalendarId" - case roomArn = "RoomArn" - case roomName = "RoomName" - } - } - - public struct RoomData: AWSDecodableShape { - /// The description of a room. - public let description: String? - /// The profile ARN of a room. - public let profileArn: String? - /// The profile name of a room. - public let profileName: String? - /// The provider calendar ARN of a room. - public let providerCalendarId: String? - /// The ARN of a room. - public let roomArn: String? - /// The name of a room. - public let roomName: String? - - public init(description: String? = nil, profileArn: String? = nil, profileName: String? = nil, providerCalendarId: String? = nil, roomArn: String? = nil, roomName: String? = nil) { - self.description = description - self.profileArn = profileArn - self.profileName = profileName - self.providerCalendarId = providerCalendarId - self.roomArn = roomArn - self.roomName = roomName - } - - private enum CodingKeys: String, CodingKey { - case description = "Description" - case profileArn = "ProfileArn" - case profileName = "ProfileName" - case providerCalendarId = "ProviderCalendarId" - case roomArn = "RoomArn" - case roomName = "RoomName" - } - } - - public struct RoomSkillParameter: AWSEncodableShape & AWSDecodableShape { - /// 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 - } - - public func validate(name: String) throws { - try self.validate(self.parameterKey, name: "parameterKey", parent: name, max: 256) - try self.validate(self.parameterKey, name: "parameterKey", parent: name, min: 1) - try self.validate(self.parameterValue, name: "parameterValue", parent: name, max: 512) - try self.validate(self.parameterValue, name: "parameterValue", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case parameterKey = "ParameterKey" - case parameterValue = "ParameterValue" - } - } - - public struct SearchAddressBooksRequest: AWSEncodableShape { - /// The filters to use to list a specified set of address books. The supported filter key is AddressBookName. - public let filters: [Filter]? - /// 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: Int? - /// 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 only includes results beyond the token, up to the value specified by MaxResults. - public let nextToken: String? - /// The sort order to use in listing the specified set of address books. The supported sort key is AddressBookName. - public let sortCriteria: [Sort]? - - public init(filters: [Filter]? = nil, maxResults: Int? = nil, nextToken: String? = nil, sortCriteria: [Sort]? = nil) { - self.filters = filters - self.maxResults = maxResults - self.nextToken = nextToken - self.sortCriteria = sortCriteria - } - - public func validate(name: String) throws { - try self.filters?.forEach { - try $0.validate(name: "\(name).filters[]") - } - try self.validate(self.filters, name: "filters", parent: name, max: 25) - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - try self.sortCriteria?.forEach { - try $0.validate(name: "\(name).sortCriteria[]") - } - try self.validate(self.sortCriteria, name: "sortCriteria", parent: name, max: 25) - } - - private enum CodingKeys: String, CodingKey { - case filters = "Filters" - case maxResults = "MaxResults" - case nextToken = "NextToken" - case sortCriteria = "SortCriteria" - } - } - - public struct SearchAddressBooksResponse: AWSDecodableShape { - /// The address books that meet the specified set of filter criteria, in sort order. - public let addressBooks: [AddressBookData]? - /// The token returned to indicate that there is more data available. - public let nextToken: String? - /// The total number of address books returned. - public let totalCount: Int? - - public init(addressBooks: [AddressBookData]? = nil, nextToken: String? = nil, totalCount: Int? = nil) { - self.addressBooks = addressBooks - self.nextToken = nextToken - self.totalCount = totalCount - } - - private enum CodingKeys: String, CodingKey { - case addressBooks = "AddressBooks" - case nextToken = "NextToken" - case totalCount = "TotalCount" - } - } - - public struct SearchContactsRequest: AWSEncodableShape { - /// The filters to use to list a specified set of address books. The supported filter keys are DisplayName, FirstName, LastName, and AddressBookArns. - public let filters: [Filter]? - /// 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: Int? - /// 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 only includes results beyond the token, up to the value specified by MaxResults. - public let nextToken: String? - /// The sort order to use in listing the specified set of contacts. The supported sort keys are DisplayName, FirstName, and LastName. - public let sortCriteria: [Sort]? - - public init(filters: [Filter]? = nil, maxResults: Int? = nil, nextToken: String? = nil, sortCriteria: [Sort]? = nil) { - self.filters = filters - self.maxResults = maxResults - self.nextToken = nextToken - self.sortCriteria = sortCriteria - } - - public func validate(name: String) throws { - try self.filters?.forEach { - try $0.validate(name: "\(name).filters[]") - } - try self.validate(self.filters, name: "filters", parent: name, max: 25) - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - try self.sortCriteria?.forEach { - try $0.validate(name: "\(name).sortCriteria[]") - } - try self.validate(self.sortCriteria, name: "sortCriteria", parent: name, max: 25) - } - - private enum CodingKeys: String, CodingKey { - case filters = "Filters" - case maxResults = "MaxResults" - case nextToken = "NextToken" - case sortCriteria = "SortCriteria" - } - } - - public struct SearchContactsResponse: AWSDecodableShape { - /// The contacts that meet the specified set of filter criteria, in sort order. - public let contacts: [ContactData]? - /// The token returned to indicate that there is more data available. - public let nextToken: String? - /// The total number of contacts returned. - public let totalCount: Int? - - public init(contacts: [ContactData]? = nil, nextToken: String? = nil, totalCount: Int? = nil) { - self.contacts = contacts - self.nextToken = nextToken - self.totalCount = totalCount - } - - private enum CodingKeys: String, CodingKey { - case contacts = "Contacts" - case nextToken = "NextToken" - case totalCount = "TotalCount" - } - } - - public struct SearchDevicesRequest: AWSEncodableShape { - /// The filters to use to list a specified set of devices. Supported filter keys are DeviceName, DeviceStatus, DeviceStatusDetailCode, RoomName, DeviceType, DeviceSerialNumber, UnassociatedOnly, ConnectionStatus (ONLINE and OFFLINE), NetworkProfileName, NetworkProfileArn, Feature, and FailureCode. - public let filters: [Filter]? - /// 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: Int? - /// 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 sort order to use in listing the specified set of devices. Supported sort keys are DeviceName, DeviceStatus, RoomName, DeviceType, DeviceSerialNumber, ConnectionStatus, NetworkProfileName, NetworkProfileArn, Feature, and FailureCode. - public let sortCriteria: [Sort]? - - public init(filters: [Filter]? = nil, maxResults: Int? = nil, nextToken: String? = nil, sortCriteria: [Sort]? = nil) { - self.filters = filters - self.maxResults = maxResults - self.nextToken = nextToken - self.sortCriteria = sortCriteria - } - - public func validate(name: String) throws { - try self.filters?.forEach { - try $0.validate(name: "\(name).filters[]") - } - try self.validate(self.filters, name: "filters", parent: name, max: 25) - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - try self.sortCriteria?.forEach { - try $0.validate(name: "\(name).sortCriteria[]") - } - try self.validate(self.sortCriteria, name: "sortCriteria", parent: name, max: 25) - } - - private enum CodingKeys: String, CodingKey { - case filters = "Filters" - case maxResults = "MaxResults" - case nextToken = "NextToken" - case sortCriteria = "SortCriteria" - } - } - - public struct SearchDevicesResponse: AWSDecodableShape { - /// The devices that meet the specified set of filter criteria, in sort order. - public let devices: [DeviceData]? - /// The token returned to indicate that there is more data available. - public let nextToken: String? - /// The total number of devices returned. - public let totalCount: Int? - - public init(devices: [DeviceData]? = nil, nextToken: String? = nil, totalCount: Int? = nil) { - self.devices = devices - self.nextToken = nextToken - self.totalCount = totalCount - } - - private enum CodingKeys: String, CodingKey { - case devices = "Devices" - case nextToken = "NextToken" - case totalCount = "TotalCount" - } - } - - public struct SearchNetworkProfilesRequest: AWSEncodableShape { - /// The filters to use to list a specified set of network profiles. Valid filters are NetworkProfileName, Ssid, and SecurityType. - public let filters: [Filter]? - /// 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: Int? - /// 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 sort order to use to list the specified set of network profiles. Valid sort criteria includes NetworkProfileName, Ssid, and SecurityType. - public let sortCriteria: [Sort]? - - public init(filters: [Filter]? = nil, maxResults: Int? = nil, nextToken: String? = nil, sortCriteria: [Sort]? = nil) { - self.filters = filters - self.maxResults = maxResults - self.nextToken = nextToken - self.sortCriteria = sortCriteria - } - - public func validate(name: String) throws { - try self.filters?.forEach { - try $0.validate(name: "\(name).filters[]") - } - try self.validate(self.filters, name: "filters", parent: name, max: 25) - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - try self.sortCriteria?.forEach { - try $0.validate(name: "\(name).sortCriteria[]") - } - try self.validate(self.sortCriteria, name: "sortCriteria", parent: name, max: 25) - } - - private enum CodingKeys: String, CodingKey { - case filters = "Filters" - case maxResults = "MaxResults" - case nextToken = "NextToken" - case sortCriteria = "SortCriteria" - } - } - - public struct SearchNetworkProfilesResponse: AWSDecodableShape { - /// The network profiles that meet the specified set of filter criteria, in sort order. It is a list of NetworkProfileData objects. - public let networkProfiles: [NetworkProfileData]? - /// 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 total number of network profiles returned. - public let totalCount: Int? - - public init(networkProfiles: [NetworkProfileData]? = nil, nextToken: String? = nil, totalCount: Int? = nil) { - self.networkProfiles = networkProfiles - self.nextToken = nextToken - self.totalCount = totalCount - } - - private enum CodingKeys: String, CodingKey { - case networkProfiles = "NetworkProfiles" - case nextToken = "NextToken" - case totalCount = "TotalCount" - } - } - - public struct SearchProfilesRequest: AWSEncodableShape { - /// 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 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: Int? - /// 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 sort order to use in listing the specified set of room profiles. Supported sort keys are ProfileName and Address. - public let sortCriteria: [Sort]? - - public init(filters: [Filter]? = nil, maxResults: Int? = nil, nextToken: String? = nil, sortCriteria: [Sort]? = nil) { - self.filters = filters - self.maxResults = maxResults - self.nextToken = nextToken - self.sortCriteria = sortCriteria - } - - public func validate(name: String) throws { - try self.filters?.forEach { - try $0.validate(name: "\(name).filters[]") - } - try self.validate(self.filters, name: "filters", parent: name, max: 25) - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - try self.sortCriteria?.forEach { - try $0.validate(name: "\(name).sortCriteria[]") - } - try self.validate(self.sortCriteria, name: "sortCriteria", parent: name, max: 25) - } - - private enum CodingKeys: String, CodingKey { - case filters = "Filters" - case maxResults = "MaxResults" - case nextToken = "NextToken" - case sortCriteria = "SortCriteria" - } - } - - public struct SearchProfilesResponse: AWSDecodableShape { - /// The token returned to indicate that there is more data available. - public let nextToken: String? - /// The profiles that meet the specified set of filter criteria, in sort order. - public let profiles: [ProfileData]? - /// The total number of room profiles returned. - public let totalCount: Int? - - public init(nextToken: String? = nil, profiles: [ProfileData]? = nil, totalCount: Int? = nil) { - self.nextToken = nextToken - self.profiles = profiles - self.totalCount = totalCount - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case profiles = "Profiles" - case totalCount = "TotalCount" - } - } - - public struct SearchRoomsRequest: AWSEncodableShape { - /// The filters to use to list a specified set of rooms. The supported filter keys are RoomName and ProfileName. - public let filters: [Filter]? - /// 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: Int? - /// 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 sort order to use in listing the specified set of rooms. The supported sort keys are RoomName and ProfileName. - public let sortCriteria: [Sort]? - - public init(filters: [Filter]? = nil, maxResults: Int? = nil, nextToken: String? = nil, sortCriteria: [Sort]? = nil) { - self.filters = filters - self.maxResults = maxResults - self.nextToken = nextToken - self.sortCriteria = sortCriteria - } - - public func validate(name: String) throws { - try self.filters?.forEach { - try $0.validate(name: "\(name).filters[]") - } - try self.validate(self.filters, name: "filters", parent: name, max: 25) - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - try self.sortCriteria?.forEach { - try $0.validate(name: "\(name).sortCriteria[]") - } - try self.validate(self.sortCriteria, name: "sortCriteria", parent: name, max: 25) - } - - private enum CodingKeys: String, CodingKey { - case filters = "Filters" - case maxResults = "MaxResults" - case nextToken = "NextToken" - case sortCriteria = "SortCriteria" - } - } - - public struct SearchRoomsResponse: AWSDecodableShape { - /// The token returned to indicate that there is more data available. - public let nextToken: String? - /// The rooms that meet the specified set of filter criteria, in sort order. - public let rooms: [RoomData]? - /// The total number of rooms returned. - public let totalCount: Int? - - public init(nextToken: String? = nil, rooms: [RoomData]? = nil, totalCount: Int? = nil) { - self.nextToken = nextToken - self.rooms = rooms - self.totalCount = totalCount - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case rooms = "Rooms" - case totalCount = "TotalCount" - } - } - - public struct SearchSkillGroupsRequest: AWSEncodableShape { - /// The filters to use to list a specified set of skill groups. The supported filter key is SkillGroupName. - public let filters: [Filter]? - /// 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: Int? - /// 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 sort order to use in listing the specified set of skill groups. The supported sort key is SkillGroupName. - public let sortCriteria: [Sort]? - - public init(filters: [Filter]? = nil, maxResults: Int? = nil, nextToken: String? = nil, sortCriteria: [Sort]? = nil) { - self.filters = filters - self.maxResults = maxResults - self.nextToken = nextToken - self.sortCriteria = sortCriteria - } - - public func validate(name: String) throws { - try self.filters?.forEach { - try $0.validate(name: "\(name).filters[]") - } - try self.validate(self.filters, name: "filters", parent: name, max: 25) - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - try self.sortCriteria?.forEach { - try $0.validate(name: "\(name).sortCriteria[]") - } - try self.validate(self.sortCriteria, name: "sortCriteria", parent: name, max: 25) - } - - private enum CodingKeys: String, CodingKey { - case filters = "Filters" - case maxResults = "MaxResults" - case nextToken = "NextToken" - case sortCriteria = "SortCriteria" - } - } - - public struct SearchSkillGroupsResponse: AWSDecodableShape { - /// The token returned to indicate that there is more data available. - public let nextToken: String? - /// The skill groups that meet the filter criteria, in sort order. - public let skillGroups: [SkillGroupData]? - /// The total number of skill groups returned. - public let totalCount: Int? - - public init(nextToken: String? = nil, skillGroups: [SkillGroupData]? = nil, totalCount: Int? = nil) { - self.nextToken = nextToken - self.skillGroups = skillGroups - self.totalCount = totalCount - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case skillGroups = "SkillGroups" - case totalCount = "TotalCount" - } - } - - public struct SearchUsersRequest: AWSEncodableShape { - /// 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 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: Int? - /// 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 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]? - - public init(filters: [Filter]? = nil, maxResults: Int? = nil, nextToken: String? = nil, sortCriteria: [Sort]? = nil) { - self.filters = filters - self.maxResults = maxResults - self.nextToken = nextToken - self.sortCriteria = sortCriteria - } - - public func validate(name: String) throws { - try self.filters?.forEach { - try $0.validate(name: "\(name).filters[]") - } - try self.validate(self.filters, name: "filters", parent: name, max: 25) - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) - try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) - try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1100) - try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) - try self.sortCriteria?.forEach { - try $0.validate(name: "\(name).sortCriteria[]") - } - try self.validate(self.sortCriteria, name: "sortCriteria", parent: name, max: 25) - } - - private enum CodingKeys: String, CodingKey { - case filters = "Filters" - case maxResults = "MaxResults" - case nextToken = "NextToken" - case sortCriteria = "SortCriteria" - } - } - - public struct SearchUsersResponse: AWSDecodableShape { - /// The token returned to indicate that there is more data available. - public let nextToken: String? - /// The total number of users returned. - public let totalCount: Int? - /// The users that meet the specified set of filter criteria, in sort order. - public let users: [UserData]? - - public init(nextToken: String? = nil, totalCount: Int? = nil, users: [UserData]? = nil) { - self.nextToken = nextToken - self.totalCount = totalCount - self.users = users - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case totalCount = "TotalCount" - case users = "Users" - } - } - - public struct SendAnnouncementRequest: AWSEncodableShape { - /// The unique, user-specified identifier for the request that ensures idempotency. - public let clientRequestToken: String - /// The announcement content. This can contain only one of the three possible announcement types (text, SSML or audio). - public let content: Content - /// The filters to use to send an announcement to a specified list of rooms. The supported filter keys are RoomName, ProfileName, RoomArn, and ProfileArn. To send to all rooms, specify an empty RoomFilters list. - public let roomFilters: [Filter] - /// The time to live for an announcement. Default is 300. If delivery doesn't occur within this time, the announcement is not delivered. - public let timeToLiveInSeconds: Int? - - public init(clientRequestToken: String = SendAnnouncementRequest.idempotencyToken(), content: Content, roomFilters: [Filter], timeToLiveInSeconds: Int? = nil) { - self.clientRequestToken = clientRequestToken - self.content = content - self.roomFilters = roomFilters - self.timeToLiveInSeconds = timeToLiveInSeconds - } - - public func validate(name: String) throws { - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, max: 150) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 10) - try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$") - try self.content.validate(name: "\(name).content") - try self.roomFilters.forEach { - try $0.validate(name: "\(name).roomFilters[]") - } - try self.validate(self.roomFilters, name: "roomFilters", parent: name, max: 25) - try self.validate(self.timeToLiveInSeconds, name: "timeToLiveInSeconds", parent: name, max: 3600) - try self.validate(self.timeToLiveInSeconds, name: "timeToLiveInSeconds", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case clientRequestToken = "ClientRequestToken" - case content = "Content" - case roomFilters = "RoomFilters" - case timeToLiveInSeconds = "TimeToLiveInSeconds" - } - } - - public struct SendAnnouncementResponse: AWSDecodableShape { - /// The identifier of the announcement. - public let announcementArn: String? - - public init(announcementArn: String? = nil) { - self.announcementArn = announcementArn - } - - private enum CodingKeys: String, CodingKey { - case announcementArn = "AnnouncementArn" - } - } - - public struct SendInvitationRequest: AWSEncodableShape { - /// The ARN of the user to whom to send an invitation. Required. - public let userArn: String? - - public init(userArn: String? = nil) { - self.userArn = userArn - } - - public func validate(name: String) throws { - try self.validate(self.userArn, name: "userArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case userArn = "UserArn" - } - } - - public struct SendInvitationResponse: AWSDecodableShape { - public init() {} - } - - public struct SipAddress: AWSEncodableShape & AWSDecodableShape { - /// The type of the SIP address. - public let type: SipType - /// The URI for the SIP address. - public let uri: String - - public init(type: SipType, uri: String) { - self.type = type - self.uri = uri - } - - public func validate(name: String) throws { - try self.validate(self.uri, name: "uri", parent: name, max: 256) - try self.validate(self.uri, name: "uri", parent: name, min: 1) - try self.validate(self.uri, name: "uri", parent: name, pattern: "^sip[s]?:([^@:]+)\\@([^@]+)$") - } - - private enum CodingKeys: String, CodingKey { - case type = "Type" - case uri = "Uri" - } - } - - public struct SkillDetails: AWSDecodableShape { - /// The details about what the skill supports organized as bullet points. - public let bulletPoints: [String]? - /// The details about the developer that published the skill. - public let developerInfo: DeveloperInfo? - /// The URL of the end user license agreement. - public let endUserLicenseAgreement: String? - /// The generic keywords associated with the skill that can be used to find a skill. - public let genericKeywords: [String]? - /// The phrase used to trigger the skill. - public let invocationPhrase: String? - /// The updates added in bullet points. - public let newInThisVersionBulletPoints: [String]? - /// The description of the product. - public let productDescription: String? - /// The date when the skill was released. - public let releaseDate: String? - /// This member has been deprecated. The list of reviews for the skill, including Key and Value pair. - public let reviews: [String: String]? - /// The types of skills. - public let skillTypes: [String]? - - public init(bulletPoints: [String]? = nil, developerInfo: DeveloperInfo? = nil, endUserLicenseAgreement: String? = nil, genericKeywords: [String]? = nil, invocationPhrase: String? = nil, newInThisVersionBulletPoints: [String]? = nil, productDescription: String? = nil, releaseDate: String? = nil, reviews: [String: String]? = nil, skillTypes: [String]? = nil) { - self.bulletPoints = bulletPoints - self.developerInfo = developerInfo - self.endUserLicenseAgreement = endUserLicenseAgreement - self.genericKeywords = genericKeywords - self.invocationPhrase = invocationPhrase - self.newInThisVersionBulletPoints = newInThisVersionBulletPoints - self.productDescription = productDescription - self.releaseDate = releaseDate - self.reviews = reviews - self.skillTypes = skillTypes - } - - private enum CodingKeys: String, CodingKey { - case bulletPoints = "BulletPoints" - case developerInfo = "DeveloperInfo" - case endUserLicenseAgreement = "EndUserLicenseAgreement" - case genericKeywords = "GenericKeywords" - case invocationPhrase = "InvocationPhrase" - case newInThisVersionBulletPoints = "NewInThisVersionBulletPoints" - case productDescription = "ProductDescription" - case releaseDate = "ReleaseDate" - case reviews = "Reviews" - case skillTypes = "SkillTypes" - } - } - - public struct SkillGroup: AWSDecodableShape { - /// 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 SkillGroupData: AWSDecodableShape { - /// 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 SkillSummary: AWSDecodableShape { - /// Whether the skill is enabled under the user's account, or if it requires linking to be used. - public let enablementType: EnablementType? - /// The ARN of the skill summary. - public let skillId: String? - /// The name of the skill. - public let skillName: String? - /// Whether the skill is publicly available or is a private skill. - public let skillType: SkillType? - /// Linking support for a skill. - public let supportsLinking: Bool? - - public init(enablementType: EnablementType? = nil, skillId: String? = nil, skillName: String? = nil, skillType: SkillType? = nil, supportsLinking: Bool? = nil) { - self.enablementType = enablementType - self.skillId = skillId - self.skillName = skillName - self.skillType = skillType - self.supportsLinking = supportsLinking - } - - private enum CodingKeys: String, CodingKey { - case enablementType = "EnablementType" - case skillId = "SkillId" - case skillName = "SkillName" - case skillType = "SkillType" - case supportsLinking = "SupportsLinking" - } - } - - public struct SkillsStoreSkill: AWSDecodableShape { - /// The URL where the skill icon resides. - public let iconUrl: String? - /// Sample utterances that interact with the skill. - public let sampleUtterances: [String]? - /// Short description about the skill. - public let shortDescription: String? - /// Information about the skill. - public let skillDetails: SkillDetails? - /// The ARN of the skill. - public let skillId: String? - /// The name of the skill. - public let skillName: String? - /// Linking support for a skill. - public let supportsLinking: Bool? - - public init(iconUrl: String? = nil, sampleUtterances: [String]? = nil, shortDescription: String? = nil, skillDetails: SkillDetails? = nil, skillId: String? = nil, skillName: String? = nil, supportsLinking: Bool? = nil) { - self.iconUrl = iconUrl - self.sampleUtterances = sampleUtterances - self.shortDescription = shortDescription - self.skillDetails = skillDetails - self.skillId = skillId - self.skillName = skillName - self.supportsLinking = supportsLinking - } - - private enum CodingKeys: String, CodingKey { - case iconUrl = "IconUrl" - case sampleUtterances = "SampleUtterances" - case shortDescription = "ShortDescription" - case skillDetails = "SkillDetails" - case skillId = "SkillId" - case skillName = "SkillName" - case supportsLinking = "SupportsLinking" - } - } - - public struct SmartHomeAppliance: AWSDecodableShape { - /// The description of the smart home appliance. - public let description: String? - /// The friendly name of the smart home appliance. - public let friendlyName: String? - /// The name of the manufacturer of the smart home appliance. - public let manufacturerName: String? - - public init(description: String? = nil, friendlyName: String? = nil, manufacturerName: String? = nil) { - self.description = description - self.friendlyName = friendlyName - self.manufacturerName = manufacturerName - } - - private enum CodingKeys: String, CodingKey { - case description = "Description" - case friendlyName = "FriendlyName" - case manufacturerName = "ManufacturerName" - } - } - - public struct Sort: AWSEncodableShape { - /// The sort key of a sort object. - public let key: String - /// The sort value of a sort object. - public let value: SortValue - - public init(key: String, value: SortValue) { - self.key = key - self.value = value - } - - public func validate(name: String) throws { - try self.validate(self.key, name: "key", parent: name, max: 500) - try self.validate(self.key, name: "key", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case key = "Key" - case value = "Value" - } - } - - public struct Ssml: AWSEncodableShape { - /// The locale of the SSML message. Currently, en-US is supported. - public let locale: Locale - /// The value of the SSML message in the correct SSML format. The audio tag is not supported. - public let value: String - - public init(locale: Locale, value: String) { - self.locale = locale - self.value = value - } - - public func validate(name: String) throws { - try self.validate(self.value, name: "value", parent: name, max: 4096) - try self.validate(self.value, name: "value", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - } - - private enum CodingKeys: String, CodingKey { - case locale = "Locale" - case value = "Value" - } - } - - public struct StartDeviceSyncRequest: AWSEncodableShape { - /// The ARN of the device to sync. Required. - public let deviceArn: String? - /// Request structure to start the device sync. Required. - public let features: [Feature] - /// The ARN of the room with which the device to sync is associated. Required. - public let roomArn: String? - - public init(deviceArn: String? = nil, features: [Feature], roomArn: String? = nil) { - self.deviceArn = deviceArn - self.features = features - self.roomArn = roomArn - } - - public func validate(name: String) throws { - try self.validate(self.deviceArn, name: "deviceArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case deviceArn = "DeviceArn" - case features = "Features" - case roomArn = "RoomArn" - } - } - - public struct StartDeviceSyncResponse: AWSDecodableShape { - public init() {} - } - - public struct StartSmartHomeApplianceDiscoveryRequest: AWSEncodableShape { - /// The room where smart home appliance discovery was initiated. - public let roomArn: String - - public init(roomArn: String) { - self.roomArn = roomArn - } - - public func validate(name: String) throws { - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - } - - private enum CodingKeys: String, CodingKey { - case roomArn = "RoomArn" - } - } - - public struct StartSmartHomeApplianceDiscoveryResponse: AWSDecodableShape { - public init() {} - } - - public struct Tag: AWSEncodableShape & AWSDecodableShape { - /// The key of a tag. Tag keys are case-sensitive. - public let key: String - /// The value of a tag. Tag values are case sensitive and can be null. - public let value: String - - public init(key: String, value: String) { - self.key = key - self.value = value - } - - public func validate(name: String) throws { - try self.validate(self.key, name: "key", parent: name, max: 128) - try self.validate(self.key, name: "key", parent: name, min: 1) - try self.validate(self.key, name: "key", parent: name, pattern: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$") - try self.validate(self.value, name: "value", parent: name, max: 256) - try self.validate(self.value, name: "value", parent: name, pattern: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$") - } - - private enum CodingKeys: String, CodingKey { - case key = "Key" - case value = "Value" - } - } - - public struct TagResourceRequest: AWSEncodableShape { - /// The ARN of the resource to which to add metadata tags. Required. - public let arn: String - /// The tags to be added to the specified resource. Do not provide system tags. Required. - public let tags: [Tag] - - public init(arn: String, tags: [Tag]) { - self.arn = arn - self.tags = tags - } - - public func validate(name: String) throws { - try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.tags.forEach { - try $0.validate(name: "\(name).tags[]") - } - } - - private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case tags = "Tags" - } - } - - public struct TagResourceResponse: AWSDecodableShape { - public init() {} - } - - public struct Text: AWSEncodableShape { - /// The locale of the text message. Currently, en-US is supported. - public let locale: Locale - /// The value of the text message. - public let value: String - - public init(locale: Locale, value: String) { - self.locale = locale - self.value = value - } - - public func validate(name: String) throws { - try self.validate(self.value, name: "value", parent: name, max: 4096) - try self.validate(self.value, name: "value", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - } - - private enum CodingKeys: String, CodingKey { - case locale = "Locale" - case value = "Value" - } - } - - public struct UntagResourceRequest: AWSEncodableShape { - /// 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 - } - - public func validate(name: String) throws { - try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.tagKeys.forEach { - try validate($0, name: "tagKeys[]", parent: name, max: 128) - try validate($0, name: "tagKeys[]", parent: name, min: 1) - try validate($0, name: "tagKeys[]", parent: name, pattern: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$") - } - } - - private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case tagKeys = "TagKeys" - } - } - - public struct UntagResourceResponse: AWSDecodableShape { - public init() {} - } - - public struct UpdateAddressBookRequest: AWSEncodableShape { - /// The ARN of the room to update. - public let addressBookArn: String - /// The updated description of the room. - public let description: String? - /// The updated name of the room. - public let name: String? - - public init(addressBookArn: String, description: String? = nil, name: String? = nil) { - self.addressBookArn = addressBookArn - self.description = description - self.name = name - } - - public func validate(name: String) throws { - try self.validate(self.addressBookArn, name: "addressBookArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.description, name: "description", parent: name, max: 200) - try self.validate(self.description, name: "description", parent: name, min: 1) - try self.validate(self.description, name: "description", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.name, name: "name", parent: name, max: 100) - try self.validate(self.name, name: "name", parent: name, min: 1) - try self.validate(self.name, name: "name", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - } - - private enum CodingKeys: String, CodingKey { - case addressBookArn = "AddressBookArn" - case description = "Description" - case name = "Name" - } - } - - public struct UpdateAddressBookResponse: AWSDecodableShape { - public init() {} - } - - public struct UpdateBusinessReportScheduleRequest: AWSEncodableShape { - /// The format of the generated report (individual CSV files or zipped files of individual files). - public let format: BusinessReportFormat? - /// The recurrence of the reports. - public let recurrence: BusinessReportRecurrence? - /// The S3 location of the output reports. - public let s3BucketName: String? - /// The S3 key where the report is delivered. - public let s3KeyPrefix: String? - /// The ARN of the business report schedule. - public let scheduleArn: String - /// The name identifier of the schedule. - public let scheduleName: String? - - public init(format: BusinessReportFormat? = nil, recurrence: BusinessReportRecurrence? = nil, s3BucketName: String? = nil, s3KeyPrefix: String? = nil, scheduleArn: String, scheduleName: String? = nil) { - self.format = format - self.recurrence = recurrence - self.s3BucketName = s3BucketName - self.s3KeyPrefix = s3KeyPrefix - self.scheduleArn = scheduleArn - self.scheduleName = scheduleName - } - - public func validate(name: String) throws { - try self.recurrence?.validate(name: "\(name).recurrence") - try self.validate(self.s3BucketName, name: "s3BucketName", parent: name, pattern: "^[a-z0-9-\\.]{3,63}$") - try self.validate(self.s3KeyPrefix, name: "s3KeyPrefix", parent: name, max: 100) - try self.validate(self.s3KeyPrefix, name: "s3KeyPrefix", parent: name, pattern: "^[A-Za-z0-9!_\\-\\.\\*'()/]*$") - try self.validate(self.scheduleArn, name: "scheduleArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.scheduleName, name: "scheduleName", parent: name, max: 64) - try self.validate(self.scheduleName, name: "scheduleName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - } - - private enum CodingKeys: String, CodingKey { - case format = "Format" - case recurrence = "Recurrence" - case s3BucketName = "S3BucketName" - case s3KeyPrefix = "S3KeyPrefix" - case scheduleArn = "ScheduleArn" - case scheduleName = "ScheduleName" - } - } - - public struct UpdateBusinessReportScheduleResponse: AWSDecodableShape { - public init() {} - } - - public struct UpdateConferenceProviderRequest: AWSEncodableShape { - /// The ARN of the conference provider. - public let conferenceProviderArn: String - /// The type of the conference provider. - public let conferenceProviderType: ConferenceProviderType - /// The IP endpoint and protocol for calling. - public let ipDialIn: IPDialIn? - /// The meeting settings for the conference provider. - public let meetingSetting: MeetingSetting - /// The information for PSTN conferencing. - public let pstnDialIn: PSTNDialIn? - - public init(conferenceProviderArn: String, conferenceProviderType: ConferenceProviderType, ipDialIn: IPDialIn? = nil, meetingSetting: MeetingSetting, pstnDialIn: PSTNDialIn? = nil) { - self.conferenceProviderArn = conferenceProviderArn - self.conferenceProviderType = conferenceProviderType - self.ipDialIn = ipDialIn - self.meetingSetting = meetingSetting - self.pstnDialIn = pstnDialIn - } - - public func validate(name: String) throws { - try self.validate(self.conferenceProviderArn, name: "conferenceProviderArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.ipDialIn?.validate(name: "\(name).ipDialIn") - try self.pstnDialIn?.validate(name: "\(name).pstnDialIn") - } - - private enum CodingKeys: String, CodingKey { - case conferenceProviderArn = "ConferenceProviderArn" - case conferenceProviderType = "ConferenceProviderType" - case ipDialIn = "IPDialIn" - case meetingSetting = "MeetingSetting" - case pstnDialIn = "PSTNDialIn" - } - } - - public struct UpdateConferenceProviderResponse: AWSDecodableShape { - public init() {} - } - - public struct UpdateContactRequest: AWSEncodableShape { - /// The ARN of the contact to update. - public let contactArn: String - /// The updated display name of the contact. - public let displayName: String? - /// The updated first name of the contact. - public let firstName: String? - /// The updated last name of the contact. - public let lastName: String? - /// The updated phone number of the contact. The phone number type defaults to WORK. You can either specify PhoneNumber or PhoneNumbers. We recommend that you use PhoneNumbers, which lets you specify the phone number type and multiple numbers. - public let phoneNumber: String? - /// The list of phone numbers for the contact. - public let phoneNumbers: [PhoneNumber]? - /// The list of SIP addresses for the contact. - public let sipAddresses: [SipAddress]? - - public init(contactArn: String, displayName: String? = nil, firstName: String? = nil, lastName: String? = nil, phoneNumber: String? = nil, phoneNumbers: [PhoneNumber]? = nil, sipAddresses: [SipAddress]? = nil) { - self.contactArn = contactArn - self.displayName = displayName - self.firstName = firstName - self.lastName = lastName - self.phoneNumber = phoneNumber - self.phoneNumbers = phoneNumbers - self.sipAddresses = sipAddresses - } - - public func validate(name: String) throws { - try self.validate(self.contactArn, name: "contactArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.displayName, name: "displayName", parent: name, max: 100) - try self.validate(self.displayName, name: "displayName", parent: name, min: 1) - try self.validate(self.displayName, name: "displayName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.firstName, name: "firstName", parent: name, max: 100) - try self.validate(self.firstName, name: "firstName", parent: name, min: 1) - try self.validate(self.firstName, name: "firstName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.lastName, name: "lastName", parent: name, max: 100) - try self.validate(self.lastName, name: "lastName", parent: name, min: 1) - try self.validate(self.lastName, name: "lastName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.phoneNumber, name: "phoneNumber", parent: name, max: 50) - try self.validate(self.phoneNumber, name: "phoneNumber", parent: name, pattern: "^[\\+0-9\\#\\,\\(][\\+0-9\\-\\.\\/\\(\\)\\,\\#\\s]+$") - try self.phoneNumbers?.forEach { - try $0.validate(name: "\(name).phoneNumbers[]") - } - try self.validate(self.phoneNumbers, name: "phoneNumbers", parent: name, max: 3) - try self.sipAddresses?.forEach { - try $0.validate(name: "\(name).sipAddresses[]") - } - try self.validate(self.sipAddresses, name: "sipAddresses", parent: name, max: 1) - } - - private enum CodingKeys: String, CodingKey { - case contactArn = "ContactArn" - case displayName = "DisplayName" - case firstName = "FirstName" - case lastName = "LastName" - case phoneNumber = "PhoneNumber" - case phoneNumbers = "PhoneNumbers" - case sipAddresses = "SipAddresses" - } - } - - public struct UpdateContactResponse: AWSDecodableShape { - public init() {} - } - - public struct UpdateDeviceRequest: AWSEncodableShape { - /// 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 - } - - public func validate(name: String) throws { - try self.validate(self.deviceArn, name: "deviceArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.deviceName, name: "deviceName", parent: name, max: 100) - try self.validate(self.deviceName, name: "deviceName", parent: name, min: 2) - try self.validate(self.deviceName, name: "deviceName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - } - - private enum CodingKeys: String, CodingKey { - case deviceArn = "DeviceArn" - case deviceName = "DeviceName" - } - } - - public struct UpdateDeviceResponse: AWSDecodableShape { - public init() {} - } - - public struct UpdateEndOfMeetingReminder: AWSEncodableShape { - /// Whether an end of meeting reminder is enabled or not. - public let enabled: Bool? - /// Updates settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending. - public let reminderAtMinutes: [Int]? - /// The type of sound that users hear during the end of meeting reminder. - public let reminderType: EndOfMeetingReminderType? - - public init(enabled: Bool? = nil, reminderAtMinutes: [Int]? = nil, reminderType: EndOfMeetingReminderType? = nil) { - self.enabled = enabled - self.reminderAtMinutes = reminderAtMinutes - self.reminderType = reminderType - } - - public func validate(name: String) throws { - try self.validate(self.reminderAtMinutes, name: "reminderAtMinutes", parent: name, max: 1) - try self.validate(self.reminderAtMinutes, name: "reminderAtMinutes", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case enabled = "Enabled" - case reminderAtMinutes = "ReminderAtMinutes" - case reminderType = "ReminderType" - } - } - - public struct UpdateGatewayGroupRequest: AWSEncodableShape { - /// The updated description of the gateway group. - public let description: String? - /// The ARN of the gateway group to update. - public let gatewayGroupArn: String - /// The updated name of the gateway group. - public let name: String? - - public init(description: String? = nil, gatewayGroupArn: String, name: String? = nil) { - self.description = description - self.gatewayGroupArn = gatewayGroupArn - self.name = name - } - - public func validate(name: String) throws { - try self.validate(self.description, name: "description", parent: name, max: 200) - try self.validate(self.gatewayGroupArn, name: "gatewayGroupArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.name, name: "name", parent: name, max: 100) - try self.validate(self.name, name: "name", parent: name, min: 1) - try self.validate(self.name, name: "name", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - } - - private enum CodingKeys: String, CodingKey { - case description = "Description" - case gatewayGroupArn = "GatewayGroupArn" - case name = "Name" - } - } - - public struct UpdateGatewayGroupResponse: AWSDecodableShape { - public init() {} - } - - public struct UpdateGatewayRequest: AWSEncodableShape { - /// The updated description of the gateway. - public let description: String? - /// The ARN of the gateway to update. - public let gatewayArn: String - /// The updated name of the gateway. - public let name: String? - /// The updated software version of the gateway. The gateway automatically updates its software version during normal operation. - public let softwareVersion: String? - - public init(description: String? = nil, gatewayArn: String, name: String? = nil, softwareVersion: String? = nil) { - self.description = description - self.gatewayArn = gatewayArn - self.name = name - self.softwareVersion = softwareVersion - } - - public func validate(name: String) throws { - try self.validate(self.description, name: "description", parent: name, max: 200) - try self.validate(self.description, name: "description", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.gatewayArn, name: "gatewayArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.name, name: "name", parent: name, max: 253) - try self.validate(self.name, name: "name", parent: name, min: 1) - try self.validate(self.name, name: "name", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.softwareVersion, name: "softwareVersion", parent: name, max: 50) - try self.validate(self.softwareVersion, name: "softwareVersion", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case description = "Description" - case gatewayArn = "GatewayArn" - case name = "Name" - case softwareVersion = "SoftwareVersion" - } - } - - public struct UpdateGatewayResponse: AWSDecodableShape { - public init() {} - } - - public struct UpdateInstantBooking: AWSEncodableShape { - /// Duration between 15 and 240 minutes at increments of 15 that determines how long to book an available room when a meeting is started with Alexa. - public let durationInMinutes: Int? - /// Whether instant booking is enabled or not. - public let enabled: Bool? - - public init(durationInMinutes: Int? = nil, enabled: Bool? = nil) { - self.durationInMinutes = durationInMinutes - self.enabled = enabled - } - - private enum CodingKeys: String, CodingKey { - case durationInMinutes = "DurationInMinutes" - case enabled = "Enabled" - } - } - - public struct UpdateMeetingRoomConfiguration: AWSEncodableShape { - /// Settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending. - public let endOfMeetingReminder: UpdateEndOfMeetingReminder? - /// Settings to automatically book an available room available for a configured duration when joining a meeting with Alexa. - public let instantBooking: UpdateInstantBooking? - public let proactiveJoin: UpdateProactiveJoin? - /// Settings for requiring a check in when a room is reserved. Alexa can cancel a room reservation if it's not checked into to make the room available for others. Users can check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check in.” - public let requireCheckIn: UpdateRequireCheckIn? - /// Whether room utilization metrics are enabled or not. - public let roomUtilizationMetricsEnabled: Bool? - - public init(endOfMeetingReminder: UpdateEndOfMeetingReminder? = nil, instantBooking: UpdateInstantBooking? = nil, proactiveJoin: UpdateProactiveJoin? = nil, requireCheckIn: UpdateRequireCheckIn? = nil, roomUtilizationMetricsEnabled: Bool? = nil) { - self.endOfMeetingReminder = endOfMeetingReminder - self.instantBooking = instantBooking - self.proactiveJoin = proactiveJoin - self.requireCheckIn = requireCheckIn - self.roomUtilizationMetricsEnabled = roomUtilizationMetricsEnabled - } - - public func validate(name: String) throws { - try self.endOfMeetingReminder?.validate(name: "\(name).endOfMeetingReminder") - } - - private enum CodingKeys: String, CodingKey { - case endOfMeetingReminder = "EndOfMeetingReminder" - case instantBooking = "InstantBooking" - case proactiveJoin = "ProactiveJoin" - case requireCheckIn = "RequireCheckIn" - case roomUtilizationMetricsEnabled = "RoomUtilizationMetricsEnabled" - } - } - - public struct UpdateNetworkProfileRequest: AWSEncodableShape { - /// The ARN of the Private Certificate Authority (PCA) created in AWS Certificate Manager (ACM). This is used to issue certificates to the devices. - public let certificateAuthorityArn: String? - /// The current password of the Wi-Fi network. - public let currentPassword: String? - /// Detailed information about a device's network profile. - public let description: String? - /// The ARN of the network profile associated with a device. - public let networkProfileArn: String - /// The name of the network profile associated with a device. - public let networkProfileName: String? - /// The next, or subsequent, password of the Wi-Fi network. This password is asynchronously transmitted to the device and is used when the password of the network changes to NextPassword. - public let nextPassword: String? - /// The root certificate(s) of your authentication server that will be installed on your devices and used to trust your authentication server during EAP negotiation. - public let trustAnchors: [String]? - - public init(certificateAuthorityArn: String? = nil, currentPassword: String? = nil, description: String? = nil, networkProfileArn: String, networkProfileName: String? = nil, nextPassword: String? = nil, trustAnchors: [String]? = nil) { - self.certificateAuthorityArn = certificateAuthorityArn - self.currentPassword = currentPassword - self.description = description - self.networkProfileArn = networkProfileArn - self.networkProfileName = networkProfileName - self.nextPassword = nextPassword - self.trustAnchors = trustAnchors - } - - public func validate(name: String) throws { - try self.validate(self.certificateAuthorityArn, name: "certificateAuthorityArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.currentPassword, name: "currentPassword", parent: name, max: 128) - try self.validate(self.currentPassword, name: "currentPassword", parent: name, min: 5) - try self.validate(self.currentPassword, name: "currentPassword", parent: name, pattern: "^[\\x00-\\x7F]*$") - try self.validate(self.description, name: "description", parent: name, max: 200) - try self.validate(self.description, name: "description", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.networkProfileArn, name: "networkProfileArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.networkProfileName, name: "networkProfileName", parent: name, max: 100) - try self.validate(self.networkProfileName, name: "networkProfileName", parent: name, min: 1) - try self.validate(self.networkProfileName, name: "networkProfileName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.nextPassword, name: "nextPassword", parent: name, max: 128) - try self.validate(self.nextPassword, name: "nextPassword", parent: name, pattern: "^(^$)|([\\x00-\\x7F]{5,})$") - try self.trustAnchors?.forEach { - try validate($0, name: "trustAnchors[]", parent: name, pattern: "^-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}(\\u000D?\\u000A)?$") - } - try self.validate(self.trustAnchors, name: "trustAnchors", parent: name, max: 5) - try self.validate(self.trustAnchors, name: "trustAnchors", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case certificateAuthorityArn = "CertificateAuthorityArn" - case currentPassword = "CurrentPassword" - case description = "Description" - case networkProfileArn = "NetworkProfileArn" - case networkProfileName = "NetworkProfileName" - case nextPassword = "NextPassword" - case trustAnchors = "TrustAnchors" - } - } - - public struct UpdateNetworkProfileResponse: AWSDecodableShape { - public init() {} - } - - public struct UpdateProactiveJoin: AWSEncodableShape { - public let enabledByMotion: Bool - - public init(enabledByMotion: Bool) { - self.enabledByMotion = enabledByMotion - } - - private enum CodingKeys: String, CodingKey { - case enabledByMotion = "EnabledByMotion" - } - } - - public struct UpdateProfileRequest: AWSEncodableShape { - /// The updated address for the room profile. - public let address: String? - /// Whether data retention of the profile is enabled. - public let dataRetentionOptIn: Bool? - /// The updated distance unit for the room profile. - public let distanceUnit: DistanceUnit? - /// Sets the profile as default if selected. If this is missing, no update is done to the default status. - public let isDefault: Bool? - /// The updated locale for the room profile. (This is currently only available to a limited preview audience.) - public let locale: String? - /// The updated maximum volume limit for the room profile. - public let maxVolumeLimit: Int? - /// The updated meeting room settings of a room profile. - public let meetingRoomConfiguration: UpdateMeetingRoomConfiguration? - /// The ARN of the room profile to update. Required. - public let profileArn: String? - /// The updated name for the room profile. - public let profileName: String? - /// Whether the PSTN setting of the room profile is enabled. - public let pstnEnabled: Bool? - /// Whether the setup mode of the profile is enabled. - public let setupModeDisabled: Bool? - /// The updated temperature unit for the room profile. - public let temperatureUnit: TemperatureUnit? - /// The updated timezone for the room profile. - public let timezone: String? - /// The updated wake word for the room profile. - public let wakeWord: WakeWord? - - public init(address: String? = nil, dataRetentionOptIn: Bool? = nil, distanceUnit: DistanceUnit? = nil, isDefault: Bool? = nil, locale: String? = nil, maxVolumeLimit: Int? = nil, meetingRoomConfiguration: UpdateMeetingRoomConfiguration? = nil, profileArn: String? = nil, profileName: String? = nil, pstnEnabled: Bool? = nil, setupModeDisabled: Bool? = nil, temperatureUnit: TemperatureUnit? = nil, timezone: String? = nil, wakeWord: WakeWord? = nil) { - self.address = address - self.dataRetentionOptIn = dataRetentionOptIn - self.distanceUnit = distanceUnit - self.isDefault = isDefault - self.locale = locale - self.maxVolumeLimit = maxVolumeLimit - self.meetingRoomConfiguration = meetingRoomConfiguration - self.profileArn = profileArn - self.profileName = profileName - self.pstnEnabled = pstnEnabled - self.setupModeDisabled = setupModeDisabled - self.temperatureUnit = temperatureUnit - self.timezone = timezone - self.wakeWord = wakeWord - } - - public func validate(name: String) throws { - try self.validate(self.address, name: "address", parent: name, max: 500) - try self.validate(self.address, name: "address", parent: name, min: 1) - try self.validate(self.locale, name: "locale", parent: name, max: 256) - try self.validate(self.locale, name: "locale", parent: name, min: 1) - try self.meetingRoomConfiguration?.validate(name: "\(name).meetingRoomConfiguration") - try self.validate(self.profileArn, name: "profileArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.profileName, name: "profileName", parent: name, max: 100) - try self.validate(self.profileName, name: "profileName", parent: name, min: 1) - try self.validate(self.profileName, name: "profileName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.timezone, name: "timezone", parent: name, max: 100) - try self.validate(self.timezone, name: "timezone", parent: name, min: 1) - } - - private enum CodingKeys: String, CodingKey { - case address = "Address" - case dataRetentionOptIn = "DataRetentionOptIn" - case distanceUnit = "DistanceUnit" - case isDefault = "IsDefault" - case locale = "Locale" - case maxVolumeLimit = "MaxVolumeLimit" - case meetingRoomConfiguration = "MeetingRoomConfiguration" - case profileArn = "ProfileArn" - case profileName = "ProfileName" - case pstnEnabled = "PSTNEnabled" - case setupModeDisabled = "SetupModeDisabled" - case temperatureUnit = "TemperatureUnit" - case timezone = "Timezone" - case wakeWord = "WakeWord" - } - } - - public struct UpdateProfileResponse: AWSDecodableShape { - public init() {} - } - - public struct UpdateRequireCheckIn: AWSEncodableShape { - /// Whether require check in is enabled or not. - public let enabled: Bool? - /// Duration between 5 and 20 minutes to determine when to release the room if it's not checked into. - public let releaseAfterMinutes: Int? - - public init(enabled: Bool? = nil, releaseAfterMinutes: Int? = nil) { - self.enabled = enabled - self.releaseAfterMinutes = releaseAfterMinutes - } - - private enum CodingKeys: String, CodingKey { - case enabled = "Enabled" - case releaseAfterMinutes = "ReleaseAfterMinutes" - } - } - - public struct UpdateRoomRequest: AWSEncodableShape { - /// The updated description for the room. - public let description: String? - /// The updated profile ARN for the room. - public let profileArn: String? - /// The updated provider calendar ARN for the room. - public let providerCalendarId: String? - /// The ARN of the room to update. - public let roomArn: String? - /// The updated name for the room. - public let roomName: String? - - public init(description: String? = nil, profileArn: String? = nil, providerCalendarId: String? = nil, roomArn: String? = nil, roomName: String? = nil) { - self.description = description - self.profileArn = profileArn - self.providerCalendarId = providerCalendarId - self.roomArn = roomArn - self.roomName = roomName - } - - public func validate(name: String) throws { - try self.validate(self.description, name: "description", parent: name, max: 200) - try self.validate(self.description, name: "description", parent: name, min: 1) - try self.validate(self.description, name: "description", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.profileArn, name: "profileArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.providerCalendarId, name: "providerCalendarId", parent: name, max: 100) - try self.validate(self.roomArn, name: "roomArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.roomName, name: "roomName", parent: name, max: 100) - try self.validate(self.roomName, name: "roomName", parent: name, min: 1) - try self.validate(self.roomName, name: "roomName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - } - - private enum CodingKeys: String, CodingKey { - case description = "Description" - case profileArn = "ProfileArn" - case providerCalendarId = "ProviderCalendarId" - case roomArn = "RoomArn" - case roomName = "RoomName" - } - } - - public struct UpdateRoomResponse: AWSDecodableShape { - public init() {} - } - - public struct UpdateSkillGroupRequest: AWSEncodableShape { - /// 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 - } - - public func validate(name: String) throws { - try self.validate(self.description, name: "description", parent: name, max: 200) - try self.validate(self.description, name: "description", parent: name, min: 1) - try self.validate(self.description, name: "description", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - try self.validate(self.skillGroupArn, name: "skillGroupArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") - try self.validate(self.skillGroupName, name: "skillGroupName", parent: name, max: 100) - try self.validate(self.skillGroupName, name: "skillGroupName", parent: name, min: 1) - try self.validate(self.skillGroupName, name: "skillGroupName", parent: name, pattern: "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$") - } - - private enum CodingKeys: String, CodingKey { - case description = "Description" - case skillGroupArn = "SkillGroupArn" - case skillGroupName = "SkillGroupName" - } - } - - public struct UpdateSkillGroupResponse: AWSDecodableShape { - public init() {} - } - - public struct UserData: AWSDecodableShape { - /// The email of a user. - public let email: String? - /// The enrollment ARN of a user. - public let enrollmentId: String? - /// The enrollment status of a user. - public let enrollmentStatus: EnrollmentStatus? - /// The first name of a user. - public let firstName: String? - /// The last name of a user. - public let lastName: String? - /// The ARN of a user. - public let userArn: String? - - public init(email: String? = nil, enrollmentId: String? = nil, enrollmentStatus: EnrollmentStatus? = nil, firstName: String? = nil, lastName: String? = nil, userArn: String? = nil) { - self.email = email - self.enrollmentId = enrollmentId - self.enrollmentStatus = enrollmentStatus - self.firstName = firstName - self.lastName = lastName - self.userArn = userArn - } - - private enum CodingKeys: String, CodingKey { - case email = "Email" - case enrollmentId = "EnrollmentId" - case enrollmentStatus = "EnrollmentStatus" - case firstName = "FirstName" - case lastName = "LastName" - case userArn = "UserArn" - } - } -} - -// MARK: - Errors - -/// Error enum for AlexaForBusiness -public struct AlexaForBusinessErrorType: AWSErrorType { - enum Code: String { - case alreadyExistsException = "AlreadyExistsException" - case concurrentModificationException = "ConcurrentModificationException" - case deviceNotRegisteredException = "DeviceNotRegisteredException" - case invalidCertificateAuthorityException = "InvalidCertificateAuthorityException" - case invalidDeviceException = "InvalidDeviceException" - case invalidSecretsManagerResourceException = "InvalidSecretsManagerResourceException" - case invalidServiceLinkedRoleStateException = "InvalidServiceLinkedRoleStateException" - case invalidUserStatusException = "InvalidUserStatusException" - case limitExceededException = "LimitExceededException" - case nameInUseException = "NameInUseException" - case notFoundException = "NotFoundException" - case resourceAssociatedException = "ResourceAssociatedException" - case resourceInUseException = "ResourceInUseException" - case skillNotLinkedException = "SkillNotLinkedException" - case unauthorizedException = "UnauthorizedException" - } - - private let error: Code - public let context: AWSErrorContext? - - /// initialize AlexaForBusiness - public init?(errorCode: String, context: AWSErrorContext) { - guard let error = Code(rawValue: errorCode) else { return nil } - self.error = error - self.context = context - } - - internal init(_ error: Code) { - self.error = error - self.context = nil - } - - /// return error code string - public var errorCode: String { self.error.rawValue } - - /// The resource being created already exists. - public static var alreadyExistsException: Self { .init(.alreadyExistsException) } - /// There is a concurrent modification of resources. - public static var concurrentModificationException: Self { .init(.concurrentModificationException) } - /// The request failed because this device is no longer registered and therefore no longer managed by this account. - public static var deviceNotRegisteredException: Self { .init(.deviceNotRegisteredException) } - /// The Certificate Authority can't issue or revoke a certificate. - public static var invalidCertificateAuthorityException: Self { .init(.invalidCertificateAuthorityException) } - /// The device is in an invalid state. - public static var invalidDeviceException: Self { .init(.invalidDeviceException) } - /// A password in SecretsManager is in an invalid state. - public static var invalidSecretsManagerResourceException: Self { .init(.invalidSecretsManagerResourceException) } - /// The service linked role is locked for deletion. - public static var invalidServiceLinkedRoleStateException: Self { .init(.invalidServiceLinkedRoleStateException) } - /// The attempt to update a user is invalid due to the user's current status. - public static var invalidUserStatusException: Self { .init(.invalidUserStatusException) } - /// You are performing an action that would put you beyond your account's limits. - public static var limitExceededException: Self { .init(.limitExceededException) } - /// The name sent in the request is already in use. - public static var nameInUseException: Self { .init(.nameInUseException) } - /// The resource is not found. - public static var notFoundException: Self { .init(.notFoundException) } - /// Another resource is associated with the resource in the request. - public static var resourceAssociatedException: Self { .init(.resourceAssociatedException) } - /// The resource in the request is already in use. - public static var resourceInUseException: Self { .init(.resourceInUseException) } - /// The skill must be linked to a third-party account. - public static var skillNotLinkedException: Self { .init(.skillNotLinkedException) } - /// The caller has no permissions to operate on the resource involved in the API call. - public static var unauthorizedException: Self { .init(.unauthorizedException) } -} - -extension AlexaForBusinessErrorType: Equatable { - public static func == (lhs: AlexaForBusinessErrorType, rhs: AlexaForBusinessErrorType) -> Bool { - lhs.error == rhs.error - } -} - -extension AlexaForBusinessErrorType: CustomStringConvertible { - public var description: String { - return "\(self.error.rawValue): \(self.message ?? "")" - } -} diff --git a/Sources/Soto/Services/Amplify/Amplify_shapes.swift b/Sources/Soto/Services/Amplify/Amplify_shapes.swift index 8aa6024d6b..eb3182cef2 100644 --- a/Sources/Soto/Services/Amplify/Amplify_shapes.swift +++ b/Sources/Soto/Services/Amplify/Amplify_shapes.swift @@ -1889,7 +1889,7 @@ extension Amplify { try self.validate(self.branchName, name: "branchName", parent: name, pattern: "^(?s).+$") try self.validate(self.jobId, name: "jobId", parent: name, max: 255) try self.validate(self.jobId, name: "jobId", parent: name, pattern: "^[0-9]+$") - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 0) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 2000) try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^(?s)") @@ -1948,7 +1948,7 @@ extension Amplify { try self.validate(self.environmentName, name: "environmentName", parent: name, max: 255) try self.validate(self.environmentName, name: "environmentName", parent: name, min: 1) try self.validate(self.environmentName, name: "environmentName", parent: name, pattern: "^(?s).+$") - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 0) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 2000) try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^(?s)") @@ -2000,7 +2000,7 @@ extension Amplify { try self.validate(self.appId, name: "appId", parent: name, max: 20) try self.validate(self.appId, name: "appId", parent: name, min: 1) try self.validate(self.appId, name: "appId", parent: name, pattern: "^d[a-z0-9]+$") - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 0) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 2000) try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^(?s)") @@ -2052,7 +2052,7 @@ extension Amplify { try self.validate(self.appId, name: "appId", parent: name, max: 20) try self.validate(self.appId, name: "appId", parent: name, min: 1) try self.validate(self.appId, name: "appId", parent: name, pattern: "^d[a-z0-9]+$") - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 0) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 2000) try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^(?s)") @@ -2111,7 +2111,7 @@ extension Amplify { try self.validate(self.branchName, name: "branchName", parent: name, max: 255) try self.validate(self.branchName, name: "branchName", parent: name, min: 1) try self.validate(self.branchName, name: "branchName", parent: name, pattern: "^(?s).+$") - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 0) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 2000) try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^(?s)") @@ -2198,7 +2198,7 @@ extension Amplify { try self.validate(self.appId, name: "appId", parent: name, max: 20) try self.validate(self.appId, name: "appId", parent: name, min: 1) try self.validate(self.appId, name: "appId", parent: name, pattern: "^d[a-z0-9]+$") - try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 0) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 2000) try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^(?s)") diff --git a/Sources/Soto/Services/AppSync/AppSync_shapes.swift b/Sources/Soto/Services/AppSync/AppSync_shapes.swift index 441259459c..c8e9bd9b8b 100644 --- a/Sources/Soto/Services/AppSync/AppSync_shapes.swift +++ b/Sources/Soto/Services/AppSync/AppSync_shapes.swift @@ -3437,7 +3437,7 @@ extension AppSync { try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:[a-z-]*:rds:[a-z0-9-]*:\\d{12}:cluster:[0-9A-Za-z_/-]*$") try self.validate(self.secretArn, name: "secretArn", parent: name, max: 2048) try self.validate(self.secretArn, name: "secretArn", parent: name, min: 20) - try self.validate(self.secretArn, name: "secretArn", parent: name, pattern: "^arn:[a-z-]*:secretsmanager:[a-z0-9-]*:\\d{12}:secret:[0-9A-Za-z_/-]*$") + try self.validate(self.secretArn, name: "secretArn", parent: name, pattern: "^arn:[a-z-]*:secretsmanager:[a-z0-9-]*:\\d{12}:secret:[0-9A-Za-z_/+=.@!-]*$") } private enum CodingKeys: String, CodingKey { @@ -4245,7 +4245,7 @@ extension AppSync { /// The API ID. public let apiId: String /// The new authentication type for the GraphqlApi object. - public let authenticationType: AuthenticationType? + public let authenticationType: AuthenticationType /// The enhancedMetricsConfig object. public let enhancedMetricsConfig: EnhancedMetricsConfig? /// Sets the value of the GraphQL API to enable (ENABLED) or disable (DISABLED) introspection. If no value is provided, the introspection configuration will be set to ENABLED by default. This field will produce an error if the operation attempts to use the introspection feature while this field is disabled. For more information about introspection, see GraphQL introspection. @@ -4271,7 +4271,7 @@ extension AppSync { /// A flag indicating whether to use X-Ray tracing for the GraphqlApi. public let xrayEnabled: Bool? - public init(additionalAuthenticationProviders: [AdditionalAuthenticationProvider]? = nil, apiId: String, authenticationType: AuthenticationType? = nil, enhancedMetricsConfig: EnhancedMetricsConfig? = nil, introspectionConfig: GraphQLApiIntrospectionConfig? = nil, lambdaAuthorizerConfig: LambdaAuthorizerConfig? = nil, logConfig: LogConfig? = nil, mergedApiExecutionRoleArn: String? = nil, name: String, openIDConnectConfig: OpenIDConnectConfig? = nil, ownerContact: String? = nil, queryDepthLimit: Int? = nil, resolverCountLimit: Int? = nil, userPoolConfig: UserPoolConfig? = nil, xrayEnabled: Bool? = nil) { + public init(additionalAuthenticationProviders: [AdditionalAuthenticationProvider]? = nil, apiId: String, authenticationType: AuthenticationType, enhancedMetricsConfig: EnhancedMetricsConfig? = nil, introspectionConfig: GraphQLApiIntrospectionConfig? = nil, lambdaAuthorizerConfig: LambdaAuthorizerConfig? = nil, logConfig: LogConfig? = nil, mergedApiExecutionRoleArn: String? = nil, name: String, openIDConnectConfig: OpenIDConnectConfig? = nil, ownerContact: String? = nil, queryDepthLimit: Int? = nil, resolverCountLimit: Int? = nil, userPoolConfig: UserPoolConfig? = nil, xrayEnabled: Bool? = nil) { self.additionalAuthenticationProviders = additionalAuthenticationProviders self.apiId = apiId self.authenticationType = authenticationType @@ -4294,7 +4294,7 @@ extension AppSync { var container = encoder.container(keyedBy: CodingKeys.self) try container.encodeIfPresent(self.additionalAuthenticationProviders, forKey: .additionalAuthenticationProviders) request.encodePath(self.apiId, key: "apiId") - try container.encodeIfPresent(self.authenticationType, forKey: .authenticationType) + try container.encode(self.authenticationType, forKey: .authenticationType) try container.encodeIfPresent(self.enhancedMetricsConfig, forKey: .enhancedMetricsConfig) try container.encodeIfPresent(self.introspectionConfig, forKey: .introspectionConfig) try container.encodeIfPresent(self.lambdaAuthorizerConfig, forKey: .lambdaAuthorizerConfig) diff --git a/Sources/Soto/Services/AutoScalingPlans/AutoScalingPlans_api.swift b/Sources/Soto/Services/AutoScalingPlans/AutoScalingPlans_api.swift index 0ade1d1207..dde0882771 100644 --- a/Sources/Soto/Services/AutoScalingPlans/AutoScalingPlans_api.swift +++ b/Sources/Soto/Services/AutoScalingPlans/AutoScalingPlans_api.swift @@ -61,6 +61,8 @@ public struct AutoScalingPlans: AWSService { serviceProtocol: .json(version: "1.1"), apiVersion: "2018-01-06", endpoint: endpoint, + serviceEndpoints: Self.serviceEndpoints, + variantEndpoints: Self.variantEndpoints, errorType: AutoScalingPlansErrorType.self, middleware: middleware, timeout: timeout, @@ -70,8 +72,20 @@ public struct AutoScalingPlans: AWSService { } + /// custom endpoints for regions + static var serviceEndpoints: [String: String] {[ + "us-gov-east-1": "autoscaling-plans.us-gov-east-1.amazonaws.com", + "us-gov-west-1": "autoscaling-plans.us-gov-west-1.amazonaws.com" + ]} + /// FIPS and dualstack endpoints + static var variantEndpoints: [EndpointVariantType: AWSServiceConfig.EndpointVariant] {[ + [.fips]: .init(endpoints: [ + "us-gov-east-1": "autoscaling-plans.us-gov-east-1.amazonaws.com", + "us-gov-west-1": "autoscaling-plans.us-gov-west-1.amazonaws.com" + ]) + ]} // MARK: API Calls diff --git a/Sources/Soto/Services/Batch/Batch_api.swift b/Sources/Soto/Services/Batch/Batch_api.swift index 99e8295a15..85330e7ee4 100644 --- a/Sources/Soto/Services/Batch/Batch_api.swift +++ b/Sources/Soto/Services/Batch/Batch_api.swift @@ -19,7 +19,7 @@ /// Service object for interacting with AWS Batch service. /// -/// Batch Using Batch, you can run batch computing workloads on the Amazon Web Services Cloud. Batch computing is a common means for developers, scientists, and engineers to access large amounts of compute resources. Batch uses the advantages of the batch computing to remove the undifferentiated heavy lifting of configuring and managing required infrastructure. At the same time, it also adopts a familiar batch computing software approach. You can use Batch to efficiently provision resources d, and work toward eliminating capacity constraints, reducing your overall compute costs, and delivering results more quickly. As a fully managed service, Batch can run batch computing workloads of any scale. Batch automatically provisions compute resources and optimizes workload distribution based on the quantity and scale of your specific workloads. With Batch, there's no need to install or manage batch computing software. This means that you can focus on analyzing results and solving your specific problems instead. +/// Batch Using Batch, you can run batch computing workloads on the Amazon Web Services Cloud. Batch computing is a common means for developers, scientists, and engineers to access large amounts of compute resources. Batch uses the advantages of the batch computing to remove the undifferentiated heavy lifting of configuring and managing required infrastructure. At the same time, it also adopts a familiar batch computing software approach. You can use Batch to efficiently provision resources, and work toward eliminating capacity constraints, reducing your overall compute costs, and delivering results more quickly. As a fully managed service, Batch can run batch computing workloads of any scale. Batch automatically provisions compute resources and optimizes workload distribution based on the quantity and scale of your specific workloads. With Batch, there's no need to install or manage batch computing software. This means that you can focus on analyzing results and solving your specific problems instead. public struct Batch: AWSService { // MARK: Member variables diff --git a/Sources/Soto/Services/Batch/Batch_shapes.swift b/Sources/Soto/Services/Batch/Batch_shapes.swift index 13e3fff0dc..90624cc77b 100644 --- a/Sources/Soto/Services/Batch/Batch_shapes.swift +++ b/Sources/Soto/Services/Batch/Batch_shapes.swift @@ -276,12 +276,15 @@ extension Batch { public let statusReason: String? /// The Unix timestamp (in milliseconds) 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? + /// The properties for a task definition that describes the container and volume definitions of an Amazon ECS task. + public let taskProperties: [AttemptEcsTaskDetails]? - public init(container: AttemptContainerDetail? = nil, startedAt: Int64? = nil, statusReason: String? = nil, stoppedAt: Int64? = nil) { + public init(container: AttemptContainerDetail? = nil, startedAt: Int64? = nil, statusReason: String? = nil, stoppedAt: Int64? = nil, taskProperties: [AttemptEcsTaskDetails]? = nil) { self.container = container self.startedAt = startedAt self.statusReason = statusReason self.stoppedAt = stoppedAt + self.taskProperties = taskProperties } private enum CodingKeys: String, CodingKey { @@ -289,6 +292,57 @@ extension Batch { case startedAt = "startedAt" case statusReason = "statusReason" case stoppedAt = "stoppedAt" + case taskProperties = "taskProperties" + } + } + + public struct AttemptEcsTaskDetails: AWSDecodableShape { + /// The Amazon Resource Name (ARN) of the container instance that hosts the task. + public let containerInstanceArn: String? + /// A list of containers that are included in the taskProperties list. + public let containers: [AttemptTaskContainerDetails]? + /// The ARN of the Amazon ECS task. + public let taskArn: String? + + public init(containerInstanceArn: String? = nil, containers: [AttemptTaskContainerDetails]? = nil, taskArn: String? = nil) { + self.containerInstanceArn = containerInstanceArn + self.containers = containers + self.taskArn = taskArn + } + + private enum CodingKeys: String, CodingKey { + case containerInstanceArn = "containerInstanceArn" + case containers = "containers" + case taskArn = "taskArn" + } + } + + public struct AttemptTaskContainerDetails: AWSDecodableShape { + /// The exit code for the container’s attempt. A non-zero exit code is considered failed. + public let exitCode: Int? + /// The name of the Amazon CloudWatch Logs log stream that's associated with the container. The log group for 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 name of a container. + public let name: String? + /// The network interfaces that are associated with the job attempt. + public let networkInterfaces: [NetworkInterface]? + /// A short (255 max characters) string that's easy to understand and provides additional details for a running or stopped container. + public let reason: String? + + public init(exitCode: Int? = nil, logStreamName: String? = nil, name: String? = nil, networkInterfaces: [NetworkInterface]? = nil, reason: String? = nil) { + self.exitCode = exitCode + self.logStreamName = logStreamName + self.name = name + self.networkInterfaces = networkInterfaces + self.reason = reason + } + + private enum CodingKeys: String, CodingKey { + case exitCode = "exitCode" + case logStreamName = "logStreamName" + case name = "name" + case networkInterfaces = "networkInterfaces" + case reason = "reason" } } @@ -1567,16 +1621,20 @@ extension Batch { public struct EksAttemptContainerDetail: AWSDecodableShape { /// The exit code returned for the job attempt. A non-zero exit code is considered failed. public let exitCode: Int? + /// The name of a container. + public let name: String? /// A short (255 max characters) human-readable string to provide additional details for a running or stopped container. public let reason: String? - public init(exitCode: Int? = nil, reason: String? = nil) { + public init(exitCode: Int? = nil, name: String? = nil, reason: String? = nil) { self.exitCode = exitCode + self.name = name self.reason = reason } private enum CodingKeys: String, CodingKey { case exitCode = "exitCode" + case name = "name" case reason = "reason" } } @@ -1928,9 +1986,9 @@ extension Batch { public let dnsPolicy: String? /// Indicates if the pod uses the hosts' network IP address. The default value is true. Setting this to false enables the Kubernetes pod networking model. Most Batch workloads are egress-only and don't require the overhead of IP allocation for each pod for incoming connections. For more information, see Host namespaces and Pod networking in the Kubernetes documentation. public let hostNetwork: Bool? - /// References a Kubernetes secret resource. This object must start and end with an alphanumeric character, is required to be lowercase, can include periods (.) and hyphens (-), and can't contain more than 253 characters. ImagePullSecret$name is required when this object is used. + /// References a Kubernetes secret resource. It holds a list of secrets. These secrets help to gain access to pull an images from a private registry. ImagePullSecret$name is required when this object is used. public let imagePullSecrets: [ImagePullSecret]? - /// These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see Init Containers in the Kubernetes documentation. This object is limited to 10 elements + /// These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see Init Containers in the Kubernetes documentation. This object is limited to 10 elements public let initContainers: [EksContainer]? /// Metadata about the Kubernetes pod. For more information, see Understanding Kubernetes Objects in the Kubernetes documentation. public let metadata: EksMetadata? @@ -1985,7 +2043,7 @@ extension Batch { public let dnsPolicy: String? /// Indicates if the pod uses the hosts' network IP address. The default value is true. Setting this to false enables the Kubernetes pod networking model. Most Batch workloads are egress-only and don't require the overhead of IP allocation for each pod for incoming connections. For more information, see Host namespaces and Pod networking in the Kubernetes documentation. public let hostNetwork: Bool? - /// Displays the reference pointer to the Kubernetes secret resource. + /// Displays the reference pointer to the Kubernetes secret resource. These secrets help to gain access to pull an images from a private registry. public let imagePullSecrets: [ImagePullSecret]? /// The container registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. public let initContainers: [EksContainerDetail]? @@ -2034,7 +2092,7 @@ extension Batch { public struct EksPodPropertiesOverride: AWSEncodableShape { /// The overrides for the container that's used on the Amazon EKS pod. public let containers: [EksContainerOverride]? - /// The overrides for the conatainers defined in the Amazon EKS pod. These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see Init Containers in the Kubernetes documentation. This object is limited to 10 elements + /// The overrides for the conatainers defined in the Amazon EKS pod. These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see Init Containers in the Kubernetes documentation. This object is limited to 10 elements public let initContainers: [EksContainerOverride]? /// Metadata about the overrides for the container that's used on the Amazon EKS pod. public let metadata: EksMetadata? @@ -2397,7 +2455,7 @@ extension Batch { public let startedAt: Int64? /// The current status for the job. If your jobs don't progress to STARTING, see Jobs stuck in RUNNABLE status in the troubleshooting section of the Batch User Guide. public let status: JobStatus? - /// A short, human-readable string to provide more details for the current status of the job. CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY - All compute environments have insufficient capacity to service the job. MISCONFIGURATION:COMPUTE_ENVIRONMENT_MAX_RESOURCE - All compute environments have a maxVcpu setting that is smaller than the job requirements. MISCONFIGURATION:JOB_RESOURCE_REQUIREMENT - All compute environments have no connected instances that meet the job requirements. MISCONFIGURATION:SERVICE_ROLE_PERMISSIONS - All compute environments have problems with the service role permissions. + /// A short, human-readable string to provide more details for the current status of the job. CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY - All compute environments have insufficient capacity to service the job. MISCONFIGURATION:COMPUTE_ENVIRONMENT_MAX_RESOURCE - All compute environments have a maxVcpu setting that is smaller than the job requirements. MISCONFIGURATION:JOB_RESOURCE_REQUIREMENT - All compute environments have no connected instances that meet the job requirements. MISCONFIGURATION:SERVICE_ROLE_PERMISSIONS - All compute environments have problems with the service role permissions. public let statusReason: String? /// The Unix timestamp (in milliseconds) for when the job was stopped. More specifically, it's when the job transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED. public let stoppedAt: Int64? @@ -2521,13 +2579,13 @@ extension Batch { } public struct JobStateTimeLimitAction: AWSEncodableShape & AWSDecodableShape { - /// The action to take when a job is at the head of the job queue in the specified state for the specified period of time. The only supported value is "CANCEL", which will cancel the job. + /// The action to take when a job is at the head of the job queue in the specified state for the specified period of time. The only supported value is CANCEL, which will cancel the job. public let action: JobStateTimeLimitActionsAction? /// The approximate amount of time, in seconds, that must pass with the job in the specified state before the action is taken. The minimum value is 600 (10 minutes) and the maximum value is 86,400 (24 hours). public let maxTimeSeconds: Int? /// The reason to log for the action being taken. public let reason: String? - /// The state of the job needed to trigger the action. The only supported value is "RUNNABLE". + /// The state of the job needed to trigger the action. The only supported value is RUNNABLE. public let state: JobStateTimeLimitActionsState? public init(action: JobStateTimeLimitActionsAction? = nil, maxTimeSeconds: Int? = nil, reason: String? = nil, state: JobStateTimeLimitActionsState? = nil) { diff --git a/Sources/Soto/Services/Bedrock/Bedrock_api.swift b/Sources/Soto/Services/Bedrock/Bedrock_api.swift index 0926ea6fbe..7d75ff0ab1 100644 --- a/Sources/Soto/Services/Bedrock/Bedrock_api.swift +++ b/Sources/Soto/Services/Bedrock/Bedrock_api.swift @@ -19,7 +19,7 @@ /// Service object for interacting with AWS Bedrock service. /// -/// Describes the API operations for creating and managing Amazon Bedrock models. +/// Describes the API operations for creating, managing, fine-turning, and evaluating Amazon Bedrock models. public struct Bedrock: AWSService { // MARK: Member variables @@ -72,14 +72,20 @@ public struct Bedrock: AWSService { /// custom endpoints for regions static var serviceEndpoints: [String: String] {[ "bedrock-ap-northeast-1": "bedrock.ap-northeast-1.amazonaws.com", + "bedrock-ap-south-1": "bedrock.ap-south-1.amazonaws.com", "bedrock-ap-southeast-1": "bedrock.ap-southeast-1.amazonaws.com", + "bedrock-ap-southeast-2": "bedrock.ap-southeast-2.amazonaws.com", "bedrock-eu-central-1": "bedrock.eu-central-1.amazonaws.com", + "bedrock-eu-west-1": "bedrock.eu-west-1.amazonaws.com", "bedrock-eu-west-3": "bedrock.eu-west-3.amazonaws.com", "bedrock-fips-us-east-1": "bedrock-fips.us-east-1.amazonaws.com", "bedrock-fips-us-west-2": "bedrock-fips.us-west-2.amazonaws.com", "bedrock-runtime-ap-northeast-1": "bedrock-runtime.ap-northeast-1.amazonaws.com", + "bedrock-runtime-ap-south-1": "bedrock-runtime.ap-south-1.amazonaws.com", "bedrock-runtime-ap-southeast-1": "bedrock-runtime.ap-southeast-1.amazonaws.com", + "bedrock-runtime-ap-southeast-2": "bedrock-runtime.ap-southeast-2.amazonaws.com", "bedrock-runtime-eu-central-1": "bedrock-runtime.eu-central-1.amazonaws.com", + "bedrock-runtime-eu-west-1": "bedrock-runtime.eu-west-1.amazonaws.com", "bedrock-runtime-eu-west-3": "bedrock-runtime.eu-west-3.amazonaws.com", "bedrock-runtime-fips-us-east-1": "bedrock-runtime-fips.us-east-1.amazonaws.com", "bedrock-runtime-fips-us-west-2": "bedrock-runtime-fips.us-west-2.amazonaws.com", @@ -95,7 +101,46 @@ public struct Bedrock: AWSService { // MARK: API Calls - /// Creates a fine-tuning job to customize a base model. You specify the base foundation model and the location of the training data. After the model-customization job completes successfully, your custom model resource will be ready to use. Training data contains input and output text for each record in a JSONL format. Optionally, you can specify validation data in the same format as the training data. Amazon Bedrock returns validation loss metrics and output generations after the job completes. Model-customization jobs are asynchronous and the completion time depends on the base model and the training/validation data size. To monitor a job, use the GetModelCustomizationJob operation to retrieve the job status. For more information, see Custom models in the Bedrock User Guide. + /// API operation for creating and managing Amazon Bedrock automatic model evaluation jobs and model evaluation jobs that use human workers. To learn more about the requirements for creating a model evaluation job see, Model evaluations. + @Sendable + public func createEvaluationJob(_ input: CreateEvaluationJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateEvaluationJobResponse { + return try await self.client.execute( + operation: "CreateEvaluationJob", + path: "/evaluation-jobs", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Creates a guardrail to block topics and to filter out harmful content. Specify a name and optional description. Specify messages for when the guardrail successfully blocks a prompt or a model response in the blockedInputMessaging and blockedOutputsMessaging fields. Specify topics for the guardrail to deny in the topicPolicyConfig object. Each GuardrailTopicConfig object in the topicsConfig list pertains to one topic. Give a name and description so that the guardrail can properly identify the topic. Specify DENY in the type field. (Optional) Provide up to five prompts that you would categorize as belonging to the topic in the examples list. Specify filter strengths for the harmful categories defined in Amazon Bedrock in the contentPolicyConfig object. Each GuardrailContentFilterConfig object in the filtersConfig list pertains to a harmful category. For more information, see Content filters. For more information about the fields in a content filter, see GuardrailContentFilterConfig. Specify the category in the type field. Specify the strength of the filter for prompts in the inputStrength field and for model responses in the strength field of the GuardrailContentFilterConfig. (Optional) For security, include the ARN of a KMS key in the kmsKeyId field. (Optional) Attach any tags to the guardrail in the tags object. For more information, see Tag resources. + @Sendable + public func createGuardrail(_ input: CreateGuardrailRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateGuardrailResponse { + return try await self.client.execute( + operation: "CreateGuardrail", + path: "/guardrails", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Creates a version of the guardrail. Use this API to create a snapshot of the guardrail when you are satisfied with a configuration, or to compare the configuration with another version. + @Sendable + public func createGuardrailVersion(_ input: CreateGuardrailVersionRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateGuardrailVersionResponse { + return try await self.client.execute( + operation: "CreateGuardrailVersion", + path: "/guardrails/{guardrailIdentifier}", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Creates a fine-tuning job to customize a base model. You specify the base foundation model and the location of the training data. After the model-customization job completes successfully, your custom model resource will be ready to use. Amazon Bedrock returns validation loss metrics and output generations after the job completes. For information on the format of training and validation data, see Prepare the datasets. Model-customization jobs are asynchronous and the completion time depends on the base model and the training/validation data size. To monitor a job, use the GetModelCustomizationJob operation to retrieve the job status. For more information, see Custom models in the Amazon Bedrock User Guide. @Sendable public func createModelCustomizationJob(_ input: CreateModelCustomizationJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateModelCustomizationJobResponse { return try await self.client.execute( @@ -108,7 +153,7 @@ public struct Bedrock: AWSService { ) } - /// Creates a provisioned throughput with dedicated capacity for a foundation model or a fine-tuned model. For more information, see Provisioned throughput in the Bedrock User Guide. + /// Creates dedicated throughput for a base or custom model with the model units and for the duration that you specify. For pricing details, see Amazon Bedrock Pricing. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide. @Sendable public func createProvisionedModelThroughput(_ input: CreateProvisionedModelThroughputRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateProvisionedModelThroughputResponse { return try await self.client.execute( @@ -121,7 +166,7 @@ public struct Bedrock: AWSService { ) } - /// Deletes a custom model that you created earlier. For more information, see Custom models in the Bedrock User Guide. + /// Deletes a custom model that you created earlier. For more information, see Custom models in the Amazon Bedrock User Guide. @Sendable public func deleteCustomModel(_ input: DeleteCustomModelRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteCustomModelResponse { return try await self.client.execute( @@ -134,6 +179,19 @@ public struct Bedrock: AWSService { ) } + /// Deletes a guardrail. To delete a guardrail, only specify the ARN of the guardrail in the guardrailIdentifier field. If you delete a guardrail, all of its versions will be deleted. To delete a version of a guardrail, specify the ARN of the guardrail in the guardrailIdentifier field and the version in the guardrailVersion field. + @Sendable + public func deleteGuardrail(_ input: DeleteGuardrailRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteGuardrailResponse { + return try await self.client.execute( + operation: "DeleteGuardrail", + path: "/guardrails/{guardrailIdentifier}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Delete the invocation logging. @Sendable public func deleteModelInvocationLoggingConfiguration(_ input: DeleteModelInvocationLoggingConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteModelInvocationLoggingConfigurationResponse { @@ -147,7 +205,7 @@ public struct Bedrock: AWSService { ) } - /// Deletes a provisioned throughput. For more information, see Provisioned throughput in the Bedrock User Guide. + /// Deletes a Provisioned Throughput. You can't delete a Provisioned Throughput before the commitment term is over. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide. @Sendable public func deleteProvisionedModelThroughput(_ input: DeleteProvisionedModelThroughputRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteProvisionedModelThroughputResponse { return try await self.client.execute( @@ -160,7 +218,7 @@ public struct Bedrock: AWSService { ) } - /// Get the properties associated with a Amazon Bedrock custom model that you have created.For more information, see Custom models in the Bedrock User Guide. + /// Get the properties associated with a Amazon Bedrock custom model that you have created.For more information, see Custom models in the Amazon Bedrock User Guide. @Sendable public func getCustomModel(_ input: GetCustomModelRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetCustomModelResponse { return try await self.client.execute( @@ -173,6 +231,19 @@ public struct Bedrock: AWSService { ) } + /// Retrieves the properties associated with a model evaluation job, including the status of the job. For more information, see Model evaluations. + @Sendable + public func getEvaluationJob(_ input: GetEvaluationJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetEvaluationJobResponse { + return try await self.client.execute( + operation: "GetEvaluationJob", + path: "/evaluation-jobs/{jobIdentifier}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Get details about a Amazon Bedrock foundation model. @Sendable public func getFoundationModel(_ input: GetFoundationModelRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetFoundationModelResponse { @@ -186,7 +257,20 @@ public struct Bedrock: AWSService { ) } - /// Retrieves the properties associated with a model-customization job, including the status of the job. For more information, see Custom models in the Bedrock User Guide. + /// Gets details about a guardrail. If you don't specify a version, the response returns details for the DRAFT version. + @Sendable + public func getGuardrail(_ input: GetGuardrailRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetGuardrailResponse { + return try await self.client.execute( + operation: "GetGuardrail", + path: "/guardrails/{guardrailIdentifier}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Retrieves the properties associated with a model-customization job, including the status of the job. For more information, see Custom models in the Amazon Bedrock User Guide. @Sendable public func getModelCustomizationJob(_ input: GetModelCustomizationJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetModelCustomizationJobResponse { return try await self.client.execute( @@ -212,7 +296,7 @@ public struct Bedrock: AWSService { ) } - /// Get details for a provisioned throughput. For more information, see Provisioned throughput in the Bedrock User Guide. + /// Returns details for a Provisioned Throughput. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide. @Sendable public func getProvisionedModelThroughput(_ input: GetProvisionedModelThroughputRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetProvisionedModelThroughputResponse { return try await self.client.execute( @@ -225,7 +309,7 @@ public struct Bedrock: AWSService { ) } - /// Returns a list of the custom models that you have created with the CreateModelCustomizationJob operation. For more information, see Custom models in the Bedrock User Guide. + /// Returns a list of the custom models that you have created with the CreateModelCustomizationJob operation. For more information, see Custom models in the Amazon Bedrock User Guide. @Sendable public func listCustomModels(_ input: ListCustomModelsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListCustomModelsResponse { return try await self.client.execute( @@ -238,7 +322,20 @@ public struct Bedrock: AWSService { ) } - /// List of Amazon Bedrock foundation models that you can use. For more information, see Foundation models in the Bedrock User Guide. + /// Lists model evaluation jobs. + @Sendable + public func listEvaluationJobs(_ input: ListEvaluationJobsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListEvaluationJobsResponse { + return try await self.client.execute( + operation: "ListEvaluationJobs", + path: "/evaluation-jobs", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Lists Amazon Bedrock foundation models that you can use. You can filter the results with the request parameters. For more information, see Foundation models in the Amazon Bedrock User Guide. @Sendable public func listFoundationModels(_ input: ListFoundationModelsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListFoundationModelsResponse { return try await self.client.execute( @@ -251,7 +348,20 @@ public struct Bedrock: AWSService { ) } - /// Returns a list of model customization jobs that you have submitted. You can filter the jobs to return based on one or more criteria. For more information, see Custom models in the Bedrock User Guide. + /// Lists details about all the guardrails in an account. To list the DRAFT version of all your guardrails, don't specify the guardrailIdentifier field. To list all versions of a guardrail, specify the ARN of the guardrail in the guardrailIdentifier field. You can set the maximum number of results to return in a response in the maxResults field. If there are more results than the number you set, the response returns a nextToken that you can send in another ListGuardrails request to see the next batch of results. + @Sendable + public func listGuardrails(_ input: ListGuardrailsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListGuardrailsResponse { + return try await self.client.execute( + operation: "ListGuardrails", + path: "/guardrails", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Returns a list of model customization jobs that you have submitted. You can filter the jobs to return based on one or more criteria. For more information, see Custom models in the Amazon Bedrock User Guide. @Sendable public func listModelCustomizationJobs(_ input: ListModelCustomizationJobsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListModelCustomizationJobsResponse { return try await self.client.execute( @@ -264,7 +374,7 @@ public struct Bedrock: AWSService { ) } - /// List the provisioned capacities. For more information, see Provisioned throughput in the Bedrock User Guide. + /// Lists the Provisioned Throughputs in the account. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide. @Sendable public func listProvisionedModelThroughputs(_ input: ListProvisionedModelThroughputsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListProvisionedModelThroughputsResponse { return try await self.client.execute( @@ -277,7 +387,7 @@ public struct Bedrock: AWSService { ) } - /// List the tags associated with the specified resource. For more information, see Tagging resources in the Bedrock User Guide. + /// List the tags associated with the specified resource. For more information, see Tagging resources in the Amazon Bedrock User Guide. @Sendable public func listTagsForResource(_ input: ListTagsForResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListTagsForResourceResponse { return try await self.client.execute( @@ -303,7 +413,20 @@ public struct Bedrock: AWSService { ) } - /// Stops an active model customization job. For more information, see Custom models in the Bedrock User Guide. + /// Stops an in progress model evaluation job. + @Sendable + public func stopEvaluationJob(_ input: StopEvaluationJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StopEvaluationJobResponse { + return try await self.client.execute( + operation: "StopEvaluationJob", + path: "/evaluation-job/{jobIdentifier}/stop", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Stops an active model customization job. For more information, see Custom models in the Amazon Bedrock User Guide. @Sendable public func stopModelCustomizationJob(_ input: StopModelCustomizationJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StopModelCustomizationJobResponse { return try await self.client.execute( @@ -316,7 +439,7 @@ public struct Bedrock: AWSService { ) } - /// Associate tags with a resource. For more information, see Tagging resources in the Bedrock User Guide. + /// Associate tags with a resource. For more information, see Tagging resources in the Amazon Bedrock User Guide. @Sendable public func tagResource(_ input: TagResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> TagResourceResponse { return try await self.client.execute( @@ -329,7 +452,7 @@ public struct Bedrock: AWSService { ) } - /// Remove one or more tags from a resource. For more information, see Tagging resources in the Bedrock User Guide. + /// Remove one or more tags from a resource. For more information, see Tagging resources in the Amazon Bedrock User Guide. @Sendable public func untagResource(_ input: UntagResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UntagResourceResponse { return try await self.client.execute( @@ -342,7 +465,20 @@ public struct Bedrock: AWSService { ) } - /// Update a provisioned throughput. For more information, see Provisioned throughput in the Bedrock User Guide. + /// Updates a guardrail with the values you specify. Specify a name and optional description. Specify messages for when the guardrail successfully blocks a prompt or a model response in the blockedInputMessaging and blockedOutputsMessaging fields. Specify topics for the guardrail to deny in the topicPolicyConfig object. Each GuardrailTopicConfig object in the topicsConfig list pertains to one topic. Give a name and description so that the guardrail can properly identify the topic. Specify DENY in the type field. (Optional) Provide up to five prompts that you would categorize as belonging to the topic in the examples list. Specify filter strengths for the harmful categories defined in Amazon Bedrock in the contentPolicyConfig object. Each GuardrailContentFilterConfig object in the filtersConfig list pertains to a harmful category. For more information, see Content filters. For more information about the fields in a content filter, see GuardrailContentFilterConfig. Specify the category in the type field. Specify the strength of the filter for prompts in the inputStrength field and for model responses in the strength field of the GuardrailContentFilterConfig. (Optional) For security, include the ARN of a KMS key in the kmsKeyId field. (Optional) Attach any tags to the guardrail in the tags object. For more information, see Tag resources. + @Sendable + public func updateGuardrail(_ input: UpdateGuardrailRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateGuardrailResponse { + return try await self.client.execute( + operation: "UpdateGuardrail", + path: "/guardrails/{guardrailIdentifier}", + httpMethod: .PUT, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Updates the name or associated model for a Provisioned Throughput. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide. @Sendable public func updateProvisionedModelThroughput(_ input: UpdateProvisionedModelThroughputRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateProvisionedModelThroughputResponse { return try await self.client.execute( @@ -369,7 +505,7 @@ extension Bedrock { @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) extension Bedrock { - /// Returns a list of the custom models that you have created with the CreateModelCustomizationJob operation. For more information, see Custom models in the Bedrock User Guide. + /// Returns a list of the custom models that you have created with the CreateModelCustomizationJob operation. For more information, see Custom models in the Amazon Bedrock User Guide. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -388,7 +524,45 @@ extension Bedrock { ) } - /// Returns a list of model customization jobs that you have submitted. You can filter the jobs to return based on one or more criteria. For more information, see Custom models in the Bedrock User Guide. + /// Lists model evaluation jobs. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listEvaluationJobsPaginator( + _ input: ListEvaluationJobsRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listEvaluationJobs, + inputKey: \ListEvaluationJobsRequest.nextToken, + outputKey: \ListEvaluationJobsResponse.nextToken, + logger: logger + ) + } + + /// Lists details about all the guardrails in an account. To list the DRAFT version of all your guardrails, don't specify the guardrailIdentifier field. To list all versions of a guardrail, specify the ARN of the guardrail in the guardrailIdentifier field. You can set the maximum number of results to return in a response in the maxResults field. If there are more results than the number you set, the response returns a nextToken that you can send in another ListGuardrails request to see the next batch of results. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listGuardrailsPaginator( + _ input: ListGuardrailsRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listGuardrails, + inputKey: \ListGuardrailsRequest.nextToken, + outputKey: \ListGuardrailsResponse.nextToken, + logger: logger + ) + } + + /// Returns a list of model customization jobs that you have submitted. You can filter the jobs to return based on one or more criteria. For more information, see Custom models in the Amazon Bedrock User Guide. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -407,7 +581,7 @@ extension Bedrock { ) } - /// List the provisioned capacities. For more information, see Provisioned throughput in the Bedrock User Guide. + /// Lists the Provisioned Throughputs in the account. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -443,6 +617,31 @@ extension Bedrock.ListCustomModelsRequest: AWSPaginateToken { } } +extension Bedrock.ListEvaluationJobsRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> Bedrock.ListEvaluationJobsRequest { + return .init( + creationTimeAfter: self.creationTimeAfter, + creationTimeBefore: self.creationTimeBefore, + maxResults: self.maxResults, + nameContains: self.nameContains, + nextToken: token, + sortBy: self.sortBy, + sortOrder: self.sortOrder, + statusEquals: self.statusEquals + ) + } +} + +extension Bedrock.ListGuardrailsRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> Bedrock.ListGuardrailsRequest { + return .init( + guardrailIdentifier: self.guardrailIdentifier, + maxResults: self.maxResults, + nextToken: token + ) + } +} + extension Bedrock.ListModelCustomizationJobsRequest: AWSPaginateToken { public func usingPaginationToken(_ token: String) -> Bedrock.ListModelCustomizationJobsRequest { return .init( diff --git a/Sources/Soto/Services/Bedrock/Bedrock_shapes.swift b/Sources/Soto/Services/Bedrock/Bedrock_shapes.swift index d5fca7c608..9e89548b22 100644 --- a/Sources/Soto/Services/Bedrock/Bedrock_shapes.swift +++ b/Sources/Soto/Services/Bedrock/Bedrock_shapes.swift @@ -38,6 +38,30 @@ extension Bedrock { public var description: String { return self.rawValue } } + public enum EvaluationJobStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case completed = "Completed" + case failed = "Failed" + case inProgress = "InProgress" + case stopped = "Stopped" + case stopping = "Stopping" + public var description: String { return self.rawValue } + } + + public enum EvaluationJobType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case automated = "Automated" + case human = "Human" + public var description: String { return self.rawValue } + } + + public enum EvaluationTaskType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case classification = "Classification" + case custom = "Custom" + case generation = "Generation" + case questionAndAnswer = "QuestionAndAnswer" + case summarization = "Summarization" + public var description: String { return self.rawValue } + } + public enum FineTuningJobStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case completed = "Completed" case failed = "Failed" @@ -53,6 +77,85 @@ extension Bedrock { public var description: String { return self.rawValue } } + public enum GuardrailContentFilterType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case hate = "HATE" + case insults = "INSULTS" + case misconduct = "MISCONDUCT" + case promptAttack = "PROMPT_ATTACK" + case sexual = "SEXUAL" + case violence = "VIOLENCE" + public var description: String { return self.rawValue } + } + + public enum GuardrailFilterStrength: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case high = "HIGH" + case low = "LOW" + case medium = "MEDIUM" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public enum GuardrailManagedWordsType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case profanity = "PROFANITY" + public var description: String { return self.rawValue } + } + + public enum GuardrailPiiEntityType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case address = "ADDRESS" + case age = "AGE" + case awsAccessKey = "AWS_ACCESS_KEY" + case awsSecretKey = "AWS_SECRET_KEY" + case caHealthNumber = "CA_HEALTH_NUMBER" + case caSocialInsuranceNumber = "CA_SOCIAL_INSURANCE_NUMBER" + case creditDebitCardCvv = "CREDIT_DEBIT_CARD_CVV" + case creditDebitCardExpiry = "CREDIT_DEBIT_CARD_EXPIRY" + case creditDebitCardNumber = "CREDIT_DEBIT_CARD_NUMBER" + case driverId = "DRIVER_ID" + case email = "EMAIL" + case internationalBankAccountNumber = "INTERNATIONAL_BANK_ACCOUNT_NUMBER" + case ipAddress = "IP_ADDRESS" + case licensePlate = "LICENSE_PLATE" + case macAddress = "MAC_ADDRESS" + case name = "NAME" + case password = "PASSWORD" + case phone = "PHONE" + case pin = "PIN" + case swiftCode = "SWIFT_CODE" + case ukNationalHealthServiceNumber = "UK_NATIONAL_HEALTH_SERVICE_NUMBER" + case ukNationalInsuranceNumber = "UK_NATIONAL_INSURANCE_NUMBER" + case ukUniqueTaxpayerReferenceNumber = "UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER" + case url = "URL" + case usBankAccountNumber = "US_BANK_ACCOUNT_NUMBER" + case usBankRoutingNumber = "US_BANK_ROUTING_NUMBER" + case usIndividualTaxIdentificationNumber = "US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER" + case usPassportNumber = "US_PASSPORT_NUMBER" + case usSocialSecurityNumber = "US_SOCIAL_SECURITY_NUMBER" + case username = "USERNAME" + case vehicleIdentificationNumber = "VEHICLE_IDENTIFICATION_NUMBER" + public var description: String { return self.rawValue } + } + + public enum GuardrailSensitiveInformationAction: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case anonymize = "ANONYMIZE" + case block = "BLOCK" + public var description: String { return self.rawValue } + } + + public enum GuardrailStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case creating = "CREATING" + case deleting = "DELETING" + case failed = "FAILED" + case ready = "READY" + case updating = "UPDATING" + case versioning = "VERSIONING" + public var description: String { return self.rawValue } + } + + public enum GuardrailTopicType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case deny = "DENY" + public var description: String { return self.rawValue } + } + public enum InferenceType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case onDemand = "ON_DEMAND" case provisioned = "PROVISIONED" @@ -110,14 +213,85 @@ extension Bedrock { public var description: String { return self.rawValue } } + public enum EvaluationConfig: AWSEncodableShape & AWSDecodableShape, Sendable { + /// Used to specify an automated model evaluation job. See AutomatedEvaluationConfig to view the required parameters. + case automated(AutomatedEvaluationConfig) + /// Used to specify a model evaluation job that uses human workers.See HumanEvaluationConfig to view the required parameters. + case human(HumanEvaluationConfig) + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + guard container.allKeys.count == 1, let key = container.allKeys.first else { + let context = DecodingError.Context( + codingPath: container.codingPath, + debugDescription: "Expected exactly one key, but got \(container.allKeys.count)" + ) + throw DecodingError.dataCorrupted(context) + } + switch key { + case .automated: + let value = try container.decode(AutomatedEvaluationConfig.self, forKey: .automated) + self = .automated(value) + case .human: + let value = try container.decode(HumanEvaluationConfig.self, forKey: .human) + self = .human(value) + } + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case .automated(let value): + try container.encode(value, forKey: .automated) + case .human(let value): + try container.encode(value, forKey: .human) + } + } + + public func validate(name: String) throws { + switch self { + case .automated(let value): + try value.validate(name: "\(name).automated") + case .human(let value): + try value.validate(name: "\(name).human") + } + } + + private enum CodingKeys: String, CodingKey { + case automated = "automated" + case human = "human" + } + } + // MARK: Shapes + public struct AutomatedEvaluationConfig: AWSEncodableShape & AWSDecodableShape { + /// Specifies the required elements for an automatic model evaluation job. + public let datasetMetricConfigs: [EvaluationDatasetMetricConfig] + + public init(datasetMetricConfigs: [EvaluationDatasetMetricConfig]) { + self.datasetMetricConfigs = datasetMetricConfigs + } + + public func validate(name: String) throws { + try self.datasetMetricConfigs.forEach { + try $0.validate(name: "\(name).datasetMetricConfigs[]") + } + try self.validate(self.datasetMetricConfigs, name: "datasetMetricConfigs", parent: name, max: 5) + try self.validate(self.datasetMetricConfigs, name: "datasetMetricConfigs", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case datasetMetricConfigs = "datasetMetricConfigs" + } + } + public struct CloudWatchConfig: AWSEncodableShape & AWSDecodableShape { /// S3 configuration for delivering a large amount of data. public let largeDataDeliveryS3Config: S3Config? /// The log group name. public let logGroupName: String - /// The role ARN. + /// The role Amazon Resource Name (ARN). public let roleArn: String public init(largeDataDeliveryS3Config: S3Config? = nil, logGroupName: String, roleArn: String) { @@ -141,28 +315,270 @@ extension Bedrock { } } + public struct CreateEvaluationJobRequest: AWSEncodableShape { + /// A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency. + public let clientRequestToken: String? + /// Specify your customer managed key ARN that will be used to encrypt your model evaluation job. + public let customerEncryptionKeyId: String? + /// Specifies whether the model evaluation job is automatic or uses human worker. + public let evaluationConfig: EvaluationConfig + /// Specify the models you want to use in your model evaluation job. Automatic model evaluation jobs support a single model, and model evaluation job that use human workers support two models. + public let inferenceConfig: EvaluationInferenceConfig + /// A description of the model evaluation job. + public let jobDescription: String? + /// The name of the model evaluation job. Model evaluation job names must unique with your AWS account, and your account's AWS region. + public let jobName: String + /// Tags to attach to the model evaluation job. + public let jobTags: [Tag]? + /// An object that defines where the results of model evaluation job will be saved in Amazon S3. + public let outputDataConfig: EvaluationOutputDataConfig + /// The Amazon Resource Name (ARN) of an IAM service role that Amazon Bedrock can assume to perform tasks on your behalf. The service role must have Amazon Bedrock as the service principal, and provide access to any Amazon S3 buckets specified in the EvaluationConfig object. To pass this role to Amazon Bedrock, the caller of this API must have the iam:PassRole permission. To learn more about the required permissions, see Required permissions. + public let roleArn: String + + public init(clientRequestToken: String? = CreateEvaluationJobRequest.idempotencyToken(), customerEncryptionKeyId: String? = nil, evaluationConfig: EvaluationConfig, inferenceConfig: EvaluationInferenceConfig, jobDescription: String? = nil, jobName: String, jobTags: [Tag]? = nil, outputDataConfig: EvaluationOutputDataConfig, roleArn: String) { + self.clientRequestToken = clientRequestToken + self.customerEncryptionKeyId = customerEncryptionKeyId + self.evaluationConfig = evaluationConfig + self.inferenceConfig = inferenceConfig + self.jobDescription = jobDescription + self.jobName = jobName + self.jobTags = jobTags + self.outputDataConfig = outputDataConfig + self.roleArn = roleArn + } + + public func validate(name: String) throws { + try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, max: 256) + try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 1) + try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, pattern: "^[a-zA-Z0-9](-*[a-zA-Z0-9])*$") + try self.validate(self.customerEncryptionKeyId, name: "customerEncryptionKeyId", parent: name, max: 2048) + try self.validate(self.customerEncryptionKeyId, name: "customerEncryptionKeyId", parent: name, min: 1) + try self.validate(self.customerEncryptionKeyId, name: "customerEncryptionKeyId", parent: name, pattern: "^arn:aws(-[^:]+)?:kms:[a-zA-Z0-9-]*:[0-9]{12}:((key/[a-zA-Z0-9-]{36})|(alias/[a-zA-Z0-9-_/]+))$") + try self.evaluationConfig.validate(name: "\(name).evaluationConfig") + try self.inferenceConfig.validate(name: "\(name).inferenceConfig") + try self.validate(self.jobDescription, name: "jobDescription", parent: name, max: 200) + try self.validate(self.jobDescription, name: "jobDescription", parent: name, min: 1) + try self.validate(self.jobDescription, name: "jobDescription", parent: name, pattern: "^.+$") + try self.validate(self.jobName, name: "jobName", parent: name, max: 63) + try self.validate(self.jobName, name: "jobName", parent: name, min: 1) + try self.validate(self.jobName, name: "jobName", parent: name, pattern: "^[a-z0-9](-*[a-z0-9]){0,62}$") + try self.jobTags?.forEach { + try $0.validate(name: "\(name).jobTags[]") + } + try self.validate(self.jobTags, name: "jobTags", parent: name, max: 200) + try self.outputDataConfig.validate(name: "\(name).outputDataConfig") + try self.validate(self.roleArn, name: "roleArn", parent: name, max: 2048) + try self.validate(self.roleArn, name: "roleArn", parent: name, pattern: "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/.+$") + } + + private enum CodingKeys: String, CodingKey { + case clientRequestToken = "clientRequestToken" + case customerEncryptionKeyId = "customerEncryptionKeyId" + case evaluationConfig = "evaluationConfig" + case inferenceConfig = "inferenceConfig" + case jobDescription = "jobDescription" + case jobName = "jobName" + case jobTags = "jobTags" + case outputDataConfig = "outputDataConfig" + case roleArn = "roleArn" + } + } + + public struct CreateEvaluationJobResponse: AWSDecodableShape { + /// The ARN of the model evaluation job. + public let jobArn: String + + public init(jobArn: String) { + self.jobArn = jobArn + } + + private enum CodingKeys: String, CodingKey { + case jobArn = "jobArn" + } + } + + public struct CreateGuardrailRequest: AWSEncodableShape { + /// The message to return when the guardrail blocks a prompt. + public let blockedInputMessaging: String + /// The message to return when the guardrail blocks a model response. + public let blockedOutputsMessaging: String + /// A unique, case-sensitive identifier to ensure that the API request completes no more than once. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency in the Amazon S3 User Guide. + public let clientRequestToken: String? + /// The content filter policies to configure for the guardrail. + public let contentPolicyConfig: GuardrailContentPolicyConfig? + /// A description of the guardrail. + public let description: String? + /// The ARN of the KMS key that you use to encrypt the guardrail. + public let kmsKeyId: String? + /// The name to give the guardrail. + public let name: String + /// The sensitive information policy to configure for the guardrail. + public let sensitiveInformationPolicyConfig: GuardrailSensitiveInformationPolicyConfig? + /// The tags that you want to attach to the guardrail. + public let tags: [Tag]? + /// The topic policies to configure for the guardrail. + public let topicPolicyConfig: GuardrailTopicPolicyConfig? + /// The word policy you configure for the guardrail. + public let wordPolicyConfig: GuardrailWordPolicyConfig? + + public init(blockedInputMessaging: String, blockedOutputsMessaging: String, clientRequestToken: String? = CreateGuardrailRequest.idempotencyToken(), contentPolicyConfig: GuardrailContentPolicyConfig? = nil, description: String? = nil, kmsKeyId: String? = nil, name: String, sensitiveInformationPolicyConfig: GuardrailSensitiveInformationPolicyConfig? = nil, tags: [Tag]? = nil, topicPolicyConfig: GuardrailTopicPolicyConfig? = nil, wordPolicyConfig: GuardrailWordPolicyConfig? = nil) { + self.blockedInputMessaging = blockedInputMessaging + self.blockedOutputsMessaging = blockedOutputsMessaging + self.clientRequestToken = clientRequestToken + self.contentPolicyConfig = contentPolicyConfig + self.description = description + self.kmsKeyId = kmsKeyId + self.name = name + self.sensitiveInformationPolicyConfig = sensitiveInformationPolicyConfig + self.tags = tags + self.topicPolicyConfig = topicPolicyConfig + self.wordPolicyConfig = wordPolicyConfig + } + + public func validate(name: String) throws { + try self.validate(self.blockedInputMessaging, name: "blockedInputMessaging", parent: name, max: 500) + try self.validate(self.blockedInputMessaging, name: "blockedInputMessaging", parent: name, min: 1) + try self.validate(self.blockedOutputsMessaging, name: "blockedOutputsMessaging", parent: name, max: 500) + try self.validate(self.blockedOutputsMessaging, name: "blockedOutputsMessaging", parent: name, min: 1) + try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, max: 256) + try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 1) + try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, pattern: "^[a-zA-Z0-9](-*[a-zA-Z0-9])*$") + try self.contentPolicyConfig?.validate(name: "\(name).contentPolicyConfig") + try self.validate(self.description, name: "description", parent: name, max: 200) + try self.validate(self.description, name: "description", parent: name, min: 1) + try self.validate(self.kmsKeyId, name: "kmsKeyId", parent: name, max: 2048) + try self.validate(self.kmsKeyId, name: "kmsKeyId", parent: name, min: 1) + try self.validate(self.kmsKeyId, name: "kmsKeyId", parent: name, pattern: "^arn:aws(-[^:]+)?:kms:[a-zA-Z0-9-]*:[0-9]{12}:((key/[a-zA-Z0-9-]{36})|(alias/[a-zA-Z0-9-_/]+))$") + try self.validate(self.name, name: "name", parent: name, max: 50) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[0-9a-zA-Z-_]+$") + try self.sensitiveInformationPolicyConfig?.validate(name: "\(name).sensitiveInformationPolicyConfig") + try self.tags?.forEach { + try $0.validate(name: "\(name).tags[]") + } + try self.validate(self.tags, name: "tags", parent: name, max: 200) + try self.topicPolicyConfig?.validate(name: "\(name).topicPolicyConfig") + try self.wordPolicyConfig?.validate(name: "\(name).wordPolicyConfig") + } + + private enum CodingKeys: String, CodingKey { + case blockedInputMessaging = "blockedInputMessaging" + case blockedOutputsMessaging = "blockedOutputsMessaging" + case clientRequestToken = "clientRequestToken" + case contentPolicyConfig = "contentPolicyConfig" + case description = "description" + case kmsKeyId = "kmsKeyId" + case name = "name" + case sensitiveInformationPolicyConfig = "sensitiveInformationPolicyConfig" + case tags = "tags" + case topicPolicyConfig = "topicPolicyConfig" + case wordPolicyConfig = "wordPolicyConfig" + } + } + + public struct CreateGuardrailResponse: AWSDecodableShape { + /// The time at which the guardrail was created. + @CustomCoding + public var createdAt: Date + /// The ARN of the guardrail that was created. + public let guardrailArn: String + /// The unique identifier of the guardrail that was created. + public let guardrailId: String + /// The version of the guardrail that was created. This value should be 1. + public let version: String + + public init(createdAt: Date, guardrailArn: String, guardrailId: String, version: String) { + self.createdAt = createdAt + self.guardrailArn = guardrailArn + self.guardrailId = guardrailId + self.version = version + } + + private enum CodingKeys: String, CodingKey { + case createdAt = "createdAt" + case guardrailArn = "guardrailArn" + case guardrailId = "guardrailId" + case version = "version" + } + } + + public struct CreateGuardrailVersionRequest: AWSEncodableShape { + /// A unique, case-sensitive identifier to ensure that the API request completes no more than once. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency in the Amazon S3 User Guide. + public let clientRequestToken: String? + /// A description of the guardrail version. + public let description: String? + /// The unique identifier of the guardrail. + public let guardrailIdentifier: String + + public init(clientRequestToken: String? = CreateGuardrailVersionRequest.idempotencyToken(), description: String? = nil, guardrailIdentifier: String) { + self.clientRequestToken = clientRequestToken + self.description = description + self.guardrailIdentifier = guardrailIdentifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.clientRequestToken, forKey: .clientRequestToken) + try container.encodeIfPresent(self.description, forKey: .description) + request.encodePath(self.guardrailIdentifier, key: "guardrailIdentifier") + } + + public func validate(name: String) throws { + try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, max: 256) + try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 1) + try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, pattern: "^[a-zA-Z0-9](-*[a-zA-Z0-9])*$") + try self.validate(self.description, name: "description", parent: name, max: 200) + try self.validate(self.description, name: "description", parent: name, min: 1) + try self.validate(self.guardrailIdentifier, name: "guardrailIdentifier", parent: name, max: 2048) + try self.validate(self.guardrailIdentifier, name: "guardrailIdentifier", parent: name, pattern: "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$") + } + + private enum CodingKeys: String, CodingKey { + case clientRequestToken = "clientRequestToken" + case description = "description" + } + } + + public struct CreateGuardrailVersionResponse: AWSDecodableShape { + /// The unique identifier of the guardrail. + public let guardrailId: String + /// The number of the version of the guardrail. + public let version: String + + public init(guardrailId: String, version: String) { + self.guardrailId = guardrailId + self.version = version + } + + private enum CodingKeys: String, CodingKey { + case guardrailId = "guardrailId" + case version = "version" + } + } + public struct CreateModelCustomizationJobRequest: AWSEncodableShape { /// Name of the base model. public let baseModelIdentifier: String - /// Unique token value that you can provide. The GetModelCustomizationJob response includes the same token value. + /// A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency. public let clientRequestToken: String? /// The customization type. public let customizationType: CustomizationType? /// The custom model is encrypted at rest using this key. public let customModelKmsKeyId: String? - /// Enter a name for the custom model. + /// A name for the resulting custom model. public let customModelName: String - /// Assign tags to the custom model. + /// Tags to attach to the resulting custom model. public let customModelTags: [Tag]? - /// Parameters related to tuning the model. + /// Parameters related to tuning the model. For details on the format for different models, see Custom model hyperparameters. public let hyperParameters: [String: String] - /// Enter a unique name for the fine-tuning job. + /// A name for the fine-tuning job. public let jobName: String - /// Assign tags to the job. + /// Tags to attach to the job. public let jobTags: [Tag]? /// S3 location for the output data. public let outputDataConfig: OutputDataConfig - /// The Amazon Resource Name (ARN) of an IAM role that Amazon Bedrock can assume to perform tasks on your behalf. For example, during model training, Amazon Bedrock needs your permission to read input data from an S3 bucket, write model artifacts to an S3 bucket. To pass this role to Amazon Bedrock, the caller of this API must have the iam:PassRole permission. + /// The Amazon Resource Name (ARN) of an IAM service role that Amazon Bedrock can assume to perform tasks on your behalf. For example, during model training, Amazon Bedrock needs your permission to read input data from an S3 bucket, write model artifacts to an S3 bucket. To pass this role to Amazon Bedrock, the caller of this API must have the iam:PassRole permission. public let roleArn: String /// Information about the training dataset. public let trainingDataConfig: TrainingDataConfig @@ -239,7 +655,7 @@ extension Bedrock { } public struct CreateModelCustomizationJobResponse: AWSDecodableShape { - /// ARN of the fine tuning job + /// Amazon Resource Name (ARN) of the fine tuning job public let jobArn: String public init(jobArn: String) { @@ -252,17 +668,17 @@ extension Bedrock { } public struct CreateProvisionedModelThroughputRequest: AWSEncodableShape { - /// Unique token value that you can provide. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. + /// A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency in the Amazon S3 User Guide. public let clientRequestToken: String? - /// Commitment duration requested for the provisioned throughput. + /// The commitment duration requested for the Provisioned Throughput. Billing occurs hourly and is discounted for longer commitment terms. To request a no-commit Provisioned Throughput, omit this field. Custom models support all levels of commitment. To see which base models support no commitment, see Supported regions and models for Provisioned Throughput in the Amazon Bedrock User Guide public let commitmentDuration: CommitmentDuration? - /// Name or ARN of the model to associate with this provisioned throughput. + /// The Amazon Resource Name (ARN) or name of the model to associate with this Provisioned Throughput. For a list of models for which you can purchase Provisioned Throughput, see Amazon Bedrock model IDs for purchasing Provisioned Throughput in the Amazon Bedrock User Guide. public let modelId: String - /// Number of model units to allocate. + /// Number of model units to allocate. A model unit delivers a specific throughput level for the specified model. The throughput level of a model unit specifies the total number of input and output tokens that it can process and generate within a span of one minute. By default, your account has no model units for purchasing Provisioned Throughputs with commitment. You must first visit the Amazon Web Services support center to request MUs. For model unit quotas, see Provisioned Throughput quotas in the Amazon Bedrock User Guide. For more information about what an MU specifies, contact your Amazon Web Services account manager. public let modelUnits: Int - /// Unique name for this provisioned throughput. + /// The name for this Provisioned Throughput. public let provisionedModelName: String - /// Tags to associate with this provisioned throughput. + /// Tags to associate with this Provisioned Throughput. public let tags: [Tag]? public init(clientRequestToken: String? = CreateProvisionedModelThroughputRequest.idempotencyToken(), commitmentDuration: CommitmentDuration? = nil, modelId: String, modelUnits: Int, provisionedModelName: String, tags: [Tag]? = nil) { @@ -302,7 +718,7 @@ extension Bedrock { } public struct CreateProvisionedModelThroughputResponse: AWSDecodableShape { - /// The ARN for this provisioned throughput. + /// The Amazon Resource Name (ARN) for this Provisioned Throughput. public let provisionedModelArn: String public init(provisionedModelArn: String) { @@ -315,7 +731,7 @@ extension Bedrock { } public struct CustomModelSummary: AWSDecodableShape { - /// The base model ARN. + /// The base model Amazon Resource Name (ARN). public let baseModelArn: String /// The base model name. public let baseModelName: String @@ -324,7 +740,7 @@ extension Bedrock { public var creationTime: Date /// Specifies whether to carry out continued pre-training of a model or whether to fine-tune it. For more information, see Custom models. public let customizationType: CustomizationType? - /// The ARN of the custom model. + /// The Amazon Resource Name (ARN) of the custom model. public let modelArn: String /// The name of the custom model. public let modelName: String @@ -375,6 +791,37 @@ extension Bedrock { public init() {} } + public struct DeleteGuardrailRequest: AWSEncodableShape { + /// The unique identifier of the guardrail. + public let guardrailIdentifier: String + /// The version of the guardrail. + public let guardrailVersion: String? + + public init(guardrailIdentifier: String, guardrailVersion: String? = nil) { + self.guardrailIdentifier = guardrailIdentifier + self.guardrailVersion = guardrailVersion + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.guardrailIdentifier, key: "guardrailIdentifier") + request.encodeQuery(self.guardrailVersion, key: "guardrailVersion") + } + + public func validate(name: String) throws { + try self.validate(self.guardrailIdentifier, name: "guardrailIdentifier", parent: name, max: 2048) + try self.validate(self.guardrailIdentifier, name: "guardrailIdentifier", parent: name, pattern: "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$") + try self.validate(self.guardrailVersion, name: "guardrailVersion", parent: name, pattern: "^[1-9][0-9]{0,7}$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct DeleteGuardrailResponse: AWSDecodableShape { + public init() {} + } + public struct DeleteModelInvocationLoggingConfigurationRequest: AWSEncodableShape { public init() {} } @@ -384,7 +831,7 @@ extension Bedrock { } public struct DeleteProvisionedModelThroughputRequest: AWSEncodableShape { - /// The ARN or name of the provisioned throughput. + /// The Amazon Resource Name (ARN) or name of the Provisioned Throughput. public let provisionedModelId: String public init(provisionedModelId: String) { @@ -408,6 +855,144 @@ extension Bedrock { public init() {} } + public struct EvaluationBedrockModel: AWSEncodableShape & AWSDecodableShape { + /// Each Amazon Bedrock support different inference parameters that change how the model behaves during inference. + public let inferenceParams: String + /// The ARN of the Amazon Bedrock model specified. + public let modelIdentifier: String + + public init(inferenceParams: String, modelIdentifier: String) { + self.inferenceParams = inferenceParams + self.modelIdentifier = modelIdentifier + } + + public func validate(name: String) throws { + try self.validate(self.inferenceParams, name: "inferenceParams", parent: name, max: 1023) + try self.validate(self.inferenceParams, name: "inferenceParams", parent: name, min: 1) + try self.validate(self.modelIdentifier, name: "modelIdentifier", parent: name, max: 2048) + try self.validate(self.modelIdentifier, name: "modelIdentifier", parent: name, min: 1) + try self.validate(self.modelIdentifier, name: "modelIdentifier", parent: name, pattern: "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$") + } + + private enum CodingKeys: String, CodingKey { + case inferenceParams = "inferenceParams" + case modelIdentifier = "modelIdentifier" + } + } + + public struct EvaluationDataset: AWSEncodableShape & AWSDecodableShape { + /// For custom prompt datasets, you must specify the location in Amazon S3 where the prompt dataset is saved. + public let datasetLocation: EvaluationDatasetLocation? + /// Used to specify supported built-in prompt datasets. Valid values are Builtin.Bold, Builtin.BoolQ, Builtin.NaturalQuestions, Builtin.Gigaword, Builtin.RealToxicityPrompts, Builtin.TriviaQa, Builtin.T-Rex, Builtin.WomensEcommerceClothingReviews and Builtin.Wikitext2. + public let name: String + + public init(datasetLocation: EvaluationDatasetLocation? = nil, name: String) { + self.datasetLocation = datasetLocation + self.name = name + } + + public func validate(name: String) throws { + try self.datasetLocation?.validate(name: "\(name).datasetLocation") + try self.validate(self.name, name: "name", parent: name, max: 63) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[0-9a-zA-Z-_.]+$") + } + + private enum CodingKeys: String, CodingKey { + case datasetLocation = "datasetLocation" + case name = "name" + } + } + + public struct EvaluationDatasetMetricConfig: AWSEncodableShape & AWSDecodableShape { + /// Specifies the prompt dataset. + public let dataset: EvaluationDataset + /// The names of the metrics used. For automated model evaluation jobs valid values are "Builtin.Accuracy", "Builtin.Robustness", and "Builtin.Toxicity". In human-based model evaluation jobs the array of strings must match the name parameter specified in HumanEvaluationCustomMetric. + public let metricNames: [String] + /// The task type you want the model to carry out. + public let taskType: EvaluationTaskType + + public init(dataset: EvaluationDataset, metricNames: [String], taskType: EvaluationTaskType) { + self.dataset = dataset + self.metricNames = metricNames + self.taskType = taskType + } + + public func validate(name: String) throws { + try self.dataset.validate(name: "\(name).dataset") + try self.metricNames.forEach { + try validate($0, name: "metricNames[]", parent: name, max: 63) + try validate($0, name: "metricNames[]", parent: name, min: 1) + try validate($0, name: "metricNames[]", parent: name, pattern: "^[0-9a-zA-Z-_.]+$") + } + try self.validate(self.metricNames, name: "metricNames", parent: name, max: 10) + try self.validate(self.metricNames, name: "metricNames", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case dataset = "dataset" + case metricNames = "metricNames" + case taskType = "taskType" + } + } + + public struct EvaluationOutputDataConfig: AWSEncodableShape & AWSDecodableShape { + /// The Amazon S3 URI where the results of model evaluation job are saved. + public let s3Uri: String + + public init(s3Uri: String) { + self.s3Uri = s3Uri + } + + public func validate(name: String) throws { + try self.validate(self.s3Uri, name: "s3Uri", parent: name, max: 1024) + try self.validate(self.s3Uri, name: "s3Uri", parent: name, min: 1) + try self.validate(self.s3Uri, name: "s3Uri", parent: name, pattern: "^s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?$") + } + + private enum CodingKeys: String, CodingKey { + case s3Uri = "s3Uri" + } + } + + public struct EvaluationSummary: AWSDecodableShape { + /// When the model evaluation job was created. + @CustomCoding + public var creationTime: Date + /// What task type was used in the model evaluation job. + public let evaluationTaskTypes: [EvaluationTaskType] + /// The Amazon Resource Name (ARN) of the model evaluation job. + public let jobArn: String + /// The name of the model evaluation job. + public let jobName: String + /// The type, either human or automatic, of model evaluation job. + public let jobType: EvaluationJobType + /// The Amazon Resource Names (ARNs) of the model(s) used in the model evaluation job. + public let modelIdentifiers: [String] + /// The current status of the model evaluation job. + public let status: EvaluationJobStatus + + public init(creationTime: Date, evaluationTaskTypes: [EvaluationTaskType], jobArn: String, jobName: String, jobType: EvaluationJobType, modelIdentifiers: [String], status: EvaluationJobStatus) { + self.creationTime = creationTime + self.evaluationTaskTypes = evaluationTaskTypes + self.jobArn = jobArn + self.jobName = jobName + self.jobType = jobType + self.modelIdentifiers = modelIdentifiers + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case creationTime = "creationTime" + case evaluationTaskTypes = "evaluationTaskTypes" + case jobArn = "jobArn" + case jobName = "jobName" + case jobType = "jobType" + case modelIdentifiers = "modelIdentifiers" + case status = "status" + } + } + public struct FoundationModelDetails: AWSDecodableShape { /// The customization that the model supports. public let customizationsSupported: [ModelCustomization]? @@ -415,7 +1000,7 @@ extension Bedrock { public let inferenceTypesSupported: [InferenceType]? /// The input modalities that the model supports. public let inputModalities: [ModelModality]? - /// The model ARN. + /// The model Amazon Resource Name (ARN). public let modelArn: String /// The model identifier. public let modelId: String @@ -425,7 +1010,7 @@ extension Bedrock { public let modelName: String? /// The output modalities that the model supports. public let outputModalities: [ModelModality]? - /// he model's provider name. + /// The model's provider name. public let providerName: String? /// Indicates whether the model supports streaming. public let responseStreamingSupported: Bool? @@ -477,9 +1062,9 @@ extension Bedrock { public let inferenceTypesSupported: [InferenceType]? /// The input modalities that the model supports. public let inputModalities: [ModelModality]? - /// The ARN of the foundation model. + /// The Amazon Resource Name (ARN) of the foundation model. public let modelArn: String - /// The model Id of the foundation model. + /// The model ID of the foundation model. public let modelId: String /// Contains details about whether a model version is available or deprecated. public let modelLifecycle: FoundationModelLifecycle? @@ -520,7 +1105,7 @@ extension Bedrock { } public struct GetCustomModelRequest: AWSEncodableShape { - /// Name or ARN of the custom model. + /// Name or Amazon Resource Name (ARN) of the custom model. public let modelIdentifier: String public init(modelIdentifier: String) { @@ -543,20 +1128,20 @@ extension Bedrock { } public struct GetCustomModelResponse: AWSDecodableShape { - /// ARN of the base model. + /// Amazon Resource Name (ARN) of the base model. public let baseModelArn: String /// Creation time of the model. @CustomCoding public var creationTime: Date /// The type of model customization. public let customizationType: CustomizationType? - /// Hyperparameter values associated with this model. + /// Hyperparameter values associated with this model. For details on the format for different models, see Custom model hyperparameters. public let hyperParameters: [String: String]? - /// Job ARN associated with this model. + /// Job Amazon Resource Name (ARN) associated with this model. public let jobArn: String /// Job name associated with this model. public let jobName: String? - /// ARN associated with this model. + /// Amazon Resource Name (ARN) associated with this model. public let modelArn: String /// The custom model is encrypted at rest using this key. public let modelKmsKeyArn: String? @@ -564,10 +1149,11 @@ extension Bedrock { public let modelName: String /// Output data configuration associated with this custom model. public let outputDataConfig: OutputDataConfig - /// Information about the training dataset. + /// Contains information about the training dataset. public let trainingDataConfig: TrainingDataConfig - /// The training metrics from the job creation. + /// Contains training metrics from the job creation. public let trainingMetrics: TrainingMetrics? + /// Contains information about the validation dataset. public let validationDataConfig: ValidationDataConfig? /// The validation metrics from the job creation. public let validationMetrics: [ValidatorMetric]? @@ -607,6 +1193,91 @@ extension Bedrock { } } + public struct GetEvaluationJobRequest: AWSEncodableShape { + /// The Amazon Resource Name (ARN) of the model evaluation job. + public let jobIdentifier: String + + public init(jobIdentifier: String) { + self.jobIdentifier = jobIdentifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.jobIdentifier, key: "jobIdentifier") + } + + public func validate(name: String) throws { + try self.validate(self.jobIdentifier, name: "jobIdentifier", parent: name, max: 1011) + try self.validate(self.jobIdentifier, name: "jobIdentifier", parent: name, pattern: "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:evaluation-job/[a-z0-9]{12})$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct GetEvaluationJobResponse: AWSDecodableShape { + /// When the model evaluation job was created. + @CustomCoding + public var creationTime: Date + /// The Amazon Resource Name (ARN) of the customer managed key specified when the model evaluation job was created. + public let customerEncryptionKeyId: String? + /// Contains details about the type of model evaluation job, the metrics used, the task type selected, the datasets used, and any custom metrics you defined. + public let evaluationConfig: EvaluationConfig + /// An array of strings the specify why the model evaluation job has failed. + public let failureMessages: [String]? + /// Details about the models you specified in your model evaluation job. + public let inferenceConfig: EvaluationInferenceConfig + /// The Amazon Resource Name (ARN) of the model evaluation job. + public let jobArn: String + /// The description of the model evaluation job. + public let jobDescription: String? + /// The name of the model evaluation job. + public let jobName: String + /// The type of model evaluation job. + public let jobType: EvaluationJobType + /// When the model evaluation job was last modified. + @OptionalCustomCoding + public var lastModifiedTime: Date? + /// Amazon S3 location for where output data is saved. + public let outputDataConfig: EvaluationOutputDataConfig + /// The Amazon Resource Name (ARN) of the IAM service role used in the model evaluation job. + public let roleArn: String + /// The status of the model evaluation job. + public let status: EvaluationJobStatus + + public init(creationTime: Date, customerEncryptionKeyId: String? = nil, evaluationConfig: EvaluationConfig, failureMessages: [String]? = nil, inferenceConfig: EvaluationInferenceConfig, jobArn: String, jobDescription: String? = nil, jobName: String, jobType: EvaluationJobType, lastModifiedTime: Date? = nil, outputDataConfig: EvaluationOutputDataConfig, roleArn: String, status: EvaluationJobStatus) { + self.creationTime = creationTime + self.customerEncryptionKeyId = customerEncryptionKeyId + self.evaluationConfig = evaluationConfig + self.failureMessages = failureMessages + self.inferenceConfig = inferenceConfig + self.jobArn = jobArn + self.jobDescription = jobDescription + self.jobName = jobName + self.jobType = jobType + self.lastModifiedTime = lastModifiedTime + self.outputDataConfig = outputDataConfig + self.roleArn = roleArn + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case creationTime = "creationTime" + case customerEncryptionKeyId = "customerEncryptionKeyId" + case evaluationConfig = "evaluationConfig" + case failureMessages = "failureMessages" + case inferenceConfig = "inferenceConfig" + case jobArn = "jobArn" + case jobDescription = "jobDescription" + case jobName = "jobName" + case jobType = "jobType" + case lastModifiedTime = "lastModifiedTime" + case outputDataConfig = "outputDataConfig" + case roleArn = "roleArn" + case status = "status" + } + } + public struct GetFoundationModelRequest: AWSEncodableShape { /// The model identifier. public let modelIdentifier: String @@ -643,6 +1314,112 @@ extension Bedrock { } } + public struct GetGuardrailRequest: AWSEncodableShape { + /// The unique identifier of the guardrail for which to get details. + public let guardrailIdentifier: String + /// The version of the guardrail for which to get details. If you don't specify a version, the response returns details for the DRAFT version. + public let guardrailVersion: String? + + public init(guardrailIdentifier: String, guardrailVersion: String? = nil) { + self.guardrailIdentifier = guardrailIdentifier + self.guardrailVersion = guardrailVersion + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.guardrailIdentifier, key: "guardrailIdentifier") + request.encodeQuery(self.guardrailVersion, key: "guardrailVersion") + } + + public func validate(name: String) throws { + try self.validate(self.guardrailIdentifier, name: "guardrailIdentifier", parent: name, max: 2048) + try self.validate(self.guardrailIdentifier, name: "guardrailIdentifier", parent: name, pattern: "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$") + try self.validate(self.guardrailVersion, name: "guardrailVersion", parent: name, pattern: "^(([1-9][0-9]{0,7})|(DRAFT))$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct GetGuardrailResponse: AWSDecodableShape { + /// The message that the guardrail returns when it blocks a prompt. + public let blockedInputMessaging: String + /// The message that the guardrail returns when it blocks a model response. + public let blockedOutputsMessaging: String + /// The content policy that was configured for the guardrail. + public let contentPolicy: GuardrailContentPolicy? + /// The date and time at which the guardrail was created. + @CustomCoding + public var createdAt: Date + /// The description of the guardrail. + public let description: String? + /// Appears if the status of the guardrail is FAILED. A list of recommendations to carry out before retrying the request. + public let failureRecommendations: [String]? + /// The ARN of the guardrail that was created. + public let guardrailArn: String + /// The unique identifier of the guardrail. + public let guardrailId: String + /// The ARN of the KMS key that encrypts the guardrail. + public let kmsKeyArn: String? + /// The name of the guardrail. + public let name: String + /// The sensitive information policy that was configured for the guardrail. + public let sensitiveInformationPolicy: GuardrailSensitiveInformationPolicy? + /// The status of the guardrail. + public let status: GuardrailStatus + /// Appears if the status is FAILED. A list of reasons for why the guardrail failed to be created, updated, versioned, or deleted. + public let statusReasons: [String]? + /// The topic policy that was configured for the guardrail. + public let topicPolicy: GuardrailTopicPolicy? + /// The date and time at which the guardrail was updated. + @CustomCoding + public var updatedAt: Date + /// The version of the guardrail. + public let version: String + /// The word policy that was configured for the guardrail. + public let wordPolicy: GuardrailWordPolicy? + + public init(blockedInputMessaging: String, blockedOutputsMessaging: String, contentPolicy: GuardrailContentPolicy? = nil, createdAt: Date, description: String? = nil, failureRecommendations: [String]? = nil, guardrailArn: String, guardrailId: String, kmsKeyArn: String? = nil, name: String, sensitiveInformationPolicy: GuardrailSensitiveInformationPolicy? = nil, status: GuardrailStatus, statusReasons: [String]? = nil, topicPolicy: GuardrailTopicPolicy? = nil, updatedAt: Date, version: String, wordPolicy: GuardrailWordPolicy? = nil) { + self.blockedInputMessaging = blockedInputMessaging + self.blockedOutputsMessaging = blockedOutputsMessaging + self.contentPolicy = contentPolicy + self.createdAt = createdAt + self.description = description + self.failureRecommendations = failureRecommendations + self.guardrailArn = guardrailArn + self.guardrailId = guardrailId + self.kmsKeyArn = kmsKeyArn + self.name = name + self.sensitiveInformationPolicy = sensitiveInformationPolicy + self.status = status + self.statusReasons = statusReasons + self.topicPolicy = topicPolicy + self.updatedAt = updatedAt + self.version = version + self.wordPolicy = wordPolicy + } + + private enum CodingKeys: String, CodingKey { + case blockedInputMessaging = "blockedInputMessaging" + case blockedOutputsMessaging = "blockedOutputsMessaging" + case contentPolicy = "contentPolicy" + case createdAt = "createdAt" + case description = "description" + case failureRecommendations = "failureRecommendations" + case guardrailArn = "guardrailArn" + case guardrailId = "guardrailId" + case kmsKeyArn = "kmsKeyArn" + case name = "name" + case sensitiveInformationPolicy = "sensitiveInformationPolicy" + case status = "status" + case statusReasons = "statusReasons" + case topicPolicy = "topicPolicy" + case updatedAt = "updatedAt" + case version = "version" + case wordPolicy = "wordPolicy" + } + } + public struct GetModelCustomizationJobRequest: AWSEncodableShape { /// Identifier for the customization job. public let jobIdentifier: String @@ -666,7 +1443,7 @@ extension Bedrock { } public struct GetModelCustomizationJobResponse: AWSDecodableShape { - /// ARN of the base model. + /// Amazon Resource Name (ARN) of the base model. public let baseModelArn: String /// The token that you specified in the CreateCustomizationJob request. public let clientRequestToken: String? @@ -680,9 +1457,9 @@ extension Bedrock { public var endTime: Date? /// Information about why the job failed. public let failureMessage: String? - /// The hyperparameter values for the job. For information about hyperparameters for specific models, see Guidelines for model customization. + /// The hyperparameter values for the job. For details on the format for different models, see Custom model hyperparameters. public let hyperParameters: [String: String] - /// The ARN of the customization job. + /// The Amazon Resource Name (ARN) of the customization job. public let jobArn: String /// The name of the customization job. public let jobName: String @@ -691,18 +1468,21 @@ extension Bedrock { public var lastModifiedTime: Date? /// Output data configuration public let outputDataConfig: OutputDataConfig - /// The ARN of the output model. + /// The Amazon Resource Name (ARN) of the output model. public let outputModelArn: String? /// The custom model is encrypted at rest using this key. public let outputModelKmsKeyArn: String? /// The name of the output model. public let outputModelName: String - /// The ARN of the IAM role. + /// The Amazon Resource Name (ARN) of the IAM role. public let roleArn: String /// The status of the job. A successful job transitions from in-progress to completed when the output model is ready to use. If the job failed, the failure message contains information about why the job failed. public let status: ModelCustomizationJobStatus? + /// Contains information about the training dataset. public let trainingDataConfig: TrainingDataConfig + /// Contains training metrics from the job creation. public let trainingMetrics: TrainingMetrics? + /// Contains information about the validation dataset. public let validationDataConfig: ValidationDataConfig /// The loss metric for each validator that you provided in the createjob request. public let validationMetrics: [ValidatorMetric]? @@ -756,112 +1536,633 @@ extension Bedrock { case validationMetrics = "validationMetrics" case vpcConfig = "vpcConfig" } - } + } + + public struct GetModelInvocationLoggingConfigurationRequest: AWSEncodableShape { + public init() {} + } + + public struct GetModelInvocationLoggingConfigurationResponse: AWSDecodableShape { + /// The current configuration values. + public let loggingConfig: LoggingConfig? + + public init(loggingConfig: LoggingConfig? = nil) { + self.loggingConfig = loggingConfig + } + + private enum CodingKeys: String, CodingKey { + case loggingConfig = "loggingConfig" + } + } + + public struct GetProvisionedModelThroughputRequest: AWSEncodableShape { + /// The Amazon Resource Name (ARN) or name of the Provisioned Throughput. + public let provisionedModelId: String + + public init(provisionedModelId: String) { + self.provisionedModelId = provisionedModelId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.provisionedModelId, key: "provisionedModelId") + } + + public func validate(name: String) throws { + try self.validate(self.provisionedModelId, name: "provisionedModelId", parent: name, pattern: "^((([0-9a-zA-Z][_-]?)+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:provisioned-model/[a-z0-9]{12}))$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct GetProvisionedModelThroughputResponse: AWSDecodableShape { + /// Commitment duration of the Provisioned Throughput. + public let commitmentDuration: CommitmentDuration? + /// The timestamp for when the commitment term for the Provisioned Throughput expires. + @OptionalCustomCoding + public var commitmentExpirationTime: Date? + /// The timestamp of the creation time for this Provisioned Throughput. + @CustomCoding + public var creationTime: Date + /// The Amazon Resource Name (ARN) of the model requested to be associated to this Provisioned Throughput. This value differs from the modelArn if updating hasn't completed. + public let desiredModelArn: String + /// The number of model units that was requested for this Provisioned Throughput. + public let desiredModelUnits: Int + /// A failure message for any issues that occurred during creation, updating, or deletion of the Provisioned Throughput. + public let failureMessage: String? + /// The Amazon Resource Name (ARN) of the base model for which the Provisioned Throughput was created, or of the base model that the custom model for which the Provisioned Throughput was created was customized. + public let foundationModelArn: String + /// The timestamp of the last time that this Provisioned Throughput was modified. + @CustomCoding + public var lastModifiedTime: Date + /// The Amazon Resource Name (ARN) of the model associated with this Provisioned Throughput. + public let modelArn: String + /// The number of model units allocated to this Provisioned Throughput. + public let modelUnits: Int + /// The Amazon Resource Name (ARN) of the Provisioned Throughput. + public let provisionedModelArn: String + /// The name of the Provisioned Throughput. + public let provisionedModelName: String + /// The status of the Provisioned Throughput. + public let status: ProvisionedModelStatus + + public init(commitmentDuration: CommitmentDuration? = nil, commitmentExpirationTime: Date? = nil, creationTime: Date, desiredModelArn: String, desiredModelUnits: Int, failureMessage: String? = nil, foundationModelArn: String, lastModifiedTime: Date, modelArn: String, modelUnits: Int, provisionedModelArn: String, provisionedModelName: String, status: ProvisionedModelStatus) { + self.commitmentDuration = commitmentDuration + self.commitmentExpirationTime = commitmentExpirationTime + self.creationTime = creationTime + self.desiredModelArn = desiredModelArn + self.desiredModelUnits = desiredModelUnits + self.failureMessage = failureMessage + self.foundationModelArn = foundationModelArn + self.lastModifiedTime = lastModifiedTime + self.modelArn = modelArn + self.modelUnits = modelUnits + self.provisionedModelArn = provisionedModelArn + self.provisionedModelName = provisionedModelName + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case commitmentDuration = "commitmentDuration" + case commitmentExpirationTime = "commitmentExpirationTime" + case creationTime = "creationTime" + case desiredModelArn = "desiredModelArn" + case desiredModelUnits = "desiredModelUnits" + case failureMessage = "failureMessage" + case foundationModelArn = "foundationModelArn" + case lastModifiedTime = "lastModifiedTime" + case modelArn = "modelArn" + case modelUnits = "modelUnits" + case provisionedModelArn = "provisionedModelArn" + case provisionedModelName = "provisionedModelName" + case status = "status" + } + } + + public struct GuardrailContentFilter: AWSDecodableShape { + /// The strength of the content filter to apply to prompts. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces. + public let inputStrength: GuardrailFilterStrength + /// The strength of the content filter to apply to model responses. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces. + public let outputStrength: GuardrailFilterStrength + /// The harmful category that the content filter is applied to. + public let type: GuardrailContentFilterType + + public init(inputStrength: GuardrailFilterStrength, outputStrength: GuardrailFilterStrength, type: GuardrailContentFilterType) { + self.inputStrength = inputStrength + self.outputStrength = outputStrength + self.type = type + } + + private enum CodingKeys: String, CodingKey { + case inputStrength = "inputStrength" + case outputStrength = "outputStrength" + case type = "type" + } + } + + public struct GuardrailContentFilterConfig: AWSEncodableShape { + /// The strength of the content filter to apply to prompts. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces. + public let inputStrength: GuardrailFilterStrength + /// The strength of the content filter to apply to model responses. As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces. + public let outputStrength: GuardrailFilterStrength + /// The harmful category that the content filter is applied to. + public let type: GuardrailContentFilterType + + public init(inputStrength: GuardrailFilterStrength, outputStrength: GuardrailFilterStrength, type: GuardrailContentFilterType) { + self.inputStrength = inputStrength + self.outputStrength = outputStrength + self.type = type + } + + private enum CodingKeys: String, CodingKey { + case inputStrength = "inputStrength" + case outputStrength = "outputStrength" + case type = "type" + } + } + + public struct GuardrailContentPolicy: AWSDecodableShape { + /// Contains the type of the content filter and how strongly it should apply to prompts and model responses. + public let filters: [GuardrailContentFilter]? + + public init(filters: [GuardrailContentFilter]? = nil) { + self.filters = filters + } + + private enum CodingKeys: String, CodingKey { + case filters = "filters" + } + } + + public struct GuardrailContentPolicyConfig: AWSEncodableShape { + /// Contains the type of the content filter and how strongly it should apply to prompts and model responses. + public let filtersConfig: [GuardrailContentFilterConfig] + + public init(filtersConfig: [GuardrailContentFilterConfig]) { + self.filtersConfig = filtersConfig + } + + public func validate(name: String) throws { + try self.validate(self.filtersConfig, name: "filtersConfig", parent: name, max: 6) + try self.validate(self.filtersConfig, name: "filtersConfig", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case filtersConfig = "filtersConfig" + } + } + + public struct GuardrailManagedWords: AWSDecodableShape { + /// ManagedWords$type The managed word type that was configured for the guardrail. (For now, we only offer profanity word list) + public let type: GuardrailManagedWordsType + + public init(type: GuardrailManagedWordsType) { + self.type = type + } + + private enum CodingKeys: String, CodingKey { + case type = "type" + } + } + + public struct GuardrailManagedWordsConfig: AWSEncodableShape { + /// The managed word type to configure for the guardrail. + public let type: GuardrailManagedWordsType + + public init(type: GuardrailManagedWordsType) { + self.type = type + } + + private enum CodingKeys: String, CodingKey { + case type = "type" + } + } + + public struct GuardrailPiiEntity: AWSDecodableShape { + /// The configured guardrail action when PII entity is detected. + public let action: GuardrailSensitiveInformationAction + /// The type of PII entity. For example, Social Security Number. + public let type: GuardrailPiiEntityType + + public init(action: GuardrailSensitiveInformationAction, type: GuardrailPiiEntityType) { + self.action = action + self.type = type + } + + private enum CodingKeys: String, CodingKey { + case action = "action" + case type = "type" + } + } + + public struct GuardrailPiiEntityConfig: AWSEncodableShape { + /// Configure guardrail action when the PII entity is detected. + public let action: GuardrailSensitiveInformationAction + /// Configure guardrail type when the PII entity is detected. + public let type: GuardrailPiiEntityType + + public init(action: GuardrailSensitiveInformationAction, type: GuardrailPiiEntityType) { + self.action = action + self.type = type + } + + private enum CodingKeys: String, CodingKey { + case action = "action" + case type = "type" + } + } + + public struct GuardrailRegex: AWSDecodableShape { + /// The action taken when a match to the regular expression is detected. + public let action: GuardrailSensitiveInformationAction + /// The description of the regular expression for the guardrail. + public let description: String? + /// The name of the regular expression for the guardrail. + public let name: String + /// The pattern of the regular expression configured for the guardrail. + public let pattern: String + + public init(action: GuardrailSensitiveInformationAction, description: String? = nil, name: String, pattern: String) { + self.action = action + self.description = description + self.name = name + self.pattern = pattern + } + + private enum CodingKeys: String, CodingKey { + case action = "action" + case description = "description" + case name = "name" + case pattern = "pattern" + } + } + + public struct GuardrailRegexConfig: AWSEncodableShape { + /// The guardrail action to configure when matching regular expression is detected. + public let action: GuardrailSensitiveInformationAction + /// The description of the regular expression to configure for the guardrail. + public let description: String? + /// The name of the regular expression to configure for the guardrail. + public let name: String + /// The regular expression pattern to configure for the guardrail. + public let pattern: String + + public init(action: GuardrailSensitiveInformationAction, description: String? = nil, name: String, pattern: String) { + self.action = action + self.description = description + self.name = name + self.pattern = pattern + } + + private enum CodingKeys: String, CodingKey { + case action = "action" + case description = "description" + case name = "name" + case pattern = "pattern" + } + } + + public struct GuardrailSensitiveInformationPolicy: AWSDecodableShape { + /// The list of PII entities configured for the guardrail. + public let piiEntities: [GuardrailPiiEntity]? + /// The list of regular expressions configured for the guardrail. + public let regexes: [GuardrailRegex]? + + public init(piiEntities: [GuardrailPiiEntity]? = nil, regexes: [GuardrailRegex]? = nil) { + self.piiEntities = piiEntities + self.regexes = regexes + } + + private enum CodingKeys: String, CodingKey { + case piiEntities = "piiEntities" + case regexes = "regexes" + } + } + + public struct GuardrailSensitiveInformationPolicyConfig: AWSEncodableShape { + /// A list of PII entities to configure to the guardrail. + public let piiEntitiesConfig: [GuardrailPiiEntityConfig]? + /// A list of regular expressions to configure to the guardrail. + public let regexesConfig: [GuardrailRegexConfig]? + + public init(piiEntitiesConfig: [GuardrailPiiEntityConfig]? = nil, regexesConfig: [GuardrailRegexConfig]? = nil) { + self.piiEntitiesConfig = piiEntitiesConfig + self.regexesConfig = regexesConfig + } + + public func validate(name: String) throws { + try self.validate(self.piiEntitiesConfig, name: "piiEntitiesConfig", parent: name, min: 1) + try self.validate(self.regexesConfig, name: "regexesConfig", parent: name, max: 10) + try self.validate(self.regexesConfig, name: "regexesConfig", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case piiEntitiesConfig = "piiEntitiesConfig" + case regexesConfig = "regexesConfig" + } + } + + public struct GuardrailSummary: AWSDecodableShape { + /// The ARN of the guardrail. + public let arn: String + /// The date and time at which the guardrail was created. + @CustomCoding + public var createdAt: Date + /// A description of the guardrail. + public let description: String? + /// The unique identifier of the guardrail. + public let id: String + /// The name of the guardrail. + public let name: String + /// The status of the guardrail. + public let status: GuardrailStatus + /// The date and time at which the guardrail was last updated. + @CustomCoding + public var updatedAt: Date + /// The version of the guardrail. + public let version: String + + public init(arn: String, createdAt: Date, description: String? = nil, id: String, name: String, status: GuardrailStatus, updatedAt: Date, version: String) { + self.arn = arn + self.createdAt = createdAt + self.description = description + self.id = id + self.name = name + self.status = status + self.updatedAt = updatedAt + self.version = version + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case createdAt = "createdAt" + case description = "description" + case id = "id" + case name = "name" + case status = "status" + case updatedAt = "updatedAt" + case version = "version" + } + } + + public struct GuardrailTopic: AWSDecodableShape { + /// A definition of the topic to deny. + public let definition: String + /// A list of prompts, each of which is an example of a prompt that can be categorized as belonging to the topic. + public let examples: [String]? + /// The name of the topic to deny. + public let name: String + /// Specifies to deny the topic. + public let type: GuardrailTopicType? + + public init(definition: String, examples: [String]? = nil, name: String, type: GuardrailTopicType? = nil) { + self.definition = definition + self.examples = examples + self.name = name + self.type = type + } + + private enum CodingKeys: String, CodingKey { + case definition = "definition" + case examples = "examples" + case name = "name" + case type = "type" + } + } + + public struct GuardrailTopicConfig: AWSEncodableShape { + /// A definition of the topic to deny. + public let definition: String + /// A list of prompts, each of which is an example of a prompt that can be categorized as belonging to the topic. + public let examples: [String]? + /// The name of the topic to deny. + public let name: String + /// Specifies to deny the topic. + public let type: GuardrailTopicType + + public init(definition: String, examples: [String]? = nil, name: String, type: GuardrailTopicType) { + self.definition = definition + self.examples = examples + self.name = name + self.type = type + } + + public func validate(name: String) throws { + try self.validate(self.definition, name: "definition", parent: name, max: 200) + try self.validate(self.definition, name: "definition", parent: name, min: 1) + try self.examples?.forEach { + try validate($0, name: "examples[]", parent: name, max: 100) + try validate($0, name: "examples[]", parent: name, min: 1) + } + try self.validate(self.examples, name: "examples", parent: name, max: 5) + try self.validate(self.name, name: "name", parent: name, max: 100) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[0-9a-zA-Z-_ !?.]+$") + } + + private enum CodingKeys: String, CodingKey { + case definition = "definition" + case examples = "examples" + case name = "name" + case type = "type" + } + } + + public struct GuardrailTopicPolicy: AWSDecodableShape { + /// A list of policies related to topics that the guardrail should deny. + public let topics: [GuardrailTopic] + + public init(topics: [GuardrailTopic]) { + self.topics = topics + } + + private enum CodingKeys: String, CodingKey { + case topics = "topics" + } + } + + public struct GuardrailTopicPolicyConfig: AWSEncodableShape { + /// A list of policies related to topics that the guardrail should deny. + public let topicsConfig: [GuardrailTopicConfig] + + public init(topicsConfig: [GuardrailTopicConfig]) { + self.topicsConfig = topicsConfig + } + + public func validate(name: String) throws { + try self.topicsConfig.forEach { + try $0.validate(name: "\(name).topicsConfig[]") + } + try self.validate(self.topicsConfig, name: "topicsConfig", parent: name, max: 30) + try self.validate(self.topicsConfig, name: "topicsConfig", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case topicsConfig = "topicsConfig" + } + } + + public struct GuardrailWord: AWSDecodableShape { + /// Text of the word configured for the guardrail to block. + public let text: String + + public init(text: String) { + self.text = text + } + + private enum CodingKeys: String, CodingKey { + case text = "text" + } + } + + public struct GuardrailWordConfig: AWSEncodableShape { + /// Text of the word configured for the guardrail to block. + public let text: String + + public init(text: String) { + self.text = text + } + + private enum CodingKeys: String, CodingKey { + case text = "text" + } + } + + public struct GuardrailWordPolicy: AWSDecodableShape { + /// A list of managed words configured for the guardrail. + public let managedWordLists: [GuardrailManagedWords]? + /// A list of words configured for the guardrail. + public let words: [GuardrailWord]? + + public init(managedWordLists: [GuardrailManagedWords]? = nil, words: [GuardrailWord]? = nil) { + self.managedWordLists = managedWordLists + self.words = words + } - public struct GetModelInvocationLoggingConfigurationRequest: AWSEncodableShape { - public init() {} + private enum CodingKeys: String, CodingKey { + case managedWordLists = "managedWordLists" + case words = "words" + } } - public struct GetModelInvocationLoggingConfigurationResponse: AWSDecodableShape { - /// The current configuration values. - public let loggingConfig: LoggingConfig? + public struct GuardrailWordPolicyConfig: AWSEncodableShape { + /// A list of managed words to configure for the guardrail. + public let managedWordListsConfig: [GuardrailManagedWordsConfig]? + /// A list of words to configure for the guardrail. + public let wordsConfig: [GuardrailWordConfig]? - public init(loggingConfig: LoggingConfig? = nil) { - self.loggingConfig = loggingConfig + public init(managedWordListsConfig: [GuardrailManagedWordsConfig]? = nil, wordsConfig: [GuardrailWordConfig]? = nil) { + self.managedWordListsConfig = managedWordListsConfig + self.wordsConfig = wordsConfig + } + + public func validate(name: String) throws { + try self.validate(self.wordsConfig, name: "wordsConfig", parent: name, max: 10000) + try self.validate(self.wordsConfig, name: "wordsConfig", parent: name, min: 1) } private enum CodingKeys: String, CodingKey { - case loggingConfig = "loggingConfig" + case managedWordListsConfig = "managedWordListsConfig" + case wordsConfig = "wordsConfig" } } - public struct GetProvisionedModelThroughputRequest: AWSEncodableShape { - /// The ARN or name of the provisioned throughput. - public let provisionedModelId: String + public struct HumanEvaluationConfig: AWSEncodableShape & AWSDecodableShape { + /// A HumanEvaluationCustomMetric object. It contains the names the metrics, how the metrics are to be evaluated, an optional description. + public let customMetrics: [HumanEvaluationCustomMetric]? + /// Use to specify the metrics, task, and prompt dataset to be used in your model evaluation job. + public let datasetMetricConfigs: [EvaluationDatasetMetricConfig] + /// The parameters of the human workflow. + public let humanWorkflowConfig: HumanWorkflowConfig? - public init(provisionedModelId: String) { - self.provisionedModelId = provisionedModelId + public init(customMetrics: [HumanEvaluationCustomMetric]? = nil, datasetMetricConfigs: [EvaluationDatasetMetricConfig], humanWorkflowConfig: HumanWorkflowConfig? = nil) { + self.customMetrics = customMetrics + self.datasetMetricConfigs = datasetMetricConfigs + self.humanWorkflowConfig = humanWorkflowConfig } - public func encode(to encoder: Encoder) throws { - let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer - _ = encoder.container(keyedBy: CodingKeys.self) - request.encodePath(self.provisionedModelId, key: "provisionedModelId") + public func validate(name: String) throws { + try self.customMetrics?.forEach { + try $0.validate(name: "\(name).customMetrics[]") + } + try self.validate(self.customMetrics, name: "customMetrics", parent: name, max: 10) + try self.validate(self.customMetrics, name: "customMetrics", parent: name, min: 1) + try self.datasetMetricConfigs.forEach { + try $0.validate(name: "\(name).datasetMetricConfigs[]") + } + try self.validate(self.datasetMetricConfigs, name: "datasetMetricConfigs", parent: name, max: 5) + try self.validate(self.datasetMetricConfigs, name: "datasetMetricConfigs", parent: name, min: 1) + try self.humanWorkflowConfig?.validate(name: "\(name).humanWorkflowConfig") + } + + private enum CodingKeys: String, CodingKey { + case customMetrics = "customMetrics" + case datasetMetricConfigs = "datasetMetricConfigs" + case humanWorkflowConfig = "humanWorkflowConfig" + } + } + + public struct HumanEvaluationCustomMetric: AWSEncodableShape & AWSDecodableShape { + /// An optional description of the metric. Use this parameter to provide more details about the metric. + public let description: String? + /// The name of the metric. Your human evaluators will see this name in the evaluation UI. + public let name: String + /// Choose how you want your human workers to evaluation your model. Valid values for rating methods are ThumbsUpDown, IndividualLikertScale,ComparisonLikertScale, ComparisonChoice, and ComparisonRank + public let ratingMethod: String + + public init(description: String? = nil, name: String, ratingMethod: String) { + self.description = description + self.name = name + self.ratingMethod = ratingMethod } public func validate(name: String) throws { - try self.validate(self.provisionedModelId, name: "provisionedModelId", parent: name, pattern: "^((([0-9a-zA-Z][_-]?)+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:provisioned-model/[a-z0-9]{12}))$") + try self.validate(self.description, name: "description", parent: name, max: 63) + try self.validate(self.description, name: "description", parent: name, min: 1) + try self.validate(self.description, name: "description", parent: name, pattern: "^.+$") + try self.validate(self.name, name: "name", parent: name, max: 63) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[0-9a-zA-Z-_.]+$") + try self.validate(self.ratingMethod, name: "ratingMethod", parent: name, max: 100) + try self.validate(self.ratingMethod, name: "ratingMethod", parent: name, min: 1) + try self.validate(self.ratingMethod, name: "ratingMethod", parent: name, pattern: "^[0-9a-zA-Z-_]+$") } - private enum CodingKeys: CodingKey {} + private enum CodingKeys: String, CodingKey { + case description = "description" + case name = "name" + case ratingMethod = "ratingMethod" + } } - public struct GetProvisionedModelThroughputResponse: AWSDecodableShape { - /// Commitment duration of the provisioned throughput. - public let commitmentDuration: CommitmentDuration? - /// Commitment expiration time for the provisioned throughput. - @OptionalCustomCoding - public var commitmentExpirationTime: Date? - /// The timestamp of the creation time for this provisioned throughput. - @CustomCoding - public var creationTime: Date - /// The ARN of the new model to asssociate with this provisioned throughput. - public let desiredModelArn: String - /// The desired number of model units that was requested to be available for this provisioned throughput. - public let desiredModelUnits: Int - /// Failure message for any issues that the create operation encounters. - public let failureMessage: String? - /// ARN of the foundation model. - public let foundationModelArn: String - /// The timestamp of the last modified time of this provisioned throughput. - @CustomCoding - public var lastModifiedTime: Date - /// The ARN or name of the model associated with this provisioned throughput. - public let modelArn: String - /// The current number of model units requested to be available for this provisioned throughput. - public let modelUnits: Int - /// The ARN of the provisioned throughput. - public let provisionedModelArn: String - /// The name of the provisioned throughput. - public let provisionedModelName: String - /// Status of the provisioned throughput. - public let status: ProvisionedModelStatus + public struct HumanWorkflowConfig: AWSEncodableShape & AWSDecodableShape { + /// The Amazon Resource Number (ARN) for the flow definition + public let flowDefinitionArn: String + /// Instructions for the flow definition + public let instructions: String? - public init(commitmentDuration: CommitmentDuration? = nil, commitmentExpirationTime: Date? = nil, creationTime: Date, desiredModelArn: String, desiredModelUnits: Int, failureMessage: String? = nil, foundationModelArn: String, lastModifiedTime: Date, modelArn: String, modelUnits: Int, provisionedModelArn: String, provisionedModelName: String, status: ProvisionedModelStatus) { - self.commitmentDuration = commitmentDuration - self.commitmentExpirationTime = commitmentExpirationTime - self.creationTime = creationTime - self.desiredModelArn = desiredModelArn - self.desiredModelUnits = desiredModelUnits - self.failureMessage = failureMessage - self.foundationModelArn = foundationModelArn - self.lastModifiedTime = lastModifiedTime - self.modelArn = modelArn - self.modelUnits = modelUnits - self.provisionedModelArn = provisionedModelArn - self.provisionedModelName = provisionedModelName - self.status = status + public init(flowDefinitionArn: String, instructions: String? = nil) { + self.flowDefinitionArn = flowDefinitionArn + self.instructions = instructions + } + + public func validate(name: String) throws { + try self.validate(self.flowDefinitionArn, name: "flowDefinitionArn", parent: name, max: 1024) + try self.validate(self.flowDefinitionArn, name: "flowDefinitionArn", parent: name, pattern: "^arn:aws(-[^:]+)?:sagemaker:[a-z0-9-]{1,20}:[0-9]{12}:flow-definition/.*$") + try self.validate(self.instructions, name: "instructions", parent: name, max: 5000) + try self.validate(self.instructions, name: "instructions", parent: name, min: 1) + try self.validate(self.instructions, name: "instructions", parent: name, pattern: "^[\\S\\s]+$") } private enum CodingKeys: String, CodingKey { - case commitmentDuration = "commitmentDuration" - case commitmentExpirationTime = "commitmentExpirationTime" - case creationTime = "creationTime" - case desiredModelArn = "desiredModelArn" - case desiredModelUnits = "desiredModelUnits" - case failureMessage = "failureMessage" - case foundationModelArn = "foundationModelArn" - case lastModifiedTime = "lastModifiedTime" - case modelArn = "modelArn" - case modelUnits = "modelUnits" - case provisionedModelArn = "provisionedModelArn" - case provisionedModelName = "provisionedModelName" - case status = "status" + case flowDefinitionArn = "flowDefinitionArn" + case instructions = "instructions" } } public struct ListCustomModelsRequest: AWSEncodableShape { - /// Return custom models only if the base model ARN matches this parameter. + /// Return custom models only if the base model Amazon Resource Name (ARN) matches this parameter. public let baseModelArnEquals: String? /// Return custom models created after the specified time. @OptionalCustomCoding @@ -869,7 +2170,7 @@ extension Bedrock { /// Return custom models created before the specified time. @OptionalCustomCoding public var creationTimeBefore: Date? - /// Return custom models only if the foundation model ARN matches this parameter. + /// Return custom models only if the foundation model Amazon Resource Name (ARN) matches this parameter. public let foundationModelArnEquals: String? /// Maximum number of results to return in the response. public let maxResults: Int? @@ -943,14 +2244,89 @@ extension Bedrock { } } + public struct ListEvaluationJobsRequest: AWSEncodableShape { + /// A filter that includes model evaluation jobs created after the time specified. + @OptionalCustomCoding + public var creationTimeAfter: Date? + /// A filter that includes model evaluation jobs created prior to the time specified. + @OptionalCustomCoding + public var creationTimeBefore: Date? + /// The maximum number of results to return. + public let maxResults: Int? + /// Query parameter string for model evaluation job names. + public let nameContains: String? + /// Continuation token from the previous response, for Amazon Bedrock to list the next set of results. + public let nextToken: String? + /// Allows you to sort model evaluation jobs by when they were created. + public let sortBy: SortJobsBy? + /// How you want the order of jobs sorted. + public let sortOrder: SortOrder? + /// Only return jobs where the status condition is met. + public let statusEquals: EvaluationJobStatus? + + public init(creationTimeAfter: Date? = nil, creationTimeBefore: Date? = nil, maxResults: Int? = nil, nameContains: String? = nil, nextToken: String? = nil, sortBy: SortJobsBy? = nil, sortOrder: SortOrder? = nil, statusEquals: EvaluationJobStatus? = nil) { + self.creationTimeAfter = creationTimeAfter + self.creationTimeBefore = creationTimeBefore + self.maxResults = maxResults + self.nameContains = nameContains + self.nextToken = nextToken + self.sortBy = sortBy + self.sortOrder = sortOrder + self.statusEquals = statusEquals + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self._creationTimeAfter, key: "creationTimeAfter") + request.encodeQuery(self._creationTimeBefore, key: "creationTimeBefore") + request.encodeQuery(self.maxResults, key: "maxResults") + request.encodeQuery(self.nameContains, key: "nameContains") + request.encodeQuery(self.nextToken, key: "nextToken") + request.encodeQuery(self.sortBy, key: "sortBy") + request.encodeQuery(self.sortOrder, key: "sortOrder") + request.encodeQuery(self.statusEquals, key: "statusEquals") + } + + public func validate(name: String) throws { + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 1000) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + try self.validate(self.nameContains, name: "nameContains", parent: name, max: 63) + try self.validate(self.nameContains, name: "nameContains", parent: name, min: 1) + try self.validate(self.nameContains, name: "nameContains", parent: name, pattern: "^[a-z0-9](-*[a-z0-9]){0,62}$") + try self.validate(self.nextToken, name: "nextToken", parent: name, max: 2048) + try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\S*$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListEvaluationJobsResponse: AWSDecodableShape { + /// A summary of the model evaluation jobs. + public let jobSummaries: [EvaluationSummary]? + /// Continuation token from the previous response, for Amazon Bedrock to list the next set of results. + public let nextToken: String? + + public init(jobSummaries: [EvaluationSummary]? = nil, nextToken: String? = nil) { + self.jobSummaries = jobSummaries + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case jobSummaries = "jobSummaries" + case nextToken = "nextToken" + } + } + public struct ListFoundationModelsRequest: AWSEncodableShape { - /// List by customization type. + /// Return models that support the customization type that you specify. For more information, see Custom models in the Amazon Bedrock User Guide. public let byCustomizationType: ModelCustomization? - /// List by inference type. + /// Return models that support the inference type that you specify. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide. public let byInferenceType: InferenceType? - /// List by output modality type. + /// Return models that support the output modality that you specify. public let byOutputModality: ModelModality? - /// A Amazon Bedrock model provider. + /// Return models belonging to the model provider that you specify. public let byProvider: String? public init(byCustomizationType: ModelCustomization? = nil, byInferenceType: InferenceType? = nil, byOutputModality: ModelModality? = nil, byProvider: String? = nil) { @@ -989,6 +2365,58 @@ extension Bedrock { } } + public struct ListGuardrailsRequest: AWSEncodableShape { + /// The unique identifier of the guardrail. + public let guardrailIdentifier: String? + /// The maximum number of results to return in the response. + public let maxResults: Int? + /// If there are more results than were returned in the response, the response returns a nextToken that you can send in another ListGuardrails request to see the next batch of results. + public let nextToken: String? + + public init(guardrailIdentifier: String? = nil, maxResults: Int? = nil, nextToken: String? = nil) { + self.guardrailIdentifier = guardrailIdentifier + self.maxResults = maxResults + self.nextToken = nextToken + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.guardrailIdentifier, key: "guardrailIdentifier") + request.encodeQuery(self.maxResults, key: "maxResults") + request.encodeQuery(self.nextToken, key: "nextToken") + } + + public func validate(name: String) throws { + try self.validate(self.guardrailIdentifier, name: "guardrailIdentifier", parent: name, max: 2048) + try self.validate(self.guardrailIdentifier, name: "guardrailIdentifier", parent: name, pattern: "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$") + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 1000) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, max: 2048) + try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\S*$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListGuardrailsResponse: AWSDecodableShape { + /// A list of objects, each of which contains details about a guardrail. + public let guardrails: [GuardrailSummary] + /// If there are more results than were returned in the response, the response returns a nextToken that you can send in another ListGuardrails request to see the next batch of results. + public let nextToken: String? + + public init(guardrails: [GuardrailSummary], nextToken: String? = nil) { + self.guardrails = guardrails + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case guardrails = "guardrails" + case nextToken = "nextToken" + } + } + public struct ListModelCustomizationJobsRequest: AWSEncodableShape { /// Return customization jobs created after the specified time. @OptionalCustomCoding @@ -1065,25 +2493,25 @@ extension Bedrock { } public struct ListProvisionedModelThroughputsRequest: AWSEncodableShape { - /// Return provisioned capacities created after the specified time. + /// A filter that returns Provisioned Throughputs created after the specified time. @OptionalCustomCoding public var creationTimeAfter: Date? - /// Return provisioned capacities created before the specified time. + /// A filter that returns Provisioned Throughputs created before the specified time. @OptionalCustomCoding public var creationTimeBefore: Date? - /// THe maximum number of results to return in the response. + /// THe maximum number of results to return in the response. If there are more results than the number you specified, the response returns a nextToken value. To see the next batch of results, send the nextToken value in another list request. public let maxResults: Int? - /// Return the list of provisioned capacities where their model ARN is equal to this parameter. + /// A filter that returns Provisioned Throughputs whose model Amazon Resource Name (ARN) is equal to the value that you specify. public let modelArnEquals: String? - /// Return the list of provisioned capacities if their name contains these characters. + /// A filter that returns Provisioned Throughputs if their name contains the expression that you specify. public let nameContains: String? - /// Continuation token from the previous response, for Amazon Bedrock to list the next set of results. + /// If there are more results than the number you specified in the maxResults field, the response returns a nextToken value. To see the next batch of results, specify the nextToken value in this field. public let nextToken: String? - /// The field to sort by in the returned list of provisioned capacities. + /// The field by which to sort the returned list of Provisioned Throughputs. public let sortBy: SortByProvisionedModels? /// The sort order of the results. public let sortOrder: SortOrder? - /// Return the list of provisioned capacities that match the specified status. + /// A filter that returns Provisioned Throughputs if their statuses matches the value that you specify. public let statusEquals: ProvisionedModelStatus? public init(creationTimeAfter: Date? = nil, creationTimeBefore: Date? = nil, maxResults: Int? = nil, modelArnEquals: String? = nil, nameContains: String? = nil, nextToken: String? = nil, sortBy: SortByProvisionedModels? = nil, sortOrder: SortOrder? = nil, statusEquals: ProvisionedModelStatus? = nil) { @@ -1130,9 +2558,9 @@ extension Bedrock { } public struct ListProvisionedModelThroughputsResponse: AWSDecodableShape { - /// Continuation token for the next request to list the next set of results. + /// If there are more results than the number you specified in the maxResults field, this value is returned. To see the next batch of results, include this value in the nextToken field in another list request. public let nextToken: String? - /// List of summaries, one for each provisioned throughput in the response. + /// A list of summaries, one for each Provisioned Throughput in the response. public let provisionedModelSummaries: [ProvisionedModelSummary]? public init(nextToken: String? = nil, provisionedModelSummaries: [ProvisionedModelSummary]? = nil) { @@ -1147,7 +2575,7 @@ extension Bedrock { } public struct ListTagsForResourceRequest: AWSEncodableShape { - /// The ARN of the resource. + /// The Amazon Resource Name (ARN) of the resource. public let resourceARN: String public init(resourceARN: String) { @@ -1157,7 +2585,7 @@ extension Bedrock { public func validate(name: String) throws { try self.validate(self.resourceARN, name: "resourceARN", parent: name, max: 1011) try self.validate(self.resourceARN, name: "resourceARN", parent: name, min: 20) - try self.validate(self.resourceARN, name: "resourceARN", parent: name, pattern: "(^[a-zA-Z0-9][a-zA-Z0-9\\-]*$)|(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:([0-9]{12}|)((:(fine-tuning-job|model-customization-job|custom-model)/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12})$)|(:provisioned-model/[a-z0-9]{12}$)))") + try self.validate(self.resourceARN, name: "resourceARN", parent: name, pattern: "(^[a-zA-Z0-9][a-zA-Z0-9\\-]*$)|(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:([0-9]{12}|)((:(fine-tuning-job|model-customization-job|custom-model)/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12})$)|(:provisioned-model/[a-z0-9]{12}$)|(:guardrail/[a-z0-9]+$)|(:evaluation-job/[a-z0-9]{12}$)))") } private enum CodingKeys: String, CodingKey { @@ -1213,21 +2641,21 @@ extension Bedrock { } public struct ModelCustomizationJobSummary: AWSDecodableShape { - /// ARN of the base model. + /// Amazon Resource Name (ARN) of the base model. public let baseModelArn: String /// Creation time of the custom model. @CustomCoding public var creationTime: Date /// Specifies whether to carry out continued pre-training of a model or whether to fine-tune it. For more information, see Custom models. public let customizationType: CustomizationType? - /// ARN of the custom model. + /// Amazon Resource Name (ARN) of the custom model. public let customModelArn: String? /// Name of the custom model. public let customModelName: String? /// Time that the customization job ended. @OptionalCustomCoding public var endTime: Date? - /// ARN of the customization job. + /// Amazon Resource Name (ARN) of the customization job. public let jobArn: String /// Name of the customization job. public let jobName: String @@ -1284,32 +2712,32 @@ extension Bedrock { } public struct ProvisionedModelSummary: AWSDecodableShape { - /// Commitment duration for the provisioned throughput. + /// The duration for which the Provisioned Throughput was committed. public let commitmentDuration: CommitmentDuration? - /// Commitment expiration time for the provisioned throughput. + /// The timestamp for when the commitment term of the Provisioned Throughput expires. @OptionalCustomCoding public var commitmentExpirationTime: Date? - /// The time that this provisioned throughput was created. + /// The time that the Provisioned Throughput was created. @CustomCoding public var creationTime: Date - /// Desired model ARN. + /// The Amazon Resource Name (ARN) of the model requested to be associated to this Provisioned Throughput. This value differs from the modelArn if updating hasn't completed. public let desiredModelArn: String - /// Desired model units. + /// The number of model units that was requested to be allocated to the Provisioned Throughput. public let desiredModelUnits: Int - /// Foundation model ARN. + /// The Amazon Resource Name (ARN) of the base model for which the Provisioned Throughput was created, or of the base model that the custom model for which the Provisioned Throughput was created was customized. public let foundationModelArn: String - /// The time that this provisioned throughput was last modified. + /// The time that the Provisioned Throughput was last modified. @CustomCoding public var lastModifiedTime: Date - /// The ARN of the model associated with this provisioned throughput. + /// The Amazon Resource Name (ARN) of the model associated with the Provisioned Throughput. public let modelArn: String - /// The number of model units allocated. + /// The number of model units allocated to the Provisioned Throughput. public let modelUnits: Int - /// The ARN of the provisioned throughput. + /// The Amazon Resource Name (ARN) of the Provisioned Throughput. public let provisionedModelArn: String - /// The name of the provisioned throughput. + /// The name of the Provisioned Throughput. public let provisionedModelName: String - /// Status of the provisioned throughput. + /// The status of the Provisioned Throughput. public let status: ProvisionedModelStatus public init(commitmentDuration: CommitmentDuration? = nil, commitmentExpirationTime: Date? = nil, creationTime: Date, desiredModelArn: String, desiredModelUnits: Int, foundationModelArn: String, lastModifiedTime: Date, modelArn: String, modelUnits: Int, provisionedModelArn: String, provisionedModelName: String, status: ProvisionedModelStatus) { @@ -1387,6 +2815,32 @@ extension Bedrock { } } + public struct StopEvaluationJobRequest: AWSEncodableShape { + /// The ARN of the model evaluation job you want to stop. + public let jobIdentifier: String + + public init(jobIdentifier: String) { + self.jobIdentifier = jobIdentifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.jobIdentifier, key: "jobIdentifier") + } + + public func validate(name: String) throws { + try self.validate(self.jobIdentifier, name: "jobIdentifier", parent: name, max: 1011) + try self.validate(self.jobIdentifier, name: "jobIdentifier", parent: name, pattern: "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:evaluation-job/[a-z0-9]{12})$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct StopEvaluationJobResponse: AWSDecodableShape { + public init() {} + } + public struct StopModelCustomizationJobRequest: AWSEncodableShape { /// Job identifier of the job to stop. public let jobIdentifier: String @@ -1439,7 +2893,7 @@ extension Bedrock { } public struct TagResourceRequest: AWSEncodableShape { - /// The ARN of the resource to tag. + /// The Amazon Resource Name (ARN) of the resource to tag. public let resourceARN: String /// Tags to associate with the resource. public let tags: [Tag] @@ -1452,7 +2906,7 @@ extension Bedrock { public func validate(name: String) throws { try self.validate(self.resourceARN, name: "resourceARN", parent: name, max: 1011) try self.validate(self.resourceARN, name: "resourceARN", parent: name, min: 20) - try self.validate(self.resourceARN, name: "resourceARN", parent: name, pattern: "(^[a-zA-Z0-9][a-zA-Z0-9\\-]*$)|(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:([0-9]{12}|)((:(fine-tuning-job|model-customization-job|custom-model)/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12})$)|(:provisioned-model/[a-z0-9]{12}$)))") + try self.validate(self.resourceARN, name: "resourceARN", parent: name, pattern: "(^[a-zA-Z0-9][a-zA-Z0-9\\-]*$)|(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:([0-9]{12}|)((:(fine-tuning-job|model-customization-job|custom-model)/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12})$)|(:provisioned-model/[a-z0-9]{12}$)|(:guardrail/[a-z0-9]+$)|(:evaluation-job/[a-z0-9]{12}$)))") try self.tags.forEach { try $0.validate(name: "\(name).tags[]") } @@ -1502,7 +2956,7 @@ extension Bedrock { } public struct UntagResourceRequest: AWSEncodableShape { - /// The ARN of the resource to untag. + /// The Amazon Resource Name (ARN) of the resource to untag. public let resourceARN: String /// Tag keys of the tags to remove from the resource. public let tagKeys: [String] @@ -1515,7 +2969,7 @@ extension Bedrock { public func validate(name: String) throws { try self.validate(self.resourceARN, name: "resourceARN", parent: name, max: 1011) try self.validate(self.resourceARN, name: "resourceARN", parent: name, min: 20) - try self.validate(self.resourceARN, name: "resourceARN", parent: name, pattern: "(^[a-zA-Z0-9][a-zA-Z0-9\\-]*$)|(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:([0-9]{12}|)((:(fine-tuning-job|model-customization-job|custom-model)/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12})$)|(:provisioned-model/[a-z0-9]{12}$)))") + try self.validate(self.resourceARN, name: "resourceARN", parent: name, pattern: "(^[a-zA-Z0-9][a-zA-Z0-9\\-]*$)|(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:([0-9]{12}|)((:(fine-tuning-job|model-customization-job|custom-model)/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12})$)|(:provisioned-model/[a-z0-9]{12}$)|(:guardrail/[a-z0-9]+$)|(:evaluation-job/[a-z0-9]{12}$)))") try self.tagKeys.forEach { try validate($0, name: "tagKeys[]", parent: name, max: 128) try validate($0, name: "tagKeys[]", parent: name, min: 1) @@ -1534,12 +2988,122 @@ extension Bedrock { public init() {} } + public struct UpdateGuardrailRequest: AWSEncodableShape { + /// The message to return when the guardrail blocks a prompt. + public let blockedInputMessaging: String + /// The message to return when the guardrail blocks a model response. + public let blockedOutputsMessaging: String + /// The content policy to configure for the guardrail. + public let contentPolicyConfig: GuardrailContentPolicyConfig? + /// A description of the guardrail. + public let description: String? + /// The unique identifier of the guardrail + public let guardrailIdentifier: String + /// The ARN of the KMS key with which to encrypt the guardrail. + public let kmsKeyId: String? + /// A name for the guardrail. + public let name: String + /// The sensitive information policy to configure for the guardrail. + public let sensitiveInformationPolicyConfig: GuardrailSensitiveInformationPolicyConfig? + /// The topic policy to configure for the guardrail. + public let topicPolicyConfig: GuardrailTopicPolicyConfig? + /// The word policy to configure for the guardrail. + public let wordPolicyConfig: GuardrailWordPolicyConfig? + + public init(blockedInputMessaging: String, blockedOutputsMessaging: String, contentPolicyConfig: GuardrailContentPolicyConfig? = nil, description: String? = nil, guardrailIdentifier: String, kmsKeyId: String? = nil, name: String, sensitiveInformationPolicyConfig: GuardrailSensitiveInformationPolicyConfig? = nil, topicPolicyConfig: GuardrailTopicPolicyConfig? = nil, wordPolicyConfig: GuardrailWordPolicyConfig? = nil) { + self.blockedInputMessaging = blockedInputMessaging + self.blockedOutputsMessaging = blockedOutputsMessaging + self.contentPolicyConfig = contentPolicyConfig + self.description = description + self.guardrailIdentifier = guardrailIdentifier + self.kmsKeyId = kmsKeyId + self.name = name + self.sensitiveInformationPolicyConfig = sensitiveInformationPolicyConfig + self.topicPolicyConfig = topicPolicyConfig + self.wordPolicyConfig = wordPolicyConfig + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(self.blockedInputMessaging, forKey: .blockedInputMessaging) + try container.encode(self.blockedOutputsMessaging, forKey: .blockedOutputsMessaging) + try container.encodeIfPresent(self.contentPolicyConfig, forKey: .contentPolicyConfig) + try container.encodeIfPresent(self.description, forKey: .description) + request.encodePath(self.guardrailIdentifier, key: "guardrailIdentifier") + try container.encodeIfPresent(self.kmsKeyId, forKey: .kmsKeyId) + try container.encode(self.name, forKey: .name) + try container.encodeIfPresent(self.sensitiveInformationPolicyConfig, forKey: .sensitiveInformationPolicyConfig) + try container.encodeIfPresent(self.topicPolicyConfig, forKey: .topicPolicyConfig) + try container.encodeIfPresent(self.wordPolicyConfig, forKey: .wordPolicyConfig) + } + + public func validate(name: String) throws { + try self.validate(self.blockedInputMessaging, name: "blockedInputMessaging", parent: name, max: 500) + try self.validate(self.blockedInputMessaging, name: "blockedInputMessaging", parent: name, min: 1) + try self.validate(self.blockedOutputsMessaging, name: "blockedOutputsMessaging", parent: name, max: 500) + try self.validate(self.blockedOutputsMessaging, name: "blockedOutputsMessaging", parent: name, min: 1) + try self.contentPolicyConfig?.validate(name: "\(name).contentPolicyConfig") + try self.validate(self.description, name: "description", parent: name, max: 200) + try self.validate(self.description, name: "description", parent: name, min: 1) + try self.validate(self.guardrailIdentifier, name: "guardrailIdentifier", parent: name, max: 2048) + try self.validate(self.guardrailIdentifier, name: "guardrailIdentifier", parent: name, pattern: "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$") + try self.validate(self.kmsKeyId, name: "kmsKeyId", parent: name, max: 2048) + try self.validate(self.kmsKeyId, name: "kmsKeyId", parent: name, min: 1) + try self.validate(self.kmsKeyId, name: "kmsKeyId", parent: name, pattern: "^arn:aws(-[^:]+)?:kms:[a-zA-Z0-9-]*:[0-9]{12}:((key/[a-zA-Z0-9-]{36})|(alias/[a-zA-Z0-9-_/]+))$") + try self.validate(self.name, name: "name", parent: name, max: 50) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[0-9a-zA-Z-_]+$") + try self.sensitiveInformationPolicyConfig?.validate(name: "\(name).sensitiveInformationPolicyConfig") + try self.topicPolicyConfig?.validate(name: "\(name).topicPolicyConfig") + try self.wordPolicyConfig?.validate(name: "\(name).wordPolicyConfig") + } + + private enum CodingKeys: String, CodingKey { + case blockedInputMessaging = "blockedInputMessaging" + case blockedOutputsMessaging = "blockedOutputsMessaging" + case contentPolicyConfig = "contentPolicyConfig" + case description = "description" + case kmsKeyId = "kmsKeyId" + case name = "name" + case sensitiveInformationPolicyConfig = "sensitiveInformationPolicyConfig" + case topicPolicyConfig = "topicPolicyConfig" + case wordPolicyConfig = "wordPolicyConfig" + } + } + + public struct UpdateGuardrailResponse: AWSDecodableShape { + /// The ARN of the guardrail that was created. + public let guardrailArn: String + /// The unique identifier of the guardrail + public let guardrailId: String + /// The date and time at which the guardrail was updated. + @CustomCoding + public var updatedAt: Date + /// The version of the guardrail. + public let version: String + + public init(guardrailArn: String, guardrailId: String, updatedAt: Date, version: String) { + self.guardrailArn = guardrailArn + self.guardrailId = guardrailId + self.updatedAt = updatedAt + self.version = version + } + + private enum CodingKeys: String, CodingKey { + case guardrailArn = "guardrailArn" + case guardrailId = "guardrailId" + case updatedAt = "updatedAt" + case version = "version" + } + } + public struct UpdateProvisionedModelThroughputRequest: AWSEncodableShape { - /// The ARN of the new model to associate with this provisioned throughput. + /// The Amazon Resource Name (ARN) of the new model to associate with this Provisioned Throughput. You can't specify this field if this Provisioned Throughput is associated with a base model. If this Provisioned Throughput is associated with a custom model, you can specify one of the following options: The base model from which the custom model was customized. Another custom model that was customized from the same base model as the custom model. public let desiredModelId: String? - /// The new name for this provisioned throughput. + /// The new name for this Provisioned Throughput. public let desiredProvisionedModelName: String? - /// The ARN or name of the provisioned throughput to update. + /// The Amazon Resource Name (ARN) or name of the Provisioned Throughput to update. public let provisionedModelId: String public init(desiredModelId: String? = nil, desiredProvisionedModelName: String? = nil, provisionedModelId: String) { @@ -1659,6 +3223,63 @@ extension Bedrock { case subnetIds = "subnetIds" } } + + public struct EvaluationDatasetLocation: AWSEncodableShape & AWSDecodableShape { + /// The S3 URI of the S3 bucket specified in the job. + public let s3Uri: String? + + public init(s3Uri: String? = nil) { + self.s3Uri = s3Uri + } + + public func validate(name: String) throws { + try self.validate(self.s3Uri, name: "s3Uri", parent: name, max: 1024) + try self.validate(self.s3Uri, name: "s3Uri", parent: name, min: 1) + try self.validate(self.s3Uri, name: "s3Uri", parent: name, pattern: "^s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?$") + } + + private enum CodingKeys: String, CodingKey { + case s3Uri = "s3Uri" + } + } + + public struct EvaluationInferenceConfig: AWSEncodableShape & AWSDecodableShape { + /// Used to specify the models. + public let models: [EvaluationModelConfig]? + + public init(models: [EvaluationModelConfig]? = nil) { + self.models = models + } + + public func validate(name: String) throws { + try self.models?.forEach { + try $0.validate(name: "\(name).models[]") + } + try self.validate(self.models, name: "models", parent: name, max: 2) + try self.validate(self.models, name: "models", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case models = "models" + } + } + + public struct EvaluationModelConfig: AWSEncodableShape & AWSDecodableShape { + /// Defines the Amazon Bedrock model and inference parameters you want used. + public let bedrockModel: EvaluationBedrockModel? + + public init(bedrockModel: EvaluationBedrockModel? = nil) { + self.bedrockModel = bedrockModel + } + + public func validate(name: String) throws { + try self.bedrockModel?.validate(name: "\(name).bedrockModel") + } + + private enum CodingKeys: String, CodingKey { + case bedrockModel = "bedrockModel" + } + } } // MARK: - Errors @@ -1700,13 +3321,13 @@ public struct BedrockErrorType: AWSErrorType { public static var conflictException: Self { .init(.conflictException) } /// An internal server error occurred. Retry your request. public static var internalServerException: Self { .init(.internalServerException) } - /// The specified resource ARN was not found. Check the ARN and try your request again. + /// The specified resource Amazon Resource Name (ARN) was not found. Check the Amazon Resource Name (ARN) and try your request again. public static var resourceNotFoundException: Self { .init(.resourceNotFoundException) } /// The number of requests exceeds the service quota. Resubmit your request later. public static var serviceQuotaExceededException: Self { .init(.serviceQuotaExceededException) } /// The number of requests exceeds the limit. Resubmit your request later. public static var throttlingException: Self { .init(.throttlingException) } - /// The request contains more tags than can be associated with a resource (50 tags per resource). The maximum number of tags includes both existing tags and those included in your current request. + /// The request contains more tags than can be associated with a resource (50 tags per resource). The maximum number of tags includes both existing tags and those included in your current request. public static var tooManyTagsException: Self { .init(.tooManyTagsException) } /// Input validation failed. Check your request parameters and retry the request. public static var validationException: Self { .init(.validationException) } diff --git a/Sources/Soto/Services/BedrockAgent/BedrockAgent_api.swift b/Sources/Soto/Services/BedrockAgent/BedrockAgent_api.swift index 7aecd52be1..9d5e4d1a36 100644 --- a/Sources/Soto/Services/BedrockAgent/BedrockAgent_api.swift +++ b/Sources/Soto/Services/BedrockAgent/BedrockAgent_api.swift @@ -87,7 +87,7 @@ public struct BedrockAgent: AWSService { ) } - /// Creates an agent that orchestrates interactions between foundation models, data sources, software applications, user conversations, and APIs to carry out tasks to help customers. Specify the following fields for security purposes. agentResourceRoleArn – The ARN of the role with permissions to create an agent. (Optional) customerEncryptionKeyArn – The ARN of a KMS key to encrypt the creation of the agent. (Optional) idleSessionTTLinSeconds – Specify the number of seconds for which the agent should maintain session information. After this time expires, the subsequent InvokeAgent request begins a new session. To override the default prompt behavior for agent orchestration and to use advanced prompts, include a promptOverrideConfiguration object. For more information, see Advanced prompts. If you agent fails to be created, the response returns a list of failureReasons alongside a list of recommendedActions for you to troubleshoot. + /// Creates an agent that orchestrates interactions between foundation models, data sources, software applications, user conversations, and APIs to carry out tasks to help customers. Specify the following fields for security purposes. agentResourceRoleArn – The Amazon Resource Name (ARN) of the role with permissions to invoke API operations on an agent. (Optional) customerEncryptionKeyArn – The Amazon Resource Name (ARN) of a KMS key to encrypt the creation of the agent. (Optional) idleSessionTTLinSeconds – Specify the number of seconds for which the agent should maintain session information. After this time expires, the subsequent InvokeAgent request begins a new session. To override the default prompt behavior for agent orchestration and to use advanced prompts, include a promptOverrideConfiguration object. For more information, see Advanced prompts. If you agent fails to be created, the response returns a list of failureReasons alongside a list of recommendedActions for you to troubleshoot. @Sendable public func createAgent(_ input: CreateAgentRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateAgentResponse { return try await self.client.execute( @@ -139,7 +139,7 @@ public struct BedrockAgent: AWSService { ) } - /// Creates a knowledge base that contains data sources from which information can be queried and used by LLMs. To create a knowledge base, you must first set up your data sources and configure a supported vector store. For more information, see Set up your data for ingestion. If you prefer to let Amazon Bedrock create and manage a vector store for you in Amazon OpenSearch Service, use the console. For more information, see Create a knowledge base. Provide the name and an optional description. Provide the ARN with permissions to create a knowledge base in the roleArn field. Provide the embedding model to use in the embeddingModelArn field in the knowledgeBaseConfiguration object. Provide the configuration for your vector store in the storageConfiguration object. For an Amazon OpenSearch Service database, use the opensearchServerlessConfiguration object. For more information, see Create a vector store in Amazon OpenSearch Service. For an Amazon Aurora database, use the RdsConfiguration object. For more information, see Create a vector store in Amazon Aurora. For a Pinecone database, use the pineconeConfiguration object. For more information, see Create a vector store in Pinecone. For a Redis Enterprise Cloud database, use the redisEnterpriseCloudConfiguration object. For more information, see Create a vector store in Redis Enterprise Cloud. + /// Creates a knowledge base that contains data sources from which information can be queried and used by LLMs. To create a knowledge base, you must first set up your data sources and configure a supported vector store. For more information, see Set up your data for ingestion. If you prefer to let Amazon Bedrock create and manage a vector store for you in Amazon OpenSearch Service, use the console. For more information, see Create a knowledge base. Provide the name and an optional description. Provide the Amazon Resource Name (ARN) with permissions to create a knowledge base in the roleArn field. Provide the embedding model to use in the embeddingModelArn field in the knowledgeBaseConfiguration object. Provide the configuration for your vector store in the storageConfiguration object. For an Amazon OpenSearch Service database, use the opensearchServerlessConfiguration object. For more information, see Create a vector store in Amazon OpenSearch Service. For an Amazon Aurora database, use the RdsConfiguration object. For more information, see Create a vector store in Amazon Aurora. For a Pinecone database, use the pineconeConfiguration object. For more information, see Create a vector store in Pinecone. For a Redis Enterprise Cloud database, use the redisEnterpriseCloudConfiguration object. For more information, see Create a vector store in Redis Enterprise Cloud. @Sendable public func createKnowledgeBase(_ input: CreateKnowledgeBaseRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateKnowledgeBaseResponse { return try await self.client.execute( diff --git a/Sources/Soto/Services/BedrockAgent/BedrockAgent_shapes.swift b/Sources/Soto/Services/BedrockAgent/BedrockAgent_shapes.swift index dafa22b0e3..c794df4cd8 100644 --- a/Sources/Soto/Services/BedrockAgent/BedrockAgent_shapes.swift +++ b/Sources/Soto/Services/BedrockAgent/BedrockAgent_shapes.swift @@ -70,8 +70,20 @@ extension BedrockAgent { public var description: String { return self.rawValue } } + public enum CustomControlMethod: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case returnControl = "RETURN_CONTROL" + public var description: String { return self.rawValue } + } + + public enum DataDeletionPolicy: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case delete = "DELETE" + case retain = "RETAIN" + public var description: String { return self.rawValue } + } + public enum DataSourceStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case available = "AVAILABLE" + case deleteUnsuccessful = "DELETE_UNSUCCESSFUL" case deleting = "DELETING" public var description: String { return self.rawValue } } @@ -114,6 +126,7 @@ extension BedrockAgent { public enum KnowledgeBaseStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case active = "ACTIVE" case creating = "CREATING" + case deleteUnsuccessful = "DELETE_UNSUCCESSFUL" case deleting = "DELETING" case failed = "FAILED" case updating = "UPDATING" @@ -121,6 +134,7 @@ extension BedrockAgent { } public enum KnowledgeBaseStorageType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case mongoDbAtlas = "MONGO_DB_ATLAS" case opensearchServerless = "OPENSEARCH_SERVERLESS" case pinecone = "PINECONE" case rds = "RDS" @@ -153,6 +167,15 @@ extension BedrockAgent { public var description: String { return self.rawValue } } + public enum `Type`: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case array = "array" + case boolean = "boolean" + case integer = "integer" + case number = "number" + case string = "string" + public var description: String { return self.rawValue } + } + public enum APISchema: AWSEncodableShape & AWSDecodableShape, Sendable { /// The JSON or YAML-formatted payload defining the OpenAPI schema for the action group. For more information, see Action group OpenAPI schemas. case payload(String) @@ -203,6 +226,57 @@ extension BedrockAgent { } } + public enum ActionGroupExecutor: AWSEncodableShape & AWSDecodableShape, Sendable { + /// To return the action group invocation results directly in the InvokeAgent response, specify RETURN_CONTROL. + case customControl(CustomControlMethod) + /// The Amazon Resource Name (ARN) of the Lambda function containing the business logic that is carried out upon invoking the action. + case lambda(String) + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + guard container.allKeys.count == 1, let key = container.allKeys.first else { + let context = DecodingError.Context( + codingPath: container.codingPath, + debugDescription: "Expected exactly one key, but got \(container.allKeys.count)" + ) + throw DecodingError.dataCorrupted(context) + } + switch key { + case .customControl: + let value = try container.decode(CustomControlMethod.self, forKey: .customControl) + self = .customControl(value) + case .lambda: + let value = try container.decode(String.self, forKey: .lambda) + self = .lambda(value) + } + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case .customControl(let value): + try container.encode(value, forKey: .customControl) + case .lambda(let value): + try container.encode(value, forKey: .lambda) + } + } + + public func validate(name: String) throws { + switch self { + case .lambda(let value): + try self.validate(value, name: "lambda", parent: name, max: 2048) + try self.validate(value, name: "lambda", parent: name, pattern: "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$") + default: + break + } + } + + private enum CodingKeys: String, CodingKey { + case customControl = "customControl" + case lambda = "lambda" + } + } + // MARK: Shapes public struct ActionGroupSummary: AWSDecodableShape { @@ -236,13 +310,13 @@ extension BedrockAgent { } public struct Agent: AWSDecodableShape { - /// The ARN of the agent. + /// The Amazon Resource Name (ARN) of the agent. public let agentArn: String /// The unique identifier of the agent. public let agentId: String /// The name of the agent. public let agentName: String - /// The ARN of the IAM role with permissions to call API operations on the agent. The ARN must begin with AmazonBedrockExecutionRoleForAgents_. + /// The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the agent. public let agentResourceRoleArn: String /// The status of the agent and whether it is ready for use. The following statuses are possible: CREATING – The agent is being created. PREPARING – The agent is being prepared. PREPARED – The agent is prepared and ready to be invoked. NOT_PREPARED – The agent has been created but not yet prepared. FAILED – The agent API operation failed. UPDATING – The agent is being updated. DELETING – The agent is being deleted. public let agentStatus: AgentStatus @@ -253,7 +327,7 @@ extension BedrockAgent { /// The time at which the agent was created. @CustomCoding public var createdAt: Date - /// The ARN of the KMS key that encrypts the agent. + /// The Amazon Resource Name (ARN) of the KMS key that encrypts the agent. public let customerEncryptionKeyArn: String? /// The description of the agent. public let description: String? @@ -320,7 +394,7 @@ extension BedrockAgent { } public struct AgentActionGroup: AWSDecodableShape { - /// The ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + /// The Amazon Resource Name (ARN) of the Lambda function containing the business logic that is carried out upon invoking the action or the custom control method for handling the information elicited from the user. public let actionGroupExecutor: ActionGroupExecutor? /// The unique identifier of the action group. public let actionGroupId: String @@ -341,13 +415,15 @@ extension BedrockAgent { public var createdAt: Date /// The description of the action group. public let description: String? + /// Defines functions that each define parameters that the agent needs to invoke from the user. Each function represents an action in an action group. + public let functionSchema: FunctionSchema? /// If this field is set as AMAZON.UserInput, the agent can request the user for additional information when trying to complete a task. The description, apiSchema, and actionGroupExecutor fields must be blank for this action group. During orchestration, if the agent determines that it needs to invoke an API in an action group, but doesn't have enough information to complete the API request, it will invoke this action group instead and return an Observation reprompting the user for more information. public let parentActionSignature: ActionGroupSignature? /// The time at which the action group was last updated. @CustomCoding public var updatedAt: Date - public init(actionGroupExecutor: ActionGroupExecutor? = nil, actionGroupId: String, actionGroupName: String, actionGroupState: ActionGroupState, agentId: String, agentVersion: String, apiSchema: APISchema? = nil, clientToken: String? = nil, createdAt: Date, description: String? = nil, parentActionSignature: ActionGroupSignature? = nil, updatedAt: Date) { + public init(actionGroupExecutor: ActionGroupExecutor? = nil, actionGroupId: String, actionGroupName: String, actionGroupState: ActionGroupState, agentId: String, agentVersion: String, apiSchema: APISchema? = nil, clientToken: String? = nil, createdAt: Date, description: String? = nil, functionSchema: FunctionSchema? = nil, parentActionSignature: ActionGroupSignature? = nil, updatedAt: Date) { self.actionGroupExecutor = actionGroupExecutor self.actionGroupId = actionGroupId self.actionGroupName = actionGroupName @@ -358,6 +434,7 @@ extension BedrockAgent { self.clientToken = clientToken self.createdAt = createdAt self.description = description + self.functionSchema = functionSchema self.parentActionSignature = parentActionSignature self.updatedAt = updatedAt } @@ -373,13 +450,14 @@ extension BedrockAgent { case clientToken = "clientToken" case createdAt = "createdAt" case description = "description" + case functionSchema = "functionSchema" case parentActionSignature = "parentActionSignature" case updatedAt = "updatedAt" } } public struct AgentAlias: AWSDecodableShape { - /// The ARN of the alias of the agent. + /// The Amazon Resource Name (ARN) of the alias of the agent. public let agentAliasArn: String /// Contains details about the history of the alias. public let agentAliasHistoryEvents: [AgentAliasHistoryEvent]? @@ -398,13 +476,15 @@ extension BedrockAgent { public var createdAt: Date /// The description of the alias of the agent. public let description: String? + /// Information on the failure of Provisioned Throughput assigned to an agent alias. + public let failureReasons: [String]? /// Contains details about the routing configuration of the alias. public let routingConfiguration: [AgentAliasRoutingConfigurationListItem] /// The time at which the alias was last updated. @CustomCoding public var updatedAt: Date - public init(agentAliasArn: String, agentAliasHistoryEvents: [AgentAliasHistoryEvent]? = nil, agentAliasId: String, agentAliasName: String, agentAliasStatus: AgentAliasStatus, agentId: String, clientToken: String? = nil, createdAt: Date, description: String? = nil, routingConfiguration: [AgentAliasRoutingConfigurationListItem], updatedAt: Date) { + public init(agentAliasArn: String, agentAliasHistoryEvents: [AgentAliasHistoryEvent]? = nil, agentAliasId: String, agentAliasName: String, agentAliasStatus: AgentAliasStatus, agentId: String, clientToken: String? = nil, createdAt: Date, description: String? = nil, failureReasons: [String]? = nil, routingConfiguration: [AgentAliasRoutingConfigurationListItem], updatedAt: Date) { self.agentAliasArn = agentAliasArn self.agentAliasHistoryEvents = agentAliasHistoryEvents self.agentAliasId = agentAliasId @@ -414,6 +494,7 @@ extension BedrockAgent { self.clientToken = clientToken self.createdAt = createdAt self.description = description + self.failureReasons = failureReasons self.routingConfiguration = routingConfiguration self.updatedAt = updatedAt } @@ -428,6 +509,7 @@ extension BedrockAgent { case clientToken = "clientToken" case createdAt = "createdAt" case description = "description" + case failureReasons = "failureReasons" case routingConfiguration = "routingConfiguration" case updatedAt = "updatedAt" } @@ -458,20 +540,27 @@ extension BedrockAgent { public struct AgentAliasRoutingConfigurationListItem: AWSEncodableShape & AWSDecodableShape { /// The version of the agent with which the alias is associated. - public let agentVersion: String + public let agentVersion: String? + /// Information on the Provisioned Throughput assigned to an agent alias. + public let provisionedThroughput: String? - public init(agentVersion: String) { + public init(agentVersion: String? = nil, provisionedThroughput: String? = nil) { self.agentVersion = agentVersion + self.provisionedThroughput = provisionedThroughput } public func validate(name: String) throws { try self.validate(self.agentVersion, name: "agentVersion", parent: name, max: 5) try self.validate(self.agentVersion, name: "agentVersion", parent: name, min: 1) try self.validate(self.agentVersion, name: "agentVersion", parent: name, pattern: "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$") + try self.validate(self.provisionedThroughput, name: "provisionedThroughput", parent: name, max: 2048) + try self.validate(self.provisionedThroughput, name: "provisionedThroughput", parent: name, min: 1) + try self.validate(self.provisionedThroughput, name: "provisionedThroughput", parent: name, pattern: "^((([0-9a-zA-Z][_-]?){1,63})|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:provisioned-model/[a-z0-9]{12}))$") } private enum CodingKeys: String, CodingKey { case agentVersion = "agentVersion" + case provisionedThroughput = "provisionedThroughput" } } @@ -614,20 +703,20 @@ extension BedrockAgent { } public struct AgentVersion: AWSDecodableShape { - /// The ARN of the agent that the version belongs to. + /// The Amazon Resource Name (ARN) of the agent that the version belongs to. public let agentArn: String /// The unique identifier of the agent that the version belongs to. public let agentId: String /// The name of the agent that the version belongs to. public let agentName: String - /// The ARN of the IAM role with permissions to invoke API operations on the agent. The ARN must begin with AmazonBedrockExecutionRoleForAgents_. + /// The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the agent. public let agentResourceRoleArn: String /// The status of the agent that the version belongs to. public let agentStatus: AgentStatus /// The time at which the version was created. @CustomCoding public var createdAt: Date - /// The ARN of the KMS key that encrypts the agent. + /// The Amazon Resource Name (ARN) of the KMS key that encrypts the agent. public let customerEncryptionKeyArn: String? /// The description of the version. public let description: String? @@ -801,7 +890,7 @@ extension BedrockAgent { } public struct CreateAgentActionGroupRequest: AWSEncodableShape { - /// The ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + /// The Amazon Resource Name (ARN) of the Lambda function containing the business logic that is carried out upon invoking the action or the custom control method for handling the information elicited from the user. public let actionGroupExecutor: ActionGroupExecutor? /// The name to give the action group. public let actionGroupName: String @@ -817,10 +906,12 @@ extension BedrockAgent { public let clientToken: String? /// A description of the action group. public let description: String? + /// Contains details about the function schema for the action group or the JSON or YAML-formatted payload defining the schema. + public let functionSchema: FunctionSchema? /// To allow your agent to request the user for additional information when trying to complete a task, set this field to AMAZON.UserInput. You must leave the description, apiSchema, and actionGroupExecutor fields blank for this action group. During orchestration, if your agent determines that it needs to invoke an API in an action group, but doesn't have enough information to complete the API request, it will invoke this action group instead and return an Observation reprompting the user for more information. public let parentActionGroupSignature: ActionGroupSignature? - public init(actionGroupExecutor: ActionGroupExecutor? = nil, actionGroupName: String, actionGroupState: ActionGroupState? = nil, agentId: String, agentVersion: String, apiSchema: APISchema? = nil, clientToken: String? = CreateAgentActionGroupRequest.idempotencyToken(), description: String? = nil, parentActionGroupSignature: ActionGroupSignature? = nil) { + public init(actionGroupExecutor: ActionGroupExecutor? = nil, actionGroupName: String, actionGroupState: ActionGroupState? = nil, agentId: String, agentVersion: String, apiSchema: APISchema? = nil, clientToken: String? = CreateAgentActionGroupRequest.idempotencyToken(), description: String? = nil, functionSchema: FunctionSchema? = nil, parentActionGroupSignature: ActionGroupSignature? = nil) { self.actionGroupExecutor = actionGroupExecutor self.actionGroupName = actionGroupName self.actionGroupState = actionGroupState @@ -829,6 +920,7 @@ extension BedrockAgent { self.apiSchema = apiSchema self.clientToken = clientToken self.description = description + self.functionSchema = functionSchema self.parentActionGroupSignature = parentActionGroupSignature } @@ -843,6 +935,7 @@ extension BedrockAgent { try container.encodeIfPresent(self.apiSchema, forKey: .apiSchema) try container.encodeIfPresent(self.clientToken, forKey: .clientToken) try container.encodeIfPresent(self.description, forKey: .description) + try container.encodeIfPresent(self.functionSchema, forKey: .functionSchema) try container.encodeIfPresent(self.parentActionGroupSignature, forKey: .parentActionGroupSignature) } @@ -859,6 +952,7 @@ extension BedrockAgent { try self.validate(self.clientToken, name: "clientToken", parent: name, pattern: "^[a-zA-Z0-9](-*[a-zA-Z0-9])*$") try self.validate(self.description, name: "description", parent: name, max: 200) try self.validate(self.description, name: "description", parent: name, min: 1) + try self.functionSchema?.validate(name: "\(name).functionSchema") } private enum CodingKeys: String, CodingKey { @@ -868,6 +962,7 @@ extension BedrockAgent { case apiSchema = "apiSchema" case clientToken = "clientToken" case description = "description" + case functionSchema = "functionSchema" case parentActionGroupSignature = "parentActionGroupSignature" } } @@ -965,11 +1060,11 @@ extension BedrockAgent { public struct CreateAgentRequest: AWSEncodableShape { /// A name for the agent that you create. public let agentName: String - /// The ARN of the IAM role with permissions to create the agent. The ARN must begin with AmazonBedrockExecutionRoleForAgents_. - public let agentResourceRoleArn: String + /// The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the agent. + public let agentResourceRoleArn: String? /// A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency. public let clientToken: String? - /// The ARN of the KMS key with which to encrypt the agent. + /// The Amazon Resource Name (ARN) of the KMS key with which to encrypt the agent. public let customerEncryptionKeyArn: String? /// A description of the agent. public let description: String? @@ -984,7 +1079,7 @@ extension BedrockAgent { /// Any tags that you want to attach to the agent. public let tags: [String: String]? - public init(agentName: String, agentResourceRoleArn: String, clientToken: String? = CreateAgentRequest.idempotencyToken(), customerEncryptionKeyArn: String? = nil, description: String? = nil, foundationModel: String? = nil, idleSessionTTLInSeconds: Int? = nil, instruction: String? = nil, promptOverrideConfiguration: PromptOverrideConfiguration? = nil, tags: [String: String]? = nil) { + public init(agentName: String, agentResourceRoleArn: String? = nil, clientToken: String? = CreateAgentRequest.idempotencyToken(), customerEncryptionKeyArn: String? = nil, description: String? = nil, foundationModel: String? = nil, idleSessionTTLInSeconds: Int? = nil, instruction: String? = nil, promptOverrideConfiguration: PromptOverrideConfiguration? = nil, tags: [String: String]? = nil) { self.agentName = agentName self.agentResourceRoleArn = agentResourceRoleArn self.clientToken = clientToken @@ -1056,6 +1151,8 @@ extension BedrockAgent { public struct CreateDataSourceRequest: AWSEncodableShape { /// A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency. public let clientToken: String? + /// The data deletion policy assigned to the data source. + public let dataDeletionPolicy: DataDeletionPolicy? /// Contains metadata about where the data source is stored. public let dataSourceConfiguration: DataSourceConfiguration /// A description of the data source. @@ -1069,8 +1166,9 @@ extension BedrockAgent { /// Contains details about how to ingest the documents in the data source. public let vectorIngestionConfiguration: VectorIngestionConfiguration? - public init(clientToken: String? = CreateDataSourceRequest.idempotencyToken(), dataSourceConfiguration: DataSourceConfiguration, description: String? = nil, knowledgeBaseId: String, name: String, serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration? = nil, vectorIngestionConfiguration: VectorIngestionConfiguration? = nil) { + public init(clientToken: String? = CreateDataSourceRequest.idempotencyToken(), dataDeletionPolicy: DataDeletionPolicy? = nil, dataSourceConfiguration: DataSourceConfiguration, description: String? = nil, knowledgeBaseId: String, name: String, serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration? = nil, vectorIngestionConfiguration: VectorIngestionConfiguration? = nil) { self.clientToken = clientToken + self.dataDeletionPolicy = dataDeletionPolicy self.dataSourceConfiguration = dataSourceConfiguration self.description = description self.knowledgeBaseId = knowledgeBaseId @@ -1083,6 +1181,7 @@ extension BedrockAgent { let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer var container = encoder.container(keyedBy: CodingKeys.self) try container.encodeIfPresent(self.clientToken, forKey: .clientToken) + try container.encodeIfPresent(self.dataDeletionPolicy, forKey: .dataDeletionPolicy) try container.encode(self.dataSourceConfiguration, forKey: .dataSourceConfiguration) try container.encodeIfPresent(self.description, forKey: .description) request.encodePath(self.knowledgeBaseId, key: "knowledgeBaseId") @@ -1105,6 +1204,7 @@ extension BedrockAgent { private enum CodingKeys: String, CodingKey { case clientToken = "clientToken" + case dataDeletionPolicy = "dataDeletionPolicy" case dataSourceConfiguration = "dataSourceConfiguration" case description = "description" case name = "name" @@ -1135,7 +1235,7 @@ extension BedrockAgent { public let knowledgeBaseConfiguration: KnowledgeBaseConfiguration /// A name for the knowledge base. public let name: String - /// The ARN of the IAM role with permissions to create the knowledge base. + /// The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the knowledge base. public let roleArn: String /// Contains details about the configuration of the vector database used for the knowledge base. public let storageConfiguration: StorageConfiguration @@ -1200,12 +1300,16 @@ extension BedrockAgent { /// The time at which the data source was created. @CustomCoding public var createdAt: Date + /// The data deletion policy for a data source. + public let dataDeletionPolicy: DataDeletionPolicy? /// Contains details about how the data source is stored. public let dataSourceConfiguration: DataSourceConfiguration /// The unique identifier of the data source. public let dataSourceId: String /// The description of the data source. public let description: String? + /// The detailed reasons on the failure to delete a data source. + public let failureReasons: [String]? /// The unique identifier of the knowledge base to which the data source belongs. public let knowledgeBaseId: String /// The name of the data source. @@ -1220,11 +1324,13 @@ extension BedrockAgent { /// Contains details about how to ingest the documents in the data source. public let vectorIngestionConfiguration: VectorIngestionConfiguration? - public init(createdAt: Date, dataSourceConfiguration: DataSourceConfiguration, dataSourceId: String, description: String? = nil, knowledgeBaseId: String, name: String, serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration? = nil, status: DataSourceStatus, updatedAt: Date, vectorIngestionConfiguration: VectorIngestionConfiguration? = nil) { + public init(createdAt: Date, dataDeletionPolicy: DataDeletionPolicy? = nil, dataSourceConfiguration: DataSourceConfiguration, dataSourceId: String, description: String? = nil, failureReasons: [String]? = nil, knowledgeBaseId: String, name: String, serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration? = nil, status: DataSourceStatus, updatedAt: Date, vectorIngestionConfiguration: VectorIngestionConfiguration? = nil) { self.createdAt = createdAt + self.dataDeletionPolicy = dataDeletionPolicy self.dataSourceConfiguration = dataSourceConfiguration self.dataSourceId = dataSourceId self.description = description + self.failureReasons = failureReasons self.knowledgeBaseId = knowledgeBaseId self.name = name self.serverSideEncryptionConfiguration = serverSideEncryptionConfiguration @@ -1235,9 +1341,11 @@ extension BedrockAgent { private enum CodingKeys: String, CodingKey { case createdAt = "createdAt" + case dataDeletionPolicy = "dataDeletionPolicy" case dataSourceConfiguration = "dataSourceConfiguration" case dataSourceId = "dataSourceId" case description = "description" + case failureReasons = "failureReasons" case knowledgeBaseId = "knowledgeBaseId" case name = "name" case serverSideEncryptionConfiguration = "serverSideEncryptionConfiguration" @@ -1624,6 +1732,37 @@ extension BedrockAgent { } } + public struct Function: AWSEncodableShape & AWSDecodableShape { + /// A description of the function and its purpose. + public let description: String? + /// A name for the function. + public let name: String + /// The parameters that the agent elicits from the user to fulfill the function. + public let parameters: [String: ParameterDetail]? + + public init(description: String? = nil, name: String, parameters: [String: ParameterDetail]? = nil) { + self.description = description + self.name = name + self.parameters = parameters + } + + public func validate(name: String) throws { + try self.validate(self.description, name: "description", parent: name, max: 1200) + try self.validate(self.description, name: "description", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^([0-9a-zA-Z][_-]?){1,100}$") + try self.parameters?.forEach { + try validate($0.key, name: "parameters.key", parent: name, pattern: "^([0-9a-zA-Z][_-]?){1,100}$") + try $0.value.validate(name: "\(name).parameters[\"\($0.key)\"]") + } + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case name = "name" + case parameters = "parameters" + } + } + public struct GetAgentActionGroupRequest: AWSEncodableShape { /// The unique identifier of the action group for which to get information. public let actionGroupId: String @@ -2169,7 +2308,7 @@ extension BedrockAgent { public let description: String? /// A list of reasons that the API operation on the knowledge base failed. public let failureReasons: [String]? - /// The ARN of the knowledge base. + /// The Amazon Resource Name (ARN) of the knowledge base. public let knowledgeBaseArn: String /// Contains details about the embeddings configuration of the knowledge base. public let knowledgeBaseConfiguration: KnowledgeBaseConfiguration @@ -2177,7 +2316,7 @@ extension BedrockAgent { public let knowledgeBaseId: String /// The name of the knowledge base. public let name: String - /// The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_. + /// The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the knowledge base. public let roleArn: String /// The status of the knowledge base. The following statuses are possible: CREATING – The knowledge base is being created. ACTIVE – The knowledge base is ready to be queried. DELETING – The knowledge base is being deleted. UPDATING – The knowledge base is being updated. FAILED – The knowledge base API operation failed. public let status: KnowledgeBaseStatus @@ -2710,7 +2849,7 @@ extension BedrockAgent { } public struct ListTagsForResourceRequest: AWSEncodableShape { - /// The ARN of the resource for which to list tags. + /// The Amazon Resource Name (ARN) of the resource for which to list tags. public let resourceArn: String public init(resourceArn: String) { @@ -2745,8 +2884,91 @@ extension BedrockAgent { } } + public struct MongoDbAtlasConfiguration: AWSEncodableShape & AWSDecodableShape { + /// The collection name of the knowledge base in MongoDB Atlas. + public let collectionName: String + /// The Amazon Resource Name (ARN) of the secret that you created in Secrets Manager that contains user credentials for your MongoDB Atlas cluster. + public let credentialsSecretArn: String + /// The database name in your MongoDB Atlas cluster for your knowledge base. + public let databaseName: String + /// The endpoint URL of your MongoDB Atlas cluster for your knowledge base. + public let endpoint: String + /// The name of the VPC endpoint service in your account that is connected to your MongoDB Atlas cluster. + public let endpointServiceName: String? + /// Contains the names of the fields to which to map information about the vector store. + public let fieldMapping: MongoDbAtlasFieldMapping + /// The name of the MongoDB Atlas vector search index. + public let vectorIndexName: String + + public init(collectionName: String, credentialsSecretArn: String, databaseName: String, endpoint: String, endpointServiceName: String? = nil, fieldMapping: MongoDbAtlasFieldMapping, vectorIndexName: String) { + self.collectionName = collectionName + self.credentialsSecretArn = credentialsSecretArn + self.databaseName = databaseName + self.endpoint = endpoint + self.endpointServiceName = endpointServiceName + self.fieldMapping = fieldMapping + self.vectorIndexName = vectorIndexName + } + + public func validate(name: String) throws { + try self.validate(self.collectionName, name: "collectionName", parent: name, max: 63) + try self.validate(self.collectionName, name: "collectionName", parent: name, pattern: "^.*$") + try self.validate(self.credentialsSecretArn, name: "credentialsSecretArn", parent: name, pattern: "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$") + try self.validate(self.databaseName, name: "databaseName", parent: name, max: 63) + try self.validate(self.databaseName, name: "databaseName", parent: name, pattern: "^.*$") + try self.validate(self.endpoint, name: "endpoint", parent: name, max: 2048) + try self.validate(self.endpoint, name: "endpoint", parent: name, pattern: "^.*$") + try self.validate(self.endpointServiceName, name: "endpointServiceName", parent: name, max: 255) + try self.validate(self.endpointServiceName, name: "endpointServiceName", parent: name, min: 1) + try self.validate(self.endpointServiceName, name: "endpointServiceName", parent: name, pattern: "^(?:arn:aws(?:-us-gov|-cn|-iso|-iso-[a-z])*:.+:.*:\\d+:.+/.+$|[a-zA-Z0-9*]+[a-zA-Z0-9._-]*)$") + try self.fieldMapping.validate(name: "\(name).fieldMapping") + try self.validate(self.vectorIndexName, name: "vectorIndexName", parent: name, max: 2048) + try self.validate(self.vectorIndexName, name: "vectorIndexName", parent: name, pattern: "^.*$") + } + + private enum CodingKeys: String, CodingKey { + case collectionName = "collectionName" + case credentialsSecretArn = "credentialsSecretArn" + case databaseName = "databaseName" + case endpoint = "endpoint" + case endpointServiceName = "endpointServiceName" + case fieldMapping = "fieldMapping" + case vectorIndexName = "vectorIndexName" + } + } + + public struct MongoDbAtlasFieldMapping: AWSEncodableShape & AWSDecodableShape { + /// The name of the field in which Amazon Bedrock stores metadata about the vector store. + public let metadataField: String + /// The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + public let textField: String + /// The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + public let vectorField: String + + public init(metadataField: String, textField: String, vectorField: String) { + self.metadataField = metadataField + self.textField = textField + self.vectorField = vectorField + } + + public func validate(name: String) throws { + try self.validate(self.metadataField, name: "metadataField", parent: name, max: 2048) + try self.validate(self.metadataField, name: "metadataField", parent: name, pattern: "^.*$") + try self.validate(self.textField, name: "textField", parent: name, max: 2048) + try self.validate(self.textField, name: "textField", parent: name, pattern: "^.*$") + try self.validate(self.vectorField, name: "vectorField", parent: name, max: 2048) + try self.validate(self.vectorField, name: "vectorField", parent: name, pattern: "^.*$") + } + + private enum CodingKeys: String, CodingKey { + case metadataField = "metadataField" + case textField = "textField" + case vectorField = "vectorField" + } + } + public struct OpenSearchServerlessConfiguration: AWSEncodableShape & AWSDecodableShape { - /// The ARN of the OpenSearch Service vector store. + /// The Amazon Resource Name (ARN) of the OpenSearch Service vector store. public let collectionArn: String /// Contains the names of the fields to which to map information about the vector store. public let fieldMapping: OpenSearchServerlessFieldMapping @@ -2804,10 +3026,36 @@ extension BedrockAgent { } } + public struct ParameterDetail: AWSEncodableShape & AWSDecodableShape { + /// A description of the parameter. Helps the foundation model determine how to elicit the parameters from the user. + public let description: String? + /// Whether the parameter is required for the agent to complete the function for action group invocation. + public let required: Bool? + /// The data type of the parameter. + public let type: `Type` + + public init(description: String? = nil, required: Bool? = nil, type: `Type`) { + self.description = description + self.required = required + self.type = type + } + + public func validate(name: String) throws { + try self.validate(self.description, name: "description", parent: name, max: 500) + try self.validate(self.description, name: "description", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case required = "required" + case type = "type" + } + } + public struct PineconeConfiguration: AWSEncodableShape & AWSDecodableShape { /// The endpoint URL for your index management page. public let connectionString: String - /// The ARN of the secret that you created in Secrets Manager that is linked to your Pinecone API key. + /// The Amazon Resource Name (ARN) of the secret that you created in Secrets Manager that is linked to your Pinecone API key. public let credentialsSecretArn: String /// Contains the names of the fields to which to map information about the vector store. public let fieldMapping: PineconeFieldMapping @@ -2975,13 +3223,13 @@ extension BedrockAgent { } public struct RdsConfiguration: AWSEncodableShape & AWSDecodableShape { - /// The ARN of the secret that you created in Secrets Manager that is linked to your Amazon RDS database. + /// The Amazon Resource Name (ARN) of the secret that you created in Secrets Manager that is linked to your Amazon RDS database. public let credentialsSecretArn: String /// The name of your Amazon RDS database. public let databaseName: String /// Contains the names of the fields to which to map information about the vector store. public let fieldMapping: RdsFieldMapping - /// The ARN of the vector store. + /// The Amazon Resource Name (ARN) of the vector store. public let resourceArn: String /// The name of the table in the database. public let tableName: String @@ -3050,7 +3298,7 @@ extension BedrockAgent { } public struct RedisEnterpriseCloudConfiguration: AWSEncodableShape & AWSDecodableShape { - /// The ARN of the secret that you created in Secrets Manager that is linked to your Redis Enterprise Cloud database. + /// The Amazon Resource Name (ARN) of the secret that you created in Secrets Manager that is linked to your Redis Enterprise Cloud database. public let credentialsSecretArn: String /// The endpoint URL of the Redis Enterprise Cloud database. public let endpoint: String @@ -3114,13 +3362,16 @@ extension BedrockAgent { } public struct S3DataSourceConfiguration: AWSEncodableShape & AWSDecodableShape { - /// The ARN of the bucket that contains the data source. + /// The Amazon Resource Name (ARN) of the bucket that contains the data source. public let bucketArn: String + /// The bucket account owner ID for the S3 bucket. + public let bucketOwnerAccountId: String? /// A list of S3 prefixes that define the object containing the data sources. For more information, see Organizing objects using prefixes. public let inclusionPrefixes: [String]? - public init(bucketArn: String, inclusionPrefixes: [String]? = nil) { + public init(bucketArn: String, bucketOwnerAccountId: String? = nil, inclusionPrefixes: [String]? = nil) { self.bucketArn = bucketArn + self.bucketOwnerAccountId = bucketOwnerAccountId self.inclusionPrefixes = inclusionPrefixes } @@ -3128,6 +3379,9 @@ extension BedrockAgent { try self.validate(self.bucketArn, name: "bucketArn", parent: name, max: 2048) try self.validate(self.bucketArn, name: "bucketArn", parent: name, min: 1) try self.validate(self.bucketArn, name: "bucketArn", parent: name, pattern: "^arn:aws(|-cn|-us-gov):s3:::[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$") + try self.validate(self.bucketOwnerAccountId, name: "bucketOwnerAccountId", parent: name, max: 12) + try self.validate(self.bucketOwnerAccountId, name: "bucketOwnerAccountId", parent: name, min: 12) + try self.validate(self.bucketOwnerAccountId, name: "bucketOwnerAccountId", parent: name, pattern: "^[0-9]{12}$") try self.inclusionPrefixes?.forEach { try validate($0, name: "inclusionPrefixes[]", parent: name, max: 300) try validate($0, name: "inclusionPrefixes[]", parent: name, min: 1) @@ -3138,6 +3392,7 @@ extension BedrockAgent { private enum CodingKeys: String, CodingKey { case bucketArn = "bucketArn" + case bucketOwnerAccountId = "bucketOwnerAccountId" case inclusionPrefixes = "inclusionPrefixes" } } @@ -3169,7 +3424,7 @@ extension BedrockAgent { } public struct ServerSideEncryptionConfiguration: AWSEncodableShape & AWSDecodableShape { - /// The ARN of the KMS key used to encrypt the resource. + /// The Amazon Resource Name (ARN) of the KMS key used to encrypt the resource. public let kmsKeyArn: String? public init(kmsKeyArn: String? = nil) { @@ -3243,6 +3498,8 @@ extension BedrockAgent { } public struct StorageConfiguration: AWSEncodableShape & AWSDecodableShape { + /// Contains the storage configuration of the knowledge base in MongoDB Atlas. + public let mongoDbAtlasConfiguration: MongoDbAtlasConfiguration? /// Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. public let opensearchServerlessConfiguration: OpenSearchServerlessConfiguration? /// Contains the storage configuration of the knowledge base in Pinecone. @@ -3254,7 +3511,8 @@ extension BedrockAgent { /// The vector store service in which the knowledge base is stored. public let type: KnowledgeBaseStorageType - public init(opensearchServerlessConfiguration: OpenSearchServerlessConfiguration? = nil, pineconeConfiguration: PineconeConfiguration? = nil, rdsConfiguration: RdsConfiguration? = nil, redisEnterpriseCloudConfiguration: RedisEnterpriseCloudConfiguration? = nil, type: KnowledgeBaseStorageType) { + public init(mongoDbAtlasConfiguration: MongoDbAtlasConfiguration? = nil, opensearchServerlessConfiguration: OpenSearchServerlessConfiguration? = nil, pineconeConfiguration: PineconeConfiguration? = nil, rdsConfiguration: RdsConfiguration? = nil, redisEnterpriseCloudConfiguration: RedisEnterpriseCloudConfiguration? = nil, type: KnowledgeBaseStorageType) { + self.mongoDbAtlasConfiguration = mongoDbAtlasConfiguration self.opensearchServerlessConfiguration = opensearchServerlessConfiguration self.pineconeConfiguration = pineconeConfiguration self.rdsConfiguration = rdsConfiguration @@ -3263,6 +3521,7 @@ extension BedrockAgent { } public func validate(name: String) throws { + try self.mongoDbAtlasConfiguration?.validate(name: "\(name).mongoDbAtlasConfiguration") try self.opensearchServerlessConfiguration?.validate(name: "\(name).opensearchServerlessConfiguration") try self.pineconeConfiguration?.validate(name: "\(name).pineconeConfiguration") try self.rdsConfiguration?.validate(name: "\(name).rdsConfiguration") @@ -3270,6 +3529,7 @@ extension BedrockAgent { } private enum CodingKeys: String, CodingKey { + case mongoDbAtlasConfiguration = "mongoDbAtlasConfiguration" case opensearchServerlessConfiguration = "opensearchServerlessConfiguration" case pineconeConfiguration = "pineconeConfiguration" case rdsConfiguration = "rdsConfiguration" @@ -3279,7 +3539,7 @@ extension BedrockAgent { } public struct TagResourceRequest: AWSEncodableShape { - /// The ARN of the resource to tag. + /// The Amazon Resource Name (ARN) of the resource to tag. public let resourceArn: String /// An object containing key-value pairs that define the tags to attach to the resource. public let tags: [String: String] @@ -3319,7 +3579,7 @@ extension BedrockAgent { } public struct UntagResourceRequest: AWSEncodableShape { - /// The ARN of the resource from which to remove tags. + /// The Amazon Resource Name (ARN) of the resource from which to remove tags. public let resourceArn: String /// A list of keys of the tags to remove from the resource. public let tagKeys: [String] @@ -3356,7 +3616,7 @@ extension BedrockAgent { } public struct UpdateAgentActionGroupRequest: AWSEncodableShape { - /// The ARN of the Lambda function containing the business logic that is carried out upon invoking the action. + /// The Amazon Resource Name (ARN) of the Lambda function containing the business logic that is carried out upon invoking the action. public let actionGroupExecutor: ActionGroupExecutor? /// The unique identifier of the action group. public let actionGroupId: String @@ -3372,10 +3632,12 @@ extension BedrockAgent { public let apiSchema: APISchema? /// Specifies a new name for the action group. public let description: String? + /// Contains details about the function schema for the action group or the JSON or YAML-formatted payload defining the schema. + public let functionSchema: FunctionSchema? /// To allow your agent to request the user for additional information when trying to complete a task, set this field to AMAZON.UserInput. You must leave the description, apiSchema, and actionGroupExecutor fields blank for this action group. During orchestration, if your agent determines that it needs to invoke an API in an action group, but doesn't have enough information to complete the API request, it will invoke this action group instead and return an Observation reprompting the user for more information. public let parentActionGroupSignature: ActionGroupSignature? - public init(actionGroupExecutor: ActionGroupExecutor? = nil, actionGroupId: String, actionGroupName: String, actionGroupState: ActionGroupState? = nil, agentId: String, agentVersion: String, apiSchema: APISchema? = nil, description: String? = nil, parentActionGroupSignature: ActionGroupSignature? = nil) { + public init(actionGroupExecutor: ActionGroupExecutor? = nil, actionGroupId: String, actionGroupName: String, actionGroupState: ActionGroupState? = nil, agentId: String, agentVersion: String, apiSchema: APISchema? = nil, description: String? = nil, functionSchema: FunctionSchema? = nil, parentActionGroupSignature: ActionGroupSignature? = nil) { self.actionGroupExecutor = actionGroupExecutor self.actionGroupId = actionGroupId self.actionGroupName = actionGroupName @@ -3384,6 +3646,7 @@ extension BedrockAgent { self.agentVersion = agentVersion self.apiSchema = apiSchema self.description = description + self.functionSchema = functionSchema self.parentActionGroupSignature = parentActionGroupSignature } @@ -3398,6 +3661,7 @@ extension BedrockAgent { request.encodePath(self.agentVersion, key: "agentVersion") try container.encodeIfPresent(self.apiSchema, forKey: .apiSchema) try container.encodeIfPresent(self.description, forKey: .description) + try container.encodeIfPresent(self.functionSchema, forKey: .functionSchema) try container.encodeIfPresent(self.parentActionGroupSignature, forKey: .parentActionGroupSignature) } @@ -3412,6 +3676,7 @@ extension BedrockAgent { try self.apiSchema?.validate(name: "\(name).apiSchema") try self.validate(self.description, name: "description", parent: name, max: 200) try self.validate(self.description, name: "description", parent: name, min: 1) + try self.functionSchema?.validate(name: "\(name).functionSchema") } private enum CodingKeys: String, CodingKey { @@ -3420,6 +3685,7 @@ extension BedrockAgent { case actionGroupState = "actionGroupState" case apiSchema = "apiSchema" case description = "description" + case functionSchema = "functionSchema" case parentActionGroupSignature = "parentActionGroupSignature" } } @@ -3565,9 +3831,9 @@ extension BedrockAgent { public let agentId: String /// Specifies a new name for the agent. public let agentName: String - /// The ARN of the IAM role with permissions to update the agent. The ARN must begin with AmazonBedrockExecutionRoleForAgents_. + /// The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the agent. public let agentResourceRoleArn: String - /// The ARN of the KMS key with which to encrypt the agent. + /// The Amazon Resource Name (ARN) of the KMS key with which to encrypt the agent. public let customerEncryptionKeyArn: String? /// Specifies a new description of the agent. public let description: String? @@ -3652,6 +3918,8 @@ extension BedrockAgent { } public struct UpdateDataSourceRequest: AWSEncodableShape { + /// The data deletion policy of the updated data source. + public let dataDeletionPolicy: DataDeletionPolicy? /// Contains details about the storage configuration of the data source. public let dataSourceConfiguration: DataSourceConfiguration /// The unique identifier of the data source. @@ -3667,7 +3935,8 @@ extension BedrockAgent { /// Contains details about how to ingest the documents in the data source. public let vectorIngestionConfiguration: VectorIngestionConfiguration? - public init(dataSourceConfiguration: DataSourceConfiguration, dataSourceId: String, description: String? = nil, knowledgeBaseId: String, name: String, serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration? = nil, vectorIngestionConfiguration: VectorIngestionConfiguration? = nil) { + public init(dataDeletionPolicy: DataDeletionPolicy? = nil, dataSourceConfiguration: DataSourceConfiguration, dataSourceId: String, description: String? = nil, knowledgeBaseId: String, name: String, serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration? = nil, vectorIngestionConfiguration: VectorIngestionConfiguration? = nil) { + self.dataDeletionPolicy = dataDeletionPolicy self.dataSourceConfiguration = dataSourceConfiguration self.dataSourceId = dataSourceId self.description = description @@ -3680,6 +3949,7 @@ extension BedrockAgent { public func encode(to encoder: Encoder) throws { let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.dataDeletionPolicy, forKey: .dataDeletionPolicy) try container.encode(self.dataSourceConfiguration, forKey: .dataSourceConfiguration) request.encodePath(self.dataSourceId, key: "dataSourceId") try container.encodeIfPresent(self.description, forKey: .description) @@ -3700,6 +3970,7 @@ extension BedrockAgent { } private enum CodingKeys: String, CodingKey { + case dataDeletionPolicy = "dataDeletionPolicy" case dataSourceConfiguration = "dataSourceConfiguration" case description = "description" case name = "name" @@ -3730,7 +4001,7 @@ extension BedrockAgent { public let knowledgeBaseId: String /// Specifies a new name for the knowledge base. public let name: String - /// Specifies a different Amazon Resource Name (ARN) of the IAM role with permissions to modify the knowledge base. + /// Specifies a different Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the knowledge base. public let roleArn: String /// Specifies the configuration for the vector store used for the knowledge base. You must use the same configuration as when the knowledge base was created. public let storageConfiguration: StorageConfiguration @@ -3802,7 +4073,7 @@ extension BedrockAgent { } public struct VectorKnowledgeBaseConfiguration: AWSEncodableShape & AWSDecodableShape { - /// The ARN of the model used to create vector embeddings for the knowledge base. + /// The Amazon Resource Name (ARN) of the model used to create vector embeddings for the knowledge base. public let embeddingModelArn: String public init(embeddingModelArn: String) { @@ -3820,21 +4091,22 @@ extension BedrockAgent { } } - public struct ActionGroupExecutor: AWSEncodableShape & AWSDecodableShape { - /// The ARN of the Lambda function containing the business logic that is carried out upon invoking the action. - public let lambda: String? + public struct FunctionSchema: AWSEncodableShape & AWSDecodableShape { + /// A list of functions that each define an action in the action group. + public let functions: [Function]? - public init(lambda: String? = nil) { - self.lambda = lambda + public init(functions: [Function]? = nil) { + self.functions = functions } public func validate(name: String) throws { - try self.validate(self.lambda, name: "lambda", parent: name, max: 2048) - try self.validate(self.lambda, name: "lambda", parent: name, pattern: "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$") + try self.functions?.forEach { + try $0.validate(name: "\(name).functions[]") + } } private enum CodingKeys: String, CodingKey { - case lambda = "lambda" + case functions = "functions" } } } @@ -3877,7 +4149,7 @@ public struct BedrockAgentErrorType: AWSErrorType { public static var conflictException: Self { .init(.conflictException) } /// An internal server error occurred. Retry your request. public static var internalServerException: Self { .init(.internalServerException) } - /// The specified resource ARN was not found. Check the ARN and try your request again. + /// The specified resource Amazon Resource Name (ARN) was not found. Check the Amazon Resource Name (ARN) and try your request again. public static var resourceNotFoundException: Self { .init(.resourceNotFoundException) } /// The number of requests exceeds the service quota. Resubmit your request later. public static var serviceQuotaExceededException: Self { .init(.serviceQuotaExceededException) } diff --git a/Sources/Soto/Services/BedrockAgentRuntime/BedrockAgentRuntime_api.swift b/Sources/Soto/Services/BedrockAgentRuntime/BedrockAgentRuntime_api.swift index 4a55fb98b8..eddaddad07 100644 --- a/Sources/Soto/Services/BedrockAgentRuntime/BedrockAgentRuntime_api.swift +++ b/Sources/Soto/Services/BedrockAgentRuntime/BedrockAgentRuntime_api.swift @@ -74,7 +74,7 @@ public struct BedrockAgentRuntime: AWSService { // MARK: API Calls - /// Sends a prompt for the agent to process and respond to. The CLI doesn't support InvokeAgent. To continue the same conversation with an agent, use the same sessionId value in the request. To activate trace enablement, turn enableTrace to true. Trace enablement helps you follow the agent's reasoning process that led it to the information it processed, the actions it took, and the final result it yielded. For more information, see Trace enablement. End a conversation by setting endSession to true. Include attributes for the session or prompt in the sessionState object. The response is returned in the bytes field of the chunk object. The attribution object contains citations for parts of the response. If you set enableTrace to true in the request, you can trace the agent's steps and reasoning process that led it to the response. Errors are also surfaced in the response. + /// Sends a prompt for the agent to process and respond to. Use return control event type for function calling. The CLI doesn't support InvokeAgent. To continue the same conversation with an agent, use the same sessionId value in the request. To activate trace enablement, turn enableTrace to true. Trace enablement helps you follow the agent's reasoning process that led it to the information it processed, the actions it took, and the final result it yielded. For more information, see Trace enablement. End a conversation by setting endSession to true. In the sessionState object, you can include attributes for the session or prompt or parameters returned from the action group. Use return control event type for function calling. The response is returned in the bytes field of the chunk object. The attribution object contains citations for parts of the response. If you set enableTrace to true in the request, you can trace the agent's steps and reasoning process that led it to the response. Errors are also surfaced in the response. @Sendable public func invokeAgent(_ input: InvokeAgentRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> InvokeAgentResponse { return try await self.client.execute( diff --git a/Sources/Soto/Services/BedrockAgentRuntime/BedrockAgentRuntime_shapes.swift b/Sources/Soto/Services/BedrockAgentRuntime/BedrockAgentRuntime_shapes.swift index 05581d0766..4aa63f99a0 100644 --- a/Sources/Soto/Services/BedrockAgentRuntime/BedrockAgentRuntime_shapes.swift +++ b/Sources/Soto/Services/BedrockAgentRuntime/BedrockAgentRuntime_shapes.swift @@ -32,6 +32,12 @@ extension BedrockAgentRuntime { public var description: String { return self.rawValue } } + public enum ExternalSourceType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case byteContent = "BYTE_CONTENT" + case s3 = "S3" + public var description: String { return self.rawValue } + } + public enum InvocationType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case actionGroup = "ACTION_GROUP" case finish = "FINISH" @@ -47,12 +53,19 @@ extension BedrockAgentRuntime { public var description: String { return self.rawValue } } + public enum ResponseState: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case failure = "FAILURE" + case reprompt = "REPROMPT" + public var description: String { return self.rawValue } + } + public enum RetrievalResultLocationType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case s3 = "S3" public var description: String { return self.rawValue } } public enum RetrieveAndGenerateType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case externalSources = "EXTERNAL_SOURCES" case knowledgeBase = "KNOWLEDGE_BASE" public var description: String { return self.rawValue } } @@ -79,6 +92,59 @@ extension BedrockAgentRuntime { public var description: String { return self.rawValue } } + public enum InvocationInputMember: AWSDecodableShape, Sendable { + /// Contains information about the API operation that the agent predicts should be called. + case apiInvocationInput(ApiInvocationInput) + /// Contains information about the function that the agent predicts should be called. + case functionInvocationInput(FunctionInvocationInput) + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + guard container.allKeys.count == 1, let key = container.allKeys.first else { + let context = DecodingError.Context( + codingPath: container.codingPath, + debugDescription: "Expected exactly one key, but got \(container.allKeys.count)" + ) + throw DecodingError.dataCorrupted(context) + } + switch key { + case .apiInvocationInput: + let value = try container.decode(ApiInvocationInput.self, forKey: .apiInvocationInput) + self = .apiInvocationInput(value) + case .functionInvocationInput: + let value = try container.decode(FunctionInvocationInput.self, forKey: .functionInvocationInput) + self = .functionInvocationInput(value) + } + } + + private enum CodingKeys: String, CodingKey { + case apiInvocationInput = "apiInvocationInput" + case functionInvocationInput = "functionInvocationInput" + } + } + + public enum InvocationResultMember: AWSEncodableShape, Sendable { + /// The result from the API response from the action group invocation. + case apiResult(ApiResult) + /// The result from the function from the action group invocation. + case functionResult(FunctionResult) + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case .apiResult(let value): + try container.encode(value, forKey: .apiResult) + case .functionResult(let value): + try container.encode(value, forKey: .functionResult) + } + } + + private enum CodingKeys: String, CodingKey { + case apiResult = "apiResult" + case functionResult = "functionResult" + } + } + public enum OrchestrationTrace: AWSDecodableShape, Sendable { /// Contains information pertaining to the action group or knowledge base that is being invoked. case invocationInput(InvocationInput) @@ -197,13 +263,15 @@ extension BedrockAgentRuntime { case dependencyFailedException(DependencyFailedException) /// An internal server error occurred. Retry your request. case internalServerException(InternalServerException) - /// The specified resource ARN was not found. Check the ARN and try your request again. + /// The specified resource Amazon Resource Name (ARN) was not found. Check the Amazon Resource Name (ARN) and try your request again. case resourceNotFoundException(ResourceNotFoundException) + /// Contains the parameters and information that the agent elicited from the customer to carry out an action. This information is returned to the system and can be used in your own setup for fulfilling the action. + case returnControl(ReturnControlPayload) /// The number of requests exceeds the service quota. Resubmit your request later. case serviceQuotaExceededException(ServiceQuotaExceededException) /// The number of requests exceeds the limit. Resubmit your request later. case throttlingException(ThrottlingException) - /// Contains information about the agent and session, alongside the agent's reasoning process and results from calling API actions and querying knowledge bases and metadata about the trace. You can use the trace to understand how the agent arrived at the response it provided the customer. For more information, see Trace events. + /// Contains information about the agent and session, alongside the agent's reasoning process and results from calling actions and querying knowledge bases and metadata about the trace. You can use the trace to understand how the agent arrived at the response it provided the customer. For more information, see Trace events. case trace(TracePart) /// Input validation failed. Check your request parameters and retry the request. case validationException(ValidationException) @@ -239,6 +307,9 @@ extension BedrockAgentRuntime { case .resourceNotFoundException: let value = try container.decode(ResourceNotFoundException.self, forKey: .resourceNotFoundException) self = .resourceNotFoundException(value) + case .returnControl: + let value = try container.decode(ReturnControlPayload.self, forKey: .returnControl) + self = .returnControl(value) case .serviceQuotaExceededException: let value = try container.decode(ServiceQuotaExceededException.self, forKey: .serviceQuotaExceededException) self = .serviceQuotaExceededException(value) @@ -262,6 +333,7 @@ extension BedrockAgentRuntime { case dependencyFailedException = "dependencyFailedException" case internalServerException = "internalServerException" case resourceNotFoundException = "resourceNotFoundException" + case returnControl = "returnControl" case serviceQuotaExceededException = "serviceQuotaExceededException" case throttlingException = "throttlingException" case trace = "trace" @@ -433,6 +505,8 @@ extension BedrockAgentRuntime { public let actionGroupName: String? /// The path to the API to call, based off the action group. public let apiPath: String? + /// The function in the action group to call. + public let function: String? /// The parameters in the Lambda input event. public let parameters: [Parameter]? /// The parameters in the request body for the Lambda input event. @@ -440,9 +514,10 @@ extension BedrockAgentRuntime { /// The API method being used, based off the action group. public let verb: String? - public init(actionGroupName: String? = nil, apiPath: String? = nil, parameters: [Parameter]? = nil, requestBody: RequestBody? = nil, verb: String? = nil) { + public init(actionGroupName: String? = nil, apiPath: String? = nil, function: String? = nil, parameters: [Parameter]? = nil, requestBody: RequestBody? = nil, verb: String? = nil) { self.actionGroupName = actionGroupName self.apiPath = apiPath + self.function = function self.parameters = parameters self.requestBody = requestBody self.verb = verb @@ -451,6 +526,7 @@ extension BedrockAgentRuntime { private enum CodingKeys: String, CodingKey { case actionGroupName = "actionGroupName" case apiPath = "apiPath" + case function = "function" case parameters = "parameters" case requestBody = "requestBody" case verb = "verb" @@ -470,6 +546,102 @@ extension BedrockAgentRuntime { } } + public struct ApiInvocationInput: AWSDecodableShape { + /// The action group that the API operation belongs to. + public let actionGroup: String + /// The path to the API operation. + public let apiPath: String? + /// The HTTP method of the API operation. + public let httpMethod: String? + /// The parameters to provide for the API request, as the agent elicited from the user. + public let parameters: [ApiParameter]? + /// The request body to provide for the API request, as the agent elicited from the user. + public let requestBody: ApiRequestBody? + + public init(actionGroup: String, apiPath: String? = nil, httpMethod: String? = nil, parameters: [ApiParameter]? = nil, requestBody: ApiRequestBody? = nil) { + self.actionGroup = actionGroup + self.apiPath = apiPath + self.httpMethod = httpMethod + self.parameters = parameters + self.requestBody = requestBody + } + + private enum CodingKeys: String, CodingKey { + case actionGroup = "actionGroup" + case apiPath = "apiPath" + case httpMethod = "httpMethod" + case parameters = "parameters" + case requestBody = "requestBody" + } + } + + public struct ApiParameter: AWSDecodableShape { + /// The name of the parameter. + public let name: String? + /// The data type for the parameter. + public let type: String? + /// The value of the parameter. + public let value: String? + + public init(name: String? = nil, type: String? = nil, value: String? = nil) { + self.name = name + self.type = type + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case type = "type" + case value = "value" + } + } + + public struct ApiRequestBody: AWSDecodableShape { + /// The content of the request body. The key of the object in this field is a media type defining the format of the request body. + public let content: [String: PropertyParameters]? + + public init(content: [String: PropertyParameters]? = nil) { + self.content = content + } + + private enum CodingKeys: String, CodingKey { + case content = "content" + } + } + + public struct ApiResult: AWSEncodableShape { + /// The action group that the API operation belongs to. + public let actionGroup: String + /// The path to the API operation. + public let apiPath: String? + /// The HTTP method for the API operation. + public let httpMethod: String? + /// http status code from API execution response (for example: 200, 400, 500). + public let httpStatusCode: Int? + /// The response body from the API operation. The key of the object is the content type. The response may be returned directly or from the Lambda function. + public let responseBody: [String: ContentBody]? + /// Controls the final response state returned to end user when API/Function execution failed. When this state is FAILURE, the request would fail with dependency failure exception. When this state is REPROMPT, the API/function response will be sent to model for re-prompt + public let responseState: ResponseState? + + public init(actionGroup: String, apiPath: String? = nil, httpMethod: String? = nil, httpStatusCode: Int? = nil, responseBody: [String: ContentBody]? = nil, responseState: ResponseState? = nil) { + self.actionGroup = actionGroup + self.apiPath = apiPath + self.httpMethod = httpMethod + self.httpStatusCode = httpStatusCode + self.responseBody = responseBody + self.responseState = responseState + } + + private enum CodingKeys: String, CodingKey { + case actionGroup = "actionGroup" + case apiPath = "apiPath" + case httpMethod = "httpMethod" + case httpStatusCode = "httpStatusCode" + case responseBody = "responseBody" + case responseState = "responseState" + } + } + public struct Attribution: AWSDecodableShape { /// A list of citations and related information for a part of an agent response. public let citations: [Citation]? @@ -499,6 +671,35 @@ extension BedrockAgentRuntime { } } + public struct ByteContentDoc: AWSEncodableShape { + /// The MIME type of the document contained in the wrapper object. + public let contentType: String + /// The byte value of the file to upload, encoded as a Base-64 string. + public let data: AWSBase64Data + /// The file name of the document contained in the wrapper object. + public let identifier: String + + public init(contentType: String, data: AWSBase64Data, identifier: String) { + self.contentType = contentType + self.data = data + self.identifier = identifier + } + + public func validate(name: String) throws { + try self.validate(self.contentType, name: "contentType", parent: name, pattern: "[a-z]{1,20}/.{1,20}") + try self.validate(self.data, name: "data", parent: name, max: 10485760) + try self.validate(self.data, name: "data", parent: name, min: 1) + try self.validate(self.identifier, name: "identifier", parent: name, max: 1024) + try self.validate(self.identifier, name: "identifier", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case contentType = "contentType" + case data = "data" + case identifier = "identifier" + } + } + public struct Citation: AWSDecodableShape { /// Contains the generated response and metadata public let generatedResponsePart: GeneratedResponsePart? @@ -528,6 +729,19 @@ extension BedrockAgentRuntime { } } + public struct ContentBody: AWSEncodableShape { + /// The body of the API response. + public let body: String? + + public init(body: String? = nil) { + self.body = body + } + + private enum CodingKeys: String, CodingKey { + case body = "body" + } + } + public struct DependencyFailedException: AWSDecodableShape { public let message: String? /// The name of the dependency that caused the issue, such as Amazon Bedrock, Lambda, or STS. @@ -544,6 +758,82 @@ extension BedrockAgentRuntime { } } + public struct ExternalSource: AWSEncodableShape { + /// The identifier, contentType, and data of the external source wrapper object. + public let byteContent: ByteContentDoc? + /// The S3 location of the external source wrapper object. + public let s3Location: S3ObjectDoc? + /// The source type of the external source wrapper object. + public let sourceType: ExternalSourceType + + public init(byteContent: ByteContentDoc? = nil, s3Location: S3ObjectDoc? = nil, sourceType: ExternalSourceType) { + self.byteContent = byteContent + self.s3Location = s3Location + self.sourceType = sourceType + } + + public func validate(name: String) throws { + try self.byteContent?.validate(name: "\(name).byteContent") + try self.s3Location?.validate(name: "\(name).s3Location") + } + + private enum CodingKeys: String, CodingKey { + case byteContent = "byteContent" + case s3Location = "s3Location" + case sourceType = "sourceType" + } + } + + public struct ExternalSourcesGenerationConfiguration: AWSEncodableShape { + /// Contain the textPromptTemplate string for the external source wrapper object. + public let promptTemplate: PromptTemplate? + + public init(promptTemplate: PromptTemplate? = nil) { + self.promptTemplate = promptTemplate + } + + public func validate(name: String) throws { + try self.promptTemplate?.validate(name: "\(name).promptTemplate") + } + + private enum CodingKeys: String, CodingKey { + case promptTemplate = "promptTemplate" + } + } + + public struct ExternalSourcesRetrieveAndGenerateConfiguration: AWSEncodableShape { + /// The prompt used with the external source wrapper object with the retrieveAndGenerate function. + public let generationConfiguration: ExternalSourcesGenerationConfiguration? + /// The modelArn used with the external source wrapper object in the retrieveAndGenerate function. + public let modelArn: String + /// The document used with the external source wrapper object in the retrieveAndGenerate function. + public let sources: [ExternalSource] + + public init(generationConfiguration: ExternalSourcesGenerationConfiguration? = nil, modelArn: String, sources: [ExternalSource]) { + self.generationConfiguration = generationConfiguration + self.modelArn = modelArn + self.sources = sources + } + + public func validate(name: String) throws { + try self.generationConfiguration?.validate(name: "\(name).generationConfiguration") + try self.validate(self.modelArn, name: "modelArn", parent: name, max: 1011) + try self.validate(self.modelArn, name: "modelArn", parent: name, min: 20) + try self.validate(self.modelArn, name: "modelArn", parent: name, pattern: "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}))$") + try self.sources.forEach { + try $0.validate(name: "\(name).sources[]") + } + try self.validate(self.sources, name: "sources", parent: name, max: 1) + try self.validate(self.sources, name: "sources", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case generationConfiguration = "generationConfiguration" + case modelArn = "modelArn" + case sources = "sources" + } + } + public struct FailureTrace: AWSDecodableShape { /// The reason the interaction failed. public let failureReason: String? @@ -596,6 +886,73 @@ extension BedrockAgentRuntime { } } + public struct FunctionInvocationInput: AWSDecodableShape { + /// The action group that the function belongs to. + public let actionGroup: String + /// The name of the function. + public let function: String? + /// A list of parameters of the function. + public let parameters: [FunctionParameter]? + + public init(actionGroup: String, function: String? = nil, parameters: [FunctionParameter]? = nil) { + self.actionGroup = actionGroup + self.function = function + self.parameters = parameters + } + + private enum CodingKeys: String, CodingKey { + case actionGroup = "actionGroup" + case function = "function" + case parameters = "parameters" + } + } + + public struct FunctionParameter: AWSDecodableShape { + /// The name of the parameter. + public let name: String? + /// The data type of the parameter. + public let type: String? + /// The value of the parameter. + public let value: String? + + public init(name: String? = nil, type: String? = nil, value: String? = nil) { + self.name = name + self.type = type + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case type = "type" + case value = "value" + } + } + + public struct FunctionResult: AWSEncodableShape { + /// The action group that the function belongs to. + public let actionGroup: String + /// The name of the function that was called. + public let function: String? + /// The response from the function call using the parameters. The response may be returned directly or from the Lambda function. + public let responseBody: [String: ContentBody]? + /// Controls the final response state returned to end user when API/Function execution failed. When this state is FAILURE, the request would fail with dependency failure exception. When this state is REPROMPT, the API/function response will be sent to model for re-prompt + public let responseState: ResponseState? + + public init(actionGroup: String, function: String? = nil, responseBody: [String: ContentBody]? = nil, responseState: ResponseState? = nil) { + self.actionGroup = actionGroup + self.function = function + self.responseBody = responseBody + self.responseState = responseState + } + + private enum CodingKeys: String, CodingKey { + case actionGroup = "actionGroup" + case function = "function" + case responseBody = "responseBody" + case responseState = "responseState" + } + } + public struct GeneratedResponsePart: AWSDecodableShape { /// Contains metadata about a textual part of the generated response that is accompanied by a citation. public let textResponsePart: TextResponsePart? @@ -702,13 +1059,13 @@ extension BedrockAgentRuntime { /// Specifies whether to end the session with the agent or not. public let endSession: Bool? /// The prompt text to send the agent. - public let inputText: String + public let inputText: String? /// The unique identifier of the session. Use the same value across requests to continue the same conversation. public let sessionId: String /// Contains parameters that specify various attributes of the session. For more information, see Control session context. public let sessionState: SessionState? - public init(agentAliasId: String, agentId: String, enableTrace: Bool? = nil, endSession: Bool? = nil, inputText: String, sessionId: String, sessionState: SessionState? = nil) { + public init(agentAliasId: String, agentId: String, enableTrace: Bool? = nil, endSession: Bool? = nil, inputText: String? = nil, sessionId: String, sessionState: SessionState? = nil) { self.agentAliasId = agentAliasId self.agentId = agentId self.enableTrace = enableTrace @@ -725,7 +1082,7 @@ extension BedrockAgentRuntime { request.encodePath(self.agentId, key: "agentId") try container.encodeIfPresent(self.enableTrace, forKey: .enableTrace) try container.encodeIfPresent(self.endSession, forKey: .endSession) - try container.encode(self.inputText, forKey: .inputText) + try container.encodeIfPresent(self.inputText, forKey: .inputText) request.encodePath(self.sessionId, key: "sessionId") try container.encodeIfPresent(self.sessionState, forKey: .sessionState) } @@ -739,6 +1096,7 @@ extension BedrockAgentRuntime { try self.validate(self.sessionId, name: "sessionId", parent: name, max: 100) try self.validate(self.sessionId, name: "sessionId", parent: name, min: 2) try self.validate(self.sessionId, name: "sessionId", parent: name, pattern: "^[0-9a-zA-Z._:-]+$") + try self.sessionState?.validate(name: "\(name).sessionState") } private enum CodingKeys: String, CodingKey { @@ -1110,6 +1468,19 @@ extension BedrockAgentRuntime { } } + public struct PropertyParameters: AWSDecodableShape { + /// A list of parameters in the request body. + public let properties: [Parameter]? + + public init(properties: [Parameter]? = nil) { + self.properties = properties + } + + private enum CodingKeys: String, CodingKey { + case properties = "properties" + } + } + public struct Rationale: AWSDecodableShape { /// The reasoning or thought process of the agent, based on the input. public let text: String? @@ -1213,21 +1584,26 @@ extension BedrockAgentRuntime { } public struct RetrieveAndGenerateConfiguration: AWSEncodableShape { + /// The configuration used with the external source wrapper object in the retrieveAndGenerate function. + public let externalSourcesConfiguration: ExternalSourcesRetrieveAndGenerateConfiguration? /// Contains details about the resource being queried. public let knowledgeBaseConfiguration: KnowledgeBaseRetrieveAndGenerateConfiguration? /// The type of resource that is queried by the request. public let type: RetrieveAndGenerateType - public init(knowledgeBaseConfiguration: KnowledgeBaseRetrieveAndGenerateConfiguration? = nil, type: RetrieveAndGenerateType) { + public init(externalSourcesConfiguration: ExternalSourcesRetrieveAndGenerateConfiguration? = nil, knowledgeBaseConfiguration: KnowledgeBaseRetrieveAndGenerateConfiguration? = nil, type: RetrieveAndGenerateType) { + self.externalSourcesConfiguration = externalSourcesConfiguration self.knowledgeBaseConfiguration = knowledgeBaseConfiguration self.type = type } public func validate(name: String) throws { + try self.externalSourcesConfiguration?.validate(name: "\(name).externalSourcesConfiguration") try self.knowledgeBaseConfiguration?.validate(name: "\(name).knowledgeBaseConfiguration") } private enum CodingKeys: String, CodingKey { + case externalSourcesConfiguration = "externalSourcesConfiguration" case knowledgeBaseConfiguration = "knowledgeBaseConfiguration" case type = "type" } @@ -1412,6 +1788,42 @@ extension BedrockAgentRuntime { } } + public struct ReturnControlPayload: AWSDecodableShape { + /// The identifier of the action group invocation. + public let invocationId: String? + /// A list of objects that contain information about the parameters and inputs that need to be sent into the API operation or function, based on what the agent determines from its session with the user. + public let invocationInputs: [InvocationInputMember]? + + public init(invocationId: String? = nil, invocationInputs: [InvocationInputMember]? = nil) { + self.invocationId = invocationId + self.invocationInputs = invocationInputs + } + + private enum CodingKeys: String, CodingKey { + case invocationId = "invocationId" + case invocationInputs = "invocationInputs" + } + } + + public struct S3ObjectDoc: AWSEncodableShape { + /// The file location of the S3 wrapper object. + public let uri: String + + public init(uri: String) { + self.uri = uri + } + + public func validate(name: String) throws { + try self.validate(self.uri, name: "uri", parent: name, max: 1024) + try self.validate(self.uri, name: "uri", parent: name, min: 1) + try self.validate(self.uri, name: "uri", parent: name, pattern: "^s3://[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]/.{1,1024}$") + } + + private enum CodingKeys: String, CodingKey { + case uri = "uri" + } + } + public struct ServiceQuotaExceededException: AWSDecodableShape { public let message: String? @@ -1425,18 +1837,31 @@ extension BedrockAgentRuntime { } public struct SessionState: AWSEncodableShape { + /// The identifier of the invocation. + public let invocationId: String? /// Contains attributes that persist across a prompt and the values of those attributes. These attributes replace the $prompt_session_attributes$ placeholder variable in the orchestration prompt template. For more information, see Prompt template placeholder variables. public let promptSessionAttributes: [String: String]? + /// Contains information about the results from the action group invocation. + public let returnControlInvocationResults: [InvocationResultMember]? /// Contains attributes that persist across a session and the values of those attributes. public let sessionAttributes: [String: String]? - public init(promptSessionAttributes: [String: String]? = nil, sessionAttributes: [String: String]? = nil) { + public init(invocationId: String? = nil, promptSessionAttributes: [String: String]? = nil, returnControlInvocationResults: [InvocationResultMember]? = nil, sessionAttributes: [String: String]? = nil) { + self.invocationId = invocationId self.promptSessionAttributes = promptSessionAttributes + self.returnControlInvocationResults = returnControlInvocationResults self.sessionAttributes = sessionAttributes } + public func validate(name: String) throws { + try self.validate(self.returnControlInvocationResults, name: "returnControlInvocationResults", parent: name, max: 5) + try self.validate(self.returnControlInvocationResults, name: "returnControlInvocationResults", parent: name, min: 1) + } + private enum CodingKeys: String, CodingKey { + case invocationId = "invocationId" case promptSessionAttributes = "promptSessionAttributes" + case returnControlInvocationResults = "returnControlInvocationResults" case sessionAttributes = "sessionAttributes" } } @@ -1492,14 +1917,17 @@ extension BedrockAgentRuntime { public let agentAliasId: String? /// The unique identifier of the agent. public let agentId: String? + /// The version of the agent. + public let agentVersion: String? /// The unique identifier of the session with the agent. public let sessionId: String? /// Contains one part of the agent's reasoning process and results from calling API actions and querying knowledge bases. You can use the trace to understand how the agent arrived at the response it provided the customer. For more information, see Trace enablement. public let trace: Trace? - public init(agentAliasId: String? = nil, agentId: String? = nil, sessionId: String? = nil, trace: Trace? = nil) { + public init(agentAliasId: String? = nil, agentId: String? = nil, agentVersion: String? = nil, sessionId: String? = nil, trace: Trace? = nil) { self.agentAliasId = agentAliasId self.agentId = agentId + self.agentVersion = agentVersion self.sessionId = sessionId self.trace = trace } @@ -1507,6 +1935,7 @@ extension BedrockAgentRuntime { private enum CodingKeys: String, CodingKey { case agentAliasId = "agentAliasId" case agentId = "agentId" + case agentVersion = "agentVersion" case sessionId = "sessionId" case trace = "trace" } @@ -1569,7 +1998,7 @@ public struct BedrockAgentRuntimeErrorType: AWSErrorType { public static var dependencyFailedException: Self { .init(.dependencyFailedException) } /// An internal server error occurred. Retry your request. public static var internalServerException: Self { .init(.internalServerException) } - /// The specified resource ARN was not found. Check the ARN and try your request again. + /// The specified resource Amazon Resource Name (ARN) was not found. Check the Amazon Resource Name (ARN) and try your request again. public static var resourceNotFoundException: Self { .init(.resourceNotFoundException) } /// The number of requests exceeds the service quota. Resubmit your request later. public static var serviceQuotaExceededException: Self { .init(.serviceQuotaExceededException) } diff --git a/Sources/Soto/Services/BedrockRuntime/BedrockRuntime_api.swift b/Sources/Soto/Services/BedrockRuntime/BedrockRuntime_api.swift index 8f00ce0e79..761aab1eca 100644 --- a/Sources/Soto/Services/BedrockRuntime/BedrockRuntime_api.swift +++ b/Sources/Soto/Services/BedrockRuntime/BedrockRuntime_api.swift @@ -19,7 +19,7 @@ /// Service object for interacting with AWS BedrockRuntime service. /// -/// Describes the API operations for running inference using Bedrock models. +/// Describes the API operations for running inference using Amazon Bedrock models. public struct BedrockRuntime: AWSService { // MARK: Member variables @@ -74,7 +74,7 @@ public struct BedrockRuntime: AWSService { // MARK: API Calls - /// Invokes the specified Bedrock model to run inference using the input provided in the request body. You use InvokeModel to run inference for text models, image models, and embedding models. For more information, see Run inference in the Bedrock User Guide. For example requests, see Examples (after the Errors section). + /// Invokes the specified Amazon Bedrock model to run inference using the prompt and inference parameters provided in the request body. You use model inference to generate text, images, and embeddings. For example code, see Invoke model code examples in the Amazon Bedrock User Guide. This operation requires permission for the bedrock:InvokeModel action. @Sendable public func invokeModel(_ input: InvokeModelRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> InvokeModelResponse { return try await self.client.execute( @@ -87,7 +87,7 @@ public struct BedrockRuntime: AWSService { ) } - /// Invoke the specified Bedrock model to run inference using the input provided. Return the response in a stream. For more information, see Run inference in the Bedrock User Guide. For an example request and response, see Examples (after the Errors section). + /// Invoke the specified Amazon Bedrock model to run inference using the prompt and inference parameters provided in the request body. The response is returned in a stream. To see if a model supports streaming, call GetFoundationModel and check the responseStreamingSupported field in the response. The CLI doesn't support InvokeModelWithResponseStream. For example code, see Invoke model with streaming code example in the Amazon Bedrock User Guide. This operation requires permissions to perform the bedrock:InvokeModelWithResponseStream action. @Sendable public func invokeModelWithResponseStream(_ input: InvokeModelWithResponseStreamRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> InvokeModelWithResponseStreamResponse { return try await self.client.execute( diff --git a/Sources/Soto/Services/BedrockRuntime/BedrockRuntime_shapes.swift b/Sources/Soto/Services/BedrockRuntime/BedrockRuntime_shapes.swift index 5bd698b422..0623aa4ba3 100644 --- a/Sources/Soto/Services/BedrockRuntime/BedrockRuntime_shapes.swift +++ b/Sources/Soto/Services/BedrockRuntime/BedrockRuntime_shapes.swift @@ -26,13 +26,24 @@ import Foundation extension BedrockRuntime { // MARK: Enums + public enum Trace: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + public enum ResponseStream: AWSDecodableShape, Sendable { /// Content included in the response. case chunk(PayloadPart) + /// An internal server error occurred. Retry your request. case internalServerException(InternalServerException) + /// An error occurred while streaming the response. Retry your request. case modelStreamErrorException(ModelStreamErrorException) + /// The request took too long to process. Processing time exceeded the model timeout length. case modelTimeoutException(ModelTimeoutException) + /// The number or frequency of requests exceeds the limit. Resubmit your request later. case throttlingException(ThrottlingException) + /// Input validation failed. Check your request parameters and retry the request. case validationException(ValidationException) public init(from decoder: Decoder) throws { @@ -93,18 +104,27 @@ extension BedrockRuntime { public struct InvokeModelRequest: AWSEncodableShape { /// The desired MIME type of the inference body in the response. The default value is application/json. public let accept: String? - /// Input data in the format specified in the content-type request header. To see the format and content of this field for different models, refer to Inference parameters. + /// The prompt and inference parameters in the format specified in the contentType in the header. To see the format and content of the request and response bodies for different models, refer to Inference parameters. For more information, see Run inference in the Bedrock User Guide. public let body: AWSHTTPBody /// The MIME type of the input data in the request. The default value is application/json. public let contentType: String? - /// Identifier of the model. + /// The unique identifier of the guardrail that you want to use. If you don't provide a value, no guardrail is applied to the invocation. An error will be thrown in the following situations. You don't provide a guardrail identifier but you specify the amazon-bedrock-guardrailConfig field in the request body. You enable the guardrail but the contentType isn't application/json. You provide a guardrail identifier, but guardrailVersion isn't specified. + public let guardrailIdentifier: String? + /// The version number for the guardrail. The value can also be DRAFT. + public let guardrailVersion: String? + /// The unique identifier of the model to invoke to run inference. The modelId to provide depends on the type of model that you use: If you use a base model, specify the model ID or its ARN. For a list of model IDs for base models, see Amazon Bedrock base model IDs (on-demand throughput) in the Amazon Bedrock User Guide. If you use a provisioned model, specify the ARN of the Provisioned Throughput. For more information, see Run inference using a Provisioned Throughput in the Amazon Bedrock User Guide. If you use a custom model, first purchase Provisioned Throughput for it. Then specify the ARN of the resulting provisioned model. For more information, see Use a custom model in Amazon Bedrock in the Amazon Bedrock User Guide. public let modelId: String + /// Specifies whether to enable or disable the Bedrock trace. If enabled, you can see the full Bedrock trace. + public let trace: Trace? - public init(accept: String? = nil, body: AWSHTTPBody, contentType: String? = nil, modelId: String) { + public init(accept: String? = nil, body: AWSHTTPBody, contentType: String? = nil, guardrailIdentifier: String? = nil, guardrailVersion: String? = nil, modelId: String, trace: Trace? = nil) { self.accept = accept self.body = body self.contentType = contentType + self.guardrailIdentifier = guardrailIdentifier + self.guardrailVersion = guardrailVersion self.modelId = modelId + self.trace = trace } public func encode(to encoder: Encoder) throws { @@ -113,11 +133,17 @@ extension BedrockRuntime { request.encodeHeader(self.accept, key: "Accept") try container.encode(self.body) request.encodeHeader(self.contentType, key: "Content-Type") + request.encodeHeader(self.guardrailIdentifier, key: "X-Amzn-Bedrock-GuardrailIdentifier") + request.encodeHeader(self.guardrailVersion, key: "X-Amzn-Bedrock-GuardrailVersion") request.encodePath(self.modelId, key: "modelId") + request.encodeHeader(self.trace, key: "X-Amzn-Bedrock-Trace") } public func validate(name: String) throws { try self.validate(self.body, name: "body", parent: name, max: 25000000) + try self.validate(self.guardrailIdentifier, name: "guardrailIdentifier", parent: name, max: 2048) + try self.validate(self.guardrailIdentifier, name: "guardrailIdentifier", parent: name, pattern: "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$") + try self.validate(self.guardrailVersion, name: "guardrailVersion", parent: name, pattern: "^(([1-9][0-9]{0,7})|(DRAFT))$") try self.validate(self.modelId, name: "modelId", parent: name, max: 2048) try self.validate(self.modelId, name: "modelId", parent: name, min: 1) try self.validate(self.modelId, name: "modelId", parent: name, pattern: "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$") @@ -128,7 +154,7 @@ extension BedrockRuntime { public struct InvokeModelResponse: AWSDecodableShape { public static let _options: AWSShapeOptions = [.rawPayload] - /// Inference response from the model in the format specified in the content-type header field. To see the format and content of this field for different models, refer to Inference parameters. + /// Inference response from the model in the format specified in the contentType header. To see the format and content of the request and response bodies for different models, refer to Inference parameters. public let body: AWSHTTPBody /// The MIME type of the inference result. public let contentType: String @@ -151,18 +177,27 @@ extension BedrockRuntime { public struct InvokeModelWithResponseStreamRequest: AWSEncodableShape { /// The desired MIME type of the inference body in the response. The default value is application/json. public let accept: String? - /// Inference input in the format specified by the content-type. To see the format and content of this field for different models, refer to Inference parameters. + /// The prompt and inference parameters in the format specified in the contentType in the header. To see the format and content of the request and response bodies for different models, refer to Inference parameters. For more information, see Run inference in the Bedrock User Guide. public let body: AWSHTTPBody /// The MIME type of the input data in the request. The default value is application/json. public let contentType: String? - /// Id of the model to invoke using the streaming request. + /// The unique identifier of the guardrail that you want to use. If you don't provide a value, no guardrail is applied to the invocation. An error is thrown in the following situations. You don't provide a guardrail identifier but you specify the amazon-bedrock-guardrailConfig field in the request body. You enable the guardrail but the contentType isn't application/json. You provide a guardrail identifier, but guardrailVersion isn't specified. + public let guardrailIdentifier: String? + /// The version number for the guardrail. The value can also be DRAFT. + public let guardrailVersion: String? + /// The unique identifier of the model to invoke to run inference. The modelId to provide depends on the type of model that you use: If you use a base model, specify the model ID or its ARN. For a list of model IDs for base models, see Amazon Bedrock base model IDs (on-demand throughput) in the Amazon Bedrock User Guide. If you use a provisioned model, specify the ARN of the Provisioned Throughput. For more information, see Run inference using a Provisioned Throughput in the Amazon Bedrock User Guide. If you use a custom model, first purchase Provisioned Throughput for it. Then specify the ARN of the resulting provisioned model. For more information, see Use a custom model in Amazon Bedrock in the Amazon Bedrock User Guide. public let modelId: String + /// Specifies whether to enable or disable the Bedrock trace. If enabled, you can see the full Bedrock trace. + public let trace: Trace? - public init(accept: String? = nil, body: AWSHTTPBody, contentType: String? = nil, modelId: String) { + public init(accept: String? = nil, body: AWSHTTPBody, contentType: String? = nil, guardrailIdentifier: String? = nil, guardrailVersion: String? = nil, modelId: String, trace: Trace? = nil) { self.accept = accept self.body = body self.contentType = contentType + self.guardrailIdentifier = guardrailIdentifier + self.guardrailVersion = guardrailVersion self.modelId = modelId + self.trace = trace } public func encode(to encoder: Encoder) throws { @@ -171,11 +206,17 @@ extension BedrockRuntime { request.encodeHeader(self.accept, key: "X-Amzn-Bedrock-Accept") try container.encode(self.body) request.encodeHeader(self.contentType, key: "Content-Type") + request.encodeHeader(self.guardrailIdentifier, key: "X-Amzn-Bedrock-GuardrailIdentifier") + request.encodeHeader(self.guardrailVersion, key: "X-Amzn-Bedrock-GuardrailVersion") request.encodePath(self.modelId, key: "modelId") + request.encodeHeader(self.trace, key: "X-Amzn-Bedrock-Trace") } public func validate(name: String) throws { try self.validate(self.body, name: "body", parent: name, max: 25000000) + try self.validate(self.guardrailIdentifier, name: "guardrailIdentifier", parent: name, max: 2048) + try self.validate(self.guardrailIdentifier, name: "guardrailIdentifier", parent: name, pattern: "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$") + try self.validate(self.guardrailVersion, name: "guardrailVersion", parent: name, pattern: "^(([1-9][0-9]{0,7})|(DRAFT))$") try self.validate(self.modelId, name: "modelId", parent: name, max: 2048) try self.validate(self.modelId, name: "modelId", parent: name, min: 1) try self.validate(self.modelId, name: "modelId", parent: name, pattern: "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$") @@ -186,7 +227,7 @@ extension BedrockRuntime { public struct InvokeModelWithResponseStreamResponse: AWSDecodableShape { public static let _options: AWSShapeOptions = [.rawPayload] - /// Inference response from the model in the format specified by Content-Type. To see the format and content of this field for different models, refer to Inference parameters. + /// Inference response from the model in the format specified by the contentType header. To see the format and content of this field for different models, refer to Inference parameters. public let body: AWSEventStream /// The MIME type of the inference result. public let contentType: String @@ -319,7 +360,7 @@ public struct BedrockRuntimeErrorType: AWSErrorType { public static var modelErrorException: Self { .init(.modelErrorException) } /// The model specified in the request is not ready to serve inference requests. public static var modelNotReadyException: Self { .init(.modelNotReadyException) } - /// An error occurred while streaming the response. + /// An error occurred while streaming the response. Retry your request. public static var modelStreamErrorException: Self { .init(.modelStreamErrorException) } /// The request took too long to process. Processing time exceeded the model timeout length. public static var modelTimeoutException: Self { .init(.modelTimeoutException) } diff --git a/Sources/Soto/Services/ChimeSDKVoice/ChimeSDKVoice_api.swift b/Sources/Soto/Services/ChimeSDKVoice/ChimeSDKVoice_api.swift index 3942584002..6c4ec157ad 100644 --- a/Sources/Soto/Services/ChimeSDKVoice/ChimeSDKVoice_api.swift +++ b/Sources/Soto/Services/ChimeSDKVoice/ChimeSDKVoice_api.swift @@ -122,7 +122,7 @@ public struct ChimeSDKVoice: AWSService { ) } - /// Updates one or more phone numbers. + /// Updates phone number product types, calling names, or phone number names. You can update one attribute at a time for each UpdatePhoneNumberRequestItem. For example, you can update the product type, the calling name, or phone name. You cannot have a duplicate phoneNumberId in a request. @Sendable public func batchUpdatePhoneNumber(_ input: BatchUpdatePhoneNumberRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> BatchUpdatePhoneNumberResponse { return try await self.client.execute( @@ -536,7 +536,8 @@ public struct ChimeSDKVoice: AWSService { ) } - /// Gets the Alexa Skill configuration for the SIP media application. + /// Gets the Alexa Skill configuration for the SIP media application. Due to changes made by the Amazon Alexa service, this API is no longer available for use. For more information, refer to the Alexa Smart Properties page. + @available(*, deprecated, message: "Due to changes made by the Amazon Alexa service, this API is no longer available for use. For more information, refer to the Alexa Smart Properties page(https://developer.amazon.com/en-US/alexa/alexasmartproperties).") @Sendable public func getSipMediaApplicationAlexaSkillConfiguration(_ input: GetSipMediaApplicationAlexaSkillConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetSipMediaApplicationAlexaSkillConfigurationResponse { return try await self.client.execute( @@ -912,7 +913,8 @@ public struct ChimeSDKVoice: AWSService { ) } - /// Updates the Alexa Skill configuration for the SIP media application. + /// Updates the Alexa Skill configuration for the SIP media application. Due to changes made by the Amazon Alexa service, this API is no longer available for use. For more information, refer to the Alexa Smart Properties page. + @available(*, deprecated, message: "Due to changes made by the Amazon Alexa service, this API is no longer available for use. For more information, refer to the Alexa Smart Properties page(https://developer.amazon.com/en-US/alexa/alexasmartproperties).") @Sendable public func putSipMediaApplicationAlexaSkillConfiguration(_ input: PutSipMediaApplicationAlexaSkillConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> PutSipMediaApplicationAlexaSkillConfigurationResponse { return try await self.client.execute( @@ -1146,7 +1148,7 @@ public struct ChimeSDKVoice: AWSService { ) } - /// Updates phone number details, such as product type or calling name, for the specified phone number ID. You can update one phone number detail at a time. For example, you can update either the product type or the calling name in one action. For numbers outside the U.S., you must use the Amazon Chime SDK SIP Media Application Dial-In product type. Updates to outbound calling names can take 72 hours to complete. Pending updates to outbound calling names must be complete before you can request another update. + /// Updates phone number details, such as product type, calling name, or phone number name for the specified phone number ID. You can update one phone number detail at a time. For example, you can update either the product type, calling name, or phone number name in one action. For numbers outside the U.S., you must use the Amazon Chime SDK SIP Media Application Dial-In product type. Updates to outbound calling names can take 72 hours to complete. Pending updates to outbound calling names must be complete before you can request another update. @Sendable public func updatePhoneNumber(_ input: UpdatePhoneNumberRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdatePhoneNumberResponse { return try await self.client.execute( diff --git a/Sources/Soto/Services/ChimeSDKVoice/ChimeSDKVoice_shapes.swift b/Sources/Soto/Services/ChimeSDKVoice/ChimeSDKVoice_shapes.swift index 54ba051980..16dd1bbba0 100644 --- a/Sources/Soto/Services/ChimeSDKVoice/ChimeSDKVoice_shapes.swift +++ b/Sources/Soto/Services/ChimeSDKVoice/ChimeSDKVoice_shapes.swift @@ -4255,7 +4255,7 @@ extension ChimeSDKVoice { public struct UpdatePhoneNumberRequest: AWSEncodableShape { /// The outbound calling name associated with the phone number. public let callingName: String? - /// Specifies the name assigned to one or more phone numbers. + /// Specifies the updated name assigned to one or more phone numbers. public let name: String? /// The phone number ID. public let phoneNumberId: String diff --git a/Sources/Soto/Services/CleanRooms/CleanRooms_shapes.swift b/Sources/Soto/Services/CleanRooms/CleanRooms_shapes.swift index f8956b7133..710878f489 100644 --- a/Sources/Soto/Services/CleanRooms/CleanRooms_shapes.swift +++ b/Sources/Soto/Services/CleanRooms/CleanRooms_shapes.swift @@ -57,6 +57,18 @@ extension CleanRooms { public var description: String { return self.rawValue } } + public enum AnalysisTemplateValidationStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case invalid = "INVALID" + case unableToValidate = "UNABLE_TO_VALIDATE" + case valid = "VALID" + public var description: String { return self.rawValue } + } + + public enum AnalysisTemplateValidationType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case differentialPrivacy = "DIFFERENTIAL_PRIVACY" + public var description: String { return self.rawValue } + } + public enum CollaborationQueryLogStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case disabled = "DISABLED" case enabled = "ENABLED" @@ -643,8 +655,10 @@ extension CleanRooms { public let source: AnalysisSource /// The time that the analysis template was last updated. public let updateTime: Date + /// Information about the validations performed on the analysis template. + public let validations: [AnalysisTemplateValidationStatusDetail]? - public init(analysisParameters: [AnalysisParameter]? = nil, arn: String, collaborationArn: String, collaborationId: String, createTime: Date, description: String? = nil, format: AnalysisFormat, id: String, membershipArn: String, membershipId: String, name: String, schema: AnalysisSchema, source: AnalysisSource, updateTime: Date) { + public init(analysisParameters: [AnalysisParameter]? = nil, arn: String, collaborationArn: String, collaborationId: String, createTime: Date, description: String? = nil, format: AnalysisFormat, id: String, membershipArn: String, membershipId: String, name: String, schema: AnalysisSchema, source: AnalysisSource, updateTime: Date, validations: [AnalysisTemplateValidationStatusDetail]? = nil) { self.analysisParameters = analysisParameters self.arn = arn self.collaborationArn = collaborationArn @@ -659,6 +673,7 @@ extension CleanRooms { self.schema = schema self.source = source self.updateTime = updateTime + self.validations = validations } private enum CodingKeys: String, CodingKey { @@ -676,6 +691,7 @@ extension CleanRooms { case schema = "schema" case source = "source" case updateTime = "updateTime" + case validations = "validations" } } @@ -728,6 +744,40 @@ extension CleanRooms { } } + public struct AnalysisTemplateValidationStatusDetail: AWSDecodableShape { + /// The reasons for the validation results. + public let reasons: [AnalysisTemplateValidationStatusReason]? + /// The status of the validation. + public let status: AnalysisTemplateValidationStatus + /// The type of validation that was performed. + public let type: AnalysisTemplateValidationType + + public init(reasons: [AnalysisTemplateValidationStatusReason]? = nil, status: AnalysisTemplateValidationStatus, type: AnalysisTemplateValidationType) { + self.reasons = reasons + self.status = status + self.type = type + } + + private enum CodingKeys: String, CodingKey { + case reasons = "reasons" + case status = "status" + case type = "type" + } + } + + public struct AnalysisTemplateValidationStatusReason: AWSDecodableShape { + /// The validation message. + public let message: String + + public init(message: String) { + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case message = "message" + } + } + public struct BatchGetCollaborationAnalysisTemplateError: AWSDecodableShape { /// The Amazon Resource Name (ARN) of the analysis template. public let arn: String @@ -1038,8 +1088,10 @@ extension CleanRooms { public let source: AnalysisSource /// The time that the analysis template in the collaboration was last updated. public let updateTime: Date + /// The validations that were performed. + public let validations: [AnalysisTemplateValidationStatusDetail]? - public init(analysisParameters: [AnalysisParameter]? = nil, arn: String, collaborationArn: String, collaborationId: String, createTime: Date, creatorAccountId: String, description: String? = nil, format: AnalysisFormat, id: String, name: String, schema: AnalysisSchema, source: AnalysisSource, updateTime: Date) { + public init(analysisParameters: [AnalysisParameter]? = nil, arn: String, collaborationArn: String, collaborationId: String, createTime: Date, creatorAccountId: String, description: String? = nil, format: AnalysisFormat, id: String, name: String, schema: AnalysisSchema, source: AnalysisSource, updateTime: Date, validations: [AnalysisTemplateValidationStatusDetail]? = nil) { self.analysisParameters = analysisParameters self.arn = arn self.collaborationArn = collaborationArn @@ -1053,6 +1105,7 @@ extension CleanRooms { self.schema = schema self.source = source self.updateTime = updateTime + self.validations = validations } private enum CodingKeys: String, CodingKey { @@ -1069,6 +1122,7 @@ extension CleanRooms { case schema = "schema" case source = "source" case updateTime = "updateTime" + case validations = "validations" } } diff --git a/Sources/Soto/Services/CloudFormation/CloudFormation_shapes.swift b/Sources/Soto/Services/CloudFormation/CloudFormation_shapes.swift index 1d284d6459..c36ab8349d 100644 --- a/Sources/Soto/Services/CloudFormation/CloudFormation_shapes.swift +++ b/Sources/Soto/Services/CloudFormation/CloudFormation_shapes.swift @@ -41,6 +41,13 @@ extension CloudFormation { public var description: String { return self.rawValue } } + public enum AttributeChangeType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case add = "Add" + case modify = "Modify" + case remove = "Remove" + public var description: String { return self.rawValue } + } + public enum CallAs: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case _self = "SELF" case delegatedAdmin = "DELEGATED_ADMIN" @@ -794,7 +801,7 @@ extension CloudFormation { public let hookInvocationCount: Int? /// A ResourceChange structure that describes the resource and action that CloudFormation will perform. public let resourceChange: ResourceChange? - /// The type of entity that CloudFormation changes. Currently, the only entity type is Resource. + /// The type of entity that CloudFormation changes. Resource This change is for a resource. public let type: ChangeType? public init(hookInvocationCount: Int? = nil, resourceChange: ResourceChange? = nil, type: ChangeType? = nil) { @@ -1878,13 +1885,16 @@ extension CloudFormation { public struct DescribeChangeSetInput: AWSEncodableShape { /// The name or Amazon Resource Name (ARN) of the change set that you want to describe. public let changeSetName: String? + /// If true, the returned changes include detailed changes in the property values. + public let includePropertyValues: Bool? /// A string (provided by the DescribeChangeSet response output) that identifies the next page of information that you want to retrieve. public let nextToken: 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? - public init(changeSetName: String? = nil, nextToken: String? = nil, stackName: String? = nil) { + public init(changeSetName: String? = nil, includePropertyValues: Bool? = nil, nextToken: String? = nil, stackName: String? = nil) { self.changeSetName = changeSetName + self.includePropertyValues = includePropertyValues self.nextToken = nextToken self.stackName = stackName } @@ -1901,6 +1911,7 @@ extension CloudFormation { private enum CodingKeys: String, CodingKey { case changeSetName = "ChangeSetName" + case includePropertyValues = "IncludePropertyValues" case nextToken = "NextToken" case stackName = "StackName" } @@ -4681,6 +4692,10 @@ extension CloudFormation { public struct ResourceChange: AWSDecodableShape { /// The action that CloudFormation takes on the resource, such as Add (adds a new resource), Modify (changes a resource), Remove (deletes a resource), Import (imports a resource), or Dynamic (exact action for the resource can't be determined). public let action: ChangeAction? + /// An encoded JSON string containing the context of the resource after the change is executed. + public let afterContext: String? + /// An encoded JSON string containing the context of the resource before the change is executed. + public let beforeContext: String? /// The change set ID of the nested change set. public let changeSetId: String? /// For the Modify action, a list of ResourceChangeDetail structures that describes the changes that CloudFormation will make to the resource. @@ -4702,8 +4717,10 @@ extension CloudFormation { @OptionalCustomCoding> public var scope: [ResourceAttribute]? - public init(action: ChangeAction? = nil, changeSetId: String? = nil, details: [ResourceChangeDetail]? = nil, logicalResourceId: String? = nil, moduleInfo: ModuleInfo? = nil, physicalResourceId: String? = nil, policyAction: PolicyAction? = nil, replacement: Replacement? = nil, resourceType: String? = nil, scope: [ResourceAttribute]? = nil) { + public init(action: ChangeAction? = nil, afterContext: String? = nil, beforeContext: String? = nil, changeSetId: String? = nil, details: [ResourceChangeDetail]? = nil, logicalResourceId: String? = nil, moduleInfo: ModuleInfo? = nil, physicalResourceId: String? = nil, policyAction: PolicyAction? = nil, replacement: Replacement? = nil, resourceType: String? = nil, scope: [ResourceAttribute]? = nil) { self.action = action + self.afterContext = afterContext + self.beforeContext = beforeContext self.changeSetId = changeSetId self.details = details self.logicalResourceId = logicalResourceId @@ -4717,6 +4734,8 @@ extension CloudFormation { private enum CodingKeys: String, CodingKey { case action = "Action" + case afterContext = "AfterContext" + case beforeContext = "BeforeContext" case changeSetId = "ChangeSetId" case details = "Details" case logicalResourceId = "LogicalResourceId" @@ -4881,22 +4900,38 @@ extension CloudFormation { } public struct ResourceTargetDefinition: AWSDecodableShape { + /// The value of the property after the change is executed. Large values can be truncated. + public let afterValue: 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? + /// The type of change to be made to the property if the change is executed. Add The item will be added. Remove The item will be removed. Modify The item will be modified. + public let attributeChangeType: AttributeChangeType? + /// The value of the property before the change is executed. Large values can be truncated. + public let beforeValue: String? /// If the Attribute value is Properties, the name of the property. For all other attributes, the value is null. public let name: String? + /// The property path of the property. + public let path: String? /// 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 CloudFormation User Guide. public let requiresRecreation: RequiresRecreation? - public init(attribute: ResourceAttribute? = nil, name: String? = nil, requiresRecreation: RequiresRecreation? = nil) { + public init(afterValue: String? = nil, attribute: ResourceAttribute? = nil, attributeChangeType: AttributeChangeType? = nil, beforeValue: String? = nil, name: String? = nil, path: String? = nil, requiresRecreation: RequiresRecreation? = nil) { + self.afterValue = afterValue self.attribute = attribute + self.attributeChangeType = attributeChangeType + self.beforeValue = beforeValue self.name = name + self.path = path self.requiresRecreation = requiresRecreation } private enum CodingKeys: String, CodingKey { + case afterValue = "AfterValue" case attribute = "Attribute" + case attributeChangeType = "AttributeChangeType" + case beforeValue = "BeforeValue" case name = "Name" + case path = "Path" case requiresRecreation = "RequiresRecreation" } } diff --git a/Sources/Soto/Services/CloudFront/CloudFront_api.swift b/Sources/Soto/Services/CloudFront/CloudFront_api.swift index dcfd667678..f0ea1ebfc0 100644 --- a/Sources/Soto/Services/CloudFront/CloudFront_api.swift +++ b/Sources/Soto/Services/CloudFront/CloudFront_api.swift @@ -259,7 +259,7 @@ public struct CloudFront: AWSService { ) } - /// Create a new invalidation. + /// Create a new invalidation. For more information, see Invalidating files in the Amazon CloudFront Developer Guide. @Sendable public func createInvalidation(_ input: CreateInvalidationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateInvalidationResult { return try await self.client.execute( @@ -292,7 +292,7 @@ public struct CloudFront: AWSService { ) } - /// Specifies the Key Value Store resource to add to your account. In your account, the Key Value Store names must be unique. You can also import Key Value Store data in JSON format from an S3 bucket by providing a valid ImportSource that you own. + /// Specifies the key value store resource to add to your account. In your account, the key value store names must be unique. You can also import key value store data in JSON format from an S3 bucket by providing a valid ImportSource that you own. @Sendable public func createKeyValueStore(_ input: CreateKeyValueStoreRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateKeyValueStoreResult { return try await self.client.execute( @@ -558,7 +558,7 @@ public struct CloudFront: AWSService { ) } - /// Specifies the Key Value Store to delete. + /// Specifies the key value store to delete. @Sendable public func deleteKeyValueStore(_ input: DeleteKeyValueStoreRequest, logger: Logger = AWSClient.loggingDisabled) async throws { return try await self.client.execute( @@ -571,8 +571,7 @@ public struct CloudFront: AWSService { ) } - /// Disables additional CloudWatch metrics for the specified CloudFront - /// distribution. + /// Disables additional CloudWatch metrics for the specified CloudFront distribution. @Sendable public func deleteMonitoringSubscription(_ input: DeleteMonitoringSubscriptionRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteMonitoringSubscriptionResult { return try await self.client.execute( @@ -712,7 +711,7 @@ public struct CloudFront: AWSService { ) } - /// Specifies the Key Value Store and its configuration. + /// Specifies the key value store and its configuration. @Sendable public func describeKeyValueStore(_ input: DescribeKeyValueStoreRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeKeyValueStoreResult { return try await self.client.execute( @@ -1408,7 +1407,7 @@ public struct CloudFront: AWSService { ) } - /// Specifies the Key Value Stores to list. + /// Specifies the key value stores to list. @Sendable public func listKeyValueStores(_ input: ListKeyValueStoresRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListKeyValueStoresResult { return try await self.client.execute( @@ -1755,7 +1754,7 @@ public struct CloudFront: AWSService { ) } - /// Specifies the Key Value Store to update. + /// Specifies the key value store to update. @Sendable public func updateKeyValueStore(_ input: UpdateKeyValueStoreRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateKeyValueStoreResult { return try await self.client.execute( @@ -1937,7 +1936,7 @@ extension CloudFront { ) } - /// Specifies the Key Value Stores to list. + /// Specifies the key value stores to list. /// Return PaginatorSequence for operation. /// /// - Parameters: diff --git a/Sources/Soto/Services/CloudFront/CloudFront_shapes.swift b/Sources/Soto/Services/CloudFront/CloudFront_shapes.swift index 35eabb62e7..ad922dfbb1 100644 --- a/Sources/Soto/Services/CloudFront/CloudFront_shapes.swift +++ b/Sources/Soto/Services/CloudFront/CloudFront_shapes.swift @@ -155,6 +155,8 @@ extension CloudFront { } public enum OriginAccessControlOriginTypes: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case lambda = "lambda" + case mediapackagev2 = "mediapackagev2" case mediastore = "mediastore" case s3 = "s3" public var description: String { return self.rawValue } @@ -546,7 +548,7 @@ extension CloudFront { /// PathPattern. You can specify the following options: allow-all: Viewers can use HTTP or HTTPS. redirect-to-https: If a viewer submits an HTTP request, CloudFront /// returns an HTTP status code of 301 (Moved Permanently) to the viewer along with /// the HTTPS URL. The viewer then resubmits the request using the new URL. https-only: If a viewer sends an HTTP request, CloudFront returns an - /// HTTP status code of 403 (Forbidden). For more information about requiring the HTTPS protocol, see Requiring HTTPS Between Viewers and CloudFront in the + /// HTTP status code of 403 (Forbidden). For more information about requiring the HTTPS protocol, see Requiring HTTPS Between Viewers and CloudFront in the /// Amazon CloudFront Developer Guide. The only way to guarantee that viewers retrieve an object that was fetched from /// the origin using HTTPS is never to use any other protocol to fetch the object. If /// you have recently changed from HTTP to HTTPS, we recommend that you clear your @@ -1228,7 +1230,7 @@ extension CloudFront { public struct ContinuousDeploymentSingleWeightConfig: AWSEncodableShape & AWSDecodableShape { public let sessionStickinessConfig: SessionStickinessConfig? /// The percentage of traffic to send to a staging distribution, expressed as a decimal - /// number between 0 and .15. + /// number between 0 and 0.15. For example, a value of 0.10 means 10% of traffic is sent to the staging distribution. public let weight: Float public init(sessionStickinessConfig: SessionStickinessConfig? = nil, weight: Float) { @@ -1820,11 +1822,12 @@ extension CloudFront { } public struct CreateKeyValueStoreRequest: AWSEncodableShape { - /// The comment of the Key Value Store. + /// The comment of the key value store. public let comment: String? /// The S3 bucket that provides the source for the import. The source must be in a valid JSON format. public let importSource: ImportSource? - /// The name of the Key Value Store. The maximum length of the name is 32 characters. + /// The name of the key value store. The minimum length is 1 character and the maximum length is + /// 64 characters. public let name: String public init(comment: String? = nil, importSource: ImportSource? = nil, name: String) { @@ -1848,11 +1851,11 @@ extension CloudFront { } public struct CreateKeyValueStoreResult: AWSDecodableShape { - /// The ETag in the resulting Key Value Store. + /// The ETag in the resulting key value store. public let eTag: String? - /// The resulting Key Value Store. + /// The resulting key value store. public let keyValueStore: KeyValueStore - /// The location of the resulting Key Value Store. + /// The location of the resulting key value store. public let location: String? public init(eTag: String? = nil, keyValueStore: KeyValueStore, location: String? = nil) { @@ -2051,9 +2054,7 @@ extension CloudFront { public var fields: [String] /// A unique name to identify this real-time log configuration. public let name: String - /// The sampling rate for this real-time log configuration. The sampling rate determines - /// the percentage of viewer requests that are represented in the real-time log data. You - /// must provide an integer between 1 and 100, inclusive. + /// The sampling rate for this real-time log configuration. You can specify a whole number between 1 and 100 (inclusive) to determine the percentage of viewer requests that are represented in the real-time log data. public let samplingRate: Int64 public init(endPoints: [EndPoint], fields: [String], name: String, samplingRate: Int64) { @@ -2408,7 +2409,7 @@ extension CloudFront { /// CachePolicyId. A complex type that specifies how CloudFront handles query strings, cookies, and HTTP /// headers. public let forwardedValues: ForwardedValues? - /// A list of CloudFront functions that are associated with this cache behavior. CloudFront functions + /// A list of CloudFront functions that are associated with this cache behavior. Your functions /// must be published to the LIVE stage to associate them with a cache /// behavior. public let functionAssociations: FunctionAssociations? @@ -2477,7 +2478,7 @@ extension CloudFront { /// PathPattern. You can specify the following options: allow-all: Viewers can use HTTP or HTTPS. redirect-to-https: If a viewer submits an HTTP request, CloudFront /// returns an HTTP status code of 301 (Moved Permanently) to the viewer along with /// the HTTPS URL. The viewer then resubmits the request using the new URL. https-only: If a viewer sends an HTTP request, CloudFront returns an - /// HTTP status code of 403 (Forbidden). For more information about requiring the HTTPS protocol, see Requiring HTTPS Between Viewers and CloudFront in the + /// HTTP status code of 403 (Forbidden). For more information about requiring the HTTPS protocol, see Requiring HTTPS Between Viewers and CloudFront in the /// Amazon CloudFront Developer Guide. The only way to guarantee that viewers retrieve an object that was fetched from /// the origin using HTTPS is never to use any other protocol to fetch the object. If /// you have recently changed from HTTP to HTTPS, we recommend that you clear your @@ -2740,9 +2741,9 @@ extension CloudFront { } public struct DeleteKeyValueStoreRequest: AWSEncodableShape { - /// The Key Value Store to delete, if a match occurs. + /// The key value store to delete, if a match occurs. public let ifMatch: String - /// The name of the Key Value Store. + /// The name of the key value store. public let name: String public init(ifMatch: String, name: String) { @@ -2962,7 +2963,7 @@ extension CloudFront { } public struct DescribeKeyValueStoreRequest: AWSEncodableShape { - /// The name of the Key Value Store. + /// The name of the key value store. public let name: String public init(name: String) { @@ -2985,9 +2986,9 @@ extension CloudFront { } public struct DescribeKeyValueStoreResult: AWSDecodableShape { - /// The ETag of the resulting Key Value Store. + /// The ETag of the resulting key value store. public let eTag: String? - /// The resulting Key Value Store. + /// The resulting key value store. public let keyValueStore: KeyValueStore public init(eTag: String? = nil, keyValueStore: KeyValueStore) { @@ -3108,10 +3109,9 @@ extension CloudFront { public let defaultRootObject: String? /// From this field, you can enable or disable the selected distribution. public let enabled: Bool - /// (Optional) Specify the maximum HTTP version(s) 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 TLSv1.2 or later, and must + /// (Optional) Specify the HTTP version(s) 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 TLSv1.2 or later, and must /// support Server Name Indication (SNI). For viewers and CloudFront to use HTTP/3, viewers must support TLSv1.3 and Server Name /// Indication (SNI). CloudFront supports HTTP/3 connection migration to allow the viewer to /// switch networks without losing connection. For more information about connection @@ -3170,9 +3170,9 @@ extension CloudFront { /// A unique identifier that specifies the WAF web ACL, if any, to associate with this /// distribution. To specify a web ACL created using the latest version of WAF, use the /// ACL ARN, for example - /// arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a. + /// arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111. /// To specify a web ACL created using WAF Classic, use the ACL ID, for example - /// 473e64fd-f30b-4765-81a0-62ad96dd167a. WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests + /// a1b2c3d4-5678-90ab-cdef-EXAMPLE11111. 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 @@ -3392,7 +3392,9 @@ extension CloudFront { /// A complex type that identifies ways in which you want to restrict distribution of your /// content. public let restrictions: Restrictions - /// Whether the primary distribution has a staging distribution enabled. + /// A Boolean that indicates whether this is a staging distribution. When this value is + /// true, this is a staging distribution. When this value is + /// false, this is not a staging distribution. public let staging: Bool /// The current status of the distribution. When the status is Deployed, the /// distribution's information is propagated to all CloudFront edge locations. @@ -3859,7 +3861,7 @@ extension CloudFront { public struct _ItemsEncoding: ArrayCoderProperties { public static let member = "FunctionAssociation" } /// The CloudFront functions that are associated with a cache behavior in a CloudFront distribution. - /// CloudFront functions must be published to the LIVE stage to associate them with a + /// Your functions must be published to the LIVE stage to associate them with a /// cache behavior. @OptionalCustomCoding> public var items: [FunctionAssociation]? @@ -3886,7 +3888,7 @@ extension CloudFront { public struct FunctionConfig: AWSEncodableShape & AWSDecodableShape { /// A comment to describe the function. public let comment: String - /// The configuration for the Key Value Store associations. + /// The configuration for the key value store associations. public let keyValueStoreAssociations: KeyValueStoreAssociations? /// The function's runtime environment version. public let runtime: FunctionRuntime @@ -5154,9 +5156,9 @@ extension CloudFront { } public struct ImportSource: AWSEncodableShape { - /// The Amazon Resource Name (ARN) of the import source for the Key Value Store. + /// The Amazon Resource Name (ARN) of the import source for the key value store. public let sourceARN: String - /// The source type of the import source for the Key Value Store. + /// The source type of the import source for the key value store. public let sourceType: ImportSourceType public init(sourceARN: String, sourceType: ImportSourceType) { @@ -5417,17 +5419,17 @@ extension CloudFront { } public struct KeyValueStore: AWSDecodableShape { - /// The Amazon Resource Name (ARN) of the Key Value Store. + /// The Amazon Resource Name (ARN) of the key value store. public let arn: String - /// A comment for the Key Value Store. + /// A comment for the key value store. public let comment: String - /// The unique Id for the Key Value Store. + /// The unique Id for the key value store. public let id: String - /// The last-modified time of the Key Value Store. + /// The last-modified time of the key value store. public let lastModifiedTime: Date - /// The name of the Key Value Store. + /// The name of the key value store. public let name: String - /// The status of the Key Value Store. + /// The status of the key value store. public let status: String? public init(arn: String, comment: String, id: String, lastModifiedTime: Date, name: String, status: String? = nil) { @@ -5450,7 +5452,7 @@ extension CloudFront { } public struct KeyValueStoreAssociation: AWSEncodableShape & AWSDecodableShape { - /// The Amazon Resource Name (ARN) of the Key Value Store association. + /// The Amazon Resource Name (ARN) of the key value store association. public let keyValueStoreARN: String public init(keyValueStoreARN: String) { @@ -5470,10 +5472,10 @@ extension CloudFront { public struct KeyValueStoreAssociations: AWSEncodableShape & AWSDecodableShape { public struct _ItemsEncoding: ArrayCoderProperties { public static let member = "KeyValueStoreAssociation" } - /// The items of the Key Value Store association. + /// The items of the key value store association. @OptionalCustomCoding> public var items: [KeyValueStoreAssociation]? - /// The quantity of Key Value Store associations. + /// The quantity of key value store associations. public let quantity: Int public init(items: [KeyValueStoreAssociation]? = nil, quantity: Int) { @@ -5496,14 +5498,14 @@ extension CloudFront { public struct KeyValueStoreList: AWSDecodableShape { public struct _ItemsEncoding: ArrayCoderProperties { public static let member = "KeyValueStore" } - /// The items of the Key Value Store list. + /// The items of the key value store list. @OptionalCustomCoding> public var items: [KeyValueStore]? - /// The maximum number of items in the Key Value Store list. + /// The maximum number of items in the key value store list. public let maxItems: Int - /// The next marker associated with the Key Value Store list. + /// The next marker associated with the key value store list. public let nextMarker: String? - /// The quantity of the Key Value Store list. + /// The quantity of the key value store list. public let quantity: Int public init(items: [KeyValueStore]? = nil, maxItems: Int, nextMarker: String? = nil, quantity: Int) { @@ -6015,7 +6017,8 @@ extension CloudFront { public let maxItems: Int? /// The ID of the WAF web ACL that you want to list the associated distributions. If you /// specify "null" for the ID, the request returns a list of the distributions that aren't - /// associated with a web ACL. + /// associated with a web ACL. For WAFV2, this is the ARN of the web ACL, such as + /// arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111. For WAF Classic, this is the ID of the web ACL, such as a1b2c3d4-5678-90ab-cdef-EXAMPLE11111. public let webACLId: String public init(marker: String? = nil, maxItems: Int? = nil, webACLId: String) { @@ -6311,11 +6314,11 @@ extension CloudFront { } public struct ListKeyValueStoresRequest: AWSEncodableShape { - /// The marker associated with the Key Value Stores list. + /// The marker associated with the key value stores list. public let marker: String? - /// The maximum number of items in the Key Value Stores list. + /// The maximum number of items in the key value stores list. public let maxItems: Int? - /// The status of the request for the Key Value Stores list. + /// The status of the request for the key value stores list. public let status: String? public init(marker: String? = nil, maxItems: Int? = nil, status: String? = nil) { @@ -6336,7 +6339,7 @@ extension CloudFront { } public struct ListKeyValueStoresResult: AWSDecodableShape { - /// The resulting Key Value Stores list. + /// The resulting key value stores list. public let keyValueStoreList: KeyValueStoreList public init(keyValueStoreList: KeyValueStoreList) { @@ -6789,7 +6792,7 @@ extension CloudFront { public struct OriginAccessControlConfig: AWSEncodableShape & AWSDecodableShape { /// A description of the origin access control. public let description: String? - /// A name to identify the origin access control. + /// A name to identify the origin access control. You can specify up to 64 characters. public let name: String /// The type of origin that this origin access control is for. public let originAccessControlOriginType: OriginAccessControlOriginTypes @@ -6958,8 +6961,7 @@ extension CloudFront { } public struct OriginGroupFailoverCriteria: AWSEncodableShape & AWSDecodableShape { - /// The status codes that, when returned from the primary origin, will trigger CloudFront - /// to failover to the second origin. + /// The status codes that, when returned from the primary origin, will trigger CloudFront to failover to the second origin. public let statusCodes: StatusCodes public init(statusCodes: StatusCodes) { @@ -8115,7 +8117,7 @@ extension CloudFront { public let referrerPolicy: ResponseHeadersPolicyReferrerPolicy? /// Determines whether CloudFront includes the Strict-Transport-Security HTTP /// response header and the header's value. For more information about the Strict-Transport-Security HTTP response - /// header, see Strict-Transport-Security in the MDN Web Docs. + /// header, see Security headers in the Amazon CloudFront Developer Guide and Strict-Transport-Security in the MDN Web Docs. public let strictTransportSecurity: ResponseHeadersPolicyStrictTransportSecurity? /// Determines whether CloudFront includes the X-XSS-Protection HTTP response /// header and the header's value. For more information about the X-XSS-Protection HTTP response header, see @@ -8292,10 +8294,13 @@ extension CloudFront { } public struct S3OriginConfig: AWSEncodableShape & AWSDecodableShape { - /// The CloudFront origin access identity to associate with the origin. Use an origin access + /// If you're using origin access control (OAC) instead of origin access identity, + /// specify an empty OriginAccessIdentity element. For more information, + /// see Restricting access to an Amazon Web Services in the + /// Amazon CloudFront Developer Guide. 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 + /// objects in an Amazon S3 bucket through CloudFront. The format of the value is: origin-access-identity/cloudfront/ID-of-origin-access-identity The 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 @@ -8318,7 +8323,7 @@ extension CloudFront { /// received. Allowed values are 300–3600 seconds (5–60 minutes). The value must be less than or equal to MaximumTTL. public let idleTTL: Int /// The maximum amount of time to consider requests from the viewer as being part of the - /// same session. Allowed values are 300–3600 seconds (5–60 minutes). The value must be less than or equal to IdleTTL. + /// same session. Allowed values are 300–3600 seconds (5–60 minutes). The value must be greater than or equal to IdleTTL. public let maximumTTL: Int public init(idleTTL: Int, maximumTTL: Int) { @@ -9418,11 +9423,11 @@ extension CloudFront { } public struct UpdateKeyValueStoreRequest: AWSEncodableShape { - /// The comment of the Key Value Store to update. + /// The comment of the key value store to update. public let comment: String - /// The Key Value Store to update, if a match occurs. + /// The key value store to update, if a match occurs. public let ifMatch: String - /// The name of the Key Value Store to update. + /// The name of the key value store to update. public let name: String public init(comment: String, ifMatch: String, name: String) { @@ -9452,9 +9457,9 @@ extension CloudFront { } public struct UpdateKeyValueStoreResult: AWSDecodableShape { - /// The ETag of the resulting Key Value Store. + /// The ETag of the resulting key value store. public let eTag: String? - /// The resulting Key Value Store to update. + /// The resulting key value store to update. public let keyValueStore: KeyValueStore public init(eTag: String? = nil, keyValueStore: KeyValueStore) { @@ -10036,7 +10041,7 @@ public struct CloudFrontErrorType: AWSErrorType { public static var cachePolicyInUse: Self { .init(.cachePolicyInUse) } /// You can't change the value of a public key. public static var cannotChangeImmutablePublicKeyFields: Self { .init(.cannotChangeImmutablePublicKeyFields) } - /// The Key Value Store entity cannot be deleted while it is in use. + /// The key value store entity cannot be deleted while it is in use. public static var cannotDeleteEntityWhileInUse: Self { .init(.cannotDeleteEntityWhileInUse) } /// If the CallerReference is a value you already sent in a previous request /// to create an identity but the content of the @@ -10059,14 +10064,14 @@ public struct CloudFrontErrorType: AWSErrorType { /// The specified CloudFront distribution is not disabled. You must disable the distribution /// before you can delete it. public static var distributionNotDisabled: Self { .init(.distributionNotDisabled) } - /// The Key Value Store entity already exists. You must provide a unique Key Value Store + /// The key value store entity already exists. You must provide a unique key value store /// entity. public static var entityAlreadyExists: Self { .init(.entityAlreadyExists) } - /// The Key Value Store entity limit has been exceeded. + /// The key value store entity limit has been exceeded. public static var entityLimitExceeded: Self { .init(.entityLimitExceeded) } - /// The Key Value Store entity was not found. + /// The key value store entity was not found. public static var entityNotFound: Self { .init(.entityNotFound) } - /// The Key Value Store entity size limit was exceeded. + /// The key value store entity size limit was exceeded. public static var entitySizeLimitExceeded: Self { .init(.entitySizeLimitExceeded) } /// The specified configuration for field-level encryption already exists. public static var fieldLevelEncryptionConfigAlreadyExists: Self { .init(.fieldLevelEncryptionConfigAlreadyExists) } diff --git a/Sources/Soto/Services/CloudWatch/CloudWatch_shapes.swift b/Sources/Soto/Services/CloudWatch/CloudWatch_shapes.swift index 05a7bbe46a..2efe82a832 100644 --- a/Sources/Soto/Services/CloudWatch/CloudWatch_shapes.swift +++ b/Sources/Soto/Services/CloudWatch/CloudWatch_shapes.swift @@ -192,6 +192,10 @@ extension CloudWatch { /// The metric dimensions associated with the anomaly detection model. @OptionalCustomCoding> public var dimensions: [Dimension]? + /// This object includes parameters that you can use to provide information about your metric to + /// CloudWatch to help it build more accurate anomaly detection models. Currently, it includes + /// the PeriodicSpikes parameter. + public let metricCharacteristics: MetricCharacteristics? /// The CloudWatch metric math expression for this anomaly detector. public let metricMathAnomalyDetector: MetricMathAnomalyDetector? /// The name of the metric associated with the anomaly detection model. @@ -202,12 +206,13 @@ extension CloudWatch { public let singleMetricAnomalyDetector: SingleMetricAnomalyDetector? /// The statistic associated with the anomaly detection model. public let stat: String? - /// The current status of the anomaly detector's training. The possible values are TRAINED | PENDING_TRAINING | TRAINED_INSUFFICIENT_DATA + /// The current status of the anomaly detector's training. public let stateValue: AnomalyDetectorStateValue? - public init(configuration: AnomalyDetectorConfiguration? = nil, metricMathAnomalyDetector: MetricMathAnomalyDetector? = nil, singleMetricAnomalyDetector: SingleMetricAnomalyDetector? = nil, stateValue: AnomalyDetectorStateValue? = nil) { + public init(configuration: AnomalyDetectorConfiguration? = nil, metricCharacteristics: MetricCharacteristics? = nil, metricMathAnomalyDetector: MetricMathAnomalyDetector? = nil, singleMetricAnomalyDetector: SingleMetricAnomalyDetector? = nil, stateValue: AnomalyDetectorStateValue? = nil) { self.configuration = configuration self.dimensions = nil + self.metricCharacteristics = metricCharacteristics self.metricMathAnomalyDetector = metricMathAnomalyDetector self.metricName = nil self.namespace = nil @@ -217,9 +222,10 @@ extension CloudWatch { } @available(*, deprecated, message: "Members dimensions, metricName, namespace, stat have been deprecated") - public init(configuration: AnomalyDetectorConfiguration? = nil, dimensions: [Dimension]? = nil, metricMathAnomalyDetector: MetricMathAnomalyDetector? = nil, metricName: String? = nil, namespace: String? = nil, singleMetricAnomalyDetector: SingleMetricAnomalyDetector? = nil, stat: String? = nil, stateValue: AnomalyDetectorStateValue? = nil) { + public init(configuration: AnomalyDetectorConfiguration? = nil, dimensions: [Dimension]? = nil, metricCharacteristics: MetricCharacteristics? = nil, metricMathAnomalyDetector: MetricMathAnomalyDetector? = nil, metricName: String? = nil, namespace: String? = nil, singleMetricAnomalyDetector: SingleMetricAnomalyDetector? = nil, stat: String? = nil, stateValue: AnomalyDetectorStateValue? = nil) { self.configuration = configuration self.dimensions = dimensions + self.metricCharacteristics = metricCharacteristics self.metricMathAnomalyDetector = metricMathAnomalyDetector self.metricName = metricName self.namespace = namespace @@ -231,6 +237,7 @@ extension CloudWatch { private enum CodingKeys: String, CodingKey { case configuration = "Configuration" case dimensions = "Dimensions" + case metricCharacteristics = "MetricCharacteristics" case metricMathAnomalyDetector = "MetricMathAnomalyDetector" case metricName = "MetricName" case namespace = "Namespace" @@ -2419,6 +2426,22 @@ extension CloudWatch { } } + public struct MetricCharacteristics: AWSEncodableShape & AWSDecodableShape { + /// Set this parameter to true if values for this metric consistently include spikes + /// that should not be considered to be anomalies. With this set to true, CloudWatch will expect + /// to see spikes that occurred consistently during the model training period, and won't flag future similar spikes + /// as anomalies. + public let periodicSpikes: Bool? + + public init(periodicSpikes: Bool? = nil) { + self.periodicSpikes = periodicSpikes + } + + private enum CodingKeys: String, CodingKey { + case periodicSpikes = "PeriodicSpikes" + } + } + public struct MetricDataQuery: AWSEncodableShape & AWSDecodableShape { /// The ID of the account where the metrics are located. If you are performing a GetMetricData operation in a monitoring account, use this to specify /// which account to retrieve this metric from. If you are performing a PutMetricAlarm operation, use this to specify @@ -2847,6 +2870,10 @@ extension CloudWatch { /// The metric dimensions to create the anomaly detection model for. @OptionalCustomCoding> public var dimensions: [Dimension]? + /// Use this object to include parameters to provide information about your metric to + /// CloudWatch to help it build more accurate anomaly detection models. Currently, it includes + /// the PeriodicSpikes parameter. + public let metricCharacteristics: MetricCharacteristics? /// The metric math anomaly detector to be created. When using MetricMathAnomalyDetector, you cannot include the following parameters in the same operation: Dimensions MetricName Namespace Stat the SingleMetricAnomalyDetector parameters of PutAnomalyDetectorInput Instead, specify the metric math anomaly detector attributes /// as part of the property MetricMathAnomalyDetector. public let metricMathAnomalyDetector: MetricMathAnomalyDetector? @@ -2861,9 +2888,10 @@ extension CloudWatch { /// The statistic to use for the metric and the anomaly detection model. public let stat: String? - public init(configuration: AnomalyDetectorConfiguration? = nil, metricMathAnomalyDetector: MetricMathAnomalyDetector? = nil, singleMetricAnomalyDetector: SingleMetricAnomalyDetector? = nil) { + public init(configuration: AnomalyDetectorConfiguration? = nil, metricCharacteristics: MetricCharacteristics? = nil, metricMathAnomalyDetector: MetricMathAnomalyDetector? = nil, singleMetricAnomalyDetector: SingleMetricAnomalyDetector? = nil) { self.configuration = configuration self.dimensions = nil + self.metricCharacteristics = metricCharacteristics self.metricMathAnomalyDetector = metricMathAnomalyDetector self.metricName = nil self.namespace = nil @@ -2872,9 +2900,10 @@ extension CloudWatch { } @available(*, deprecated, message: "Members dimensions, metricName, namespace, stat have been deprecated") - public init(configuration: AnomalyDetectorConfiguration? = nil, dimensions: [Dimension]? = nil, metricMathAnomalyDetector: MetricMathAnomalyDetector? = nil, metricName: String? = nil, namespace: String? = nil, singleMetricAnomalyDetector: SingleMetricAnomalyDetector? = nil, stat: String? = nil) { + public init(configuration: AnomalyDetectorConfiguration? = nil, dimensions: [Dimension]? = nil, metricCharacteristics: MetricCharacteristics? = nil, metricMathAnomalyDetector: MetricMathAnomalyDetector? = nil, metricName: String? = nil, namespace: String? = nil, singleMetricAnomalyDetector: SingleMetricAnomalyDetector? = nil, stat: String? = nil) { self.configuration = configuration self.dimensions = dimensions + self.metricCharacteristics = metricCharacteristics self.metricMathAnomalyDetector = metricMathAnomalyDetector self.metricName = metricName self.namespace = namespace @@ -2902,6 +2931,7 @@ extension CloudWatch { private enum CodingKeys: String, CodingKey { case configuration = "Configuration" case dimensions = "Dimensions" + case metricCharacteristics = "MetricCharacteristics" case metricMathAnomalyDetector = "MetricMathAnomalyDetector" case metricName = "MetricName" case namespace = "Namespace" diff --git a/Sources/Soto/Services/CodeArtifact/CodeArtifact_api.swift b/Sources/Soto/Services/CodeArtifact/CodeArtifact_api.swift index 42b9ecae6e..b9a61c60b7 100644 --- a/Sources/Soto/Services/CodeArtifact/CodeArtifact_api.swift +++ b/Sources/Soto/Services/CodeArtifact/CodeArtifact_api.swift @@ -19,7 +19,7 @@ /// Service object for interacting with AWS CodeArtifact service. /// -/// CodeArtifact is a fully managed artifact repository compatible with language-native package managers and build tools such as npm, Apache Maven, pip, and dotnet. You can use CodeArtifact to share packages with development teams and pull packages. Packages can be pulled from both public and CodeArtifact repositories. You can also create an upstream relationship between a CodeArtifact repository and another repository, which effectively merges their contents from the point of view of a package manager client. CodeArtifact concepts Repository: A CodeArtifact repository contains a set of package versions, each of which maps to a set of assets, or files. Repositories are polyglot, so a single repository can contain packages of any supported type. Each repository exposes endpoints for fetching and publishing packages using tools like the npm CLI, the Maven CLI ( mvn ), Python CLIs ( pip and twine), NuGet CLIs (nuget and dotnet), and the Swift package manager ( swift ). Domain: Repositories are aggregated into a higher-level entity known as a domain. All package assets and metadata are stored in the domain, but are consumed through repositories. A given package asset, such as a Maven JAR file, is stored once per domain, no matter how many repositories it's present in. All of the assets and metadata in a domain are encrypted with the same customer master key (CMK) stored in Key Management Service (KMS). Each repository is a member of a single domain and can't be moved to a different domain. The domain allows organizational policy to be applied across multiple repositories, such as which accounts can access repositories in the domain, and which public repositories can be used as sources of packages. Although an organization can have multiple domains, we recommend a single production domain that contains all published artifacts so that teams can find and share packages across their organization. Package: A package is a bundle of software and the metadata required to resolve dependencies and install the software. CodeArtifact supports npm, PyPI, Maven, NuGet, Swift, and generic package formats. In CodeArtifact, a package consists of: A name (for example, webpack is the name of a popular npm package) An optional namespace (for example, @types in @types/node) A set of versions (for example, 1.0.0, 1.0.1, 1.0.2, etc.) Package-level metadata (for example, npm tags) Package group: A group of packages that match a specified definition. Package groups can be used to apply configuration to multiple packages that match a defined pattern using package format, package namespace, and package name. You can use package groups to more conveniently configure package origin controls for multiple packages. Package origin controls are used to block or allow ingestion or publishing of new package versions, which protects users from malicious actions known as dependency substitution attacks. Package version: A version of a package, such as @types/node 12.6.9. The version number format and semantics vary for different package formats. For example, npm package versions must conform to the Semantic Versioning specification. In CodeArtifact, a package version consists of the version identifier, metadata at the package version level, and a set of assets. Upstream repository: One repository is upstream of another when the package versions in it can be accessed from the repository endpoint of the downstream repository, effectively merging the contents of the two repositories from the point of view of a client. CodeArtifact allows creating an upstream relationship between two repositories. Asset: An individual file stored in CodeArtifact associated with a package version, such as an npm .tgz file or Maven POM and JAR files. CodeArtifact supported API operations AssociateExternalConnection: Adds an existing external connection to a repository. CopyPackageVersions: Copies package versions from one repository to another repository in the same domain. CreateDomain: Creates a domain. CreatePackageGroup: Creates a package group. CreateRepository: Creates a CodeArtifact repository in a domain. DeleteDomain: Deletes a domain. You cannot delete a domain that contains repositories. DeleteDomainPermissionsPolicy: Deletes the resource policy that is set on a domain. DeletePackage: Deletes a package and all associated package versions. DeletePackageGroup: Deletes a package group. Does not delete packages or package versions that are associated with a package group. DeletePackageVersions: Deletes versions of a package. After a package has been deleted, it can be republished, but its assets and metadata cannot be restored because they have been permanently removed from storage. DeleteRepository: Deletes a repository. DeleteRepositoryPermissionsPolicy: Deletes the resource policy that is set on a repository. DescribeDomain: Returns a DomainDescription object that contains information about the requested domain. DescribePackage: Returns a PackageDescription object that contains details about a package. DescribePackageGroup: Returns a PackageGroup object that contains details about a package group. DescribePackageVersion: Returns a PackageVersionDescription object that contains details about a package version. DescribeRepository: Returns a RepositoryDescription object that contains detailed information about the requested repository. DisposePackageVersions: Disposes versions of a package. A package version with the status Disposed cannot be restored because they have been permanently removed from storage. DisassociateExternalConnection: Removes an existing external connection from a repository. GetAssociatedPackageGroup: Returns the most closely associated package group to the specified package. GetAuthorizationToken: Generates a temporary authorization token for accessing repositories in the domain. The token expires the authorization period has passed. The default authorization period is 12 hours and can be customized to any length with a maximum of 12 hours. GetDomainPermissionsPolicy: Returns the policy of a resource that is attached to the specified domain. GetPackageVersionAsset: Returns the contents of an asset that is in a package version. GetPackageVersionReadme: Gets the readme file or descriptive text for a package version. GetRepositoryEndpoint: Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each package format: generic maven npm nuget pypi swift GetRepositoryPermissionsPolicy: Returns the resource policy that is set on a repository. ListAllowedRepositoriesForGroup: Lists the allowed repositories for a package group that has origin configuration set to ALLOW_SPECIFIC_REPOSITORIES. ListAssociatedPackages: Returns a list of packages associated with the requested package group. ListDomains: Returns a list of DomainSummary objects. Each returned DomainSummary object contains information about a domain. ListPackages: Lists the packages in a repository. ListPackageGroups: Returns a list of package groups in the requested domain. ListPackageVersionAssets: Lists the assets for a given package version. ListPackageVersionDependencies: Returns a list of the direct dependencies for a package version. ListPackageVersions: Returns a list of package versions for a specified package in a repository. ListRepositories: Returns a list of repositories owned by the Amazon Web Services account that called this method. ListRepositoriesInDomain: Returns a list of the repositories in a domain. ListSubPackageGroups: Returns a list of direct children of the specified package group. PublishPackageVersion: Creates a new package version containing one or more assets. PutDomainPermissionsPolicy: Attaches a resource policy to a domain. PutPackageOriginConfiguration: Sets the package origin configuration for a package, which determine how new versions of the package can be added to a specific repository. PutRepositoryPermissionsPolicy: Sets the resource policy on a repository that specifies permissions to access it. UpdatePackageGroup: Updates a package group. This API cannot be used to update a package group's origin configuration or pattern. UpdatePackageGroupOriginConfiguration: Updates the package origin configuration for a package group. UpdatePackageVersionsStatus: Updates the status of one or more versions of a package. UpdateRepository: Updates the properties of a repository. +/// CodeArtifact is a fully managed artifact repository compatible with language-native package managers and build tools such as npm, Apache Maven, pip, and dotnet. You can use CodeArtifact to share packages with development teams and pull packages. Packages can be pulled from both public and CodeArtifact repositories. You can also create an upstream relationship between a CodeArtifact repository and another repository, which effectively merges their contents from the point of view of a package manager client. CodeArtifact concepts Repository: A CodeArtifact repository contains a set of package versions, each of which maps to a set of assets, or files. Repositories are polyglot, so a single repository can contain packages of any supported type. Each repository exposes endpoints for fetching and publishing packages using tools such as the npm CLI or the Maven CLI ( mvn ). For a list of supported package managers, see the CodeArtifact User Guide. Domain: Repositories are aggregated into a higher-level entity known as a domain. All package assets and metadata are stored in the domain, but are consumed through repositories. A given package asset, such as a Maven JAR file, is stored once per domain, no matter how many repositories it's present in. All of the assets and metadata in a domain are encrypted with the same customer master key (CMK) stored in Key Management Service (KMS). Each repository is a member of a single domain and can't be moved to a different domain. The domain allows organizational policy to be applied across multiple repositories, such as which accounts can access repositories in the domain, and which public repositories can be used as sources of packages. Although an organization can have multiple domains, we recommend a single production domain that contains all published artifacts so that teams can find and share packages across their organization. Package: A package is a bundle of software and the metadata required to resolve dependencies and install the software. CodeArtifact supports npm, PyPI, Maven, NuGet, Swift, Ruby, and generic package formats. For more information about the supported package formats and how to use CodeArtifact with them, see the CodeArtifact User Guide. In CodeArtifact, a package consists of: A name (for example, webpack is the name of a popular npm package) An optional namespace (for example, @types in @types/node) A set of versions (for example, 1.0.0, 1.0.1, 1.0.2, etc.) Package-level metadata (for example, npm tags) Package group: A group of packages that match a specified definition. Package groups can be used to apply configuration to multiple packages that match a defined pattern using package format, package namespace, and package name. You can use package groups to more conveniently configure package origin controls for multiple packages. Package origin controls are used to block or allow ingestion or publishing of new package versions, which protects users from malicious actions known as dependency substitution attacks. Package version: A version of a package, such as @types/node 12.6.9. The version number format and semantics vary for different package formats. For example, npm package versions must conform to the Semantic Versioning specification. In CodeArtifact, a package version consists of the version identifier, metadata at the package version level, and a set of assets. Upstream repository: One repository is upstream of another when the package versions in it can be accessed from the repository endpoint of the downstream repository, effectively merging the contents of the two repositories from the point of view of a client. CodeArtifact allows creating an upstream relationship between two repositories. Asset: An individual file stored in CodeArtifact associated with a package version, such as an npm .tgz file or Maven POM and JAR files. CodeArtifact supported API operations AssociateExternalConnection: Adds an existing external connection to a repository. CopyPackageVersions: Copies package versions from one repository to another repository in the same domain. CreateDomain: Creates a domain. CreatePackageGroup: Creates a package group. CreateRepository: Creates a CodeArtifact repository in a domain. DeleteDomain: Deletes a domain. You cannot delete a domain that contains repositories. DeleteDomainPermissionsPolicy: Deletes the resource policy that is set on a domain. DeletePackage: Deletes a package and all associated package versions. DeletePackageGroup: Deletes a package group. Does not delete packages or package versions that are associated with a package group. DeletePackageVersions: Deletes versions of a package. After a package has been deleted, it can be republished, but its assets and metadata cannot be restored because they have been permanently removed from storage. DeleteRepository: Deletes a repository. DeleteRepositoryPermissionsPolicy: Deletes the resource policy that is set on a repository. DescribeDomain: Returns a DomainDescription object that contains information about the requested domain. DescribePackage: Returns a PackageDescription object that contains details about a package. DescribePackageGroup: Returns a PackageGroup object that contains details about a package group. DescribePackageVersion: Returns a PackageVersionDescription object that contains details about a package version. DescribeRepository: Returns a RepositoryDescription object that contains detailed information about the requested repository. DisposePackageVersions: Disposes versions of a package. A package version with the status Disposed cannot be restored because they have been permanently removed from storage. DisassociateExternalConnection: Removes an existing external connection from a repository. GetAssociatedPackageGroup: Returns the most closely associated package group to the specified package. GetAuthorizationToken: Generates a temporary authorization token for accessing repositories in the domain. The token expires the authorization period has passed. The default authorization period is 12 hours and can be customized to any length with a maximum of 12 hours. GetDomainPermissionsPolicy: Returns the policy of a resource that is attached to the specified domain. GetPackageVersionAsset: Returns the contents of an asset that is in a package version. GetPackageVersionReadme: Gets the readme file or descriptive text for a package version. GetRepositoryEndpoint: Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each package format: generic maven npm nuget pypi ruby swift GetRepositoryPermissionsPolicy: Returns the resource policy that is set on a repository. ListAllowedRepositoriesForGroup: Lists the allowed repositories for a package group that has origin configuration set to ALLOW_SPECIFIC_REPOSITORIES. ListAssociatedPackages: Returns a list of packages associated with the requested package group. ListDomains: Returns a list of DomainSummary objects. Each returned DomainSummary object contains information about a domain. ListPackages: Lists the packages in a repository. ListPackageGroups: Returns a list of package groups in the requested domain. ListPackageVersionAssets: Lists the assets for a given package version. ListPackageVersionDependencies: Returns a list of the direct dependencies for a package version. ListPackageVersions: Returns a list of package versions for a specified package in a repository. ListRepositories: Returns a list of repositories owned by the Amazon Web Services account that called this method. ListRepositoriesInDomain: Returns a list of the repositories in a domain. ListSubPackageGroups: Returns a list of direct children of the specified package group. PublishPackageVersion: Creates a new package version containing one or more assets. PutDomainPermissionsPolicy: Attaches a resource policy to a domain. PutPackageOriginConfiguration: Sets the package origin configuration for a package, which determine how new versions of the package can be added to a specific repository. PutRepositoryPermissionsPolicy: Sets the resource policy on a repository that specifies permissions to access it. UpdatePackageGroup: Updates a package group. This API cannot be used to update a package group's origin configuration or pattern. UpdatePackageGroupOriginConfiguration: Updates the package origin configuration for a package group. UpdatePackageVersionsStatus: Updates the status of one or more versions of a package. UpdateRepository: Updates the properties of a repository. public struct CodeArtifact: AWSService { // MARK: Member variables @@ -385,7 +385,7 @@ public struct CodeArtifact: AWSService { ) } - /// Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each package format: generic maven npm nuget pypi swift + /// Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each package format: generic maven npm nuget pypi ruby swift @Sendable public func getRepositoryEndpoint(_ input: GetRepositoryEndpointRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetRepositoryEndpointResult { return try await self.client.execute( diff --git a/Sources/Soto/Services/CodeArtifact/CodeArtifact_shapes.swift b/Sources/Soto/Services/CodeArtifact/CodeArtifact_shapes.swift index 150f8c9b70..d9df1144a8 100644 --- a/Sources/Soto/Services/CodeArtifact/CodeArtifact_shapes.swift +++ b/Sources/Soto/Services/CodeArtifact/CodeArtifact_shapes.swift @@ -63,6 +63,7 @@ extension CodeArtifact { case npm = "npm" case nuget = "nuget" case pypi = "pypi" + case ruby = "ruby" case swift = "swift" public var description: String { return self.rawValue } } @@ -211,7 +212,7 @@ extension CodeArtifact { public let associationType: PackageGroupAssociationType? /// A format that specifies the type of the associated package. public let format: PackageFormat? - /// The namespace of the associated package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the associated package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The name of the associated package. public let package: String? @@ -244,7 +245,7 @@ extension CodeArtifact { public let format: PackageFormat /// Set to true to copy packages from repositories that are upstream from the source repository to the destination repository. The default setting is false. For more information, see Working with upstream repositories. public let includeFromUpstream: Bool? - /// The namespace of the package versions to be copied. The package component that specifies its namespace depends on its type. For example: The namespace is required when copying package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package versions to be copied. The package component that specifies its namespace depends on its type. For example: The namespace is required when copying package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The name of the package that contains the versions to be copied. public let package: String @@ -696,7 +697,7 @@ extension CodeArtifact { public let domainOwner: String? /// The format of the requested package to delete. public let format: PackageFormat - /// The namespace of the package to delete. The package component that specifies its namespace depends on its type. For example: The namespace is required when deleting packages of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package to delete. The package component that specifies its namespace depends on its type. For example: The namespace is required when deleting packages of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The name of the package to delete. public let package: String @@ -765,7 +766,7 @@ extension CodeArtifact { public let expectedStatus: PackageVersionStatus? /// The format of the package versions to delete. public let format: PackageFormat - /// The namespace of the package versions to be deleted. The package component that specifies its namespace depends on its type. For example: The namespace is required when deleting package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package versions to be deleted. The package component that specifies its namespace depends on its type. For example: The namespace is required when deleting package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The name of the package with the versions to delete. public let package: String @@ -1051,7 +1052,7 @@ extension CodeArtifact { public let domainOwner: String? /// A format that specifies the type of the requested package. public let format: PackageFormat - /// The namespace of the requested package. The package component that specifies its namespace depends on its type. For example: The namespace is required when requesting packages of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the requested package. The package component that specifies its namespace depends on its type. For example: The namespace is required when requesting packages of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The name of the requested package. public let package: String @@ -1119,7 +1120,7 @@ extension CodeArtifact { public let domainOwner: String? /// A format that specifies the type of the requested package version. public let format: PackageFormat - /// The namespace of the requested package version. The package component that specifies its namespace depends on its type. For example: The namespace is required when requesting package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the requested package version. The package component that specifies its namespace depends on its type. For example: The namespace is required when requesting package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The name of the requested package version. public let package: String @@ -1303,7 +1304,7 @@ extension CodeArtifact { public let expectedStatus: PackageVersionStatus? /// A format that specifies the type of package versions you want to dispose. public let format: PackageFormat - /// The namespace of the package versions to be disposed. The package component that specifies its namespace depends on its type. For example: The namespace is required when disposing package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package versions to be disposed. The package component that specifies its namespace depends on its type. For example: The namespace is required when disposing package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The name of the package with the versions you want to dispose. public let package: String @@ -1498,7 +1499,7 @@ extension CodeArtifact { public let domainOwner: String? /// The format of the package from which to get the associated package group. public let format: PackageFormat - /// The namespace of the package from which to get the associated package group. The package component that specifies its namespace depends on its type. For example: The namespace is required when getting associated package groups from packages of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package from which to get the associated package group. The package component that specifies its namespace depends on its type. For example: The namespace is required when getting associated package groups from packages of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The package from which to get the associated package group. public let package: String @@ -1661,7 +1662,7 @@ extension CodeArtifact { public let domainOwner: String? /// A format that specifies the type of the package version with the requested asset file. public let format: PackageFormat - /// The namespace of the package version with the requested asset file. The package component that specifies its namespace depends on its type. For example: The namespace is required when requesting assets from package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package version with the requested asset file. The package component that specifies its namespace depends on its type. For example: The namespace is required when requesting assets from package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The name of the package that contains the requested asset. public let package: String @@ -1765,7 +1766,7 @@ extension CodeArtifact { public let domainOwner: String? /// A format that specifies the type of the package version with the requested readme file. public let format: PackageFormat - /// The namespace of the package version with the requested readme file. The package component that specifies its namespace depends on its type. For example: The namespace is required when requesting the readme from package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package version with the requested readme file. The package component that specifies its namespace depends on its type. For example: The namespace is required when requesting the readme from package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The name of the package version that contains the requested readme file. public let package: String @@ -1823,7 +1824,7 @@ extension CodeArtifact { public struct GetPackageVersionReadmeResult: AWSDecodableShape { /// The format of the package with the requested readme file. public let format: PackageFormat? - /// The namespace of the package version with the requested readme file. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package version with the requested readme file. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The name of the package that contains the returned readme file. public let package: String? @@ -2233,7 +2234,7 @@ extension CodeArtifact { public let format: PackageFormat /// The maximum number of results to return per page. public let maxResults: Int? - /// The namespace of the package version that contains the requested package version assets. The package component that specifies its namespace depends on its type. For example: The namespace is required requesting assets from package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package version that contains the requested package version assets. The package component that specifies its namespace depends on its type. For example: The namespace is required requesting assets from package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. public let nextToken: String? @@ -2304,7 +2305,7 @@ extension CodeArtifact { public let assets: [AssetSummary]? /// The format of the package that contains the requested package version assets. public let format: PackageFormat? - /// The namespace of the package version that contains the requested package version assets. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package version that contains the requested package version assets. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// If there are additional results, this is the token for the next set of results. public let nextToken: String? @@ -2343,7 +2344,7 @@ extension CodeArtifact { public let domainOwner: String? /// The format of the package with the requested dependencies. public let format: PackageFormat - /// The namespace of the package version with the requested dependencies. The package component that specifies its namespace depends on its type. For example: The namespace is required when listing dependencies from package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package version with the requested dependencies. The package component that specifies its namespace depends on its type. For example: The namespace is required when listing dependencies from package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. public let nextToken: String? @@ -2410,7 +2411,7 @@ extension CodeArtifact { public let dependencies: [PackageDependency]? /// A format that specifies the type of the package that contains the returned dependencies. public let format: PackageFormat? - /// The namespace of the package version that contains the returned dependencies. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package version that contains the returned dependencies. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. public let nextToken: String? @@ -2451,7 +2452,7 @@ extension CodeArtifact { public let format: PackageFormat /// The maximum number of results to return per page. public let maxResults: Int? - /// The namespace of the package that contains the requested package versions. The package component that specifies its namespace depends on its type. For example: The namespace is required when deleting package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package that contains the requested package versions. The package component that specifies its namespace depends on its type. For example: The namespace is required when deleting package versions of the following formats: Maven Swift generic The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. public let nextToken: String? @@ -2527,7 +2528,7 @@ extension CodeArtifact { public let defaultDisplayVersion: String? /// A format of the package. public let format: PackageFormat? - /// The namespace of the package that contains the requested package versions. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package that contains the requested package versions. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// If there are additional results, this is the token for the next set of results. public let nextToken: String? @@ -2564,7 +2565,7 @@ extension CodeArtifact { public let format: PackageFormat? /// The maximum number of results to return per page. public let maxResults: Int? - /// The namespace prefix used to filter requested packages. Only packages with a namespace that starts with the provided string value are returned. Note that although this option is called --namespace and not --namespace-prefix, it has prefix-matching behavior. Each package format uses namespace as follows: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace prefix used to filter requested packages. Only packages with a namespace that starts with the provided string value are returned. Note that although this option is called --namespace and not --namespace-prefix, it has prefix-matching behavior. Each package format uses namespace as follows: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. public let nextToken: String? @@ -2881,7 +2882,7 @@ extension CodeArtifact { public struct PackageDependency: AWSDecodableShape { /// The type of a package dependency. The possible values depend on the package type. npm: regular, dev, peer, optional maven: optional, parent, compile, runtime, test, system, provided. Note that parent is not a regular Maven dependency type; instead this is extracted from the element if one is defined in the package version's POM file. nuget: The dependencyType field is never set for NuGet packages. pypi: Requires-Dist public let dependencyType: String? - /// The namespace of the package that this package depends on. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package that this package depends on. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The name of the package that this package depends on. public let package: String? @@ -2908,7 +2909,7 @@ extension CodeArtifact { public let format: PackageFormat? /// The name of the package. public let name: String? - /// The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The package origin configuration for the package. public let originConfiguration: PackageOriginConfiguration? @@ -3129,7 +3130,7 @@ extension CodeArtifact { public struct PackageSummary: AWSDecodableShape { /// The format of the package. public let format: PackageFormat? - /// The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// A PackageOriginConfiguration object that contains a PackageOriginRestrictions object that contains information about the upstream and publish package origin restrictions. public let originConfiguration: PackageOriginConfiguration? @@ -3160,7 +3161,7 @@ extension CodeArtifact { public let homePage: String? /// Information about licenses associated with the package version. public let licenses: [LicenseInfo]? - /// The namespace of the package version. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package version. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// A PackageVersionOrigin object that contains information about how the package version was added to the repository. public let origin: PackageVersionOrigin? @@ -3453,7 +3454,7 @@ extension CodeArtifact { public let domainOwner: String? /// A format that specifies the type of the package to be updated. public let format: PackageFormat - /// The namespace of the package to be updated. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package to be updated. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The name of the package to be updated. public let package: String @@ -3980,7 +3981,7 @@ extension CodeArtifact { public let expectedStatus: PackageVersionStatus? /// A format that specifies the type of the package with the statuses to update. public let format: PackageFormat - /// The namespace of the package version to be updated. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace. + /// The namespace of the package version to be updated. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace of an npm or Swift package version is its scope. The namespace of a generic package is its namespace. Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions of those formats do not have a namespace. public let namespace: String? /// The name of the package with the version statuses to update. public let package: String diff --git a/Sources/Soto/Services/CodeBuild/CodeBuild_shapes.swift b/Sources/Soto/Services/CodeBuild/CodeBuild_shapes.swift index bb67c20933..a94a102b09 100644 --- a/Sources/Soto/Services/CodeBuild/CodeBuild_shapes.swift +++ b/Sources/Soto/Services/CodeBuild/CodeBuild_shapes.swift @@ -364,6 +364,9 @@ extension CodeBuild { case event = "EVENT" case filePath = "FILE_PATH" case headRef = "HEAD_REF" + case releaseName = "RELEASE_NAME" + case tagName = "TAG_NAME" + case workflowName = "WORKFLOW_NAME" public var description: String { return self.rawValue } } @@ -2111,7 +2114,7 @@ extension CodeBuild { public let serverType: ServerType /// Set to false to prevent overwriting the repository source credentials. Set to true to overwrite the repository source credentials. The default value is true. public let shouldOverwrite: Bool? - /// For GitHub or GitHub Enterprise, this is the personal access token. For Bitbucket, this is the app password. + /// For GitHub or GitHub Enterprise, this is the personal access token. For Bitbucket, this is either the access token or the app password. public let token: String /// The Bitbucket username when the authType is BASIC_AUTH. This parameter is not valid for other types of source providers or connections. public let username: String? @@ -3150,7 +3153,7 @@ extension CodeBuild { public let gitSubmodulesConfig: GitSubmodulesConfig? /// Enable this flag to ignore SSL warnings while connecting to the project source code. public let insecureSsl: Bool? - /// 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 CodePipeline, location should not be specified. If it is specified, CodePipeline ignores it. This is because CodePipeline uses the settings in a pipeline's source action instead of this value. For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file (for example, https://git-codecommit..amazonaws.com/v1/repos/). For source code in an Amazon S3 input bucket, one of the following. The path to the ZIP file that contains the source code (for example, //.zip). The path to the folder that contains the source code (for example, ///). For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your GitHub account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub Authorize application page, for Organization access, choose Request access next to each repository you want to allow CodeBuild to have access to, and then choose Authorize application. (After you have connected to your GitHub account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the source object, set the auth object's type value to OAUTH. For source code in an GitLab or self-managed GitLab repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your GitLab account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitLab, on the Connections Authorize application page, choose Authorize. Then on the CodeStar Connections Create GitLab connection page, choose Connect to GitLab. (After you have connected to your GitLab account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to override the default connection and use this connection instead, set the auth object's type value to CODECONNECTIONS in the source object. For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your Bitbucket account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with Bitbucket, on the Bitbucket Confirm access to your account page, choose Grant access. (After you have connected to your Bitbucket account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the source object, set the auth object's type value to OAUTH. If you specify CODEPIPELINE for the Type property, don't specify this property. For all of the other types, you must specify Location. + /// 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 CodePipeline, location should not be specified. If it is specified, CodePipeline ignores it. This is because CodePipeline uses the settings in a pipeline's source action instead of this value. For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file (for example, https://git-codecommit..amazonaws.com/v1/repos/). For source code in an Amazon S3 input bucket, one of the following. The path to the ZIP file that contains the source code (for example, //.zip). The path to the folder that contains the source code (for example, ///). For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your GitHub account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub Authorize application page, for Organization access, choose Request access next to each repository you want to allow CodeBuild to have access to, and then choose Authorize application. (After you have connected to your GitHub account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the source object, set the auth object's type value to OAUTH. For source code in an GitLab or self-managed GitLab repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your GitLab account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitLab, on the Connections Authorize application page, choose Authorize. Then on the CodeConnections Create GitLab connection page, choose Connect to GitLab. (After you have connected to your GitLab account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to override the default connection and use this connection instead, set the auth object's type value to CODECONNECTIONS in the source object. For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your Bitbucket account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with Bitbucket, on the Bitbucket Confirm access to your account page, choose Grant access. (After you have connected to your Bitbucket account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the source object, set the auth object's type value to OAUTH. If you specify CODEPIPELINE for the Type property, don't specify this property. For all of the other types, you must specify Location. public let location: String? /// Set to true to report the status of a build's start and finish to your source provider. This option is valid only when your source provider is GitHub, GitHub Enterprise, GitLab, GitLab Self Managed, or Bitbucket. If this is set and you use a different source provider, an invalidInputException is thrown. To be able to report the build status to the source provider, the user associated with the source provider must /// have write access to the repo. If the user does not have write access, the build status cannot be updated. For more information, see Source provider access in the CodeBuild User Guide. The status of a build triggered by a webhook is always reported to your source provider. If your project's builds are triggered by a webhook, you must push a new commit to the repo for a change to this property to take effect. @@ -4602,7 +4605,7 @@ extension CodeBuild { public let excludeMatchedPattern: Bool? /// For a WebHookFilter that uses EVENT type, a comma-separated string that specifies one or more events. For example, the webhook filter PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED allows all push, pull request created, and pull request updated events to trigger a build. For a WebHookFilter that uses any of the other filter types, a regular expression pattern. For example, a WebHookFilter that uses HEAD_REF for its type and the pattern ^refs/heads/ triggers a build when the head reference is a branch with a reference name refs/heads/branch-name. public let pattern: String - /// The type of webhook filter. There are eight webhook filter types: EVENT, ACTOR_ACCOUNT_ID, HEAD_REF, BASE_REF, FILE_PATH, COMMIT_MESSAGE, TAG_NAME, and RELEASE_NAME. EVENT A webhook event triggers a build when the provided pattern matches one of eight event types: PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_CLOSED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED, RELEASED, and PRERELEASED. The EVENT patterns are specified as a comma-separated string. For example, PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED filters all push, pull request created, and pull request updated events. The PULL_REQUEST_REOPENED works with GitHub and GitHub Enterprise only. The RELEASED and PRERELEASED work with GitHub only. ACTOR_ACCOUNT_ID A webhook event triggers a build when a GitHub, GitHub Enterprise, or Bitbucket account ID matches the regular expression pattern. HEAD_REF A webhook event triggers a build when the head reference matches the regular expression pattern. For example, refs/heads/branch-name and refs/tags/tag-name. Works with GitHub and GitHub Enterprise push, GitHub and GitHub Enterprise pull request, Bitbucket push, and Bitbucket pull request events. BASE_REF A webhook event triggers a build when the base reference matches the regular expression pattern. For example, refs/heads/branch-name. Works with pull request events only. FILE_PATH A webhook triggers a build when the path of a changed file matches the regular expression pattern. Works with GitHub and Bitbucket events push and pull requests events. Also works with GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events. COMMIT_MESSAGE A webhook triggers a build when the head commit message matches the regular expression pattern. Works with GitHub and Bitbucket events push and pull requests events. Also works with GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events. TAG_NAME A webhook triggers a build when the tag name of the release matches the regular expression pattern. Works with RELEASED and PRERELEASED events only. RELEASE_NAME A webhook triggers a build when the release name matches the regular expression pattern. Works with RELEASED and PRERELEASED events only. + /// The type of webhook filter. There are nine webhook filter types: EVENT, ACTOR_ACCOUNT_ID, HEAD_REF, BASE_REF, FILE_PATH, COMMIT_MESSAGE, TAG_NAME, RELEASE_NAME, and WORKFLOW_NAME. EVENT A webhook event triggers a build when the provided pattern matches one of nine event types: PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_CLOSED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED, RELEASED, PRERELEASED, and WORKFLOW_JOB_QUEUED. The EVENT patterns are specified as a comma-separated string. For example, PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED filters all push, pull request created, and pull request updated events. The PULL_REQUEST_REOPENED works with GitHub and GitHub Enterprise only. The RELEASED, PRERELEASED, and WORKFLOW_JOB_QUEUED work with GitHub only. ACTOR_ACCOUNT_ID A webhook event triggers a build when a GitHub, GitHub Enterprise, or Bitbucket account ID matches the regular expression pattern. HEAD_REF A webhook event triggers a build when the head reference matches the regular expression pattern. For example, refs/heads/branch-name and refs/tags/tag-name. Works with GitHub and GitHub Enterprise push, GitHub and GitHub Enterprise pull request, Bitbucket push, and Bitbucket pull request events. BASE_REF A webhook event triggers a build when the base reference matches the regular expression pattern. For example, refs/heads/branch-name. Works with pull request events only. FILE_PATH A webhook triggers a build when the path of a changed file matches the regular expression pattern. Works with GitHub and Bitbucket events push and pull requests events. Also works with GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events. COMMIT_MESSAGE A webhook triggers a build when the head commit message matches the regular expression pattern. Works with GitHub and Bitbucket events push and pull requests events. Also works with GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events. TAG_NAME A webhook triggers a build when the tag name of the release matches the regular expression pattern. Works with RELEASED and PRERELEASED events only. RELEASE_NAME A webhook triggers a build when the release name matches the regular expression pattern. Works with RELEASED and PRERELEASED events only. WORKFLOW_NAME A webhook triggers a build when the workflow name matches the regular expression pattern. Works with WORKFLOW_JOB_QUEUED events only. public let type: WebhookFilterType public init(excludeMatchedPattern: Bool? = nil, pattern: String, type: WebhookFilterType) { diff --git a/Sources/Soto/Services/CodePipeline/CodePipeline_api.swift b/Sources/Soto/Services/CodePipeline/CodePipeline_api.swift index 3e2a61bd5e..555e300e23 100644 --- a/Sources/Soto/Services/CodePipeline/CodePipeline_api.swift +++ b/Sources/Soto/Services/CodePipeline/CodePipeline_api.swift @@ -517,6 +517,19 @@ public struct CodePipeline: AWSService { ) } + /// Rolls back a stage execution. + @Sendable + public func rollbackStage(_ input: RollbackStageInput, logger: Logger = AWSClient.loggingDisabled) async throws -> RollbackStageOutput { + return try await self.client.execute( + operation: "RollbackStage", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Starts the specified pipeline. Specifically, it begins processing the latest commit to the source location specified as part of the pipeline. @Sendable public func startPipelineExecution(_ input: StartPipelineExecutionInput, logger: Logger = AWSClient.loggingDisabled) async throws -> StartPipelineExecutionOutput { @@ -748,6 +761,7 @@ extension CodePipeline.ListActionTypesInput: AWSPaginateToken { extension CodePipeline.ListPipelineExecutionsInput: AWSPaginateToken { public func usingPaginationToken(_ token: String) -> CodePipeline.ListPipelineExecutionsInput { return .init( + filter: self.filter, maxResults: self.maxResults, nextToken: token, pipelineName: self.pipelineName diff --git a/Sources/Soto/Services/CodePipeline/CodePipeline_shapes.swift b/Sources/Soto/Services/CodePipeline/CodePipeline_shapes.swift index 75f7ffd9b3..2d48f80075 100644 --- a/Sources/Soto/Services/CodePipeline/CodePipeline_shapes.swift +++ b/Sources/Soto/Services/CodePipeline/CodePipeline_shapes.swift @@ -91,6 +91,12 @@ extension CodePipeline { public var description: String { return self.rawValue } } + public enum ExecutionType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case rollback = "ROLLBACK" + case standard = "STANDARD" + public var description: String { return self.rawValue } + } + public enum ExecutorType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case jobWorker = "JobWorker" case lambda = "Lambda" @@ -147,6 +153,11 @@ extension CodePipeline { public var description: String { return self.rawValue } } + public enum Result: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case rollback = "ROLLBACK" + public var description: String { return self.rawValue } + } + public enum SourceRevisionType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case commitId = "COMMIT_ID" case imageDigest = "IMAGE_DIGEST" @@ -183,8 +194,10 @@ extension CodePipeline { } public enum TriggerType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case automatedRollback = "AutomatedRollback" case cloudWatchEvent = "CloudWatchEvent" case createPipeline = "CreatePipeline" + case manualRollback = "ManualRollback" case pollForSourceChanges = "PollForSourceChanges" case putActionRevision = "PutActionRevision" case startPipelineExecution = "StartPipelineExecution" @@ -1666,6 +1679,19 @@ extension CodePipeline { } } + public struct FailureConditions: AWSEncodableShape & AWSDecodableShape { + /// The specified result for when the failure conditions are met, such as rolling back the stage. + public let result: Result? + + public init(result: Result? = nil) { + self.result = result + } + + private enum CodingKeys: String, CodingKey { + case result = "result" + } + } + public struct FailureDetails: AWSEncodableShape { /// The external ID of the run of the action that failed. public let externalExecutionId: String? @@ -2403,6 +2429,8 @@ extension CodePipeline { } public struct ListPipelineExecutionsInput: AWSEncodableShape { + /// The pipeline execution to filter on. + public let filter: PipelineExecutionFilter? /// The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned nextToken value. Pipeline history is limited to the most recent 12 months, based on pipeline execution start times. Default value is 100. public let maxResults: Int? /// 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. @@ -2410,13 +2438,15 @@ extension CodePipeline { /// The name of the pipeline for which you want to get execution summary information. public let pipelineName: String - public init(maxResults: Int? = nil, nextToken: String? = nil, pipelineName: String) { + public init(filter: PipelineExecutionFilter? = nil, maxResults: Int? = nil, nextToken: String? = nil, pipelineName: String) { + self.filter = filter self.maxResults = maxResults self.nextToken = nextToken self.pipelineName = pipelineName } public func validate(name: String) throws { + try self.filter?.validate(name: "\(name).filter") try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 2048) @@ -2427,6 +2457,7 @@ extension CodePipeline { } private enum CodingKeys: String, CodingKey { + case filter = "filter" case maxResults = "maxResults" case nextToken = "nextToken" case pipelineName = "pipelineName" @@ -2743,12 +2774,16 @@ extension CodePipeline { public let artifactRevisions: [ArtifactRevision]? /// The method that the pipeline will use to handle multiple executions. The default mode is SUPERSEDED. public let executionMode: ExecutionMode? + /// The type of the pipeline execution. + public let executionType: ExecutionType? /// The ID of the pipeline execution. public let pipelineExecutionId: String? /// The name of the pipeline with the specified pipeline execution. public let pipelineName: String? /// The version number of the pipeline with the specified pipeline execution. public let pipelineVersion: Int? + /// The metadata about the execution pertaining to stage rollback. + public let rollbackMetadata: PipelineRollbackMetadata? /// The status of the pipeline execution. Cancelled: The pipeline’s definition was updated before the pipeline execution could be completed. InProgress: The pipeline execution is currently running. Stopped: The pipeline execution was manually stopped. For more information, see Stopped Executions. Stopping: The pipeline execution received a request to be manually stopped. Depending on the selected stop mode, the execution is either completing or abandoning in-progress actions. For more information, see Stopped Executions. 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. For more information, see Superseded Executions. Failed: The pipeline execution was not completed successfully. public let status: PipelineExecutionStatus? /// A summary that contains a description of the pipeline execution status. @@ -2757,12 +2792,14 @@ extension CodePipeline { /// A list of pipeline variables used for the pipeline execution. public let variables: [ResolvedPipelineVariable]? - public init(artifactRevisions: [ArtifactRevision]? = nil, executionMode: ExecutionMode? = nil, pipelineExecutionId: String? = nil, pipelineName: String? = nil, pipelineVersion: Int? = nil, status: PipelineExecutionStatus? = nil, statusSummary: String? = nil, trigger: ExecutionTrigger? = nil, variables: [ResolvedPipelineVariable]? = nil) { + public init(artifactRevisions: [ArtifactRevision]? = nil, executionMode: ExecutionMode? = nil, executionType: ExecutionType? = nil, pipelineExecutionId: String? = nil, pipelineName: String? = nil, pipelineVersion: Int? = nil, rollbackMetadata: PipelineRollbackMetadata? = nil, status: PipelineExecutionStatus? = nil, statusSummary: String? = nil, trigger: ExecutionTrigger? = nil, variables: [ResolvedPipelineVariable]? = nil) { self.artifactRevisions = artifactRevisions self.executionMode = executionMode + self.executionType = executionType self.pipelineExecutionId = pipelineExecutionId self.pipelineName = pipelineName self.pipelineVersion = pipelineVersion + self.rollbackMetadata = rollbackMetadata self.status = status self.statusSummary = statusSummary self.trigger = trigger @@ -2772,9 +2809,11 @@ extension CodePipeline { private enum CodingKeys: String, CodingKey { case artifactRevisions = "artifactRevisions" case executionMode = "executionMode" + case executionType = "executionType" case pipelineExecutionId = "pipelineExecutionId" case pipelineName = "pipelineName" case pipelineVersion = "pipelineVersion" + case rollbackMetadata = "rollbackMetadata" case status = "status" case statusSummary = "statusSummary" case trigger = "trigger" @@ -2782,42 +2821,71 @@ extension CodePipeline { } } + public struct PipelineExecutionFilter: AWSEncodableShape { + /// Filter for pipeline executions where the stage was successful in the current pipeline version. + public let succeededInStage: SucceededInStageFilter? + + public init(succeededInStage: SucceededInStageFilter? = nil) { + self.succeededInStage = succeededInStage + } + + public func validate(name: String) throws { + try self.succeededInStage?.validate(name: "\(name).succeededInStage") + } + + private enum CodingKeys: String, CodingKey { + case succeededInStage = "succeededInStage" + } + } + public struct PipelineExecutionSummary: AWSDecodableShape { /// The method that the pipeline will use to handle multiple executions. The default mode is SUPERSEDED. public let executionMode: ExecutionMode? + /// Type of the pipeline execution. + public let executionType: ExecutionType? /// The date and time of the last change to the pipeline execution, in timestamp format. public let lastUpdateTime: Date? /// The ID of the pipeline execution. public let pipelineExecutionId: String? + /// The metadata for the stage execution to be rolled back. + public let rollbackMetadata: PipelineRollbackMetadata? /// A list of the source artifact revisions that initiated a pipeline execution. public let sourceRevisions: [SourceRevision]? /// The date and time when the pipeline execution began, in timestamp format. public let startTime: Date? /// The status of the pipeline execution. InProgress: The pipeline execution is currently running. Stopped: The pipeline execution was manually stopped. For more information, see Stopped Executions. Stopping: The pipeline execution received a request to be manually stopped. Depending on the selected stop mode, the execution is either completing or abandoning in-progress actions. For more information, see Stopped Executions. 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. For more information, see Superseded Executions. Failed: The pipeline execution was not completed successfully. public let status: PipelineExecutionStatus? + /// Status summary for the pipeline. + public let statusSummary: String? /// The interaction that stopped a pipeline execution. public let stopTrigger: StopExecutionTrigger? /// The interaction or event that started a pipeline execution, such as automated change detection or a StartPipelineExecution API call. public let trigger: ExecutionTrigger? - public init(executionMode: ExecutionMode? = nil, lastUpdateTime: Date? = nil, pipelineExecutionId: String? = nil, sourceRevisions: [SourceRevision]? = nil, startTime: Date? = nil, status: PipelineExecutionStatus? = nil, stopTrigger: StopExecutionTrigger? = nil, trigger: ExecutionTrigger? = nil) { + public init(executionMode: ExecutionMode? = nil, executionType: ExecutionType? = nil, lastUpdateTime: Date? = nil, pipelineExecutionId: String? = nil, rollbackMetadata: PipelineRollbackMetadata? = nil, sourceRevisions: [SourceRevision]? = nil, startTime: Date? = nil, status: PipelineExecutionStatus? = nil, statusSummary: String? = nil, stopTrigger: StopExecutionTrigger? = nil, trigger: ExecutionTrigger? = nil) { self.executionMode = executionMode + self.executionType = executionType self.lastUpdateTime = lastUpdateTime self.pipelineExecutionId = pipelineExecutionId + self.rollbackMetadata = rollbackMetadata self.sourceRevisions = sourceRevisions self.startTime = startTime self.status = status + self.statusSummary = statusSummary self.stopTrigger = stopTrigger self.trigger = trigger } private enum CodingKeys: String, CodingKey { case executionMode = "executionMode" + case executionType = "executionType" case lastUpdateTime = "lastUpdateTime" case pipelineExecutionId = "pipelineExecutionId" + case rollbackMetadata = "rollbackMetadata" case sourceRevisions = "sourceRevisions" case startTime = "startTime" case status = "status" + case statusSummary = "statusSummary" case stopTrigger = "stopTrigger" case trigger = "trigger" } @@ -2848,6 +2916,19 @@ extension CodePipeline { } } + public struct PipelineRollbackMetadata: AWSDecodableShape { + /// The pipeline execution ID to which the stage will be rolled back. + public let rollbackTargetPipelineExecutionId: String? + + public init(rollbackTargetPipelineExecutionId: String? = nil) { + self.rollbackTargetPipelineExecutionId = rollbackTargetPipelineExecutionId + } + + private enum CodingKeys: String, CodingKey { + case rollbackTargetPipelineExecutionId = "rollbackTargetPipelineExecutionId" + } + } + public struct PipelineSummary: AWSDecodableShape { /// The date and time the pipeline was created, in timestamp format. public let created: Date? @@ -3409,6 +3490,50 @@ extension CodePipeline { } } + public struct RollbackStageInput: AWSEncodableShape { + /// The name of the pipeline for which the stage will be rolled back. + public let pipelineName: String + /// The name of the stage in the pipeline to be rolled back. + public let stageName: String + /// The pipeline execution ID for the stage to be rolled back to. + public let targetPipelineExecutionId: String + + public init(pipelineName: String, stageName: String, targetPipelineExecutionId: String) { + self.pipelineName = pipelineName + self.stageName = stageName + self.targetPipelineExecutionId = targetPipelineExecutionId + } + + public func validate(name: String) throws { + try self.validate(self.pipelineName, name: "pipelineName", parent: name, max: 100) + try self.validate(self.pipelineName, name: "pipelineName", parent: name, min: 1) + try self.validate(self.pipelineName, name: "pipelineName", parent: name, pattern: "^[A-Za-z0-9.@\\-_]+$") + try self.validate(self.stageName, name: "stageName", parent: name, max: 100) + try self.validate(self.stageName, name: "stageName", parent: name, min: 1) + try self.validate(self.stageName, name: "stageName", parent: name, pattern: "^[A-Za-z0-9.@\\-_]+$") + try self.validate(self.targetPipelineExecutionId, name: "targetPipelineExecutionId", parent: name, pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$") + } + + private enum CodingKeys: String, CodingKey { + case pipelineName = "pipelineName" + case stageName = "stageName" + case targetPipelineExecutionId = "targetPipelineExecutionId" + } + } + + public struct RollbackStageOutput: AWSDecodableShape { + /// The execution ID of the pipeline execution for the stage that has been rolled back. + public let pipelineExecutionId: String + + public init(pipelineExecutionId: String) { + self.pipelineExecutionId = pipelineExecutionId + } + + private enum CodingKeys: String, CodingKey { + case pipelineExecutionId = "pipelineExecutionId" + } + } + public struct S3ArtifactLocation: AWSDecodableShape { /// The name of the S3 bucket. public let bucketName: String @@ -3517,11 +3642,14 @@ extension CodePipeline { public let blockers: [BlockerDeclaration]? /// The name of the stage. public let name: String + /// The method to use when a stage has not completed successfully. For example, configuring this field for rollback will roll back a failed stage automatically to the last successful pipeline execution in the stage. + public let onFailure: FailureConditions? - public init(actions: [ActionDeclaration], blockers: [BlockerDeclaration]? = nil, name: String) { + public init(actions: [ActionDeclaration], blockers: [BlockerDeclaration]? = nil, name: String, onFailure: FailureConditions? = nil) { self.actions = actions self.blockers = blockers self.name = name + self.onFailure = onFailure } public func validate(name: String) throws { @@ -3540,6 +3668,7 @@ extension CodePipeline { case actions = "actions" case blockers = "blockers" case name = "name" + case onFailure = "onFailure" } } @@ -3548,15 +3677,19 @@ extension CodePipeline { public let pipelineExecutionId: String /// The status of the stage, or for a completed stage, the last status of the stage. A status of cancelled means that the pipeline’s definition was updated before the stage execution could be completed. public let status: StageExecutionStatus + /// The type of pipeline execution for the stage, such as a rollback pipeline execution. + public let type: ExecutionType? - public init(pipelineExecutionId: String, status: StageExecutionStatus) { + public init(pipelineExecutionId: String, status: StageExecutionStatus, type: ExecutionType? = nil) { self.pipelineExecutionId = pipelineExecutionId self.status = status + self.type = type } private enum CodingKeys: String, CodingKey { case pipelineExecutionId = "pipelineExecutionId" case status = "status" + case type = "type" } } @@ -3707,6 +3840,25 @@ extension CodePipeline { } } + public struct SucceededInStageFilter: AWSEncodableShape { + /// The name of the stage for filtering for pipeline executions where the stage was successful in the current pipeline version. + public let stageName: String? + + public init(stageName: String? = nil) { + self.stageName = stageName + } + + public func validate(name: String) throws { + try self.validate(self.stageName, name: "stageName", parent: name, max: 100) + try self.validate(self.stageName, name: "stageName", parent: name, min: 1) + try self.validate(self.stageName, name: "stageName", parent: name, pattern: "^[A-Za-z0-9.@\\-_]+$") + } + + private enum CodingKeys: String, CodingKey { + case stageName = "stageName" + } + } + public struct Tag: AWSEncodableShape & AWSDecodableShape { /// The tag's key. public let key: String @@ -4069,6 +4221,7 @@ public struct CodePipelineErrorType: AWSErrorType { case outputVariablesSizeExceededException = "OutputVariablesSizeExceededException" case pipelineExecutionNotFoundException = "PipelineExecutionNotFoundException" case pipelineExecutionNotStoppableException = "PipelineExecutionNotStoppableException" + case pipelineExecutionOutdatedException = "PipelineExecutionOutdatedException" case pipelineNameInUseException = "PipelineNameInUseException" case pipelineNotFoundException = "PipelineNotFoundException" case pipelineVersionNotFoundException = "PipelineVersionNotFoundException" @@ -4077,6 +4230,7 @@ public struct CodePipelineErrorType: AWSErrorType { case stageNotFoundException = "StageNotFoundException" case stageNotRetryableException = "StageNotRetryableException" case tooManyTagsException = "TooManyTagsException" + case unableToRollbackStageException = "UnableToRollbackStageException" case validationException = "ValidationException" case webhookNotFoundException = "WebhookNotFoundException" } @@ -4153,6 +4307,8 @@ public struct CodePipelineErrorType: AWSErrorType { public static var pipelineExecutionNotFoundException: Self { .init(.pipelineExecutionNotFoundException) } /// Unable to stop the pipeline execution. The execution might already be in a Stopped state, or it might no longer be in progress. public static var pipelineExecutionNotStoppableException: Self { .init(.pipelineExecutionNotStoppableException) } + /// The specified pipeline execution is outdated and cannot be used as a target pipeline execution for rollback. + public static var pipelineExecutionOutdatedException: Self { .init(.pipelineExecutionOutdatedException) } /// The specified pipeline name is already in use. public static var pipelineNameInUseException: Self { .init(.pipelineNameInUseException) } /// The pipeline was specified in an invalid format or cannot be found. @@ -4169,6 +4325,8 @@ public struct CodePipelineErrorType: AWSErrorType { public static var stageNotRetryableException: Self { .init(.stageNotRetryableException) } /// The tags limit for a resource has been exceeded. public static var tooManyTagsException: Self { .init(.tooManyTagsException) } + /// Unable to roll back the stage. The cause might be if the pipeline version has changed since the target pipeline execution was deployed, the stage is currently running, or an incorrect target pipeline execution ID was provided. + public static var unableToRollbackStageException: Self { .init(.unableToRollbackStageException) } /// The validation was specified in an invalid format. public static var validationException: Self { .init(.validationException) } /// The specified webhook was entered in an invalid format or cannot be found. diff --git a/Sources/Soto/Services/CognitoIdentityProvider/CognitoIdentityProvider_shapes.swift b/Sources/Soto/Services/CognitoIdentityProvider/CognitoIdentityProvider_shapes.swift index 6600b184fa..7e448c654f 100644 --- a/Sources/Soto/Services/CognitoIdentityProvider/CognitoIdentityProvider_shapes.swift +++ b/Sources/Soto/Services/CognitoIdentityProvider/CognitoIdentityProvider_shapes.swift @@ -878,7 +878,8 @@ extension CognitoIdentityProvider { public let userAttributes: [AttributeType]? /// The date the user was created. public let userCreateDate: Date? - /// The date and time, in ISO 8601 format, when the item was modified. + /// The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let userLastModifiedDate: Date? /// The MFA options that are activated for the user. The possible values in this list are SMS_MFA and SOFTWARE_TOKEN_MFA. public let userMFASettingList: [String]? @@ -1767,7 +1768,8 @@ extension CognitoIdentityProvider { public struct AuthEventType: AWSDecodableShape { /// The challenge responses. public let challengeResponses: [ChallengeResponseType]? - /// The date and time, in ISO 8601 format, when the item was created. + /// The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let creationDate: Date? /// The user context data captured at the time of an event request. This value provides additional information about the client from which event the request is received. public let eventContextData: EventContextDataType? @@ -2315,7 +2317,7 @@ extension CognitoIdentityProvider { } public struct CreateResourceServerRequest: AWSEncodableShape { - /// A unique resource server identifier for the resource server. This could be an HTTPS endpoint where the resource server is located, such as https://my-weather-api.example.com. + /// A unique resource server identifier for the resource server. The identifier can be an API friendly name like solar-system-data. You can also set an API URL like https://solar-system-data-api.example.com as your identifier. Amazon Cognito represents scopes in the access token in the format $resource-server-identifier/$scope. Longer scope-identifier strings increase the size of your access tokens. public let identifier: String /// A friendly name for the resource server. public let name: String @@ -2444,7 +2446,7 @@ extension CognitoIdentityProvider { public let callbackURLs: [String]? /// The client name for the user pool client you would like to create. public let clientName: String - /// The default redirect URI. Must be in the CallbackURLs list. A redirect URI must: Be an absolute URI. Be registered with the authorization server. Not include a fragment component. See OAuth 2.0 - Redirection Endpoint. Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only. App callback URLs such as myapp://example are also supported. + /// The default redirect URI. In app clients with one assigned IdP, replaces redirect_uri in authentication requests. Must be in the CallbackURLs list. A redirect URI must: Be an absolute URI. Be registered with the authorization server. Not include a fragment component. For more information, see Default redirect URI. Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only. App callback URLs such as myapp://example are also supported. public let defaultRedirectURI: String? /// Activates the propagation of additional user context data. For more information about propagation of user context data, see Adding advanced security to a user pool. If you don’t include this parameter, you can't send device fingerprint information, including source IP address, to Amazon Cognito advanced security. You can only activate EnablePropagateAdditionalUserContextData in an app client that has a client secret. public let enablePropagateAdditionalUserContextData: Bool? @@ -3116,7 +3118,7 @@ extension CognitoIdentityProvider { } public struct DescribeResourceServerRequest: AWSEncodableShape { - /// The identifier for the resource server + /// A unique resource server identifier for the resource server. The identifier can be an API friendly name like solar-system-data. You can also set an API URL like https://solar-system-data-api.example.com as your identifier. Amazon Cognito represents scopes in the access token in the format $resource-server-identifier/$scope. Longer scope-identifier strings increase the size of your access tokens. public let identifier: String /// The user pool ID for the user pool that hosts the resource server. public let userPoolId: String @@ -3383,7 +3385,8 @@ extension CognitoIdentityProvider { public let deviceKey: String? /// The date when the device was last authenticated. public let deviceLastAuthenticatedDate: Date? - /// The date and time, in ISO 8601 format, when the item was modified. + /// The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let deviceLastModifiedDate: Date? public init(deviceAttributes: [AttributeType]? = nil, deviceCreateDate: Date? = nil, deviceKey: String? = nil, deviceLastAuthenticatedDate: Date? = nil, deviceLastModifiedDate: Date? = nil) { @@ -4058,13 +4061,15 @@ extension CognitoIdentityProvider { } public struct GroupType: AWSDecodableShape { - /// The date and time, in ISO 8601 format, when the item was created. + /// The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let creationDate: Date? /// A string containing the description of the group. public let description: String? /// The name of the group. public let groupName: String? - /// The date and time, in ISO 8601 format, when the item was modified. + /// The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let lastModifiedDate: Date? /// A non-negative 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 ornull Precedence values. If a user belongs to two or more groups, it is the group with the lowest precedence value whose role ARN is given in the user's tokens for the cognito:roles and cognito:preferred_role claims. 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 isn't set in users' tokens. The default Precedence value is null. public let precedence: Int? @@ -4119,11 +4124,13 @@ extension CognitoIdentityProvider { public struct IdentityProviderType: AWSDecodableShape { /// A mapping of IdP attributes to standard and custom user pool attributes. public let attributeMapping: [String: String]? - /// The date and time, in ISO 8601 format, when the item was created. + /// The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let creationDate: Date? /// A list of IdP identifiers. public let idpIdentifiers: [String]? - /// The date and time, in ISO 8601 format, when the item was modified. + /// The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let lastModifiedDate: Date? /// The scopes, URLs, and identifiers for your external identity provider. The following /// examples describe the provider detail keys for each IdP type. These values and their @@ -5118,7 +5125,8 @@ extension CognitoIdentityProvider { } public struct ProviderDescription: AWSDecodableShape { - /// The date and time, in ISO 8601 format, when the item was created. + /// The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let creationDate: Date? /// The date the provider was last modified. public let lastModifiedDate: Date? @@ -5286,7 +5294,7 @@ extension CognitoIdentityProvider { } public struct ResourceServerType: AWSDecodableShape { - /// The identifier for the resource server. + /// A unique resource server identifier for the resource server. The identifier can be an API friendly name like solar-system-data. You can also set an API URL like https://solar-system-data-api.example.com as your identifier. Amazon Cognito represents scopes in the access token in the format $resource-server-identifier/$scope. Longer scope-identifier strings increase the size of your access tokens. public let identifier: String? /// The name of the resource server. public let name: String? @@ -5437,7 +5445,8 @@ extension CognitoIdentityProvider { public let clientId: String? /// The compromised credentials risk configuration object, including the EventFilter and the EventAction. public let compromisedCredentialsRiskConfiguration: CompromisedCredentialsRiskConfigurationType? - /// The date and time, in ISO 8601 format, when the item was modified. + /// The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let lastModifiedDate: Date? /// The configuration to override the risk decision. public let riskExceptionConfiguration: RiskExceptionConfigurationType? @@ -6140,7 +6149,8 @@ extension CognitoIdentityProvider { public struct UICustomizationType: AWSDecodableShape { /// The client ID for the client app. public let clientId: String? - /// The date and time, in ISO 8601 format, when the item was created. + /// The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let creationDate: Date? /// The CSS values in the UI customization. public let css: String? @@ -6148,7 +6158,8 @@ extension CognitoIdentityProvider { public let cssVersion: String? /// The logo image for the UI customization. public let imageUrl: String? - /// The date and time, in ISO 8601 format, when the item was modified. + /// The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let lastModifiedDate: Date? /// The user pool ID for the user pool. public let userPoolId: String? @@ -6413,7 +6424,7 @@ extension CognitoIdentityProvider { } public struct UpdateResourceServerRequest: AWSEncodableShape { - /// The identifier for the resource server. + /// A unique resource server identifier for the resource server. The identifier can be an API friendly name like solar-system-data. You can also set an API URL like https://solar-system-data-api.example.com as your identifier. Amazon Cognito represents scopes in the access token in the format $resource-server-identifier/$scope. Longer scope-identifier strings increase the size of your access tokens. public let identifier: String /// The name of the resource server. public let name: String @@ -6924,7 +6935,8 @@ extension CognitoIdentityProvider { public let completionDate: Date? /// The message returned when the user import job is completed. public let completionMessage: String? - /// The date and time, in ISO 8601 format, when the item was created. + /// The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let creationDate: Date? /// The number of users that couldn't be imported. public let failedUsers: Int64? @@ -7046,7 +7058,8 @@ extension CognitoIdentityProvider { public let clientName: String? /// The client secret from the user pool request of the client type. public let clientSecret: String? - /// The date and time, in ISO 8601 format, when the item was created. + /// The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let creationDate: Date? /// The default redirect URI. Must be in the CallbackURLs list. A redirect URI must: Be an absolute URI. Be registered with the authorization server. Not include a fragment component. See OAuth 2.0 - Redirection Endpoint. Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only. App callback URLs such as myapp://example are also supported. public let defaultRedirectURI: String? @@ -7069,7 +7082,8 @@ extension CognitoIdentityProvider { /// Valid range is displayed below in seconds. If you don't specify otherwise in the configuration of your app client, your ID /// tokens are valid for one hour. public let idTokenValidity: Int? - /// The date and time, in ISO 8601 format, when the item was modified. + /// The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let lastModifiedDate: Date? /// A list of allowed logout URLs for the IdPs. public let logoutURLs: [String]? @@ -7155,13 +7169,15 @@ extension CognitoIdentityProvider { } public struct UserPoolDescriptionType: AWSDecodableShape { - /// The date and time, in ISO 8601 format, when the item was created. + /// The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let creationDate: Date? /// The ID in a user pool description. public let id: String? /// The Lambda configuration information in a user pool description. public let lambdaConfig: LambdaConfigType? - /// The date and time, in ISO 8601 format, when the item was modified. + /// The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let lastModifiedDate: Date? /// The name in a user pool description. public let name: String? @@ -7225,7 +7241,8 @@ extension CognitoIdentityProvider { public let arn: String? /// The attributes that are auto-verified in a user pool. public let autoVerifiedAttributes: [VerifiedAttributeType]? - /// The date and time, in ISO 8601 format, when the item was created. + /// The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let creationDate: Date? /// A custom domain name that you provide to Amazon Cognito. This parameter applies only if you use a custom domain to host the sign-up and sign-in pages for your application. An example of a custom domain name might be auth.example.com. For more information about adding a custom domain to your user pool, see Using Your Own Domain for the Hosted UI. public let customDomain: String? @@ -7254,7 +7271,8 @@ extension CognitoIdentityProvider { public let id: String? /// The Lambda triggers associated with the user pool. public let lambdaConfig: LambdaConfigType? - /// The date and time, in ISO 8601 format, when the item was modified. + /// The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let lastModifiedDate: Date? /// Can be one of the following values: OFF - MFA tokens aren't required and can't be specified during user registration. ON - MFA tokens are required for all user registrations. You can only specify required when you're initially creating a user pool. OPTIONAL - Users have the option when registering to create an MFA token. public let mfaConfiguration: UserPoolMfaType? @@ -7409,7 +7427,8 @@ extension CognitoIdentityProvider { public let mfaOptions: [MFAOptionType]? /// The creation date of the user. public let userCreateDate: Date? - /// The date and time, in ISO 8601 format, when the item was modified. + /// The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a + /// human-readable format like ISO 8601 or a Java Date object. public let userLastModifiedDate: Date? /// The user name of the user you want to describe. public let username: String? diff --git a/Sources/Soto/Services/ConfigService/ConfigService_shapes.swift b/Sources/Soto/Services/ConfigService/ConfigService_shapes.swift index ed12a035f1..cbc4e51531 100644 --- a/Sources/Soto/Services/ConfigService/ConfigService_shapes.swift +++ b/Sources/Soto/Services/ConfigService/ConfigService_shapes.swift @@ -1074,7 +1074,10 @@ extension ConfigService { public let configuration: String? /// The time when the recording of configuration changes was initiated for the resource. public let configurationItemCaptureTime: Date? - /// The time when configuration changes for the resource were delivered. + /// The time when configuration changes for the resource were delivered. This field is optional and is not guaranteed to be present in a configuration item (CI). If you are using daily recording, + /// this field will be populated. However, if you are using continuous recording, + /// this field will be omitted since the delivery time is instantaneous as the CI is available right away. For more information on daily recording and continuous recording, see Recording Frequency in the Config + /// Developer Guide. public let configurationItemDeliveryTime: Date? /// The configuration item status. Valid values include: OK – The resource configuration has been updated. ResourceDiscovered – The resource was newly discovered. ResourceNotRecorded – The resource was discovered, but its configuration was not recorded since the recorder doesn't record resources of this type. ResourceDeleted – The resource was deleted ResourceDeletedNotRecorded – The resource was deleted, but its configuration was not recorded since the recorder doesn't record resources of this type. public let configurationItemStatus: ConfigurationItemStatus? @@ -1733,7 +1736,10 @@ extension ConfigService { /// The time when the recording of configuration changes was /// initiated for the resource. public let configurationItemCaptureTime: Date? - /// The time when configuration changes for the resource were delivered. + /// The time when configuration changes for the resource were delivered. This field is optional and is not guaranteed to be present in a configuration item (CI). If you are using daily recording, + /// this field will be populated. However, if you are using continuous recording, + /// this field will be omitted since the delivery time is instantaneous as the CI is available right away. For more information on daily recording and continuous recording, see Recording Frequency in the Config + /// Developer Guide. public let configurationItemDeliveryTime: Date? /// Unique MD5 hash that represents the configuration item's /// state. You can use MD5 hash to compare the states of two or more @@ -2966,7 +2972,7 @@ extension ConfigService { public let configRuleNames: [String]? /// The number of rule evaluation results that you want /// returned. This parameter is required if the rule limit for your account - /// is more than the default of 150 rules. For information about requesting a rule limit increase, see + /// is more than the default of 1000 rules. For information about requesting a rule limit increase, see /// Config Limits in the Amazon Web Services General /// Reference Guide. public let limit: Int? @@ -7290,7 +7296,7 @@ extension ConfigService { public struct ResourceEvaluationFilters: AWSEncodableShape { /// Filters evaluations for a given infrastructure deployment. For example: CFN Stack. public let evaluationContextIdentifier: String? - /// Filters all resource evaluations results based on an evaluation mode. the valid value for this API is Proactive. + /// Filters all resource evaluations results based on an evaluation mode. Currently, DECTECTIVE is not supported as a valid value. Ignore other documentation stating otherwise. public let evaluationMode: EvaluationMode? /// Returns a TimeWindow object. public let timeWindow: TimeWindow? @@ -8237,7 +8243,7 @@ public struct ConfigServiceErrorType: AWSErrorType { /// Delete unused resources using DeleteResourceConfig . public static var maxActiveResourcesExceededException: Self { .init(.maxActiveResourcesExceededException) } /// Failed to add the Config rule because the account already - /// contains the maximum number of 150 rules. Consider deleting any + /// contains the maximum number of 1000 rules. Consider deleting any /// deactivated rules before you add new rules. public static var maxNumberOfConfigRulesExceededException: Self { .init(.maxNumberOfConfigRulesExceededException) } /// You have reached the limit of the number of configuration recorders you can diff --git a/Sources/Soto/Services/Connect/Connect_api.swift b/Sources/Soto/Services/Connect/Connect_api.swift index 8deae6fbf5..6690f7182e 100644 --- a/Sources/Soto/Services/Connect/Connect_api.swift +++ b/Sources/Soto/Services/Connect/Connect_api.swift @@ -303,6 +303,19 @@ public struct Connect: AWSService { ) } + /// Allows you to retrieve metadata about multiple attached files on an associated resource. Each attached file provided in the input list must be associated with the input AssociatedResourceArn. + @Sendable + public func batchGetAttachedFileMetadata(_ input: BatchGetAttachedFileMetadataRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> BatchGetAttachedFileMetadataResponse { + return try await self.client.execute( + operation: "BatchGetAttachedFileMetadata", + path: "/attached-files/{InstanceId}", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Retrieve the flow associations for the given resources. @Sendable public func batchGetFlowAssociation(_ input: BatchGetFlowAssociationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> BatchGetFlowAssociationResponse { @@ -342,6 +355,19 @@ public struct Connect: AWSService { ) } + /// Allows you to confirm that the attached file has been uploaded using the pre-signed URL provided in the StartAttachedFileUpload API. + @Sendable + public func completeAttachedFileUpload(_ input: CompleteAttachedFileUploadRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CompleteAttachedFileUploadResponse { + return try await self.client.execute( + operation: "CompleteAttachedFileUpload", + path: "/attached-files/{InstanceId}/{FileId}", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// This API is in preview release for Amazon Connect and is subject to change. Creates an agent status for the specified Amazon Connect instance. @Sendable public func createAgentStatus(_ input: CreateAgentStatusRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateAgentStatusResponse { @@ -671,6 +697,19 @@ public struct Connect: AWSService { ) } + /// Deletes an attached file along with the underlying S3 Object. The attached file is permanently deleted if S3 bucket versioning is not enabled. + @Sendable + public func deleteAttachedFile(_ input: DeleteAttachedFileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteAttachedFileResponse { + return try await self.client.execute( + operation: "DeleteAttachedFile", + path: "/attached-files/{InstanceId}/{FileId}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Deletes a contact evaluation in the specified Amazon Connect instance. @Sendable public func deleteContactEvaluation(_ input: DeleteContactEvaluationRequest, logger: Logger = AWSClient.loggingDisabled) async throws { @@ -1453,6 +1492,19 @@ public struct Connect: AWSService { ) } + /// Provides a pre-signed URL for download of an approved attached file. This API also returns metadata about the attached file. It will only return a downloadURL if the status of the attached file is APPROVED. + @Sendable + public func getAttachedFile(_ input: GetAttachedFileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetAttachedFileResponse { + return try await self.client.execute( + operation: "GetAttachedFile", + path: "/attached-files/{InstanceId}/{FileId}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Retrieves the contact attributes for the specified contact. @Sendable public func getContactAttributes(_ input: GetContactAttributesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetContactAttributesResponse { @@ -2428,6 +2480,19 @@ public struct Connect: AWSService { ) } + /// Provides a pre-signed Amazon S3 URL in response for uploading your content. You may only use this API to upload attachments to a Connect Case. + @Sendable + public func startAttachedFileUpload(_ input: StartAttachedFileUploadRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartAttachedFileUploadResponse { + return try await self.client.execute( + operation: "StartAttachedFileUpload", + path: "/attached-files/{InstanceId}", + httpMethod: .PUT, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Initiates a flow to start a new chat for the customer. Response of this API provides a token required to obtain credentials from the CreateParticipantConnection API in the Amazon Connect Participant Service. When a new chat contact is successfully created, clients must subscribe to the participant’s connection for the created chat within 5 minutes. This is achieved by invoking CreateParticipantConnection with WEBSOCKET and CONNECTION_CREDENTIALS. A 429 error occurs in the following situations: API rate limit is exceeded. API TPS throttling returns a TooManyRequests exception. The quota for concurrent active chats is exceeded. Active chat throttling returns a LimitExceededException. If you use the ChatDurationInMinutes parameter and receive a 400 error, your account may not support the ability to configure custom chat durations. For more information, contact Amazon Web Services Support. For more information about chat, see Chat in the Amazon Connect Administrator Guide. @Sendable public func startChatContact(_ input: StartChatContactRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartChatContactResponse { diff --git a/Sources/Soto/Services/Connect/Connect_shapes.swift b/Sources/Soto/Services/Connect/Connect_shapes.swift index dc1fd18c74..5032ad0f23 100644 --- a/Sources/Soto/Services/Connect/Connect_shapes.swift +++ b/Sources/Soto/Services/Connect/Connect_shapes.swift @@ -33,6 +33,7 @@ extension Connect { case endAssociatedTasks = "END_ASSOCIATED_TASKS" case generateEventbridgeEvent = "GENERATE_EVENTBRIDGE_EVENT" case sendNotification = "SEND_NOTIFICATION" + case submitAutoEvaluation = "SUBMIT_AUTO_EVALUATION" case updateCase = "UPDATE_CASE" public var description: String { return self.rawValue } } @@ -247,6 +248,19 @@ extension Connect { public var description: String { return self.rawValue } } + public enum FileStatusType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case approved = "APPROVED" + case failed = "FAILED" + case processing = "PROCESSING" + case rejected = "REJECTED" + public var description: String { return self.rawValue } + } + + public enum FileUseCaseType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case attachment = "ATTACHMENT" + public var description: String { return self.rawValue } + } + public enum FlowAssociationResourceType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case smsPhoneNumber = "SMS_PHONE_NUMBER" public var description: String { return self.rawValue } @@ -965,6 +979,47 @@ extension Connect { public var description: String { return self.rawValue } } + public enum CreatedByInfo: AWSEncodableShape & AWSDecodableShape, Sendable { + /// STS or IAM ARN representing the identity of API Caller. SDK users cannot populate this and this value is calculated automatically if ConnectUserArn is not provided. + case awsIdentityArn(String) + /// An agent ARN representing a connect user. + case connectUserArn(String) + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + guard container.allKeys.count == 1, let key = container.allKeys.first else { + let context = DecodingError.Context( + codingPath: container.codingPath, + debugDescription: "Expected exactly one key, but got \(container.allKeys.count)" + ) + throw DecodingError.dataCorrupted(context) + } + switch key { + case .awsIdentityArn: + let value = try container.decode(String.self, forKey: .awsIdentityArn) + self = .awsIdentityArn(value) + case .connectUserArn: + let value = try container.decode(String.self, forKey: .connectUserArn) + self = .connectUserArn(value) + } + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case .awsIdentityArn(let value): + try container.encode(value, forKey: .awsIdentityArn) + case .connectUserArn(let value): + try container.encode(value, forKey: .connectUserArn) + } + } + + private enum CodingKeys: String, CodingKey { + case awsIdentityArn = "AWSIdentityArn" + case connectUserArn = "ConnectUserArn" + } + } + public enum EvaluationAnswerData: AWSEncodableShape & AWSDecodableShape, Sendable { /// The flag to mark the question as not applicable. case notApplicable(Bool) @@ -2166,6 +2221,76 @@ extension Connect { } } + public struct AttachedFile: AWSDecodableShape { + /// The resource to which the attached file is (being) uploaded to. Cases are the only current supported resource. This value must be a valid ARN. + public let associatedResourceArn: String? + /// Represents the identity that created the file. + public let createdBy: CreatedByInfo? + /// The time of Creation of the file resource as an ISO timestamp. It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2024-05-03T02:41:28.172Z. + public let creationTime: String + /// The unique identifier of the attached file resource (ARN). + public let fileArn: String + /// The unique identifier of the attached file resource. + public let fileId: String + /// A case-sensitive name of the attached file being uploaded. + public let fileName: String + /// The size of the attached file in bytes. + public let fileSizeInBytes: Int64 + /// The current status of the attached file. + public let fileStatus: FileStatusType + /// The use case for the file. + public let fileUseCaseType: FileUseCaseType? + /// The tags used to organize, track, or control access for this resource. For example, { "Tags": {"key1":"value1", "key2":"value2"} }. + public let tags: [String: String]? + + public init(associatedResourceArn: String? = nil, createdBy: CreatedByInfo? = nil, creationTime: String, fileArn: String, fileId: String, fileName: String, fileSizeInBytes: Int64, fileStatus: FileStatusType, fileUseCaseType: FileUseCaseType? = nil, tags: [String: String]? = nil) { + self.associatedResourceArn = associatedResourceArn + self.createdBy = createdBy + self.creationTime = creationTime + self.fileArn = fileArn + self.fileId = fileId + self.fileName = fileName + self.fileSizeInBytes = fileSizeInBytes + self.fileStatus = fileStatus + self.fileUseCaseType = fileUseCaseType + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case associatedResourceArn = "AssociatedResourceArn" + case createdBy = "CreatedBy" + case creationTime = "CreationTime" + case fileArn = "FileArn" + case fileId = "FileId" + case fileName = "FileName" + case fileSizeInBytes = "FileSizeInBytes" + case fileStatus = "FileStatus" + case fileUseCaseType = "FileUseCaseType" + case tags = "Tags" + } + } + + public struct AttachedFileError: AWSDecodableShape { + /// Status code describing the failure. + public let errorCode: String? + /// Why the attached file couldn't be retrieved. + public let errorMessage: String? + /// The unique identifier of the attached file resource. + public let fileId: String? + + public init(errorCode: String? = nil, errorMessage: String? = nil, fileId: String? = nil) { + self.errorCode = errorCode + self.errorMessage = errorMessage + self.fileId = fileId + } + + private enum CodingKeys: String, CodingKey { + case errorCode = "ErrorCode" + case errorMessage = "ErrorMessage" + case fileId = "FileId" + } + } + public struct AttachmentReference: AWSDecodableShape { /// Identifier of the attachment reference. public let name: String? @@ -2379,6 +2504,60 @@ extension Connect { } } + public struct BatchGetAttachedFileMetadataRequest: AWSEncodableShape { + /// The resource to which the attached file is (being) uploaded to. Cases are the only current supported resource. This value must be a valid ARN. + public let associatedResourceArn: String + /// The unique identifiers of the attached file resource. + public let fileIds: [String] + /// The unique identifier of the Connect instance. + public let instanceId: String + + public init(associatedResourceArn: String, fileIds: [String], instanceId: String) { + self.associatedResourceArn = associatedResourceArn + self.fileIds = fileIds + self.instanceId = instanceId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.associatedResourceArn, key: "associatedResourceArn") + try container.encode(self.fileIds, forKey: .fileIds) + request.encodePath(self.instanceId, key: "InstanceId") + } + + public func validate(name: String) throws { + try self.fileIds.forEach { + try validate($0, name: "fileIds[]", parent: name, max: 256) + try validate($0, name: "fileIds[]", parent: name, min: 1) + } + try self.validate(self.fileIds, name: "fileIds", parent: name, min: 1) + try self.validate(self.instanceId, name: "instanceId", parent: name, max: 100) + try self.validate(self.instanceId, name: "instanceId", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case fileIds = "FileIds" + } + } + + public struct BatchGetAttachedFileMetadataResponse: AWSDecodableShape { + /// List of errors of attached files that could not be retrieved. + public let errors: [AttachedFileError]? + /// List of attached files that were successfully retrieved. + public let files: [AttachedFile]? + + public init(errors: [AttachedFileError]? = nil, files: [AttachedFile]? = nil) { + self.errors = errors + self.files = files + } + + private enum CodingKeys: String, CodingKey { + case errors = "Errors" + case files = "Files" + } + } + public struct BatchGetFlowAssociationRequest: AWSEncodableShape { /// The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. public let instanceId: String @@ -2712,6 +2891,42 @@ extension Connect { } } + public struct CompleteAttachedFileUploadRequest: AWSEncodableShape { + /// The resource to which the attached file is (being) uploaded to. Cases are the only current supported resource. This value must be a valid ARN. + public let associatedResourceArn: String + /// The unique identifier of the attached file resource. + public let fileId: String + /// The unique identifier of the Connect instance. + public let instanceId: String + + public init(associatedResourceArn: String, fileId: String, instanceId: String) { + self.associatedResourceArn = associatedResourceArn + self.fileId = fileId + self.instanceId = instanceId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.associatedResourceArn, key: "associatedResourceArn") + request.encodePath(self.fileId, key: "FileId") + request.encodePath(self.instanceId, key: "InstanceId") + } + + public func validate(name: String) throws { + try self.validate(self.fileId, name: "fileId", parent: name, max: 256) + try self.validate(self.fileId, name: "fileId", parent: name, min: 1) + try self.validate(self.instanceId, name: "instanceId", parent: name, max: 100) + try self.validate(self.instanceId, name: "instanceId", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct CompleteAttachedFileUploadResponse: AWSDecodableShape { + public init() {} + } + public struct ConnectionData: AWSDecodableShape { /// The attendee information, including attendee ID and join token. public let attendee: Attendee? @@ -4310,7 +4525,7 @@ extension Connect { public let allowedAccessControlHierarchyGroupId: String? /// The list of tags that a security profile uses to restrict access to resources in Amazon Connect. public let allowedAccessControlTags: [String: String]? - /// This API is in preview release for Amazon Connect and is subject to change. A list of third-party applications that the security profile will give access to. + /// A list of third-party applications that the security profile will give access to. public let applications: [Application]? /// The description of the security profile. public let description: String? @@ -5247,6 +5462,42 @@ extension Connect { } } + public struct DeleteAttachedFileRequest: AWSEncodableShape { + /// The resource to which the attached file is (being) uploaded to. Cases are the only current supported resource. This value must be a valid ARN. + public let associatedResourceArn: String + /// The unique identifier of the attached file resource. + public let fileId: String + /// The unique identifier of the Connect instance. + public let instanceId: String + + public init(associatedResourceArn: String, fileId: String, instanceId: String) { + self.associatedResourceArn = associatedResourceArn + self.fileId = fileId + self.instanceId = instanceId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.associatedResourceArn, key: "associatedResourceArn") + request.encodePath(self.fileId, key: "FileId") + request.encodePath(self.instanceId, key: "InstanceId") + } + + public func validate(name: String) throws { + try self.validate(self.fileId, name: "fileId", parent: name, max: 256) + try self.validate(self.fileId, name: "fileId", parent: name, min: 1) + try self.validate(self.instanceId, name: "instanceId", parent: name, max: 100) + try self.validate(self.instanceId, name: "instanceId", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct DeleteAttachedFileResponse: AWSDecodableShape { + public init() {} + } + public struct DeleteContactEvaluationRequest: AWSEncodableShape { /// A unique identifier for the contact evaluation. public let evaluationId: String @@ -7367,6 +7618,23 @@ extension Connect { } } + public struct DownloadUrlMetadata: AWSDecodableShape { + /// A pre-signed URL that should be used to download the attached file. + public let url: String? + /// The expiration time of the URL in ISO timestamp. It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z. + public let urlExpiry: String? + + public init(url: String? = nil, urlExpiry: String? = nil) { + self.url = url + self.urlExpiry = urlExpiry + } + + private enum CodingKeys: String, CodingKey { + case url = "Url" + case urlExpiry = "UrlExpiry" + } + } + public struct EmailReference: AWSDecodableShape { /// Identifier of the email reference. public let name: String? @@ -8281,6 +8549,97 @@ extension Connect { } } + public struct GetAttachedFileRequest: AWSEncodableShape { + /// The resource to which the attached file is (being) uploaded to. Cases are the only current supported resource. This value must be a valid ARN. + public let associatedResourceArn: String + /// The unique identifier of the attached file resource. + public let fileId: String + /// The unique identifier of the Connect instance. + public let instanceId: String + /// Optional override for the expiry of the pre-signed S3 URL in seconds. + public let urlExpiryInSeconds: Int? + + public init(associatedResourceArn: String, fileId: String, instanceId: String, urlExpiryInSeconds: Int? = nil) { + self.associatedResourceArn = associatedResourceArn + self.fileId = fileId + self.instanceId = instanceId + self.urlExpiryInSeconds = urlExpiryInSeconds + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.associatedResourceArn, key: "associatedResourceArn") + request.encodePath(self.fileId, key: "FileId") + request.encodePath(self.instanceId, key: "InstanceId") + request.encodeQuery(self.urlExpiryInSeconds, key: "urlExpiryInSeconds") + } + + public func validate(name: String) throws { + try self.validate(self.fileId, name: "fileId", parent: name, max: 256) + try self.validate(self.fileId, name: "fileId", parent: name, min: 1) + try self.validate(self.instanceId, name: "instanceId", parent: name, max: 100) + try self.validate(self.instanceId, name: "instanceId", parent: name, min: 1) + try self.validate(self.urlExpiryInSeconds, name: "urlExpiryInSeconds", parent: name, max: 300) + try self.validate(self.urlExpiryInSeconds, name: "urlExpiryInSeconds", parent: name, min: 5) + } + + private enum CodingKeys: CodingKey {} + } + + public struct GetAttachedFileResponse: AWSDecodableShape { + /// The resource to which the attached file is (being) uploaded to. Cases are the only current supported resource. This value must be a valid ARN. + public let associatedResourceArn: String? + /// Represents the identity that created the file. + public let createdBy: CreatedByInfo? + /// The time of Creation of the file resource as an ISO timestamp. It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2024-05-03T02:41:28.172Z. + public let creationTime: String? + /// URL and expiry to be used when downloading the attached file. + public let downloadUrlMetadata: DownloadUrlMetadata? + /// The unique identifier of the attached file resource (ARN). + public let fileArn: String? + /// The unique identifier of the attached file resource. + public let fileId: String? + /// A case-sensitive name of the attached file being uploaded. + public let fileName: String? + /// The size of the attached file in bytes. + public let fileSizeInBytes: Int64 + /// The current status of the attached file. + public let fileStatus: FileStatusType? + /// The use case for the file. + public let fileUseCaseType: FileUseCaseType? + /// The tags used to organize, track, or control access for this resource. For example, { "Tags": {"key1":"value1", "key2":"value2"} }. + public let tags: [String: String]? + + public init(associatedResourceArn: String? = nil, createdBy: CreatedByInfo? = nil, creationTime: String? = nil, downloadUrlMetadata: DownloadUrlMetadata? = nil, fileArn: String? = nil, fileId: String? = nil, fileName: String? = nil, fileSizeInBytes: Int64, fileStatus: FileStatusType? = nil, fileUseCaseType: FileUseCaseType? = nil, tags: [String: String]? = nil) { + self.associatedResourceArn = associatedResourceArn + self.createdBy = createdBy + self.creationTime = creationTime + self.downloadUrlMetadata = downloadUrlMetadata + self.fileArn = fileArn + self.fileId = fileId + self.fileName = fileName + self.fileSizeInBytes = fileSizeInBytes + self.fileStatus = fileStatus + self.fileUseCaseType = fileUseCaseType + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case associatedResourceArn = "AssociatedResourceArn" + case createdBy = "CreatedBy" + case creationTime = "CreationTime" + case downloadUrlMetadata = "DownloadUrlMetadata" + case fileArn = "FileArn" + case fileId = "FileId" + case fileName = "FileName" + case fileSizeInBytes = "FileSizeInBytes" + case fileStatus = "FileStatus" + case fileUseCaseType = "FileUseCaseType" + case tags = "Tags" + } + } + public struct GetContactAttributesRequest: AWSEncodableShape { /// The identifier of the initial contact. public let initialContactId: String @@ -8658,7 +9017,7 @@ extension Connect { public let interval: IntervalDetails? /// The maximum number of results to return per page. public let maxResults: Int? - /// The metrics to retrieve. Specify the name, groupings, and filters for each metric. The following historical metrics are available. For a description of each metric, see Historical metrics definitions in the Amazon Connect Administrator's Guide. ABANDONMENT_RATE Unit: Percent Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Abandonment rate AGENT_ADHERENT_TIME This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Adherent time AGENT_ANSWER_RATE Unit: Percent Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Agent answer rate AGENT_NON_ADHERENT_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Non-adherent time AGENT_NON_RESPONSE Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Agent non-response AGENT_NON_RESPONSE_WITHOUT_CUSTOMER_ABANDONS Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy Data for this metric is available starting from October 1, 2023 0:00:00 GMT. UI name: Agent non-response without customer abandons AGENT_OCCUPANCY Unit: Percentage Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy UI name: Occupancy AGENT_SCHEDULE_ADHERENCE This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available. Unit: Percent Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Adherence AGENT_SCHEDULED_TIME This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Scheduled time AVG_ABANDON_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Average queue abandon time AVG_ACTIVE_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Average active time AVG_AFTER_CONTACT_WORK_TIME Unit: Seconds Valid metric filter key: INITIATION_METHOD Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Average after contact work time Feature is a valid filter but not a valid grouping. AVG_AGENT_CONNECTING_TIME Unit: Seconds Valid metric filter key: INITIATION_METHOD. For now, this metric only supports the following as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Average agent API connecting time The Negate key in Metric Level Filters is not applicable for this metric. AVG_AGENT_PAUSE_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Average agent pause time AVG_CASE_RELATED_CONTACTS Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: Average contacts per case AVG_CASE_RESOLUTION_TIME Unit: Seconds Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: Average case resolution time AVG_CONTACT_DURATION Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Average contact duration Feature is a valid filter but not a valid grouping. AVG_CONVERSATION_DURATION Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Average conversation duration AVG_GREETING_TIME_AGENT This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average greeting time agent AVG_HANDLE_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, RoutingStepExpression UI name: Average handle time Feature is a valid filter but not a valid grouping. AVG_HOLD_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Average customer hold time Feature is a valid filter but not a valid grouping. AVG_HOLD_TIME_ALL_CONTACTS Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average customer hold time all contacts AVG_HOLDS Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Average holds Feature is a valid filter but not a valid grouping. AVG_INTERACTION_AND_HOLD_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average agent interaction and customer hold time AVG_INTERACTION_TIME Unit: Seconds Valid metric filter key: INITIATION_METHOD Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype UI name: Average agent interaction time Feature is a valid filter but not a valid grouping. AVG_INTERRUPTIONS_AGENT This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average interruptions agent AVG_INTERRUPTION_TIME_AGENT This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average interruption time agent AVG_NON_TALK_TIME This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average non-talk time AVG_QUEUE_ANSWER_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype UI name: Average queue answer time Feature is a valid filter but not a valid grouping. AVG_RESOLUTION_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype UI name: Average resolution time AVG_TALK_TIME This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average talk time AVG_TALK_TIME_AGENT This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average talk time agent AVG_TALK_TIME_CUSTOMER This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average talk time customer CASES_CREATED Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: Cases created CONTACTS_ABANDONED Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, RoutingStepExpression UI name: Contact abandoned CONTACTS_CREATED Unit: Count Valid metric filter key: INITIATION_METHOD Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype UI name: Contacts created Feature is a valid filter but not a valid grouping. CONTACTS_HANDLED Unit: Count Valid metric filter key: INITIATION_METHOD, DISCONNECT_REASON Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, RoutingStepExpression UI name: API contacts handled Feature is a valid filter but not a valid grouping. CONTACTS_HANDLED_BY_CONNECTED_TO_AGENT Unit: Count Valid metric filter key: INITIATION_METHOD Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Contacts handled by Connected to agent CONTACTS_HOLD_ABANDONS Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Contacts hold disconnect CONTACTS_ON_HOLD_AGENT_DISCONNECT Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Contacts hold agent disconnect CONTACTS_ON_HOLD_CUSTOMER_DISCONNECT Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Contacts hold customer disconnect CONTACTS_PUT_ON_HOLD Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Contacts put on hold CONTACTS_TRANSFERRED_OUT_EXTERNAL Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Contacts transferred out external CONTACTS_TRANSFERRED_OUT_INTERNAL Unit: Percent Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Contacts transferred out internal CONTACTS_QUEUED Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Contacts queued CONTACTS_QUEUED_BY_ENQUEUE Unit: Count Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Contacts queued by Enqueue CONTACTS_RESOLVED_IN_X Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype Threshold: For ThresholdValue enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for "Less than"). UI name: Contacts resolved in X CONTACTS_TRANSFERRED_OUT Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Contacts transferred out Feature is a valid filter but not a valid grouping. CONTACTS_TRANSFERRED_OUT_BY_AGENT Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Contacts transferred out by agent CONTACTS_TRANSFERRED_OUT_FROM_QUEUE Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Contacts transferred out queue CURRENT_CASES Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: Current cases MAX_QUEUED_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Maximum queued time PERCENT_CASES_FIRST_CONTACT_RESOLVED Unit: Percent Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: Cases resolved on first contact PERCENT_CONTACTS_STEP_EXPIRED Unit: Percent Valid groupings and filters: Queue, RoutingStepExpression UI name: Not available PERCENT_CONTACTS_STEP_JOINED Unit: Percent Valid groupings and filters: Queue, RoutingStepExpression UI name: Not available PERCENT_NON_TALK_TIME This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Percentage Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Non-talk time percent PERCENT_TALK_TIME This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Percentage Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Talk time percent PERCENT_TALK_TIME_AGENT This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Percentage Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Talk time agent percent PERCENT_TALK_TIME_CUSTOMER This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Percentage Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Talk time customer percent REOPENED_CASE_ACTIONS Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: Cases reopened RESOLVED_CASE_ACTIONS Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: Cases resolved SERVICE_LEVEL You can include up to 20 SERVICE_LEVEL metrics in a request. Unit: Percent Valid groupings and filters: Queue, Channel, Routing Profile Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for "Less than"). UI name: Service level X STEP_CONTACTS_QUEUED Unit: Count Valid groupings and filters: Queue, RoutingStepExpression UI name: Not available SUM_AFTER_CONTACT_WORK_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: After contact work time SUM_CONNECTING_TIME_AGENT Unit: Seconds Valid metric filter key: INITIATION_METHOD. This metric only supports the following filter keys as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Agent API connecting time The Negate key in Metric Level Filters is not applicable for this metric. SUM_CONTACT_FLOW_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Contact flow time SUM_CONTACT_TIME_AGENT Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Agent on contact time SUM_CONTACTS_ANSWERED_IN_X Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for "Less than"). UI name: Contacts answered in X seconds SUM_CONTACTS_ABANDONED_IN_X Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for "Less than"). UI name: Contacts abandoned in X seconds SUM_CONTACTS_DISCONNECTED Valid metric filter key: DISCONNECT_REASON Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Contact disconnected SUM_ERROR_STATUS_TIME_AGENT Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Error status time SUM_HANDLE_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Contact handle time SUM_HOLD_TIME Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Customer hold time SUM_IDLE_TIME_AGENT Unit: Seconds Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy UI name: Agent idle time SUM_INTERACTION_AND_HOLD_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Agent interaction and hold time SUM_INTERACTION_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Agent interaction time SUM_NON_PRODUCTIVE_TIME_AGENT Unit: Seconds Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy UI name: Non-Productive Time SUM_ONLINE_TIME_AGENT Unit: Seconds Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy UI name: Online time SUM_RETRY_CALLBACK_ATTEMPTS Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype UI name: Callback attempts + /// The metrics to retrieve. Specify the name, groupings, and filters for each metric. The following historical metrics are available. For a description of each metric, see Historical metrics definitions in the Amazon Connect Administrator's Guide. ABANDONMENT_RATE Unit: Percent Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Abandonment rate AGENT_ADHERENT_TIME This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Adherent time AGENT_ANSWER_RATE Unit: Percent Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Agent answer rate AGENT_NON_ADHERENT_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Non-adherent time AGENT_NON_RESPONSE Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Agent non-response AGENT_NON_RESPONSE_WITHOUT_CUSTOMER_ABANDONS Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy Data for this metric is available starting from October 1, 2023 0:00:00 GMT. UI name: Agent non-response without customer abandons AGENT_OCCUPANCY Unit: Percentage Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy UI name: Occupancy AGENT_SCHEDULE_ADHERENCE This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available. Unit: Percent Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Adherence AGENT_SCHEDULED_TIME This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Scheduled time AVG_ABANDON_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Average queue abandon time AVG_ACTIVE_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Average active time AVG_AFTER_CONTACT_WORK_TIME Unit: Seconds Valid metric filter key: INITIATION_METHOD Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Average after contact work time Feature is a valid filter but not a valid grouping. AVG_AGENT_CONNECTING_TIME Unit: Seconds Valid metric filter key: INITIATION_METHOD. For now, this metric only supports the following as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Average agent API connecting time The Negate key in Metric Level Filters is not applicable for this metric. AVG_AGENT_PAUSE_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Average agent pause time AVG_CASE_RELATED_CONTACTS Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: Average contacts per case AVG_CASE_RESOLUTION_TIME Unit: Seconds Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: Average case resolution time AVG_CONTACT_DURATION Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Average contact duration Feature is a valid filter but not a valid grouping. AVG_CONVERSATION_DURATION Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Average conversation duration AVG_GREETING_TIME_AGENT This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average agent greeting time AVG_HANDLE_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, RoutingStepExpression UI name: Average handle time Feature is a valid filter but not a valid grouping. AVG_HOLD_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Average customer hold time Feature is a valid filter but not a valid grouping. AVG_HOLD_TIME_ALL_CONTACTS Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average customer hold time all contacts AVG_HOLDS Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Average holds Feature is a valid filter but not a valid grouping. AVG_INTERACTION_AND_HOLD_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average agent interaction and customer hold time AVG_INTERACTION_TIME Unit: Seconds Valid metric filter key: INITIATION_METHOD Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype UI name: Average agent interaction time Feature is a valid filter but not a valid grouping. AVG_INTERRUPTIONS_AGENT This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average agent interruptions AVG_INTERRUPTION_TIME_AGENT This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average agent interruption time AVG_NON_TALK_TIME This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average non-talk time AVG_QUEUE_ANSWER_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype UI name: Average queue answer time Feature is a valid filter but not a valid grouping. AVG_RESOLUTION_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype UI name: Average resolution time AVG_TALK_TIME This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average talk time AVG_TALK_TIME_AGENT This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average agent talk time AVG_TALK_TIME_CUSTOMER This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Average customer talk time CASES_CREATED Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: Cases created CONTACTS_ABANDONED Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype, RoutingStepExpression UI name: Contact abandoned CONTACTS_CREATED Unit: Count Valid metric filter key: INITIATION_METHOD Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype UI name: Contacts created Feature is a valid filter but not a valid grouping. CONTACTS_HANDLED Unit: Count Valid metric filter key: INITIATION_METHOD, DISCONNECT_REASON Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype, RoutingStepExpression UI name: API contacts handled Feature is a valid filter but not a valid grouping. CONTACTS_HANDLED_BY_CONNECTED_TO_AGENT Unit: Count Valid metric filter key: INITIATION_METHOD Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Contacts handled (connected to agent timestamp) CONTACTS_HOLD_ABANDONS Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Contacts hold disconnect CONTACTS_ON_HOLD_AGENT_DISCONNECT Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Contacts hold agent disconnect CONTACTS_ON_HOLD_CUSTOMER_DISCONNECT Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Contacts hold customer disconnect CONTACTS_PUT_ON_HOLD Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Contacts put on hold CONTACTS_TRANSFERRED_OUT_EXTERNAL Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Contacts transferred out external CONTACTS_TRANSFERRED_OUT_INTERNAL Unit: Percent Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Contacts transferred out internal CONTACTS_QUEUED Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Contacts queued CONTACTS_QUEUED_BY_ENQUEUE Unit: Count Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Contacts queued (enqueue timestamp) CONTACTS_RESOLVED_IN_X Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype Threshold: For ThresholdValue enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for "Less than"). UI name: Contacts resolved in X CONTACTS_TRANSFERRED_OUT Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype UI name: Contacts transferred out Feature is a valid filter but not a valid grouping. CONTACTS_TRANSFERRED_OUT_BY_AGENT Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Contacts transferred out by agent CONTACTS_TRANSFERRED_OUT_FROM_QUEUE Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Contacts transferred out queue CURRENT_CASES Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: Current cases MAX_QUEUED_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Maximum queued time PERCENT_CASES_FIRST_CONTACT_RESOLVED Unit: Percent Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: Cases resolved on first contact PERCENT_CONTACTS_STEP_EXPIRED Unit: Percent Valid groupings and filters: Queue, RoutingStepExpression UI name: Not available PERCENT_CONTACTS_STEP_JOINED Unit: Percent Valid groupings and filters: Queue, RoutingStepExpression UI name: Not available PERCENT_NON_TALK_TIME This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Percentage Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Non-talk time percent PERCENT_TALK_TIME This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Percentage Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Talk time percent PERCENT_TALK_TIME_AGENT This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Percentage Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Agent talk time percent PERCENT_TALK_TIME_CUSTOMER This metric is available only for contacts analyzed by Contact Lens conversational analytics. Unit: Percentage Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Customer talk time percent REOPENED_CASE_ACTIONS Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: Cases reopened RESOLVED_CASE_ACTIONS Unit: Count Required filter key: CASE_TEMPLATE_ARN Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS UI name: Cases resolved SERVICE_LEVEL You can include up to 20 SERVICE_LEVEL metrics in a request. Unit: Percent Valid groupings and filters: Queue, Channel, Routing Profile Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for "Less than"). UI name: Service level X STEP_CONTACTS_QUEUED Unit: Count Valid groupings and filters: Queue, RoutingStepExpression UI name: Not available SUM_AFTER_CONTACT_WORK_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: After contact work time SUM_CONNECTING_TIME_AGENT Unit: Seconds Valid metric filter key: INITIATION_METHOD. This metric only supports the following filter keys as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Agent API connecting time The Negate key in Metric Level Filters is not applicable for this metric. SUM_CONTACT_FLOW_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Contact flow time SUM_CONTACT_TIME_AGENT Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Agent on contact time SUM_CONTACTS_ANSWERED_IN_X Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for "Less than"). UI name: Contacts answered in X seconds SUM_CONTACTS_ABANDONED_IN_X Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for "Less than"). UI name: Contacts abandoned in X seconds SUM_CONTACTS_DISCONNECTED Valid metric filter key: DISCONNECT_REASON Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype UI name: Contact disconnected SUM_ERROR_STATUS_TIME_AGENT Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Error status time SUM_HANDLE_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Contact handle time SUM_HOLD_TIME Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Customer hold time SUM_IDLE_TIME_AGENT Unit: Seconds Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy UI name: Agent idle time SUM_INTERACTION_AND_HOLD_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Agent interaction and hold time SUM_INTERACTION_TIME Unit: Seconds Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy UI name: Agent interaction time SUM_NON_PRODUCTIVE_TIME_AGENT Unit: Seconds Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy UI name: Non-Productive Time SUM_ONLINE_TIME_AGENT Unit: Seconds Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy UI name: Online time SUM_RETRY_CALLBACK_ATTEMPTS Unit: Count Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype UI name: Callback attempts public let metrics: [MetricV2] /// The token for the next set of results. Use the value returned in the previous /// response in the next request to retrieve the next set of results. @@ -11596,7 +11955,7 @@ extension Connect { } public struct ListSecurityProfileApplicationsResponse: AWSDecodableShape { - /// This API is in preview release for Amazon Connect and is subject to change. A list of the third-party application's metadata. + /// A list of the third-party application's metadata. public let applications: [Application]? /// The Amazon Web Services Region where this resource was last modified. public let lastModifiedRegion: String? @@ -14151,18 +14510,21 @@ extension Connect { public let eventBridgeAction: EventBridgeActionDefinition? /// Information about the send notification action. Supported only for TriggerEventSource values: OnPostCallAnalysisAvailable | OnRealTimeCallAnalysisAvailable | OnRealTimeChatAnalysisAvailable | OnPostChatAnalysisAvailable | OnContactEvaluationSubmit | OnMetricDataUpdate public let sendNotificationAction: SendNotificationActionDefinition? + /// Information about the submit automated evaluation action. + public let submitAutoEvaluationAction: SubmitAutoEvaluationActionDefinition? /// Information about the task action. This field is required if TriggerEventSource is one of the following values: OnZendeskTicketCreate | OnZendeskTicketStatusUpdate | OnSalesforceCaseCreate public let taskAction: TaskActionDefinition? /// Information about the update case action. Supported only for TriggerEventSource values: OnCaseCreate | OnCaseUpdate. public let updateCaseAction: UpdateCaseActionDefinition? - public init(actionType: ActionType, assignContactCategoryAction: AssignContactCategoryActionDefinition? = nil, createCaseAction: CreateCaseActionDefinition? = nil, endAssociatedTasksAction: EndAssociatedTasksActionDefinition? = nil, eventBridgeAction: EventBridgeActionDefinition? = nil, sendNotificationAction: SendNotificationActionDefinition? = nil, taskAction: TaskActionDefinition? = nil, updateCaseAction: UpdateCaseActionDefinition? = nil) { + public init(actionType: ActionType, assignContactCategoryAction: AssignContactCategoryActionDefinition? = nil, createCaseAction: CreateCaseActionDefinition? = nil, endAssociatedTasksAction: EndAssociatedTasksActionDefinition? = nil, eventBridgeAction: EventBridgeActionDefinition? = nil, sendNotificationAction: SendNotificationActionDefinition? = nil, submitAutoEvaluationAction: SubmitAutoEvaluationActionDefinition? = nil, taskAction: TaskActionDefinition? = nil, updateCaseAction: UpdateCaseActionDefinition? = nil) { self.actionType = actionType self.assignContactCategoryAction = assignContactCategoryAction self.createCaseAction = createCaseAction self.endAssociatedTasksAction = endAssociatedTasksAction self.eventBridgeAction = eventBridgeAction self.sendNotificationAction = sendNotificationAction + self.submitAutoEvaluationAction = submitAutoEvaluationAction self.taskAction = taskAction self.updateCaseAction = updateCaseAction } @@ -14171,6 +14533,7 @@ extension Connect { try self.createCaseAction?.validate(name: "\(name).createCaseAction") try self.eventBridgeAction?.validate(name: "\(name).eventBridgeAction") try self.sendNotificationAction?.validate(name: "\(name).sendNotificationAction") + try self.submitAutoEvaluationAction?.validate(name: "\(name).submitAutoEvaluationAction") try self.taskAction?.validate(name: "\(name).taskAction") try self.updateCaseAction?.validate(name: "\(name).updateCaseAction") } @@ -14182,6 +14545,7 @@ extension Connect { case endAssociatedTasksAction = "EndAssociatedTasksAction" case eventBridgeAction = "EventBridgeAction" case sendNotificationAction = "SendNotificationAction" + case submitAutoEvaluationAction = "SubmitAutoEvaluationAction" case taskAction = "TaskAction" case updateCaseAction = "UpdateCaseAction" } @@ -15507,6 +15871,116 @@ extension Connect { } } + public struct StartAttachedFileUploadRequest: AWSEncodableShape { + /// The resource to which the attached file is (being) uploaded to. Cases are the only current supported resource. This value must be a valid ARN. + public let associatedResourceArn: String + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs. + public let clientToken: String? + /// Represents the identity that created the file. + public let createdBy: CreatedByInfo? + /// A case-sensitive name of the attached file being uploaded. + public let fileName: String + /// The size of the attached file in bytes. + public let fileSizeInBytes: Int64 + /// The use case for the file. + public let fileUseCaseType: FileUseCaseType + /// The unique identifier of the Connect instance. + public let instanceId: String + /// The tags used to organize, track, or control access for this resource. For example, { "Tags": {"key1":"value1", "key2":"value2"} }. + public let tags: [String: String]? + /// Optional override for the expiry of the pre-signed S3 URL in seconds. + public let urlExpiryInSeconds: Int? + + public init(associatedResourceArn: String, clientToken: String? = StartAttachedFileUploadRequest.idempotencyToken(), createdBy: CreatedByInfo? = nil, fileName: String, fileSizeInBytes: Int64, fileUseCaseType: FileUseCaseType, instanceId: String, tags: [String: String]? = nil, urlExpiryInSeconds: Int? = nil) { + self.associatedResourceArn = associatedResourceArn + self.clientToken = clientToken + self.createdBy = createdBy + self.fileName = fileName + self.fileSizeInBytes = fileSizeInBytes + self.fileUseCaseType = fileUseCaseType + self.instanceId = instanceId + self.tags = tags + self.urlExpiryInSeconds = urlExpiryInSeconds + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.associatedResourceArn, key: "associatedResourceArn") + try container.encodeIfPresent(self.clientToken, forKey: .clientToken) + try container.encodeIfPresent(self.createdBy, forKey: .createdBy) + try container.encode(self.fileName, forKey: .fileName) + try container.encode(self.fileSizeInBytes, forKey: .fileSizeInBytes) + try container.encode(self.fileUseCaseType, forKey: .fileUseCaseType) + request.encodePath(self.instanceId, key: "InstanceId") + try container.encodeIfPresent(self.tags, forKey: .tags) + try container.encodeIfPresent(self.urlExpiryInSeconds, forKey: .urlExpiryInSeconds) + } + + public func validate(name: String) throws { + try self.validate(self.clientToken, name: "clientToken", parent: name, max: 500) + try self.validate(self.fileName, name: "fileName", parent: name, max: 256) + try self.validate(self.fileName, name: "fileName", parent: name, min: 1) + try self.validate(self.fileName, name: "fileName", parent: name, pattern: "^\\P{C}*$") + try self.validate(self.fileSizeInBytes, name: "fileSizeInBytes", parent: name, min: 1) + try self.validate(self.instanceId, name: "instanceId", parent: name, max: 100) + try self.validate(self.instanceId, name: "instanceId", parent: name, min: 1) + try self.tags?.forEach { + try validate($0.key, name: "tags.key", parent: name, max: 128) + try validate($0.key, name: "tags.key", parent: name, min: 1) + try validate($0.key, name: "tags.key", parent: name, pattern: "^(?!aws:)[a-zA-Z+-=._:/]+$") + try validate($0.value, name: "tags[\"\($0.key)\"]", parent: name, max: 256) + } + try self.validate(self.tags, name: "tags", parent: name, max: 50) + try self.validate(self.tags, name: "tags", parent: name, min: 1) + try self.validate(self.urlExpiryInSeconds, name: "urlExpiryInSeconds", parent: name, max: 300) + try self.validate(self.urlExpiryInSeconds, name: "urlExpiryInSeconds", parent: name, min: 5) + } + + private enum CodingKeys: String, CodingKey { + case clientToken = "ClientToken" + case createdBy = "CreatedBy" + case fileName = "FileName" + case fileSizeInBytes = "FileSizeInBytes" + case fileUseCaseType = "FileUseCaseType" + case tags = "Tags" + case urlExpiryInSeconds = "UrlExpiryInSeconds" + } + } + + public struct StartAttachedFileUploadResponse: AWSDecodableShape { + /// Represents the identity that created the file. + public let createdBy: CreatedByInfo? + /// The time of Creation of the file resource as an ISO timestamp. It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2024-05-03T02:41:28.172Z. + public let creationTime: String? + /// The unique identifier of the attached file resource (ARN). + public let fileArn: String? + /// The unique identifier of the attached file resource. + public let fileId: String? + /// The current status of the attached file. + public let fileStatus: FileStatusType? + /// Information to be used while uploading the attached file. + public let uploadUrlMetadata: UploadUrlMetadata? + + public init(createdBy: CreatedByInfo? = nil, creationTime: String? = nil, fileArn: String? = nil, fileId: String? = nil, fileStatus: FileStatusType? = nil, uploadUrlMetadata: UploadUrlMetadata? = nil) { + self.createdBy = createdBy + self.creationTime = creationTime + self.fileArn = fileArn + self.fileId = fileId + self.fileStatus = fileStatus + self.uploadUrlMetadata = uploadUrlMetadata + } + + private enum CodingKeys: String, CodingKey { + case createdBy = "CreatedBy" + case creationTime = "CreationTime" + case fileArn = "FileArn" + case fileId = "FileId" + case fileStatus = "FileStatus" + case uploadUrlMetadata = "UploadUrlMetadata" + } + } + public struct StartChatContactRequest: AWSEncodableShape { /// A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows just like any other contact attributes. There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters. public let attributes: [String: String]? @@ -16184,6 +16658,24 @@ extension Connect { } } + public struct SubmitAutoEvaluationActionDefinition: AWSEncodableShape & AWSDecodableShape { + /// The identifier of the auto-evaluation enabled form. + public let evaluationFormId: String + + public init(evaluationFormId: String) { + self.evaluationFormId = evaluationFormId + } + + public func validate(name: String) throws { + try self.validate(self.evaluationFormId, name: "evaluationFormId", parent: name, max: 256) + try self.validate(self.evaluationFormId, name: "evaluationFormId", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case evaluationFormId = "EvaluationFormId" + } + } + public struct SubmitContactEvaluationRequest: AWSEncodableShape { /// A map of question identifiers to answer value. public let answers: [String: EvaluationAnswerInput]? @@ -17063,7 +17555,7 @@ extension Connect { } public struct UpdateContactAttributesRequest: AWSEncodableShape { - /// The Amazon Connect attributes. These attributes can be accessed in flows just like any other contact attributes. You can have up to 32,768 UTF-8 bytes across all attributes for a contact. Attribute keys can include only alphanumeric, dash, and underscore characters. + /// The Amazon Connect attributes. These attributes can be accessed in flows just like any other contact attributes. You can have up to 32,768 UTF-8 bytes across all attributes for a contact. Attribute keys can include only alphanumeric, dash, and underscore characters. When the attributes for a contact exceed 32 KB, the contact is routed down the Error branch of the flow. As a mitigation, consider the following options: Remove unnecessary attributes by setting their values to empty. If the attributes are only used in one flow and don't need to be referred to outside of that flow (for example, by a Lambda or another flow), then use flow attributes. This way you aren't needlessly persisting the 32 KB of information from one flow to another. For more information, see Flow block: Set contact attributes in the Amazon Connect Administrator Guide. public let attributes: [String: String] /// The identifier of the contact. This is the identifier of the contact associated with the first interaction with the contact center. public let initialContactId: String @@ -17474,7 +17966,7 @@ extension Connect { try self.validate(self.contactId, name: "contactId", parent: name, min: 1) try self.validate(self.instanceId, name: "instanceId", parent: name, max: 100) try self.validate(self.instanceId, name: "instanceId", parent: name, min: 1) - try self.validate(self.queuePriority, name: "queuePriority", parent: name, max: -9223372036854775808) + try self.validate(self.queuePriority, name: "queuePriority", parent: name, max: 9223372036854775807) try self.validate(self.queuePriority, name: "queuePriority", parent: name, min: 1) } @@ -18455,7 +18947,7 @@ extension Connect { public let allowedAccessControlHierarchyGroupId: String? /// The list of tags that a security profile uses to restrict access to resources in Amazon Connect. public let allowedAccessControlTags: [String: String]? - /// This API is in preview release for Amazon Connect and is subject to change. A list of the third-party application's metadata. + /// A list of the third-party application's metadata. public let applications: [Application]? /// The description of the security profile. public let description: String? @@ -19083,6 +19575,27 @@ extension Connect { public init() {} } + public struct UploadUrlMetadata: AWSDecodableShape { + /// A map of headers that should be provided when uploading the attached file. + public let headersToInclude: [String: String]? + /// A pre-signed S3 URL that should be used for uploading the attached file. + public let url: String? + /// The expiration time of the URL in ISO timestamp. It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z. + public let urlExpiry: String? + + public init(headersToInclude: [String: String]? = nil, url: String? = nil, urlExpiry: String? = nil) { + self.headersToInclude = headersToInclude + self.url = url + self.urlExpiry = urlExpiry + } + + private enum CodingKeys: String, CodingKey { + case headersToInclude = "HeadersToInclude" + case url = "Url" + case urlExpiry = "UrlExpiry" + } + } + public struct UrlReference: AWSDecodableShape { /// Identifier of the URL reference. public let name: String? diff --git a/Sources/Soto/Services/ConnectCampaigns/ConnectCampaigns_shapes.swift b/Sources/Soto/Services/ConnectCampaigns/ConnectCampaigns_shapes.swift index 655f182cef..4a65c4b303 100644 --- a/Sources/Soto/Services/ConnectCampaigns/ConnectCampaigns_shapes.swift +++ b/Sources/Soto/Services/ConnectCampaigns/ConnectCampaigns_shapes.swift @@ -163,14 +163,18 @@ extension ConnectCampaigns { } public struct AnswerMachineDetectionConfig: AWSEncodableShape & AWSDecodableShape { + /// Enable or disable await answer machine prompt + public let awaitAnswerMachinePrompt: Bool? /// Enable or disable answering machine detection public let enableAnswerMachineDetection: Bool - public init(enableAnswerMachineDetection: Bool) { + public init(awaitAnswerMachinePrompt: Bool? = nil, enableAnswerMachineDetection: Bool) { + self.awaitAnswerMachinePrompt = awaitAnswerMachinePrompt self.enableAnswerMachineDetection = enableAnswerMachineDetection } private enum CodingKeys: String, CodingKey { + case awaitAnswerMachinePrompt = "awaitAnswerMachinePrompt" case enableAnswerMachineDetection = "enableAnswerMachineDetection" } } diff --git a/Sources/Soto/Services/ConnectCases/ConnectCases_api.swift b/Sources/Soto/Services/ConnectCases/ConnectCases_api.swift index a56b6be6d3..fa7806966a 100644 --- a/Sources/Soto/Services/ConnectCases/ConnectCases_api.swift +++ b/Sources/Soto/Services/ConnectCases/ConnectCases_api.swift @@ -201,6 +201,45 @@ public struct ConnectCases: AWSService { ) } + /// Deletes a field from a cases template. You can delete up to 100 fields per domain. After a field is deleted: You can still retrieve the field by calling BatchGetField. You cannot update a deleted field by calling UpdateField; it throws a ValidationException. Deleted fields are not included in the ListFields response. Calling CreateCase with a deleted field throws a ValidationException denoting which field IDs in the request have been deleted. Calling GetCase with a deleted field ID returns the deleted field's value if one exists. Calling UpdateCase with a deleted field ID throws a ValidationException if the case does not already contain a value for the deleted field. Otherwise it succeeds, allowing you to update or remove (using emptyValue: {}) the field's value from the case. GetTemplate does not return field IDs for deleted fields. GetLayout does not return field IDs for deleted fields. Calling SearchCases with the deleted field ID as a filter returns any cases that have a value for the deleted field that matches the filter criteria. Calling SearchCases with a searchTerm value that matches a deleted field's value on a case returns the case in the response. Calling BatchPutFieldOptions with a deleted field ID throw a ValidationException. Calling GetCaseEventConfiguration does not return field IDs for deleted fields. + @Sendable + public func deleteField(_ input: DeleteFieldRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteFieldResponse { + return try await self.client.execute( + operation: "DeleteField", + path: "/domains/{domainId}/fields/{fieldId}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Deletes a layout from a cases template. You can delete up to 100 layouts per domain. After a layout is deleted: You can still retrieve the layout by calling GetLayout. You cannot update a deleted layout by calling UpdateLayout; it throws a ValidationException. Deleted layouts are not included in the ListLayouts response. + @Sendable + public func deleteLayout(_ input: DeleteLayoutRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteLayoutResponse { + return try await self.client.execute( + operation: "DeleteLayout", + path: "/domains/{domainId}/layouts/{layoutId}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Deletes a cases template. You can delete up to 100 templates per domain. After a cases template is deleted: You can still retrieve the template by calling GetTemplate. You cannot update the template. You cannot create a case by using the deleted template. Deleted templates are not included in the ListTemplates response. + @Sendable + public func deleteTemplate(_ input: DeleteTemplateRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteTemplateResponse { + return try await self.client.execute( + operation: "DeleteTemplate", + path: "/domains/{domainId}/templates/{templateId}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Returns information about a specific case if it exists. @Sendable public func getCase(_ input: GetCaseRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetCaseResponse { diff --git a/Sources/Soto/Services/ConnectCases/ConnectCases_shapes.swift b/Sources/Soto/Services/ConnectCases/ConnectCases_shapes.swift index 7893a5bd64..fd55777564 100644 --- a/Sources/Soto/Services/ConnectCases/ConnectCases_shapes.swift +++ b/Sources/Soto/Services/ConnectCases/ConnectCases_shapes.swift @@ -71,6 +71,7 @@ extension ConnectCases { public enum RelatedItemType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case comment = "Comment" case contact = "Contact" + case file = "File" public var description: String { return self.rawValue } } @@ -305,6 +306,8 @@ extension ConnectCases { case comment(CommentContent) /// Represents the content of a contact to be returned to agents. case contact(ContactContent) + /// Represents the content of a File to be returned to agents. + case file(FileContent) public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) @@ -322,12 +325,16 @@ extension ConnectCases { case .contact: let value = try container.decode(ContactContent.self, forKey: .contact) self = .contact(value) + case .file: + let value = try container.decode(FileContent.self, forKey: .file) + self = .file(value) } } private enum CodingKeys: String, CodingKey { case comment = "comment" case contact = "contact" + case file = "file" } } @@ -336,6 +343,8 @@ extension ConnectCases { case comment(CommentContent) /// Object representing a contact in Amazon Connect as an API request field. case contact(Contact) + /// A file of related items. + case file(FileContent) public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) @@ -344,6 +353,8 @@ extension ConnectCases { try container.encode(value, forKey: .comment) case .contact(let value): try container.encode(value, forKey: .contact) + case .file(let value): + try container.encode(value, forKey: .file) } } @@ -353,12 +364,15 @@ extension ConnectCases { try value.validate(name: "\(name).comment") case .contact(let value): try value.validate(name: "\(name).contact") + case .file(let value): + try value.validate(name: "\(name).file") } } private enum CodingKeys: String, CodingKey { case comment = "comment" case contact = "contact" + case file = "file" } } @@ -367,6 +381,8 @@ extension ConnectCases { case comment(CommentFilter) /// A filter for related items of type Contact. case contact(ContactFilter) + /// A filter for related items of this type of File. + case file(FileFilter) public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) @@ -375,6 +391,8 @@ extension ConnectCases { try container.encode(value, forKey: .comment) case .contact(let value): try container.encode(value, forKey: .contact) + case .file(let value): + try container.encode(value, forKey: .file) } } @@ -382,6 +400,8 @@ extension ConnectCases { switch self { case .contact(let value): try value.validate(name: "\(name).contact") + case .file(let value): + try value.validate(name: "\(name).file") default: break } @@ -390,6 +410,7 @@ extension ConnectCases { private enum CodingKeys: String, CodingKey { case comment = "comment" case contact = "contact" + case file = "file" } } @@ -1097,6 +1118,102 @@ extension ConnectCases { public init() {} } + public struct DeleteFieldRequest: AWSEncodableShape { + /// The unique identifier of the Cases domain. + public let domainId: String + /// Unique identifier of the field. + public let fieldId: String + + public init(domainId: String, fieldId: String) { + self.domainId = domainId + self.fieldId = fieldId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.domainId, key: "domainId") + request.encodePath(self.fieldId, key: "fieldId") + } + + public func validate(name: String) throws { + try self.validate(self.domainId, name: "domainId", parent: name, max: 500) + try self.validate(self.domainId, name: "domainId", parent: name, min: 1) + try self.validate(self.fieldId, name: "fieldId", parent: name, max: 500) + try self.validate(self.fieldId, name: "fieldId", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct DeleteFieldResponse: AWSDecodableShape { + public init() {} + } + + public struct DeleteLayoutRequest: AWSEncodableShape { + /// The unique identifier of the Cases domain. + public let domainId: String + /// The unique identifier of the layout. + public let layoutId: String + + public init(domainId: String, layoutId: String) { + self.domainId = domainId + self.layoutId = layoutId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.domainId, key: "domainId") + request.encodePath(self.layoutId, key: "layoutId") + } + + public func validate(name: String) throws { + try self.validate(self.domainId, name: "domainId", parent: name, max: 500) + try self.validate(self.domainId, name: "domainId", parent: name, min: 1) + try self.validate(self.layoutId, name: "layoutId", parent: name, max: 500) + try self.validate(self.layoutId, name: "layoutId", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct DeleteLayoutResponse: AWSDecodableShape { + public init() {} + } + + public struct DeleteTemplateRequest: AWSEncodableShape { + /// The unique identifier of the Cases domain. + public let domainId: String + /// A unique identifier of a template. + public let templateId: String + + public init(domainId: String, templateId: String) { + self.domainId = domainId + self.templateId = templateId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.domainId, key: "domainId") + request.encodePath(self.templateId, key: "templateId") + } + + public func validate(name: String) throws { + try self.validate(self.domainId, name: "domainId", parent: name, max: 500) + try self.validate(self.domainId, name: "domainId", parent: name, min: 1) + try self.validate(self.templateId, name: "templateId", parent: name, max: 500) + try self.validate(self.templateId, name: "templateId", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct DeleteTemplateResponse: AWSDecodableShape { + public init() {} + } + public struct DomainSummary: AWSDecodableShape { /// The Amazon Resource Name (ARN) of the domain. public let domainArn: String @@ -1346,6 +1463,42 @@ extension ConnectCases { } } + public struct FileContent: AWSEncodableShape & AWSDecodableShape { + /// The Amazon Resource Name (ARN) of a File in Amazon Connect. + public let fileArn: String + + public init(fileArn: String) { + self.fileArn = fileArn + } + + public func validate(name: String) throws { + try self.validate(self.fileArn, name: "fileArn", parent: name, max: 500) + try self.validate(self.fileArn, name: "fileArn", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case fileArn = "fileArn" + } + } + + public struct FileFilter: AWSEncodableShape { + /// The Amazon Resource Name (ARN) of the file. + public let fileArn: String? + + public init(fileArn: String? = nil) { + self.fileArn = fileArn + } + + public func validate(name: String) throws { + try self.validate(self.fileArn, name: "fileArn", parent: name, max: 500) + try self.validate(self.fileArn, name: "fileArn", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case fileArn = "fileArn" + } + } + public struct GetCaseAuditEventsRequest: AWSEncodableShape { /// A unique identifier of the case. public let caseId: String @@ -1564,12 +1717,20 @@ extension ConnectCases { } public struct GetFieldResponse: AWSDecodableShape { + /// Timestamp at which the resource was created. + @OptionalCustomCoding + public var createdTime: Date? + /// Denotes whether or not the resource has been deleted. + public let deleted: Bool? /// Description of the field. public let description: String? /// The Amazon Resource Name (ARN) of the field. public let fieldArn: String /// Unique identifier of the field. public let fieldId: String + /// Timestamp at which the resource was created or last modified. + @OptionalCustomCoding + public var lastModifiedTime: Date? /// Name of the field. public let name: String /// Namespace of the field. @@ -1579,10 +1740,13 @@ extension ConnectCases { /// Type of the field. public let type: FieldType - public init(description: String? = nil, fieldArn: String, fieldId: String, name: String, namespace: FieldNamespace, tags: [String: String]? = nil, type: FieldType) { + public init(createdTime: Date? = nil, deleted: Bool? = nil, description: String? = nil, fieldArn: String, fieldId: String, lastModifiedTime: Date? = nil, name: String, namespace: FieldNamespace, tags: [String: String]? = nil, type: FieldType) { + self.createdTime = createdTime + self.deleted = deleted self.description = description self.fieldArn = fieldArn self.fieldId = fieldId + self.lastModifiedTime = lastModifiedTime self.name = name self.namespace = namespace self.tags = tags @@ -1590,9 +1754,12 @@ extension ConnectCases { } private enum CodingKeys: String, CodingKey { + case createdTime = "createdTime" + case deleted = "deleted" case description = "description" case fieldArn = "fieldArn" case fieldId = "fieldId" + case lastModifiedTime = "lastModifiedTime" case name = "name" case namespace = "namespace" case tags = "tags" @@ -1631,6 +1798,14 @@ extension ConnectCases { public struct GetLayoutResponse: AWSDecodableShape { /// Information about which fields will be present in the layout, the order of the fields, and read-only attribute of the field. public let content: LayoutContent + /// Timestamp at which the resource was created. + @OptionalCustomCoding + public var createdTime: Date? + /// Denotes whether or not the resource has been deleted. + public let deleted: Bool? + /// Timestamp at which the resource was created or last modified. + @OptionalCustomCoding + public var lastModifiedTime: Date? /// The Amazon Resource Name (ARN) of the newly created layout. public let layoutArn: String /// The unique identifier of the layout. @@ -1640,8 +1815,11 @@ extension ConnectCases { /// A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource. public let tags: [String: String]? - public init(content: LayoutContent, layoutArn: String, layoutId: String, name: String, tags: [String: String]? = nil) { + public init(content: LayoutContent, createdTime: Date? = nil, deleted: Bool? = nil, lastModifiedTime: Date? = nil, layoutArn: String, layoutId: String, name: String, tags: [String: String]? = nil) { self.content = content + self.createdTime = createdTime + self.deleted = deleted + self.lastModifiedTime = lastModifiedTime self.layoutArn = layoutArn self.layoutId = layoutId self.name = name @@ -1650,6 +1828,9 @@ extension ConnectCases { private enum CodingKeys: String, CodingKey { case content = "content" + case createdTime = "createdTime" + case deleted = "deleted" + case lastModifiedTime = "lastModifiedTime" case layoutArn = "layoutArn" case layoutId = "layoutId" case name = "name" @@ -1686,8 +1867,16 @@ extension ConnectCases { } public struct GetTemplateResponse: AWSDecodableShape { + /// Timestamp at which the resource was created. + @OptionalCustomCoding + public var createdTime: Date? + /// Denotes whether or not the resource has been deleted. + public let deleted: Bool? /// A brief description of the template. public let description: String? + /// Timestamp at which the resource was created or last modified. + @OptionalCustomCoding + public var lastModifiedTime: Date? /// Configuration of layouts associated to the template. public let layoutConfiguration: LayoutConfiguration? /// The name of the template. @@ -1703,8 +1892,11 @@ extension ConnectCases { /// A unique identifier of a template. public let templateId: String - public init(description: String? = nil, layoutConfiguration: LayoutConfiguration? = nil, name: String, requiredFields: [RequiredField]? = nil, status: TemplateStatus, tags: [String: String]? = nil, templateArn: String, templateId: String) { + public init(createdTime: Date? = nil, deleted: Bool? = nil, description: String? = nil, lastModifiedTime: Date? = nil, layoutConfiguration: LayoutConfiguration? = nil, name: String, requiredFields: [RequiredField]? = nil, status: TemplateStatus, tags: [String: String]? = nil, templateArn: String, templateId: String) { + self.createdTime = createdTime + self.deleted = deleted self.description = description + self.lastModifiedTime = lastModifiedTime self.layoutConfiguration = layoutConfiguration self.name = name self.requiredFields = requiredFields @@ -1715,7 +1907,10 @@ extension ConnectCases { } private enum CodingKeys: String, CodingKey { + case createdTime = "createdTime" + case deleted = "deleted" case description = "description" + case lastModifiedTime = "lastModifiedTime" case layoutConfiguration = "layoutConfiguration" case name = "name" case requiredFields = "requiredFields" diff --git a/Sources/Soto/Services/ControlCatalog/ControlCatalog_api.swift b/Sources/Soto/Services/ControlCatalog/ControlCatalog_api.swift new file mode 100644 index 0000000000..123de95958 --- /dev/null +++ b/Sources/Soto/Services/ControlCatalog/ControlCatalog_api.swift @@ -0,0 +1,214 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Soto for AWS open source project +// +// Copyright (c) 2017-2023 the Soto project authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// See CONTRIBUTORS.txt for the list of Soto project authors +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// + +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/soto-project/soto-codegenerator. +// DO NOT EDIT. + +@_exported import SotoCore + +/// Service object for interacting with AWS ControlCatalog service. +/// +/// Welcome to the Amazon Web Services Control Catalog API reference. This guide is for developers who need detailed information about how to programmatically identify and filter the common controls and related metadata that are available to Amazon Web Services customers. This API reference provides descriptions, syntax, and usage examples for each of the actions and data types that are supported by Amazon Web Services Control Catalog. Use the following links to get started with the Amazon Web Services Control Catalog API: Actions: An alphabetical list of all Control Catalog API operations. Data types: An alphabetical list of all Control Catalog data types. Common parameters: Parameters that all operations can use. Common errors: Client and server errors that all operations can return. +public struct ControlCatalog: AWSService { + // MARK: Member variables + + /// Client used for communication with AWS + public let client: AWSClient + /// Service configuration + public let config: AWSServiceConfig + + // MARK: Initialization + + /// Initialize the ControlCatalog client + /// - parameters: + /// - client: AWSClient used to process requests + /// - region: Region of server you want to communicate with. This will override the partition parameter. + /// - partition: AWS partition where service resides, standard (.aws), china (.awscn), government (.awsusgov). + /// - endpoint: Custom endpoint URL to use instead of standard AWS servers + /// - middleware: Middleware chain used to edit requests before they are sent and responses before they are decoded + /// - timeout: Timeout value for HTTP requests + /// - byteBufferAllocator: Allocator for ByteBuffers + /// - options: Service options + public init( + client: AWSClient, + region: SotoCore.Region? = nil, + partition: AWSPartition = .aws, + endpoint: String? = nil, + middleware: AWSMiddlewareProtocol? = nil, + timeout: TimeAmount? = nil, + byteBufferAllocator: ByteBufferAllocator = ByteBufferAllocator(), + options: AWSServiceConfig.Options = [] + ) { + self.client = client + self.config = AWSServiceConfig( + region: region, + partition: region?.partition ?? partition, + serviceName: "ControlCatalog", + serviceIdentifier: "controlcatalog", + serviceProtocol: .restjson, + apiVersion: "2018-05-10", + endpoint: endpoint, + errorType: ControlCatalogErrorType.self, + middleware: middleware, + timeout: timeout, + byteBufferAllocator: byteBufferAllocator, + options: options + ) + } + + + + + + // MARK: API Calls + + /// Returns a paginated list of common controls from the Amazon Web Services Control Catalog. You can apply an optional filter to see common controls that have a specific objective. If you don’t provide a filter, the operation returns all common controls. + @Sendable + public func listCommonControls(_ input: ListCommonControlsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListCommonControlsResponse { + return try await self.client.execute( + operation: "ListCommonControls", + path: "/common-controls", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Returns a paginated list of domains from the Amazon Web Services Control Catalog. + @Sendable + public func listDomains(_ input: ListDomainsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListDomainsResponse { + return try await self.client.execute( + operation: "ListDomains", + path: "/domains", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Returns a paginated list of objectives from the Amazon Web Services Control Catalog. You can apply an optional filter to see the objectives that belong to a specific domain. If you don’t provide a filter, the operation returns all objectives. + @Sendable + public func listObjectives(_ input: ListObjectivesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListObjectivesResponse { + return try await self.client.execute( + operation: "ListObjectives", + path: "/objectives", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } +} + +extension ControlCatalog { + /// Initializer required by `AWSService.with(middlewares:timeout:byteBufferAllocator:options)`. You are not able to use this initializer directly as there are not public + /// initializers for `AWSServiceConfig.Patch`. Please use `AWSService.with(middlewares:timeout:byteBufferAllocator:options)` instead. + public init(from: ControlCatalog, patch: AWSServiceConfig.Patch) { + self.client = from.client + self.config = from.config.with(patch: patch) + } +} + +// MARK: Paginators + +@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) +extension ControlCatalog { + /// Returns a paginated list of common controls from the Amazon Web Services Control Catalog. You can apply an optional filter to see common controls that have a specific objective. If you don’t provide a filter, the operation returns all common controls. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listCommonControlsPaginator( + _ input: ListCommonControlsRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listCommonControls, + inputKey: \ListCommonControlsRequest.nextToken, + outputKey: \ListCommonControlsResponse.nextToken, + logger: logger + ) + } + + /// Returns a paginated list of domains from the Amazon Web Services Control Catalog. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listDomainsPaginator( + _ input: ListDomainsRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listDomains, + inputKey: \ListDomainsRequest.nextToken, + outputKey: \ListDomainsResponse.nextToken, + logger: logger + ) + } + + /// Returns a paginated list of objectives from the Amazon Web Services Control Catalog. You can apply an optional filter to see the objectives that belong to a specific domain. If you don’t provide a filter, the operation returns all objectives. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listObjectivesPaginator( + _ input: ListObjectivesRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listObjectives, + inputKey: \ListObjectivesRequest.nextToken, + outputKey: \ListObjectivesResponse.nextToken, + logger: logger + ) + } +} + +extension ControlCatalog.ListCommonControlsRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> ControlCatalog.ListCommonControlsRequest { + return .init( + commonControlFilter: self.commonControlFilter, + maxResults: self.maxResults, + nextToken: token + ) + } +} + +extension ControlCatalog.ListDomainsRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> ControlCatalog.ListDomainsRequest { + return .init( + maxResults: self.maxResults, + nextToken: token + ) + } +} + +extension ControlCatalog.ListObjectivesRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> ControlCatalog.ListObjectivesRequest { + return .init( + maxResults: self.maxResults, + nextToken: token, + objectiveFilter: self.objectiveFilter + ) + } +} diff --git a/Sources/Soto/Services/ControlCatalog/ControlCatalog_shapes.swift b/Sources/Soto/Services/ControlCatalog/ControlCatalog_shapes.swift new file mode 100644 index 0000000000..4caf7dd24e --- /dev/null +++ b/Sources/Soto/Services/ControlCatalog/ControlCatalog_shapes.swift @@ -0,0 +1,436 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Soto for AWS open source project +// +// Copyright (c) 2017-2023 the Soto project authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// See CONTRIBUTORS.txt for the list of Soto project authors +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// + +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/soto-project/soto-codegenerator. +// DO NOT EDIT. + +#if os(Linux) && compiler(<5.10) +// swift-corelibs-foundation hasn't been updated with Sendable conformances +@preconcurrency import Foundation +#else +import Foundation +#endif +@_spi(SotoInternal) import SotoCore + +extension ControlCatalog { + // MARK: Enums + + // MARK: Shapes + + public struct AssociatedDomainSummary: AWSDecodableShape { + /// The Amazon Resource Name (ARN) of the related domain. + public let arn: String? + /// The name of the related domain. + public let name: String? + + public init(arn: String? = nil, name: String? = nil) { + self.arn = arn + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case name = "Name" + } + } + + public struct AssociatedObjectiveSummary: AWSDecodableShape { + /// The Amazon Resource Name (ARN) of the related objective. + public let arn: String? + /// The name of the related objective. + public let name: String? + + public init(arn: String? = nil, name: String? = nil) { + self.arn = arn + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case name = "Name" + } + } + + public struct CommonControlFilter: AWSEncodableShape { + /// The objective that's used as filter criteria. You can use this parameter to specify one objective ARN at a time. Passing multiple ARNs in the CommonControlFilter isn’t currently supported. + public let objectives: [ObjectiveResourceFilter]? + + public init(objectives: [ObjectiveResourceFilter]? = nil) { + self.objectives = objectives + } + + public func validate(name: String) throws { + try self.objectives?.forEach { + try $0.validate(name: "\(name).objectives[]") + } + } + + private enum CodingKeys: String, CodingKey { + case objectives = "Objectives" + } + } + + public struct CommonControlSummary: AWSDecodableShape { + /// The Amazon Resource Name (ARN) that identifies the common control. + public let arn: String + /// The time when the common control was created. + public let createTime: Date + /// The description of the common control. + public let description: String + /// The domain that the common control belongs to. + public let domain: AssociatedDomainSummary + /// The time when the common control was most recently updated. + public let lastUpdateTime: Date + /// The name of the common control. + public let name: String + /// The objective that the common control belongs to. + public let objective: AssociatedObjectiveSummary + + public init(arn: String, createTime: Date, description: String, domain: AssociatedDomainSummary, lastUpdateTime: Date, name: String, objective: AssociatedObjectiveSummary) { + self.arn = arn + self.createTime = createTime + self.description = description + self.domain = domain + self.lastUpdateTime = lastUpdateTime + self.name = name + self.objective = objective + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case createTime = "CreateTime" + case description = "Description" + case domain = "Domain" + case lastUpdateTime = "LastUpdateTime" + case name = "Name" + case objective = "Objective" + } + } + + public struct DomainResourceFilter: AWSEncodableShape { + /// The Amazon Resource Name (ARN) of the domain. + public let arn: String? + + public init(arn: String? = nil) { + self.arn = arn + } + + public func validate(name: String) throws { + try self.validate(self.arn, name: "arn", parent: name, max: 2048) + try self.validate(self.arn, name: "arn", parent: name, min: 33) + try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:(aws(?:[-a-z]*)?):controlcatalog:::domain/[0-9a-z]+$") + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + } + } + + public struct DomainSummary: AWSDecodableShape { + /// The Amazon Resource Name (ARN) that identifies the domain. + public let arn: String + /// The time when the domain was created. + public let createTime: Date + /// The description of the domain. + public let description: String + /// The time when the domain was most recently updated. + public let lastUpdateTime: Date + /// The name of the domain. + public let name: String + + public init(arn: String, createTime: Date, description: String, lastUpdateTime: Date, name: String) { + self.arn = arn + self.createTime = createTime + self.description = description + self.lastUpdateTime = lastUpdateTime + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case createTime = "CreateTime" + case description = "Description" + case lastUpdateTime = "LastUpdateTime" + case name = "Name" + } + } + + public struct ListCommonControlsRequest: AWSEncodableShape { + /// An optional filter that narrows the results to a specific objective. This filter allows you to specify one objective ARN at a time. Passing multiple ARNs in the CommonControlFilter isn’t currently supported. + public let commonControlFilter: CommonControlFilter? + /// The maximum number of results on a page or for an API request call. + public let maxResults: Int? + /// The pagination token that's used to fetch the next set of results. + public let nextToken: String? + + public init(commonControlFilter: CommonControlFilter? = nil, maxResults: Int? = nil, nextToken: String? = nil) { + self.commonControlFilter = commonControlFilter + self.maxResults = maxResults + self.nextToken = nextToken + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.commonControlFilter, forKey: .commonControlFilter) + request.encodeQuery(self.maxResults, key: "maxResults") + request.encodeQuery(self.nextToken, key: "nextToken") + } + + public func validate(name: String) throws { + try self.commonControlFilter?.validate(name: "\(name).commonControlFilter") + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1024) + } + + private enum CodingKeys: String, CodingKey { + case commonControlFilter = "CommonControlFilter" + } + } + + public struct ListCommonControlsResponse: AWSDecodableShape { + /// The list of common controls that the ListCommonControls API returns. + public let commonControls: [CommonControlSummary] + /// The pagination token that's used to fetch the next set of results. + public let nextToken: String? + + public init(commonControls: [CommonControlSummary], nextToken: String? = nil) { + self.commonControls = commonControls + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case commonControls = "CommonControls" + case nextToken = "NextToken" + } + } + + public struct ListDomainsRequest: AWSEncodableShape { + /// The maximum number of results on a page or for an API request call. + public let maxResults: Int? + /// The pagination token that's used to fetch the next set of results. + public let nextToken: String? + + public init(maxResults: Int? = nil, nextToken: String? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.maxResults, key: "maxResults") + request.encodeQuery(self.nextToken, key: "nextToken") + } + + public func validate(name: String) throws { + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1024) + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListDomainsResponse: AWSDecodableShape { + /// The list of domains that the ListDomains API returns. + public let domains: [DomainSummary] + /// The pagination token that's used to fetch the next set of results. + public let nextToken: String? + + public init(domains: [DomainSummary], nextToken: String? = nil) { + self.domains = domains + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case domains = "Domains" + case nextToken = "NextToken" + } + } + + public struct ListObjectivesRequest: AWSEncodableShape { + /// The maximum number of results on a page or for an API request call. + public let maxResults: Int? + /// The pagination token that's used to fetch the next set of results. + public let nextToken: String? + /// An optional filter that narrows the results to a specific domain. This filter allows you to specify one domain ARN at a time. Passing multiple ARNs in the ObjectiveFilter isn’t currently supported. + public let objectiveFilter: ObjectiveFilter? + + public init(maxResults: Int? = nil, nextToken: String? = nil, objectiveFilter: ObjectiveFilter? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + self.objectiveFilter = objectiveFilter + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.maxResults, key: "maxResults") + request.encodeQuery(self.nextToken, key: "nextToken") + try container.encodeIfPresent(self.objectiveFilter, forKey: .objectiveFilter) + } + + public func validate(name: String) throws { + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1024) + try self.objectiveFilter?.validate(name: "\(name).objectiveFilter") + } + + private enum CodingKeys: String, CodingKey { + case objectiveFilter = "ObjectiveFilter" + } + } + + public struct ListObjectivesResponse: AWSDecodableShape { + /// The pagination token that's used to fetch the next set of results. + public let nextToken: String? + /// The list of objectives that the ListObjectives API returns. + public let objectives: [ObjectiveSummary] + + public init(nextToken: String? = nil, objectives: [ObjectiveSummary]) { + self.nextToken = nextToken + self.objectives = objectives + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case objectives = "Objectives" + } + } + + public struct ObjectiveFilter: AWSEncodableShape { + /// The domain that's used as filter criteria. You can use this parameter to specify one domain ARN at a time. Passing multiple ARNs in the ObjectiveFilter isn’t currently supported. + public let domains: [DomainResourceFilter]? + + public init(domains: [DomainResourceFilter]? = nil) { + self.domains = domains + } + + public func validate(name: String) throws { + try self.domains?.forEach { + try $0.validate(name: "\(name).domains[]") + } + } + + private enum CodingKeys: String, CodingKey { + case domains = "Domains" + } + } + + public struct ObjectiveResourceFilter: AWSEncodableShape { + /// The Amazon Resource Name (ARN) of the objective. + public let arn: String? + + public init(arn: String? = nil) { + self.arn = arn + } + + public func validate(name: String) throws { + try self.validate(self.arn, name: "arn", parent: name, max: 2048) + try self.validate(self.arn, name: "arn", parent: name, min: 36) + try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:(aws(?:[-a-z]*)?):controlcatalog:::objective/[0-9a-z]+$") + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + } + } + + public struct ObjectiveSummary: AWSDecodableShape { + /// The Amazon Resource Name (ARN) that identifies the objective. + public let arn: String + /// The time when the objective was created. + public let createTime: Date + /// The description of the objective. + public let description: String + /// The domain that the objective belongs to. + public let domain: AssociatedDomainSummary + /// The time when the objective was most recently updated. + public let lastUpdateTime: Date + /// The name of the objective. + public let name: String + + public init(arn: String, createTime: Date, description: String, domain: AssociatedDomainSummary, lastUpdateTime: Date, name: String) { + self.arn = arn + self.createTime = createTime + self.description = description + self.domain = domain + self.lastUpdateTime = lastUpdateTime + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case createTime = "CreateTime" + case description = "Description" + case domain = "Domain" + case lastUpdateTime = "LastUpdateTime" + case name = "Name" + } + } +} + +// MARK: - Errors + +/// Error enum for ControlCatalog +public struct ControlCatalogErrorType: AWSErrorType { + enum Code: String { + case accessDeniedException = "AccessDeniedException" + case internalServerException = "InternalServerException" + case throttlingException = "ThrottlingException" + case validationException = "ValidationException" + } + + private let error: Code + public let context: AWSErrorContext? + + /// initialize ControlCatalog + public init?(errorCode: String, context: AWSErrorContext) { + guard let error = Code(rawValue: errorCode) else { return nil } + self.error = error + self.context = context + } + + internal init(_ error: Code) { + self.error = error + self.context = nil + } + + /// return error code string + public var errorCode: String { self.error.rawValue } + + /// You do not have sufficient access to perform this action. + public static var accessDeniedException: Self { .init(.accessDeniedException) } + /// An internal service error occurred during the processing of your request. Try again later. + public static var internalServerException: Self { .init(.internalServerException) } + /// The request was denied due to request throttling. + public static var throttlingException: Self { .init(.throttlingException) } + /// The request has invalid or missing parameters. + public static var validationException: Self { .init(.validationException) } +} + +extension ControlCatalogErrorType: Equatable { + public static func == (lhs: ControlCatalogErrorType, rhs: ControlCatalogErrorType) -> Bool { + lhs.error == rhs.error + } +} + +extension ControlCatalogErrorType: CustomStringConvertible { + public var description: String { + return "\(self.error.rawValue): \(self.message ?? "")" + } +} diff --git a/Sources/Soto/Services/ControlTower/ControlTower_api.swift b/Sources/Soto/Services/ControlTower/ControlTower_api.swift index d7692e62f3..fd852bd997 100644 --- a/Sources/Soto/Services/ControlTower/ControlTower_api.swift +++ b/Sources/Soto/Services/ControlTower/ControlTower_api.swift @@ -77,6 +77,8 @@ public struct ControlTower: AWSService { "ca-central-1": "controltower-fips.ca-central-1.amazonaws.com", "us-east-1": "controltower-fips.us-east-1.amazonaws.com", "us-east-2": "controltower-fips.us-east-2.amazonaws.com", + "us-gov-east-1": "controltower-fips.us-gov-east-1.amazonaws.com", + "us-gov-west-1": "controltower-fips.us-gov-west-1.amazonaws.com", "us-west-1": "controltower-fips.us-west-1.amazonaws.com", "us-west-2": "controltower-fips.us-west-2.amazonaws.com" ]) diff --git a/Sources/Soto/Services/CostExplorer/CostExplorer_api.swift b/Sources/Soto/Services/CostExplorer/CostExplorer_api.swift index 613f17e14c..3434268b0a 100644 --- a/Sources/Soto/Services/CostExplorer/CostExplorer_api.swift +++ b/Sources/Soto/Services/CostExplorer/CostExplorer_api.swift @@ -240,7 +240,7 @@ public struct CostExplorer: AWSService { ) } - /// Retrieves cost and usage metrics with resources 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 SERVICE or AZ, in a specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Management account in an organization in Organizations have access to all member accounts. This API is currently available for the Amazon Elastic Compute Cloud – Compute service only. This is an opt-in only feature. You can enable this feature from the Cost Explorer Settings page. For information about how to access the Settings page, see Controlling Access for Cost Explorer in the Billing and Cost Management User Guide. + /// Retrieves cost and usage metrics with resources 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 SERVICE or AZ, in a specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Management account in an organization in Organizations have access to all member accounts. Hourly granularity is only available for EC2-Instances (Elastic Compute Cloud) resource-level data. All other resource-level data is available at daily granularity. This is an opt-in only feature. You can enable this feature from the Cost Explorer Settings page. For information about how to access the Settings page, see Controlling Access for Cost Explorer in the Billing and Cost Management User Guide. @Sendable public func getCostAndUsageWithResources(_ input: GetCostAndUsageWithResourcesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetCostAndUsageWithResourcesResponse { return try await self.client.execute( diff --git a/Sources/Soto/Services/CostExplorer/CostExplorer_shapes.swift b/Sources/Soto/Services/CostExplorer/CostExplorer_shapes.swift index c8f15dfa6f..9e4ffd9c6e 100644 --- a/Sources/Soto/Services/CostExplorer/CostExplorer_shapes.swift +++ b/Sources/Soto/Services/CostExplorer/CostExplorer_shapes.swift @@ -3887,17 +3887,21 @@ extension CostExplorer { } public struct ReservationPurchaseRecommendationMetadata: AWSDecodableShape { - /// The timestamp for when Amazon Web Services made this recommendation. + /// Additional metadata that might be applicable to the recommendation. + public let additionalMetadata: String? + /// The timestamp for when Amazon Web Services made the recommendation. public let generationTimestamp: String? - /// The ID for this specific recommendation. + /// The ID for the recommendation. public let recommendationId: String? - public init(generationTimestamp: String? = nil, recommendationId: String? = nil) { + public init(additionalMetadata: String? = nil, generationTimestamp: String? = nil, recommendationId: String? = nil) { + self.additionalMetadata = additionalMetadata self.generationTimestamp = generationTimestamp self.recommendationId = recommendationId } private enum CodingKeys: String, CodingKey { + case additionalMetadata = "AdditionalMetadata" case generationTimestamp = "GenerationTimestamp" case recommendationId = "RecommendationId" } @@ -4078,11 +4082,11 @@ extension CostExplorer { public struct RightsizingRecommendationMetadata: AWSDecodableShape { /// Additional metadata that might be applicable to the recommendation. public let additionalMetadata: String? - /// The timestamp for when Amazon Web Services made this recommendation. + /// The timestamp for when Amazon Web Services made the recommendation. public let generationTimestamp: String? - /// The number of days of previous usage that Amazon Web Services considers when making this recommendation. + /// The number of days of previous usage that Amazon Web Services considers when making the recommendation. public let lookbackPeriodInDays: LookbackPeriodInDays? - /// The ID for this specific recommendation. + /// The ID for the recommendation. public let recommendationId: String? public init(additionalMetadata: String? = nil, generationTimestamp: String? = nil, lookbackPeriodInDays: LookbackPeriodInDays? = nil, recommendationId: String? = nil) { diff --git a/Sources/Soto/Services/DataSync/DataSync_api.swift b/Sources/Soto/Services/DataSync/DataSync_api.swift index 793485fd3f..2925ddc68f 100644 --- a/Sources/Soto/Services/DataSync/DataSync_api.swift +++ b/Sources/Soto/Services/DataSync/DataSync_api.swift @@ -273,7 +273,7 @@ public struct DataSync: AWSService { ) } - /// Configures a transfer task, which defines where and how DataSync moves your data. A task includes a source location, destination location, and the options for how and when you want to transfer your data (such as bandwidth limits, scheduling, among other options). If you're planning to transfer data to or from an Amazon S3 location, review how DataSync can affect your S3 request charges and the DataSync pricing page before you begin. + /// Configures a task, which defines where and how DataSync transfers your data. A task includes a source location, destination location, and transfer options (such as bandwidth limits, scheduling, and more). If you're planning to transfer data to or from an Amazon S3 location, review how DataSync can affect your S3 request charges and the DataSync pricing page before you begin. @Sendable public func createTask(_ input: CreateTaskRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateTaskResponse { return try await self.client.execute( @@ -537,7 +537,7 @@ public struct DataSync: AWSService { ) } - /// Provides information about an DataSync transfer task. + /// Provides information about a task, which defines where and how DataSync transfers your data. @Sendable public func describeTask(_ input: DescribeTaskRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeTaskResponse { return try await self.client.execute( @@ -817,7 +817,7 @@ public struct DataSync: AWSService { ) } - /// Updates some parameters of an existing object storage location that DataSync accesses for a transfer. For information about creating a self-managed object storage location, see Creating a location for object storage. + /// Updates some parameters of an existing DataSync location for an object storage system. @Sendable public func updateLocationObjectStorage(_ input: UpdateLocationObjectStorageRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateLocationObjectStorageResponse { return try await self.client.execute( @@ -857,7 +857,7 @@ public struct DataSync: AWSService { ) } - /// Updates the configuration of an DataSync transfer task. + /// Updates the configuration of a task, which defines where and how DataSync transfers your data. @Sendable public func updateTask(_ input: UpdateTaskRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateTaskResponse { return try await self.client.execute( diff --git a/Sources/Soto/Services/DataSync/DataSync_shapes.swift b/Sources/Soto/Services/DataSync/DataSync_shapes.swift index d6461b4cdb..ff25443da7 100644 --- a/Sources/Soto/Services/DataSync/DataSync_shapes.swift +++ b/Sources/Soto/Services/DataSync/DataSync_shapes.swift @@ -264,6 +264,18 @@ extension DataSync { public var description: String { return self.rawValue } } + public enum ScheduleDisabledBy: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case service = "SERVICE" + case user = "USER" + public var description: String { return self.rawValue } + } + + public enum ScheduleStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + public enum SmbSecurityDescriptorCopyFlags: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case none = "NONE" case ownerDacl = "OWNER_DACL" @@ -535,7 +547,6 @@ extension DataSync { try self.validate(self.activationKey, name: "activationKey", parent: name, max: 29) try self.validate(self.activationKey, name: "activationKey", parent: name, pattern: "^[A-Z0-9]{5}(-[A-Z0-9]{5}){4}$") try self.validate(self.agentName, name: "agentName", parent: name, max: 256) - try self.validate(self.agentName, name: "agentName", parent: name, min: 1) try self.validate(self.agentName, name: "agentName", parent: name, pattern: "^[a-zA-Z0-9\\s+=._:@/-]+$") try self.securityGroupArns?.forEach { try validate($0, name: "securityGroupArns[]", parent: name, max: 128) @@ -1135,7 +1146,7 @@ extension DataSync { public let bucketName: String /// Specifies the secret key (for example, a password) if credentials are required to authenticate with the object storage server. public let secretKey: String? - /// Specifies a file with the certificates that are used to sign the object storage server's certificate (for example, file:///home/user/.ssh/storage_sys_certificate.pem). The file you specify must include the following: The certificate of the signing certificate authority (CA) Any intermediate certificates base64 encoding A .pem extension The file can be up to 32768 bytes (before base64 encoding). To use this parameter, configure ServerProtocol to HTTPS. + /// Specifies a certificate chain for DataSync to authenticate with your object storage system if the system uses a private or self-signed certificate authority (CA). You must specify a single .pem file with a full certificate chain (for example, file:///home/user/.ssh/object_storage_certificates.pem). The certificate chain might include: The object storage system's certificate All intermediate certificates (if there are any) The root certificate of the signing CA You can concatenate your certificates into a .pem file (which can be up to 32768 bytes before base64 encoding). The following example cat command creates an object_storage_certificates.pem file that includes three certificates: cat object_server_certificate.pem intermediate_certificate.pem ca_root_certificate.pem > object_storage_certificates.pem To use this parameter, configure ServerProtocol to HTTPS. public let serverCertificate: AWSBase64Data? /// Specifies the domain name or IP address of the object storage server. A DataSync agent uses this hostname to mount the object storage server in a network. public let serverHostname: String @@ -1356,25 +1367,25 @@ extension DataSync { } public struct CreateTaskRequest: AWSEncodableShape { - /// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that is used to monitor and log events in the task. + /// Specifies the Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your task. public let cloudWatchLogGroupArn: String? - /// The Amazon Resource Name (ARN) of an Amazon Web Services storage resource's location. + /// Specifies the ARN of your transfer's destination location. public let destinationLocationArn: String - /// Specifies a list of filter rules that exclude specific data during your transfer. For more information and examples, see Filtering data transferred by DataSync. + /// Specifies exclude filters that define the files, objects, and folders in your source location that you don't want DataSync to transfer. For more information and examples, see Specifying what DataSync transfers by using filters. public let excludes: [FilterRule]? - /// Specifies a list of filter rules that include specific data during your transfer. For more information and examples, see Filtering data transferred by DataSync. + /// Specifies include filters define the files, objects, and folders in your source location that you want DataSync to transfer. For more information and examples, see Specifying what DataSync transfers by using filters. public let includes: [FilterRule]? /// Configures a manifest, which is a list of files or objects that you want DataSync to transfer. For more information and configuration examples, see Specifying what DataSync transfers by using a manifest. When using this parameter, your caller identity (the role that you're using DataSync with) must have the iam:PassRole permission. The AWSDataSyncFullAccess policy includes this permission. public let manifestConfig: ManifestConfig? - /// The name of a task. This value is a text reference that is used to identify the task in the console. + /// Specifies the name of your task. public let name: String? - /// Specifies the configuration options for a task. Some options include preserving file or object metadata and verifying data integrity. You can also override these options before starting an individual run of a task (also known as a task execution). For more information, see StartTaskExecution. + /// Specifies your task's settings, such as preserving file metadata, verifying data integrity, among other options. public let options: Options? - /// Specifies a schedule used to periodically transfer files from a source to a destination location. The schedule should be specified in UTC time. For more information, see Scheduling your task. + /// Specifies a schedule for when you want your task to run. For more information, see Scheduling your task. public let schedule: TaskSchedule? - /// The Amazon Resource Name (ARN) of the source location for the task. + /// Specifies the ARN of your transfer's source location. public let sourceLocationArn: String - /// Specifies the tags that you want to apply to the Amazon Resource Name (ARN) representing the task. Tags are key-value pairs that help you manage, filter, and search for your DataSync resources. + /// Specifies the tags that you want to apply to your task. Tags are key-value pairs that help you manage, filter, and search for your DataSync resources. public let tags: [TagListEntry]? /// Specifies how you want to configure a task report, which provides detailed information about your DataSync transfer. For more information, see Monitoring your DataSync transfers with task reports. When using this parameter, your caller identity (the role that you're using DataSync with) must have the iam:PassRole permission. The AWSDataSyncFullAccess policy includes this permission. public let taskReportConfig: TaskReportConfig? @@ -1408,7 +1419,6 @@ extension DataSync { try self.validate(self.includes, name: "includes", parent: name, max: 1) try self.manifestConfig?.validate(name: "\(name).manifestConfig") try self.validate(self.name, name: "name", parent: name, max: 256) - try self.validate(self.name, name: "name", parent: name, min: 1) try self.validate(self.name, name: "name", parent: name, pattern: "^[a-zA-Z0-9\\s+=._:@/-]+$") try self.options?.validate(name: "\(name).options") try self.schedule?.validate(name: "\(name).schedule") @@ -2103,7 +2113,7 @@ extension DataSync { public let locationArn: String? /// The URI of the object storage system location. public let locationUri: String? - /// The self-signed certificate that DataSync uses to securely authenticate with your object storage system. + /// The certificate chain for DataSync to authenticate with your object storage system if the system uses a private or self-signed certificate authority (CA). public let serverCertificate: AWSBase64Data? /// The port that your object storage server accepts inbound network traffic on (for example, port 443). public let serverPort: Int? @@ -2540,7 +2550,7 @@ extension DataSync { } public struct DescribeTaskRequest: AWSEncodableShape { - /// Specifies the Amazon Resource Name (ARN) of the transfer task. + /// Specifies the Amazon Resource Name (ARN) of the transfer task that you want information about. public let taskArn: String public init(taskArn: String) { @@ -2558,44 +2568,46 @@ extension DataSync { } public struct DescribeTaskResponse: AWSDecodableShape { - /// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that was used to monitor and log events in the task. For more information on these groups, see Working with Log Groups and Log Streams in the Amazon CloudWatch User Guide. + /// The Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your task. For more information, see Monitoring DataSync with Amazon CloudWatch. public let cloudWatchLogGroupArn: String? /// The time that the task was created. public let creationTime: Date? - /// The Amazon Resource Name (ARN) of the task execution that is transferring files. + /// The ARN of the most recent task execution. public let currentTaskExecutionArn: String? - /// The Amazon Resource Name (ARN) of the Amazon Web Services storage resource's location. + /// The ARN of your transfer's destination location. public let destinationLocationArn: String? - /// The Amazon Resource Names (ARNs) of the network interfaces created for your destination location. For more information, see Network interface requirements. + /// The ARNs of the network interfaces that DataSync created for your destination location. public let destinationNetworkInterfaceArns: [String]? - /// Errors that DataSync encountered during execution of the task. You can use this error code to help troubleshoot issues. + /// If there's an issue with your task, you can use the error code to help you troubleshoot the problem. For more information, see Troubleshooting issues with DataSync transfers. public let errorCode: String? - /// Detailed description of an error that was encountered during the task execution. You can use this information to help troubleshoot issues. + /// If there's an issue with your task, you can use the error details to help you troubleshoot the problem. For more information, see Troubleshooting issues with DataSync transfers. public let errorDetail: String? - /// A list of filter rules that exclude specific data during your transfer. For more information and examples, see Filtering data transferred by DataSync. + /// The exclude filters that define the files, objects, and folders in your source location that you don't want DataSync to transfer. For more information and examples, see Specifying what DataSync transfers by using filters. public let excludes: [FilterRule]? - /// A list of filter rules that include specific data during your transfer. For more information and examples, see Filtering data transferred by DataSync. + /// The include filters that define the files, objects, and folders in your source location that you want DataSync to transfer. For more information and examples, see Specifying what DataSync transfers by using filters. public let includes: [FilterRule]? - /// The configuration of the manifest that lists the files or objects to transfer. For more information, see Specifying what DataSync transfers by using a manifest. + /// The configuration of the manifest that lists the files or objects that you want DataSync to transfer. For more information, see Specifying what DataSync transfers by using a manifest. public let manifestConfig: ManifestConfig? - /// The name of the task that was described. + /// The name of your task. public let name: String? - /// The configuration options that control the behavior of the StartTaskExecution operation. Some options include preserving file or object metadata and verifying data integrity. You can override these options for each task execution. For more information, see StartTaskExecution. + /// The task's settings. For example, what file metadata gets preserved, how data integrity gets verified at the end of your transfer, bandwidth limits, among other options. public let options: Options? - /// The schedule used to periodically transfer files from a source to a destination location. + /// The schedule for when you want your task to run. For more information, see Scheduling your task. public let schedule: TaskSchedule? - /// The Amazon Resource Name (ARN) of the source file system's location. + /// The details about your task schedule. + public let scheduleDetails: TaskScheduleDetails? + /// The ARN of your transfer's source location. public let sourceLocationArn: String? - /// The Amazon Resource Names (ARNs) of the network interfaces created for your source location. For more information, see Network interface requirements. + /// The ARNs of the network interfaces that DataSync created for your source location. public let sourceNetworkInterfaceArns: [String]? - /// The status of the task that was described. For detailed information about task execution statuses, see Understanding Task Statuses in the DataSync User Guide. + /// The status of your task. For information about what each status means, see Task statuses. public let status: TaskStatus? - /// The Amazon Resource Name (ARN) of the task that was described. + /// The ARN of your task. public let taskArn: String? - /// The configuration of your task report, which provides detailed information about for your DataSync transfer. For more information, see Creating a task report. + /// The configuration of your task report, which provides detailed information about your DataSync transfer. For more information, see Monitoring your DataSync transfers with task reports. public let taskReportConfig: TaskReportConfig? - public init(cloudWatchLogGroupArn: String? = nil, creationTime: Date? = nil, currentTaskExecutionArn: String? = nil, destinationLocationArn: String? = nil, destinationNetworkInterfaceArns: [String]? = nil, errorCode: String? = nil, errorDetail: String? = nil, excludes: [FilterRule]? = nil, includes: [FilterRule]? = nil, manifestConfig: ManifestConfig? = nil, name: String? = nil, options: Options? = nil, schedule: TaskSchedule? = nil, sourceLocationArn: String? = nil, sourceNetworkInterfaceArns: [String]? = nil, status: TaskStatus? = nil, taskArn: String? = nil, taskReportConfig: TaskReportConfig? = nil) { + public init(cloudWatchLogGroupArn: String? = nil, creationTime: Date? = nil, currentTaskExecutionArn: String? = nil, destinationLocationArn: String? = nil, destinationNetworkInterfaceArns: [String]? = nil, errorCode: String? = nil, errorDetail: String? = nil, excludes: [FilterRule]? = nil, includes: [FilterRule]? = nil, manifestConfig: ManifestConfig? = nil, name: String? = nil, options: Options? = nil, schedule: TaskSchedule? = nil, scheduleDetails: TaskScheduleDetails? = nil, sourceLocationArn: String? = nil, sourceNetworkInterfaceArns: [String]? = nil, status: TaskStatus? = nil, taskArn: String? = nil, taskReportConfig: TaskReportConfig? = nil) { self.cloudWatchLogGroupArn = cloudWatchLogGroupArn self.creationTime = creationTime self.currentTaskExecutionArn = currentTaskExecutionArn @@ -2609,6 +2621,7 @@ extension DataSync { self.name = name self.options = options self.schedule = schedule + self.scheduleDetails = scheduleDetails self.sourceLocationArn = sourceLocationArn self.sourceNetworkInterfaceArns = sourceNetworkInterfaceArns self.status = status @@ -2630,6 +2643,7 @@ extension DataSync { case name = "Name" case options = "Options" case schedule = "Schedule" + case scheduleDetails = "ScheduleDetails" case sourceLocationArn = "SourceLocationArn" case sourceNetworkInterfaceArns = "SourceNetworkInterfaceArns" case status = "Status" @@ -3599,7 +3613,7 @@ extension DataSync { public let transferMode: TransferMode? /// Specifies the POSIX user ID (UID) of the file's owner. INT_VALUE (default) - Preserves the integer value of UID and group ID (GID), which is recommended. NONE - Ignores UID and GID. For more information, see Metadata copied by DataSync. public let uid: Uid? - /// Specifies how and when DataSync checks the integrity of your data during a transfer. ONLY_FILES_TRANSFERRED (recommended) - DataSync calculates the checksum of transferred files and metadata at the source location. At the end of the transfer, DataSync then compares this checksum to the checksum calculated on those files at the destination. We recommend this option when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes. For more information, see Storage class considerations with Amazon S3 locations. POINT_IN_TIME_CONSISTENT (default) - At the end of the transfer, DataSync scans the entire source and destination to verify that both locations are fully synchronized. You can't use this option when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes. For more information, see Storage class considerations with Amazon S3 locations. NONE - DataSync doesn't run additional verification at the end of the transfer. All data transmissions are still integrity-checked with checksum verification during the transfer. + /// Specifies how and when DataSync checks the integrity of your data during a transfer. ONLY_FILES_TRANSFERRED (recommended) - DataSync calculates the checksum of transferred files and metadata at the source location. At the end of the transfer, DataSync then compares this checksum to the checksum calculated on those files at the destination. We recommend this option when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes. For more information, see Storage class considerations with Amazon S3 locations. POINT_IN_TIME_CONSISTENT (default) - At the end of the transfer, DataSync scans the entire source and destination to verify that both locations are fully synchronized. If you use a manifest, DataSync only scans and verifies what's listed in the manifest. You can't use this option when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes. For more information, see Storage class considerations with Amazon S3 locations. NONE - DataSync doesn't run additional verification at the end of the transfer. All data transmissions are still integrity-checked with checksum verification during the transfer. public let verifyMode: VerifyMode? public init(atime: Atime? = nil, bytesPerSecond: Int64? = nil, gid: Gid? = nil, logLevel: LogLevel? = nil, mtime: Mtime? = nil, objectTags: ObjectTags? = nil, overwriteMode: OverwriteMode? = nil, posixPermissions: PosixPermissions? = nil, preserveDeletedFiles: PreserveDeletedFiles? = nil, preserveDevices: PreserveDevices? = nil, securityDescriptorCopyFlags: SmbSecurityDescriptorCopyFlags? = nil, taskQueueing: TaskQueueing? = nil, transferMode: TransferMode? = nil, uid: Uid? = nil, verifyMode: VerifyMode? = nil) { @@ -3665,7 +3679,7 @@ extension DataSync { } public struct Platform: AWSDecodableShape { - /// The version of the DataSync agent. On December 7, 2023, we discontinued version 1 DataSync agents. Check the DataSync console to see if you have affected agents. If you do, replace those agents or delete them if they aren't in use. If you need more help, contact Amazon Web Services Support. + /// The version of the DataSync agent. public let version: String? public init(version: String? = nil) { @@ -4177,7 +4191,6 @@ extension DataSync { try self.validate(self.key, name: "key", parent: name, min: 1) try self.validate(self.key, name: "key", parent: name, pattern: "^[a-zA-Z0-9\\s+=._:/-]+$") try self.validate(self.value, name: "value", parent: name, max: 256) - try self.validate(self.value, name: "value", parent: name, min: 1) try self.validate(self.value, name: "value", parent: name, pattern: "^[a-zA-Z0-9\\s+=._:@/-]+$") } @@ -4363,11 +4376,14 @@ extension DataSync { } public struct TaskSchedule: AWSEncodableShape & AWSDecodableShape { - /// A cron expression that specifies when DataSync initiates a scheduled transfer from a source to a destination location. + /// Specifies your task schedule by using a cron expression in UTC time. For information about cron expression syntax, see the Amazon EventBridge User Guide . public let scheduleExpression: String + /// Specifies whether to enable or disable your task schedule. Your schedule is enabled by default, but there can be situations where you need to disable it. For example, you might need to pause a recurring transfer to fix an issue with your task or perform maintenance on your storage system. DataSync might disable your schedule automatically if your task fails repeatedly with the same error. For more information, see TaskScheduleDetails. + public let status: ScheduleStatus? - public init(scheduleExpression: String) { + public init(scheduleExpression: String, status: ScheduleStatus? = nil) { self.scheduleExpression = scheduleExpression + self.status = status } public func validate(name: String) throws { @@ -4377,6 +4393,28 @@ extension DataSync { private enum CodingKeys: String, CodingKey { case scheduleExpression = "ScheduleExpression" + case status = "Status" + } + } + + public struct TaskScheduleDetails: AWSDecodableShape { + /// Indicates how your task schedule was disabled. USER - Your schedule was manually disabled by using the UpdateTask operation or DataSync console. SERVICE - Your schedule was automatically disabled by DataSync because the task failed repeatedly with the same error. + public let disabledBy: ScheduleDisabledBy? + /// Provides a reason if the task schedule is disabled. If your schedule is disabled by USER, you see a Manually disabled by user. message. If your schedule is disabled by SERVICE, you see an error message to help you understand why the task keeps failing. For information on resolving DataSync errors, see Troubleshooting issues with DataSync transfers. + public let disabledReason: String? + /// Indicates the last time the status of your task schedule changed. For example, if DataSync automatically disables your schedule because of a repeated error, you can see when the schedule was disabled. + public let statusUpdateTime: Date? + + public init(disabledBy: ScheduleDisabledBy? = nil, disabledReason: String? = nil, statusUpdateTime: Date? = nil) { + self.disabledBy = disabledBy + self.disabledReason = disabledReason + self.statusUpdateTime = statusUpdateTime + } + + private enum CodingKeys: String, CodingKey { + case disabledBy = "DisabledBy" + case disabledReason = "DisabledReason" + case statusUpdateTime = "StatusUpdateTime" } } @@ -4453,7 +4491,6 @@ extension DataSync { try self.validate(self.agentArn, name: "agentArn", parent: name, max: 128) try self.validate(self.agentArn, name: "agentArn", parent: name, pattern: "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:agent/agent-[0-9a-z]{17}$") try self.validate(self.name, name: "name", parent: name, max: 256) - try self.validate(self.name, name: "name", parent: name, min: 1) try self.validate(self.name, name: "name", parent: name, pattern: "^[a-zA-Z0-9\\s+=._:@/-]+$") } @@ -4691,7 +4728,7 @@ extension DataSync { public let locationArn: String /// Specifies the secret key (for example, a password) if credentials are required to authenticate with the object storage server. public let secretKey: String? - /// Specifies a certificate to authenticate with an object storage system that uses a private or self-signed certificate authority (CA). You must specify a Base64-encoded .pem file (for example, file:///home/user/.ssh/storage_sys_certificate.pem). The certificate can be up to 32768 bytes (before Base64 encoding). To use this parameter, configure ServerProtocol to HTTPS. Updating the certificate doesn't interfere with tasks that you have in progress. + /// Specifies a certificate chain for DataSync to authenticate with your object storage system if the system uses a private or self-signed certificate authority (CA). You must specify a single .pem file with a full certificate chain (for example, file:///home/user/.ssh/object_storage_certificates.pem). The certificate chain might include: The object storage system's certificate All intermediate certificates (if there are any) The root certificate of the signing CA You can concatenate your certificates into a .pem file (which can be up to 32768 bytes before base64 encoding). The following example cat command creates an object_storage_certificates.pem file that includes three certificates: cat object_server_certificate.pem intermediate_certificate.pem ca_root_certificate.pem > object_storage_certificates.pem To use this parameter, configure ServerProtocol to HTTPS. Updating this parameter doesn't interfere with tasks that you have in progress. public let serverCertificate: AWSBase64Data? /// Specifies the port that your object storage server accepts inbound network traffic on (for example, port 443). public let serverPort: Int? @@ -4888,20 +4925,20 @@ extension DataSync { } public struct UpdateTaskRequest: AWSEncodableShape { - /// The Amazon Resource Name (ARN) of the resource name of the Amazon CloudWatch log group. + /// Specifies the Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your task. public let cloudWatchLogGroupArn: String? - /// Specifies a list of filter rules that exclude specific data during your transfer. For more information and examples, see Filtering data transferred by DataSync. + /// Specifies exclude filters that define the files, objects, and folders in your source location that you don't want DataSync to transfer. For more information and examples, see Specifying what DataSync transfers by using filters. public let excludes: [FilterRule]? - /// Specifies a list of filter rules that include specific data during your transfer. For more information and examples, see Filtering data transferred by DataSync. + /// Specifies include filters define the files, objects, and folders in your source location that you want DataSync to transfer. For more information and examples, see Specifying what DataSync transfers by using filters. public let includes: [FilterRule]? /// Configures a manifest, which is a list of files or objects that you want DataSync to transfer. For more information and configuration examples, see Specifying what DataSync transfers by using a manifest. When using this parameter, your caller identity (the IAM role that you're using DataSync with) must have the iam:PassRole permission. The AWSDataSyncFullAccess policy includes this permission. To remove a manifest configuration, specify this parameter as empty. public let manifestConfig: ManifestConfig? - /// The name of the task to update. + /// Specifies the name of your task. public let name: String? public let options: Options? - /// Specifies a schedule used to periodically transfer files from a source to a destination location. You can configure your task to execute hourly, daily, weekly or on specific days of the week. You control when in the day or hour you want the task to execute. The time you specify is UTC time. For more information, see Scheduling your task. + /// Specifies a schedule for when you want your task to run. For more information, see Scheduling your task. public let schedule: TaskSchedule? - /// The Amazon Resource Name (ARN) of the resource name of the task to update. + /// Specifies the ARN of the task that you want to update. public let taskArn: String /// Specifies how you want to configure a task report, which provides detailed information about your DataSync transfer. For more information, see Monitoring your DataSync transfers with task reports. When using this parameter, your caller identity (the IAM role that you're using DataSync with) must have the iam:PassRole permission. The AWSDataSyncFullAccess policy includes this permission. To remove a task report configuration, specify this parameter as empty. public let taskReportConfig: TaskReportConfig? @@ -4931,7 +4968,6 @@ extension DataSync { try self.validate(self.includes, name: "includes", parent: name, max: 1) try self.manifestConfig?.validate(name: "\(name).manifestConfig") try self.validate(self.name, name: "name", parent: name, max: 256) - try self.validate(self.name, name: "name", parent: name, min: 1) try self.validate(self.name, name: "name", parent: name, pattern: "^[a-zA-Z0-9\\s+=._:@/-]+$") try self.options?.validate(name: "\(name).options") try self.schedule?.validate(name: "\(name).schedule") diff --git a/Sources/Soto/Services/Drs/Drs_shapes.swift b/Sources/Soto/Services/Drs/Drs_shapes.swift index 4eb4fad0de..83cc8eb364 100644 --- a/Sources/Soto/Services/Drs/Drs_shapes.swift +++ b/Sources/Soto/Services/Drs/Drs_shapes.swift @@ -397,6 +397,7 @@ extension Drs { case containsMarketplaceProductCodes = "CONTAINS_MARKETPLACE_PRODUCT_CODES" case missingVolumeAttributes = "MISSING_VOLUME_ATTRIBUTES" case missingVolumeAttributesAndPrecheckUnavailable = "MISSING_VOLUME_ATTRIBUTES_AND_PRECHECK_UNAVAILABLE" + case pending = "PENDING" case regular = "REGULAR" public var description: String { return self.rawValue } } @@ -795,8 +796,10 @@ extension Drs { public let replicatedDisks: [DataReplicationInfoReplicatedDisk]? /// AWS Availability zone into which data is being replicated. public let stagingAvailabilityZone: String? + /// The ARN of the staging Outpost + public let stagingOutpostArn: String? - public init(dataReplicationError: DataReplicationError? = nil, dataReplicationInitiation: DataReplicationInitiation? = nil, dataReplicationState: DataReplicationState? = nil, etaDateTime: String? = nil, lagDuration: String? = nil, replicatedDisks: [DataReplicationInfoReplicatedDisk]? = nil, stagingAvailabilityZone: String? = nil) { + public init(dataReplicationError: DataReplicationError? = nil, dataReplicationInitiation: DataReplicationInitiation? = nil, dataReplicationState: DataReplicationState? = nil, etaDateTime: String? = nil, lagDuration: String? = nil, replicatedDisks: [DataReplicationInfoReplicatedDisk]? = nil, stagingAvailabilityZone: String? = nil, stagingOutpostArn: String? = nil) { self.dataReplicationError = dataReplicationError self.dataReplicationInitiation = dataReplicationInitiation self.dataReplicationState = dataReplicationState @@ -804,6 +807,7 @@ extension Drs { self.lagDuration = lagDuration self.replicatedDisks = replicatedDisks self.stagingAvailabilityZone = stagingAvailabilityZone + self.stagingOutpostArn = stagingOutpostArn } private enum CodingKeys: String, CodingKey { @@ -814,6 +818,7 @@ extension Drs { case lagDuration = "lagDuration" case replicatedDisks = "replicatedDisks" case stagingAvailabilityZone = "stagingAvailabilityZone" + case stagingOutpostArn = "stagingOutpostArn" } } @@ -2677,12 +2682,14 @@ extension Drs { public let recoveryInstanceID: String? /// Properties of the Recovery Instance machine. public let recoveryInstanceProperties: RecoveryInstanceProperties? + /// The ARN of the source Outpost + public let sourceOutpostArn: String? /// The Source Server ID that this Recovery Instance is associated with. public let sourceServerID: String? /// An array of tags that are associated with the Recovery Instance. public let tags: [String: String]? - public init(agentVersion: String? = nil, arn: String? = nil, dataReplicationInfo: RecoveryInstanceDataReplicationInfo? = nil, ec2InstanceID: String? = nil, ec2InstanceState: EC2InstanceState? = nil, failback: RecoveryInstanceFailback? = nil, isDrill: Bool? = nil, jobID: String? = nil, originAvailabilityZone: String? = nil, originEnvironment: OriginEnvironment? = nil, pointInTimeSnapshotDateTime: String? = nil, recoveryInstanceID: String? = nil, recoveryInstanceProperties: RecoveryInstanceProperties? = nil, sourceServerID: String? = nil, tags: [String: String]? = nil) { + public init(agentVersion: String? = nil, arn: String? = nil, dataReplicationInfo: RecoveryInstanceDataReplicationInfo? = nil, ec2InstanceID: String? = nil, ec2InstanceState: EC2InstanceState? = nil, failback: RecoveryInstanceFailback? = nil, isDrill: Bool? = nil, jobID: String? = nil, originAvailabilityZone: String? = nil, originEnvironment: OriginEnvironment? = nil, pointInTimeSnapshotDateTime: String? = nil, recoveryInstanceID: String? = nil, recoveryInstanceProperties: RecoveryInstanceProperties? = nil, sourceOutpostArn: String? = nil, sourceServerID: String? = nil, tags: [String: String]? = nil) { self.agentVersion = agentVersion self.arn = arn self.dataReplicationInfo = dataReplicationInfo @@ -2696,6 +2703,7 @@ extension Drs { self.pointInTimeSnapshotDateTime = pointInTimeSnapshotDateTime self.recoveryInstanceID = recoveryInstanceID self.recoveryInstanceProperties = recoveryInstanceProperties + self.sourceOutpostArn = sourceOutpostArn self.sourceServerID = sourceServerID self.tags = tags } @@ -2714,6 +2722,7 @@ extension Drs { case pointInTimeSnapshotDateTime = "pointInTimeSnapshotDateTime" case recoveryInstanceID = "recoveryInstanceID" case recoveryInstanceProperties = "recoveryInstanceProperties" + case sourceOutpostArn = "sourceOutpostArn" case sourceServerID = "sourceServerID" case tags = "tags" } @@ -2751,8 +2760,10 @@ extension Drs { public let replicatedDisks: [RecoveryInstanceDataReplicationInfoReplicatedDisk]? /// AWS Availability zone into which data is being replicated. public let stagingAvailabilityZone: String? + /// The ARN of the staging Outpost + public let stagingOutpostArn: String? - public init(dataReplicationError: RecoveryInstanceDataReplicationError? = nil, dataReplicationInitiation: RecoveryInstanceDataReplicationInitiation? = nil, dataReplicationState: RecoveryInstanceDataReplicationState? = nil, etaDateTime: String? = nil, lagDuration: String? = nil, replicatedDisks: [RecoveryInstanceDataReplicationInfoReplicatedDisk]? = nil, stagingAvailabilityZone: String? = nil) { + public init(dataReplicationError: RecoveryInstanceDataReplicationError? = nil, dataReplicationInitiation: RecoveryInstanceDataReplicationInitiation? = nil, dataReplicationState: RecoveryInstanceDataReplicationState? = nil, etaDateTime: String? = nil, lagDuration: String? = nil, replicatedDisks: [RecoveryInstanceDataReplicationInfoReplicatedDisk]? = nil, stagingAvailabilityZone: String? = nil, stagingOutpostArn: String? = nil) { self.dataReplicationError = dataReplicationError self.dataReplicationInitiation = dataReplicationInitiation self.dataReplicationState = dataReplicationState @@ -2760,6 +2771,7 @@ extension Drs { self.lagDuration = lagDuration self.replicatedDisks = replicatedDisks self.stagingAvailabilityZone = stagingAvailabilityZone + self.stagingOutpostArn = stagingOutpostArn } private enum CodingKeys: String, CodingKey { @@ -2770,6 +2782,7 @@ extension Drs { case lagDuration = "lagDuration" case replicatedDisks = "replicatedDisks" case stagingAvailabilityZone = "stagingAvailabilityZone" + case stagingOutpostArn = "stagingOutpostArn" } } @@ -3244,17 +3257,21 @@ extension Drs { public let originAvailabilityZone: String? /// AWS Region for an EC2-originated Source Server. public let originRegion: String? + /// The ARN of the source Outpost + public let sourceOutpostArn: String? - public init(originAccountID: String? = nil, originAvailabilityZone: String? = nil, originRegion: String? = nil) { + public init(originAccountID: String? = nil, originAvailabilityZone: String? = nil, originRegion: String? = nil, sourceOutpostArn: String? = nil) { self.originAccountID = originAccountID self.originAvailabilityZone = originAvailabilityZone self.originRegion = originRegion + self.sourceOutpostArn = sourceOutpostArn } private enum CodingKeys: String, CodingKey { case originAccountID = "originAccountID" case originAvailabilityZone = "originAvailabilityZone" case originRegion = "originRegion" + case sourceOutpostArn = "sourceOutpostArn" } } diff --git a/Sources/Soto/Services/DynamoDB/DynamoDB_api.swift b/Sources/Soto/Services/DynamoDB/DynamoDB_api.swift index 35bb24987a..cee918f162 100644 --- a/Sources/Soto/Services/DynamoDB/DynamoDB_api.swift +++ b/Sources/Soto/Services/DynamoDB/DynamoDB_api.swift @@ -514,7 +514,7 @@ public struct DynamoDB: AWSService { ) } - /// Returns the resource-based policy document attached to the resource, which can be a table or stream, in JSON format. GetResourcePolicy follows an eventually consistent model. The following list describes the outcomes when you issue the GetResourcePolicy request immediately after issuing another request: If you issue a GetResourcePolicy request immediately after a PutResourcePolicy request, DynamoDB might return a PolicyNotFoundException. If you issue a GetResourcePolicyrequest immediately after a DeleteResourcePolicy request, DynamoDB might return the policy that was present before the deletion request. If you issue a GetResourcePolicy request immediately after a CreateTable request, which includes a resource-based policy, DynamoDB might return a ResourceNotFoundException or a PolicyNotFoundException. Because GetResourcePolicy uses an eventually consistent query, the metadata for your policy or table might not be available at that moment. Wait for a few seconds, and then retry the GetResourcePolicy request. After a GetResourcePolicy request returns a policy created using the PutResourcePolicy request, you can assume the policy will start getting applied in the authorization of requests to the resource. Because this process is eventually consistent, it will take some time to apply the policy to all requests to a resource. Policies that you attach while creating a table using the CreateTable request will always be applied to all requests for that table. + /// Returns the resource-based policy document attached to the resource, which can be a table or stream, in JSON format. GetResourcePolicy follows an eventually consistent model. The following list describes the outcomes when you issue the GetResourcePolicy request immediately after issuing another request: If you issue a GetResourcePolicy request immediately after a PutResourcePolicy request, DynamoDB might return a PolicyNotFoundException. If you issue a GetResourcePolicyrequest immediately after a DeleteResourcePolicy request, DynamoDB might return the policy that was present before the deletion request. If you issue a GetResourcePolicy request immediately after a CreateTable request, which includes a resource-based policy, DynamoDB might return a ResourceNotFoundException or a PolicyNotFoundException. Because GetResourcePolicy uses an eventually consistent query, the metadata for your policy or table might not be available at that moment. Wait for a few seconds, and then retry the GetResourcePolicy request. After a GetResourcePolicy request returns a policy created using the PutResourcePolicy request, the policy will be applied in the authorization of requests to the resource. Because this process is eventually consistent, it will take some time to apply the policy to all requests to a resource. Policies that you attach while creating a table using the CreateTable request will always be applied to all requests for that table. @Sendable public func getResourcePolicy(_ input: GetResourcePolicyInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetResourcePolicyOutput { return try await self.client.execute( @@ -656,7 +656,7 @@ public struct DynamoDB: AWSService { ) } - /// Attaches a resource-based policy document to the resource, which can be a table or stream. When you attach a resource-based policy using this API, the policy application is eventually consistent . PutResourcePolicy is an idempotent operation; running it multiple times on the same resource using the same policy document will return the same revision ID. If you specify an ExpectedRevisionId which doesn't match the current policy's RevisionId, the PolicyNotFoundException will be returned. PutResourcePolicy is an asynchronous operation. If you issue a GetResourcePolicy request immediately after a PutResourcePolicy request, DynamoDB might return your previous policy, if there was one, or return the PolicyNotFoundException. This is because GetResourcePolicy uses an eventually consistent query, and the metadata for your policy or table might not be available at that moment. Wait for a few seconds, and then try the GetResourcePolicy request again. + /// Attaches a resource-based policy document to the resource, which can be a table or stream. When you attach a resource-based policy using this API, the policy application is eventually consistent . PutResourcePolicy is an idempotent operation; running it multiple times on the same resource using the same policy document will return the same revision ID. If you specify an ExpectedRevisionId that doesn't match the current policy's RevisionId, the PolicyNotFoundException will be returned. PutResourcePolicy is an asynchronous operation. If you issue a GetResourcePolicy request immediately after a PutResourcePolicy request, DynamoDB might return your previous policy, if there was one, or return the PolicyNotFoundException. This is because GetResourcePolicy uses an eventually consistent query, and the metadata for your policy or table might not be available at that moment. Wait for a few seconds, and then try the GetResourcePolicy request again. @Sendable public func putResourcePolicy(_ input: PutResourcePolicyInput, logger: Logger = AWSClient.loggingDisabled) async throws -> PutResourcePolicyOutput { return try await self.client.execute( diff --git a/Sources/Soto/Services/DynamoDB/DynamoDB_shapes.swift b/Sources/Soto/Services/DynamoDB/DynamoDB_shapes.swift index bad61ecf21..1e8625036d 100644 --- a/Sources/Soto/Services/DynamoDB/DynamoDB_shapes.swift +++ b/Sources/Soto/Services/DynamoDB/DynamoDB_shapes.swift @@ -1266,14 +1266,17 @@ extension DynamoDB { public let indexName: String /// The key schema for the global secondary index. public let keySchema: [KeySchemaElement] + /// The maximum number of read and write units for the global secondary index being created. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both. + public let onDemandThroughput: OnDemandThroughput? /// 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. public let projection: Projection /// Represents the provisioned throughput settings for the specified global secondary index. For current minimum and maximum provisioned throughput values, see Service, Account, and Table Quotas in the Amazon DynamoDB Developer Guide. public let provisionedThroughput: ProvisionedThroughput? - public init(indexName: String, keySchema: [KeySchemaElement], projection: Projection, provisionedThroughput: ProvisionedThroughput? = nil) { + public init(indexName: String, keySchema: [KeySchemaElement], onDemandThroughput: OnDemandThroughput? = nil, projection: Projection, provisionedThroughput: ProvisionedThroughput? = nil) { self.indexName = indexName self.keySchema = keySchema + self.onDemandThroughput = onDemandThroughput self.projection = projection self.provisionedThroughput = provisionedThroughput } @@ -1294,6 +1297,7 @@ extension DynamoDB { private enum CodingKeys: String, CodingKey { case indexName = "IndexName" case keySchema = "KeySchema" + case onDemandThroughput = "OnDemandThroughput" case projection = "Projection" case provisionedThroughput = "ProvisionedThroughput" } @@ -1353,6 +1357,8 @@ extension DynamoDB { public let globalSecondaryIndexes: [ReplicaGlobalSecondaryIndex]? /// The KMS key that should be used for KMS encryption in the new replica. To specify a key, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB KMS key alias/aws/dynamodb. public let kmsMasterKeyId: String? + /// The maximum on-demand throughput settings for the specified replica table being created. You can only modify MaxReadRequestUnits, because you can't modify MaxWriteRequestUnits for individual replica tables. + public let onDemandThroughputOverride: OnDemandThroughputOverride? /// Replica-specific provisioned throughput. If not specified, uses the source table's provisioned throughput settings. public let provisionedThroughputOverride: ProvisionedThroughputOverride? /// The Region where the new replica will be created. @@ -1360,9 +1366,10 @@ extension DynamoDB { /// Replica-specific table class. If not specified, uses the source table's table class. public let tableClassOverride: TableClass? - public init(globalSecondaryIndexes: [ReplicaGlobalSecondaryIndex]? = nil, kmsMasterKeyId: String? = nil, provisionedThroughputOverride: ProvisionedThroughputOverride? = nil, regionName: String, tableClassOverride: TableClass? = nil) { + public init(globalSecondaryIndexes: [ReplicaGlobalSecondaryIndex]? = nil, kmsMasterKeyId: String? = nil, onDemandThroughputOverride: OnDemandThroughputOverride? = nil, provisionedThroughputOverride: ProvisionedThroughputOverride? = nil, regionName: String, tableClassOverride: TableClass? = nil) { self.globalSecondaryIndexes = globalSecondaryIndexes self.kmsMasterKeyId = kmsMasterKeyId + self.onDemandThroughputOverride = onDemandThroughputOverride self.provisionedThroughputOverride = provisionedThroughputOverride self.regionName = regionName self.tableClassOverride = tableClassOverride @@ -1379,6 +1386,7 @@ extension DynamoDB { private enum CodingKeys: String, CodingKey { case globalSecondaryIndexes = "GlobalSecondaryIndexes" case kmsMasterKeyId = "KMSMasterKeyId" + case onDemandThroughputOverride = "OnDemandThroughputOverride" case provisionedThroughputOverride = "ProvisionedThroughputOverride" case regionName = "RegionName" case tableClassOverride = "TableClassOverride" @@ -1398,9 +1406,11 @@ extension DynamoDB { public let keySchema: [KeySchemaElement] /// One or more local secondary indexes (the maximum is 5) 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 is 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 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. public let localSecondaryIndexes: [LocalSecondaryIndex]? + /// Sets the maximum number of read and write units for the specified table in on-demand capacity mode. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both. + public let onDemandThroughput: OnDemandThroughput? /// Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the UpdateTable operation. If you set BillingMode as PROVISIONED, you must specify this property. If you set BillingMode as PAY_PER_REQUEST, you cannot specify this property. For current minimum and maximum provisioned throughput values, see Service, Account, and Table Quotas in the Amazon DynamoDB Developer Guide. public let provisionedThroughput: ProvisionedThroughput? - /// An Amazon Web Services resource-based policy document in JSON format that will be attached to the table. When you attach a resource-based policy while creating a table, the policy creation is strongly consistent. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. You can’t request an increase for this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + /// An Amazon Web Services resource-based policy document in JSON format that will be attached to the table. When you attach a resource-based policy while creating a table, the policy application is strongly consistent. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that apply for resource-based policies, see Resource-based policy considerations. public let resourcePolicy: String? /// Represents the settings used to enable server-side encryption. public let sseSpecification: SSESpecification? @@ -1413,13 +1423,14 @@ extension DynamoDB { /// A list of key-value pairs to label the table. For more information, see Tagging for DynamoDB. public let tags: [Tag]? - public init(attributeDefinitions: [AttributeDefinition], billingMode: BillingMode? = nil, deletionProtectionEnabled: Bool? = nil, globalSecondaryIndexes: [GlobalSecondaryIndex]? = nil, keySchema: [KeySchemaElement], localSecondaryIndexes: [LocalSecondaryIndex]? = nil, provisionedThroughput: ProvisionedThroughput? = nil, resourcePolicy: String? = nil, sseSpecification: SSESpecification? = nil, streamSpecification: StreamSpecification? = nil, tableClass: TableClass? = nil, tableName: String, tags: [Tag]? = nil) { + public init(attributeDefinitions: [AttributeDefinition], billingMode: BillingMode? = nil, deletionProtectionEnabled: Bool? = nil, globalSecondaryIndexes: [GlobalSecondaryIndex]? = nil, keySchema: [KeySchemaElement], localSecondaryIndexes: [LocalSecondaryIndex]? = nil, onDemandThroughput: OnDemandThroughput? = nil, provisionedThroughput: ProvisionedThroughput? = nil, resourcePolicy: String? = nil, sseSpecification: SSESpecification? = nil, streamSpecification: StreamSpecification? = nil, tableClass: TableClass? = nil, tableName: String, tags: [Tag]? = nil) { self.attributeDefinitions = attributeDefinitions self.billingMode = billingMode self.deletionProtectionEnabled = deletionProtectionEnabled self.globalSecondaryIndexes = globalSecondaryIndexes self.keySchema = keySchema self.localSecondaryIndexes = localSecondaryIndexes + self.onDemandThroughput = onDemandThroughput self.provisionedThroughput = provisionedThroughput self.resourcePolicy = resourcePolicy self.sseSpecification = sseSpecification @@ -1459,6 +1470,7 @@ extension DynamoDB { case globalSecondaryIndexes = "GlobalSecondaryIndexes" case keySchema = "KeySchema" case localSecondaryIndexes = "LocalSecondaryIndexes" + case onDemandThroughput = "OnDemandThroughput" case provisionedThroughput = "ProvisionedThroughput" case resourcePolicy = "ResourcePolicy" case sseSpecification = "SSESpecification" @@ -1773,7 +1785,7 @@ extension DynamoDB { } public struct DeleteResourcePolicyOutput: AWSDecodableShape { - /// A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. This value will be empty if you make a request against a resource without a policy. + /// A unique string that represents the revision ID of the policy. If you're comparing revision IDs, make sure to always use string comparison logic. This value will be empty if you make a request against a resource without a policy. public let revisionId: String? public init(revisionId: String? = nil) { @@ -2757,7 +2769,7 @@ extension DynamoDB { public struct GetResourcePolicyOutput: AWSDecodableShape { /// The resource-based policy document attached to the resource, which can be a table or stream, in JSON format. public let policy: String? - /// A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + /// A unique string that represents the revision ID of the policy. If you're comparing revision IDs, make sure to always use string comparison logic. public let revisionId: String? public init(policy: String? = nil, revisionId: String? = nil) { @@ -2776,14 +2788,17 @@ extension DynamoDB { 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's 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 maximum number of read and write units for the specified global secondary index. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both. + public let onDemandThroughput: OnDemandThroughput? /// 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 provisioned throughput settings for the specified global secondary index. For current minimum and maximum provisioned throughput values, see Service, Account, and Table Quotas in the Amazon DynamoDB Developer Guide. public let provisionedThroughput: ProvisionedThroughput? - public init(indexName: String, keySchema: [KeySchemaElement], projection: Projection, provisionedThroughput: ProvisionedThroughput? = nil) { + public init(indexName: String, keySchema: [KeySchemaElement], onDemandThroughput: OnDemandThroughput? = nil, projection: Projection, provisionedThroughput: ProvisionedThroughput? = nil) { self.indexName = indexName self.keySchema = keySchema + self.onDemandThroughput = onDemandThroughput self.projection = projection self.provisionedThroughput = provisionedThroughput } @@ -2804,6 +2819,7 @@ extension DynamoDB { private enum CodingKeys: String, CodingKey { case indexName = "IndexName" case keySchema = "KeySchema" + case onDemandThroughput = "OnDemandThroughput" case projection = "Projection" case provisionedThroughput = "ProvisionedThroughput" } @@ -2847,12 +2863,14 @@ extension DynamoDB { public let itemCount: Int64? /// 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's 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 maximum number of read and write units for the specified global secondary index. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both. + public let onDemandThroughput: OnDemandThroughput? /// 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 provisioned throughput settings for the specified global secondary index. For current minimum and maximum provisioned throughput values, see Service, Account, and Table Quotas in the Amazon DynamoDB Developer Guide. public let provisionedThroughput: ProvisionedThroughputDescription? - public init(backfilling: Bool? = nil, indexArn: String? = nil, indexName: String? = nil, indexSizeBytes: Int64? = nil, indexStatus: IndexStatus? = nil, itemCount: Int64? = nil, keySchema: [KeySchemaElement]? = nil, projection: Projection? = nil, provisionedThroughput: ProvisionedThroughputDescription? = nil) { + public init(backfilling: Bool? = nil, indexArn: String? = nil, indexName: String? = nil, indexSizeBytes: Int64? = nil, indexStatus: IndexStatus? = nil, itemCount: Int64? = nil, keySchema: [KeySchemaElement]? = nil, onDemandThroughput: OnDemandThroughput? = nil, projection: Projection? = nil, provisionedThroughput: ProvisionedThroughputDescription? = nil) { self.backfilling = backfilling self.indexArn = indexArn self.indexName = indexName @@ -2860,6 +2878,7 @@ extension DynamoDB { self.indexStatus = indexStatus self.itemCount = itemCount self.keySchema = keySchema + self.onDemandThroughput = onDemandThroughput self.projection = projection self.provisionedThroughput = provisionedThroughput } @@ -2872,6 +2891,7 @@ extension DynamoDB { case indexStatus = "IndexStatus" case itemCount = "ItemCount" case keySchema = "KeySchema" + case onDemandThroughput = "OnDemandThroughput" case projection = "Projection" case provisionedThroughput = "ProvisionedThroughput" } @@ -2882,14 +2902,16 @@ extension DynamoDB { 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's 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 let onDemandThroughput: OnDemandThroughput? /// 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 provisioned throughput settings for the specified global secondary index. public let provisionedThroughput: ProvisionedThroughput? - public init(indexName: String? = nil, keySchema: [KeySchemaElement]? = nil, projection: Projection? = nil, provisionedThroughput: ProvisionedThroughput? = nil) { + public init(indexName: String? = nil, keySchema: [KeySchemaElement]? = nil, onDemandThroughput: OnDemandThroughput? = nil, projection: Projection? = nil, provisionedThroughput: ProvisionedThroughput? = nil) { self.indexName = indexName self.keySchema = keySchema + self.onDemandThroughput = onDemandThroughput self.projection = projection self.provisionedThroughput = provisionedThroughput } @@ -2897,6 +2919,7 @@ extension DynamoDB { private enum CodingKeys: String, CodingKey { case indexName = "IndexName" case keySchema = "KeySchema" + case onDemandThroughput = "OnDemandThroughput" case projection = "Projection" case provisionedThroughput = "ProvisionedThroughput" } @@ -3801,6 +3824,36 @@ extension DynamoDB { } } + public struct OnDemandThroughput: AWSEncodableShape & AWSDecodableShape { + /// Maximum number of read request units for the specified table. To specify a maximum OnDemandThroughput on your table, set the value of MaxReadRequestUnits as greater than or equal to 1. To remove the maximum OnDemandThroughput that is currently set on your table, set the value of MaxReadRequestUnits to -1. + public let maxReadRequestUnits: Int64? + /// Maximum number of write request units for the specified table. To specify a maximum OnDemandThroughput on your table, set the value of MaxWriteRequestUnits as greater than or equal to 1. To remove the maximum OnDemandThroughput that is currently set on your table, set the value of MaxWriteRequestUnits to -1. + public let maxWriteRequestUnits: Int64? + + public init(maxReadRequestUnits: Int64? = nil, maxWriteRequestUnits: Int64? = nil) { + self.maxReadRequestUnits = maxReadRequestUnits + self.maxWriteRequestUnits = maxWriteRequestUnits + } + + private enum CodingKeys: String, CodingKey { + case maxReadRequestUnits = "MaxReadRequestUnits" + case maxWriteRequestUnits = "MaxWriteRequestUnits" + } + } + + public struct OnDemandThroughputOverride: AWSEncodableShape & AWSDecodableShape { + /// Maximum number of read request units for the specified replica table. + public let maxReadRequestUnits: Int64? + + public init(maxReadRequestUnits: Int64? = nil) { + self.maxReadRequestUnits = maxReadRequestUnits + } + + private enum CodingKeys: String, CodingKey { + case maxReadRequestUnits = "MaxReadRequestUnits" + } + } + public struct ParameterizedStatement: AWSEncodableShape { /// The parameter values. public let parameters: [AttributeValue]? @@ -4122,9 +4175,9 @@ extension DynamoDB { public struct PutResourcePolicyInput: AWSEncodableShape { /// Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. public let confirmRemoveSelfResourceAccess: Bool? - /// A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. When you provide an expected revision ID, if the revision ID of the existing policy on the resource doesn't match or if there's no policy attached to the resource, your request will be rejected with a PolicyNotFoundException. To conditionally put a policy when no policy exists for the resource, specify NO_POLICY for the revision ID. + /// A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. When you provide an expected revision ID, if the revision ID of the existing policy on the resource doesn't match or if there's no policy attached to the resource, your request will be rejected with a PolicyNotFoundException. To conditionally attach a policy when no policy exists for the resource, specify NO_POLICY for the revision ID. public let expectedRevisionId: String? - /// An Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + /// An Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. Within a resource-based policy, if the action for a DynamoDB service-linked role (SLR) to replicate data for a global table is denied, adding or deleting a replica will fail with an error. For a full list of all considerations that apply while attaching a resource-based policy, see Resource-based policy considerations. public let policy: String /// The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. public let resourceArn: String @@ -4160,7 +4213,7 @@ extension DynamoDB { } public struct PutResourcePolicyOutput: AWSDecodableShape { - /// A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + /// A unique string that represents the revision ID of the policy. If you're comparing revision IDs, make sure to always use string comparison logic. public let revisionId: String? public init(revisionId: String? = nil) { @@ -4380,6 +4433,8 @@ extension DynamoDB { public let globalSecondaryIndexes: [ReplicaGlobalSecondaryIndexDescription]? /// The KMS key of the replica that will be used for KMS encryption. public let kmsMasterKeyId: String? + /// Overrides the maximum on-demand throughput settings for the specified replica table. + public let onDemandThroughputOverride: OnDemandThroughputOverride? /// Replica-specific provisioned throughput. If not described, uses the source table's provisioned throughput settings. public let provisionedThroughputOverride: ProvisionedThroughputOverride? /// The name of the Region. @@ -4394,9 +4449,10 @@ extension DynamoDB { public let replicaStatusPercentProgress: String? public let replicaTableClassSummary: TableClassSummary? - public init(globalSecondaryIndexes: [ReplicaGlobalSecondaryIndexDescription]? = nil, kmsMasterKeyId: String? = nil, provisionedThroughputOverride: ProvisionedThroughputOverride? = nil, regionName: String? = nil, replicaInaccessibleDateTime: Date? = nil, replicaStatus: ReplicaStatus? = nil, replicaStatusDescription: String? = nil, replicaStatusPercentProgress: String? = nil, replicaTableClassSummary: TableClassSummary? = nil) { + public init(globalSecondaryIndexes: [ReplicaGlobalSecondaryIndexDescription]? = nil, kmsMasterKeyId: String? = nil, onDemandThroughputOverride: OnDemandThroughputOverride? = nil, provisionedThroughputOverride: ProvisionedThroughputOverride? = nil, regionName: String? = nil, replicaInaccessibleDateTime: Date? = nil, replicaStatus: ReplicaStatus? = nil, replicaStatusDescription: String? = nil, replicaStatusPercentProgress: String? = nil, replicaTableClassSummary: TableClassSummary? = nil) { self.globalSecondaryIndexes = globalSecondaryIndexes self.kmsMasterKeyId = kmsMasterKeyId + self.onDemandThroughputOverride = onDemandThroughputOverride self.provisionedThroughputOverride = provisionedThroughputOverride self.regionName = regionName self.replicaInaccessibleDateTime = replicaInaccessibleDateTime @@ -4409,6 +4465,7 @@ extension DynamoDB { private enum CodingKeys: String, CodingKey { case globalSecondaryIndexes = "GlobalSecondaryIndexes" case kmsMasterKeyId = "KMSMasterKeyId" + case onDemandThroughputOverride = "OnDemandThroughputOverride" case provisionedThroughputOverride = "ProvisionedThroughputOverride" case regionName = "RegionName" case replicaInaccessibleDateTime = "ReplicaInaccessibleDateTime" @@ -4422,11 +4479,14 @@ extension DynamoDB { public struct ReplicaGlobalSecondaryIndex: AWSEncodableShape { /// The name of the global secondary index. public let indexName: String + /// Overrides the maximum on-demand throughput settings for the specified global secondary index in the specified replica table. + public let onDemandThroughputOverride: OnDemandThroughputOverride? /// Replica table GSI-specific provisioned throughput. If not specified, uses the source table GSI's read capacity settings. public let provisionedThroughputOverride: ProvisionedThroughputOverride? - public init(indexName: String, provisionedThroughputOverride: ProvisionedThroughputOverride? = nil) { + public init(indexName: String, onDemandThroughputOverride: OnDemandThroughputOverride? = nil, provisionedThroughputOverride: ProvisionedThroughputOverride? = nil) { self.indexName = indexName + self.onDemandThroughputOverride = onDemandThroughputOverride self.provisionedThroughputOverride = provisionedThroughputOverride } @@ -4439,6 +4499,7 @@ extension DynamoDB { private enum CodingKeys: String, CodingKey { case indexName = "IndexName" + case onDemandThroughputOverride = "OnDemandThroughputOverride" case provisionedThroughputOverride = "ProvisionedThroughputOverride" } } @@ -4492,16 +4553,20 @@ extension DynamoDB { public struct ReplicaGlobalSecondaryIndexDescription: AWSDecodableShape { /// The name of the global secondary index. public let indexName: String? + /// Overrides the maximum on-demand throughput for the specified global secondary index in the specified replica table. + public let onDemandThroughputOverride: OnDemandThroughputOverride? /// If not described, uses the source table GSI's read capacity settings. public let provisionedThroughputOverride: ProvisionedThroughputOverride? - public init(indexName: String? = nil, provisionedThroughputOverride: ProvisionedThroughputOverride? = nil) { + public init(indexName: String? = nil, onDemandThroughputOverride: OnDemandThroughputOverride? = nil, provisionedThroughputOverride: ProvisionedThroughputOverride? = nil) { self.indexName = indexName + self.onDemandThroughputOverride = onDemandThroughputOverride self.provisionedThroughputOverride = provisionedThroughputOverride } private enum CodingKeys: String, CodingKey { case indexName = "IndexName" + case onDemandThroughputOverride = "OnDemandThroughputOverride" case provisionedThroughputOverride = "ProvisionedThroughputOverride" } } @@ -4728,6 +4793,7 @@ extension DynamoDB { public let globalSecondaryIndexOverride: [GlobalSecondaryIndex]? /// List of local secondary indexes for the restored table. The indexes provided should match existing secondary indexes. You can choose to exclude some or all of the indexes at the time of restore. public let localSecondaryIndexOverride: [LocalSecondaryIndex]? + public let onDemandThroughputOverride: OnDemandThroughput? /// Provisioned throughput settings for the restored table. public let provisionedThroughputOverride: ProvisionedThroughput? /// The new server-side encryption settings for the restored table. @@ -4735,11 +4801,12 @@ extension DynamoDB { /// The name of the new table to which the backup must be restored. public let targetTableName: String - public init(backupArn: String, billingModeOverride: BillingMode? = nil, globalSecondaryIndexOverride: [GlobalSecondaryIndex]? = nil, localSecondaryIndexOverride: [LocalSecondaryIndex]? = nil, provisionedThroughputOverride: ProvisionedThroughput? = nil, sseSpecificationOverride: SSESpecification? = nil, targetTableName: String) { + public init(backupArn: String, billingModeOverride: BillingMode? = nil, globalSecondaryIndexOverride: [GlobalSecondaryIndex]? = nil, localSecondaryIndexOverride: [LocalSecondaryIndex]? = nil, onDemandThroughputOverride: OnDemandThroughput? = nil, provisionedThroughputOverride: ProvisionedThroughput? = nil, sseSpecificationOverride: SSESpecification? = nil, targetTableName: String) { self.backupArn = backupArn self.billingModeOverride = billingModeOverride self.globalSecondaryIndexOverride = globalSecondaryIndexOverride self.localSecondaryIndexOverride = localSecondaryIndexOverride + self.onDemandThroughputOverride = onDemandThroughputOverride self.provisionedThroughputOverride = provisionedThroughputOverride self.sseSpecificationOverride = sseSpecificationOverride self.targetTableName = targetTableName @@ -4765,6 +4832,7 @@ extension DynamoDB { case billingModeOverride = "BillingModeOverride" case globalSecondaryIndexOverride = "GlobalSecondaryIndexOverride" case localSecondaryIndexOverride = "LocalSecondaryIndexOverride" + case onDemandThroughputOverride = "OnDemandThroughputOverride" case provisionedThroughputOverride = "ProvisionedThroughputOverride" case sseSpecificationOverride = "SSESpecificationOverride" case targetTableName = "TargetTableName" @@ -4791,6 +4859,7 @@ extension DynamoDB { public let globalSecondaryIndexOverride: [GlobalSecondaryIndex]? /// List of local secondary indexes for the restored table. The indexes provided should match existing secondary indexes. You can choose to exclude some or all of the indexes at the time of restore. public let localSecondaryIndexOverride: [LocalSecondaryIndex]? + public let onDemandThroughputOverride: OnDemandThroughput? /// Provisioned throughput settings for the restored table. public let provisionedThroughputOverride: ProvisionedThroughput? /// Time in the past to restore the table to. @@ -4806,10 +4875,11 @@ extension DynamoDB { /// Restore the table to the latest possible time. LatestRestorableDateTime is typically 5 minutes before the current time. public let useLatestRestorableTime: Bool? - public init(billingModeOverride: BillingMode? = nil, globalSecondaryIndexOverride: [GlobalSecondaryIndex]? = nil, localSecondaryIndexOverride: [LocalSecondaryIndex]? = nil, provisionedThroughputOverride: ProvisionedThroughput? = nil, restoreDateTime: Date? = nil, sourceTableArn: String? = nil, sourceTableName: String? = nil, sseSpecificationOverride: SSESpecification? = nil, targetTableName: String, useLatestRestorableTime: Bool? = nil) { + public init(billingModeOverride: BillingMode? = nil, globalSecondaryIndexOverride: [GlobalSecondaryIndex]? = nil, localSecondaryIndexOverride: [LocalSecondaryIndex]? = nil, onDemandThroughputOverride: OnDemandThroughput? = nil, provisionedThroughputOverride: ProvisionedThroughput? = nil, restoreDateTime: Date? = nil, sourceTableArn: String? = nil, sourceTableName: String? = nil, sseSpecificationOverride: SSESpecification? = nil, targetTableName: String, useLatestRestorableTime: Bool? = nil) { self.billingModeOverride = billingModeOverride self.globalSecondaryIndexOverride = globalSecondaryIndexOverride self.localSecondaryIndexOverride = localSecondaryIndexOverride + self.onDemandThroughputOverride = onDemandThroughputOverride self.provisionedThroughputOverride = provisionedThroughputOverride self.restoreDateTime = restoreDateTime self.sourceTableArn = sourceTableArn @@ -4841,6 +4911,7 @@ extension DynamoDB { case billingModeOverride = "BillingModeOverride" case globalSecondaryIndexOverride = "GlobalSecondaryIndexOverride" case localSecondaryIndexOverride = "LocalSecondaryIndexOverride" + case onDemandThroughputOverride = "OnDemandThroughputOverride" case provisionedThroughputOverride = "ProvisionedThroughputOverride" case restoreDateTime = "RestoreDateTime" case sourceTableArn = "SourceTableArn" @@ -5077,6 +5148,7 @@ extension DynamoDB { public let itemCount: Int64? /// Schema of the table. public let keySchema: [KeySchemaElement] + public let onDemandThroughput: OnDemandThroughput? /// Read IOPs and Write IOPS on the table when the backup was created. public let provisionedThroughput: ProvisionedThroughput /// ARN of the table for which backup was created. @@ -5090,10 +5162,11 @@ extension DynamoDB { /// Size of the table in bytes. Note that this is an approximate value. public let tableSizeBytes: Int64? - public init(billingMode: BillingMode? = nil, itemCount: Int64? = nil, keySchema: [KeySchemaElement], provisionedThroughput: ProvisionedThroughput, tableArn: String? = nil, tableCreationDateTime: Date, tableId: String, tableName: String, tableSizeBytes: Int64? = nil) { + public init(billingMode: BillingMode? = nil, itemCount: Int64? = nil, keySchema: [KeySchemaElement], onDemandThroughput: OnDemandThroughput? = nil, provisionedThroughput: ProvisionedThroughput, tableArn: String? = nil, tableCreationDateTime: Date, tableId: String, tableName: String, tableSizeBytes: Int64? = nil) { self.billingMode = billingMode self.itemCount = itemCount self.keySchema = keySchema + self.onDemandThroughput = onDemandThroughput self.provisionedThroughput = provisionedThroughput self.tableArn = tableArn self.tableCreationDateTime = tableCreationDateTime @@ -5106,6 +5179,7 @@ extension DynamoDB { case billingMode = "BillingMode" case itemCount = "ItemCount" case keySchema = "KeySchema" + case onDemandThroughput = "OnDemandThroughput" case provisionedThroughput = "ProvisionedThroughput" case tableArn = "TableArn" case tableCreationDateTime = "TableCreationDateTime" @@ -5208,16 +5282,18 @@ extension DynamoDB { public let globalSecondaryIndexes: [GlobalSecondaryIndex]? /// The primary key and option sort key of the table created as part of the import operation. public let keySchema: [KeySchemaElement] + public let onDemandThroughput: OnDemandThroughput? public let provisionedThroughput: ProvisionedThroughput? public let sseSpecification: SSESpecification? /// The name of the table created as part of the import operation. public let tableName: String - public init(attributeDefinitions: [AttributeDefinition], billingMode: BillingMode? = nil, globalSecondaryIndexes: [GlobalSecondaryIndex]? = nil, keySchema: [KeySchemaElement], provisionedThroughput: ProvisionedThroughput? = nil, sseSpecification: SSESpecification? = nil, tableName: String) { + public init(attributeDefinitions: [AttributeDefinition], billingMode: BillingMode? = nil, globalSecondaryIndexes: [GlobalSecondaryIndex]? = nil, keySchema: [KeySchemaElement], onDemandThroughput: OnDemandThroughput? = nil, provisionedThroughput: ProvisionedThroughput? = nil, sseSpecification: SSESpecification? = nil, tableName: String) { self.attributeDefinitions = attributeDefinitions self.billingMode = billingMode self.globalSecondaryIndexes = globalSecondaryIndexes self.keySchema = keySchema + self.onDemandThroughput = onDemandThroughput self.provisionedThroughput = provisionedThroughput self.sseSpecification = sseSpecification self.tableName = tableName @@ -5246,6 +5322,7 @@ extension DynamoDB { case billingMode = "BillingMode" case globalSecondaryIndexes = "GlobalSecondaryIndexes" case keySchema = "KeySchema" + case onDemandThroughput = "OnDemandThroughput" case provisionedThroughput = "ProvisionedThroughput" case sseSpecification = "SSESpecification" case tableName = "TableName" @@ -5277,6 +5354,8 @@ extension DynamoDB { public let latestStreamLabel: String? /// 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: IndexName - The name of the local secondary index. KeySchema - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). 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 is 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 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. IndexSizeBytes - Represents the total size of the index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. ItemCount - Represents the number of items in the index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. If the table is in the DELETING state, no information about indexes will be returned. public let localSecondaryIndexes: [LocalSecondaryIndexDescription]? + /// The maximum number of read and write units for the specified on-demand table. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both. + public let onDemandThroughput: OnDemandThroughput? /// The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases. public let provisionedThroughput: ProvisionedThroughputDescription? /// Represents replicas of the table. @@ -5300,7 +5379,7 @@ extension DynamoDB { /// The current state of the table: CREATING - The table is being created. UPDATING - The table/index configuration is being updated. The table/index remains available for data operations when UPDATING. DELETING - The table is being deleted. ACTIVE - The table is ready for use. INACCESSIBLE_ENCRYPTION_CREDENTIALS - The KMS key used to encrypt the table in inaccessible. Table operations may fail due to failure to use the KMS key. DynamoDB will initiate the table archival process when a table's KMS key remains inaccessible for more than seven days. ARCHIVING - The table is being archived. Operations are not allowed until archival is complete. ARCHIVED - The table has been archived. See the ArchivalReason for more information. public let tableStatus: TableStatus? - public init(archivalSummary: ArchivalSummary? = nil, attributeDefinitions: [AttributeDefinition]? = nil, billingModeSummary: BillingModeSummary? = nil, creationDateTime: Date? = nil, deletionProtectionEnabled: Bool? = nil, globalSecondaryIndexes: [GlobalSecondaryIndexDescription]? = nil, globalTableVersion: String? = nil, itemCount: Int64? = nil, keySchema: [KeySchemaElement]? = nil, latestStreamArn: String? = nil, latestStreamLabel: String? = nil, localSecondaryIndexes: [LocalSecondaryIndexDescription]? = nil, provisionedThroughput: ProvisionedThroughputDescription? = nil, replicas: [ReplicaDescription]? = nil, restoreSummary: RestoreSummary? = nil, sseDescription: SSEDescription? = nil, streamSpecification: StreamSpecification? = nil, tableArn: String? = nil, tableClassSummary: TableClassSummary? = nil, tableId: String? = nil, tableName: String? = nil, tableSizeBytes: Int64? = nil, tableStatus: TableStatus? = nil) { + public init(archivalSummary: ArchivalSummary? = nil, attributeDefinitions: [AttributeDefinition]? = nil, billingModeSummary: BillingModeSummary? = nil, creationDateTime: Date? = nil, deletionProtectionEnabled: Bool? = nil, globalSecondaryIndexes: [GlobalSecondaryIndexDescription]? = nil, globalTableVersion: String? = nil, itemCount: Int64? = nil, keySchema: [KeySchemaElement]? = nil, latestStreamArn: String? = nil, latestStreamLabel: String? = nil, localSecondaryIndexes: [LocalSecondaryIndexDescription]? = nil, onDemandThroughput: OnDemandThroughput? = nil, provisionedThroughput: ProvisionedThroughputDescription? = nil, replicas: [ReplicaDescription]? = nil, restoreSummary: RestoreSummary? = nil, sseDescription: SSEDescription? = nil, streamSpecification: StreamSpecification? = nil, tableArn: String? = nil, tableClassSummary: TableClassSummary? = nil, tableId: String? = nil, tableName: String? = nil, tableSizeBytes: Int64? = nil, tableStatus: TableStatus? = nil) { self.archivalSummary = archivalSummary self.attributeDefinitions = attributeDefinitions self.billingModeSummary = billingModeSummary @@ -5313,6 +5392,7 @@ extension DynamoDB { self.latestStreamArn = latestStreamArn self.latestStreamLabel = latestStreamLabel self.localSecondaryIndexes = localSecondaryIndexes + self.onDemandThroughput = onDemandThroughput self.provisionedThroughput = provisionedThroughput self.replicas = replicas self.restoreSummary = restoreSummary @@ -5339,6 +5419,7 @@ extension DynamoDB { case latestStreamArn = "LatestStreamArn" case latestStreamLabel = "LatestStreamLabel" case localSecondaryIndexes = "LocalSecondaryIndexes" + case onDemandThroughput = "OnDemandThroughput" case provisionedThroughput = "ProvisionedThroughput" case replicas = "Replicas" case restoreSummary = "RestoreSummary" @@ -5716,11 +5797,14 @@ extension DynamoDB { public struct UpdateGlobalSecondaryIndexAction: AWSEncodableShape { /// The name of the global secondary index to be updated. public let indexName: String + /// Updates the maximum number of read and write units for the specified global secondary index. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both. + public let onDemandThroughput: OnDemandThroughput? /// Represents the provisioned throughput settings for the specified global secondary index. For current minimum and maximum provisioned throughput values, see Service, Account, and Table Quotas in the Amazon DynamoDB Developer Guide. - public let provisionedThroughput: ProvisionedThroughput + public let provisionedThroughput: ProvisionedThroughput? - public init(indexName: String, provisionedThroughput: ProvisionedThroughput) { + public init(indexName: String, onDemandThroughput: OnDemandThroughput? = nil, provisionedThroughput: ProvisionedThroughput? = nil) { self.indexName = indexName + self.onDemandThroughput = onDemandThroughput self.provisionedThroughput = provisionedThroughput } @@ -5728,11 +5812,12 @@ extension DynamoDB { try self.validate(self.indexName, name: "indexName", parent: name, max: 255) try self.validate(self.indexName, name: "indexName", parent: name, min: 3) try self.validate(self.indexName, name: "indexName", parent: name, pattern: "^[a-zA-Z0-9_.-]+$") - try self.provisionedThroughput.validate(name: "\(name).provisionedThroughput") + try self.provisionedThroughput?.validate(name: "\(name).provisionedThroughput") } private enum CodingKeys: String, CodingKey { case indexName = "IndexName" + case onDemandThroughput = "OnDemandThroughput" case provisionedThroughput = "ProvisionedThroughput" } } @@ -6016,6 +6101,8 @@ extension DynamoDB { public let globalSecondaryIndexes: [ReplicaGlobalSecondaryIndex]? /// The KMS key of the replica that should be used for KMS encryption. To specify a key, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB KMS key alias/aws/dynamodb. public let kmsMasterKeyId: String? + /// Overrides the maximum on-demand throughput for the replica table. + public let onDemandThroughputOverride: OnDemandThroughputOverride? /// Replica-specific provisioned throughput. If not specified, uses the source table's provisioned throughput settings. public let provisionedThroughputOverride: ProvisionedThroughputOverride? /// The Region where the replica exists. @@ -6023,9 +6110,10 @@ extension DynamoDB { /// Replica-specific table class. If not specified, uses the source table's table class. public let tableClassOverride: TableClass? - public init(globalSecondaryIndexes: [ReplicaGlobalSecondaryIndex]? = nil, kmsMasterKeyId: String? = nil, provisionedThroughputOverride: ProvisionedThroughputOverride? = nil, regionName: String, tableClassOverride: TableClass? = nil) { + public init(globalSecondaryIndexes: [ReplicaGlobalSecondaryIndex]? = nil, kmsMasterKeyId: String? = nil, onDemandThroughputOverride: OnDemandThroughputOverride? = nil, provisionedThroughputOverride: ProvisionedThroughputOverride? = nil, regionName: String, tableClassOverride: TableClass? = nil) { self.globalSecondaryIndexes = globalSecondaryIndexes self.kmsMasterKeyId = kmsMasterKeyId + self.onDemandThroughputOverride = onDemandThroughputOverride self.provisionedThroughputOverride = provisionedThroughputOverride self.regionName = regionName self.tableClassOverride = tableClassOverride @@ -6042,6 +6130,7 @@ extension DynamoDB { private enum CodingKeys: String, CodingKey { case globalSecondaryIndexes = "GlobalSecondaryIndexes" case kmsMasterKeyId = "KMSMasterKeyId" + case onDemandThroughputOverride = "OnDemandThroughputOverride" case provisionedThroughputOverride = "ProvisionedThroughputOverride" case regionName = "RegionName" case tableClassOverride = "TableClassOverride" @@ -6057,6 +6146,8 @@ extension DynamoDB { public let deletionProtectionEnabled: Bool? /// An array of one or more global secondary indexes for the table. For each index in the array, you can request one action: Create - add a new global secondary index to the table. Update - modify the provisioned throughput settings of an existing global secondary index. Delete - remove a global secondary index from the table. You can create or delete only one global secondary index per UpdateTable operation. For more information, see Managing Global Secondary Indexes in the Amazon DynamoDB Developer Guide. public let globalSecondaryIndexUpdates: [GlobalSecondaryIndexUpdate]? + /// Updates the maximum number of read and write units for the specified table in on-demand capacity mode. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both. + public let onDemandThroughput: OnDemandThroughput? /// The new provisioned throughput settings for the specified table or index. public let provisionedThroughput: ProvisionedThroughput? /// A list of replica update actions (create, delete, or update) for the table. This property only applies to Version 2019.11.21 (Current) of global tables. @@ -6070,11 +6161,12 @@ extension DynamoDB { /// The name of the table to be updated. You can also provide the Amazon Resource Name (ARN) of the table in this parameter. public let tableName: String - public init(attributeDefinitions: [AttributeDefinition]? = nil, billingMode: BillingMode? = nil, deletionProtectionEnabled: Bool? = nil, globalSecondaryIndexUpdates: [GlobalSecondaryIndexUpdate]? = nil, provisionedThroughput: ProvisionedThroughput? = nil, replicaUpdates: [ReplicationGroupUpdate]? = nil, sseSpecification: SSESpecification? = nil, streamSpecification: StreamSpecification? = nil, tableClass: TableClass? = nil, tableName: String) { + public init(attributeDefinitions: [AttributeDefinition]? = nil, billingMode: BillingMode? = nil, deletionProtectionEnabled: Bool? = nil, globalSecondaryIndexUpdates: [GlobalSecondaryIndexUpdate]? = nil, onDemandThroughput: OnDemandThroughput? = nil, provisionedThroughput: ProvisionedThroughput? = nil, replicaUpdates: [ReplicationGroupUpdate]? = nil, sseSpecification: SSESpecification? = nil, streamSpecification: StreamSpecification? = nil, tableClass: TableClass? = nil, tableName: String) { self.attributeDefinitions = attributeDefinitions self.billingMode = billingMode self.deletionProtectionEnabled = deletionProtectionEnabled self.globalSecondaryIndexUpdates = globalSecondaryIndexUpdates + self.onDemandThroughput = onDemandThroughput self.provisionedThroughput = provisionedThroughput self.replicaUpdates = replicaUpdates self.sseSpecification = sseSpecification @@ -6104,6 +6196,7 @@ extension DynamoDB { case billingMode = "BillingMode" case deletionProtectionEnabled = "DeletionProtectionEnabled" case globalSecondaryIndexUpdates = "GlobalSecondaryIndexUpdates" + case onDemandThroughput = "OnDemandThroughput" case provisionedThroughput = "ProvisionedThroughput" case replicaUpdates = "ReplicaUpdates" case sseSpecification = "SSESpecification" diff --git a/Sources/Soto/Services/EC2/EC2_api.swift b/Sources/Soto/Services/EC2/EC2_api.swift index 0bcfbcee9c..59b461d01c 100644 --- a/Sources/Soto/Services/EC2/EC2_api.swift +++ b/Sources/Soto/Services/EC2/EC2_api.swift @@ -764,7 +764,7 @@ public struct EC2: AWSService { ) } - /// Cancels the specified Spot Fleet requests. After you cancel a Spot Fleet request, the Spot Fleet launches no new instances. You must also specify whether a canceled Spot Fleet request should terminate its instances. If you choose to 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 instances. You must also specify whether a canceled Spot Fleet request should terminate its instances. If you choose to 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. Restrictions You can delete up to 100 fleets in a single request. If you exceed the specified number, no fleets are deleted. @Sendable public func cancelSpotFleetRequests(_ input: CancelSpotFleetRequestsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CancelSpotFleetRequestsResponse { return try await self.client.execute( @@ -994,7 +994,7 @@ public struct EC2: AWSService { /// Creates a custom set of DHCP options. After you create a DHCP option set, you associate /// it with a VPC. After you associate a DHCP option set with a VPC, all existing and newly - /// launched instances in the VPC use this set of DHCP options. The following are the individual DHCP options you can specify. For more information, see DHCP options sets in the Amazon VPC User Guide. domain-name - If you're using AmazonProvidedDNS in us-east-1, specify ec2.internal. If you're using AmazonProvidedDNS in any other Region, specify region.compute.internal. Otherwise, specify a custom domain name. This value is used to complete unqualified DNS hostnames. 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 option set is associated with a VPC that has instances running operating systems that treat the value as a single domain, specify only one domain name. domain-name-servers - The IP addresses of up to four DNS servers, or AmazonProvidedDNS. To specify multiple domain name servers in a single parameter, separate the IP addresses using commas. To have your instances receive custom DNS hostnames as specified in domain-name, you must specify a custom DNS server. ntp-servers - The IP addresses of up to eight Network Time Protocol (NTP) servers (four IPv4 addresses and four IPv6 addresses). 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 supported. For more information about NetBIOS node types, see RFC 2132. ipv6-preferred-lease-time - A value (in seconds, minutes, hours, or years) for how frequently a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. Acceptable values are between 140 and 2147483647 seconds (approximately 68 years). If no value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 instances, you can increase the lease time and avoid frequent lease renewal requests. Lease renewal typically occurs when half of the lease time has elapsed. + /// launched instances in the VPC use this set of DHCP options. The following are the individual DHCP options you can specify. For more information, see DHCP options sets in the Amazon VPC User Guide. domain-name - If you're using AmazonProvidedDNS in us-east-1, specify ec2.internal. If you're using AmazonProvidedDNS in any other Region, specify region.compute.internal. Otherwise, specify a custom domain name. This value is used to complete unqualified DNS hostnames. 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 option set is associated with a VPC that has instances running operating systems that treat the value as a single domain, specify only one domain name. domain-name-servers - The IP addresses of up to four DNS servers, or AmazonProvidedDNS. To specify multiple domain name servers in a single parameter, separate the IP addresses using commas. To have your instances receive custom DNS hostnames as specified in domain-name, you must specify a custom DNS server. ntp-servers - The IP addresses of up to eight Network Time Protocol (NTP) servers (four IPv4 addresses and four IPv6 addresses). 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 supported. For more information about NetBIOS node types, see RFC 2132. ipv6-address-preferred-lease-time - A value (in seconds, minutes, hours, or years) for how frequently a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. Acceptable values are between 140 and 2147483647 seconds (approximately 68 years). If no value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 instances, you can increase the lease time and avoid frequent lease renewal requests. Lease renewal typically occurs when half of the lease time has elapsed. @Sendable public func createDhcpOptions(_ input: CreateDhcpOptionsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateDhcpOptionsResult { return try await self.client.execute( @@ -1193,7 +1193,7 @@ public struct EC2: AWSService { ) } - /// 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. For more information, see Launch an instance from a launch template in the Amazon Elastic Compute Cloud User Guide. If you want to clone an existing launch template as the basis for creating a new launch template, you can use the Amazon EC2 console. The API, SDKs, and CLI do not support cloning a template. For more information, see Create a launch template from an existing launch template in the Amazon Elastic Compute Cloud User Guide. + /// 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. For more information, see Launch an instance from a launch template in the Amazon Elastic Compute Cloud User Guide. To clone an existing launch template as the basis for a new launch template, use the Amazon EC2 console. The API, SDKs, and CLI do not support cloning a template. For more information, see Create a launch template from an existing launch template in the Amazon Elastic Compute Cloud User Guide. @Sendable public func createLaunchTemplate(_ input: CreateLaunchTemplateRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateLaunchTemplateResult { return try await self.client.execute( @@ -1206,7 +1206,7 @@ public struct EC2: AWSService { ) } - /// Creates a new version of 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. Launch templates are immutable; after you create a launch template, you can't modify it. Instead, you can create a new version of the launch template that includes any changes you require. For more information, see Modify a launch template (manage launch template versions) in the Amazon Elastic Compute Cloud User Guide. + /// Creates a new version of a launch template. You must specify an existing launch template, either by name or ID. You can determine whether the new version inherits parameters from a source version, and add or overwrite parameters as needed. Launch template versions are numbered in the order in which they are created. You can't specify, change, or replace the numbering of launch template versions. Launch templates are immutable; after you create a launch template, you can't modify it. Instead, you can create a new version of the launch template that includes the changes that you require. For more information, see Modify a launch template (manage launch template versions) in the Amazon Elastic Compute Cloud User Guide. @Sendable public func createLaunchTemplateVersion(_ input: CreateLaunchTemplateVersionRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateLaunchTemplateVersionResult { return try await self.client.execute( @@ -2066,7 +2066,7 @@ public struct EC2: AWSService { ) } - /// Deletes the specified EC2 Fleets. After you delete an EC2 Fleet, it launches no new instances. You must also specify whether a deleted EC2 Fleet should terminate its instances. If you choose to terminate the instances, the EC2 Fleet enters the deleted_terminating state. Otherwise, the EC2 Fleet enters the deleted_running state, and the instances continue to run until they are interrupted or you terminate them manually. For instant fleets, EC2 Fleet must terminate the instances when the fleet is deleted. A deleted instant fleet with running instances is not supported. Restrictions You can delete up to 25 instant fleets in a single request. If you exceed this number, no instant fleets are deleted and an error is returned. There is no restriction on the number of fleets of type maintain or request that can be deleted in a single request. Up to 1000 instances can be terminated in a single request to delete instant fleets. For more information, see Delete an EC2 Fleet in the Amazon EC2 User Guide. + /// Deletes the specified EC2 Fleets. After you delete an EC2 Fleet, it launches no new instances. You must also specify whether a deleted EC2 Fleet should terminate its instances. If you choose to terminate the instances, the EC2 Fleet enters the deleted_terminating state. Otherwise, the EC2 Fleet enters the deleted_running state, and the instances continue to run until they are interrupted or you terminate them manually. For instant fleets, EC2 Fleet must terminate the instances when the fleet is deleted. Up to 1000 instances can be terminated in a single request to delete instant fleets. A deleted instant fleet with running instances is not supported. Restrictions You can delete up to 25 fleets of type instant in a single request. You can delete up to 100 fleets of type maintain or request in a single request. You can delete up to 125 fleets in a single request, provided you do not exceed the quota for each fleet type, as specified above. If you exceed the specified number of fleets to delete, no fleets are deleted. For more information, see Delete an EC2 Fleet in the Amazon EC2 User Guide. @Sendable public func deleteFleets(_ input: DeleteFleetsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteFleetsResult { return try await self.client.execute( @@ -2722,7 +2722,7 @@ public struct EC2: AWSService { ) } - /// Deletes the specified transit gateway route table. You must disassociate the route table from any transit gateway route tables before you can delete it. + /// Deletes the specified transit gateway route table. If there are any route tables associated with the transit gateway route table, you must first run DisassociateRouteTable before you can delete the transit gateway route table. This removes any route tables associated with the transit gateway route table. @Sendable public func deleteTransitGatewayRouteTable(_ input: DeleteTransitGatewayRouteTableRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteTransitGatewayRouteTableResult { return try await self.client.execute( @@ -3591,7 +3591,7 @@ public struct EC2: AWSService { ) } - /// Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of the images available to you. The images available to you include public images, private images that you own, and private images owned by other Amazon Web Services accounts for which you have explicit launch permissions. Recently deregistered images appear in the returned results for a short interval and then return empty results. After all instances that reference a deregistered AMI are terminated, specifying the ID of the image will eventually return an error indicating that the AMI ID cannot be found. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. + /// Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of the images available to you. The images available to you include public images, private images that you own, and private images owned by other Amazon Web Services accounts for which you have explicit launch permissions. Recently deregistered images appear in the returned results for a short interval and then return empty results. After all instances that reference a deregistered AMI are terminated, specifying the ID of the image will eventually return an error indicating that the AMI ID cannot be found. We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. @Sendable public func describeImages(_ input: DescribeImagesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeImagesResult { return try await self.client.execute( @@ -3721,7 +3721,7 @@ public struct EC2: AWSService { ) } - /// Returns a list of all instance types offered. The results can be filtered by location (Region or Availability Zone). If no location is specified, the instance types offered in the current Region are returned. + /// Lists the instance types that are offered for the specified location. If no location is specified, the default is to list the instance types that are offered in the current Region. @Sendable public func describeInstanceTypeOfferings(_ input: DescribeInstanceTypeOfferingsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeInstanceTypeOfferingsResult { return try await self.client.execute( @@ -3734,7 +3734,7 @@ public struct EC2: AWSService { ) } - /// Describes the details of the instance types that are offered in a location. The results can be filtered by the attributes of the instance types. + /// Describes the specified instance types. By default, all instance types for the current Region are described. Alternatively, you can filter the results. @Sendable public func describeInstanceTypes(_ input: DescribeInstanceTypesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeInstanceTypesResult { return try await self.client.execute( @@ -3747,7 +3747,7 @@ public struct EC2: AWSService { ) } - /// Describes the specified instances or all instances. If you specify instance IDs, the output includes information for only the specified instances. If you specify filters, the output includes information for only those instances that meet the filter criteria. If you do not specify instance IDs or filters, the output includes information for all instances, which can affect performance. We recommend that you use pagination to ensure that the operation returns quickly and successfully. 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 output. 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. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. + /// Describes the specified instances or all instances. If you specify instance IDs, the output includes information for only the specified instances. If you specify filters, the output includes information for only those instances that meet the filter criteria. If you do not specify instance IDs or filters, the output includes information for all instances, which can affect performance. We recommend that you use pagination to ensure that the operation returns quickly and successfully. 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 output. 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. We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. @Sendable public func describeInstances(_ input: DescribeInstancesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeInstancesResult { return try await self.client.execute( @@ -4139,7 +4139,7 @@ public struct EC2: AWSService { ) } - /// Describes one or more of your network interfaces. If you have a large number of network interfaces, the operation fails unless you use pagination or one of the following filters: group-id, mac-address, private-dns-name, private-ip-address, private-dns-name, subnet-id, or vpc-id. + /// Describes one or more of your network interfaces. If you have a large number of network interfaces, the operation fails unless you use pagination or one of the following filters: group-id, mac-address, private-dns-name, private-ip-address, private-dns-name, subnet-id, or vpc-id. We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts. @Sendable public func describeNetworkInterfaces(_ input: DescribeNetworkInterfacesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeNetworkInterfacesResult { return try await self.client.execute( @@ -4389,7 +4389,7 @@ public struct EC2: AWSService { ) } - /// Describes the specified EBS snapshots available to you or all of the EBS snapshots available to you. The snapshots available to you include public snapshots, private snapshots that you own, and private snapshots owned by other Amazon Web Services accounts for which you have explicit create volume permissions. The create volume permissions fall into the following categories: public: The owner of the snapshot granted create volume permissions for the snapshot to the all group. All Amazon Web Services accounts have create volume permissions for these snapshots. explicit: The owner of the snapshot granted create volume permissions to a specific Amazon Web Services account. implicit: An Amazon Web Services account has implicit create volume permissions for all snapshots it owns. The list of snapshots returned can be filtered by specifying snapshot IDs, snapshot owners, or Amazon Web Services 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 Amazon Web Services 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 Amazon Web Services 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, we recommend that you paginate the output to make the list more manageable. For more information, see Pagination. To get the state of fast snapshot restores for a snapshot, use DescribeFastSnapshotRestores. For more information about EBS snapshots, see Amazon EBS snapshots in the Amazon EBS User Guide. + /// Describes the specified EBS snapshots available to you or all of the EBS snapshots available to you. The snapshots available to you include public snapshots, private snapshots that you own, and private snapshots owned by other Amazon Web Services accounts for which you have explicit create volume permissions. The create volume permissions fall into the following categories: public: The owner of the snapshot granted create volume permissions for the snapshot to the all group. All Amazon Web Services accounts have create volume permissions for these snapshots. explicit: The owner of the snapshot granted create volume permissions to a specific Amazon Web Services account. implicit: An Amazon Web Services account has implicit create volume permissions for all snapshots it owns. The list of snapshots returned can be filtered by specifying snapshot IDs, snapshot owners, or Amazon Web Services 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 Amazon Web Services 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 Amazon Web Services 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, we recommend that you paginate the output to make the list more manageable. For more information, see Pagination. To get the state of fast snapshot restores for a snapshot, use DescribeFastSnapshotRestores. For more information about EBS snapshots, see Amazon EBS snapshots in the Amazon EBS User Guide. We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts. @Sendable public func describeSnapshots(_ input: DescribeSnapshotsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeSnapshotsResult { return try await self.client.execute( @@ -4520,7 +4520,7 @@ public struct EC2: AWSService { ) } - /// Describes the specified tags for your EC2 resources. For more information about tags, see Tag your Amazon EC2 resources in the Amazon Elastic Compute Cloud User Guide. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. + /// Describes the specified tags for your EC2 resources. For more information about tags, see Tag your Amazon EC2 resources in the Amazon Elastic Compute Cloud User Guide. We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. @Sendable public func describeTags(_ input: DescribeTagsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeTagsResult { return try await self.client.execute( @@ -4806,7 +4806,7 @@ public struct EC2: AWSService { ) } - /// Describes the specified EBS volumes or all of your EBS volumes. If you are describing a long list of volumes, we recommend that you paginate the output to make the list more manageable. For more information, see Pagination. For more information about EBS volumes, see Amazon EBS volumes in the Amazon EBS User Guide. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. + /// Describes the specified EBS volumes or all of your EBS volumes. If you are describing a long list of volumes, we recommend that you paginate the output to make the list more manageable. For more information, see Pagination. For more information about EBS volumes, see Amazon EBS volumes in the Amazon EBS User Guide. We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. @Sendable public func describeVolumes(_ input: DescribeVolumesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeVolumesResult { return try await self.client.execute( @@ -5189,6 +5189,19 @@ public struct EC2: AWSService { ) } + /// Disables deregistration protection for an AMI. When deregistration protection is disabled, the AMI can be deregistered. If you chose to include a 24-hour cooldown period when you enabled deregistration protection for the AMI, then, when you disable deregistration protection, you won’t immediately be able to deregister the AMI. For more information, see Protect an AMI from deregistration in the Amazon EC2 User Guide. + @Sendable + public func disableImageDeregistrationProtection(_ input: DisableImageDeregistrationProtectionRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DisableImageDeregistrationProtectionResult { + return try await self.client.execute( + operation: "DisableImageDeregistrationProtection", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Disable the IPAM account. For more information, see Enable integration with Organizations in the Amazon VPC IPAM User Guide. @Sendable public func disableIpamOrganizationAdminAccount(_ input: DisableIpamOrganizationAdminAccountRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DisableIpamOrganizationAdminAccountResult { @@ -5598,6 +5611,19 @@ public struct EC2: AWSService { ) } + /// Enables deregistration protection for an AMI. When deregistration protection is enabled, the AMI can't be deregistered. To allow the AMI to be deregistered, you must first disable deregistration protection using DisableImageDeregistrationProtection. For more information, see Protect an AMI from deregistration in the Amazon EC2 User Guide. + @Sendable + public func enableImageDeregistrationProtection(_ input: EnableImageDeregistrationProtectionRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> EnableImageDeregistrationProtectionResult { + return try await self.client.execute( + operation: "EnableImageDeregistrationProtection", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Enable an Organizations member account as the IPAM admin account. You cannot select the Organizations management account as the IPAM admin account. For more information, see Enable integration with Organizations in the Amazon VPC IPAM User Guide. @Sendable public func enableIpamOrganizationAdminAccount(_ input: EnableIpamOrganizationAdminAccountRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> EnableIpamOrganizationAdminAccountResult { @@ -5863,7 +5889,7 @@ public struct EC2: AWSService { ) } - /// Retrieve a JPG-format screenshot of a running instance to help with troubleshooting. The returned content is Base64-encoded. + /// Retrieve a JPG-format screenshot of a running instance to help with troubleshooting. The returned content is Base64-encoded. For more information, see Instance console output in the Amazon EC2 User Guide. @Sendable public func getConsoleScreenshot(_ input: GetConsoleScreenshotRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetConsoleScreenshotResult { return try await self.client.execute( @@ -5980,6 +6006,19 @@ public struct EC2: AWSService { ) } + /// Gets the public endorsement key associated with the Nitro Trusted Platform Module (NitroTPM) for the specified instance. + @Sendable + public func getInstanceTpmEkPub(_ input: GetInstanceTpmEkPubRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetInstanceTpmEkPubResult { + return try await self.client.execute( + operation: "GetInstanceTpmEkPub", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Returns a list of instance types with the specified instance attributes. You can use the response to preview the instance types without launching instances. Note that the response does not consider capacity. When you specify multiple parameters, you get instance types that satisfy all of the specified parameters. If you specify multiple values for a parameter, you get instance types that satisfy any of the specified values. For more information, see Preview instance types with specified attributes, Attribute-based instance type selection for EC2 Fleet, Attribute-based instance type selection for Spot Fleet, and Spot placement score in the Amazon EC2 User Guide, and Creating an Auto Scaling group using attribute-based instance type selection in the Amazon EC2 Auto Scaling User Guide. @Sendable public func getInstanceTypesFromInstanceRequirements(_ input: GetInstanceTypesFromInstanceRequirementsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetInstanceTypesFromInstanceRequirementsResult { @@ -6786,7 +6825,7 @@ public struct EC2: AWSService { ) } - /// Modifies the default instance metadata service (IMDS) settings at the account level in the specified Amazon Web Services
 Region. To remove a parameter's account-level default setting, specify no-preference. At instance launch, the value will come from the AMI, or from the launch parameter if specified. For more information, see Order of precedence for instance metadata options in the Amazon EC2 User Guide. + /// Modifies the default instance metadata service (IMDS) settings at the account level in the specified Amazon Web Services
 Region. To remove a parameter's account-level default setting, specify no-preference. If an account-level setting is cleared with no-preference, then the instance launch considers the other instance metadata settings. For more information, see Order of precedence for instance metadata options in the Amazon EC2 User Guide. @Sendable public func modifyInstanceMetadataDefaults(_ input: ModifyInstanceMetadataDefaultsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ModifyInstanceMetadataDefaultsResult { return try await self.client.execute( @@ -8851,7 +8890,7 @@ extension EC2 { ) } - /// Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of the images available to you. The images available to you include public images, private images that you own, and private images owned by other Amazon Web Services accounts for which you have explicit launch permissions. Recently deregistered images appear in the returned results for a short interval and then return empty results. After all instances that reference a deregistered AMI are terminated, specifying the ID of the image will eventually return an error indicating that the AMI ID cannot be found. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. + /// Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of the images available to you. The images available to you include public images, private images that you own, and private images owned by other Amazon Web Services accounts for which you have explicit launch permissions. Recently deregistered images appear in the returned results for a short interval and then return empty results. After all instances that reference a deregistered AMI are terminated, specifying the ID of the image will eventually return an error indicating that the AMI ID cannot be found. We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -9003,7 +9042,7 @@ extension EC2 { ) } - /// Returns a list of all instance types offered. The results can be filtered by location (Region or Availability Zone). If no location is specified, the instance types offered in the current Region are returned. + /// Lists the instance types that are offered for the specified location. If no location is specified, the default is to list the instance types that are offered in the current Region. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -9022,7 +9061,7 @@ extension EC2 { ) } - /// Describes the details of the instance types that are offered in a location. The results can be filtered by the attributes of the instance types. + /// Describes the specified instance types. By default, all instance types for the current Region are described. Alternatively, you can filter the results. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -9041,7 +9080,7 @@ extension EC2 { ) } - /// Describes the specified instances or all instances. If you specify instance IDs, the output includes information for only the specified instances. If you specify filters, the output includes information for only those instances that meet the filter criteria. If you do not specify instance IDs or filters, the output includes information for all instances, which can affect performance. We recommend that you use pagination to ensure that the operation returns quickly and successfully. 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 output. 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. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. + /// Describes the specified instances or all instances. If you specify instance IDs, the output includes information for only the specified instances. If you specify filters, the output includes information for only those instances that meet the filter criteria. If you do not specify instance IDs or filters, the output includes information for all instances, which can affect performance. We recommend that you use pagination to ensure that the operation returns quickly and successfully. 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 output. 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. We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -9536,7 +9575,7 @@ extension EC2 { ) } - /// Describes one or more of your network interfaces. If you have a large number of network interfaces, the operation fails unless you use pagination or one of the following filters: group-id, mac-address, private-dns-name, private-ip-address, private-dns-name, subnet-id, or vpc-id. + /// Describes one or more of your network interfaces. If you have a large number of network interfaces, the operation fails unless you use pagination or one of the following filters: group-id, mac-address, private-dns-name, private-ip-address, private-dns-name, subnet-id, or vpc-id. We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -9785,7 +9824,7 @@ extension EC2 { ) } - /// Describes the specified EBS snapshots available to you or all of the EBS snapshots available to you. The snapshots available to you include public snapshots, private snapshots that you own, and private snapshots owned by other Amazon Web Services accounts for which you have explicit create volume permissions. The create volume permissions fall into the following categories: public: The owner of the snapshot granted create volume permissions for the snapshot to the all group. All Amazon Web Services accounts have create volume permissions for these snapshots. explicit: The owner of the snapshot granted create volume permissions to a specific Amazon Web Services account. implicit: An Amazon Web Services account has implicit create volume permissions for all snapshots it owns. The list of snapshots returned can be filtered by specifying snapshot IDs, snapshot owners, or Amazon Web Services 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 Amazon Web Services 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 Amazon Web Services 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, we recommend that you paginate the output to make the list more manageable. For more information, see Pagination. To get the state of fast snapshot restores for a snapshot, use DescribeFastSnapshotRestores. For more information about EBS snapshots, see Amazon EBS snapshots in the Amazon EBS User Guide. + /// Describes the specified EBS snapshots available to you or all of the EBS snapshots available to you. The snapshots available to you include public snapshots, private snapshots that you own, and private snapshots owned by other Amazon Web Services accounts for which you have explicit create volume permissions. The create volume permissions fall into the following categories: public: The owner of the snapshot granted create volume permissions for the snapshot to the all group. All Amazon Web Services accounts have create volume permissions for these snapshots. explicit: The owner of the snapshot granted create volume permissions to a specific Amazon Web Services account. implicit: An Amazon Web Services account has implicit create volume permissions for all snapshots it owns. The list of snapshots returned can be filtered by specifying snapshot IDs, snapshot owners, or Amazon Web Services 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 Amazon Web Services 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 Amazon Web Services 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, we recommend that you paginate the output to make the list more manageable. For more information, see Pagination. To get the state of fast snapshot restores for a snapshot, use DescribeFastSnapshotRestores. For more information about EBS snapshots, see Amazon EBS snapshots in the Amazon EBS User Guide. We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -9919,7 +9958,7 @@ extension EC2 { ) } - /// Describes the specified tags for your EC2 resources. For more information about tags, see Tag your Amazon EC2 resources in the Amazon Elastic Compute Cloud User Guide. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. + /// Describes the specified tags for your EC2 resources. For more information about tags, see Tag your Amazon EC2 resources in the Amazon Elastic Compute Cloud User Guide. We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -10318,7 +10357,7 @@ extension EC2 { ) } - /// Describes the specified EBS volumes or all of your EBS volumes. If you are describing a long list of volumes, we recommend that you paginate the output to make the list more manageable. For more information, see Pagination. For more information about EBS volumes, see Amazon EBS volumes in the Amazon EBS User Guide. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. + /// Describes the specified EBS volumes or all of your EBS volumes. If you are describing a long list of volumes, we recommend that you paginate the output to make the list more manageable. For more information, see Pagination. For more information about EBS volumes, see Amazon EBS volumes in the Amazon EBS User Guide. We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts. The order of the elements in the response, including those within nested structures, might vary. Applications should not assume the elements appear in a particular order. /// Return PaginatorSequence for operation. /// /// - Parameters: diff --git a/Sources/Soto/Services/EC2/EC2_shapes.swift b/Sources/Soto/Services/EC2/EC2_shapes.swift index dcafd88ebd..5e27b9ec1a 100644 --- a/Sources/Soto/Services/EC2/EC2_shapes.swift +++ b/Sources/Soto/Services/EC2/EC2_shapes.swift @@ -648,6 +648,18 @@ extension EC2 { public var description: String { return self.rawValue } } + public enum EkPubKeyFormat: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case der = "der" + case tpmt = "tpmt" + public var description: String { return self.rawValue } + } + + public enum EkPubKeyType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case eccSecP384 = "ecc-sec-p384" + case rsa2048 = "rsa-2048" + public var description: String { return self.rawValue } + } + public enum ElasticGpuState: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case attached = "ATTACHED" public var description: String { return self.rawValue } @@ -905,6 +917,7 @@ extension EC2 { public enum ImageAttributeName: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case blockDeviceMapping = "blockDeviceMapping" case bootMode = "bootMode" + case deregistrationProtection = "deregistrationProtection" case description = "description" case imdsSupport = "imdsSupport" case kernel = "kernel" @@ -2327,6 +2340,7 @@ extension EC2 { } public enum NetworkInterfaceAttribute: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case associatePublicIpAddress = "associatePublicIpAddress" case attachment = "attachment" case description = "description" case groupSet = "groupSet" @@ -5006,7 +5020,7 @@ extension EC2 { /// The name of the Amazon S3 bucket to which the certificate was uploaded. public let certificateS3BucketName: String? /// The Amazon S3 object key where the certificate, certificate chain, and encrypted private key bundle are stored. The - /// object key is formatted as follows: role_arn/certificate_arn. + /// object key is formatted as follows: role_arn/certificate_arn. public let certificateS3ObjectKey: String? /// The ID of the KMS key used to encrypt the private key of the certificate. public let encryptionKmsKeyId: String? @@ -5536,11 +5550,11 @@ extension EC2 { public let associatedRoleArn: String? /// The name of the Amazon S3 bucket in which the Amazon S3 object is stored. public let certificateS3BucketName: String? - /// The key of the Amazon S3 object ey where the certificate, certificate chain, and encrypted private key bundle - /// is stored. The object key is formated as follows: role_arn/certificate_arn. + /// The key of the Amazon S3 object where the certificate, certificate chain, and encrypted private key bundle + /// are stored. The object key is formatted as follows: role_arn/certificate_arn. /// public let certificateS3ObjectKey: String? - /// The ID of the KMS customer master key (CMK) used to encrypt the private key. + /// The ID of the KMS key used to encrypt the private key. public let encryptionKmsKeyId: String? public init(associatedRoleArn: String? = nil, certificateS3BucketName: String? = nil, certificateS3ObjectKey: String? = nil, encryptionKmsKeyId: String? = nil) { @@ -6734,7 +6748,7 @@ extension EC2 { /// Checks whether you have the required permissions for the action, without 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 IDs of the Spot Fleet requests. + /// The IDs of the Spot Fleet requests. Constraint: You can specify up to 100 IDs in a single request. @OptionalCustomCoding> public var spotFleetRequestIds: [String]? /// Indicates whether to terminate the associated instances when the Spot Fleet request is canceled. The default is to terminate the instances. To let the instances continue to run after the Spot Fleet request is canceled, specify no-terminate-instances. @@ -10162,7 +10176,7 @@ extension EC2 { public let launchTemplateData: RequestLaunchTemplateData? /// A name for the launch template. public let launchTemplateName: String? - /// The tags to apply to the launch template on creation. To tag the launch template, the resource type must be launch-template. To specify the tags for the resources that are created when an instance is launched, you must use the TagSpecifications parameter in the launch template data structure. + /// The tags to apply to the launch template on creation. To tag the launch template, the resource type must be launch-template. To specify the tags for the resources that are created when an instance is launched, you must use the TagSpecifications parameter in the launch template data structure. @OptionalCustomCoding> public var tagSpecifications: [TagSpecification]? /// A description for the first version of the launch template. @@ -10219,13 +10233,13 @@ extension EC2 { public let dryRun: Bool? /// The information for the launch template. public let launchTemplateData: RequestLaunchTemplateData? - /// The ID of the launch template. You must specify either the LaunchTemplateId or the LaunchTemplateName, but not both. + /// The ID of the launch template. You must specify either the launch template ID or the launch template name, but not both. public let launchTemplateId: String? - /// The name of the launch template. You must specify the LaunchTemplateName or the LaunchTemplateId, but not both. + /// The name of the launch template. You must specify either the launch template ID or the launch template name, but not both. public let launchTemplateName: String? /// If true, and if a Systems Manager parameter is specified for ImageId, the AMI ID is displayed in the response for imageID. For more information, see Use a Systems Manager parameter instead of an AMI ID in the Amazon Elastic Compute Cloud User Guide. Default: false public let resolveAlias: Bool? - /// 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. Snapshots applied to the block device mapping are ignored when creating a new version unless they are explicitly included. + /// The version of the launch template on which to base the new version. Snapshots applied to the block device mapping are ignored when creating a new version unless they are explicitly included. If you specify this parameter, the new version inherits the launch parameters from the source version. If you specify additional launch parameters for the new version, they overwrite any corresponding launch parameters inherited from the source version. If you omit this parameter, the new version contains only the launch parameters that you specify for the new version. public let sourceVersion: String? /// A description for the version of the launch template. public let versionDescription: String? @@ -13853,7 +13867,7 @@ extension EC2 { public struct DeleteFleetsRequest: AWSEncodableShape { /// Checks whether you have the required permissions for the action, without 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 IDs of the EC2 Fleets. + /// The IDs of the EC2 Fleets. Constraints: In a single request, you can specify up to 25 instant fleet IDs and up to 100 maintain or request fleet IDs. @OptionalCustomCoding> public var fleetIds: [String]? /// Indicates whether to terminate the associated instances when the EC2 Fleet is deleted. The default is to terminate the instances. To let the instances continue to run after the EC2 Fleet is deleted, specify no-terminate-instances. Supported only for fleets of type maintain and request. For instant fleets, you cannot specify NoTerminateInstances. A deleted instant fleet with running instances is not supported. @@ -14210,9 +14224,9 @@ extension EC2 { public struct DeleteLaunchTemplateRequest: AWSEncodableShape { /// Checks whether you have the required permissions for the action, without 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 launch template. You must specify either the LaunchTemplateId or the LaunchTemplateName, but not both. + /// The ID of the launch template. You must specify either the launch template ID or the launch template name, but not both. public let launchTemplateId: String? - /// The name of the launch template. You must specify either the LaunchTemplateName or the LaunchTemplateId, but not both. + /// The name of the launch template. You must specify either the launch template ID or the launch template name, but not both. public let launchTemplateName: String? public init(dryRun: Bool? = nil, launchTemplateId: String? = nil, launchTemplateName: String? = nil) { @@ -14252,9 +14266,9 @@ extension EC2 { /// Checks whether you have the required permissions for the action, without 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 launch template. You must specify either the LaunchTemplateId or the LaunchTemplateName, but not both. + /// The ID of the launch template. You must specify either the launch template ID or the launch template name, but not both. public let launchTemplateId: String? - /// The name of the launch template. You must specify either the LaunchTemplateName or the LaunchTemplateId, but not both. + /// The name of the launch template. You must specify either the launch template ID or the launch template name, but not both. public let launchTemplateName: String? /// The version numbers of one or more launch template versions to delete. You can specify up to 200 launch template version numbers. @OptionalCustomCoding> @@ -19044,10 +19058,10 @@ extension EC2 { /// Checks whether you have the required permissions for the action, without 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. Filter names and values are case-sensitive. location - This depends on the location type. For example, if the location type is region (default), the location is the Region code (for example, us-east-2.) instance-type - The instance type. For example, c5.2xlarge. + /// One or more filters. Filter names and values are case-sensitive. instance-type - The instance type. For a list of possible values, see Instance. location - The location. For a list of possible identifiers, see Regions and Zones. @OptionalCustomCoding> public var filters: [Filter]? - /// The location type. + /// The location type. availability-zone - The Availability Zone. When you specify a location filter, it must be an Availability Zone for the current Region. availability-zone-id - The AZ ID. When you specify a location filter, it must be an AZ ID for the current Region. outpost - The Outpost ARN. When you specify a location filter, it must be an Outpost ARN for the current Region. region - The current Region. If you specify a location filter, it must match the current Region. public let locationType: LocationType? /// The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. /// For more information, see Pagination. @@ -19080,7 +19094,7 @@ extension EC2 { public struct DescribeInstanceTypeOfferingsResult: AWSDecodableShape { public struct _InstanceTypeOfferingsEncoding: ArrayCoderProperties { public static let member = "item" } - /// The instance types offered. + /// The instance types offered in the location. @OptionalCustomCoding> public var instanceTypeOfferings: [InstanceTypeOffering]? /// The token to include in another request to get the next page of items. This value is null when there are no more items to return. @@ -19105,7 +19119,7 @@ extension EC2 { /// One or more filters. Filter names and values are case-sensitive. auto-recovery-supported - Indicates whether Amazon CloudWatch action based recovery is supported (true | false). bare-metal - Indicates whether it is a bare metal instance type (true | false). burstable-performance-supported - Indicates whether the instance type is a burstable performance T instance type (true | false). current-generation - Indicates whether this instance type is the latest generation instance type of an instance family (true | false). ebs-info.ebs-optimized-info.baseline-bandwidth-in-mbps - The baseline bandwidth performance for an EBS-optimized instance type, in Mbps. ebs-info.ebs-optimized-info.baseline-iops - The baseline input/output storage operations per second for an EBS-optimized instance type. ebs-info.ebs-optimized-info.baseline-throughput-in-mbps - The baseline throughput performance for an EBS-optimized instance type, in MB/s. ebs-info.ebs-optimized-info.maximum-bandwidth-in-mbps - The maximum bandwidth performance for an EBS-optimized instance type, in Mbps. ebs-info.ebs-optimized-info.maximum-iops - The maximum input/output storage operations per second for an EBS-optimized instance type. ebs-info.ebs-optimized-info.maximum-throughput-in-mbps - The maximum throughput performance for an EBS-optimized instance type, in MB/s. ebs-info.ebs-optimized-support - Indicates whether the instance type is EBS-optimized (supported | unsupported | default). ebs-info.encryption-support - Indicates whether EBS encryption is supported (supported | unsupported). ebs-info.nvme-support - Indicates whether non-volatile memory express (NVMe) is supported for EBS volumes (required | supported | unsupported). free-tier-eligible - Indicates whether the instance type is eligible to use in the free tier (true | false). hibernation-supported - Indicates whether On-Demand hibernation is supported (true | false). hypervisor - The hypervisor (nitro | xen). instance-storage-info.disk.count - The number of local disks. instance-storage-info.disk.size-in-gb - The storage size of each instance storage disk, in GB. instance-storage-info.disk.type - The storage technology for the local instance storage disks (hdd | ssd). instance-storage-info.encryption-support - Indicates whether data is encrypted at rest (required | supported | unsupported). instance-storage-info.nvme-support - Indicates whether non-volatile memory express (NVMe) is supported for instance store (required | supported | unsupported). instance-storage-info.total-size-in-gb - The total amount of storage available from all local instance storage, in GB. instance-storage-supported - Indicates whether the instance type has local instance storage (true | false). instance-type - The instance type (for example c5.2xlarge or c5*). memory-info.size-in-mib - The memory size. network-info.efa-info.maximum-efa-interfaces - The maximum number of Elastic Fabric Adapters (EFAs) per instance. network-info.efa-supported - Indicates whether the instance type supports Elastic Fabric Adapter (EFA) (true | false). network-info.ena-support - Indicates whether Elastic Network Adapter (ENA) is supported or required (required | supported | unsupported). network-info.encryption-in-transit-supported - Indicates whether the instance type automatically encrypts in-transit traffic between instances (true | false). network-info.ipv4-addresses-per-interface - The maximum number of private IPv4 addresses per network interface. network-info.ipv6-addresses-per-interface - The maximum number of private IPv6 addresses per network interface. network-info.ipv6-supported - Indicates whether the instance type supports IPv6 (true | false). network-info.maximum-network-cards - The maximum number of network cards per instance. network-info.maximum-network-interfaces - The maximum number of network interfaces per instance. network-info.network-performance - The network performance (for example, "25 Gigabit"). nitro-enclaves-support - Indicates whether Nitro Enclaves is supported (supported | unsupported). nitro-tpm-support - Indicates whether NitroTPM is supported (supported | unsupported). nitro-tpm-info.supported-versions - The supported NitroTPM version (2.0). processor-info.supported-architecture - The CPU architecture (arm64 | i386 | x86_64). processor-info.sustained-clock-speed-in-ghz - The CPU clock speed, in GHz. processor-info.supported-features - The supported CPU features (amd-sev-snp). supported-boot-mode - The boot mode (legacy-bios | uefi). supported-root-device-type - The root device type (ebs | instance-store). supported-usage-class - The usage class (on-demand | spot). supported-virtualization-type - The virtualization type (hvm | paravirtual). vcpu-info.default-cores - The default number of cores for the instance type. vcpu-info.default-threads-per-core - The default number of threads per core for the instance type. vcpu-info.default-vcpus - The default number of vCPUs for the instance type. vcpu-info.valid-cores - The number of cores that can be configured for the instance type. vcpu-info.valid-threads-per-core - The number of threads per core that can be configured for the instance type. For example, "1" or "1,2". @OptionalCustomCoding> public var filters: [Filter]? - /// The instance types. For more information, see Instance types in the Amazon EC2 User Guide. + /// The instance types. @OptionalCustomCoding> public var instanceTypes: [InstanceType]? /// The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. @@ -19140,7 +19154,7 @@ extension EC2 { public struct DescribeInstanceTypesResult: AWSDecodableShape { public struct _InstanceTypesEncoding: ArrayCoderProperties { public static let member = "item" } - /// The instance type. For more information, see Instance types in the Amazon EC2 User Guide. + /// The instance type. @OptionalCustomCoding> public var instanceTypes: [InstanceTypeInfo]? /// The token to include in another request to get the next page of items. This value is null when there are no more items to return. @@ -19736,9 +19750,9 @@ extension EC2 { /// 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. http-endpoint - Indicates whether the HTTP metadata endpoint on your instances is enabled (enabled | disabled). http-protocol-ipv4 - Indicates whether the IPv4 endpoint for the instance metadata service is enabled (enabled | disabled). host-resource-group-arn - The ARN of the host resource group in which to launch the instances. http-tokens - The state of token usage for your instance metadata requests (optional | required). 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. license-configuration-arn - The ARN of the license configuration. network-card-index - The index of the network card. ram-disk-id - The RAM disk ID. @OptionalCustomCoding> public var filters: [Filter]? - /// The ID of the launch template. To describe one or more versions of a specified launch template, you must specify either the LaunchTemplateId or the LaunchTemplateName, but not both. To describe all the latest or default launch template versions in your account, you must omit this parameter. + /// The ID of the launch template. To describe one or more versions of a specified launch template, you must specify either the launch template ID or the launch template name, but not both. To describe all the latest or default launch template versions in your account, you must omit this parameter. public let launchTemplateId: String? - /// The name of the launch template. To describe one or more versions of a specified launch template, you must specify either the LaunchTemplateName or the LaunchTemplateId, but not both. To describe all the latest or default launch template versions in your account, you must omit this parameter. + /// The name of the launch template. To describe one or more versions of a specified launch template, you must specify either the launch template name or the launch template ID, but not both. To describe all the latest or default launch template versions in your account, you must omit this parameter. public let launchTemplateName: 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 1 and 200. public let maxResults: Int? @@ -20879,6 +20893,8 @@ extension EC2 { public struct DescribeNetworkInterfaceAttributeResult: AWSDecodableShape { public struct _GroupsEncoding: ArrayCoderProperties { public static let member = "item" } + /// Indicates whether to assign a public IPv4 address to a network interface. This option can be enabled for any network interface but will only apply to the primary network interface (eth0). + public let associatePublicIpAddress: Bool? /// The attachment (if any) of the network interface. public let attachment: NetworkInterfaceAttachment? /// The description of the network interface. @@ -20891,7 +20907,8 @@ extension EC2 { /// Indicates whether source/destination checking is enabled. public let sourceDestCheck: AttributeBooleanValue? - public init(attachment: NetworkInterfaceAttachment? = nil, description: AttributeValue? = nil, groups: [GroupIdentifier]? = nil, networkInterfaceId: String? = nil, sourceDestCheck: AttributeBooleanValue? = nil) { + public init(associatePublicIpAddress: Bool? = nil, attachment: NetworkInterfaceAttachment? = nil, description: AttributeValue? = nil, groups: [GroupIdentifier]? = nil, networkInterfaceId: String? = nil, sourceDestCheck: AttributeBooleanValue? = nil) { + self.associatePublicIpAddress = associatePublicIpAddress self.attachment = attachment self.description = description self.groups = groups @@ -20900,6 +20917,7 @@ extension EC2 { } private enum CodingKeys: String, CodingKey { + case associatePublicIpAddress = "associatePublicIpAddress" case attachment = "attachment" case description = "description" case groups = "groupSet" @@ -21036,7 +21054,7 @@ extension EC2 { public struct DescribeNetworkInterfacesResult: AWSDecodableShape { public struct _NetworkInterfacesEncoding: ArrayCoderProperties { public static let member = "item" } - /// Information about one or more network interfaces. + /// Information about the network interfaces. @OptionalCustomCoding> public var networkInterfaces: [NetworkInterface]? /// The token to include in another request to get the next page of items. @@ -22630,7 +22648,7 @@ extension EC2 { /// Checks whether you have the required permissions for the action, without 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 filters. key - The tag key. resource-id - The ID of the resource. resource-type - The resource type (customer-gateway | dedicated-host | dhcp-options | elastic-ip | fleet | fpga-image | host-reservation | image | instance | internet-gateway | key-pair | launch-template | natgateway | network-acl | network-interface | placement-group | reserved-instances | route-table | security-group | snapshot | spot-instances-request | subnet | volume | vpc | vpc-endpoint | vpc-endpoint-service | vpc-peering-connection | vpn-connection | vpn-gateway). tag: - The key/value combination of the tag. For example, specify "tag:Owner" for the filter name and "TeamA" for the filter value to find resources with the tag "Owner=TeamA". value - The tag value. + /// The filters. key - The tag key. resource-id - The ID of the resource. resource-type - The resource type. For a list of possible values, see TagSpecification. tag: - The key/value combination of the tag. For example, specify "tag:Owner" for the filter name and "TeamA" for the filter value to find resources with the tag "Owner=TeamA". value - The tag value. @OptionalCustomCoding> public var filters: [Filter]? /// The maximum number of items to return for this request. This value can be between 5 and 1000. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination. @@ -23395,7 +23413,7 @@ extension EC2 { /// Checks whether you have the required permissions for the action, without 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. The possible values are: options.propagation-default-route-table-id - The ID of the default propagation route table. options.amazon-side-asn - The private ASN for the Amazon side of a BGP session. options.association-default-route-table-id - The ID of the default association route table. options.auto-accept-shared-attachments - Indicates whether there is automatic acceptance of attachment requests (enable | disable). options.default-route-table-association - Indicates whether resource attachments are automatically associated with the default association route table (enable | disable). options.default-route-table-propagation - Indicates whether resource attachments automatically propagate routes to the default propagation route table (enable | disable). options.dns-support - Indicates whether DNS support is enabled (enable | disable). options.vpn-ecmp-support - Indicates whether Equal Cost Multipath Protocol support is enabled (enable | disable). owner-id - The ID of the Amazon Web Services account that owns the transit gateway. state - The state of the transit gateway (available | deleted | deleting | modifying | pending). transit-gateway-id - The ID of the transit gateway. + /// One or more filters. The possible values are: options.propagation-default-route-table-id - The ID of the default propagation route table. options.amazon-side-asn - The private ASN for the Amazon side of a BGP session. options.association-default-route-table-id - The ID of the default association route table. options.auto-accept-shared-attachments - Indicates whether there is automatic acceptance of attachment requests (enable | disable). options.default-route-table-association - Indicates whether resource attachments are automatically associated with the default association route table (enable | disable). options.default-route-table-propagation - Indicates whether resource attachments automatically propagate routes to the default propagation route table (enable | disable). options.dns-support - Indicates whether DNS support is enabled (enable | disable). options.vpn-ecmp-support - Indicates whether Equal Cost Multipath Protocol support is enabled (enable | disable). owner-id - The ID of the Amazon Web Services account that owns the transit gateway. state - The state of the transit gateway (available | deleted | deleting | modifying | pending). transit-gateway-id - The ID of the transit gateway. tag-key - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value. @OptionalCustomCoding> public var filters: [Filter]? /// The maximum number of results to return with a single call. @@ -25394,6 +25412,38 @@ extension EC2 { } } + public struct DisableImageDeregistrationProtectionRequest: AWSEncodableShape { + /// Checks whether you have the required permissions for the action, without 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 AMI. + public let imageId: String? + + public init(dryRun: Bool? = nil, imageId: String? = nil) { + self.dryRun = dryRun + self.imageId = imageId + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "DryRun" + case imageId = "ImageId" + } + } + + public struct DisableImageDeregistrationProtectionResult: AWSDecodableShape { + /// Returns true if the request succeeds; otherwise, it returns an error. + public let `return`: String? + + public init(return: String? = nil) { + self.`return` = `return` + } + + private enum CodingKeys: String, CodingKey { + case `return` = "return" + } + } + public struct DisableImageRequest: AWSEncodableShape { /// Checks whether you have the required permissions for the action, without actually making the request, /// and provides an error response. If you have the required permissions, the error response is @@ -27202,6 +27252,42 @@ extension EC2 { } } + public struct EnableImageDeregistrationProtectionRequest: AWSEncodableShape { + /// Checks whether you have the required permissions for the action, without 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 AMI. + public let imageId: String? + /// If true, enforces deregistration protection for 24 hours after deregistration protection is disabled. + public let withCooldown: Bool? + + public init(dryRun: Bool? = nil, imageId: String? = nil, withCooldown: Bool? = nil) { + self.dryRun = dryRun + self.imageId = imageId + self.withCooldown = withCooldown + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "DryRun" + case imageId = "ImageId" + case withCooldown = "WithCooldown" + } + } + + public struct EnableImageDeregistrationProtectionResult: AWSDecodableShape { + /// Returns true if the request succeeds; otherwise, it returns an error. + public let `return`: String? + + public init(return: String? = nil) { + self.`return` = `return` + } + + private enum CodingKeys: String, CodingKey { + case `return` = "return" + } + } + public struct EnableImageRequest: AWSEncodableShape { /// Checks whether you have the required permissions for the action, without actually making the request, /// and provides an error response. If you have the required permissions, the error response is @@ -29731,6 +29817,56 @@ extension EC2 { } } + public struct GetInstanceTpmEkPubRequest: AWSEncodableShape { + /// Specify this parameter to verify whether the request will succeed, without actually making the request. If the request will succeed, the response is DryRunOperation. Otherwise, the response is UnauthorizedOperation. + public let dryRun: Bool? + /// The ID of the instance for which to get the public endorsement key. + public let instanceId: String? + /// The required public endorsement key format. Specify der for a DER-encoded public key that is compatible with OpenSSL. Specify tpmt for a TPM 2.0 format that is compatible with tpm2-tools. The returned key is base64 encoded. + public let keyFormat: EkPubKeyFormat? + /// The required public endorsement key type. + public let keyType: EkPubKeyType? + + public init(dryRun: Bool? = nil, instanceId: String? = nil, keyFormat: EkPubKeyFormat? = nil, keyType: EkPubKeyType? = nil) { + self.dryRun = dryRun + self.instanceId = instanceId + self.keyFormat = keyFormat + self.keyType = keyType + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "DryRun" + case instanceId = "InstanceId" + case keyFormat = "KeyFormat" + case keyType = "KeyType" + } + } + + public struct GetInstanceTpmEkPubResult: AWSDecodableShape { + /// The ID of the instance. + public let instanceId: String? + /// The public endorsement key format. + public let keyFormat: EkPubKeyFormat? + /// The public endorsement key type. + public let keyType: EkPubKeyType? + /// The public endorsement key material. + public let keyValue: String? + + public init(instanceId: String? = nil, keyFormat: EkPubKeyFormat? = nil, keyType: EkPubKeyType? = nil, keyValue: String? = nil) { + self.instanceId = instanceId + self.keyFormat = keyFormat + self.keyType = keyType + self.keyValue = keyValue + } + + private enum CodingKeys: String, CodingKey { + case instanceId = "instanceId" + case keyFormat = "keyFormat" + case keyType = "keyType" + case keyValue = "keyValue" + } + } + public struct GetInstanceTypesFromInstanceRequirementsRequest: AWSEncodableShape { public struct _ArchitectureTypesEncoding: ArrayCoderProperties { public static let member = "item" } public struct _VirtualizationTypesEncoding: ArrayCoderProperties { public static let member = "item" } @@ -32016,6 +32152,8 @@ extension EC2 { public let creationDate: String? /// The date and time to deprecate the AMI, in UTC, in the following format: YYYY-MM-DDTHH:MM:SSZ. If you specified a value for seconds, Amazon EC2 rounds the seconds to the nearest minute. public let deprecationTime: String? + /// Indicates whether deregistration protection is enabled for the AMI. + public let deregistrationProtection: String? /// The description of the AMI that was provided during image creation. public let description: String? /// Specifies whether enhanced networking with ENA is enabled. @@ -32034,6 +32172,8 @@ extension EC2 { public let imdsSupport: ImdsSupportValues? /// The kernel associated with the image, if any. Only applicable for machine images. public let kernelId: String? + /// The date and time, in ISO 8601 date-time format, when the AMI was last used to launch an EC2 instance. When the AMI is used to launch an instance, there is a 24-hour delay before that usage is reported. lastLaunchedTime data is available starting April 2017. + public let lastLaunchedTime: String? /// The name of the AMI that was provided during image creation. public let name: String? /// The ID of the Amazon Web Services account that owns the image. @@ -32073,12 +32213,13 @@ extension EC2 { /// The type of virtualization of the AMI. public let virtualizationType: VirtualizationType? - public init(architecture: ArchitectureValues? = nil, blockDeviceMappings: [BlockDeviceMapping]? = nil, bootMode: BootModeValues? = nil, creationDate: String? = nil, deprecationTime: String? = nil, description: String? = nil, enaSupport: Bool? = nil, hypervisor: HypervisorType? = nil, imageId: String? = nil, imageLocation: String? = nil, imageOwnerAlias: String? = nil, imageType: ImageTypeValues? = nil, imdsSupport: ImdsSupportValues? = nil, kernelId: String? = nil, name: String? = nil, ownerId: String? = nil, platform: PlatformValues? = nil, platformDetails: String? = nil, productCodes: [ProductCode]? = nil, public: Bool? = nil, ramdiskId: String? = nil, rootDeviceName: String? = nil, rootDeviceType: DeviceType? = nil, sourceInstanceId: String? = nil, sriovNetSupport: String? = nil, state: ImageState? = nil, stateReason: StateReason? = nil, tags: [Tag]? = nil, tpmSupport: TpmSupportValues? = nil, usageOperation: String? = nil, virtualizationType: VirtualizationType? = nil) { + public init(architecture: ArchitectureValues? = nil, blockDeviceMappings: [BlockDeviceMapping]? = nil, bootMode: BootModeValues? = nil, creationDate: String? = nil, deprecationTime: String? = nil, deregistrationProtection: String? = nil, description: String? = nil, enaSupport: Bool? = nil, hypervisor: HypervisorType? = nil, imageId: String? = nil, imageLocation: String? = nil, imageOwnerAlias: String? = nil, imageType: ImageTypeValues? = nil, imdsSupport: ImdsSupportValues? = nil, kernelId: String? = nil, lastLaunchedTime: String? = nil, name: String? = nil, ownerId: String? = nil, platform: PlatformValues? = nil, platformDetails: String? = nil, productCodes: [ProductCode]? = nil, public: Bool? = nil, ramdiskId: String? = nil, rootDeviceName: String? = nil, rootDeviceType: DeviceType? = nil, sourceInstanceId: String? = nil, sriovNetSupport: String? = nil, state: ImageState? = nil, stateReason: StateReason? = nil, tags: [Tag]? = nil, tpmSupport: TpmSupportValues? = nil, usageOperation: String? = nil, virtualizationType: VirtualizationType? = nil) { self.architecture = architecture self.blockDeviceMappings = blockDeviceMappings self.bootMode = bootMode self.creationDate = creationDate self.deprecationTime = deprecationTime + self.deregistrationProtection = deregistrationProtection self.description = description self.enaSupport = enaSupport self.hypervisor = hypervisor @@ -32088,6 +32229,7 @@ extension EC2 { self.imageType = imageType self.imdsSupport = imdsSupport self.kernelId = kernelId + self.lastLaunchedTime = lastLaunchedTime self.name = name self.ownerId = ownerId self.platform = platform @@ -32113,6 +32255,7 @@ extension EC2 { case bootMode = "bootMode" case creationDate = "creationDate" case deprecationTime = "deprecationTime" + case deregistrationProtection = "deregistrationProtection" case description = "description" case enaSupport = "enaSupport" case hypervisor = "hypervisor" @@ -32122,6 +32265,7 @@ extension EC2 { case imageType = "imageType" case imdsSupport = "imdsSupport" case kernelId = "kernelId" + case lastLaunchedTime = "lastLaunchedTime" case name = "name" case ownerId = "imageOwnerId" case platform = "platform" @@ -32152,6 +32296,8 @@ extension EC2 { public var blockDeviceMappings: [BlockDeviceMapping]? /// The boot mode. public let bootMode: AttributeValue? + /// Indicates whether deregistration protection is enabled for the AMI. + public let deregistrationProtection: AttributeValue? /// A description for the AMI. public let description: AttributeValue? /// The ID of the AMI. @@ -32177,9 +32323,10 @@ extension EC2 { /// Base64 representation of the non-volatile UEFI variable store. To retrieve the UEFI data, use the GetInstanceUefiData command. You can inspect and modify the UEFI data by using the python-uefivars tool on GitHub. For more information, see UEFI Secure Boot in the Amazon EC2 User Guide. public let uefiData: AttributeValue? - public init(blockDeviceMappings: [BlockDeviceMapping]? = nil, bootMode: AttributeValue? = nil, description: AttributeValue? = nil, imageId: String? = nil, imdsSupport: AttributeValue? = nil, kernelId: AttributeValue? = nil, lastLaunchedTime: AttributeValue? = nil, launchPermissions: [LaunchPermission]? = nil, productCodes: [ProductCode]? = nil, ramdiskId: AttributeValue? = nil, sriovNetSupport: AttributeValue? = nil, tpmSupport: AttributeValue? = nil, uefiData: AttributeValue? = nil) { + public init(blockDeviceMappings: [BlockDeviceMapping]? = nil, bootMode: AttributeValue? = nil, deregistrationProtection: AttributeValue? = nil, description: AttributeValue? = nil, imageId: String? = nil, imdsSupport: AttributeValue? = nil, kernelId: AttributeValue? = nil, lastLaunchedTime: AttributeValue? = nil, launchPermissions: [LaunchPermission]? = nil, productCodes: [ProductCode]? = nil, ramdiskId: AttributeValue? = nil, sriovNetSupport: AttributeValue? = nil, tpmSupport: AttributeValue? = nil, uefiData: AttributeValue? = nil) { self.blockDeviceMappings = blockDeviceMappings self.bootMode = bootMode + self.deregistrationProtection = deregistrationProtection self.description = description self.imageId = imageId self.imdsSupport = imdsSupport @@ -32196,6 +32343,7 @@ extension EC2 { private enum CodingKeys: String, CodingKey { case blockDeviceMappings = "blockDeviceMapping" case bootMode = "bootMode" + case deregistrationProtection = "deregistrationProtection" case description = "description" case imageId = "imageId" case imdsSupport = "imdsSupport" @@ -37087,7 +37235,7 @@ extension EC2 { public let deleteOnTermination: Bool? /// A description for the network interface. public let description: String? - /// The device index for the network interface attachment. + /// The device index for the network interface attachment. Each network interface requires a device index. If you create a launch template that includes secondary network interfaces but not a primary network interface, then you must add a primary network interface as a launch parameter when you launch an instance from the template. public let deviceIndex: Int? /// Configure ENA Express settings for your launch template. public let enaSrdSpecification: EnaSrdSpecificationRequest? @@ -37378,11 +37526,11 @@ extension EC2 { } public struct LaunchTemplateSpecification: AWSEncodableShape { - /// The ID of the launch template. You must specify the LaunchTemplateId or the LaunchTemplateName, but not both. + /// The ID of the launch template. You must specify either the launch template ID or the launch template name, but not both. public let launchTemplateId: String? - /// The name of the launch template. You must specify the LaunchTemplateName or the LaunchTemplateId, but not both. + /// The name of the launch template. You must specify either the launch template ID or the launch template name, but not both. public let launchTemplateName: String? - /// The launch template version number, $Latest, or $Default. If the value is $Latest, Amazon EC2 uses the latest version of the launch template. If the value is $Default, Amazon EC2 uses the default version of the launch template. Default: The default version of the launch template. + /// The launch template version number, $Latest, or $Default. A value of $Latest uses the latest version of the launch template. A value of $Default uses the default version of the launch template. Default: The default version of the launch template. public let version: String? public init(launchTemplateId: String? = nil, launchTemplateName: String? = nil, version: String? = nil) { @@ -39383,7 +39531,7 @@ extension EC2 { public let dryRun: Bool? /// Enables or disables the IMDS endpoint on an instance. When disabled, the instance metadata can't be accessed. public let httpEndpoint: DefaultInstanceMetadataEndpointState? - /// The maximum number of hops that the metadata token can travel. Minimum: 1 Maximum: 64 + /// The maximum number of hops that the metadata token can travel. To indicate no preference, specify -1. Possible values: Integers from 1 to 64, and -1 to indicate no preference public let httpPutResponseHopLimit: Int? /// Indicates whether IMDSv2 is required. optional – IMDSv2 is optional, which means that you can use either IMDSv2 or IMDSv1. required – IMDSv2 is required, which means that IMDSv1 is disabled, and you must use IMDSv2. public let httpTokens: MetadataDefaultHttpTokensState? @@ -39797,9 +39945,9 @@ extension EC2 { 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 ID of the launch template. You must specify either the LaunchTemplateId or the LaunchTemplateName, but not both. + /// The ID of the launch template. You must specify either the launch template ID or the launch template name, but not both. public let launchTemplateId: String? - /// The name of the launch template. You must specify either the LaunchTemplateName or the LaunchTemplateId, but not both. + /// The name of the launch template. You must specify either the launch template ID or the launch template name, but not both. public let launchTemplateName: String? public init(clientToken: String? = nil, defaultVersion: String? = nil, dryRun: Bool? = nil, launchTemplateId: String? = nil, launchTemplateName: String? = nil) { @@ -39944,6 +40092,8 @@ extension EC2 { public struct ModifyNetworkInterfaceAttributeRequest: AWSEncodableShape { public struct _GroupsEncoding: ArrayCoderProperties { public static let member = "SecurityGroupId" } + /// Indicates whether to assign a public IPv4 address to a network interface. This option can be enabled for any network interface but will only apply to the primary network interface (eth0). + public let associatePublicIpAddress: Bool? /// Information about the interface attachment. If modifying the delete on /// termination attribute, you must specify the ID of the interface /// attachment. @@ -39967,7 +40117,8 @@ extension EC2 { /// Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives. If the value is true, source/destination checks are enabled; otherwise, they are disabled. The default value is true. You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls. public let sourceDestCheck: AttributeBooleanValue? - public init(attachment: NetworkInterfaceAttachmentChanges? = nil, connectionTrackingSpecification: ConnectionTrackingSpecificationRequest? = nil, description: AttributeValue? = nil, dryRun: Bool? = nil, enablePrimaryIpv6: Bool? = nil, enaSrdSpecification: EnaSrdSpecification? = nil, groups: [String]? = nil, networkInterfaceId: String? = nil, sourceDestCheck: AttributeBooleanValue? = nil) { + public init(associatePublicIpAddress: Bool? = nil, attachment: NetworkInterfaceAttachmentChanges? = nil, connectionTrackingSpecification: ConnectionTrackingSpecificationRequest? = nil, description: AttributeValue? = nil, dryRun: Bool? = nil, enablePrimaryIpv6: Bool? = nil, enaSrdSpecification: EnaSrdSpecification? = nil, groups: [String]? = nil, networkInterfaceId: String? = nil, sourceDestCheck: AttributeBooleanValue? = nil) { + self.associatePublicIpAddress = associatePublicIpAddress self.attachment = attachment self.connectionTrackingSpecification = connectionTrackingSpecification self.description = description @@ -39980,6 +40131,7 @@ extension EC2 { } private enum CodingKeys: String, CodingKey { + case associatePublicIpAddress = "AssociatePublicIpAddress" case attachment = "attachment" case connectionTrackingSpecification = "ConnectionTrackingSpecification" case description = "description" @@ -45907,7 +46059,7 @@ extension EC2 { public let metadataOptions: LaunchTemplateInstanceMetadataOptionsRequest? /// The monitoring for the instance. public let monitoring: LaunchTemplatesMonitoringRequest? - /// One or more network interfaces. If you specify a network interface, you must specify any security groups and subnets as part of the network interface. + /// The network interfaces for the instance. @OptionalCustomCoding> public var networkInterfaces: [LaunchTemplateInstanceNetworkInterfaceSpecificationRequest]? /// The placement for the instance. @@ -45916,10 +46068,10 @@ extension EC2 { public let privateDnsNameOptions: LaunchTemplatePrivateDnsNameOptionsRequest? /// 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 security group IDs. You can create a security group using CreateSecurityGroup. + /// The IDs of the security groups. If you specify a network interface, you must specify any security groups as part of the network interface instead of using this parameter. @OptionalCustomCoding> public var securityGroupIds: [String]? - /// One or more security group names. For a nondefault VPC, you must use security group IDs instead. + /// The names of the security groups. For a nondefault VPC, you must use security group IDs instead. If you specify a network interface, you must specify any security groups as part of the network interface instead of using this parameter. @OptionalCustomCoding> public var securityGroups: [String]? /// The tags to apply to the resources that are created during instance launch. These tags are not applied to the launch template. @@ -47760,10 +47912,10 @@ extension EC2 { public let dryRun: Bool? /// 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? - /// Deprecated. Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + /// An elastic GPU to associate with the instance. Amazon Elastic Graphics reached end of life on January 8, 2024. @OptionalCustomCoding> public var elasticGpuSpecification: [ElasticGpuSpecification]? - /// An elastic inference accelerator to associate with the instance. Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning (DL) inference workloads. You cannot specify accelerators from different generations in the same request. Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. + /// An elastic inference accelerator to associate with the instance. Amazon Elastic Inference (EI) is no longer available to new customers. For more information, see Amazon Elastic Inference FAQs. @OptionalCustomCoding> public var elasticInferenceAccelerators: [ElasticInferenceAccelerator]? /// If you’re launching an instance into a dual-stack or IPv6-only subnet, you can enable assigning a primary IPv6 address. A primary IPv6 address is an IPv6 GUA address associated with an ENI that you have enabled to use a primary IPv6 address. Use this option if an instance relies on its IPv6 address not changing. When you launch the instance, Amazon Web Services will automatically assign an IPv6 address associated with the ENI attached to your instance to be the primary IPv6 address. Once you enable an IPv6 GUA address to be a primary IPv6, you cannot disable it. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. If you have multiple IPv6 addresses associated with an ENI attached to your instance and you enable a primary IPv6 address, the first IPv6 GUA address associated with the ENI becomes the primary IPv6 address. @@ -47791,7 +47943,7 @@ extension EC2 { public let kernelId: String? /// 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 launch template to use to launch the instances. Any parameters that you specify in RunInstances override the same parameters in the launch template. You can specify either the name or ID of a launch template, but not both. + /// The launch template. Any additional parameters that you specify for the new instance overwrite the corresponding parameters included in the launch template. public let launchTemplate: LaunchTemplateSpecification? /// The license configurations. @OptionalCustomCoding> @@ -47806,7 +47958,7 @@ extension EC2 { public let minCount: Int? /// Specifies whether detailed monitoring is enabled for the instance. public let monitoring: RunInstancesMonitoringEnabled? - /// The network interfaces to associate with the instance. If you specify a network interface, you must specify any security groups and subnets as part of the network interface. + /// The network interfaces to associate with the instance. @OptionalCustomCoding> public var networkInterfaces: [InstanceNetworkInterfaceSpecification]? /// The placement for the instance. @@ -47817,13 +47969,13 @@ extension EC2 { public let privateIpAddress: String? /// The ID of the RAM disk to select. Some kernels require additional drivers at launch. Check the kernel requirements for information about whether you need to specify a RAM disk. To find kernel requirements, go to the Amazon Web Services Resource Center and search for the kernel ID. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB in the Amazon EC2 User Guide. public let ramdiskId: String? - /// The IDs of the security groups. You can create a security group using CreateSecurityGroup. If you specify a network interface, you must specify any security groups as part of the network interface. + /// The IDs of the security groups. You can create a security group using CreateSecurityGroup. If you specify a network interface, you must specify any security groups as part of the network interface instead of using this parameter. @OptionalCustomCoding> public var securityGroupIds: [String]? - /// [Default VPC] The names of the security groups. If you specify a network interface, you must specify any security groups as part of the network interface. Default: Amazon EC2 uses the default security group. + /// [Default VPC] The names of the security groups. If you specify a network interface, you must specify any security groups as part of the network interface instead of using this parameter. Default: Amazon EC2 uses the default security group. @OptionalCustomCoding> public var securityGroups: [String]? - /// The ID of the subnet to launch the instance into. If you specify a network interface, you must specify any subnets as part of the network interface. + /// The ID of the subnet to launch the instance into. If you specify a network interface, you must specify any subnets as part of the network interface instead of using this parameter. public let subnetId: String? /// The tags to apply to the resources that are created during instance launch. You can specify tags for the following resources only: Instances Volumes Spot Instance requests Network interfaces To tag a resource after it has been created, see CreateTags. @OptionalCustomCoding> @@ -48602,7 +48754,7 @@ extension EC2 { /// One or more filters. The possible values are: attachment.transit-gateway-attachment-id- The id of the transit gateway attachment. attachment.resource-id - The resource id of the transit gateway attachment. attachment.resource-type - The attachment resource type. Valid values are vpc | vpn | direct-connect-gateway | peering | connect. prefix-list-id - The ID of the prefix list. route-search.exact-match - The exact match of the specified filter. route-search.longest-prefix-match - The longest prefix that matches the route. route-search.subnet-of-match - The routes with a subnet that match the specified CIDR filter. route-search.supernet-of-match - The routes with a CIDR that encompass the CIDR filter. For example, if you have 10.0.1.0/29 and 10.0.1.0/31 routes in your route table and you specify supernet-of-match as 10.0.1.0/30, then the result returns 10.0.1.0/29. state - The state of the route (active | blackhole). type - The type of route (propagated | static). @OptionalCustomCoding> public var filters: [Filter]? - /// The maximum number of routes to return. + /// The maximum number of routes to return. If a value is not provided, the default is 1000. public let maxResults: Int? /// The ID of the transit gateway route table. public let transitGatewayRouteTableId: String? @@ -49575,19 +49727,19 @@ extension EC2 { public let keyName: String? /// Enable or disable monitoring for the instances. public let monitoring: SpotFleetMonitoring? - /// One or more network interfaces. If you specify a network interface, you must specify subnet IDs and security group IDs using the network interface. SpotFleetLaunchSpecification currently does not support Elastic Fabric Adapter (EFA). To specify an EFA, you must use LaunchTemplateConfig. + /// The network interfaces. SpotFleetLaunchSpecification does not support Elastic Fabric Adapter (EFA). You must use LaunchTemplateConfig instead. @OptionalCustomCoding> public var networkInterfaces: [InstanceNetworkInterfaceSpecification]? /// The placement information. public let placement: SpotPlacement? /// The ID of the RAM disk. Some kernels require additional drivers at launch. Check the kernel requirements for information about whether you need to specify a RAM disk. To find kernel requirements, refer to the Amazon Web Services Resource Center and search for the kernel ID. public let ramdiskId: String? - /// The security groups. + /// The security groups. If you specify a network interface, you must specify any security groups as part of the network interface instead of using this parameter. @OptionalCustomCoding> public var securityGroups: [GroupIdentifier]? /// The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price. If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter. public let spotPrice: String? - /// The IDs of the subnets in which to launch the instances. To specify multiple subnets, separate them using commas; for example, "subnet-1234abcdeexample1, subnet-0987cdef6example2". + /// The IDs of the subnets in which to launch the instances. To specify multiple subnets, separate them using commas; for example, "subnet-1234abcdeexample1, subnet-0987cdef6example2". If you specify a network interface, you must specify any subnets as part of the network interface instead of using this parameter. public let subnetId: String? /// The tags to apply during creation. @OptionalCustomCoding> @@ -54085,7 +54237,7 @@ extension EC2 { public struct _AttachmentsEncoding: ArrayCoderProperties { public static let member = "item" } public struct _TagsEncoding: ArrayCoderProperties { public static let member = "item" } - /// Information about the volume attachments. + /// This parameter is not returned by CreateVolume. Information about the volume attachments. @OptionalCustomCoding> public var attachments: [VolumeAttachment]? /// The Availability Zone for the volume. @@ -54094,7 +54246,7 @@ extension EC2 { public let createTime: Date? /// Indicates whether the volume is encrypted. public let encrypted: Bool? - /// Indicates whether the volume was created using fast snapshot restore. + /// This parameter is not returned by CreateVolume. Indicates whether the volume was created using fast snapshot restore. public let fastRestored: Bool? /// The number of I/O operations per second (IOPS). For gp3, io1, and io2 volumes, this represents the number of IOPS that are provisioned for the volume. For gp2 volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. public let iops: Int? @@ -54108,7 +54260,7 @@ extension EC2 { public let size: Int? /// The snapshot from which the volume was created, if applicable. public let snapshotId: String? - /// Reserved for future use. + /// This parameter is not returned by CreateVolume. Reserved for future use. public let sseType: SSEType? /// The volume state. public let state: VolumeState? diff --git a/Sources/Soto/Services/EMRContainers/EMRContainers_api.swift b/Sources/Soto/Services/EMRContainers/EMRContainers_api.swift index 563c309e94..dff5d7798a 100644 --- a/Sources/Soto/Services/EMRContainers/EMRContainers_api.swift +++ b/Sources/Soto/Services/EMRContainers/EMRContainers_api.swift @@ -123,6 +123,19 @@ public struct EMRContainers: AWSService { ) } + /// Creates a security configuration. Security configurations in Amazon EMR on EKS are templates for different security setups. You can use security configurations to configure the Lake Formation integration setup. You can also create a security configuration to re-use a security setup each time you create a virtual cluster. + @Sendable + public func createSecurityConfiguration(_ input: CreateSecurityConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateSecurityConfigurationResponse { + return try await self.client.execute( + operation: "CreateSecurityConfiguration", + path: "/securityconfigurations", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Creates a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements. @Sendable public func createVirtualCluster(_ input: CreateVirtualClusterRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateVirtualClusterResponse { @@ -214,6 +227,19 @@ public struct EMRContainers: AWSService { ) } + /// Displays detailed information about a specified security configuration. Security configurations in Amazon EMR on EKS are templates for different security setups. You can use security configurations to configure the Lake Formation integration setup. You can also create a security configuration to re-use a security setup each time you create a virtual cluster. + @Sendable + public func describeSecurityConfiguration(_ input: DescribeSecurityConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeSecurityConfigurationResponse { + return try await self.client.execute( + operation: "DescribeSecurityConfiguration", + path: "/securityconfigurations/{id}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Displays detailed information about a specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements. @Sendable public func describeVirtualCluster(_ input: DescribeVirtualClusterRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeVirtualClusterResponse { @@ -279,6 +305,19 @@ public struct EMRContainers: AWSService { ) } + /// Lists security configurations based on a set of parameters. Security configurations in Amazon EMR on EKS are templates for different security setups. You can use security configurations to configure the Lake Formation integration setup. You can also create a security configuration to re-use a security setup each time you create a virtual cluster. + @Sendable + public func listSecurityConfigurations(_ input: ListSecurityConfigurationsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListSecurityConfigurationsResponse { + return try await self.client.execute( + operation: "ListSecurityConfigurations", + path: "/securityconfigurations", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Lists the tags assigned to the resources. @Sendable public func listTagsForResource(_ input: ListTagsForResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListTagsForResourceResponse { @@ -415,6 +454,25 @@ extension EMRContainers { ) } + /// Lists security configurations based on a set of parameters. Security configurations in Amazon EMR on EKS are templates for different security setups. You can use security configurations to configure the Lake Formation integration setup. You can also create a security configuration to re-use a security setup each time you create a virtual cluster. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listSecurityConfigurationsPaginator( + _ input: ListSecurityConfigurationsRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listSecurityConfigurations, + inputKey: \ListSecurityConfigurationsRequest.nextToken, + outputKey: \ListSecurityConfigurationsResponse.nextToken, + logger: logger + ) + } + /// Lists information about the specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements. /// Return PaginatorSequence for operation. /// @@ -474,6 +532,17 @@ extension EMRContainers.ListManagedEndpointsRequest: AWSPaginateToken { } } +extension EMRContainers.ListSecurityConfigurationsRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> EMRContainers.ListSecurityConfigurationsRequest { + return .init( + createdAfter: self.createdAfter, + createdBefore: self.createdBefore, + maxResults: self.maxResults, + nextToken: token + ) + } +} + extension EMRContainers.ListVirtualClustersRequest: AWSPaginateToken { public func usingPaginationToken(_ token: String) -> EMRContainers.ListVirtualClustersRequest { return .init( diff --git a/Sources/Soto/Services/EMRContainers/EMRContainers_shapes.swift b/Sources/Soto/Services/EMRContainers/EMRContainers_shapes.swift index d096a50426..2f303e5fe4 100644 --- a/Sources/Soto/Services/EMRContainers/EMRContainers_shapes.swift +++ b/Sources/Soto/Services/EMRContainers/EMRContainers_shapes.swift @@ -26,6 +26,11 @@ import Foundation extension EMRContainers { // MARK: Enums + public enum CertificateProviderType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case pem = "PEM" + public var description: String { return self.rawValue } + } + public enum ContainerProviderType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case eks = "EKS" public var description: String { return self.rawValue } @@ -81,6 +86,28 @@ extension EMRContainers { // MARK: Shapes + public struct AuthorizationConfiguration: AWSEncodableShape & AWSDecodableShape { + /// Encryption-related configuration input for the security configuration. + public let encryptionConfiguration: EncryptionConfiguration? + /// Lake Formation related configuration inputs for the security configuration. + public let lakeFormationConfiguration: LakeFormationConfiguration? + + public init(encryptionConfiguration: EncryptionConfiguration? = nil, lakeFormationConfiguration: LakeFormationConfiguration? = nil) { + self.encryptionConfiguration = encryptionConfiguration + self.lakeFormationConfiguration = lakeFormationConfiguration + } + + public func validate(name: String) throws { + try self.encryptionConfiguration?.validate(name: "\(name).encryptionConfiguration") + try self.lakeFormationConfiguration?.validate(name: "\(name).lakeFormationConfiguration") + } + + private enum CodingKeys: String, CodingKey { + case encryptionConfiguration = "encryptionConfiguration" + case lakeFormationConfiguration = "lakeFormationConfiguration" + } + } + public struct CancelJobRunRequest: AWSEncodableShape { /// The ID of the job run to cancel. public let id: String @@ -494,6 +521,70 @@ extension EMRContainers { } } + public struct CreateSecurityConfigurationRequest: AWSEncodableShape { + /// The client idempotency token to use when creating the security configuration. + public let clientToken: String + /// The name of the security configuration. + public let name: String + /// Security configuration input for the request. + public let securityConfigurationData: SecurityConfigurationData + /// The tags to add to the security configuration. + public let tags: [String: String]? + + public init(clientToken: String = CreateSecurityConfigurationRequest.idempotencyToken(), name: String, securityConfigurationData: SecurityConfigurationData, tags: [String: String]? = nil) { + self.clientToken = clientToken + self.name = name + self.securityConfigurationData = securityConfigurationData + self.tags = tags + } + + public func validate(name: String) throws { + try self.validate(self.clientToken, name: "clientToken", parent: name, max: 64) + try self.validate(self.clientToken, name: "clientToken", parent: name, min: 1) + try self.validate(self.clientToken, name: "clientToken", parent: name, pattern: "\\S") + try self.validate(self.name, name: "name", parent: name, max: 64) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[\\.\\-_/#A-Za-z0-9]+$") + try self.securityConfigurationData.validate(name: "\(name).securityConfigurationData") + try self.tags?.forEach { + try validate($0.key, name: "tags.key", parent: name, max: 128) + try validate($0.key, name: "tags.key", parent: name, min: 1) + try validate($0.key, name: "tags.key", parent: name, pattern: "\\S") + try validate($0.value, name: "tags[\"\($0.key)\"]", parent: name, max: 256) + try validate($0.value, name: "tags[\"\($0.key)\"]", parent: name, pattern: "\\S") + } + try self.validate(self.tags, name: "tags", parent: name, max: 50) + } + + private enum CodingKeys: String, CodingKey { + case clientToken = "clientToken" + case name = "name" + case securityConfigurationData = "securityConfigurationData" + case tags = "tags" + } + } + + public struct CreateSecurityConfigurationResponse: AWSDecodableShape { + /// The ARN (Amazon Resource Name) of the security configuration. + public let arn: String? + /// The ID of the security configuration. + public let id: String? + /// The name of the security configuration. + public let name: String? + + public init(arn: String? = nil, id: String? = nil, name: String? = nil) { + self.arn = arn + self.id = id + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case id = "id" + case name = "name" + } + } + public struct CreateVirtualClusterRequest: AWSEncodableShape { /// The client token of the virtual cluster. public let clientToken: String @@ -501,13 +592,16 @@ extension EMRContainers { public let containerProvider: ContainerProvider /// The specified name of the virtual cluster. public let name: String + /// The ID of the security configuration. + public let securityConfigurationId: String? /// The tags assigned to the virtual cluster. public let tags: [String: String]? - public init(clientToken: String = CreateVirtualClusterRequest.idempotencyToken(), containerProvider: ContainerProvider, name: String, tags: [String: String]? = nil) { + public init(clientToken: String = CreateVirtualClusterRequest.idempotencyToken(), containerProvider: ContainerProvider, name: String, securityConfigurationId: String? = nil, tags: [String: String]? = nil) { self.clientToken = clientToken self.containerProvider = containerProvider self.name = name + self.securityConfigurationId = securityConfigurationId self.tags = tags } @@ -519,6 +613,9 @@ extension EMRContainers { try self.validate(self.name, name: "name", parent: name, max: 64) try self.validate(self.name, name: "name", parent: name, min: 1) try self.validate(self.name, name: "name", parent: name, pattern: "^[\\.\\-_/#A-Za-z0-9]+$") + try self.validate(self.securityConfigurationId, name: "securityConfigurationId", parent: name, max: 64) + try self.validate(self.securityConfigurationId, name: "securityConfigurationId", parent: name, min: 1) + try self.validate(self.securityConfigurationId, name: "securityConfigurationId", parent: name, pattern: "^[0-9a-z]+$") try self.tags?.forEach { try validate($0.key, name: "tags.key", parent: name, max: 128) try validate($0.key, name: "tags.key", parent: name, min: 1) @@ -533,6 +630,7 @@ extension EMRContainers { case clientToken = "clientToken" case containerProvider = "containerProvider" case name = "name" + case securityConfigurationId = "securityConfigurationId" case tags = "tags" } } @@ -799,6 +897,42 @@ extension EMRContainers { } } + public struct DescribeSecurityConfigurationRequest: AWSEncodableShape { + /// The ID of the security configuration. + public let id: String + + public init(id: String) { + self.id = id + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.id, key: "id") + } + + public func validate(name: String) throws { + try self.validate(self.id, name: "id", parent: name, max: 64) + try self.validate(self.id, name: "id", parent: name, min: 1) + try self.validate(self.id, name: "id", parent: name, pattern: "^[0-9a-z]+$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct DescribeSecurityConfigurationResponse: AWSDecodableShape { + /// Details of the security configuration. + public let securityConfiguration: SecurityConfiguration? + + public init(securityConfiguration: SecurityConfiguration? = nil) { + self.securityConfiguration = securityConfiguration + } + + private enum CodingKeys: String, CodingKey { + case securityConfiguration = "securityConfiguration" + } + } + public struct DescribeVirtualClusterRequest: AWSEncodableShape { /// The ID of the virtual cluster that will be described. public let id: String @@ -854,6 +988,23 @@ extension EMRContainers { } } + public struct EncryptionConfiguration: AWSEncodableShape & AWSDecodableShape { + /// In-transit encryption-related input for the security configuration. + public let inTransitEncryptionConfiguration: InTransitEncryptionConfiguration? + + public init(inTransitEncryptionConfiguration: InTransitEncryptionConfiguration? = nil) { + self.inTransitEncryptionConfiguration = inTransitEncryptionConfiguration + } + + public func validate(name: String) throws { + try self.inTransitEncryptionConfiguration?.validate(name: "\(name).inTransitEncryptionConfiguration") + } + + private enum CodingKeys: String, CodingKey { + case inTransitEncryptionConfiguration = "inTransitEncryptionConfiguration" + } + } + public struct Endpoint: AWSDecodableShape { /// The ARN of the endpoint. public let arn: String? @@ -1048,6 +1199,23 @@ extension EMRContainers { } } + public struct InTransitEncryptionConfiguration: AWSEncodableShape & AWSDecodableShape { + /// TLS certificate-related configuration input for the security configuration. + public let tlsCertificateConfiguration: TLSCertificateConfiguration? + + public init(tlsCertificateConfiguration: TLSCertificateConfiguration? = nil) { + self.tlsCertificateConfiguration = tlsCertificateConfiguration + } + + public func validate(name: String) throws { + try self.tlsCertificateConfiguration?.validate(name: "\(name).tlsCertificateConfiguration") + } + + private enum CodingKeys: String, CodingKey { + case tlsCertificateConfiguration = "tlsCertificateConfiguration" + } + } + public struct JobDriver: AWSEncodableShape & AWSDecodableShape { /// The job driver for job type. public let sparkSqlJobDriver: SparkSqlJobDriver? @@ -1257,6 +1425,37 @@ extension EMRContainers { } } + public struct LakeFormationConfiguration: AWSEncodableShape & AWSDecodableShape { + /// The session tag to authorize Amazon EMR on EKS for API calls to Lake Formation. + public let authorizedSessionTagValue: String? + /// The query engine IAM role ARN that is tied to the secure Spark job. The QueryEngine role assumes the JobExecutionRole to execute all the Lake Formation calls. + public let queryEngineRoleArn: String? + /// The namespace input of the system job. + public let secureNamespaceInfo: SecureNamespaceInfo? + + public init(authorizedSessionTagValue: String? = nil, queryEngineRoleArn: String? = nil, secureNamespaceInfo: SecureNamespaceInfo? = nil) { + self.authorizedSessionTagValue = authorizedSessionTagValue + self.queryEngineRoleArn = queryEngineRoleArn + self.secureNamespaceInfo = secureNamespaceInfo + } + + public func validate(name: String) throws { + try self.validate(self.authorizedSessionTagValue, name: "authorizedSessionTagValue", parent: name, max: 512) + try self.validate(self.authorizedSessionTagValue, name: "authorizedSessionTagValue", parent: name, min: 1) + try self.validate(self.authorizedSessionTagValue, name: "authorizedSessionTagValue", parent: name, pattern: "^[\\.\\-_/#A-Za-z0-9 ]+$") + try self.validate(self.queryEngineRoleArn, name: "queryEngineRoleArn", parent: name, max: 2048) + try self.validate(self.queryEngineRoleArn, name: "queryEngineRoleArn", parent: name, min: 20) + try self.validate(self.queryEngineRoleArn, name: "queryEngineRoleArn", parent: name, pattern: "^arn:(aws[a-zA-Z0-9-]*):iam::(\\d{12})?:(role((\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F))[\\w+=,.@-]+)$") + try self.secureNamespaceInfo?.validate(name: "\(name).secureNamespaceInfo") + } + + private enum CodingKeys: String, CodingKey { + case authorizedSessionTagValue = "authorizedSessionTagValue" + case queryEngineRoleArn = "queryEngineRoleArn" + case secureNamespaceInfo = "secureNamespaceInfo" + } + } + public struct ListJobRunsRequest: AWSEncodableShape { /// The date and time after which the job runs were submitted. @OptionalCustomCoding @@ -1460,6 +1659,60 @@ extension EMRContainers { } } + public struct ListSecurityConfigurationsRequest: AWSEncodableShape { + /// The date and time after which the security configuration was created. + @OptionalCustomCoding + public var createdAfter: Date? + /// The date and time before which the security configuration was created. + @OptionalCustomCoding + public var createdBefore: Date? + /// The maximum number of security configurations the operation can list. + public let maxResults: Int? + /// The token for the next set of security configurations to return. + public let nextToken: String? + + public init(createdAfter: Date? = nil, createdBefore: Date? = nil, maxResults: Int? = nil, nextToken: String? = nil) { + self.createdAfter = createdAfter + self.createdBefore = createdBefore + self.maxResults = maxResults + self.nextToken = nextToken + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self._createdAfter, key: "createdAfter") + request.encodeQuery(self._createdBefore, key: "createdBefore") + request.encodeQuery(self.maxResults, key: "maxResults") + request.encodeQuery(self.nextToken, key: "nextToken") + } + + public func validate(name: String) throws { + try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1024) + try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "\\S") + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListSecurityConfigurationsResponse: AWSDecodableShape { + /// The token for the next set of security configurations to return. + public let nextToken: String? + /// The list of returned security configurations. + public let securityConfigurations: [SecurityConfiguration]? + + public init(nextToken: String? = nil, securityConfigurations: [SecurityConfiguration]? = nil) { + self.nextToken = nextToken + self.securityConfigurations = securityConfigurations + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case securityConfigurations = "securityConfigurations" + } + } + public struct ListTagsForResourceRequest: AWSEncodableShape { /// The ARN of tagged resources. public let resourceArn: String @@ -1745,6 +1998,87 @@ extension EMRContainers { } } + public struct SecureNamespaceInfo: AWSEncodableShape & AWSDecodableShape { + /// The ID of the Amazon EKS cluster where Amazon EMR on EKS jobs run. + public let clusterId: String? + /// The namespace of the Amazon EKS cluster where the system jobs run. + public let namespace: String? + + public init(clusterId: String? = nil, namespace: String? = nil) { + self.clusterId = clusterId + self.namespace = namespace + } + + public func validate(name: String) throws { + try self.validate(self.clusterId, name: "clusterId", parent: name, max: 100) + try self.validate(self.clusterId, name: "clusterId", parent: name, min: 1) + try self.validate(self.clusterId, name: "clusterId", parent: name, pattern: "^[0-9A-Za-z][A-Za-z0-9\\-_]*$") + try self.validate(self.namespace, name: "namespace", parent: name, max: 63) + try self.validate(self.namespace, name: "namespace", parent: name, min: 1) + try self.validate(self.namespace, name: "namespace", parent: name, pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$") + } + + private enum CodingKeys: String, CodingKey { + case clusterId = "clusterId" + case namespace = "namespace" + } + } + + public struct SecurityConfiguration: AWSDecodableShape { + /// The ARN (Amazon Resource Name) of the security configuration. + public let arn: String? + /// The date and time that the job run was created. + @OptionalCustomCoding + public var createdAt: Date? + /// The user who created the job run. + public let createdBy: String? + /// The ID of the security configuration. + public let id: String? + /// The name of the security configuration. + public let name: String? + /// Security configuration inputs for the request. + public let securityConfigurationData: SecurityConfigurationData? + /// The tags to assign to the security configuration. + public let tags: [String: String]? + + public init(arn: String? = nil, createdAt: Date? = nil, createdBy: String? = nil, id: String? = nil, name: String? = nil, securityConfigurationData: SecurityConfigurationData? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.createdAt = createdAt + self.createdBy = createdBy + self.id = id + self.name = name + self.securityConfigurationData = securityConfigurationData + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case createdAt = "createdAt" + case createdBy = "createdBy" + case id = "id" + case name = "name" + case securityConfigurationData = "securityConfigurationData" + case tags = "tags" + } + } + + public struct SecurityConfigurationData: AWSEncodableShape & AWSDecodableShape { + /// Authorization-related configuration input for the security configuration. + public let authorizationConfiguration: AuthorizationConfiguration? + + public init(authorizationConfiguration: AuthorizationConfiguration? = nil) { + self.authorizationConfiguration = authorizationConfiguration + } + + public func validate(name: String) throws { + try self.authorizationConfiguration?.validate(name: "\(name).authorizationConfiguration") + } + + private enum CodingKeys: String, CodingKey { + case authorizationConfiguration = "authorizationConfiguration" + } + } + public struct SparkSqlJobDriver: AWSEncodableShape & AWSDecodableShape { /// The SQL file to be executed. public let entryPoint: String? @@ -1939,6 +2273,36 @@ extension EMRContainers { } } + public struct TLSCertificateConfiguration: AWSEncodableShape & AWSDecodableShape { + /// The TLS certificate type. Acceptable values: PEM or Custom. + public let certificateProviderType: CertificateProviderType? + /// Secrets Manager ARN that contains the private TLS certificate contents, used for communication between the user job and the system job. + public let privateCertificateSecretArn: String? + /// Secrets Manager ARN that contains the public TLS certificate contents, used for communication between the user job and the system job. + public let publicCertificateSecretArn: String? + + public init(certificateProviderType: CertificateProviderType? = nil, privateCertificateSecretArn: String? = nil, publicCertificateSecretArn: String? = nil) { + self.certificateProviderType = certificateProviderType + self.privateCertificateSecretArn = privateCertificateSecretArn + self.publicCertificateSecretArn = publicCertificateSecretArn + } + + public func validate(name: String) throws { + try self.validate(self.privateCertificateSecretArn, name: "privateCertificateSecretArn", parent: name, max: 2048) + try self.validate(self.privateCertificateSecretArn, name: "privateCertificateSecretArn", parent: name, min: 3) + try self.validate(self.privateCertificateSecretArn, name: "privateCertificateSecretArn", parent: name, pattern: "^arn:(aws[a-zA-Z0-9-]*):secretsmanager:.+:(\\d{12}):secret:[0-9a-zA-Z/_+=.@-]+$") + try self.validate(self.publicCertificateSecretArn, name: "publicCertificateSecretArn", parent: name, max: 2048) + try self.validate(self.publicCertificateSecretArn, name: "publicCertificateSecretArn", parent: name, min: 3) + try self.validate(self.publicCertificateSecretArn, name: "publicCertificateSecretArn", parent: name, pattern: "^arn:(aws[a-zA-Z0-9-]*):secretsmanager:.+:(\\d{12}):secret:[0-9a-zA-Z/_+=.@-]+$") + } + + private enum CodingKeys: String, CodingKey { + case certificateProviderType = "certificateProviderType" + case privateCertificateSecretArn = "privateCertificateSecretArn" + case publicCertificateSecretArn = "publicCertificateSecretArn" + } + } + public struct TagResourceRequest: AWSEncodableShape { /// The ARN of resources. public let resourceArn: String @@ -2052,17 +2416,20 @@ extension EMRContainers { public let id: String? /// The name of the virtual cluster. public let name: String? + /// The ID of the security configuration. + public let securityConfigurationId: String? /// The state of the virtual cluster. public let state: VirtualClusterState? /// The assigned tags of the virtual cluster. public let tags: [String: String]? - public init(arn: String? = nil, containerProvider: ContainerProvider? = nil, createdAt: Date? = nil, id: String? = nil, name: String? = nil, state: VirtualClusterState? = nil, tags: [String: String]? = nil) { + public init(arn: String? = nil, containerProvider: ContainerProvider? = nil, createdAt: Date? = nil, id: String? = nil, name: String? = nil, securityConfigurationId: String? = nil, state: VirtualClusterState? = nil, tags: [String: String]? = nil) { self.arn = arn self.containerProvider = containerProvider self.createdAt = createdAt self.id = id self.name = name + self.securityConfigurationId = securityConfigurationId self.state = state self.tags = tags } @@ -2073,6 +2440,7 @@ extension EMRContainers { case createdAt = "createdAt" case id = "id" case name = "name" + case securityConfigurationId = "securityConfigurationId" case state = "state" case tags = "tags" } diff --git a/Sources/Soto/Services/EMRServerless/EMRServerless_shapes.swift b/Sources/Soto/Services/EMRServerless/EMRServerless_shapes.swift index 837409def7..36742e9f7d 100644 --- a/Sources/Soto/Services/EMRServerless/EMRServerless_shapes.swift +++ b/Sources/Soto/Services/EMRServerless/EMRServerless_shapes.swift @@ -396,10 +396,9 @@ extension EMRServerless { try self.properties?.forEach { try validate($0.key, name: "properties.key", parent: name, max: 1024) try validate($0.key, name: "properties.key", parent: name, min: 1) - try validate($0.key, name: "properties.key", parent: name, pattern: ".*\\S.*") + try validate($0.key, name: "properties.key", parent: name, pattern: "^.*\\S.*$") try validate($0.value, name: "properties[\"\($0.key)\"]", parent: name, max: 1024) - try validate($0.value, name: "properties[\"\($0.key)\"]", parent: name, min: 1) - try validate($0.value, name: "properties[\"\($0.key)\"]", parent: name, pattern: ".*\\S.*") + try validate($0.value, name: "properties[\"\($0.key)\"]", parent: name, pattern: "^.*\\S.*$") } try self.validate(self.properties, name: "properties", parent: name, max: 100) } @@ -1162,24 +1161,29 @@ extension EMRServerless { public let cloudWatchLoggingConfiguration: CloudWatchLoggingConfiguration? /// The managed log persistence configuration for a job run. public let managedPersistenceMonitoringConfiguration: ManagedPersistenceMonitoringConfiguration? + /// The monitoring configuration object you can configure to send metrics to Amazon Managed Service for Prometheus for a job run. + public let prometheusMonitoringConfiguration: PrometheusMonitoringConfiguration? /// The Amazon S3 configuration for monitoring log publishing. public let s3MonitoringConfiguration: S3MonitoringConfiguration? - public init(cloudWatchLoggingConfiguration: CloudWatchLoggingConfiguration? = nil, managedPersistenceMonitoringConfiguration: ManagedPersistenceMonitoringConfiguration? = nil, s3MonitoringConfiguration: S3MonitoringConfiguration? = nil) { + public init(cloudWatchLoggingConfiguration: CloudWatchLoggingConfiguration? = nil, managedPersistenceMonitoringConfiguration: ManagedPersistenceMonitoringConfiguration? = nil, prometheusMonitoringConfiguration: PrometheusMonitoringConfiguration? = nil, s3MonitoringConfiguration: S3MonitoringConfiguration? = nil) { self.cloudWatchLoggingConfiguration = cloudWatchLoggingConfiguration self.managedPersistenceMonitoringConfiguration = managedPersistenceMonitoringConfiguration + self.prometheusMonitoringConfiguration = prometheusMonitoringConfiguration self.s3MonitoringConfiguration = s3MonitoringConfiguration } public func validate(name: String) throws { try self.cloudWatchLoggingConfiguration?.validate(name: "\(name).cloudWatchLoggingConfiguration") try self.managedPersistenceMonitoringConfiguration?.validate(name: "\(name).managedPersistenceMonitoringConfiguration") + try self.prometheusMonitoringConfiguration?.validate(name: "\(name).prometheusMonitoringConfiguration") try self.s3MonitoringConfiguration?.validate(name: "\(name).s3MonitoringConfiguration") } private enum CodingKeys: String, CodingKey { case cloudWatchLoggingConfiguration = "cloudWatchLoggingConfiguration" case managedPersistenceMonitoringConfiguration = "managedPersistenceMonitoringConfiguration" + case prometheusMonitoringConfiguration = "prometheusMonitoringConfiguration" case s3MonitoringConfiguration = "s3MonitoringConfiguration" } } @@ -1216,6 +1220,25 @@ extension EMRServerless { } } + public struct PrometheusMonitoringConfiguration: AWSEncodableShape & AWSDecodableShape { + /// The remote write URL in the Amazon Managed Service for Prometheus workspace to send metrics to. + public let remoteWriteUrl: String? + + public init(remoteWriteUrl: String? = nil) { + self.remoteWriteUrl = remoteWriteUrl + } + + public func validate(name: String) throws { + try self.validate(self.remoteWriteUrl, name: "remoteWriteUrl", parent: name, max: 10280) + try self.validate(self.remoteWriteUrl, name: "remoteWriteUrl", parent: name, min: 1) + try self.validate(self.remoteWriteUrl, name: "remoteWriteUrl", parent: name, pattern: "^https://aps-workspaces.([a-z]{2}-[a-z-]{1,20}-[1-9]).amazonaws(.[0-9A-Za-z]{2,4})+/workspaces/[-_.0-9A-Za-z]{1,100}/api/v1/remote_write$") + } + + private enum CodingKeys: String, CodingKey { + case remoteWriteUrl = "remoteWriteUrl" + } + } + public struct ResourceUtilization: AWSDecodableShape { /// The aggregated memory used per hour from the time the job starts executing until the job is terminated. public let memoryGBHour: Double? @@ -1681,12 +1704,15 @@ extension EMRServerless { public let cpu: String /// The disk requirements for every worker instance of the worker type. public let disk: String? + /// The disk type for every worker instance of the work type. Shuffle optimized disks have higher performance characteristics and are better for shuffle heavy workloads. Default is STANDARD. + public let diskType: String? /// The memory requirements for every worker instance of the worker type. public let memory: String - public init(cpu: String, disk: String? = nil, memory: String) { + public init(cpu: String, disk: String? = nil, diskType: String? = nil, memory: String) { self.cpu = cpu self.disk = disk + self.diskType = diskType self.memory = memory } @@ -1697,6 +1723,7 @@ extension EMRServerless { try self.validate(self.disk, name: "disk", parent: name, max: 15) try self.validate(self.disk, name: "disk", parent: name, min: 1) try self.validate(self.disk, name: "disk", parent: name, pattern: "^[1-9][0-9]*(\\s)?(GB|gb|gB|Gb)$") + try self.validate(self.diskType, name: "diskType", parent: name, pattern: "^(SHUFFLE_OPTIMIZED|[Ss]huffle_[Oo]ptimized|STANDARD|[Ss]tandard)$") try self.validate(self.memory, name: "memory", parent: name, max: 15) try self.validate(self.memory, name: "memory", parent: name, min: 1) try self.validate(self.memory, name: "memory", parent: name, pattern: "^[1-9][0-9]*(\\s)?(GB|gb|gB|Gb)?$") @@ -1705,6 +1732,7 @@ extension EMRServerless { private enum CodingKeys: String, CodingKey { case cpu = "cpu" case disk = "disk" + case diskType = "diskType" case memory = "memory" } } diff --git a/Sources/Soto/Services/EntityResolution/EntityResolution_api.swift b/Sources/Soto/Services/EntityResolution/EntityResolution_api.swift index f9c2d62345..f2f44e5750 100644 --- a/Sources/Soto/Services/EntityResolution/EntityResolution_api.swift +++ b/Sources/Soto/Services/EntityResolution/EntityResolution_api.swift @@ -73,6 +73,32 @@ public struct EntityResolution: AWSService { // MARK: API Calls + /// Adds a policy statement object. To retrieve a list of existing policy statements, use the GetPolicy API. + @Sendable + public func addPolicyStatement(_ input: AddPolicyStatementInput, logger: Logger = AWSClient.loggingDisabled) async throws -> AddPolicyStatementOutput { + return try await self.client.execute( + operation: "AddPolicyStatement", + path: "/policies/{arn}/{statementId}", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Deletes multiple unique IDs in a matching workflow. + @Sendable + public func batchDeleteUniqueId(_ input: BatchDeleteUniqueIdInput, logger: Logger = AWSClient.loggingDisabled) async throws -> BatchDeleteUniqueIdOutput { + return try await self.client.execute( + operation: "BatchDeleteUniqueId", + path: "/matchingworkflows/{workflowName}/uniqueids", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Creates an IdMappingWorkflow object which stores the configuration of the data processing job to be run. Each IdMappingWorkflow must have a unique workflow name. To modify an existing workflow, use the UpdateIdMappingWorkflow API. @Sendable public func createIdMappingWorkflow(_ input: CreateIdMappingWorkflowInput, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateIdMappingWorkflowOutput { @@ -86,6 +112,19 @@ public struct EntityResolution: AWSService { ) } + /// Creates an ID namespace object which will help customers provide metadata explaining their dataset and how to use it. Each ID namespace must have a unique name. To modify an existing ID namespace, use the UpdateIdNamespace API. + @Sendable + public func createIdNamespace(_ input: CreateIdNamespaceInput, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateIdNamespaceOutput { + return try await self.client.execute( + operation: "CreateIdNamespace", + path: "/idnamespaces", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Creates a MatchingWorkflow object which stores the configuration of the data processing job to be run. It is important to note that there should not be a pre-existing MatchingWorkflow with the same name. To modify an existing workflow, utilize the UpdateMatchingWorkflow API. @Sendable public func createMatchingWorkflow(_ input: CreateMatchingWorkflowInput, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateMatchingWorkflowOutput { @@ -125,6 +164,19 @@ public struct EntityResolution: AWSService { ) } + /// Deletes the IdNamespace with a given name. + @Sendable + public func deleteIdNamespace(_ input: DeleteIdNamespaceInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteIdNamespaceOutput { + return try await self.client.execute( + operation: "DeleteIdNamespace", + path: "/idnamespaces/{idNamespaceName}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Deletes the MatchingWorkflow with a given name. This operation will succeed even if a workflow with the given name does not exist. @Sendable public func deleteMatchingWorkflow(_ input: DeleteMatchingWorkflowInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteMatchingWorkflowOutput { @@ -138,6 +190,19 @@ public struct EntityResolution: AWSService { ) } + /// Deletes the policy statement. + @Sendable + public func deletePolicyStatement(_ input: DeletePolicyStatementInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DeletePolicyStatementOutput { + return try await self.client.execute( + operation: "DeletePolicyStatement", + path: "/policies/{arn}/{statementId}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Deletes the SchemaMapping with a given name. This operation will succeed even if a schema with the given name does not exist. This operation will fail if there is a MatchingWorkflow object that references the SchemaMapping in the workflow's InputSourceConfig. @Sendable public func deleteSchemaMapping(_ input: DeleteSchemaMappingInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteSchemaMappingOutput { @@ -177,6 +242,19 @@ public struct EntityResolution: AWSService { ) } + /// Returns the IdNamespace with a given name, if it exists. + @Sendable + public func getIdNamespace(_ input: GetIdNamespaceInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetIdNamespaceOutput { + return try await self.client.execute( + operation: "GetIdNamespace", + path: "/idnamespaces/{idNamespaceName}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Returns the corresponding Match ID of a customer record if the record has been processed. @Sendable public func getMatchId(_ input: GetMatchIdInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetMatchIdOutput { @@ -216,6 +294,19 @@ public struct EntityResolution: AWSService { ) } + /// Returns the resource-based policy. + @Sendable + public func getPolicy(_ input: GetPolicyInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetPolicyOutput { + return try await self.client.execute( + operation: "GetPolicy", + path: "/policies/{arn}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Returns the ProviderService of a given name. @Sendable public func getProviderService(_ input: GetProviderServiceInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetProviderServiceOutput { @@ -268,6 +359,19 @@ public struct EntityResolution: AWSService { ) } + /// Returns a list of all ID namespaces. + @Sendable + public func listIdNamespaces(_ input: ListIdNamespacesInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ListIdNamespacesOutput { + return try await self.client.execute( + operation: "ListIdNamespaces", + path: "/idnamespaces", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Lists all jobs for a given workflow. @Sendable public func listMatchingJobs(_ input: ListMatchingJobsInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ListMatchingJobsOutput { @@ -333,6 +437,19 @@ public struct EntityResolution: AWSService { ) } + /// Updates the resource-based policy. + @Sendable + public func putPolicy(_ input: PutPolicyInput, logger: Logger = AWSClient.loggingDisabled) async throws -> PutPolicyOutput { + return try await self.client.execute( + operation: "PutPolicy", + path: "/policies/{arn}", + httpMethod: .PUT, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Starts the IdMappingJob of a workflow. The workflow must have previously been created using the CreateIdMappingWorkflow endpoint. @Sendable public func startIdMappingJob(_ input: StartIdMappingJobInput, logger: Logger = AWSClient.loggingDisabled) async throws -> StartIdMappingJobOutput { @@ -398,6 +515,19 @@ public struct EntityResolution: AWSService { ) } + /// Updates an existing ID namespace. + @Sendable + public func updateIdNamespace(_ input: UpdateIdNamespaceInput, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateIdNamespaceOutput { + return try await self.client.execute( + operation: "UpdateIdNamespace", + path: "/idnamespaces/{idNamespaceName}", + httpMethod: .PUT, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Updates an existing MatchingWorkflow. This method is identical to CreateMatchingWorkflow, except it uses an HTTP PUT request instead of a POST request, and the MatchingWorkflow must already exist for the method to succeed. @Sendable public func updateMatchingWorkflow(_ input: UpdateMatchingWorkflowInput, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateMatchingWorkflowOutput { @@ -476,6 +606,25 @@ extension EntityResolution { ) } + /// Returns a list of all ID namespaces. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listIdNamespacesPaginator( + _ input: ListIdNamespacesInput, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listIdNamespaces, + inputKey: \ListIdNamespacesInput.nextToken, + outputKey: \ListIdNamespacesOutput.nextToken, + logger: logger + ) + } + /// Lists all jobs for a given workflow. /// Return PaginatorSequence for operation. /// @@ -572,6 +721,15 @@ extension EntityResolution.ListIdMappingWorkflowsInput: AWSPaginateToken { } } +extension EntityResolution.ListIdNamespacesInput: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> EntityResolution.ListIdNamespacesInput { + return .init( + maxResults: self.maxResults, + nextToken: token + ) + } +} + extension EntityResolution.ListMatchingJobsInput: AWSPaginateToken { public func usingPaginationToken(_ token: String) -> EntityResolution.ListMatchingJobsInput { return .init( diff --git a/Sources/Soto/Services/EntityResolution/EntityResolution_shapes.swift b/Sources/Soto/Services/EntityResolution/EntityResolution_shapes.swift index ac6d5d5649..f14d748504 100644 --- a/Sources/Soto/Services/EntityResolution/EntityResolution_shapes.swift +++ b/Sources/Soto/Services/EntityResolution/EntityResolution_shapes.swift @@ -32,11 +32,29 @@ extension EntityResolution { public var description: String { return self.rawValue } } + public enum DeleteUniqueIdErrorType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case serviceError = "SERVICE_ERROR" + case validationError = "VALIDATION_ERROR" + public var description: String { return self.rawValue } + } + + public enum DeleteUniqueIdStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case accepted = "ACCEPTED" + case completed = "COMPLETED" + public var description: String { return self.rawValue } + } + public enum IdMappingType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case provider = "PROVIDER" public var description: String { return self.rawValue } } + public enum IdNamespaceType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case source = "SOURCE" + case target = "TARGET" + public var description: String { return self.rawValue } + } + public enum IncrementalRunType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case immediate = "IMMEDIATE" public var description: String { return self.rawValue } @@ -87,8 +105,159 @@ extension EntityResolution { public var description: String { return self.rawValue } } + public enum StatementEffect: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case allow = "Allow" + case deny = "Deny" + public var description: String { return self.rawValue } + } + // MARK: Shapes + public struct AddPolicyStatementInput: AWSEncodableShape { + /// The action that the principal can use on the resource. For example, entityresolution:GetIdMappingJob, entityresolution:GetMatchingJob. + public let action: [String] + /// The Amazon Resource Name (ARN) of the resource that will be accessed by the principal. + public let arn: String + /// A set of condition keys that you can use in key policies. + public let condition: String? + /// Determines whether the permissions specified in the policy are to be allowed (Allow) or denied (Deny). + public let effect: StatementEffect + /// The Amazon Web Services service or Amazon Web Services account that can access the resource defined as ARN. + public let principal: [String] + /// A statement identifier that differentiates the statement from others in the same policy. + public let statementId: String + + public init(action: [String], arn: String, condition: String? = nil, effect: StatementEffect, principal: [String], statementId: String) { + self.action = action + self.arn = arn + self.condition = condition + self.effect = effect + self.principal = principal + self.statementId = statementId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(self.action, forKey: .action) + request.encodePath(self.arn, key: "arn") + try container.encodeIfPresent(self.condition, forKey: .condition) + try container.encode(self.effect, forKey: .effect) + try container.encode(self.principal, forKey: .principal) + request.encodePath(self.statementId, key: "statementId") + } + + public func validate(name: String) throws { + try self.action.forEach { + try validate($0, name: "action[]", parent: name, max: 64) + try validate($0, name: "action[]", parent: name, min: 3) + try validate($0, name: "action[]", parent: name, pattern: "^(entityresolution:[a-zA-Z0-9]+)$") + } + try self.validate(self.action, name: "action", parent: name, min: 1) + try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:((schemamapping|matchingworkflow|idmappingworkflow|idnamespace)/[a-zA-Z_0-9-]{1,255})$") + try self.validate(self.condition, name: "condition", parent: name, max: 40960) + try self.validate(self.condition, name: "condition", parent: name, min: 1) + try self.principal.forEach { + try validate($0, name: "principal[]", parent: name, max: 64) + try validate($0, name: "principal[]", parent: name, min: 12) + try validate($0, name: "principal[]", parent: name, pattern: "^(\\d{12})|([a-z0-9\\.]+)$") + } + try self.validate(self.principal, name: "principal", parent: name, min: 1) + try self.validate(self.statementId, name: "statementId", parent: name, max: 64) + try self.validate(self.statementId, name: "statementId", parent: name, min: 1) + try self.validate(self.statementId, name: "statementId", parent: name, pattern: "^[0-9A-Za-z]+$") + } + + private enum CodingKeys: String, CodingKey { + case action = "action" + case condition = "condition" + case effect = "effect" + case principal = "principal" + } + } + + public struct AddPolicyStatementOutput: AWSDecodableShape { + /// The Amazon Resource Name (ARN) of the resource that will be accessed by the principal. + public let arn: String + /// The resource-based policy. + public let policy: String? + /// A unique identifier for the current revision of the policy. + public let token: String + + public init(arn: String, policy: String? = nil, token: String) { + self.arn = arn + self.policy = policy + self.token = token + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case policy = "policy" + case token = "token" + } + } + + public struct BatchDeleteUniqueIdInput: AWSEncodableShape { + /// The input source for the batch delete unique ID operation. + public let inputSource: String? + /// The unique IDs to delete. + public let uniqueIds: [String] + /// The name of the workflow. + public let workflowName: String + + public init(inputSource: String? = nil, uniqueIds: [String], workflowName: String) { + self.inputSource = inputSource + self.uniqueIds = uniqueIds + self.workflowName = workflowName + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeHeader(self.inputSource, key: "inputSource") + request.encodeHeader(self.uniqueIds, key: "uniqueIds") + request.encodePath(self.workflowName, key: "workflowName") + } + + public func validate(name: String) throws { + try self.uniqueIds.forEach { + try validate($0, name: "uniqueIds[]", parent: name, max: 760) + try validate($0, name: "uniqueIds[]", parent: name, min: 1) + try validate($0, name: "uniqueIds[]", parent: name, pattern: "^[a-zA-Z_0-9-,]*$") + } + try self.validate(self.workflowName, name: "workflowName", parent: name, max: 255) + try self.validate(self.workflowName, name: "workflowName", parent: name, min: 1) + try self.validate(self.workflowName, name: "workflowName", parent: name, pattern: "^[a-zA-Z_0-9-]*$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct BatchDeleteUniqueIdOutput: AWSDecodableShape { + /// The unique IDs that were deleted. + public let deleted: [DeletedUniqueId] + /// The unique IDs that were disconnected. + public let disconnectedUniqueIds: [String] + /// The errors from deleting multiple unique IDs. + public let errors: [DeleteUniqueIdError] + /// The status of the batch delete unique ID operation. + public let status: DeleteUniqueIdStatus + + public init(deleted: [DeletedUniqueId], disconnectedUniqueIds: [String], errors: [DeleteUniqueIdError], status: DeleteUniqueIdStatus) { + self.deleted = deleted + self.disconnectedUniqueIds = disconnectedUniqueIds + self.errors = errors + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case deleted = "deleted" + case disconnectedUniqueIds = "disconnectedUniqueIds" + case errors = "errors" + case status = "status" + } + } + public struct CreateIdMappingWorkflowInput: AWSEncodableShape { /// A description of the workflow. public let description: String? @@ -97,7 +266,7 @@ extension EntityResolution { /// A list of InputSource objects, which have the fields InputSourceARN and SchemaName. public let inputSourceConfig: [IdMappingWorkflowInputSource] /// A list of IdMappingWorkflowOutputSource objects, each of which contains fields OutputS3Path and Output. - public let outputSourceConfig: [IdMappingWorkflowOutputSource] + public let outputSourceConfig: [IdMappingWorkflowOutputSource]? /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to create resources on your behalf as part of workflow execution. public let roleArn: String /// The tags used to organize, track, or control access for this resource. @@ -105,7 +274,7 @@ extension EntityResolution { /// The name of the workflow. There can't be multiple IdMappingWorkflows with the same name. public let workflowName: String - public init(description: String? = nil, idMappingTechniques: IdMappingTechniques, inputSourceConfig: [IdMappingWorkflowInputSource], outputSourceConfig: [IdMappingWorkflowOutputSource], roleArn: String, tags: [String: String]? = nil, workflowName: String) { + public init(description: String? = nil, idMappingTechniques: IdMappingTechniques, inputSourceConfig: [IdMappingWorkflowInputSource], outputSourceConfig: [IdMappingWorkflowOutputSource]? = nil, roleArn: String, tags: [String: String]? = nil, workflowName: String) { self.description = description self.idMappingTechniques = idMappingTechniques self.inputSourceConfig = inputSourceConfig @@ -123,11 +292,13 @@ extension EntityResolution { } try self.validate(self.inputSourceConfig, name: "inputSourceConfig", parent: name, max: 20) try self.validate(self.inputSourceConfig, name: "inputSourceConfig", parent: name, min: 1) - try self.outputSourceConfig.forEach { + try self.outputSourceConfig?.forEach { try $0.validate(name: "\(name).outputSourceConfig[]") } try self.validate(self.outputSourceConfig, name: "outputSourceConfig", parent: name, max: 1) try self.validate(self.outputSourceConfig, name: "outputSourceConfig", parent: name, min: 1) + try self.validate(self.roleArn, name: "roleArn", parent: name, max: 512) + try self.validate(self.roleArn, name: "roleArn", parent: name, min: 32) try self.validate(self.roleArn, name: "roleArn", parent: name, pattern: "^arn:aws:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$") try self.tags?.forEach { try validate($0.key, name: "tags.key", parent: name, max: 128) @@ -159,7 +330,7 @@ extension EntityResolution { /// A list of InputSource objects, which have the fields InputSourceARN and SchemaName. public let inputSourceConfig: [IdMappingWorkflowInputSource] /// A list of IdMappingWorkflowOutputSource objects, each of which contains fields OutputS3Path and Output. - public let outputSourceConfig: [IdMappingWorkflowOutputSource] + public let outputSourceConfig: [IdMappingWorkflowOutputSource]? /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to create resources on your behalf as part of workflow execution. public let roleArn: String /// The ARN (Amazon Resource Name) that Entity Resolution generated for the IDMappingWorkflow. @@ -167,7 +338,7 @@ extension EntityResolution { /// The name of the workflow. public let workflowName: String - public init(description: String? = nil, idMappingTechniques: IdMappingTechniques, inputSourceConfig: [IdMappingWorkflowInputSource], outputSourceConfig: [IdMappingWorkflowOutputSource], roleArn: String, workflowArn: String, workflowName: String) { + public init(description: String? = nil, idMappingTechniques: IdMappingTechniques, inputSourceConfig: [IdMappingWorkflowInputSource], outputSourceConfig: [IdMappingWorkflowOutputSource]? = nil, roleArn: String, workflowArn: String, workflowName: String) { self.description = description self.idMappingTechniques = idMappingTechniques self.inputSourceConfig = inputSourceConfig @@ -188,6 +359,117 @@ extension EntityResolution { } } + public struct CreateIdNamespaceInput: AWSEncodableShape { + /// The description of the ID namespace. + public let description: String? + /// Determines the properties of IdMappingWorflow where this IdNamespace can be used as a Source or a Target. + public let idMappingWorkflowProperties: [IdNamespaceIdMappingWorkflowProperties]? + /// The name of the ID namespace. + public let idNamespaceName: String + /// A list of InputSource objects, which have the fields InputSourceARN and SchemaName. + public let inputSourceConfig: [IdNamespaceInputSource]? + /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to access the resources defined in this IdNamespace on your behalf as part of the workflow run. + public let roleArn: String? + /// The tags used to organize, track, or control access for this resource. + public let tags: [String: String]? + /// The type of ID namespace. There are two types: SOURCE and TARGET. The SOURCE contains configurations for sourceId data that will be processed in an ID mapping workflow. The TARGET contains a configuration of targetId to which all sourceIds will resolve to. + public let type: IdNamespaceType + + public init(description: String? = nil, idMappingWorkflowProperties: [IdNamespaceIdMappingWorkflowProperties]? = nil, idNamespaceName: String, inputSourceConfig: [IdNamespaceInputSource]? = nil, roleArn: String? = nil, tags: [String: String]? = nil, type: IdNamespaceType) { + self.description = description + self.idMappingWorkflowProperties = idMappingWorkflowProperties + self.idNamespaceName = idNamespaceName + self.inputSourceConfig = inputSourceConfig + self.roleArn = roleArn + self.tags = tags + self.type = type + } + + public func validate(name: String) throws { + try self.validate(self.description, name: "description", parent: name, max: 255) + try self.idMappingWorkflowProperties?.forEach { + try $0.validate(name: "\(name).idMappingWorkflowProperties[]") + } + try self.validate(self.idMappingWorkflowProperties, name: "idMappingWorkflowProperties", parent: name, max: 1) + try self.validate(self.idMappingWorkflowProperties, name: "idMappingWorkflowProperties", parent: name, min: 1) + try self.validate(self.idNamespaceName, name: "idNamespaceName", parent: name, max: 255) + try self.validate(self.idNamespaceName, name: "idNamespaceName", parent: name, min: 1) + try self.validate(self.idNamespaceName, name: "idNamespaceName", parent: name, pattern: "^[a-zA-Z_0-9-]*$") + try self.inputSourceConfig?.forEach { + try $0.validate(name: "\(name).inputSourceConfig[]") + } + try self.validate(self.inputSourceConfig, name: "inputSourceConfig", parent: name, max: 20) + try self.validate(self.roleArn, name: "roleArn", parent: name, max: 512) + try self.validate(self.roleArn, name: "roleArn", parent: name, min: 32) + try self.validate(self.roleArn, name: "roleArn", parent: name, pattern: "^arn:aws:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$") + try self.tags?.forEach { + try validate($0.key, name: "tags.key", parent: name, max: 128) + try validate($0.key, name: "tags.key", parent: name, min: 1) + try validate($0.value, name: "tags[\"\($0.key)\"]", parent: name, max: 256) + } + try self.validate(self.tags, name: "tags", parent: name, max: 200) + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case idMappingWorkflowProperties = "idMappingWorkflowProperties" + case idNamespaceName = "idNamespaceName" + case inputSourceConfig = "inputSourceConfig" + case roleArn = "roleArn" + case tags = "tags" + case type = "type" + } + } + + public struct CreateIdNamespaceOutput: AWSDecodableShape { + /// The timestamp of when the ID namespace was created. + public let createdAt: Date + /// The description of the ID namespace. + public let description: String? + /// Determines the properties of IdMappingWorkflow where this IdNamespace can be used as a Source or a Target. + public let idMappingWorkflowProperties: [IdNamespaceIdMappingWorkflowProperties]? + /// The Amazon Resource Name (ARN) of the ID namespace. + public let idNamespaceArn: String + /// The name of the ID namespace. + public let idNamespaceName: String + /// A list of InputSource objects, which have the fields InputSourceARN and SchemaName. + public let inputSourceConfig: [IdNamespaceInputSource]? + /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to access the resources defined in inputSourceConfig on your behalf as part of the workflow run. + public let roleArn: String? + /// The tags used to organize, track, or control access for this resource. + public let tags: [String: String]? + /// The type of ID namespace. There are two types: SOURCE and TARGET. The SOURCE contains configurations for sourceId data that will be processed in an ID mapping workflow. The TARGET contains a configuration of targetId to which all sourceIds will resolve to. + public let type: IdNamespaceType + /// The timestamp of when the ID namespace was last updated. + public let updatedAt: Date + + public init(createdAt: Date, description: String? = nil, idMappingWorkflowProperties: [IdNamespaceIdMappingWorkflowProperties]? = nil, idNamespaceArn: String, idNamespaceName: String, inputSourceConfig: [IdNamespaceInputSource]? = nil, roleArn: String? = nil, tags: [String: String]? = nil, type: IdNamespaceType, updatedAt: Date) { + self.createdAt = createdAt + self.description = description + self.idMappingWorkflowProperties = idMappingWorkflowProperties + self.idNamespaceArn = idNamespaceArn + self.idNamespaceName = idNamespaceName + self.inputSourceConfig = inputSourceConfig + self.roleArn = roleArn + self.tags = tags + self.type = type + self.updatedAt = updatedAt + } + + private enum CodingKeys: String, CodingKey { + case createdAt = "createdAt" + case description = "description" + case idMappingWorkflowProperties = "idMappingWorkflowProperties" + case idNamespaceArn = "idNamespaceArn" + case idNamespaceName = "idNamespaceName" + case inputSourceConfig = "inputSourceConfig" + case roleArn = "roleArn" + case tags = "tags" + case type = "type" + case updatedAt = "updatedAt" + } + } + public struct CreateMatchingWorkflowInput: AWSEncodableShape { /// A description of the workflow. public let description: String? @@ -398,6 +680,42 @@ extension EntityResolution { } } + public struct DeleteIdNamespaceInput: AWSEncodableShape { + /// The name of the ID namespace. + public let idNamespaceName: String + + public init(idNamespaceName: String) { + self.idNamespaceName = idNamespaceName + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.idNamespaceName, key: "idNamespaceName") + } + + public func validate(name: String) throws { + try self.validate(self.idNamespaceName, name: "idNamespaceName", parent: name, max: 255) + try self.validate(self.idNamespaceName, name: "idNamespaceName", parent: name, min: 1) + try self.validate(self.idNamespaceName, name: "idNamespaceName", parent: name, pattern: "^[a-zA-Z_0-9-]*$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct DeleteIdNamespaceOutput: AWSDecodableShape { + /// A successful operation message. + public let message: String + + public init(message: String) { + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case message = "message" + } + } + public struct DeleteMatchingWorkflowInput: AWSEncodableShape { /// The name of the workflow to be retrieved. public let workflowName: String @@ -434,6 +752,55 @@ extension EntityResolution { } } + public struct DeletePolicyStatementInput: AWSEncodableShape { + /// The ARN of the resource for which the policy need to be deleted. + public let arn: String + /// A statement identifier that differentiates the statement from others in the same policy. + public let statementId: String + + public init(arn: String, statementId: String) { + self.arn = arn + self.statementId = statementId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.arn, key: "arn") + request.encodePath(self.statementId, key: "statementId") + } + + public func validate(name: String) throws { + try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:((schemamapping|matchingworkflow|idmappingworkflow|idnamespace)/[a-zA-Z_0-9-]{1,255})$") + try self.validate(self.statementId, name: "statementId", parent: name, max: 64) + try self.validate(self.statementId, name: "statementId", parent: name, min: 1) + try self.validate(self.statementId, name: "statementId", parent: name, pattern: "^[0-9A-Za-z]+$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct DeletePolicyStatementOutput: AWSDecodableShape { + /// The ARN of the resource for which the policy need to be deleted. + public let arn: String + /// The resource-based policy. + public let policy: String? + /// A unique identifier for the deleted policy. + public let token: String + + public init(arn: String, policy: String? = nil, token: String) { + self.arn = arn + self.policy = policy + self.token = token + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case policy = "policy" + case token = "token" + } + } + public struct DeleteSchemaMappingInput: AWSEncodableShape { /// The name of the schema to delete. public let schemaName: String @@ -470,6 +837,36 @@ extension EntityResolution { } } + public struct DeleteUniqueIdError: AWSDecodableShape { + /// The error type for the batch delete unique ID operation. + public let errorType: DeleteUniqueIdErrorType + /// The unique ID that could not be deleted. + public let uniqueId: String + + public init(errorType: DeleteUniqueIdErrorType, uniqueId: String) { + self.errorType = errorType + self.uniqueId = uniqueId + } + + private enum CodingKeys: String, CodingKey { + case errorType = "errorType" + case uniqueId = "uniqueId" + } + } + + public struct DeletedUniqueId: AWSDecodableShape { + /// The unique ID of the deleted item. + public let uniqueId: String + + public init(uniqueId: String) { + self.uniqueId = uniqueId + } + + private enum CodingKeys: String, CodingKey { + case uniqueId = "uniqueId" + } + } + public struct ErrorDetails: AWSDecodableShape { /// The error message from the job, if there is one. public let errorMessage: String? @@ -503,9 +900,7 @@ extension EntityResolution { public func validate(name: String) throws { try self.validate(self.jobId, name: "jobId", parent: name, pattern: "^[a-f0-9]{32}$") - try self.validate(self.workflowName, name: "workflowName", parent: name, max: 255) - try self.validate(self.workflowName, name: "workflowName", parent: name, min: 1) - try self.validate(self.workflowName, name: "workflowName", parent: name, pattern: "^[a-zA-Z_0-9-]*$") + try self.validate(self.workflowName, name: "workflowName", parent: name, pattern: "^[a-zA-Z_0-9-=+/]*$|^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(idmappingworkflow/[a-zA-Z_0-9-]{1,255})$") } private enum CodingKeys: CodingKey {} @@ -519,16 +914,19 @@ extension EntityResolution { public let jobId: String /// Metrics associated with the execution, specifically total records processed, unique IDs generated, and records the execution skipped. public let metrics: IdMappingJobMetrics? + /// A list of OutputSource objects. + public let outputSourceConfig: [IdMappingJobOutputSource]? /// The time at which the job was started. public let startTime: Date /// The current status of the job. public let status: JobStatus - public init(endTime: Date? = nil, errorDetails: ErrorDetails? = nil, jobId: String, metrics: IdMappingJobMetrics? = nil, startTime: Date, status: JobStatus) { + public init(endTime: Date? = nil, errorDetails: ErrorDetails? = nil, jobId: String, metrics: IdMappingJobMetrics? = nil, outputSourceConfig: [IdMappingJobOutputSource]? = nil, startTime: Date, status: JobStatus) { self.endTime = endTime self.errorDetails = errorDetails self.jobId = jobId self.metrics = metrics + self.outputSourceConfig = outputSourceConfig self.startTime = startTime self.status = status } @@ -538,6 +936,7 @@ extension EntityResolution { case errorDetails = "errorDetails" case jobId = "jobId" case metrics = "metrics" + case outputSourceConfig = "outputSourceConfig" case startTime = "startTime" case status = "status" } @@ -576,8 +975,8 @@ extension EntityResolution { /// A list of InputSource objects, which have the fields InputSourceARN and SchemaName. public let inputSourceConfig: [IdMappingWorkflowInputSource] /// A list of OutputSource objects, each of which contains fields OutputS3Path and KMSArn. - public let outputSourceConfig: [IdMappingWorkflowOutputSource] - /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to access resources on your behalf. + public let outputSourceConfig: [IdMappingWorkflowOutputSource]? + /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to access Amazon Web Services resources on your behalf. public let roleArn: String /// The tags used to organize, track, or control access for this resource. public let tags: [String: String]? @@ -588,7 +987,7 @@ extension EntityResolution { /// The name of the workflow. public let workflowName: String - public init(createdAt: Date, description: String? = nil, idMappingTechniques: IdMappingTechniques, inputSourceConfig: [IdMappingWorkflowInputSource], outputSourceConfig: [IdMappingWorkflowOutputSource], roleArn: String, tags: [String: String]? = nil, updatedAt: Date, workflowArn: String, workflowName: String) { + public init(createdAt: Date, description: String? = nil, idMappingTechniques: IdMappingTechniques, inputSourceConfig: [IdMappingWorkflowInputSource], outputSourceConfig: [IdMappingWorkflowOutputSource]? = nil, roleArn: String, tags: [String: String]? = nil, updatedAt: Date, workflowArn: String, workflowName: String) { self.createdAt = createdAt self.description = description self.idMappingTechniques = idMappingTechniques @@ -615,13 +1014,86 @@ extension EntityResolution { } } + public struct GetIdNamespaceInput: AWSEncodableShape { + /// The name of the ID namespace. + public let idNamespaceName: String + + public init(idNamespaceName: String) { + self.idNamespaceName = idNamespaceName + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.idNamespaceName, key: "idNamespaceName") + } + + public func validate(name: String) throws { + try self.validate(self.idNamespaceName, name: "idNamespaceName", parent: name, pattern: "^[a-zA-Z_0-9-=+/]*$|^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(idnamespace/[a-zA-Z_0-9-]{1,255})$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct GetIdNamespaceOutput: AWSDecodableShape { + /// The timestamp of when the ID namespace was created. + public let createdAt: Date + /// The description of the ID namespace. + public let description: String? + /// Determines the properties of IdMappingWorkflow where this IdNamespace can be used as a Source or a Target. + public let idMappingWorkflowProperties: [IdNamespaceIdMappingWorkflowProperties]? + /// The Amazon Resource Name (ARN) of the ID namespace. + public let idNamespaceArn: String + /// The name of the ID namespace. + public let idNamespaceName: String + /// A list of InputSource objects, which have the fields InputSourceARN and SchemaName. + public let inputSourceConfig: [IdNamespaceInputSource]? + /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to access the resources defined in this IdNamespace on your behalf as part of a workflow run. + public let roleArn: String? + /// The tags used to organize, track, or control access for this resource. + public let tags: [String: String]? + /// The type of ID namespace. There are two types: SOURCE and TARGET. The SOURCE contains configurations for sourceId data that will be processed in an ID mapping workflow. The TARGET contains a configuration of targetId to which all sourceIds will resolve to. + public let type: IdNamespaceType + /// The timestamp of when the ID namespace was last updated. + public let updatedAt: Date + + public init(createdAt: Date, description: String? = nil, idMappingWorkflowProperties: [IdNamespaceIdMappingWorkflowProperties]? = nil, idNamespaceArn: String, idNamespaceName: String, inputSourceConfig: [IdNamespaceInputSource]? = nil, roleArn: String? = nil, tags: [String: String]? = nil, type: IdNamespaceType, updatedAt: Date) { + self.createdAt = createdAt + self.description = description + self.idMappingWorkflowProperties = idMappingWorkflowProperties + self.idNamespaceArn = idNamespaceArn + self.idNamespaceName = idNamespaceName + self.inputSourceConfig = inputSourceConfig + self.roleArn = roleArn + self.tags = tags + self.type = type + self.updatedAt = updatedAt + } + + private enum CodingKeys: String, CodingKey { + case createdAt = "createdAt" + case description = "description" + case idMappingWorkflowProperties = "idMappingWorkflowProperties" + case idNamespaceArn = "idNamespaceArn" + case idNamespaceName = "idNamespaceName" + case inputSourceConfig = "inputSourceConfig" + case roleArn = "roleArn" + case tags = "tags" + case type = "type" + case updatedAt = "updatedAt" + } + } + public struct GetMatchIdInput: AWSEncodableShape { + /// Normalizes the attributes defined in the schema in the input data. For example, if an attribute has an AttributeType of PHONE_NUMBER, and the data in the input table is in a format of 1234567890, Entity Resolution will normalize this field in the output to (123)-456-7890. + public let applyNormalization: Bool? /// The record to fetch the Match ID for. public let record: [String: String] /// The name of the workflow. public let workflowName: String - public init(record: [String: String], workflowName: String) { + public init(applyNormalization: Bool? = nil, record: [String: String], workflowName: String) { + self.applyNormalization = applyNormalization self.record = record self.workflowName = workflowName } @@ -629,6 +1101,7 @@ extension EntityResolution { public func encode(to encoder: Encoder) throws { let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.applyNormalization, forKey: .applyNormalization) try container.encode(self.record, forKey: .record) request.encodePath(self.workflowName, key: "workflowName") } @@ -640,6 +1113,7 @@ extension EntityResolution { } private enum CodingKeys: String, CodingKey { + case applyNormalization = "applyNormalization" case record = "record" } } @@ -647,13 +1121,17 @@ extension EntityResolution { public struct GetMatchIdOutput: AWSDecodableShape { /// The unique identifiers for this group of match records. public let matchId: String? + /// The rule the record matched on. + public let matchRule: String? - public init(matchId: String? = nil) { + public init(matchId: String? = nil, matchRule: String? = nil) { self.matchId = matchId + self.matchRule = matchRule } private enum CodingKeys: String, CodingKey { case matchId = "matchId" + case matchRule = "matchRule" } } @@ -694,16 +1172,19 @@ extension EntityResolution { public let jobId: String /// Metrics associated with the execution, specifically total records processed, unique IDs generated, and records the execution skipped. public let metrics: JobMetrics? + /// A list of OutputSource objects. + public let outputSourceConfig: [JobOutputSource]? /// The time at which the job was started. public let startTime: Date /// The current status of the job. public let status: JobStatus - public init(endTime: Date? = nil, errorDetails: ErrorDetails? = nil, jobId: String, metrics: JobMetrics? = nil, startTime: Date, status: JobStatus) { + public init(endTime: Date? = nil, errorDetails: ErrorDetails? = nil, jobId: String, metrics: JobMetrics? = nil, outputSourceConfig: [JobOutputSource]? = nil, startTime: Date, status: JobStatus) { self.endTime = endTime self.errorDetails = errorDetails self.jobId = jobId self.metrics = metrics + self.outputSourceConfig = outputSourceConfig self.startTime = startTime self.status = status } @@ -713,6 +1194,7 @@ extension EntityResolution { case errorDetails = "errorDetails" case jobId = "jobId" case metrics = "metrics" + case outputSourceConfig = "outputSourceConfig" case startTime = "startTime" case status = "status" } @@ -754,7 +1236,7 @@ extension EntityResolution { public let outputSourceConfig: [OutputSource] /// An object which defines the resolutionType and the ruleBasedProperties. public let resolutionTechniques: ResolutionTechniques - /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to access resources on your behalf. + /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to access Amazon Web Services resources on your behalf. public let roleArn: String /// The tags used to organize, track, or control access for this resource. public let tags: [String: String]? @@ -794,6 +1276,48 @@ extension EntityResolution { } } + public struct GetPolicyInput: AWSEncodableShape { + /// The Amazon Resource Name (ARN) of the resource for which the policy need to be returned. + public let arn: String + + public init(arn: String) { + self.arn = arn + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.arn, key: "arn") + } + + public func validate(name: String) throws { + try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:((schemamapping|matchingworkflow|idmappingworkflow|idnamespace)/[a-zA-Z_0-9-]{1,255})$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct GetPolicyOutput: AWSDecodableShape { + /// The Entity Resolution resource ARN. + public let arn: String + /// The resource-based policy. + public let policy: String? + /// A unique identifier for the current revision of the policy. + public let token: String + + public init(arn: String, policy: String? = nil, token: String) { + self.arn = arn + self.policy = policy + self.token = token + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case policy = "policy" + case token = "token" + } + } + public struct GetProviderServiceInput: AWSEncodableShape { /// The name of the provider. This name is typically the company name. public let providerName: String @@ -818,7 +1342,7 @@ extension EntityResolution { try self.validate(self.providerName, name: "providerName", parent: name, pattern: "^[a-zA-Z_0-9-]*$") try self.validate(self.providerServiceName, name: "providerServiceName", parent: name, max: 255) try self.validate(self.providerServiceName, name: "providerServiceName", parent: name, min: 20) - try self.validate(self.providerServiceName, name: "providerServiceName", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z-]+?-[0-9])::providerservice/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$") + try self.validate(self.providerServiceName, name: "providerServiceName", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$") } private enum CodingKeys: CodingKey {} @@ -827,14 +1351,20 @@ extension EntityResolution { public struct GetProviderServiceOutput: AWSDecodableShape { /// Specifies whether output data from the provider is anonymized. A value of TRUE means the output will be anonymized and you can't relate the data that comes back from the provider to the identifying input. A value of FALSE means the output won't be anonymized and you can relate the data that comes back from the provider to your source data. public let anonymizedOutput: Bool + /// Input schema for the provider service. + public let providerComponentSchema: ProviderComponentSchema? /// The definition of the provider configuration. public let providerConfigurationDefinition: String? /// The required configuration fields to use with the provider service. public let providerEndpointConfiguration: ProviderEndpointConfiguration /// The definition of the provider entity output. public let providerEntityOutputDefinition: String + /// The provider configuration required for different ID namespace types. + public let providerIdNameSpaceConfiguration: ProviderIdNameSpaceConfiguration? /// The Amazon Web Services accounts and the S3 permissions that are required by some providers to create an S3 bucket for intermediate data storage. public let providerIntermediateDataAccessConfiguration: ProviderIntermediateDataAccessConfiguration? + /// Provider service job configurations. + public let providerJobConfiguration: String? /// The name of the provider. This name is typically the company name. public let providerName: String /// The ARN (Amazon Resource Name) that Entity Resolution generated for the provider service. @@ -846,12 +1376,15 @@ extension EntityResolution { /// The type of provider service. public let providerServiceType: ServiceType - public init(anonymizedOutput: Bool, providerConfigurationDefinition: String? = nil, providerEndpointConfiguration: ProviderEndpointConfiguration, providerEntityOutputDefinition: String, providerIntermediateDataAccessConfiguration: ProviderIntermediateDataAccessConfiguration? = nil, providerName: String, providerServiceArn: String, providerServiceDisplayName: String, providerServiceName: String, providerServiceType: ServiceType) { + public init(anonymizedOutput: Bool, providerComponentSchema: ProviderComponentSchema? = nil, providerConfigurationDefinition: String? = nil, providerEndpointConfiguration: ProviderEndpointConfiguration, providerEntityOutputDefinition: String, providerIdNameSpaceConfiguration: ProviderIdNameSpaceConfiguration? = nil, providerIntermediateDataAccessConfiguration: ProviderIntermediateDataAccessConfiguration? = nil, providerJobConfiguration: String? = nil, providerName: String, providerServiceArn: String, providerServiceDisplayName: String, providerServiceName: String, providerServiceType: ServiceType) { self.anonymizedOutput = anonymizedOutput + self.providerComponentSchema = providerComponentSchema self.providerConfigurationDefinition = providerConfigurationDefinition self.providerEndpointConfiguration = providerEndpointConfiguration self.providerEntityOutputDefinition = providerEntityOutputDefinition + self.providerIdNameSpaceConfiguration = providerIdNameSpaceConfiguration self.providerIntermediateDataAccessConfiguration = providerIntermediateDataAccessConfiguration + self.providerJobConfiguration = providerJobConfiguration self.providerName = providerName self.providerServiceArn = providerServiceArn self.providerServiceDisplayName = providerServiceDisplayName @@ -861,10 +1394,13 @@ extension EntityResolution { private enum CodingKeys: String, CodingKey { case anonymizedOutput = "anonymizedOutput" + case providerComponentSchema = "providerComponentSchema" case providerConfigurationDefinition = "providerConfigurationDefinition" case providerEndpointConfiguration = "providerEndpointConfiguration" case providerEntityOutputDefinition = "providerEntityOutputDefinition" + case providerIdNameSpaceConfiguration = "providerIdNameSpaceConfiguration" case providerIntermediateDataAccessConfiguration = "providerIntermediateDataAccessConfiguration" + case providerJobConfiguration = "providerJobConfiguration" case providerName = "providerName" case providerServiceArn = "providerServiceArn" case providerServiceDisplayName = "providerServiceDisplayName" @@ -958,19 +1494,147 @@ extension EntityResolution { } } - public struct IdMappingTechniques: AWSEncodableShape & AWSDecodableShape { + public struct IdMappingJobOutputSource: AWSEncodableShape & AWSDecodableShape { + /// Customer KMS ARN for encryption at rest. If not provided, system will use an Entity Resolution managed KMS key. + public let kmsArn: String? + /// The S3 path to which Entity Resolution will write the output table. + public let outputS3Path: String + /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to access Amazon Web Services resources on your behalf as part of workflow execution. + public let roleArn: String + + public init(kmsArn: String? = nil, outputS3Path: String, roleArn: String) { + self.kmsArn = kmsArn + self.outputS3Path = outputS3Path + self.roleArn = roleArn + } + + public func validate(name: String) throws { + try self.validate(self.kmsArn, name: "kmsArn", parent: name, pattern: "^arn:aws:kms:.*:[0-9]+:.*$") + try self.validate(self.outputS3Path, name: "outputS3Path", parent: name, max: 1024) + try self.validate(self.outputS3Path, name: "outputS3Path", parent: name, min: 1) + try self.validate(self.outputS3Path, name: "outputS3Path", parent: name, pattern: "^s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?$") + try self.validate(self.roleArn, name: "roleArn", parent: name, max: 512) + try self.validate(self.roleArn, name: "roleArn", parent: name, min: 32) + try self.validate(self.roleArn, name: "roleArn", parent: name, pattern: "^arn:aws:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$") + } + + private enum CodingKeys: String, CodingKey { + case kmsArn = "KMSArn" + case outputS3Path = "outputS3Path" + case roleArn = "roleArn" + } + } + + public struct IdMappingTechniques: AWSEncodableShape & AWSDecodableShape { + /// The type of ID mapping. + public let idMappingType: IdMappingType + /// An object which defines any additional configurations required by the provider service. + public let providerProperties: ProviderProperties? + + public init(idMappingType: IdMappingType, providerProperties: ProviderProperties? = nil) { + self.idMappingType = idMappingType + self.providerProperties = providerProperties + } + + public func validate(name: String) throws { + try self.providerProperties?.validate(name: "\(name).providerProperties") + } + + private enum CodingKeys: String, CodingKey { + case idMappingType = "idMappingType" + case providerProperties = "providerProperties" + } + } + + public struct IdMappingWorkflowInputSource: AWSEncodableShape & AWSDecodableShape { + /// An Glue table ARN for the input source table. + public let inputSourceARN: String + /// The name of the schema to be retrieved. + public let schemaName: String? + /// The type of ID namespace. There are two types: SOURCE and TARGET. The SOURCE contains configurations for sourceId data that will be processed in an ID mapping workflow. The TARGET contains a configuration of targetId to which all sourceIds will resolve to. + public let type: IdNamespaceType? + + public init(inputSourceARN: String, schemaName: String? = nil, type: IdNamespaceType? = nil) { + self.inputSourceARN = inputSourceARN + self.schemaName = schemaName + self.type = type + } + + public func validate(name: String) throws { + try self.validate(self.schemaName, name: "schemaName", parent: name, max: 255) + try self.validate(self.schemaName, name: "schemaName", parent: name, min: 1) + try self.validate(self.schemaName, name: "schemaName", parent: name, pattern: "^[a-zA-Z_0-9-]*$") + } + + private enum CodingKeys: String, CodingKey { + case inputSourceARN = "inputSourceARN" + case schemaName = "schemaName" + case type = "type" + } + } + + public struct IdMappingWorkflowOutputSource: AWSEncodableShape & AWSDecodableShape { + /// Customer KMS ARN for encryption at rest. If not provided, system will use an Entity Resolution managed KMS key. + public let kmsArn: String? + /// The S3 path to which Entity Resolution will write the output table. + public let outputS3Path: String + + public init(kmsArn: String? = nil, outputS3Path: String) { + self.kmsArn = kmsArn + self.outputS3Path = outputS3Path + } + + public func validate(name: String) throws { + try self.validate(self.kmsArn, name: "kmsArn", parent: name, pattern: "^arn:aws:kms:.*:[0-9]+:.*$") + try self.validate(self.outputS3Path, name: "outputS3Path", parent: name, max: 1024) + try self.validate(self.outputS3Path, name: "outputS3Path", parent: name, min: 1) + try self.validate(self.outputS3Path, name: "outputS3Path", parent: name, pattern: "^s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?$") + } + + private enum CodingKeys: String, CodingKey { + case kmsArn = "KMSArn" + case outputS3Path = "outputS3Path" + } + } + + public struct IdMappingWorkflowSummary: AWSDecodableShape { + /// The timestamp of when the workflow was created. + public let createdAt: Date + /// The timestamp of when the workflow was last updated. + public let updatedAt: Date + /// The ARN (Amazon Resource Name) that Entity Resolution generated for the IdMappingWorkflow. + public let workflowArn: String + /// The name of the workflow. + public let workflowName: String + + public init(createdAt: Date, updatedAt: Date, workflowArn: String, workflowName: String) { + self.createdAt = createdAt + self.updatedAt = updatedAt + self.workflowArn = workflowArn + self.workflowName = workflowName + } + + private enum CodingKeys: String, CodingKey { + case createdAt = "createdAt" + case updatedAt = "updatedAt" + case workflowArn = "workflowArn" + case workflowName = "workflowName" + } + } + + public struct IdNamespaceIdMappingWorkflowProperties: AWSEncodableShape & AWSDecodableShape { /// The type of ID mapping. public let idMappingType: IdMappingType /// An object which defines any additional configurations required by the provider service. - public let providerProperties: ProviderProperties + public let providerProperties: NamespaceProviderProperties? - public init(idMappingType: IdMappingType, providerProperties: ProviderProperties) { + public init(idMappingType: IdMappingType, providerProperties: NamespaceProviderProperties? = nil) { self.idMappingType = idMappingType self.providerProperties = providerProperties } public func validate(name: String) throws { - try self.providerProperties.validate(name: "\(name).providerProperties") + try self.providerProperties?.validate(name: "\(name).providerProperties") } private enum CodingKeys: String, CodingKey { @@ -979,13 +1643,13 @@ extension EntityResolution { } } - public struct IdMappingWorkflowInputSource: AWSEncodableShape & AWSDecodableShape { - /// An Gluetable ARN for the input source table. + public struct IdNamespaceInputSource: AWSEncodableShape & AWSDecodableShape { + /// An Glue table ARN for the input source table. public let inputSourceARN: String - /// The name of the schema to be retrieved. - public let schemaName: String + /// The name of the schema. + public let schemaName: String? - public init(inputSourceARN: String, schemaName: String) { + public init(inputSourceARN: String, schemaName: String? = nil) { self.inputSourceARN = inputSourceARN self.schemaName = schemaName } @@ -1002,52 +1666,36 @@ extension EntityResolution { } } - public struct IdMappingWorkflowOutputSource: AWSEncodableShape & AWSDecodableShape { - /// Customer KMS ARN for encryption at rest. If not provided, system will use an Entity Resolution managed KMS key. - public let kmsArn: String? - /// The S3 path to which Entity Resolution will write the output table. - public let outputS3Path: String - - public init(kmsArn: String? = nil, outputS3Path: String) { - self.kmsArn = kmsArn - self.outputS3Path = outputS3Path - } - - public func validate(name: String) throws { - try self.validate(self.kmsArn, name: "kmsArn", parent: name, pattern: "^arn:aws:kms:.*:[0-9]+:.*$") - try self.validate(self.outputS3Path, name: "outputS3Path", parent: name, max: 1024) - try self.validate(self.outputS3Path, name: "outputS3Path", parent: name, min: 1) - try self.validate(self.outputS3Path, name: "outputS3Path", parent: name, pattern: "^s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?$") - } - - private enum CodingKeys: String, CodingKey { - case kmsArn = "KMSArn" - case outputS3Path = "outputS3Path" - } - } - - public struct IdMappingWorkflowSummary: AWSDecodableShape { - /// The timestamp of when the workflow was created. + public struct IdNamespaceSummary: AWSDecodableShape { + /// The timestamp of when the ID namespace was created. public let createdAt: Date - /// The timestamp of when the workflow was last updated. + /// The description of the ID namespace. + public let description: String? + /// The Amazon Resource Name (ARN) of the ID namespace. + public let idNamespaceArn: String + /// The name of the ID namespace. + public let idNamespaceName: String + /// The type of ID namespace. There are two types: SOURCE and TARGET. The SOURCE contains configurations for sourceId data that will be processed in an ID mapping workflow. The TARGET contains a configuration of targetId to which all sourceIds will resolve to. + public let type: IdNamespaceType + /// The timestamp of when the ID namespace was last updated. public let updatedAt: Date - /// The ARN (Amazon Resource Name) that Entity Resolution generated for the IdMappingWorkflow. - public let workflowArn: String - /// The name of the workflow. - public let workflowName: String - public init(createdAt: Date, updatedAt: Date, workflowArn: String, workflowName: String) { + public init(createdAt: Date, description: String? = nil, idNamespaceArn: String, idNamespaceName: String, type: IdNamespaceType, updatedAt: Date) { self.createdAt = createdAt + self.description = description + self.idNamespaceArn = idNamespaceArn + self.idNamespaceName = idNamespaceName + self.type = type self.updatedAt = updatedAt - self.workflowArn = workflowArn - self.workflowName = workflowName } private enum CodingKeys: String, CodingKey { case createdAt = "createdAt" + case description = "description" + case idNamespaceArn = "idNamespaceArn" + case idNamespaceName = "idNamespaceName" + case type = "type" case updatedAt = "updatedAt" - case workflowArn = "workflowArn" - case workflowName = "workflowName" } } @@ -1135,6 +1783,27 @@ extension EntityResolution { } } + public struct JobOutputSource: AWSDecodableShape { + /// Customer KMS ARN for encryption at rest. If not provided, system will use an Entity Resolution managed KMS key. + public let kmsArn: String? + /// The S3 path to which Entity Resolution will write the output table. + public let outputS3Path: String + /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to access Amazon Web Services resources on your behalf as part of workflow execution. + public let roleArn: String + + public init(kmsArn: String? = nil, outputS3Path: String, roleArn: String) { + self.kmsArn = kmsArn + self.outputS3Path = outputS3Path + self.roleArn = roleArn + } + + private enum CodingKeys: String, CodingKey { + case kmsArn = "KMSArn" + case outputS3Path = "outputS3Path" + case roleArn = "roleArn" + } + } + public struct JobSummary: AWSDecodableShape { /// The time at which the job has finished. public let endTime: Date? @@ -1186,9 +1855,7 @@ extension EntityResolution { try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1024) try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^[a-zA-Z_0-9-=+/]*$") - try self.validate(self.workflowName, name: "workflowName", parent: name, max: 255) - try self.validate(self.workflowName, name: "workflowName", parent: name, min: 1) - try self.validate(self.workflowName, name: "workflowName", parent: name, pattern: "^[a-zA-Z_0-9-]*$") + try self.validate(self.workflowName, name: "workflowName", parent: name, pattern: "^[a-zA-Z_0-9-=+/]*$|^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(idmappingworkflow/[a-zA-Z_0-9-]{1,255})$") } private enum CodingKeys: CodingKey {} @@ -1255,6 +1922,50 @@ extension EntityResolution { } } + public struct ListIdNamespacesInput: AWSEncodableShape { + /// The maximum number of IdNamespace objects returned per page. + public let maxResults: Int? + /// The pagination token from the previous API call. + public let nextToken: String? + + public init(maxResults: Int? = nil, nextToken: String? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.maxResults, key: "maxResults") + request.encodeQuery(self.nextToken, key: "nextToken") + } + + public func validate(name: String) throws { + try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1024) + try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^[a-zA-Z_0-9-=+/]*$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListIdNamespacesOutput: AWSDecodableShape { + /// A list of IdNamespaceSummaries objects. + public let idNamespaceSummaries: [IdNamespaceSummary]? + /// The pagination token from the previous API call. + public let nextToken: String? + + public init(idNamespaceSummaries: [IdNamespaceSummary]? = nil, nextToken: String? = nil) { + self.idNamespaceSummaries = idNamespaceSummaries + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case idNamespaceSummaries = "idNamespaceSummaries" + case nextToken = "nextToken" + } + } + public struct ListMatchingJobsInput: AWSEncodableShape { /// The maximum number of objects returned per page. public let maxResults: Int? @@ -1460,7 +2171,7 @@ extension EntityResolution { } public func validate(name: String) throws { - try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):.*:[0-9]+:((schemamapping|matchingworkflow|idmappingworkflow)/[a-zA-Z0-9_-]+)$") + try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:((schemamapping|matchingworkflow|idmappingworkflow|idnamespace)/[a-zA-Z_0-9-]{1,255})$") } private enum CodingKeys: CodingKey {} @@ -1508,6 +2219,29 @@ extension EntityResolution { } } + public struct NamespaceProviderProperties: AWSEncodableShape & AWSDecodableShape { + /// An object which defines any additional configurations required by the provider service. + public let providerConfiguration: String? + /// The Amazon Resource Name (ARN) of the provider service. + public let providerServiceArn: String + + public init(providerConfiguration: String? = nil, providerServiceArn: String) { + self.providerConfiguration = providerConfiguration + self.providerServiceArn = providerServiceArn + } + + public func validate(name: String) throws { + try self.validate(self.providerServiceArn, name: "providerServiceArn", parent: name, max: 255) + try self.validate(self.providerServiceArn, name: "providerServiceArn", parent: name, min: 20) + try self.validate(self.providerServiceArn, name: "providerServiceArn", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$") + } + + private enum CodingKeys: String, CodingKey { + case providerConfiguration = "providerConfiguration" + case providerServiceArn = "providerServiceArn" + } + } + public struct OutputAttribute: AWSEncodableShape & AWSDecodableShape { /// Enables the ability to hash the column values in the output. public let hashed: Bool? @@ -1565,6 +2299,44 @@ extension EntityResolution { } } + public struct ProviderComponentSchema: AWSDecodableShape { + /// The provider schema attributes. + public let providerSchemaAttributes: [ProviderSchemaAttribute]? + /// Input schema for the provider service. + public let schemas: [[String]]? + + public init(providerSchemaAttributes: [ProviderSchemaAttribute]? = nil, schemas: [[String]]? = nil) { + self.providerSchemaAttributes = providerSchemaAttributes + self.schemas = schemas + } + + private enum CodingKeys: String, CodingKey { + case providerSchemaAttributes = "providerSchemaAttributes" + case schemas = "schemas" + } + } + + public struct ProviderIdNameSpaceConfiguration: AWSDecodableShape { + /// The description of the ID namespace. + public let description: String? + /// Configurations required for the source ID namespace. + public let providerSourceConfigurationDefinition: String? + /// Configurations required for the target ID namespace. + public let providerTargetConfigurationDefinition: String? + + public init(description: String? = nil, providerSourceConfigurationDefinition: String? = nil, providerTargetConfigurationDefinition: String? = nil) { + self.description = description + self.providerSourceConfigurationDefinition = providerSourceConfigurationDefinition + self.providerTargetConfigurationDefinition = providerTargetConfigurationDefinition + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case providerSourceConfigurationDefinition = "providerSourceConfigurationDefinition" + case providerTargetConfigurationDefinition = "providerTargetConfigurationDefinition" + } + } + public struct ProviderIntermediateDataAccessConfiguration: AWSDecodableShape { /// The Amazon Web Services account that provider can use to read or write data into the customer's intermediate S3 bucket. public let awsAccountIds: [String]? @@ -1625,7 +2397,7 @@ extension EntityResolution { try self.intermediateSourceConfiguration?.validate(name: "\(name).intermediateSourceConfiguration") try self.validate(self.providerServiceArn, name: "providerServiceArn", parent: name, max: 255) try self.validate(self.providerServiceArn, name: "providerServiceArn", parent: name, min: 20) - try self.validate(self.providerServiceArn, name: "providerServiceArn", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z-]+?-[0-9])::providerservice/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$") + try self.validate(self.providerServiceArn, name: "providerServiceArn", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$") } private enum CodingKeys: String, CodingKey { @@ -1635,6 +2407,31 @@ extension EntityResolution { } } + public struct ProviderSchemaAttribute: AWSDecodableShape { + /// The field name. + public let fieldName: String + /// The hashing attribute of the provider schema. + public let hashing: Bool? + /// The sub type of the provider schema attribute. + public let subType: String? + /// The type of the provider schema attribute. + public let type: SchemaAttributeType + + public init(fieldName: String, hashing: Bool? = nil, subType: String? = nil, type: SchemaAttributeType) { + self.fieldName = fieldName + self.hashing = hashing + self.subType = subType + self.type = type + } + + private enum CodingKeys: String, CodingKey { + case fieldName = "fieldName" + case hashing = "hashing" + case subType = "subType" + case type = "type" + } + } + public struct ProviderServiceSummary: AWSDecodableShape { /// The name of the provider. This name is typically the company name. public let providerName: String @@ -1664,10 +2461,68 @@ extension EntityResolution { } } + public struct PutPolicyInput: AWSEncodableShape { + /// The Amazon Resource Name (ARN) of the resource for which the policy needs to be updated. + public let arn: String + /// The resource-based policy. + public let policy: String + /// A unique identifier for the current revision of the policy. + public let token: String? + + public init(arn: String, policy: String, token: String? = nil) { + self.arn = arn + self.policy = policy + self.token = token + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.arn, key: "arn") + try container.encode(self.policy, forKey: .policy) + try container.encodeIfPresent(self.token, forKey: .token) + } + + public func validate(name: String) throws { + try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:((schemamapping|matchingworkflow|idmappingworkflow|idnamespace)/[a-zA-Z_0-9-]{1,255})$") + try self.validate(self.policy, name: "policy", parent: name, max: 40960) + try self.validate(self.policy, name: "policy", parent: name, min: 1) + try self.validate(self.token, name: "token", parent: name, max: 36) + try self.validate(self.token, name: "token", parent: name, min: 36) + try self.validate(self.token, name: "token", parent: name, 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}$") + } + + private enum CodingKeys: String, CodingKey { + case policy = "policy" + case token = "token" + } + } + + public struct PutPolicyOutput: AWSDecodableShape { + /// The Entity Resolution resource ARN. + public let arn: String + /// The resource-based policy. + public let policy: String? + /// A unique identifier for the current revision of the policy. + public let token: String + + public init(arn: String, policy: String? = nil, token: String) { + self.arn = arn + self.policy = policy + self.token = token + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case policy = "policy" + case token = "token" + } + } + public struct ResolutionTechniques: AWSEncodableShape & AWSDecodableShape { /// The properties of the provider service. public let providerProperties: ProviderProperties? - /// The type of matching. There are two types of matching: RULE_MATCHING and ML_MATCHING. + /// The type of matching. There are three types of matching: RULE_MATCHING, ML_MATCHING, and PROVIDER. public let resolutionType: ResolutionType /// An object which defines the list of matching rules to run and has a field Rules, which is a list of rule objects. public let ruleBasedProperties: RuleBasedProperties? @@ -1740,9 +2595,9 @@ extension EntityResolution { public struct SchemaInputAttribute: AWSEncodableShape & AWSDecodableShape { /// A string containing the field name. public let fieldName: String - /// Instruct Entity Resolution to combine several columns into a unified column with the identical attribute type. For example, when working with columns such as first_name, middle_name, and last_name, assigning them a common GroupName will prompt Entity Resolution to concatenate them into a single value. + /// A string that instructs Entity Resolution to combine several columns into a unified column with the identical attribute type. For example, when working with columns such as first_name, middle_name, and last_name, assigning them a common groupName will prompt Entity Resolution to concatenate them into a single value. public let groupName: String? - /// A key that allows grouping of multiple input attributes into a unified matching group. For example, let's consider a scenario where the source table contains various addresses, such as business_address and shipping_address. By assigning the MatchKey Address to both attributes, Entity Resolution will match records across these fields to create a consolidated matching group. If no MatchKey is specified for a column, it won't be utilized for matching purposes but will still be included in the output table. + /// A key that allows grouping of multiple input attributes into a unified matching group. For example, consider a scenario where the source table contains various addresses, such as business_address and shipping_address. By assigning a matchKey called address to both attributes, Entity Resolution will match records across these fields to create a consolidated matching group. If no matchKey is specified for a column, it won't be utilized for matching purposes but will still be included in the output table. public let matchKey: String? /// The subtype of the attribute, selected from a list of values. public let subType: String? @@ -1807,38 +2662,51 @@ extension EntityResolution { } public struct StartIdMappingJobInput: AWSEncodableShape { + /// A list of OutputSource objects. + public let outputSourceConfig: [IdMappingJobOutputSource]? /// The name of the ID mapping job to be retrieved. public let workflowName: String - public init(workflowName: String) { + public init(outputSourceConfig: [IdMappingJobOutputSource]? = nil, workflowName: String) { + self.outputSourceConfig = outputSourceConfig self.workflowName = workflowName } public func encode(to encoder: Encoder) throws { let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer - _ = encoder.container(keyedBy: CodingKeys.self) + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.outputSourceConfig, forKey: .outputSourceConfig) request.encodePath(self.workflowName, key: "workflowName") } public func validate(name: String) throws { - try self.validate(self.workflowName, name: "workflowName", parent: name, max: 255) - try self.validate(self.workflowName, name: "workflowName", parent: name, min: 1) - try self.validate(self.workflowName, name: "workflowName", parent: name, pattern: "^[a-zA-Z_0-9-]*$") + try self.outputSourceConfig?.forEach { + try $0.validate(name: "\(name).outputSourceConfig[]") + } + try self.validate(self.outputSourceConfig, name: "outputSourceConfig", parent: name, max: 1) + try self.validate(self.outputSourceConfig, name: "outputSourceConfig", parent: name, min: 1) + try self.validate(self.workflowName, name: "workflowName", parent: name, pattern: "^[a-zA-Z_0-9-=+/]*$|^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(idmappingworkflow/[a-zA-Z_0-9-]{1,255})$") } - private enum CodingKeys: CodingKey {} + private enum CodingKeys: String, CodingKey { + case outputSourceConfig = "outputSourceConfig" + } } public struct StartIdMappingJobOutput: AWSDecodableShape { /// The ID of the job. public let jobId: String + /// A list of OutputSource objects. + public let outputSourceConfig: [IdMappingJobOutputSource]? - public init(jobId: String) { + public init(jobId: String, outputSourceConfig: [IdMappingJobOutputSource]? = nil) { self.jobId = jobId + self.outputSourceConfig = outputSourceConfig } private enum CodingKeys: String, CodingKey { case jobId = "jobId" + case outputSourceConfig = "outputSourceConfig" } } @@ -1897,7 +2765,7 @@ extension EntityResolution { } public func validate(name: String) throws { - try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):.*:[0-9]+:((schemamapping|matchingworkflow|idmappingworkflow)/[a-zA-Z0-9_-]+)$") + try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:((schemamapping|matchingworkflow|idmappingworkflow|idnamespace)/[a-zA-Z_0-9-]{1,255})$") try self.tags.forEach { try validate($0.key, name: "tags.key", parent: name, max: 128) try validate($0.key, name: "tags.key", parent: name, min: 1) @@ -1934,7 +2802,7 @@ extension EntityResolution { } public func validate(name: String) throws { - try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):.*:[0-9]+:((schemamapping|matchingworkflow|idmappingworkflow)/[a-zA-Z0-9_-]+)$") + try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:((schemamapping|matchingworkflow|idmappingworkflow|idnamespace)/[a-zA-Z_0-9-]{1,255})$") try self.tagKeys.forEach { try validate($0, name: "tagKeys[]", parent: name, max: 128) try validate($0, name: "tagKeys[]", parent: name, min: 1) @@ -1957,13 +2825,13 @@ extension EntityResolution { /// A list of InputSource objects, which have the fields InputSourceARN and SchemaName. public let inputSourceConfig: [IdMappingWorkflowInputSource] /// A list of OutputSource objects, each of which contains fields OutputS3Path and KMSArn. - public let outputSourceConfig: [IdMappingWorkflowOutputSource] - /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to access resources on your behalf. + public let outputSourceConfig: [IdMappingWorkflowOutputSource]? + /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to access Amazon Web Services resources on your behalf. public let roleArn: String /// The name of the workflow. public let workflowName: String - public init(description: String? = nil, idMappingTechniques: IdMappingTechniques, inputSourceConfig: [IdMappingWorkflowInputSource], outputSourceConfig: [IdMappingWorkflowOutputSource], roleArn: String, workflowName: String) { + public init(description: String? = nil, idMappingTechniques: IdMappingTechniques, inputSourceConfig: [IdMappingWorkflowInputSource], outputSourceConfig: [IdMappingWorkflowOutputSource]? = nil, roleArn: String, workflowName: String) { self.description = description self.idMappingTechniques = idMappingTechniques self.inputSourceConfig = inputSourceConfig @@ -1978,7 +2846,7 @@ extension EntityResolution { try container.encodeIfPresent(self.description, forKey: .description) try container.encode(self.idMappingTechniques, forKey: .idMappingTechniques) try container.encode(self.inputSourceConfig, forKey: .inputSourceConfig) - try container.encode(self.outputSourceConfig, forKey: .outputSourceConfig) + try container.encodeIfPresent(self.outputSourceConfig, forKey: .outputSourceConfig) try container.encode(self.roleArn, forKey: .roleArn) request.encodePath(self.workflowName, key: "workflowName") } @@ -1991,11 +2859,13 @@ extension EntityResolution { } try self.validate(self.inputSourceConfig, name: "inputSourceConfig", parent: name, max: 20) try self.validate(self.inputSourceConfig, name: "inputSourceConfig", parent: name, min: 1) - try self.outputSourceConfig.forEach { + try self.outputSourceConfig?.forEach { try $0.validate(name: "\(name).outputSourceConfig[]") } try self.validate(self.outputSourceConfig, name: "outputSourceConfig", parent: name, max: 1) try self.validate(self.outputSourceConfig, name: "outputSourceConfig", parent: name, min: 1) + try self.validate(self.roleArn, name: "roleArn", parent: name, max: 512) + try self.validate(self.roleArn, name: "roleArn", parent: name, min: 32) try self.validate(self.roleArn, name: "roleArn", parent: name, pattern: "^arn:aws:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$") try self.validate(self.workflowName, name: "workflowName", parent: name, max: 255) try self.validate(self.workflowName, name: "workflowName", parent: name, min: 1) @@ -2019,15 +2889,15 @@ extension EntityResolution { /// A list of InputSource objects, which have the fields InputSourceARN and SchemaName. public let inputSourceConfig: [IdMappingWorkflowInputSource] /// A list of OutputSource objects, each of which contains fields OutputS3Path and KMSArn. - public let outputSourceConfig: [IdMappingWorkflowOutputSource] - /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to access resources on your behalf. + public let outputSourceConfig: [IdMappingWorkflowOutputSource]? + /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to access Amazon Web Services resources on your behalf. public let roleArn: String - /// The Amazon Resource Name (ARN) of the workflow role. Entity Resolution assumes this role to access resources on your behalf. + /// The Amazon Resource Name (ARN) of the workflow role. Entity Resolution assumes this role to access Amazon Web Services resources on your behalf. public let workflowArn: String /// The name of the workflow. public let workflowName: String - public init(description: String? = nil, idMappingTechniques: IdMappingTechniques, inputSourceConfig: [IdMappingWorkflowInputSource], outputSourceConfig: [IdMappingWorkflowOutputSource], roleArn: String, workflowArn: String, workflowName: String) { + public init(description: String? = nil, idMappingTechniques: IdMappingTechniques, inputSourceConfig: [IdMappingWorkflowInputSource], outputSourceConfig: [IdMappingWorkflowOutputSource]? = nil, roleArn: String, workflowArn: String, workflowName: String) { self.description = description self.idMappingTechniques = idMappingTechniques self.inputSourceConfig = inputSourceConfig @@ -2048,6 +2918,108 @@ extension EntityResolution { } } + public struct UpdateIdNamespaceInput: AWSEncodableShape { + /// The description of the ID namespace. + public let description: String? + /// Determines the properties of IdMappingWorkflow where this IdNamespace can be used as a Source or a Target. + public let idMappingWorkflowProperties: [IdNamespaceIdMappingWorkflowProperties]? + /// The name of the ID namespace. + public let idNamespaceName: String + /// A list of InputSource objects, which have the fields InputSourceARN and SchemaName. + public let inputSourceConfig: [IdNamespaceInputSource]? + /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to access the resources defined in this IdNamespace on your behalf as part of a workflow run. + public let roleArn: String? + + public init(description: String? = nil, idMappingWorkflowProperties: [IdNamespaceIdMappingWorkflowProperties]? = nil, idNamespaceName: String, inputSourceConfig: [IdNamespaceInputSource]? = nil, roleArn: String? = nil) { + self.description = description + self.idMappingWorkflowProperties = idMappingWorkflowProperties + self.idNamespaceName = idNamespaceName + self.inputSourceConfig = inputSourceConfig + self.roleArn = roleArn + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.description, forKey: .description) + try container.encodeIfPresent(self.idMappingWorkflowProperties, forKey: .idMappingWorkflowProperties) + request.encodePath(self.idNamespaceName, key: "idNamespaceName") + try container.encodeIfPresent(self.inputSourceConfig, forKey: .inputSourceConfig) + try container.encodeIfPresent(self.roleArn, forKey: .roleArn) + } + + public func validate(name: String) throws { + try self.validate(self.description, name: "description", parent: name, max: 255) + try self.idMappingWorkflowProperties?.forEach { + try $0.validate(name: "\(name).idMappingWorkflowProperties[]") + } + try self.validate(self.idMappingWorkflowProperties, name: "idMappingWorkflowProperties", parent: name, max: 1) + try self.validate(self.idMappingWorkflowProperties, name: "idMappingWorkflowProperties", parent: name, min: 1) + try self.validate(self.idNamespaceName, name: "idNamespaceName", parent: name, max: 255) + try self.validate(self.idNamespaceName, name: "idNamespaceName", parent: name, min: 1) + try self.validate(self.idNamespaceName, name: "idNamespaceName", parent: name, pattern: "^[a-zA-Z_0-9-]*$") + try self.inputSourceConfig?.forEach { + try $0.validate(name: "\(name).inputSourceConfig[]") + } + try self.validate(self.inputSourceConfig, name: "inputSourceConfig", parent: name, max: 20) + try self.validate(self.roleArn, name: "roleArn", parent: name, max: 512) + try self.validate(self.roleArn, name: "roleArn", parent: name, min: 32) + try self.validate(self.roleArn, name: "roleArn", parent: name, pattern: "^arn:aws:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$") + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case idMappingWorkflowProperties = "idMappingWorkflowProperties" + case inputSourceConfig = "inputSourceConfig" + case roleArn = "roleArn" + } + } + + public struct UpdateIdNamespaceOutput: AWSDecodableShape { + /// The timestamp of when the ID namespace was created. + public let createdAt: Date + /// The description of the ID namespace. + public let description: String? + /// Determines the properties of IdMappingWorkflow where this IdNamespace can be used as a Source or a Target. + public let idMappingWorkflowProperties: [IdNamespaceIdMappingWorkflowProperties]? + /// The Amazon Resource Name (ARN) of the ID namespace. + public let idNamespaceArn: String + /// The name of the ID namespace. + public let idNamespaceName: String + /// A list of InputSource objects, which have the fields InputSourceARN and SchemaName. + public let inputSourceConfig: [IdNamespaceInputSource]? + /// The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes this role to access the resources defined in this IdNamespace on your behalf as part of a workflow run. + public let roleArn: String? + /// The type of ID namespace. There are two types: SOURCE and TARGET. The SOURCE contains configurations for sourceId data that will be processed in an ID mapping workflow. The TARGET contains a configuration of targetId to which all sourceIds will resolve to. + public let type: IdNamespaceType + /// The timestamp of when the ID namespace was last updated. + public let updatedAt: Date + + public init(createdAt: Date, description: String? = nil, idMappingWorkflowProperties: [IdNamespaceIdMappingWorkflowProperties]? = nil, idNamespaceArn: String, idNamespaceName: String, inputSourceConfig: [IdNamespaceInputSource]? = nil, roleArn: String? = nil, type: IdNamespaceType, updatedAt: Date) { + self.createdAt = createdAt + self.description = description + self.idMappingWorkflowProperties = idMappingWorkflowProperties + self.idNamespaceArn = idNamespaceArn + self.idNamespaceName = idNamespaceName + self.inputSourceConfig = inputSourceConfig + self.roleArn = roleArn + self.type = type + self.updatedAt = updatedAt + } + + private enum CodingKeys: String, CodingKey { + case createdAt = "createdAt" + case description = "description" + case idMappingWorkflowProperties = "idMappingWorkflowProperties" + case idNamespaceArn = "idNamespaceArn" + case idNamespaceName = "idNamespaceName" + case inputSourceConfig = "inputSourceConfig" + case roleArn = "roleArn" + case type = "type" + case updatedAt = "updatedAt" + } + } + public struct UpdateMatchingWorkflowInput: AWSEncodableShape { /// A description of the workflow. public let description: String? diff --git a/Sources/Soto/Services/FMS/FMS_api.swift b/Sources/Soto/Services/FMS/FMS_api.swift index 8739138466..32dae2d3b4 100644 --- a/Sources/Soto/Services/FMS/FMS_api.swift +++ b/Sources/Soto/Services/FMS/FMS_api.swift @@ -257,7 +257,7 @@ public struct FMS: AWSService { ) } - /// Returns information about the specified account's administrative scope. The admistrative scope defines the resources that an Firewall Manager administrator can manage. + /// Returns information about the specified account's administrative scope. The administrative scope defines the resources that an Firewall Manager administrator can manage. @Sendable public func getAdminScope(_ input: GetAdminScopeRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetAdminScopeResponse { return try await self.client.execute( @@ -283,7 +283,7 @@ public struct FMS: AWSService { ) } - /// Returns detailed compliance information about the specified member account. Details include resources that are in and out of compliance with the specified policy. Resources are considered noncompliant for WAF and Shield Advanced policies if the specified policy has not been applied to them. Resources are considered noncompliant for security group policies if they are in scope of the policy, they violate one or more of the policy rules, and remediation is disabled or not possible. Resources are considered noncompliant for Network Firewall policies if a firewall is missing in the VPC, if the firewall endpoint isn't set up in an expected Availability Zone and subnet, if a subnet created by the Firewall Manager doesn't have the expected route table, and for modifications to a firewall policy that violate the Firewall Manager policy's rules. Resources are considered noncompliant for DNS Firewall policies if a DNS Firewall rule group is missing from the rule group associations for the VPC. + /// Returns detailed compliance information about the specified member account. Details include resources that are in and out of compliance with the specified policy. The reasons for resources being considered compliant depend on the Firewall Manager policy type. @Sendable public func getComplianceDetail(_ input: GetComplianceDetailRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetComplianceDetailResponse { return try await self.client.execute( @@ -586,10 +586,13 @@ public struct FMS: AWSService { /// policy types across accounts, you can create multiple policies. You can create more than one /// policy for each type. If you add a new account to an organization that you created with Organizations, Firewall Manager /// automatically applies the policy to the resources in that account that are within scope of - /// the policy. Firewall Manager provides the following types of policies: Shield Advanced policy - This policy applies Shield Advanced + /// the policy. Firewall Manager provides the following types of policies: WAF policy - This policy applies WAF web ACL + /// protections to specified accounts and resources. Shield Advanced policy - This policy applies Shield Advanced /// protection to specified accounts and resources. Security Groups policy - This type of policy gives you /// control over security groups that are in use throughout your organization in - /// Organizations and lets you enforce a baseline set of rules across your organization. Network Firewall policy - This policy applies + /// Organizations and lets you enforce a baseline set of rules across your organization. Network ACL policy - This type of policy gives you + /// control over the network ACLs that are in use throughout your organization in + /// Organizations and lets you enforce a baseline set of first and last network ACL rules across your organization. Network Firewall policy - This policy applies /// Network Firewall protection to your organization's VPCs. DNS Firewall policy - This policy applies /// Amazon Route 53 Resolver DNS Firewall protections to your organization's VPCs. Third-party firewall policy - This policy applies third-party firewall protections. Third-party firewalls are available by subscription through the Amazon Web Services Marketplace console at Amazon Web Services Marketplace. Palo Alto Networks Cloud NGFW policy - This policy applies Palo Alto Networks Cloud Next Generation Firewall (NGFW) protections and Palo Alto Networks Cloud NGFW rulestacks to your organization's VPCs. Fortigate CNF policy - This policy applies /// Fortigate Cloud Native Firewall (CNF) protections. Fortigate CNF is a cloud-centered solution that blocks Zero-Day threats and secures cloud infrastructures with industry-leading advanced threat prevention, smart web application firewalls (WAF), and API protection. diff --git a/Sources/Soto/Services/FMS/FMS_shapes.swift b/Sources/Soto/Services/FMS/FMS_shapes.swift index ae41f32d95..796b689219 100644 --- a/Sources/Soto/Services/FMS/FMS_shapes.swift +++ b/Sources/Soto/Services/FMS/FMS_shapes.swift @@ -62,6 +62,20 @@ extension FMS { public var description: String { return self.rawValue } } + public enum EntryType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case customEntry = "CUSTOM_ENTRY" + case fmsManagedFirstEntry = "FMS_MANAGED_FIRST_ENTRY" + case fmsManagedLastEntry = "FMS_MANAGED_LAST_ENTRY" + public var description: String { return self.rawValue } + } + + public enum EntryViolationReason: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case entryConflict = "ENTRY_CONFLICT" + case incorrectEntryOrder = "INCORRECT_ENTRY_ORDER" + case missingExpectedEntry = "MISSING_EXPECTED_ENTRY" + public var description: String { return self.rawValue } + } + public enum FailedItemReason: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case notValidAccountId = "NOT_VALID_ACCOUNT_ID" case notValidArn = "NOT_VALID_ARN" @@ -85,6 +99,12 @@ extension FMS { public var description: String { return self.rawValue } } + public enum NetworkAclRuleAction: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case allow = "allow" + case deny = "deny" + public var description: String { return self.rawValue } + } + public enum NetworkFirewallOverrideAction: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case dropToAlert = "DROP_TO_ALERT" public var description: String { return self.rawValue } @@ -125,6 +145,7 @@ extension FMS { public enum SecurityServiceType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case dnsFirewall = "DNS_FIREWALL" case importNetworkFirewall = "IMPORT_NETWORK_FIREWALL" + case networkAclCommon = "NETWORK_ACL_COMMON" case networkFirewall = "NETWORK_FIREWALL" case securityGroupsCommon = "SECURITY_GROUPS_COMMON" case securityGroupsContentAudit = "SECURITY_GROUPS_CONTENT_AUDIT" @@ -136,6 +157,14 @@ extension FMS { public var description: String { return self.rawValue } } + public enum StreamExceptionPolicy: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case `continue` = "CONTINUE" + case drop = "DROP" + case fmsIgnore = "FMS_IGNORE" + case reject = "REJECT" + public var description: String { return self.rawValue } + } + public enum TargetType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case carrierGateway = "CARRIER_GATEWAY" case egressOnlyInternetGateway = "EGRESS_ONLY_INTERNET_GATEWAY" @@ -174,6 +203,7 @@ extension FMS { case fmsCreatedSecurityGroupEdited = "FMS_CREATED_SECURITY_GROUP_EDITED" case internetGatewayMissingExpectedRoute = "INTERNET_GATEWAY_MISSING_EXPECTED_ROUTE" case internetTrafficNotInspected = "INTERNET_TRAFFIC_NOT_INSPECTED" + case invalidNetworkAclEntry = "INVALID_NETWORK_ACL_ENTRY" case invalidRouteConfiguration = "INVALID_ROUTE_CONFIGURATION" case missingExpectedRouteTable = "MISSING_EXPECTED_ROUTE_TABLE" case missingFirewall = "MISSING_FIREWALL" @@ -250,7 +280,7 @@ extension FMS { public let adminAccount: String? /// A boolean value that indicates if the administrator is the default administrator. If true, then this is the default administrator account. The default administrator can manage third-party firewalls and has full administrative scope. There is only one default administrator account per organization. For information about Firewall Manager default administrator accounts, see Managing Firewall Manager administrators in the Firewall Manager Developer Guide. public let defaultAdmin: Bool? - /// The current status of the request to onboard a member account as an Firewall Manager administator. ONBOARDING - The account is onboarding to Firewall Manager as an administrator. ONBOARDING_COMPLETE - Firewall Manager The account is onboarded to Firewall Manager as an administrator, and can perform actions on the resources defined in their AdminScope. OFFBOARDING - The account is being removed as an Firewall Manager administrator. OFFBOARDING_COMPLETE - The account has been removed as an Firewall Manager administrator. + /// The current status of the request to onboard a member account as an Firewall Manager administrator. ONBOARDING - The account is onboarding to Firewall Manager as an administrator. ONBOARDING_COMPLETE - Firewall Manager The account is onboarded to Firewall Manager as an administrator, and can perform actions on the resources defined in their AdminScope. OFFBOARDING - The account is being removed as an Firewall Manager administrator. OFFBOARDING_COMPLETE - The account has been removed as an Firewall Manager administrator. public let status: OrganizationStatus? public init(adminAccount: String? = nil, defaultAdmin: Bool? = nil, status: OrganizationStatus? = nil) { @@ -631,6 +661,52 @@ extension FMS { } } + public struct CreateNetworkAclAction: AWSDecodableShape { + /// Brief description of this remediation action. + public let description: String? + /// Indicates whether it is possible for Firewall Manager to perform this remediation action. A false value indicates that auto remediation is disabled or Firewall Manager is unable to perform the action due to a conflict of some kind. + public let fmsCanRemediate: Bool? + /// The VPC that's associated with the remediation action. + public let vpc: ActionTarget? + + public init(description: String? = nil, fmsCanRemediate: Bool? = nil, vpc: ActionTarget? = nil) { + self.description = description + self.fmsCanRemediate = fmsCanRemediate + self.vpc = vpc + } + + private enum CodingKeys: String, CodingKey { + case description = "Description" + case fmsCanRemediate = "FMSCanRemediate" + case vpc = "Vpc" + } + } + + public struct CreateNetworkAclEntriesAction: AWSDecodableShape { + /// Brief description of this remediation action. + public let description: String? + /// Indicates whether it is possible for Firewall Manager to perform this remediation action. A false value indicates that auto remediation is disabled or Firewall Manager is unable to perform the action due to a conflict of some kind. + public let fmsCanRemediate: Bool? + /// Lists the entries that the remediation action would create. + public let networkAclEntriesToBeCreated: [EntryDescription]? + /// The network ACL that's associated with the remediation action. + public let networkAclId: ActionTarget? + + public init(description: String? = nil, fmsCanRemediate: Bool? = nil, networkAclEntriesToBeCreated: [EntryDescription]? = nil, networkAclId: ActionTarget? = nil) { + self.description = description + self.fmsCanRemediate = fmsCanRemediate + self.networkAclEntriesToBeCreated = networkAclEntriesToBeCreated + self.networkAclId = networkAclId + } + + private enum CodingKeys: String, CodingKey { + case description = "Description" + case fmsCanRemediate = "FMSCanRemediate" + case networkAclEntriesToBeCreated = "NetworkAclEntriesToBeCreated" + case networkAclId = "NetworkAclId" + } + } + public struct DeleteAppsListRequest: AWSEncodableShape { /// The ID of the applications list that you want to delete. You can retrieve this ID from PutAppsList, ListAppsLists, and GetAppsList. public let listId: String @@ -650,6 +726,31 @@ extension FMS { } } + public struct DeleteNetworkAclEntriesAction: AWSDecodableShape { + /// Brief description of this remediation action. + public let description: String? + /// Indicates whether it is possible for Firewall Manager to perform this remediation action. A false value indicates that auto remediation is disabled or Firewall Manager is unable to perform the action due to a conflict of some kind. + public let fmsCanRemediate: Bool? + /// Lists the entries that the remediation action would delete. + public let networkAclEntriesToBeDeleted: [EntryDescription]? + /// The network ACL that's associated with the remediation action. + public let networkAclId: ActionTarget? + + public init(description: String? = nil, fmsCanRemediate: Bool? = nil, networkAclEntriesToBeDeleted: [EntryDescription]? = nil, networkAclId: ActionTarget? = nil) { + self.description = description + self.fmsCanRemediate = fmsCanRemediate + self.networkAclEntriesToBeDeleted = networkAclEntriesToBeDeleted + self.networkAclId = networkAclId + } + + private enum CodingKeys: String, CodingKey { + case description = "Description" + case fmsCanRemediate = "FMSCanRemediate" + case networkAclEntriesToBeDeleted = "NetworkAclEntriesToBeDeleted" + case networkAclId = "NetworkAclId" + } + } + public struct DeleteNotificationChannelRequest: AWSEncodableShape { public init() {} } @@ -1020,6 +1121,61 @@ extension FMS { } } + public struct EntryDescription: AWSDecodableShape { + /// Describes a rule in a network ACL. 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 network ACL, Amazon Web Services processes the entries in the network ACL according to the rule numbers, in ascending order. When you manage an individual network ACL, you explicitly specify the rule numbers. When you specify the network ACL rules in a Firewall Manager policy, you provide the rules to run first, in the order that you want them to run, and the rules to run last, in the order that you want them to run. Firewall Manager assigns the rule numbers for you when you save the network ACL policy specification. + public let entryDetail: NetworkAclEntry? + /// The rule number for the entry. ACL entries are processed in ascending order by rule number. In a Firewall Manager network ACL policy, Firewall Manager assigns rule numbers. + public let entryRuleNumber: Int? + /// Specifies whether the entry is managed by Firewall Manager or by a user, and, for Firewall Manager-managed entries, specifies whether the entry is among those that run first in the network ACL or those that run last. + public let entryType: EntryType? + + public init(entryDetail: NetworkAclEntry? = nil, entryRuleNumber: Int? = nil, entryType: EntryType? = nil) { + self.entryDetail = entryDetail + self.entryRuleNumber = entryRuleNumber + self.entryType = entryType + } + + private enum CodingKeys: String, CodingKey { + case entryDetail = "EntryDetail" + case entryRuleNumber = "EntryRuleNumber" + case entryType = "EntryType" + } + } + + public struct EntryViolation: AWSDecodableShape { + /// The evaluation location within the ordered list of entries where the ExpectedEntry is currently located. + public let actualEvaluationOrder: String? + /// The list of entries that are in conflict with ExpectedEntry. + public let entriesWithConflicts: [EntryDescription]? + /// The entry that's currently in the ExpectedEvaluationOrder location, in place of the expected entry. + public let entryAtExpectedEvaluationOrder: EntryDescription? + /// Descriptions of the violations that Firewall Manager found for these entries. + public let entryViolationReasons: [EntryViolationReason]? + /// The Firewall Manager-managed network ACL entry that is involved in the entry violation. + public let expectedEntry: EntryDescription? + /// The evaluation location within the ordered list of entries where the ExpectedEntry should be, according to the network ACL policy specifications. + public let expectedEvaluationOrder: String? + + public init(actualEvaluationOrder: String? = nil, entriesWithConflicts: [EntryDescription]? = nil, entryAtExpectedEvaluationOrder: EntryDescription? = nil, entryViolationReasons: [EntryViolationReason]? = nil, expectedEntry: EntryDescription? = nil, expectedEvaluationOrder: String? = nil) { + self.actualEvaluationOrder = actualEvaluationOrder + self.entriesWithConflicts = entriesWithConflicts + self.entryAtExpectedEvaluationOrder = entryAtExpectedEvaluationOrder + self.entryViolationReasons = entryViolationReasons + self.expectedEntry = expectedEntry + self.expectedEvaluationOrder = expectedEvaluationOrder + } + + private enum CodingKeys: String, CodingKey { + case actualEvaluationOrder = "ActualEvaluationOrder" + case entriesWithConflicts = "EntriesWithConflicts" + case entryAtExpectedEvaluationOrder = "EntryAtExpectedEvaluationOrder" + case entryViolationReasons = "EntryViolationReasons" + case expectedEntry = "ExpectedEntry" + case expectedEvaluationOrder = "ExpectedEvaluationOrder" + } + } + public struct EvaluationResult: AWSDecodableShape { /// Describes an Amazon Web Services account's compliance with the Firewall Manager policy. public let complianceStatus: PolicyComplianceStatusType? @@ -1184,7 +1340,7 @@ extension FMS { } public struct GetAdminScopeRequest: AWSEncodableShape { - /// The administator account that you want to get the details for. + /// The administrator account that you want to get the details for. public let adminAccount: String public init(adminAccount: String) { @@ -1205,7 +1361,7 @@ extension FMS { public struct GetAdminScopeResponse: AWSDecodableShape { /// Contains details about the administrative scope of the requested account. public let adminScope: AdminScope? - /// The current status of the request to onboard a member account as an Firewall Manager administator. ONBOARDING - The account is onboarding to Firewall Manager as an administrator. ONBOARDING_COMPLETE - Firewall Manager The account is onboarded to Firewall Manager as an administrator, and can perform actions on the resources defined in their AdminScope. OFFBOARDING - The account is being removed as an Firewall Manager administrator. OFFBOARDING_COMPLETE - The account has been removed as an Firewall Manager administrator. + /// The current status of the request to onboard a member account as an Firewall Manager administrator. ONBOARDING - The account is onboarding to Firewall Manager as an administrator. ONBOARDING_COMPLETE - Firewall Manager The account is onboarded to Firewall Manager as an administrator, and can perform actions on the resources defined in their AdminScope. OFFBOARDING - The account is being removed as an Firewall Manager administrator. OFFBOARDING_COMPLETE - The account has been removed as an Firewall Manager administrator. public let status: OrganizationStatus? public init(adminScope: AdminScope? = nil, status: OrganizationStatus? = nil) { @@ -1536,7 +1692,7 @@ extension FMS { public struct GetViolationDetailsRequest: AWSEncodableShape { /// The Amazon Web Services account ID that you want the details for. public let memberAccount: String - /// The ID of the Firewall Manager policy that you want the details for. You can get violation details for the following policy types: DNS Firewall Imported Network Firewall Network Firewall Security group content audit Third-party firewall + /// The ID of the Firewall Manager policy that you want the details for. You can get violation details for the following policy types: DNS Firewall Imported Network Firewall Network Firewall Security group content audit Network ACL Third-party firewall public let policyId: String /// The ID of the resource that has violations. public let resourceId: String @@ -1586,6 +1742,35 @@ extension FMS { } } + public struct InvalidNetworkAclEntriesViolation: AWSDecodableShape { + /// The network ACL containing the entry violations. + public let currentAssociatedNetworkAcl: String? + /// Detailed information about the entry violations in the network ACL. + public let entryViolations: [EntryViolation]? + /// The subnet that's associated with the network ACL. + public let subnet: String? + /// The Availability Zone where the network ACL is in use. + public let subnetAvailabilityZone: String? + /// The VPC where the violation was found. + public let vpc: String? + + public init(currentAssociatedNetworkAcl: String? = nil, entryViolations: [EntryViolation]? = nil, subnet: String? = nil, subnetAvailabilityZone: String? = nil, vpc: String? = nil) { + self.currentAssociatedNetworkAcl = currentAssociatedNetworkAcl + self.entryViolations = entryViolations + self.subnet = subnet + self.subnetAvailabilityZone = subnetAvailabilityZone + self.vpc = vpc + } + + private enum CodingKeys: String, CodingKey { + case currentAssociatedNetworkAcl = "CurrentAssociatedNetworkAcl" + case entryViolations = "EntryViolations" + case subnet = "Subnet" + case subnetAvailabilityZone = "SubnetAvailabilityZone" + case vpc = "Vpc" + } + } + public struct ListAdminAccountsForOrganizationRequest: AWSEncodableShape { /// The maximum number of objects that you want Firewall Manager to return for this request. If more objects are available, in the response, Firewall Manager provides a NextToken value that you can use in a subsequent call to get the next batch of objects. public let maxResults: Int? @@ -2127,6 +2312,154 @@ extension FMS { } } + public struct NetworkAclCommonPolicy: AWSEncodableShape & AWSDecodableShape { + /// The definition of the first and last rules for the network ACL policy. + public let networkAclEntrySet: NetworkAclEntrySet + + public init(networkAclEntrySet: NetworkAclEntrySet) { + self.networkAclEntrySet = networkAclEntrySet + } + + public func validate(name: String) throws { + try self.networkAclEntrySet.validate(name: "\(name).networkAclEntrySet") + } + + private enum CodingKeys: String, CodingKey { + case networkAclEntrySet = "NetworkAclEntrySet" + } + } + + public struct NetworkAclEntry: AWSEncodableShape & AWSDecodableShape { + /// The IPv4 network range to allow or deny, in CIDR notation. + public let cidrBlock: String? + /// Indicates whether the rule is an egress, or outbound, rule (applied to traffic leaving the subnet). If it's not an egress rule, then it's an ingress, or inbound, rule. + public let egress: Bool + /// ICMP protocol: The ICMP type and code. + public let icmpTypeCode: NetworkAclIcmpTypeCode? + /// The IPv6 network range to allow or deny, in CIDR notation. + public let ipv6CidrBlock: String? + /// TCP or UDP protocols: The range of ports the rule applies to. + public let portRange: NetworkAclPortRange? + /// The protocol number. A value of "-1" means all protocols. + public let `protocol`: String + /// Indicates whether to allow or deny the traffic that matches the rule. + public let ruleAction: NetworkAclRuleAction + + public init(cidrBlock: String? = nil, egress: Bool, icmpTypeCode: NetworkAclIcmpTypeCode? = nil, ipv6CidrBlock: String? = nil, portRange: NetworkAclPortRange? = nil, protocol: String, ruleAction: NetworkAclRuleAction) { + self.cidrBlock = cidrBlock + self.egress = egress + self.icmpTypeCode = icmpTypeCode + self.ipv6CidrBlock = ipv6CidrBlock + self.portRange = portRange + self.`protocol` = `protocol` + self.ruleAction = ruleAction + } + + public func validate(name: String) throws { + try self.validate(self.cidrBlock, name: "cidrBlock", parent: name, max: 1024) + try self.validate(self.cidrBlock, name: "cidrBlock", parent: name, min: 1) + try self.icmpTypeCode?.validate(name: "\(name).icmpTypeCode") + try self.validate(self.ipv6CidrBlock, name: "ipv6CidrBlock", parent: name, max: 1024) + try self.validate(self.ipv6CidrBlock, name: "ipv6CidrBlock", parent: name, min: 1) + try self.portRange?.validate(name: "\(name).portRange") + try self.validate(self.`protocol`, name: "`protocol`", parent: name, max: 1024) + } + + private enum CodingKeys: String, CodingKey { + case cidrBlock = "CidrBlock" + case egress = "Egress" + case icmpTypeCode = "IcmpTypeCode" + case ipv6CidrBlock = "Ipv6CidrBlock" + case portRange = "PortRange" + case `protocol` = "Protocol" + case ruleAction = "RuleAction" + } + } + + public struct NetworkAclEntrySet: AWSEncodableShape & AWSDecodableShape { + /// The rules that you want to run first in the Firewall Manager managed network ACLs. Provide these in the order in which you want them to run. Firewall Manager will assign the specific rule numbers for you, in the network ACLs that it creates. You must specify at least one first entry or one last entry in any network ACL policy. + public let firstEntries: [NetworkAclEntry]? + /// Applies only when remediation is enabled for the policy as a whole. Firewall Manager uses this setting when it finds policy violations that involve conflicts between the custom entries and the policy entries. If forced remediation is disabled, Firewall Manager marks the network ACL as noncompliant and does not try to remediate. For more information about the remediation behavior, see + /// Network access control list (ACL) policies in the Firewall Manager Developer Guide. + public let forceRemediateForFirstEntries: Bool + /// Applies only when remediation is enabled for the policy as a whole. Firewall Manager uses this setting when it finds policy violations that involve conflicts between the custom entries and the policy entries. If forced remediation is disabled, Firewall Manager marks the network ACL as noncompliant and does not try to remediate. For more information about the remediation behavior, see + /// Network access control list (ACL) policies in the Firewall Manager Developer Guide. + public let forceRemediateForLastEntries: Bool + /// The rules that you want to run last in the Firewall Manager managed network ACLs. Provide these in the order in which you want them to run. Firewall Manager will assign the specific rule numbers for you, in the network ACLs that it creates. You must specify at least one first entry or one last entry in any network ACL policy. + public let lastEntries: [NetworkAclEntry]? + + public init(firstEntries: [NetworkAclEntry]? = nil, forceRemediateForFirstEntries: Bool, forceRemediateForLastEntries: Bool, lastEntries: [NetworkAclEntry]? = nil) { + self.firstEntries = firstEntries + self.forceRemediateForFirstEntries = forceRemediateForFirstEntries + self.forceRemediateForLastEntries = forceRemediateForLastEntries + self.lastEntries = lastEntries + } + + public func validate(name: String) throws { + try self.firstEntries?.forEach { + try $0.validate(name: "\(name).firstEntries[]") + } + try self.lastEntries?.forEach { + try $0.validate(name: "\(name).lastEntries[]") + } + } + + private enum CodingKeys: String, CodingKey { + case firstEntries = "FirstEntries" + case forceRemediateForFirstEntries = "ForceRemediateForFirstEntries" + case forceRemediateForLastEntries = "ForceRemediateForLastEntries" + case lastEntries = "LastEntries" + } + } + + public struct NetworkAclIcmpTypeCode: AWSEncodableShape & AWSDecodableShape { + /// ICMP code. + public let code: Int? + /// ICMP type. + public let type: Int? + + public init(code: Int? = nil, type: Int? = nil) { + self.code = code + self.type = type + } + + public func validate(name: String) throws { + try self.validate(self.code, name: "code", parent: name, max: 2147483647) + try self.validate(self.code, name: "code", parent: name, min: -2147483648) + try self.validate(self.type, name: "type", parent: name, max: 2147483647) + try self.validate(self.type, name: "type", parent: name, min: -2147483648) + } + + private enum CodingKeys: String, CodingKey { + case code = "Code" + case type = "Type" + } + } + + public struct NetworkAclPortRange: AWSEncodableShape & AWSDecodableShape { + /// The beginning port number of the range. + public let from: Int? + /// The ending port number of the range. + public let to: Int? + + public init(from: Int? = nil, to: Int? = nil) { + self.from = from + self.to = to + } + + public func validate(name: String) throws { + try self.validate(self.from, name: "from", parent: name, max: 65535) + try self.validate(self.from, name: "from", parent: name, min: 0) + try self.validate(self.to, name: "to", parent: name, max: 65535) + try self.validate(self.to, name: "to", parent: name, min: 0) + } + + private enum CodingKeys: String, CodingKey { + case from = "From" + case to = "To" + } + } + public struct NetworkFirewallBlackHoleRouteDetectedViolation: AWSDecodableShape { /// Information about the route table ID. public let routeTableId: String? @@ -2607,7 +2940,7 @@ extension FMS { public let resourceSetIds: [String]? /// An array of ResourceTag objects. public let resourceTags: [ResourceTag]? - /// The type of resource protected by or in scope of the policy. This is in the format shown in the Amazon Web Services Resource Types Reference. To apply this policy to multiple resource types, specify a resource type of ResourceTypeList and then specify the resource types in a ResourceTypeList. The following are valid resource types for each Firewall Manager policy type: Amazon Web Services WAF Classic - AWS::ApiGateway::Stage, AWS::CloudFront::Distribution, and AWS::ElasticLoadBalancingV2::LoadBalancer. WAF - AWS::ApiGateway::Stage, AWS::ElasticLoadBalancingV2::LoadBalancer, and AWS::CloudFront::Distribution. DNS Firewall, Network Firewall, and third-party firewall - AWS::EC2::VPC. Shield Advanced - AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::ElasticLoadBalancing::LoadBalancer, AWS::EC2::EIP, and AWS::CloudFront::Distribution. Security group content audit - AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, and AWS::EC2::Instance. Security group usage audit - AWS::EC2::SecurityGroup. + /// The type of resource protected by or in scope of the policy. This is in the format shown in the Amazon Web Services Resource Types Reference. To apply this policy to multiple resource types, specify a resource type of ResourceTypeList and then specify the resource types in a ResourceTypeList. The following are valid resource types for each Firewall Manager policy type: Amazon Web Services WAF Classic - AWS::ApiGateway::Stage, AWS::CloudFront::Distribution, and AWS::ElasticLoadBalancingV2::LoadBalancer. WAF - AWS::ApiGateway::Stage, AWS::ElasticLoadBalancingV2::LoadBalancer, and AWS::CloudFront::Distribution. Shield Advanced - AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::ElasticLoadBalancing::LoadBalancer, AWS::EC2::EIP, and AWS::CloudFront::Distribution. Network ACL - AWS::EC2::Subnet. Security group usage audit - AWS::EC2::SecurityGroup. Security group content audit - AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, and AWS::EC2::Instance. DNS Firewall, Network Firewall, and third-party firewall - AWS::EC2::VPC. public let resourceType: String /// An array of ResourceType objects. Use this only to specify multiple resource types. To specify a single resource type, use ResourceType. public let resourceTypeList: [String]? @@ -2652,7 +2985,7 @@ extension FMS { try self.resourceTags?.forEach { try $0.validate(name: "\(name).resourceTags[]") } - try self.validate(self.resourceTags, name: "resourceTags", parent: name, max: 8) + try self.validate(self.resourceTags, name: "resourceTags", parent: name, max: 50) try self.validate(self.resourceType, name: "resourceType", parent: name, max: 128) try self.validate(self.resourceType, name: "resourceType", parent: name, min: 1) try self.validate(self.resourceType, name: "resourceType", parent: name, pattern: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$") @@ -2758,17 +3091,25 @@ extension FMS { } public struct PolicyOption: AWSEncodableShape & AWSDecodableShape { + /// Defines a Firewall Manager network ACL policy. + public let networkAclCommonPolicy: NetworkAclCommonPolicy? /// Defines the deployment model to use for the firewall policy. public let networkFirewallPolicy: NetworkFirewallPolicy? /// Defines the policy options for a third-party firewall policy. public let thirdPartyFirewallPolicy: ThirdPartyFirewallPolicy? - public init(networkFirewallPolicy: NetworkFirewallPolicy? = nil, thirdPartyFirewallPolicy: ThirdPartyFirewallPolicy? = nil) { + public init(networkAclCommonPolicy: NetworkAclCommonPolicy? = nil, networkFirewallPolicy: NetworkFirewallPolicy? = nil, thirdPartyFirewallPolicy: ThirdPartyFirewallPolicy? = nil) { + self.networkAclCommonPolicy = networkAclCommonPolicy self.networkFirewallPolicy = networkFirewallPolicy self.thirdPartyFirewallPolicy = thirdPartyFirewallPolicy } + public func validate(name: String) throws { + try self.networkAclCommonPolicy?.validate(name: "\(name).networkAclCommonPolicy") + } + private enum CodingKeys: String, CodingKey { + case networkAclCommonPolicy = "NetworkAclCommonPolicy" case networkFirewallPolicy = "NetworkFirewallPolicy" case thirdPartyFirewallPolicy = "ThirdPartyFirewallPolicy" } @@ -2787,7 +3128,7 @@ extension FMS { public let policyStatus: CustomerPolicyStatus? /// Indicates if the policy should be automatically applied to new resources. public let remediationEnabled: Bool? - /// The type of resource protected by or in scope of the policy. This is in the format shown in the Amazon Web Services Resource Types Reference. For WAF and Shield Advanced, examples include AWS::ElasticLoadBalancingV2::LoadBalancer and AWS::CloudFront::Distribution. For a security group common policy, valid values are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For a security group content audit policy, valid values are AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, and AWS::EC2::Instance. For a security group usage audit policy, the value is AWS::EC2::SecurityGroup. For an Network Firewall policy or DNS Firewall policy, the value is AWS::EC2::VPC. + /// The type of resource protected by or in scope of the policy. This is in the format shown in the Amazon Web Services Resource Types Reference. public let resourceType: String? /// The service that the policy is using to protect the resources. This specifies the type of policy that is created, either an WAF policy, a Shield Advanced policy, or a security group policy. public let securityServiceType: SecurityServiceType? @@ -3203,6 +3544,12 @@ extension FMS { } public struct RemediationAction: AWSDecodableShape { + /// Information about the CreateNetworkAcl action in Amazon EC2. + public let createNetworkAclAction: CreateNetworkAclAction? + /// Information about the CreateNetworkAclEntries action in Amazon EC2. + public let createNetworkAclEntriesAction: CreateNetworkAclEntriesAction? + /// Information about the DeleteNetworkAclEntries action in Amazon EC2. + public let deleteNetworkAclEntriesAction: DeleteNetworkAclEntriesAction? /// A description of a remediation action. public let description: String? /// Information about the AssociateRouteTable action in the Amazon EC2 API. @@ -3221,8 +3568,13 @@ extension FMS { public let ec2ReplaceRouteTableAssociationAction: EC2ReplaceRouteTableAssociationAction? /// The remedial action to take when updating a firewall configuration. public let fmsPolicyUpdateFirewallCreationConfigAction: FMSPolicyUpdateFirewallCreationConfigAction? + /// Information about the ReplaceNetworkAclAssociation action in Amazon EC2. + public let replaceNetworkAclAssociationAction: ReplaceNetworkAclAssociationAction? - public init(description: String? = nil, ec2AssociateRouteTableAction: EC2AssociateRouteTableAction? = nil, ec2CopyRouteTableAction: EC2CopyRouteTableAction? = nil, ec2CreateRouteAction: EC2CreateRouteAction? = nil, ec2CreateRouteTableAction: EC2CreateRouteTableAction? = nil, ec2DeleteRouteAction: EC2DeleteRouteAction? = nil, ec2ReplaceRouteAction: EC2ReplaceRouteAction? = nil, ec2ReplaceRouteTableAssociationAction: EC2ReplaceRouteTableAssociationAction? = nil, fmsPolicyUpdateFirewallCreationConfigAction: FMSPolicyUpdateFirewallCreationConfigAction? = nil) { + public init(createNetworkAclAction: CreateNetworkAclAction? = nil, createNetworkAclEntriesAction: CreateNetworkAclEntriesAction? = nil, deleteNetworkAclEntriesAction: DeleteNetworkAclEntriesAction? = nil, description: String? = nil, ec2AssociateRouteTableAction: EC2AssociateRouteTableAction? = nil, ec2CopyRouteTableAction: EC2CopyRouteTableAction? = nil, ec2CreateRouteAction: EC2CreateRouteAction? = nil, ec2CreateRouteTableAction: EC2CreateRouteTableAction? = nil, ec2DeleteRouteAction: EC2DeleteRouteAction? = nil, ec2ReplaceRouteAction: EC2ReplaceRouteAction? = nil, ec2ReplaceRouteTableAssociationAction: EC2ReplaceRouteTableAssociationAction? = nil, fmsPolicyUpdateFirewallCreationConfigAction: FMSPolicyUpdateFirewallCreationConfigAction? = nil, replaceNetworkAclAssociationAction: ReplaceNetworkAclAssociationAction? = nil) { + self.createNetworkAclAction = createNetworkAclAction + self.createNetworkAclEntriesAction = createNetworkAclEntriesAction + self.deleteNetworkAclEntriesAction = deleteNetworkAclEntriesAction self.description = description self.ec2AssociateRouteTableAction = ec2AssociateRouteTableAction self.ec2CopyRouteTableAction = ec2CopyRouteTableAction @@ -3232,9 +3584,13 @@ extension FMS { self.ec2ReplaceRouteAction = ec2ReplaceRouteAction self.ec2ReplaceRouteTableAssociationAction = ec2ReplaceRouteTableAssociationAction self.fmsPolicyUpdateFirewallCreationConfigAction = fmsPolicyUpdateFirewallCreationConfigAction + self.replaceNetworkAclAssociationAction = replaceNetworkAclAssociationAction } private enum CodingKeys: String, CodingKey { + case createNetworkAclAction = "CreateNetworkAclAction" + case createNetworkAclEntriesAction = "CreateNetworkAclEntriesAction" + case deleteNetworkAclEntriesAction = "DeleteNetworkAclEntriesAction" case description = "Description" case ec2AssociateRouteTableAction = "EC2AssociateRouteTableAction" case ec2CopyRouteTableAction = "EC2CopyRouteTableAction" @@ -3244,6 +3600,7 @@ extension FMS { case ec2ReplaceRouteAction = "EC2ReplaceRouteAction" case ec2ReplaceRouteTableAssociationAction = "EC2ReplaceRouteTableAssociationAction" case fmsPolicyUpdateFirewallCreationConfigAction = "FMSPolicyUpdateFirewallCreationConfigAction" + case replaceNetworkAclAssociationAction = "ReplaceNetworkAclAssociationAction" } } @@ -3264,6 +3621,30 @@ extension FMS { } } + public struct ReplaceNetworkAclAssociationAction: AWSDecodableShape { + public let associationId: ActionTarget? + /// Brief description of this remediation action. + public let description: String? + /// Indicates whether it is possible for Firewall Manager to perform this remediation action. A false value indicates that auto remediation is disabled or Firewall Manager is unable to perform the action due to a conflict of some kind. + public let fmsCanRemediate: Bool? + /// The network ACL that's associated with the remediation action. + public let networkAclId: ActionTarget? + + public init(associationId: ActionTarget? = nil, description: String? = nil, fmsCanRemediate: Bool? = nil, networkAclId: ActionTarget? = nil) { + self.associationId = associationId + self.description = description + self.fmsCanRemediate = fmsCanRemediate + self.networkAclId = networkAclId + } + + private enum CodingKeys: String, CodingKey { + case associationId = "AssociationId" + case description = "Description" + case fmsCanRemediate = "FMSCanRemediate" + case networkAclId = "NetworkAclId" + } + } + public struct Resource: AWSDecodableShape { /// The Amazon Web Services account ID that the associated resource belongs to. public let accountId: String? @@ -3409,6 +3790,8 @@ extension FMS { public let firewallSubnetIsOutOfScopeViolation: FirewallSubnetIsOutOfScopeViolation? /// The violation details for a third-party firewall's VPC endpoint subnet that was deleted. public let firewallSubnetMissingVPCEndpointViolation: FirewallSubnetMissingVPCEndpointViolation? + /// Violation detail for the entries in a network ACL resource. + public let invalidNetworkAclEntriesViolation: InvalidNetworkAclEntriesViolation? public let networkFirewallBlackHoleRouteDetectedViolation: NetworkFirewallBlackHoleRouteDetectedViolation? /// Violation detail for the subnet for which internet traffic hasn't been inspected. public let networkFirewallInternetTrafficNotInspectedViolation: NetworkFirewallInternetTrafficNotInspectedViolation? @@ -3439,7 +3822,7 @@ extension FMS { /// The violation details for a third-party firewall's subnet that's been deleted. public let thirdPartyFirewallMissingSubnetViolation: ThirdPartyFirewallMissingSubnetViolation? - public init(awsEc2InstanceViolation: AwsEc2InstanceViolation? = nil, awsEc2NetworkInterfaceViolation: AwsEc2NetworkInterfaceViolation? = nil, awsVPCSecurityGroupViolation: AwsVPCSecurityGroupViolation? = nil, dnsDuplicateRuleGroupViolation: DnsDuplicateRuleGroupViolation? = nil, dnsRuleGroupLimitExceededViolation: DnsRuleGroupLimitExceededViolation? = nil, dnsRuleGroupPriorityConflictViolation: DnsRuleGroupPriorityConflictViolation? = nil, firewallSubnetIsOutOfScopeViolation: FirewallSubnetIsOutOfScopeViolation? = nil, firewallSubnetMissingVPCEndpointViolation: FirewallSubnetMissingVPCEndpointViolation? = nil, networkFirewallBlackHoleRouteDetectedViolation: NetworkFirewallBlackHoleRouteDetectedViolation? = nil, networkFirewallInternetTrafficNotInspectedViolation: NetworkFirewallInternetTrafficNotInspectedViolation? = nil, networkFirewallInvalidRouteConfigurationViolation: NetworkFirewallInvalidRouteConfigurationViolation? = nil, networkFirewallMissingExpectedRoutesViolation: NetworkFirewallMissingExpectedRoutesViolation? = nil, networkFirewallMissingExpectedRTViolation: NetworkFirewallMissingExpectedRTViolation? = nil, networkFirewallMissingFirewallViolation: NetworkFirewallMissingFirewallViolation? = nil, networkFirewallMissingSubnetViolation: NetworkFirewallMissingSubnetViolation? = nil, networkFirewallPolicyModifiedViolation: NetworkFirewallPolicyModifiedViolation? = nil, networkFirewallUnexpectedFirewallRoutesViolation: NetworkFirewallUnexpectedFirewallRoutesViolation? = nil, networkFirewallUnexpectedGatewayRoutesViolation: NetworkFirewallUnexpectedGatewayRoutesViolation? = nil, possibleRemediationActions: PossibleRemediationActions? = nil, routeHasOutOfScopeEndpointViolation: RouteHasOutOfScopeEndpointViolation? = nil, thirdPartyFirewallMissingExpectedRouteTableViolation: ThirdPartyFirewallMissingExpectedRouteTableViolation? = nil, thirdPartyFirewallMissingFirewallViolation: ThirdPartyFirewallMissingFirewallViolation? = nil, thirdPartyFirewallMissingSubnetViolation: ThirdPartyFirewallMissingSubnetViolation? = nil) { + public init(awsEc2InstanceViolation: AwsEc2InstanceViolation? = nil, awsEc2NetworkInterfaceViolation: AwsEc2NetworkInterfaceViolation? = nil, awsVPCSecurityGroupViolation: AwsVPCSecurityGroupViolation? = nil, dnsDuplicateRuleGroupViolation: DnsDuplicateRuleGroupViolation? = nil, dnsRuleGroupLimitExceededViolation: DnsRuleGroupLimitExceededViolation? = nil, dnsRuleGroupPriorityConflictViolation: DnsRuleGroupPriorityConflictViolation? = nil, firewallSubnetIsOutOfScopeViolation: FirewallSubnetIsOutOfScopeViolation? = nil, firewallSubnetMissingVPCEndpointViolation: FirewallSubnetMissingVPCEndpointViolation? = nil, invalidNetworkAclEntriesViolation: InvalidNetworkAclEntriesViolation? = nil, networkFirewallBlackHoleRouteDetectedViolation: NetworkFirewallBlackHoleRouteDetectedViolation? = nil, networkFirewallInternetTrafficNotInspectedViolation: NetworkFirewallInternetTrafficNotInspectedViolation? = nil, networkFirewallInvalidRouteConfigurationViolation: NetworkFirewallInvalidRouteConfigurationViolation? = nil, networkFirewallMissingExpectedRoutesViolation: NetworkFirewallMissingExpectedRoutesViolation? = nil, networkFirewallMissingExpectedRTViolation: NetworkFirewallMissingExpectedRTViolation? = nil, networkFirewallMissingFirewallViolation: NetworkFirewallMissingFirewallViolation? = nil, networkFirewallMissingSubnetViolation: NetworkFirewallMissingSubnetViolation? = nil, networkFirewallPolicyModifiedViolation: NetworkFirewallPolicyModifiedViolation? = nil, networkFirewallUnexpectedFirewallRoutesViolation: NetworkFirewallUnexpectedFirewallRoutesViolation? = nil, networkFirewallUnexpectedGatewayRoutesViolation: NetworkFirewallUnexpectedGatewayRoutesViolation? = nil, possibleRemediationActions: PossibleRemediationActions? = nil, routeHasOutOfScopeEndpointViolation: RouteHasOutOfScopeEndpointViolation? = nil, thirdPartyFirewallMissingExpectedRouteTableViolation: ThirdPartyFirewallMissingExpectedRouteTableViolation? = nil, thirdPartyFirewallMissingFirewallViolation: ThirdPartyFirewallMissingFirewallViolation? = nil, thirdPartyFirewallMissingSubnetViolation: ThirdPartyFirewallMissingSubnetViolation? = nil) { self.awsEc2InstanceViolation = awsEc2InstanceViolation self.awsEc2NetworkInterfaceViolation = awsEc2NetworkInterfaceViolation self.awsVPCSecurityGroupViolation = awsVPCSecurityGroupViolation @@ -3448,6 +3831,7 @@ extension FMS { self.dnsRuleGroupPriorityConflictViolation = dnsRuleGroupPriorityConflictViolation self.firewallSubnetIsOutOfScopeViolation = firewallSubnetIsOutOfScopeViolation self.firewallSubnetMissingVPCEndpointViolation = firewallSubnetMissingVPCEndpointViolation + self.invalidNetworkAclEntriesViolation = invalidNetworkAclEntriesViolation self.networkFirewallBlackHoleRouteDetectedViolation = networkFirewallBlackHoleRouteDetectedViolation self.networkFirewallInternetTrafficNotInspectedViolation = networkFirewallInternetTrafficNotInspectedViolation self.networkFirewallInvalidRouteConfigurationViolation = networkFirewallInvalidRouteConfigurationViolation @@ -3474,6 +3858,7 @@ extension FMS { case dnsRuleGroupPriorityConflictViolation = "DnsRuleGroupPriorityConflictViolation" case firewallSubnetIsOutOfScopeViolation = "FirewallSubnetIsOutOfScopeViolation" case firewallSubnetMissingVPCEndpointViolation = "FirewallSubnetMissingVPCEndpointViolation" + case invalidNetworkAclEntriesViolation = "InvalidNetworkAclEntriesViolation" case networkFirewallBlackHoleRouteDetectedViolation = "NetworkFirewallBlackHoleRouteDetectedViolation" case networkFirewallInternetTrafficNotInspectedViolation = "NetworkFirewallInternetTrafficNotInspectedViolation" case networkFirewallInvalidRouteConfigurationViolation = "NetworkFirewallInvalidRouteConfigurationViolation" @@ -3633,10 +4018,10 @@ extension FMS { } public struct SecurityServicePolicyData: AWSEncodableShape & AWSDecodableShape { - /// Details about the service that are specific to the service type, in JSON format. Example: DNS_FIREWALL "{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}" Valid values for preProcessRuleGroups are between 1 and 99. Valid values for postProcessRuleGroups are between 9901 and 10000. Example: IMPORT_NETWORK_FIREWALL "{\"type\":\"IMPORT_NETWORK_FIREWALL\",\"awsNetworkFirewallConfig\":{\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:000000000000:stateless-rulegroup\/rg1\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:drop\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:pass\"],\"networkFirewallStatelessCustomActions\":[],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:aws-managed:stateful-rulegroup\/ThreatSignaturesEmergingEventsStrictOrder\",\"priority\":8}],\"networkFirewallStatefulEngineOptions\":{\"ruleOrder\":\"STRICT_ORDER\"},\"networkFirewallStatefulDefaultActions\":[\"aws:drop_strict\"]}}" "{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}" Valid values for preProcessRuleGroups are between 1 and 99. Valid values for postProcessRuleGroups are between 9901 and 10000. Example: NETWORK_FIREWALL - Centralized deployment model "{\"type\":\"NETWORK_FIREWALL\",\"awsNetworkFirewallConfig\":{\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"customActionName\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"metricdimensionvalue\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\"}],\"networkFirewallLoggingConfiguration\":{\"logDestinationConfigs\":[{\"logDestinationType\":\"S3\",\"logType\":\"ALERT\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}},{\"logDestinationType\":\"S3\",\"logType\":\"FLOW\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}}],\"overrideExistingConfig\":true}},\"firewallDeploymentModel\":{\"centralizedFirewallDeploymentModel\":{\"centralizedFirewallOrchestrationConfig\":{\"inspectionVpcIds\":[{\"resourceId\":\"vpc-1234\",\"accountId\":\"123456789011\"}],\"firewallCreationConfig\":{\"endpointLocation\":{\"availabilityZoneConfigList\":[{\"availabilityZoneId\":null,\"availabilityZoneName\":\"us-east-1a\",\"allowedIPV4CidrList\":[\"10.0.0.0/28\"]}]}},\"allowedIPV4CidrList\":[]}}}}" To use the centralized deployment model, you must set PolicyOption to CENTRALIZED. Example: NETWORK_FIREWALL - Distributed deployment model with automatic Availability Zone configuration "{\"type\":\"NETWORK_FIREWALL\",\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"customActionName\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"metricdimensionvalue\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\"}],\"networkFirewallOrchestrationConfig\":{\"singleFirewallEndpointPerVPC\":false,\"allowedIPV4CidrList\":[\"10.0.0.0/28\",\"192.168.0.0/28\"],\"routeManagementAction\":\"OFF\"},\"networkFirewallLoggingConfiguration\":{\"logDestinationConfigs\":[{\"logDestinationType\":\"S3\",\"logType\":\"ALERT\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}},{\"logDestinationType\":\"S3\",\"logType\":\"FLOW\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}}],\"overrideExistingConfig\":true}}" With automatic Availbility Zone configuration, Firewall Manager chooses which Availability Zones to create the endpoints in. To use the distributed deployment model, you must set PolicyOption to NULL. Example: NETWORK_FIREWALL - Distributed deployment model with automatic Availability Zone configuration and route management "{\"type\":\"NETWORK_FIREWALL\",\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"customActionName\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"metricdimensionvalue\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\"}],\"networkFirewallOrchestrationConfig\":{\"singleFirewallEndpointPerVPC\":false,\"allowedIPV4CidrList\":[\"10.0.0.0/28\",\"192.168.0.0/28\"],\"routeManagementAction\":\"MONITOR\",\"routeManagementTargetTypes\":[\"InternetGateway\"]},\"networkFirewallLoggingConfiguration\":{\"logDestinationConfigs\":[{\"logDestinationType\":\"S3\",\"logType\":\"ALERT\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}},{\"logDestinationType\":\"S3\",\"logType\": \"FLOW\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}}],\"overrideExistingConfig\":true}}" To use the distributed deployment model, you must set PolicyOption to NULL. Example: NETWORK_FIREWALL - Distributed deployment model with custom Availability Zone configuration "{\"type\":\"NETWORK_FIREWALL\",\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:forward_to_sfe\",\"fragmentcustomactionname\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"customActionName\", \"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"metricdimensionvalue\"}]}}},{\"actionName\":\"fragmentcustomactionname\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"fragmentmetricdimensionvalue\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\"}],\"networkFirewallOrchestrationConfig\":{\"firewallCreationConfig\":{ \"endpointLocation\":{\"availabilityZoneConfigList\":[{\"availabilityZoneName\":\"us-east-1a\",\"allowedIPV4CidrList\":[\"10.0.0.0/28\"]},{\"availabilityZoneName\":\"us-east-1b\",\"allowedIPV4CidrList\":[ \"10.0.0.0/28\"]}]} },\"singleFirewallEndpointPerVPC\":false,\"allowedIPV4CidrList\":null,\"routeManagementAction\":\"OFF\",\"networkFirewallLoggingConfiguration\":{\"logDestinationConfigs\":[{\"logDestinationType\":\"S3\",\"logType\":\"ALERT\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}},{\"logDestinationType\":\"S3\",\"logType\":\"FLOW\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}}],\"overrideExistingConfig\":boolean}}" With custom Availability Zone configuration, you define which specific Availability Zones to create endpoints in by configuring firewallCreationConfig. To configure the Availability Zones in firewallCreationConfig, specify either the availabilityZoneName or availabilityZoneId parameter, not both parameters. To use the distributed deployment model, you must set PolicyOption to NULL. Example: NETWORK_FIREWALL - Distributed deployment model with custom Availability Zone configuration and route management "{\"type\":\"NETWORK_FIREWALL\",\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:forward_to_sfe\",\"fragmentcustomactionname\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"customActionName\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"metricdimensionvalue\"}]}}},{\"actionName\":\"fragmentcustomactionname\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"fragmentmetricdimensionvalue\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\"}],\"networkFirewallOrchestrationConfig\":{\"firewallCreationConfig\":{\"endpointLocation\":{\"availabilityZoneConfigList\":[{\"availabilityZoneName\":\"us-east-1a\",\"allowedIPV4CidrList\":[\"10.0.0.0/28\"]},{\"availabilityZoneName\":\"us-east-1b\",\"allowedIPV4CidrList\":[\"10.0.0.0/28\"]}]}},\"singleFirewallEndpointPerVPC\":false,\"allowedIPV4CidrList\":null,\"routeManagementAction\":\"MONITOR\",\"routeManagementTargetTypes\":[\"InternetGateway\"],\"routeManagementConfig\":{\"allowCrossAZTrafficIfNoEndpoint\":true}},\"networkFirewallLoggingConfiguration\":{\"logDestinationConfigs\":[{\"logDestinationType\":\"S3\",\"logType\":\"ALERT\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}},{\"logDestinationType\":\"S3\",\"logType\":\"FLOW\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}}],\"overrideExistingConfig\":boolean}}" To use the distributed deployment model, you must set PolicyOption to NULL. Example: SECURITY_GROUPS_COMMON "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}" Example: SECURITY_GROUPS_COMMON - Security group tag distribution ""{\"type\":\"SECURITY_GROUPS_COMMON\",\"securityGroups\":[{\"id\":\"sg-000e55995d61a06bd\"}],\"revertManualSecurityGroupChanges\":true,\"exclusiveResourceSecurityGroupManagement\":false,\"applyToAllEC2InstanceENIs\":false,\"includeSharedVPC\":false,\"enableTagDistribution\":true}"" Firewall Manager automatically distributes tags from the primary group to the security groups created by this policy. To use security group tag distribution, you must also set revertManualSecurityGroupChanges to true, otherwise Firewall Manager won't be able to create the policy. When you enable revertManualSecurityGroupChanges, Firewall Manager identifies and reports when the security groups created by this policy become non-compliant. Firewall Manager won't distrubute system tags added by Amazon Web Services services into the replica security groups. System tags begin with the aws: prefix. Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as well as to those in VPCs that the account owns "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, \"applyToAllEC2InstanceENIs\":false,\"includeSharedVPC\":true,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}" Example: SECURITY_GROUPS_CONTENT_AUDIT "{\"type\":\"SECURITY_GROUPS_CONTENT_AUDIT\",\"securityGroups\":[{\"id\":\"sg-000e55995d61a06bd\"}],\"securityGroupAction\":{\"type\":\"ALLOW\"}}" The security group action for content audit can be ALLOW or DENY. For ALLOW, all in-scope security group rules must be within the allowed range of the policy's security group rules. For DENY, all in-scope security group rules must not contain a value or a range that matches a rule value or range in the policy security group. Example: SECURITY_GROUPS_USAGE_AUDIT "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}" Example: SHIELD_ADVANCED with web ACL management "{\"type\":\"SHIELD_ADVANCED\",\"optimizeUnassociatedWebACL\":true}" If you set optimizeUnassociatedWebACL to true, Firewall Manager creates web ACLs in accounts within the policy scope if the web ACLs will be used by at least one resource. Firewall Manager creates web ACLs in the accounts within policy scope only if the web ACLs will be used by at least one resource. If at any time an account comes into policy scope, Firewall Manager automatically creates a web ACL in the account if at least one resource will use the web ACL. Upon enablement, Firewall Manager performs a one-time cleanup of unused web ACLs in your account. The cleanup process can take several hours. If a resource leaves policy scope after Firewall Manager creates a web ACL, Firewall Manager doesn't disassociate the resource from the web ACL. If you want Firewall Manager to clean up the web ACL, you must first manually disassociate the resources from the web ACL, and then enable the manage unused web ACLs option in your policy. If you set optimizeUnassociatedWebACL to false, and Firewall Manager automatically creates an empty web ACL in each account that's within policy scope. Specification for SHIELD_ADVANCED for Amazon CloudFront distributions "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": {\"automaticResponseStatus\":\"ENABLED|IGNORED|DISABLED\", \"automaticResponseAction\":\"BLOCK|COUNT\"}, \"overrideCustomerWebaclClassic\":true|false, \"optimizeUnassociatedWebACL\":true|false}" For example: "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": {\"automaticResponseStatus\":\"ENABLED\", \"automaticResponseAction\":\"COUNT\"}}" The default value for automaticResponseStatus is IGNORED. The value for automaticResponseAction is only required when automaticResponseStatus is set to ENABLED. The default value for overrideCustomerWebaclClassic is false. For other resource types that you can protect with a Shield Advanced policy, this ManagedServiceData configuration is an empty string. Example: THIRD_PARTY_FIREWALL Replace THIRD_PARTY_FIREWALL_NAME with the name of the third-party firewall. "{ "type":"THIRD_PARTY_FIREWALL", "thirdPartyFirewall":"THIRD_PARTY_FIREWALL_NAME", "thirdPartyFirewallConfig":{ "thirdPartyFirewallPolicyList":["global-1"] }, + /// Details about the service that are specific to the service type, in JSON format. Example: DNS_FIREWALL "{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}" Valid values for preProcessRuleGroups are between 1 and 99. Valid values for postProcessRuleGroups are between 9901 and 10000. Example: IMPORT_NETWORK_FIREWALL "{\"type\":\"IMPORT_NETWORK_FIREWALL\",\"awsNetworkFirewallConfig\":{\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:000000000000:stateless-rulegroup\/rg1\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:drop\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:pass\"],\"networkFirewallStatelessCustomActions\":[],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-2:aws-managed:stateful-rulegroup\/ThreatSignaturesEmergingEventsStrictOrder\",\"priority\":8}],\"networkFirewallStatefulEngineOptions\":{\"ruleOrder\":\"STRICT_ORDER\"},\"networkFirewallStatefulDefaultActions\":[\"aws:drop_strict\"]}}" "{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}" Valid values for preProcessRuleGroups are between 1 and 99. Valid values for postProcessRuleGroups are between 9901 and 10000. Example: NETWORK_FIREWALL - Centralized deployment model "{\"type\":\"NETWORK_FIREWALL\",\"awsNetworkFirewallConfig\":{\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"customActionName\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"metricdimensionvalue\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\"}],\"networkFirewallLoggingConfiguration\":{\"logDestinationConfigs\":[{\"logDestinationType\":\"S3\",\"logType\":\"ALERT\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}},{\"logDestinationType\":\"S3\",\"logType\":\"FLOW\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}}],\"overrideExistingConfig\":true}},\"firewallDeploymentModel\":{\"centralizedFirewallDeploymentModel\":{\"centralizedFirewallOrchestrationConfig\":{\"inspectionVpcIds\":[{\"resourceId\":\"vpc-1234\",\"accountId\":\"123456789011\"}],\"firewallCreationConfig\":{\"endpointLocation\":{\"availabilityZoneConfigList\":[{\"availabilityZoneId\":null,\"availabilityZoneName\":\"us-east-1a\",\"allowedIPV4CidrList\":[\"10.0.0.0/28\"]}]}},\"allowedIPV4CidrList\":[]}}}}" To use the centralized deployment model, you must set PolicyOption to CENTRALIZED. Example: NETWORK_FIREWALL - Distributed deployment model with automatic Availability Zone configuration "{\"type\":\"NETWORK_FIREWALL\",\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"customActionName\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"metricdimensionvalue\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\"}],\"networkFirewallOrchestrationConfig\":{\"singleFirewallEndpointPerVPC\":false,\"allowedIPV4CidrList\":[\"10.0.0.0/28\",\"192.168.0.0/28\"],\"routeManagementAction\":\"OFF\"},\"networkFirewallLoggingConfiguration\":{\"logDestinationConfigs\":[{\"logDestinationType\":\"S3\",\"logType\":\"ALERT\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}},{\"logDestinationType\":\"S3\",\"logType\":\"FLOW\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}}],\"overrideExistingConfig\":true}}" With automatic Availbility Zone configuration, Firewall Manager chooses which Availability Zones to create the endpoints in. To use the distributed deployment model, you must set PolicyOption to NULL. Example: NETWORK_FIREWALL - Distributed deployment model with automatic Availability Zone configuration and route management "{\"type\":\"NETWORK_FIREWALL\",\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"customActionName\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"metricdimensionvalue\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\"}],\"networkFirewallOrchestrationConfig\":{\"singleFirewallEndpointPerVPC\":false,\"allowedIPV4CidrList\":[\"10.0.0.0/28\",\"192.168.0.0/28\"],\"routeManagementAction\":\"MONITOR\",\"routeManagementTargetTypes\":[\"InternetGateway\"]},\"networkFirewallLoggingConfiguration\":{\"logDestinationConfigs\":[{\"logDestinationType\":\"S3\",\"logType\":\"ALERT\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}},{\"logDestinationType\":\"S3\",\"logType\": \"FLOW\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}}],\"overrideExistingConfig\":true}}" To use the distributed deployment model, you must set PolicyOption to NULL. Example: NETWORK_FIREWALL - Distributed deployment model with custom Availability Zone configuration "{\"type\":\"NETWORK_FIREWALL\",\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:forward_to_sfe\",\"fragmentcustomactionname\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"customActionName\", \"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"metricdimensionvalue\"}]}}},{\"actionName\":\"fragmentcustomactionname\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"fragmentmetricdimensionvalue\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\"}],\"networkFirewallOrchestrationConfig\":{\"firewallCreationConfig\":{ \"endpointLocation\":{\"availabilityZoneConfigList\":[{\"availabilityZoneName\":\"us-east-1a\",\"allowedIPV4CidrList\":[\"10.0.0.0/28\"]},{\"availabilityZoneName\":\"us-east-1b\",\"allowedIPV4CidrList\":[ \"10.0.0.0/28\"]}]} },\"singleFirewallEndpointPerVPC\":false,\"allowedIPV4CidrList\":null,\"routeManagementAction\":\"OFF\",\"networkFirewallLoggingConfiguration\":{\"logDestinationConfigs\":[{\"logDestinationType\":\"S3\",\"logType\":\"ALERT\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}},{\"logDestinationType\":\"S3\",\"logType\":\"FLOW\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}}],\"overrideExistingConfig\":boolean}}" With custom Availability Zone configuration, you define which specific Availability Zones to create endpoints in by configuring firewallCreationConfig. To configure the Availability Zones in firewallCreationConfig, specify either the availabilityZoneName or availabilityZoneId parameter, not both parameters. To use the distributed deployment model, you must set PolicyOption to NULL. Example: NETWORK_FIREWALL - Distributed deployment model with custom Availability Zone configuration and route management "{\"type\":\"NETWORK_FIREWALL\",\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\",\"priority\":1}],\"networkFirewallStatelessDefaultActions\":[\"aws:forward_to_sfe\",\"customActionName\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"aws:forward_to_sfe\",\"fragmentcustomactionname\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"customActionName\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"metricdimensionvalue\"}]}}},{\"actionName\":\"fragmentcustomactionname\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"fragmentmetricdimensionvalue\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\"}],\"networkFirewallOrchestrationConfig\":{\"firewallCreationConfig\":{\"endpointLocation\":{\"availabilityZoneConfigList\":[{\"availabilityZoneName\":\"us-east-1a\",\"allowedIPV4CidrList\":[\"10.0.0.0/28\"]},{\"availabilityZoneName\":\"us-east-1b\",\"allowedIPV4CidrList\":[\"10.0.0.0/28\"]}]}},\"singleFirewallEndpointPerVPC\":false,\"allowedIPV4CidrList\":null,\"routeManagementAction\":\"MONITOR\",\"routeManagementTargetTypes\":[\"InternetGateway\"],\"routeManagementConfig\":{\"allowCrossAZTrafficIfNoEndpoint\":true}},\"networkFirewallLoggingConfiguration\":{\"logDestinationConfigs\":[{\"logDestinationType\":\"S3\",\"logType\":\"ALERT\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}},{\"logDestinationType\":\"S3\",\"logType\":\"FLOW\",\"logDestination\":{\"bucketName\":\"s3-bucket-name\"}}],\"overrideExistingConfig\":boolean}}" To use the distributed deployment model, you must set PolicyOption to NULL. Example: SECURITY_GROUPS_COMMON "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}" Example: SECURITY_GROUPS_COMMON - Security group tag distribution ""{\"type\":\"SECURITY_GROUPS_COMMON\",\"securityGroups\":[{\"id\":\"sg-000e55995d61a06bd\"}],\"revertManualSecurityGroupChanges\":true,\"exclusiveResourceSecurityGroupManagement\":false,\"applyToAllEC2InstanceENIs\":false,\"includeSharedVPC\":false,\"enableTagDistribution\":true}"" Firewall Manager automatically distributes tags from the primary group to the security groups created by this policy. To use security group tag distribution, you must also set revertManualSecurityGroupChanges to true, otherwise Firewall Manager won't be able to create the policy. When you enable revertManualSecurityGroupChanges, Firewall Manager identifies and reports when the security groups created by this policy become non-compliant. Firewall Manager won't distribute system tags added by Amazon Web Services services into the replica security groups. System tags begin with the aws: prefix. Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as well as to those in VPCs that the account owns "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, \"applyToAllEC2InstanceENIs\":false,\"includeSharedVPC\":true,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}" Example: SECURITY_GROUPS_CONTENT_AUDIT "{\"type\":\"SECURITY_GROUPS_CONTENT_AUDIT\",\"securityGroups\":[{\"id\":\"sg-000e55995d61a06bd\"}],\"securityGroupAction\":{\"type\":\"ALLOW\"}}" The security group action for content audit can be ALLOW or DENY. For ALLOW, all in-scope security group rules must be within the allowed range of the policy's security group rules. For DENY, all in-scope security group rules must not contain a value or a range that matches a rule value or range in the policy security group. Example: SECURITY_GROUPS_USAGE_AUDIT "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}" Example: SHIELD_ADVANCED with web ACL management "{\"type\":\"SHIELD_ADVANCED\",\"optimizeUnassociatedWebACL\":true}" If you set optimizeUnassociatedWebACL to true, Firewall Manager creates web ACLs in accounts within the policy scope if the web ACLs will be used by at least one resource. Firewall Manager creates web ACLs in the accounts within policy scope only if the web ACLs will be used by at least one resource. If at any time an account comes into policy scope, Firewall Manager automatically creates a web ACL in the account if at least one resource will use the web ACL. Upon enablement, Firewall Manager performs a one-time cleanup of unused web ACLs in your account. The cleanup process can take several hours. If a resource leaves policy scope after Firewall Manager creates a web ACL, Firewall Manager doesn't disassociate the resource from the web ACL. If you want Firewall Manager to clean up the web ACL, you must first manually disassociate the resources from the web ACL, and then enable the manage unused web ACLs option in your policy. If you set optimizeUnassociatedWebACL to false, and Firewall Manager automatically creates an empty web ACL in each account that's within policy scope. Specification for SHIELD_ADVANCED for Amazon CloudFront distributions "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": {\"automaticResponseStatus\":\"ENABLED|IGNORED|DISABLED\", \"automaticResponseAction\":\"BLOCK|COUNT\"}, \"overrideCustomerWebaclClassic\":true|false, \"optimizeUnassociatedWebACL\":true|false}" For example: "{\"type\":\"SHIELD_ADVANCED\",\"automaticResponseConfiguration\": {\"automaticResponseStatus\":\"ENABLED\", \"automaticResponseAction\":\"COUNT\"}}" The default value for automaticResponseStatus is IGNORED. The value for automaticResponseAction is only required when automaticResponseStatus is set to ENABLED. The default value for overrideCustomerWebaclClassic is false. For other resource types that you can protect with a Shield Advanced policy, this ManagedServiceData configuration is an empty string. Example: THIRD_PARTY_FIREWALL Replace THIRD_PARTY_FIREWALL_NAME with the name of the third-party firewall. "{ "type":"THIRD_PARTY_FIREWALL", "thirdPartyFirewall":"THIRD_PARTY_FIREWALL_NAME", "thirdPartyFirewallConfig":{ "thirdPartyFirewallPolicyList":["global-1"] }, /// "firewallDeploymentModel":{ "distributedFirewallDeploymentModel":{ "distributedFirewallOrchestrationConfig":{ "firewallCreationConfig":{ "endpointLocation":{ "availabilityZoneConfigList":[ { "availabilityZoneName":"${AvailabilityZone}" } ] } }, "allowedIPV4CidrList":[ ] } } } }" Example: WAFV2 - Account takeover prevention, Bot Control managed rule groups, optimize unassociated web ACL, and rule action override "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesATPRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesATPRuleSet\":{\"loginPath\":\"/loginpath\",\"requestInspection\":{\"payloadType\":\"FORM_ENCODED|JSON\",\"usernameField\":{\"identifier\":\"/form/username\"},\"passwordField\":{\"identifier\":\"/form/password\"}}}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true},{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesBotControlRuleSet\",\"managedRuleGroupConfigs\":[{\"awsmanagedRulesBotControlRuleSet\":{\"inspectionLevel\":\"TARGETED|COMMON\"}}]},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true,\"ruleActionOverrides\":[{\"name\":\"Rule1\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}},{\"name\":\"Rule2\",\"actionToUse\":{\"allow|block|count|captcha|challenge\":{}}}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"optimizeUnassociatedWebACL\":true}" Bot Control - For information about AWSManagedRulesBotControlRuleSet managed rule groups, see AWSManagedRulesBotControlRuleSet in the WAF API Reference. Fraud Control account takeover prevention (ATP) - For information about the properties available for AWSManagedRulesATPRuleSet managed rule groups, see AWSManagedRulesATPRuleSet in the WAF API Reference. Optimize unassociated web ACL - If you set optimizeUnassociatedWebACL to true, Firewall Manager creates web ACLs in accounts within the policy scope if the web ACLs will be used by at least one resource. Firewall Manager creates web ACLs in the accounts within policy scope only if the web ACLs will be used by at least one resource. If at any time an account comes into policy scope, Firewall Manager automatically creates a web ACL in the account if at least one resource will use the web ACL. Upon enablement, Firewall Manager performs a one-time cleanup of unused web ACLs in your account. The cleanup process can take several hours. If a resource leaves policy scope after Firewall Manager creates a web ACL, Firewall Manager disassociates the resource from the web ACL, but won't clean up the unused web ACL. Firewall Manager only cleans up unused web ACLs when you first enable management of unused web ACLs in a policy. If you set optimizeUnassociatedWebACL to false Firewall Manager doesn't manage unused web ACLs, and Firewall Manager automatically creates an empty web ACL in each account that's within policy scope. Rule action overrides - Firewall Manager supports rule action overrides only for managed rule groups. To configure a RuleActionOverrides add the Name of the rule to override, and ActionToUse, which is the new action to use for the rule. For information about using rule action override, see RuleActionOverride in the WAF API Reference. Example: WAFV2 - CAPTCHA and Challenge configs "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[],\"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\":null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":null,\"sampledRequestsEnabledForDefaultActions\":true,\"captchaConfig\":{\"immunityTimeProperty\":{\"immunityTime\":500}},\"challengeConfig\":{\"immunityTimeProperty\":{\"immunityTime\":800}},\"tokenDomains\":[\"google.com\",\"amazon.com\"],\"associationConfig\":{\"requestBody\":{\"CLOUDFRONT\":{\"defaultSizeInspectionLimit\":\"KB_16\"}}}}" CAPTCHA and Challenge configs - If you update the policy's values for associationConfig, captchaConfig, challengeConfig, or tokenDomains, Firewall Manager will overwrite your local web ACLs to contain the new value(s). However, if you don't update the policy's associationConfig, captchaConfig, challengeConfig, or tokenDomains values, the values in your local web ACLs will remain unchanged. For information about association configs, see AssociationConfig. For information about CAPTCHA and Challenge configs, see CaptchaConfig and ChallengeConfig in the WAF API Reference. defaultSizeInspectionLimit - Specifies the maximum size of the web request body component that an associated Amazon CloudFront distribution should send to WAF for inspection. For more information, see DefaultSizeInspectionLimit in the WAF API Reference. Example: WAFV2 - Firewall Manager support for WAF managed rule group versioning "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"versionEnabled\":true,\"version\":\"Version_2.0\",\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesCommonRuleSet\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[{\"name\":\"NoUserAgent_HEADER\"}]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":{\"logDestinationConfigs\":[\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\"],\"redactedFields\":[{\"redactedFieldType\":\"SingleHeader\",\"redactedFieldValue\":\"Cookies\"},{\"redactedFieldType\":\"Method\"}]}}" To use a specific version of a WAF managed rule group in your Firewall Manager policy, you must set versionEnabled to true, and set version to the version you'd like to use. If you don't set versionEnabled to true, or if you omit versionEnabled, then Firewall Manager uses the default version of the WAF managed rule group. Example: WAFV2 - Logging configurations "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null, \"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\": {\"versionEnabled\":null,\"version\":null,\"vendorName\":\"AWS\", \"managedRuleGroupName\":\"AWSManagedRulesAdminProtectionRuleSet\"} ,\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[], \"sampledRequestsEnabled\":true}],\"postProcessRuleGroups\":[], \"defaultAction\":{\"type\":\"ALLOW\"},\"customRequestHandling\" :null,\"customResponse\":null,\"overrideCustomerWebACLAssociation\" :false,\"loggingConfiguration\":{\"logDestinationConfigs\": [\"arn:aws:s3:::aws-waf-logs-example-bucket\"] ,\"redactedFields\":[],\"loggingFilterConfigs\":{\"defaultBehavior\":\"KEEP\", \"filters\":[{\"behavior\":\"KEEP\",\"requirement\":\"MEETS_ALL\", \"conditions\":[{\"actionCondition\":\"CAPTCHA\"},{\"actionCondition\": \"CHALLENGE\"}, {\"actionCondition\":\"EXCLUDED_AS_COUNT\"}]}]}},\"sampledRequestsEnabledForDefaultActions\":true}" Firewall Manager supports Amazon Kinesis Data Firehose and Amazon S3 as the logDestinationConfigs in your loggingConfiguration. For information about WAF logging configurations, see LoggingConfiguration in the WAF API Reference In the loggingConfiguration, you can specify one logDestinationConfigs. Optionally provide as many as 20 redactedFields. The RedactedFieldType must be one of URI, QUERY_STRING, HEADER, or METHOD. Example: WAF Classic "{\"type\": \"WAF\", \"ruleGroups\": [{\"id\":\"12345678-1bcd-9012-efga-0987654321ab\", \"overrideAction\" : {\"type\": \"COUNT\"}}], \"defaultAction\": {\"type\": \"BLOCK\"}}" public let managedServiceData: String? - /// Contains the Network Firewall firewall policy options to configure a centralized deployment model. + /// Contains the settings to configure a network ACL policy, a Network Firewall firewall policy deployment model, or a third-party firewall policy. public let policyOption: PolicyOption? /// The service that the policy is using to protect the resources. This specifies the type of policy that is created, either an WAF policy, a Shield Advanced policy, or a security group policy. For security group policies, Firewall Manager supports one security group for each common policy and for each content audit policy. This is an adjustable limit that you can increase by contacting Amazon Web Services Support. public let type: SecurityServiceType @@ -3651,6 +4036,7 @@ extension FMS { try self.validate(self.managedServiceData, name: "managedServiceData", parent: name, max: 10000) try self.validate(self.managedServiceData, name: "managedServiceData", parent: name, min: 1) try self.validate(self.managedServiceData, name: "managedServiceData", parent: name, pattern: "^((?!\\\\[nr]).)+$") + try self.policyOption?.validate(name: "\(name).policyOption") } private enum CodingKeys: String, CodingKey { @@ -3662,17 +4048,21 @@ extension FMS { public struct StatefulEngineOptions: AWSDecodableShape { /// Indicates how to manage the order of stateful rule evaluation for the policy. - /// DEFAULT_ACTION_ORDER is the default behavior. Stateful rules are provided to the rule engine + /// Stateful rules are provided to the rule engine /// as Suricata compatible strings, and Suricata evaluates them based on certain settings. For more - /// information, see Evaluation order for stateful rules in the Network Firewall Developer Guide. + /// information, see Evaluation order for stateful rules in the Network Firewall Developer Guide. Default: DEFAULT_ACTION_ORDER public let ruleOrder: RuleOrder? + /// Indicates how Network Firewall should handle traffic when a network connection breaks midstream. DROP - Fail closed and drop all subsequent traffic going to the firewall. CONTINUE - Continue to apply rules to subsequent traffic without context from traffic before the break. This impacts the behavior of rules that depend on context. For example, with a stateful rule that drops HTTP traffic, Network Firewall won't match subsequent traffic because the it won't have the context from session initialization, which defines the application layer protocol as HTTP. However, a TCP-layer rule using a flow:stateless rule would still match, and so would the aws:drop_strict default action. REJECT - Fail closed and drop all subsequent traffic going to the firewall. With this option, Network Firewall also sends a TCP reject packet back to the client so the client can immediately establish a new session. With the new session, Network Firewall will have context and will apply rules appropriately. For applications that are reliant on long-lived TCP connections that trigger Gateway Load Balancer idle timeouts, this is the recommended setting. FMS_IGNORE - Firewall Manager doesn't monitor or modify the Network Firewall stream exception policy settings. For more information, see Stream exception policy in your firewall policy in the Network Firewall Developer Guide. Default: FMS_IGNORE + public let streamExceptionPolicy: StreamExceptionPolicy? - public init(ruleOrder: RuleOrder? = nil) { + public init(ruleOrder: RuleOrder? = nil, streamExceptionPolicy: StreamExceptionPolicy? = nil) { self.ruleOrder = ruleOrder + self.streamExceptionPolicy = streamExceptionPolicy } private enum CodingKeys: String, CodingKey { case ruleOrder = "RuleOrder" + case streamExceptionPolicy = "StreamExceptionPolicy" } } diff --git a/Sources/Soto/Services/FSx/FSx_api.swift b/Sources/Soto/Services/FSx/FSx_api.swift index 0e6c122c4c..666a35a369 100644 --- a/Sources/Soto/Services/FSx/FSx_api.swift +++ b/Sources/Soto/Services/FSx/FSx_api.swift @@ -76,6 +76,7 @@ public struct FSx: AWSService { static var variantEndpoints: [EndpointVariantType: AWSServiceConfig.EndpointVariant] {[ [.fips]: .init(endpoints: [ "ca-central-1": "fsx-fips.ca-central-1.amazonaws.com", + "ca-west-1": "fsx-fips.ca-west-1.amazonaws.com", "us-east-1": "fsx-fips.us-east-1.amazonaws.com", "us-east-2": "fsx-fips.us-east-2.amazonaws.com", "us-gov-east-1": "fsx-fips.us-gov-east-1.amazonaws.com", diff --git a/Sources/Soto/Services/GameLift/GameLift_api.swift b/Sources/Soto/Services/GameLift/GameLift_api.swift index 2b79bac335..1db43b217c 100644 --- a/Sources/Soto/Services/GameLift/GameLift_api.swift +++ b/Sources/Soto/Services/GameLift/GameLift_api.swift @@ -127,7 +127,20 @@ public struct GameLift: AWSService { ) } - /// Creates a fleet of Amazon Elastic Compute Cloud (Amazon EC2) instances to host your custom game server or Realtime Servers. Use this operation to configure the computing resources for your fleet and provide instructions for running game servers on each instance. Most Amazon GameLift fleets can deploy instances to multiple locations, including the home Region (where the fleet is created) and an optional set of remote locations. Fleets that are created in the following Amazon Web Services Regions support multiple locations: us-east-1 (N. Virginia), us-west-2 (Oregon), eu-central-1 (Frankfurt), eu-west-1 (Ireland), ap-southeast-2 (Sydney), ap-northeast-1 (Tokyo), and ap-northeast-2 (Seoul). Fleets that are created in other Amazon GameLift Regions can deploy instances in the fleet's home Region only. All fleet instances use the same configuration regardless of location; however, you can adjust capacity settings and turn auto-scaling on/off for each location. To create a fleet, choose the hardware for your instances, specify a game server build or Realtime script to deploy, and provide a runtime configuration to direct Amazon GameLift how to start and run game servers on each instance in the fleet. Set permissions for inbound traffic to your game servers, and enable optional features as needed. When creating a multi-location fleet, provide a list of additional remote locations. If you need to debug your fleet, fetch logs, view performance metrics or other actions on the fleet, create the development fleet with port 22/3389 open. As a best practice, we recommend opening ports for remote access only when you need them and closing them when you're finished. If successful, this operation creates a new Fleet resource and places it in NEW status, which prompts Amazon GameLift to initiate the fleet creation workflow. You can track fleet creation by checking fleet status using DescribeFleetAttributes and DescribeFleetLocationAttributes/, or by monitoring fleet creation events using DescribeFleetEvents. When the fleet status changes to ACTIVE, you can enable automatic scaling with PutScalingPolicy and set capacity for the home Region with UpdateFleetCapacity. When the status of each remote location reaches ACTIVE, you can set capacity by location using UpdateFleetCapacity. Learn more Setting up fleets Debug fleet creation issues Multi-location fleets + /// This operation is used with the Amazon GameLift containers feature, which is currently in public preview. Creates a ContainerGroupDefinition resource that describes a set of containers for hosting your game server with Amazon GameLift managed EC2 hosting. An Amazon GameLift container group is similar to a container "task" and "pod". Each container group can have one or more containers. Use container group definitions when you create a container fleet. Container group definitions determine how Amazon GameLift deploys your containers to each instance in a container fleet. You can create two types of container groups, based on scheduling strategy: A replica container group manages the containers that run your game server application and supporting software. Replica container groups might be replicated multiple times on each fleet instance, depending on instance resources. A daemon container group manages containers that run other software, such as background services, logging, or test processes. You might use a daemon container group for processes that need to run only once per fleet instance, or processes that need to persist independently of the replica container group. To create a container group definition, specify a group name, a list of container definitions, and maximum total CPU and memory requirements for the container group. Specify an operating system and scheduling strategy or use the default values. When using the Amazon Web Services CLI tool, you can pass in your container definitions as a JSON file. This operation requires Identity and Access Management (IAM) permissions to access container images in Amazon ECR repositories. See IAM permissions for Amazon GameLift for help setting the appropriate permissions. If successful, this operation creates a new ContainerGroupDefinition resource with an ARN value assigned. You can't change the properties of a container group definition. Instead, create a new one. Learn more Create a container group definition Container fleet design guide Create a container definition as a JSON file + @Sendable + public func createContainerGroupDefinition(_ input: CreateContainerGroupDefinitionInput, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateContainerGroupDefinitionOutput { + return try await self.client.execute( + operation: "CreateContainerGroupDefinition", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview. Creates a fleet of compute resources to host your game servers. Use this operation to set up the following types of fleets based on compute type: Managed EC2 fleet An EC2 fleet is a set of Amazon Elastic Compute Cloud (Amazon EC2) instances. Your game server build is deployed to each fleet instance. Amazon GameLift manages the fleet's instances and controls the lifecycle of game server processes, which host game sessions for players. EC2 fleets can have instances in multiple locations. Each instance in the fleet is designated a Compute. To create an EC2 fleet, provide these required parameters: Either BuildId or ScriptId ComputeType set to EC2 (the default value) EC2InboundPermissions EC2InstanceType FleetType Name RuntimeConfiguration with at least one ServerProcesses configuration If successful, this operation creates a new fleet resource and places it in NEW status while Amazon GameLift initiates the fleet creation workflow. To debug your fleet, fetch logs, view performance metrics or other actions on the fleet, create a development fleet with port 22/3389 open. As a best practice, we recommend opening ports for remote access only when you need them and closing them when you're finished. When the fleet status is ACTIVE, you can adjust capacity settings and turn autoscaling on/off for each location. Managed container fleet A container fleet is a set of Amazon Elastic Compute Cloud (Amazon EC2) instances. Your container architecture is deployed to each fleet instance based on the fleet configuration. Amazon GameLift manages the containers on each fleet instance and controls the lifecycle of game server processes, which host game sessions for players. Container fleets can have instances in multiple locations. Each container on an instance that runs game server processes is registered as a Compute. To create a container fleet, provide these required parameters: ComputeType set to CONTAINER ContainerGroupsConfiguration EC2InboundPermissions EC2InstanceType FleetType set to ON_DEMAND Name RuntimeConfiguration with at least one ServerProcesses configuration If successful, this operation creates a new fleet resource and places it in NEW status while Amazon GameLift initiates the fleet creation workflow. When the fleet status is ACTIVE, you can adjust capacity settings and turn autoscaling on/off for each location. Anywhere fleet An Anywhere fleet represents compute resources that are not owned or managed by Amazon GameLift. You might create an Anywhere fleet with your local machine for testing, or use one to host game servers with on-premises hardware or other game hosting solutions. To create an Anywhere fleet, provide these required parameters: ComputeType set to ANYWHERE Locations specifying a custom location Name If successful, this operation creates a new fleet resource and places it in ACTIVE status. You can register computes with a fleet in ACTIVE status. Learn more Setting up fleets Setting up a container fleet Debug fleet creation issues Multi-location fleets @Sendable public func createFleet(_ input: CreateFleetInput, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateFleetOutput { return try await self.client.execute( @@ -140,7 +153,7 @@ public struct GameLift: AWSService { ) } - /// Adds remote locations to a fleet and begins populating the new locations with EC2 instances. The new instances conform to the fleet's instance type, auto-scaling, and other configuration settings. This operation cannot be used with fleets that don't support remote locations. Fleets can have multiple locations only if they reside in Amazon Web Services Regions that support this feature and were created after the feature was released in March 2021. To add fleet locations, specify the fleet to be updated and provide a list of one or more locations. If successful, this operation returns the list of added locations with their status set to NEW. Amazon GameLift initiates the process of starting an instance in each added location. You can track the status of each new location by monitoring location creation events using DescribeFleetEvents. Learn more Setting up fleets Multi-location fleets + /// This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview. Adds remote locations to an EC2 or container fleet and begins populating the new locations with instances. The new instances conform to the fleet's instance type, auto-scaling, and other configuration settings. You can't add remote locations to a fleet that resides in an Amazon Web Services Region that doesn't support multiple locations. Fleets created prior to March 2021 can't support multiple locations. To add fleet locations, specify the fleet to be updated and provide a list of one or more locations. If successful, this operation returns the list of added locations with their status set to NEW. Amazon GameLift initiates the process of starting an instance in each added location. You can track the status of each new location by monitoring location creation events using DescribeFleetEvents. Learn more Setting up fleets Multi-location fleets @Sendable public func createFleetLocations(_ input: CreateFleetLocationsInput, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateFleetLocationsOutput { return try await self.client.execute( @@ -322,7 +335,20 @@ public struct GameLift: AWSService { ) } - /// Deletes all resources and information related a fleet. Any current fleet instances, including those in remote locations, are shut down. You don't need to call DeleteFleetLocations separately. If the fleet being deleted has a VPC peering connection, you first need to get a valid authorization (good for 24 hours) by calling CreateVpcPeeringAuthorization. You do not need to explicitly delete the VPC peering connection. To delete a fleet, specify the fleet ID to be terminated. During the deletion process the fleet status is changed to DELETING. When completed, the status switches to TERMINATED and the fleet event FLEET_DELETED is sent. Learn more Setting up Amazon GameLift Fleets + /// This operation is used with the Amazon GameLift containers feature, which is currently in public preview. Deletes a container group definition resource. You can delete a container group definition if there are no fleets using the definition. To delete a container group definition, identify the resource to delete. Learn more Manage a container group definition + @Sendable + public func deleteContainerGroupDefinition(_ input: DeleteContainerGroupDefinitionInput, logger: Logger = AWSClient.loggingDisabled) async throws { + return try await self.client.execute( + operation: "DeleteContainerGroupDefinition", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Deletes all resources and information related to a fleet and shuts down any currently running fleet instances, including those in remote locations. If the fleet being deleted has a VPC peering connection, you first need to get a valid authorization (good for 24 hours) by calling CreateVpcPeeringAuthorization. You don't need to explicitly delete the VPC peering connection. To delete a fleet, specify the fleet ID to be terminated. During the deletion process, the fleet status is changed to DELETING. When completed, the status switches to TERMINATED and the fleet event FLEET_DELETED is emitted. Learn more Setting up Amazon GameLift Fleets @Sendable public func deleteFleet(_ input: DeleteFleetInput, logger: Logger = AWSClient.loggingDisabled) async throws { return try await self.client.execute( @@ -465,7 +491,7 @@ public struct GameLift: AWSService { ) } - /// Removes a compute resource from an Amazon GameLift Anywhere fleet. Deregistered computes can no longer host game sessions through Amazon GameLift. + /// This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview. Removes a compute resource from an Amazon GameLift Anywhere fleet or container fleet. Deregistered computes can no longer host game sessions through Amazon GameLift. For an Anywhere fleet or a container fleet that's running the Amazon GameLift Agent, the Agent handles all compute registry tasks for you. For an Anywhere fleet that doesn't use the Agent, call this operation to deregister fleet computes. To deregister a compute, call this operation from the compute that's being deregistered and specify the compute name and the fleet ID. @Sendable public func deregisterCompute(_ input: DeregisterComputeInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DeregisterComputeOutput { return try await self.client.execute( @@ -517,7 +543,7 @@ public struct GameLift: AWSService { ) } - /// Retrieves properties for a compute resource in an Amazon GameLift fleet. Call ListCompute to get a list of compute resources in a fleet. You can request information for computes in either managed EC2 fleets or Anywhere fleets. To request compute properties, specify the compute name and fleet ID. If successful, this operation returns details for the requested compute resource. For managed EC2 fleets, this operation returns the fleet's EC2 instances. For Anywhere fleets, this operation returns the fleet's registered computes. + /// This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview. Retrieves properties for a compute resource in an Amazon GameLift fleet. To get a list of all computes in a fleet, call ListCompute. To request information on a specific compute, provide the fleet ID and compute name. If successful, this operation returns details for the requested compute resource. Depending on the fleet's compute type, the result includes the following information: For EC2 fleets, this operation returns information about the EC2 instance. For ANYWHERE fleets, this operation returns information about the registered compute. For CONTAINER fleets, this operation returns information about the container that's registered as a compute, and the instance it's running on. The compute name is the container name. @Sendable public func describeCompute(_ input: DescribeComputeInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeComputeOutput { return try await self.client.execute( @@ -530,6 +556,19 @@ public struct GameLift: AWSService { ) } + /// This operation is used with the Amazon GameLift containers feature, which is currently in public preview. Retrieves the properties of a container group definition, including all container definitions in the group. To retrieve a container group definition, provide a resource identifier. If successful, this operation returns the complete properties of the container group definition. Learn more Manage a container group definition + @Sendable + public func describeContainerGroupDefinition(_ input: DescribeContainerGroupDefinitionInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeContainerGroupDefinitionOutput { + return try await self.client.execute( + operation: "DescribeContainerGroupDefinition", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Retrieves the instance limits and current utilization for an Amazon Web Services Region or location. Instance limits control the number of instances, per instance type, per location, that your Amazon Web Services account can use. Learn more at Amazon EC2 Instance Types. The information returned includes the maximum number of instances allowed and your account's current usage across all fleets. This information can affect your ability to scale your Amazon GameLift fleets. You can request a limit increase for your account by using the Service limits page in the Amazon GameLift console. Instance limits differ based on whether the instances are deployed in a fleet's home Region or in a remote location. For remote locations, limits also differ based on the combination of home Region and remote location. All requests must specify an Amazon Web Services Region (either explicitly or as your default settings). To get the limit for a remote location, you must also specify the location. For example, the following requests all return different results: Request specifies the Region ap-northeast-1 with no location. The result is limits and usage data on all instance types that are deployed in us-east-2, by all of the fleets that reside in ap-northeast-1. Request specifies the Region us-east-1 with location ca-central-1. The result is limits and usage data on all instance types that are deployed in ca-central-1, by all of the fleets that reside in us-east-2. These limits do not affect fleets in any other Regions that deploy instances to ca-central-1. Request specifies the Region eu-west-1 with location ca-central-1. The result is limits and usage data on all instance types that are deployed in ca-central-1, by all of the fleets that reside in eu-west-1. This operation can be used in the following ways: To get limit and usage data for all instance types that are deployed in an Amazon Web Services Region by fleets that reside in the same Region: Specify the Region only. Optionally, specify a single instance type to retrieve information for. To get limit and usage data for all instance types that are deployed to a remote location by fleets that reside in different Amazon Web Services Region: Provide both the Amazon Web Services Region and the remote location. Optionally, specify a single instance type to retrieve information for. If successful, an EC2InstanceLimits object is returned with limits and usage data for each requested instance type. Learn more Setting up Amazon GameLift fleets @Sendable public func describeEC2InstanceLimits(_ input: DescribeEC2InstanceLimitsInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeEC2InstanceLimitsOutput { @@ -543,7 +582,7 @@ public struct GameLift: AWSService { ) } - /// Retrieves core fleet-wide properties, including the computing hardware and deployment configuration for all instances in the fleet. This operation can be used in the following ways: To get attributes for one or more specific fleets, provide a list of fleet IDs or fleet ARNs. To get attributes for all fleets, do not provide a fleet identifier. When requesting attributes for multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a FleetAttributes object is returned for each fleet requested, unless the fleet identifier is not found. Some API operations limit the number of fleet IDs that allowed in one request. If a request exceeds this limit, the request fails and the error message contains the maximum allowed number. Learn more Setting up Amazon GameLift fleets + /// This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview. Retrieves core fleet-wide properties for fleets in an Amazon Web Services Region. Properties include the computing hardware and deployment configuration for instances in the fleet. You can use this operation in the following ways: To get attributes for specific fleets, provide a list of fleet IDs or fleet ARNs. To get attributes for all fleets, do not provide a fleet identifier. When requesting attributes for multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a FleetAttributes object is returned for each fleet requested, unless the fleet identifier is not found. Some API operations limit the number of fleet IDs that allowed in one request. If a request exceeds this limit, the request fails and the error message contains the maximum allowed number. Learn more Setting up Amazon GameLift fleets @Sendable public func describeFleetAttributes(_ input: DescribeFleetAttributesInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeFleetAttributesOutput { return try await self.client.execute( @@ -556,7 +595,7 @@ public struct GameLift: AWSService { ) } - /// Retrieves the resource capacity settings for one or more fleets. The data returned includes the current fleet capacity (number of EC2 instances), and settings that can control how capacity scaling. For fleets with remote locations, this operation retrieves data for the fleet's home Region only. This operation can be used in the following ways: To get capacity data for one or more specific fleets, provide a list of fleet IDs or fleet ARNs. To get capacity data for all fleets, do not provide a fleet identifier. 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. Each FleetCapacity object includes a Location property, which is set to the fleet's home Region. When a list of fleet IDs is provided, attribute objects are returned only for fleets that currently exist. Some API operations may limit the number of fleet IDs that are allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed. Learn more Setting up Amazon GameLift fleets GameLift metrics for fleets + /// This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview. Retrieves the resource capacity settings for one or more fleets. For a container fleet, this operation also returns counts for replica container groups. With multi-location fleets, this operation retrieves data for the fleet's home Region only. To retrieve capacity for remote locations, see DescribeFleetLocationCapacity. This operation can be used in the following ways: To get capacity data for one or more specific fleets, provide a list of fleet IDs or fleet ARNs. To get capacity data for all fleets, do not provide a fleet identifier. 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. Each FleetCapacity object includes a Location property, which is set to the fleet's home Region. Capacity values are returned only for fleets that currently exist. Some API operations may limit the number of fleet IDs that are allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed. Learn more Setting up Amazon GameLift fleets GameLift metrics for fleets @Sendable public func describeFleetCapacity(_ input: DescribeFleetCapacityInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeFleetCapacityOutput { return try await self.client.execute( @@ -595,7 +634,7 @@ public struct GameLift: AWSService { ) } - /// Retrieves the resource capacity settings for a fleet location. The data returned includes the current capacity (number of EC2 instances) and some scaling settings for the requested fleet location. Use this operation to retrieve capacity information for a fleet's remote location or home Region (you can also retrieve home Region capacity by calling DescribeFleetCapacity). To retrieve capacity data, identify a fleet and location. If successful, a FleetCapacity object is returned for the requested fleet location. Learn more Setting up Amazon GameLift fleets GameLift metrics for fleets + /// Retrieves the resource capacity settings for a fleet location. The data returned includes the current capacity (number of EC2 instances) and some scaling settings for the requested fleet location. For a container fleet, this operation also returns counts for replica container groups. Use this operation to retrieve capacity information for a fleet's remote location or home Region (you can also retrieve home Region capacity by calling DescribeFleetCapacity). To retrieve capacity data, identify a fleet and location. If successful, a FleetCapacity object is returned for the requested fleet location. Learn more Setting up Amazon GameLift fleets GameLift metrics for fleets @Sendable public func describeFleetLocationCapacity(_ input: DescribeFleetLocationCapacityInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeFleetLocationCapacityOutput { return try await self.client.execute( @@ -621,7 +660,7 @@ public struct GameLift: AWSService { ) } - /// Retrieves a fleet's inbound connection permissions. Connection permissions specify the range of IP addresses and port settings that incoming traffic can use to access server processes in the fleet. Game sessions that are running on instances in the fleet must use connections that fall in this range. This operation can be used in the following ways: To retrieve the inbound connection permissions for a fleet, identify the fleet's unique identifier. To check the status of recent updates to a fleet remote location, specify the fleet ID and a location. Port setting updates can take time to propagate across all locations. If successful, a set of IpPermission objects is returned for the requested fleet ID. When a location is specified, a pending status is included. If the requested fleet has been deleted, the result set is empty. Learn more Setting up Amazon GameLift fleets + /// Retrieves a fleet's inbound connection permissions. Connection permissions specify IP addresses and port settings that incoming traffic can use to access server processes in the fleet. Game server processes that are running in the fleet must use a port that falls within this range. To connect to game server processes on a container fleet, the port settings should include one or more of the fleet's connection ports. Use this operation in the following ways: To retrieve the port settings for a fleet, identify the fleet's unique identifier. To check the status of recent updates to a fleet remote location, specify the fleet ID and a location. Port setting updates can take time to propagate across all locations. If successful, a set of IpPermission objects is returned for the requested fleet ID. When specifying a location, this operation returns a pending status. If the requested fleet has been deleted, the result set is empty. Learn more Setting up Amazon GameLift fleets @Sendable public func describeFleetPortSettings(_ input: DescribeFleetPortSettingsInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeFleetPortSettingsOutput { return try await self.client.execute( @@ -803,7 +842,7 @@ public struct GameLift: AWSService { ) } - /// Retrieves a fleet's runtime configuration settings. The runtime configuration tells Amazon GameLift which server processes to run (and how) on each instance in the fleet. To get the runtime configuration that is currently in forces for a fleet, provide the fleet ID. If successful, a RuntimeConfiguration object is returned for the requested fleet. If the requested fleet has been deleted, the result set is empty. Learn more Setting up Amazon GameLift fleets Running multiple processes on a fleet + /// Retrieves a fleet's runtime configuration settings. The runtime configuration determines which server processes run, and how, on computes in the fleet. For managed EC2 fleets, the runtime configuration describes server processes that run on each fleet instance. For container fleets, the runtime configuration describes server processes that run in each replica container group. You can update a fleet's runtime configuration at any time using UpdateRuntimeConfiguration. To get the current runtime configuration for a fleet, provide the fleet ID. If successful, a RuntimeConfiguration object is returned for the requested fleet. If the requested fleet has been deleted, the result set is empty. Learn more Setting up Amazon GameLift fleets Running multiple processes on a fleet @Sendable public func describeRuntimeConfiguration(_ input: DescribeRuntimeConfigurationInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeRuntimeConfigurationOutput { return try await self.client.execute( @@ -868,7 +907,7 @@ public struct GameLift: AWSService { ) } - /// Requests authorization to remotely connect to a compute resource in an Amazon GameLift fleet. Call this action to connect to an instance in a managed EC2 fleet if the fleet's game build uses Amazon GameLift server SDK 5.x or later. To connect to instances with game builds that use server SDK 4.x or earlier, call GetInstanceAccess. To request access to a compute, identify the specific EC2 instance and the fleet it belongs to. You can retrieve instances for a managed EC2 fleet by calling ListCompute. If successful, this operation returns a set of temporary Amazon Web Services credentials, including a two-part access key and a session token. Use these credentials with Amazon EC2 Systems Manager (SSM) to start a session with the compute. For more details, see Starting a session (CLI) in the Amazon EC2 Systems Manager User Guide. Learn more Remotely connect to fleet instances Debug fleet issues + /// This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview. Requests authorization to remotely connect to a hosting resource in a Amazon GameLift managed fleet. This operation is not used with Amazon GameLift Anywhere fleets To request access, specify the compute name and the fleet ID. If successful, this operation returns a set of temporary Amazon Web Services credentials, including a two-part access key and a session token. EC2 fleets With an EC2 fleet (where compute type is EC2), use these credentials with Amazon EC2 Systems Manager (SSM) to start a session with the compute. For more details, see Starting a session (CLI) in the Amazon EC2 Systems Manager User Guide. Container fleets With a container fleet (where compute type is CONTAINER), use these credentials and the target value with SSM to connect to the fleet instance where the container is running. After you're connected to the instance, use Docker commands to interact with the container. Learn more Remotely connect to fleet instances Debug fleet issues Remotely connect to a container fleet @Sendable public func getComputeAccess(_ input: GetComputeAccessInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetComputeAccessOutput { return try await self.client.execute( @@ -881,7 +920,7 @@ public struct GameLift: AWSService { ) } - /// Requests an authentication token from Amazon GameLift for a registered compute in an Anywhere fleet. The game servers that are running on the compute use this token to authenticate with the Amazon GameLift service. Each server process must provide a valid authentication token in its call to the Amazon GameLift server SDK action InitSDK(). Authentication tokens are valid for a limited time span. Use a mechanism to regularly request a fresh authentication token before the current token expires. Learn more Create an Anywhere fleet Test your integration Server SDK reference guides (for version 5.x) + /// Requests an authentication token from Amazon GameLift for a compute resource in an Amazon GameLift Anywhere fleet or container fleet. Game servers that are running on the compute use this token to communicate with the Amazon GameLift service, such as when calling the Amazon GameLift server SDK action InitSDK(). Authentication tokens are valid for a limited time span, so you need to request a fresh token before the current token expires. Use this operation based on the fleet compute type: For EC2 fleets, auth token retrieval and refresh is handled automatically. All game servers that are running on all fleet instances have access to a valid auth token. For ANYWHERE and CONTAINER fleets, if you're using the Amazon GameLift Agent, auth token retrieval and refresh is handled automatically for any container or Anywhere compute where the Agent is running. If you're not using the Agent, create a mechanism to retrieve and refresh auth tokens for computes that are running game server processes. Learn more Create an Anywhere fleet Test your integration Server SDK reference guides (for version 5.x) @Sendable public func getComputeAuthToken(_ input: GetComputeAuthTokenInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetComputeAuthTokenOutput { return try await self.client.execute( @@ -946,7 +985,7 @@ public struct GameLift: AWSService { ) } - /// Retrieves the compute resources in an Amazon GameLift fleet. You can request information for either managed EC2 fleets or Anywhere fleets. To request a list of computes, specify the fleet ID. You can filter the result set by location. Use the pagination parameters to retrieve results in a set of sequential pages. If successful, this operation returns the compute resource for the requested fleet. For managed EC2 fleets, it returns a list of EC2 instances. For Anywhere fleets, it returns a list of registered compute names. + /// This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview. Retrieves information on the compute resources in an Amazon GameLift fleet. To request a list of computes, specify the fleet ID. Use the pagination parameters to retrieve results in a set of sequential pages. You can filter the result set by location. If successful, this operation returns information on all computes in the requested fleet. Depending on the fleet's compute type, the result includes the following information: For EC2 fleets, this operation returns information about the EC2 instance. Compute names are instance IDs. For ANYWHERE fleets, this operation returns the compute names and details provided when the compute was registered with RegisterCompute. The GameLiftServiceSdkEndpoint or GameLiftAgentEndpoint is included. For CONTAINER fleets, this operation returns information about containers that are registered as computes, and the instances they're running on. Compute names are container names. @Sendable public func listCompute(_ input: ListComputeInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ListComputeOutput { return try await self.client.execute( @@ -959,7 +998,20 @@ public struct GameLift: AWSService { ) } - /// Retrieves a collection of fleet resources in an Amazon Web Services Region. You can call this operation to get fleets in a previously selected default Region (see https://docs.aws.amazon.com/credref/latest/refdocs/setting-global-region.htmlor specify a Region in your request. You can filter the result set to find only those fleets that are deployed with a specific build or script. For fleets that have multiple locations, this operation retrieves fleets based on their home Region only. This operation can be used in the following ways: To get a list of all fleets in a Region, don't provide a build or script identifier. To get a list of all fleets where a specific custom game build is deployed, provide the build ID. To get a list of all Realtime Servers fleets with a specific configuration script, provide the script ID. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a list of fleet IDs that match the request parameters is returned. A NextToken value is also returned if there are more result pages to retrieve. Fleet resources are not listed in a particular order. Learn more Setting up Amazon GameLift fleets + /// This operation is used with the Amazon GameLift containers feature, which is currently in public preview. Retrieves all container group definitions for the Amazon Web Services account and Amazon Web Services Region that are currently in use. You can filter the result set by the container groups' scheduling strategy. Use the pagination parameters to retrieve results in a set of sequential pages. This operation returns the list of container group definitions in no particular order. Learn more Manage a container group definition + @Sendable + public func listContainerGroupDefinitions(_ input: ListContainerGroupDefinitionsInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ListContainerGroupDefinitionsOutput { + return try await self.client.execute( + operation: "ListContainerGroupDefinitions", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview. Retrieves a collection of fleet resources in an Amazon Web Services Region. You can filter the result set to find only those fleets that are deployed with a specific build or script. For fleets that have multiple locations, this operation retrieves fleets based on their home Region only. You can use operation in the following ways: To get a list of all fleets in a Region, don't provide a build or script identifier. To get a list of all fleets where a specific game build is deployed, provide the build ID. To get a list of all Realtime Servers fleets with a specific configuration script, provide the script ID. To get a list of all fleets with a specific container group definition, provide the ContainerGroupDefinition ID. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, this operation returns a list of fleet IDs that match the request parameters. A NextToken value is also returned if there are more result pages to retrieve. Fleet IDs are returned in no particular order. @Sendable public func listFleets(_ input: ListFleetsInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ListFleetsOutput { return try await self.client.execute( @@ -1050,7 +1102,7 @@ public struct GameLift: AWSService { ) } - /// Registers a compute resource to an Amazon GameLift Anywhere fleet. With Anywhere fleets you can incorporate your own computing hardware into an Amazon GameLift game hosting solution. To register a compute to a fleet, give the compute a name (must be unique within the fleet) and specify the compute resource's DNS name or IP address. Provide the Anywhere fleet ID and a fleet location to associate with the compute being registered. You can optionally include the path to a TLS certificate on the compute resource. If successful, this operation returns the compute details, including an Amazon GameLift SDK endpoint. Game server processes that run on the compute use this endpoint to communicate with the Amazon GameLift service. Each server process includes the SDK endpoint in its call to the Amazon GameLift server SDK action InitSDK(). Learn more Create an Anywhere fleet Test your integration Server SDK reference guides (for version 5.x) + /// This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview. Registers a compute resource in an Amazon GameLift fleet. Register computes with an Amazon GameLift Anywhere fleet or a container fleet. For an Anywhere fleet or a container fleet that's running the Amazon GameLift Agent, the Agent handles all compute registry tasks for you. For an Anywhere fleet that doesn't use the Agent, call this operation to register fleet computes. To register a compute, give the compute a name (must be unique within the fleet) and specify the compute resource's DNS name or IP address. Provide a fleet ID and a fleet location to associate with the compute being registered. You can optionally include the path to a TLS certificate on the compute resource. If successful, this operation returns compute details, including an Amazon GameLift SDK endpoint or Agent endpoint. Game server processes running on the compute can use this endpoint to communicate with the Amazon GameLift service. Each server process includes the SDK endpoint in its call to the Amazon GameLift server SDK action InitSDK(). To view compute details, call DescribeCompute with the compute name. Learn more Create an Anywhere fleet Test your integration Server SDK reference guides (for version 5.x) @Sendable public func registerCompute(_ input: RegisterComputeInput, logger: Logger = AWSClient.loggingDisabled) async throws -> RegisterComputeOutput { return try await self.client.execute( @@ -1076,7 +1128,7 @@ public struct GameLift: AWSService { ) } - /// Retrieves a fresh set of credentials for use when uploading a new set of game build files to Amazon GameLift's Amazon S3. This is done as part of the build creation process; see GameSession. To request new credentials, specify the build ID as returned with an initial CreateBuild request. If successful, a new set of credentials are returned, along with the S3 storage location associated with the build ID. Learn more Create a Build with Files in S3 All APIs by task + /// Retrieves a fresh set of credentials for use when uploading a new set of game build files to Amazon GameLift's Amazon S3. This is done as part of the build creation process; see CreateBuild. To request new credentials, specify the build ID as returned with an initial CreateBuild request. If successful, a new set of credentials are returned, along with the S3 storage location associated with the build ID. Learn more Create a Build with Files in S3 All APIs by task @Sendable public func requestUploadCredentials(_ input: RequestUploadCredentialsInput, logger: Logger = AWSClient.loggingDisabled) async throws -> RequestUploadCredentialsOutput { return try await self.client.execute( @@ -1089,7 +1141,7 @@ public struct GameLift: AWSService { ) } - /// Retrieves the fleet ID that an alias is currently pointing to. Related actions All APIs by task + /// Attempts to retrieve a fleet ID that is associated with an alias. Specify a unique alias identifier. If the alias has a SIMPLE routing strategy, Amazon GameLift returns a fleet ID. If the alias has a TERMINAL routing strategy, the result is a TerminalRoutingStrategyException. Related actions All APIs by task @Sendable public func resolveAlias(_ input: ResolveAliasInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ResolveAliasOutput { return try await self.client.execute( @@ -1115,7 +1167,7 @@ public struct GameLift: AWSService { ) } - /// Retrieves all active game sessions that match a set of search criteria and sorts them into a specified order. This operation is not designed to continually track game session status because that practice can cause you to exceed your API limit and generate errors. Instead, configure an Amazon Simple Notification Service (Amazon SNS) topic to receive notifications from a matchmaker or game session placement queue. When searching for game sessions, you specify exactly where you want to search and provide a search filter expression, a sort expression, or both. A search request can search only one fleet, but it can search all of a fleet's locations. This operation can be used in the following ways: To search all game sessions that are currently running on all locations in a fleet, provide a fleet or alias ID. This approach returns game sessions in the fleet's home Region and all remote locations that fit the search criteria. To search all game sessions that are currently running on a specific fleet location, provide a fleet or alias ID and a location name. For location, you can specify a fleet's home Region or any remote location. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a GameSession object is returned for each game session that matches the request. Search finds game sessions that are in ACTIVE status only. To retrieve information on game sessions in other statuses, use DescribeGameSessions . To set search and sort criteria, create a filter expression using the following game session attributes. For game session search examples, see the Examples section of this topic. gameSessionId -- A unique identifier for the game session. You can use either a GameSessionId or GameSessionArn value. gameSessionName -- Name assigned to a game session. Game session names do not need to be unique to a game session. gameSessionProperties -- A set of key-value pairs that can store custom data in a game session. For example: {"Key": "difficulty", "Value": "novice"}. The filter expression must specify the GameProperty -- a Key and a string Value to search for the game sessions. For example, to search for the above key-value pair, specify the following search filter: gameSessionProperties.difficulty = "novice". All game property values are searched as strings. For examples of searching game sessions, see the ones below, and also see Search game sessions by game property. maximumSessions -- Maximum number of player sessions allowed for 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. hasAvailablePlayerSessions -- Boolean value indicating whether a game session has reached its maximum number of players. It is highly recommended that all search requests include this filter attribute to optimize search performance and return only sessions that players can join. 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. All APIs by task + /// Retrieves all active game sessions that match a set of search criteria and sorts them into a specified order. This operation is not designed to continually track game session status because that practice can cause you to exceed your API limit and generate errors. Instead, configure an Amazon Simple Notification Service (Amazon SNS) topic to receive notifications from a matchmaker or a game session placement queue. When searching for game sessions, you specify exactly where you want to search and provide a search filter expression, a sort expression, or both. A search request can search only one fleet, but it can search all of a fleet's locations. This operation can be used in the following ways: To search all game sessions that are currently running on all locations in a fleet, provide a fleet or alias ID. This approach returns game sessions in the fleet's home Region and all remote locations that fit the search criteria. To search all game sessions that are currently running on a specific fleet location, provide a fleet or alias ID and a location name. For location, you can specify a fleet's home Region or any remote location. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a GameSession object is returned for each game session that matches the request. Search finds game sessions that are in ACTIVE status only. To retrieve information on game sessions in other statuses, use DescribeGameSessions . To set search and sort criteria, create a filter expression using the following game session attributes. For game session search examples, see the Examples section of this topic. gameSessionId -- A unique identifier for the game session. You can use either a GameSessionId or GameSessionArn value. gameSessionName -- Name assigned to a game session. Game session names do not need to be unique to a game session. gameSessionProperties -- A set of key-value pairs that can store custom data in a game session. For example: {"Key": "difficulty", "Value": "novice"}. The filter expression must specify the GameProperty -- a Key and a string Value to search for the game sessions. For example, to search for the above key-value pair, specify the following search filter: gameSessionProperties.difficulty = "novice". All game property values are searched as strings. For examples of searching game sessions, see the ones below, and also see Search game sessions by game property. maximumSessions -- Maximum number of player sessions allowed for 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. hasAvailablePlayerSessions -- Boolean value indicating whether a game session has reached its maximum number of players. It is highly recommended that all search requests include this filter attribute to optimize search performance and return only sessions that players can join. 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. All APIs by task @Sendable public func searchGameSessions(_ input: SearchGameSessionsInput, logger: Logger = AWSClient.loggingDisabled) async throws -> SearchGameSessionsOutput { return try await self.client.execute( @@ -1180,7 +1232,7 @@ public struct GameLift: AWSService { ) } - /// Suspends certain types of activity in a fleet location. Currently, this operation is used to stop auto-scaling activity. For multi-location fleets, fleet actions are managed separately for each location. Stopping fleet actions has several potential purposes. It allows you to temporarily stop auto-scaling activity but retain your scaling policies for use in the future. For multi-location fleets, you can set up fleet-wide auto-scaling, and then opt out of it for certain locations. This operation can be used in the following ways: To stop actions on instances in the fleet's home Region, provide a fleet ID and the type of actions to suspend. To stop actions on instances in one of the fleet's remote locations, provide a fleet ID, a location name, and the type of actions to suspend. If successful, Amazon GameLift no longer initiates scaling events except in response to manual changes using UpdateFleetCapacity. Learn more Setting up Amazon GameLift Fleets + /// Suspends certain types of activity in a fleet location. Currently, this operation is used to stop auto-scaling activity. For multi-location fleets, fleet actions are managed separately for each location. Stopping fleet actions has several potential purposes. It allows you to temporarily stop auto-scaling activity but retain your scaling policies for use in the future. For multi-location fleets, you can set up fleet-wide auto-scaling, and then opt out of it for certain locations. This operation can be used in the following ways: To stop actions on instances in the fleet's home Region, provide a fleet ID and the type of actions to suspend. To stop actions on instances in one of the fleet's remote locations, provide a fleet ID, a location name, and the type of actions to suspend. If successful, Amazon GameLift no longer initiates scaling events except in response to manual changes using UpdateFleetCapacity. To restart fleet actions again, call StartFleetActions. Learn more Setting up Amazon GameLift Fleets @Sendable public func stopFleetActions(_ input: StopFleetActionsInput, logger: Logger = AWSClient.loggingDisabled) async throws -> StopFleetActionsOutput { return try await self.client.execute( @@ -1258,7 +1310,7 @@ public struct GameLift: AWSService { ) } - /// 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. Related actions All APIs by task + /// Updates properties for an alias. Specify the unique identifier of the alias to be updated and the new property values. When reassigning an alias to a new fleet, provide an updated routing strategy. If successful, the updated alias record is returned. Related actions All APIs by task @Sendable public func updateAlias(_ input: UpdateAliasInput, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateAliasOutput { return try await self.client.execute( @@ -1284,7 +1336,7 @@ public struct GameLift: AWSService { ) } - /// Updates a fleet's mutable attributes, including game session protection and resource creation limits. To update fleet attributes, specify the fleet ID and the property values that you want to change. If successful, an updated FleetAttributes object is returned. Learn more Setting up Amazon GameLift fleets + /// Updates a fleet's mutable attributes, such as game session protection and resource creation limits. To update fleet attributes, specify the fleet ID and the property values that you want to change. If successful, Amazon GameLift returns the identifiers for the updated fleet. Learn more Setting up Amazon GameLift fleets @Sendable public func updateFleetAttributes(_ input: UpdateFleetAttributesInput, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateFleetAttributesOutput { return try await self.client.execute( @@ -1297,7 +1349,7 @@ public struct GameLift: AWSService { ) } - /// Updates capacity settings for a fleet. For fleets with multiple locations, use this operation to manage capacity settings in each location individually. Fleet capacity determines the number of game sessions and players that can be hosted based on the fleet configuration. Use this operation to set the following fleet capacity properties: Minimum/maximum size: Set hard limits on fleet capacity. Amazon GameLift cannot set the fleet's capacity to a value outside of this range, whether the capacity is changed manually or through automatic scaling. Desired capacity: Manually set the number of Amazon EC2 instances to be maintained in a fleet location. Before changing a fleet's desired capacity, you may want to call DescribeEC2InstanceLimits to get the maximum capacity of the fleet's Amazon EC2 instance type. Alternatively, consider using automatic scaling to adjust capacity based on player demand. This operation can be used in the following ways: To update capacity for a fleet's home Region, or if the fleet has no remote locations, omit the Location parameter. The fleet must be in ACTIVE status. To update capacity for a fleet's remote location, include the Location parameter set to the location to be updated. The location must be in ACTIVE status. If successful, capacity settings are updated immediately. In response a change in desired capacity, Amazon GameLift initiates steps to start new instances or terminate existing instances in the requested fleet location. This continues until the location's active instance count matches the new desired instance count. You can track a fleet's current capacity by calling DescribeFleetCapacity or DescribeFleetLocationCapacity. If the requested desired instance count is higher than the instance type's limit, the LimitExceeded exception occurs. Learn more Scaling fleet capacity + /// This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview. Updates capacity settings for a managed EC2 fleet or container fleet. For these fleets, you adjust capacity by changing the number of instances in the fleet. Fleet capacity determines the number of game sessions and players that the fleet can host based on its configuration. For fleets with multiple locations, use this operation to manage capacity settings in each location individually. Use this operation to set these fleet capacity properties: Minimum/maximum size: Set hard limits on the number of Amazon EC2 instances allowed. If Amazon GameLift receives a request--either through manual update or automatic scaling--it won't change the capacity to a value outside of this range. Desired capacity: As an alternative to automatic scaling, manually set the number of Amazon EC2 instances to be maintained. Before changing a fleet's desired capacity, check the maximum capacity of the fleet's Amazon EC2 instance type by calling DescribeEC2InstanceLimits. To update capacity for a fleet's home Region, or if the fleet has no remote locations, omit the Location parameter. The fleet must be in ACTIVE status. To update capacity for a fleet's remote location, set the Location parameter to the location to update. The location must be in ACTIVE status. If successful, Amazon GameLift updates the capacity settings and returns the identifiers for the updated fleet and/or location. If a requested change to desired capacity exceeds the instance type's limit, the LimitExceeded exception occurs. Updates often prompt an immediate change in fleet capacity, such as when current capacity is different than the new desired capacity or outside the new limits. In this scenario, Amazon GameLift automatically initiates steps to add or remove instances in the fleet location. You can track a fleet's current capacity by calling DescribeFleetCapacity or DescribeFleetLocationCapacity. Learn more Scaling fleet capacity @Sendable public func updateFleetCapacity(_ input: UpdateFleetCapacityInput, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateFleetCapacityOutput { return try await self.client.execute( @@ -1310,7 +1362,7 @@ public struct GameLift: AWSService { ) } - /// Updates permissions that allow inbound traffic to connect to game sessions that are being hosted on instances in the fleet. To update settings, specify the fleet ID to be updated and specify the changes to be made. 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. For fleets with remote locations, port setting updates can take time to propagate across all locations. You can check the status of updates in each location by calling DescribeFleetPortSettings with a location name. Learn more Setting up Amazon GameLift fleets + /// Updates permissions that allow inbound traffic to connect to game sessions in the fleet. To update settings, specify the fleet ID to be updated and specify the changes to be made. 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. For a container fleet, inbound permissions must specify port numbers that are defined in the fleet's connection port settings. If successful, the fleet ID for the updated fleet is returned. For fleets with remote locations, port setting updates can take time to propagate across all locations. You can check the status of updates in each location by calling DescribeFleetPortSettings with a location name. Learn more Setting up Amazon GameLift fleets @Sendable public func updateFleetPortSettings(_ input: UpdateFleetPortSettingsInput, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateFleetPortSettingsOutput { return try await self.client.execute( @@ -1388,7 +1440,7 @@ public struct GameLift: AWSService { ) } - /// Updates the current runtime configuration for the specified fleet, which tells Amazon GameLift how to launch server processes on all instances in the fleet. You can update a fleet's runtime configuration at any time after the fleet is created; it does not need to be in ACTIVE status. To update runtime configuration, specify the fleet ID and provide a RuntimeConfiguration with an updated set of server process configurations. If successful, the fleet's runtime configuration settings are updated. Each instance in the fleet regularly checks for and retrieves updated runtime configurations. Instances immediately begin complying with the new configuration by launching new server processes or not replacing existing processes when they shut down. Updating a fleet's runtime configuration never affects existing server processes. Learn more Setting up Amazon GameLift fleets + /// Updates the runtime configuration for the specified fleet. The runtime configuration tells Amazon GameLift how to launch server processes on computes in the fleet. For managed EC2 fleets, it determines what server processes to run on each fleet instance. For container fleets, it describes what server processes to run in each replica container group. You can update a fleet's runtime configuration at any time after the fleet is created; it does not need to be in ACTIVE status. To update runtime configuration, specify the fleet ID and provide a RuntimeConfiguration with an updated set of server process configurations. If successful, the fleet's runtime configuration settings are updated. Fleet computes that run game server processes regularly check for and receive updated runtime configurations. The computes immediately take action to comply with the new configuration by launching new server processes or by not replacing existing processes when they shut down. Updating a fleet's runtime configuration never affects existing server processes. Learn more Setting up Amazon GameLift fleets @Sendable public func updateRuntimeConfiguration(_ input: UpdateRuntimeConfigurationInput, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateRuntimeConfigurationOutput { return try await self.client.execute( @@ -1441,7 +1493,7 @@ extension GameLift { @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) extension GameLift { - /// Retrieves core fleet-wide properties, including the computing hardware and deployment configuration for all instances in the fleet. This operation can be used in the following ways: To get attributes for one or more specific fleets, provide a list of fleet IDs or fleet ARNs. To get attributes for all fleets, do not provide a fleet identifier. When requesting attributes for multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a FleetAttributes object is returned for each fleet requested, unless the fleet identifier is not found. Some API operations limit the number of fleet IDs that allowed in one request. If a request exceeds this limit, the request fails and the error message contains the maximum allowed number. Learn more Setting up Amazon GameLift fleets + /// This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview. Retrieves core fleet-wide properties for fleets in an Amazon Web Services Region. Properties include the computing hardware and deployment configuration for instances in the fleet. You can use this operation in the following ways: To get attributes for specific fleets, provide a list of fleet IDs or fleet ARNs. To get attributes for all fleets, do not provide a fleet identifier. When requesting attributes for multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a FleetAttributes object is returned for each fleet requested, unless the fleet identifier is not found. Some API operations limit the number of fleet IDs that allowed in one request. If a request exceeds this limit, the request fails and the error message contains the maximum allowed number. Learn more Setting up Amazon GameLift fleets /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -1460,7 +1512,7 @@ extension GameLift { ) } - /// Retrieves the resource capacity settings for one or more fleets. The data returned includes the current fleet capacity (number of EC2 instances), and settings that can control how capacity scaling. For fleets with remote locations, this operation retrieves data for the fleet's home Region only. This operation can be used in the following ways: To get capacity data for one or more specific fleets, provide a list of fleet IDs or fleet ARNs. To get capacity data for all fleets, do not provide a fleet identifier. 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. Each FleetCapacity object includes a Location property, which is set to the fleet's home Region. When a list of fleet IDs is provided, attribute objects are returned only for fleets that currently exist. Some API operations may limit the number of fleet IDs that are allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed. Learn more Setting up Amazon GameLift fleets GameLift metrics for fleets + /// This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview. Retrieves the resource capacity settings for one or more fleets. For a container fleet, this operation also returns counts for replica container groups. With multi-location fleets, this operation retrieves data for the fleet's home Region only. To retrieve capacity for remote locations, see DescribeFleetLocationCapacity. This operation can be used in the following ways: To get capacity data for one or more specific fleets, provide a list of fleet IDs or fleet ARNs. To get capacity data for all fleets, do not provide a fleet identifier. 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. Each FleetCapacity object includes a Location property, which is set to the fleet's home Region. Capacity values are returned only for fleets that currently exist. Some API operations may limit the number of fleet IDs that are allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed. Learn more Setting up Amazon GameLift fleets GameLift metrics for fleets /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -1745,7 +1797,7 @@ extension GameLift { ) } - /// Retrieves the compute resources in an Amazon GameLift fleet. You can request information for either managed EC2 fleets or Anywhere fleets. To request a list of computes, specify the fleet ID. You can filter the result set by location. Use the pagination parameters to retrieve results in a set of sequential pages. If successful, this operation returns the compute resource for the requested fleet. For managed EC2 fleets, it returns a list of EC2 instances. For Anywhere fleets, it returns a list of registered compute names. + /// This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview. Retrieves information on the compute resources in an Amazon GameLift fleet. To request a list of computes, specify the fleet ID. Use the pagination parameters to retrieve results in a set of sequential pages. You can filter the result set by location. If successful, this operation returns information on all computes in the requested fleet. Depending on the fleet's compute type, the result includes the following information: For EC2 fleets, this operation returns information about the EC2 instance. Compute names are instance IDs. For ANYWHERE fleets, this operation returns the compute names and details provided when the compute was registered with RegisterCompute. The GameLiftServiceSdkEndpoint or GameLiftAgentEndpoint is included. For CONTAINER fleets, this operation returns information about containers that are registered as computes, and the instances they're running on. Compute names are container names. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -1764,7 +1816,26 @@ extension GameLift { ) } - /// Retrieves a collection of fleet resources in an Amazon Web Services Region. You can call this operation to get fleets in a previously selected default Region (see https://docs.aws.amazon.com/credref/latest/refdocs/setting-global-region.htmlor specify a Region in your request. You can filter the result set to find only those fleets that are deployed with a specific build or script. For fleets that have multiple locations, this operation retrieves fleets based on their home Region only. This operation can be used in the following ways: To get a list of all fleets in a Region, don't provide a build or script identifier. To get a list of all fleets where a specific custom game build is deployed, provide the build ID. To get a list of all Realtime Servers fleets with a specific configuration script, provide the script ID. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a list of fleet IDs that match the request parameters is returned. A NextToken value is also returned if there are more result pages to retrieve. Fleet resources are not listed in a particular order. Learn more Setting up Amazon GameLift fleets + /// This operation is used with the Amazon GameLift containers feature, which is currently in public preview. Retrieves all container group definitions for the Amazon Web Services account and Amazon Web Services Region that are currently in use. You can filter the result set by the container groups' scheduling strategy. Use the pagination parameters to retrieve results in a set of sequential pages. This operation returns the list of container group definitions in no particular order. Learn more Manage a container group definition + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listContainerGroupDefinitionsPaginator( + _ input: ListContainerGroupDefinitionsInput, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listContainerGroupDefinitions, + inputKey: \ListContainerGroupDefinitionsInput.nextToken, + outputKey: \ListContainerGroupDefinitionsOutput.nextToken, + logger: logger + ) + } + + /// This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview. Retrieves a collection of fleet resources in an Amazon Web Services Region. You can filter the result set to find only those fleets that are deployed with a specific build or script. For fleets that have multiple locations, this operation retrieves fleets based on their home Region only. You can use operation in the following ways: To get a list of all fleets in a Region, don't provide a build or script identifier. To get a list of all fleets where a specific game build is deployed, provide the build ID. To get a list of all Realtime Servers fleets with a specific configuration script, provide the script ID. To get a list of all fleets with a specific container group definition, provide the ContainerGroupDefinition ID. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, this operation returns a list of fleet IDs that match the request parameters. A NextToken value is also returned if there are more result pages to retrieve. Fleet IDs are returned in no particular order. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -1859,7 +1930,7 @@ extension GameLift { ) } - /// Retrieves all active game sessions that match a set of search criteria and sorts them into a specified order. This operation is not designed to continually track game session status because that practice can cause you to exceed your API limit and generate errors. Instead, configure an Amazon Simple Notification Service (Amazon SNS) topic to receive notifications from a matchmaker or game session placement queue. When searching for game sessions, you specify exactly where you want to search and provide a search filter expression, a sort expression, or both. A search request can search only one fleet, but it can search all of a fleet's locations. This operation can be used in the following ways: To search all game sessions that are currently running on all locations in a fleet, provide a fleet or alias ID. This approach returns game sessions in the fleet's home Region and all remote locations that fit the search criteria. To search all game sessions that are currently running on a specific fleet location, provide a fleet or alias ID and a location name. For location, you can specify a fleet's home Region or any remote location. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a GameSession object is returned for each game session that matches the request. Search finds game sessions that are in ACTIVE status only. To retrieve information on game sessions in other statuses, use DescribeGameSessions . To set search and sort criteria, create a filter expression using the following game session attributes. For game session search examples, see the Examples section of this topic. gameSessionId -- A unique identifier for the game session. You can use either a GameSessionId or GameSessionArn value. gameSessionName -- Name assigned to a game session. Game session names do not need to be unique to a game session. gameSessionProperties -- A set of key-value pairs that can store custom data in a game session. For example: {"Key": "difficulty", "Value": "novice"}. The filter expression must specify the GameProperty -- a Key and a string Value to search for the game sessions. For example, to search for the above key-value pair, specify the following search filter: gameSessionProperties.difficulty = "novice". All game property values are searched as strings. For examples of searching game sessions, see the ones below, and also see Search game sessions by game property. maximumSessions -- Maximum number of player sessions allowed for 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. hasAvailablePlayerSessions -- Boolean value indicating whether a game session has reached its maximum number of players. It is highly recommended that all search requests include this filter attribute to optimize search performance and return only sessions that players can join. 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. All APIs by task + /// Retrieves all active game sessions that match a set of search criteria and sorts them into a specified order. This operation is not designed to continually track game session status because that practice can cause you to exceed your API limit and generate errors. Instead, configure an Amazon Simple Notification Service (Amazon SNS) topic to receive notifications from a matchmaker or a game session placement queue. When searching for game sessions, you specify exactly where you want to search and provide a search filter expression, a sort expression, or both. A search request can search only one fleet, but it can search all of a fleet's locations. This operation can be used in the following ways: To search all game sessions that are currently running on all locations in a fleet, provide a fleet or alias ID. This approach returns game sessions in the fleet's home Region and all remote locations that fit the search criteria. To search all game sessions that are currently running on a specific fleet location, provide a fleet or alias ID and a location name. For location, you can specify a fleet's home Region or any remote location. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a GameSession object is returned for each game session that matches the request. Search finds game sessions that are in ACTIVE status only. To retrieve information on game sessions in other statuses, use DescribeGameSessions . To set search and sort criteria, create a filter expression using the following game session attributes. For game session search examples, see the Examples section of this topic. gameSessionId -- A unique identifier for the game session. You can use either a GameSessionId or GameSessionArn value. gameSessionName -- Name assigned to a game session. Game session names do not need to be unique to a game session. gameSessionProperties -- A set of key-value pairs that can store custom data in a game session. For example: {"Key": "difficulty", "Value": "novice"}. The filter expression must specify the GameProperty -- a Key and a string Value to search for the game sessions. For example, to search for the above key-value pair, specify the following search filter: gameSessionProperties.difficulty = "novice". All game property values are searched as strings. For examples of searching game sessions, see the ones below, and also see Search game sessions by game property. maximumSessions -- Maximum number of player sessions allowed for 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. hasAvailablePlayerSessions -- Boolean value indicating whether a game session has reached its maximum number of players. It is highly recommended that all search requests include this filter attribute to optimize search performance and return only sessions that players can join. 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. All APIs by task /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -2071,10 +2142,21 @@ extension GameLift.ListComputeInput: AWSPaginateToken { } } +extension GameLift.ListContainerGroupDefinitionsInput: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> GameLift.ListContainerGroupDefinitionsInput { + return .init( + limit: self.limit, + nextToken: token, + schedulingStrategy: self.schedulingStrategy + ) + } +} + extension GameLift.ListFleetsInput: AWSPaginateToken { public func usingPaginationToken(_ token: String) -> GameLift.ListFleetsInput { return .init( buildId: self.buildId, + containerGroupDefinitionName: self.containerGroupDefinitionName, limit: self.limit, nextToken: token, scriptId: self.scriptId diff --git a/Sources/Soto/Services/GameLift/GameLift_shapes.swift b/Sources/Soto/Services/GameLift/GameLift_shapes.swift index 477647674a..9ee94d4a0a 100644 --- a/Sources/Soto/Services/GameLift/GameLift_shapes.swift +++ b/Sources/Soto/Services/GameLift/GameLift_shapes.swift @@ -75,10 +75,37 @@ extension GameLift { public enum ComputeType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case anywhere = "ANYWHERE" + case container = "CONTAINER" case ec2 = "EC2" public var description: String { return self.rawValue } } + public enum ContainerDependencyCondition: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case complete = "COMPLETE" + case healthy = "HEALTHY" + case start = "START" + case success = "SUCCESS" + public var description: String { return self.rawValue } + } + + public enum ContainerGroupDefinitionStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case copying = "COPYING" + case failed = "FAILED" + case ready = "READY" + public var description: String { return self.rawValue } + } + + public enum ContainerOperatingSystem: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case amazonLinux2023 = "AMAZON_LINUX_2023" + public var description: String { return self.rawValue } + } + + public enum ContainerSchedulingStrategy: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case daemon = "DAEMON" + case replica = "REPLICA" + public var description: String { return self.rawValue } + } + public enum EC2InstanceType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case c32Xlarge = "c3.2xlarge" case c34Xlarge = "c3.4xlarge" @@ -903,12 +930,14 @@ extension GameLift { } public struct Compute: AWSDecodableShape { - /// The ARN that is assigned to a compute resource and uniquely identifies it. ARNs are unique across locations. Instances in managed EC2 fleets are not assigned a ComputeARN. + /// The ARN that is assigned to a compute resource and uniquely identifies it. ARNs are unique across locations. Instances in managed EC2 fleets are not assigned a Compute ARN. public let computeArn: String? - /// A descriptive label for the compute resource. For instances in a managed EC2 fleet, the compute name is an instance ID. + /// A descriptive label for the compute resource. For instances in a managed EC2 fleet, the compute name is the same value as the InstanceId ID. public let computeName: String? /// Current status of the compute. A compute must have an ACTIVE status to host game sessions. public let computeStatus: ComputeStatus? + /// Some attributes of a container. + public let containerAttributes: ContainerAttributes? /// A 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: Date? /// The DNS name of a compute resource. Amazon GameLift requires a DNS name or IP address for a compute. @@ -917,8 +946,12 @@ extension GameLift { public let fleetArn: String? /// A unique identifier for the fleet that the compute belongs to. public let fleetId: String? + /// The endpoint of the Amazon GameLift Agent. + public let gameLiftAgentEndpoint: String? /// The Amazon GameLift SDK endpoint connection for a registered compute resource in an Anywhere fleet. The game servers on the compute use this endpoint to connect to the Amazon GameLift service. public let gameLiftServiceSdkEndpoint: String? + /// The InstanceID of the Instance hosting the compute for Container and Managed EC2 fleets. + public let instanceId: String? /// The IP address of a compute resource. Amazon GameLift requires a DNS name or IP address for a compute. public let ipAddress: String? /// The name of the custom location you added to the fleet that this compute resource resides in. @@ -928,15 +961,18 @@ extension GameLift { /// The Amazon EC2 instance type that the fleet uses. For registered computes in an Amazon GameLift Anywhere fleet, this property is empty. public let type: EC2InstanceType? - public init(computeArn: String? = nil, computeName: String? = nil, computeStatus: ComputeStatus? = nil, creationTime: Date? = nil, dnsName: String? = nil, fleetArn: String? = nil, fleetId: String? = nil, gameLiftServiceSdkEndpoint: String? = nil, ipAddress: String? = nil, location: String? = nil, operatingSystem: OperatingSystem? = nil, type: EC2InstanceType? = nil) { + public init(computeArn: String? = nil, computeName: String? = nil, computeStatus: ComputeStatus? = nil, containerAttributes: ContainerAttributes? = nil, creationTime: Date? = nil, dnsName: String? = nil, fleetArn: String? = nil, fleetId: String? = nil, gameLiftAgentEndpoint: String? = nil, gameLiftServiceSdkEndpoint: String? = nil, instanceId: String? = nil, ipAddress: String? = nil, location: String? = nil, operatingSystem: OperatingSystem? = nil, type: EC2InstanceType? = nil) { self.computeArn = computeArn self.computeName = computeName self.computeStatus = computeStatus + self.containerAttributes = containerAttributes self.creationTime = creationTime self.dnsName = dnsName self.fleetArn = fleetArn self.fleetId = fleetId + self.gameLiftAgentEndpoint = gameLiftAgentEndpoint self.gameLiftServiceSdkEndpoint = gameLiftServiceSdkEndpoint + self.instanceId = instanceId self.ipAddress = ipAddress self.location = location self.operatingSystem = operatingSystem @@ -947,11 +983,14 @@ extension GameLift { case computeArn = "ComputeArn" case computeName = "ComputeName" case computeStatus = "ComputeStatus" + case containerAttributes = "ContainerAttributes" case creationTime = "CreationTime" case dnsName = "DnsName" case fleetArn = "FleetArn" case fleetId = "FleetId" + case gameLiftAgentEndpoint = "GameLiftAgentEndpoint" case gameLiftServiceSdkEndpoint = "GameLiftServiceSdkEndpoint" + case instanceId = "InstanceId" case ipAddress = "IpAddress" case location = "Location" case operatingSystem = "OperatingSystem" @@ -959,6 +998,526 @@ extension GameLift { } } + public struct ConnectionPortRange: AWSEncodableShape & AWSDecodableShape { + /// Starting value for the port range. + public let fromPort: Int? + /// Ending value for the port. Port numbers are end-inclusive. This value must be equal to or greater than FromPort. + public let toPort: Int? + + public init(fromPort: Int? = nil, toPort: Int? = nil) { + self.fromPort = fromPort + self.toPort = toPort + } + + public func validate(name: String) throws { + try self.validate(self.fromPort, name: "fromPort", parent: name, max: 60000) + try self.validate(self.fromPort, name: "fromPort", parent: name, min: 1) + try self.validate(self.toPort, name: "toPort", parent: name, max: 60000) + try self.validate(self.toPort, name: "toPort", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case fromPort = "FromPort" + case toPort = "ToPort" + } + } + + public struct ContainerAttributes: AWSDecodableShape { + /// Describes how container ports map to connection ports on the fleet instance. Incoming traffic connects to a game via a connection port. A ContainerPortMapping directs the traffic from a connection port to a port on the container that hosts the game session. + public let containerPortMappings: [ContainerPortMapping]? + + public init(containerPortMappings: [ContainerPortMapping]? = nil) { + self.containerPortMappings = containerPortMappings + } + + private enum CodingKeys: String, CodingKey { + case containerPortMappings = "ContainerPortMappings" + } + } + + public struct ContainerDefinition: AWSDecodableShape { + /// A command that's passed to the container on startup. Each argument for the command is an additional string in the array. See the ContainerDefinition::command parameter in the Amazon Elastic Container Service API reference. + public let command: [String]? + /// The container definition identifier. Container names are unique within a container group definition. + public let containerName: String? + /// The number of CPU units that are reserved for the container. Note: 1 vCPU unit equals 1024 CPU units. If no resources are reserved, the container shares the total CPU limit for the container group. Related data type: ContainerGroupDefinition$TotalCpuLimit + public let cpu: Int? + /// Indicates that the container relies on the status of other containers in the same container group during its startup and shutdown sequences. A container might have dependencies on multiple containers. + public let dependsOn: [ContainerDependency]? + /// The entry point that's passed to the container on startup. If there are multiple arguments, each argument is an additional string in the array. See the ContainerDefinition::entryPoint parameter in the Amazon Elastic Container Service API Reference. + public let entryPoint: [String]? + /// A set of environment variables that's passed to the container on startup. See the ContainerDefinition::environment parameter in the Amazon Elastic Container Service API Reference. + public let environment: [ContainerEnvironment]? + /// Indicates whether the container is vital to the container group. If an essential container fails, the entire container group is restarted. + public let essential: Bool? + /// A configuration for a non-terminal health check. A container, which automatically restarts if it stops functioning, also restarts if it fails this health check. If an essential container in the daemon group fails a health check, the entire container group is restarted. The essential container in the replica group doesn't use this health check mechanism, because the Amazon GameLift Agent automatically handles the task. + public let healthCheck: ContainerHealthCheck? + /// The URI to the image that $short; copied and deployed to a container fleet. For a more specific identifier, see ResolvedImageDigest. + public let imageUri: String? + /// The amount of memory that Amazon GameLift makes available to the container. If memory limits aren't set for an individual container, the container shares the container group's total memory allocation. Related data type: ContainerGroupDefinition$TotalMemoryLimit + public let memoryLimits: ContainerMemoryLimits? + /// Defines the ports that are available to assign to processes in the container. For example, a game server process requires a container port to allow game clients to connect to it. Container ports aren't directly accessed by inbound traffic. Amazon GameLift maps these container ports to externally accessible connection ports, which are assigned as needed from the container fleet's ConnectionPortRange. + public let portConfiguration: ContainerPortConfiguration? + /// A unique and immutable identifier for the container image that is deployed to a container fleet. The digest is a SHA 256 hash of the container image manifest. + public let resolvedImageDigest: String? + /// The directory in the container where commands are run. See the ContainerDefinition::workingDirectory parameter in the Amazon Elastic Container Service API Reference. + public let workingDirectory: String? + + public init(command: [String]? = nil, containerName: String? = nil, cpu: Int? = nil, dependsOn: [ContainerDependency]? = nil, entryPoint: [String]? = nil, environment: [ContainerEnvironment]? = nil, essential: Bool? = nil, healthCheck: ContainerHealthCheck? = nil, imageUri: String? = nil, memoryLimits: ContainerMemoryLimits? = nil, portConfiguration: ContainerPortConfiguration? = nil, resolvedImageDigest: String? = nil, workingDirectory: String? = nil) { + self.command = command + self.containerName = containerName + self.cpu = cpu + self.dependsOn = dependsOn + self.entryPoint = entryPoint + self.environment = environment + self.essential = essential + self.healthCheck = healthCheck + self.imageUri = imageUri + self.memoryLimits = memoryLimits + self.portConfiguration = portConfiguration + self.resolvedImageDigest = resolvedImageDigest + self.workingDirectory = workingDirectory + } + + private enum CodingKeys: String, CodingKey { + case command = "Command" + case containerName = "ContainerName" + case cpu = "Cpu" + case dependsOn = "DependsOn" + case entryPoint = "EntryPoint" + case environment = "Environment" + case essential = "Essential" + case healthCheck = "HealthCheck" + case imageUri = "ImageUri" + case memoryLimits = "MemoryLimits" + case portConfiguration = "PortConfiguration" + case resolvedImageDigest = "ResolvedImageDigest" + case workingDirectory = "WorkingDirectory" + } + } + + public struct ContainerDefinitionInput: AWSEncodableShape { + /// A command to pass to the container on startup. Add multiple arguments as additional strings in the array. See the ContainerDefinition command parameter in the Amazon Elastic Container Service API reference. + public let command: [String]? + /// A string that uniquely identifies the container definition within a container group. + public let containerName: String? + /// The number of CPU units to reserve for this container. The container can use more resources when needed, if available. Note: 1 vCPU unit equals 1024 CPU units. If you don't reserve CPU units for this container, then it shares the total CPU limit for the container group. This property is similar to the Amazon ECS container definition parameter environment (Amazon Elastic Container Service Developer Guide). Related data type: ContainerGroupDefinition$TotalCpuLimit + public let cpu: Int? + /// Sets up dependencies between this container and the status of other containers in the same container group. A container can have dependencies on multiple different containers. You can use dependencies to establish a startup/shutdown sequence across the container group. A container startup dependency is reversed on shutdown. For example, you might specify that SideCarContainerB has a START dependency on SideCarContainerA. This dependency means that SideCarContainerB can't start until after SideCarContainerA has started. This dependency is reversed on shutdown, which means that SideCarContainerB must shut down before SideCarContainerA can shut down. + public let dependsOn: [ContainerDependency]? + /// An entry point to pass to the container on startup. Add multiple arguments as additional strings in the array. See the ContainerDefinition::entryPoint parameter in the Amazon Elastic Container Service API Reference. + public let entryPoint: [String]? + /// A set of environment variables to pass to the container on startup. See the ContainerDefinition::environment parameter in the Amazon Elastic Container Service API Reference. + public let environment: [ContainerEnvironment]? + /// Specifies whether the container is vital for the container group to function properly. If an essential container fails, it causes the entire container group to restart. Each container group must have an essential container. Replica container groups - A replica group must have exactly one essential container. Use the following to configure an essential replica container: Choose a container is running your game server and the Amazon GameLift Agent. Include a port configuration. This container runs your game server processes, and each process requires a container port to allow access to game clients. Don't configure a health check. The Agent handles this task for the essential replica container. Daemon container groups - A daemon group must have at least one essential container. + public let essential: Bool? + /// Configuration for a non-terminal health check. A container automatically restarts if it stops functioning. This parameter lets you define additional reasons to consider a container unhealthy and restart it. You can set a health check for any container except for the essential container in the replica container group. If an essential container in the daemon group fails a health check, the entire container group is restarted. + public let healthCheck: ContainerHealthCheck? + /// The location of a container image that $short; will copy and deploy to a container fleet. Images in Amazon Elastic Container Registry private repositories are supported. The repository must be in the same Amazon Web Services account and Amazon Web Services Region where you're creating the container group definition. For limits on image size, see Amazon GameLift endpoints and quotas. You can use any of the following image URI formats: Image ID only: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository ID] Image ID and digest: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository ID]@[digest] Image ID and tag: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository ID]:[tag] + public let imageUri: String? + /// The amount of memory to make available to the container. If you don't specify memory limits for this container, then it shares the container group's total memory allocation. Related data type: ContainerGroupDefinition$TotalMemoryLimit + public let memoryLimits: ContainerMemoryLimits? + /// A set of ports that Amazon GameLift can assign to processes in the container. All processes that accept inbound traffic connections, including game server processes, must be assigned a port from this set. The set of ports must be large enough to assign one to each process in the container that needs one. If the container includes your game server, include enough ports to assign one port to each concurrent server process (as defined in a container fleet's RuntimeConfiguration). For more details, see Networking for container fleets. Container ports aren't directly accessed by inbound traffic. Amazon GameLift maps these container ports to externally accessible connection ports, which are assigned as needed from the container fleet's ConnectionPortRange. + public let portConfiguration: ContainerPortConfiguration? + /// The directory in the container where commands are run. See the ContainerDefinition::workingDirectory parameter in the Amazon Elastic Container Service API Reference. + public let workingDirectory: String? + + public init(command: [String]? = nil, containerName: String? = nil, cpu: Int? = nil, dependsOn: [ContainerDependency]? = nil, entryPoint: [String]? = nil, environment: [ContainerEnvironment]? = nil, essential: Bool? = nil, healthCheck: ContainerHealthCheck? = nil, imageUri: String? = nil, memoryLimits: ContainerMemoryLimits? = nil, portConfiguration: ContainerPortConfiguration? = nil, workingDirectory: String? = nil) { + self.command = command + self.containerName = containerName + self.cpu = cpu + self.dependsOn = dependsOn + self.entryPoint = entryPoint + self.environment = environment + self.essential = essential + self.healthCheck = healthCheck + self.imageUri = imageUri + self.memoryLimits = memoryLimits + self.portConfiguration = portConfiguration + self.workingDirectory = workingDirectory + } + + public func validate(name: String) throws { + try self.command?.forEach { + try validate($0, name: "command[]", parent: name, max: 255) + try validate($0, name: "command[]", parent: name, min: 1) + } + try self.validate(self.command, name: "command", parent: name, max: 20) + try self.validate(self.command, name: "command", parent: name, min: 1) + try self.validate(self.containerName, name: "containerName", parent: name, max: 128) + try self.validate(self.containerName, name: "containerName", parent: name, min: 1) + try self.validate(self.containerName, name: "containerName", parent: name, pattern: "^[a-zA-Z0-9\\-]+$") + try self.validate(self.cpu, name: "cpu", parent: name, max: 10240) + try self.validate(self.cpu, name: "cpu", parent: name, min: 1) + try self.dependsOn?.forEach { + try $0.validate(name: "\(name).dependsOn[]") + } + try self.validate(self.dependsOn, name: "dependsOn", parent: name, max: 10) + try self.validate(self.dependsOn, name: "dependsOn", parent: name, min: 1) + try self.entryPoint?.forEach { + try validate($0, name: "entryPoint[]", parent: name, max: 1024) + try validate($0, name: "entryPoint[]", parent: name, min: 1) + } + try self.validate(self.entryPoint, name: "entryPoint", parent: name, max: 20) + try self.validate(self.entryPoint, name: "entryPoint", parent: name, min: 1) + try self.environment?.forEach { + try $0.validate(name: "\(name).environment[]") + } + try self.validate(self.environment, name: "environment", parent: name, max: 20) + try self.validate(self.environment, name: "environment", parent: name, min: 1) + try self.healthCheck?.validate(name: "\(name).healthCheck") + try self.validate(self.imageUri, name: "imageUri", parent: name, max: 255) + try self.validate(self.imageUri, name: "imageUri", parent: name, min: 1) + try self.validate(self.imageUri, name: "imageUri", parent: name, pattern: "^[a-zA-Z0-9-_\\.@\\/:]+$") + try self.memoryLimits?.validate(name: "\(name).memoryLimits") + try self.portConfiguration?.validate(name: "\(name).portConfiguration") + try self.validate(self.workingDirectory, name: "workingDirectory", parent: name, max: 255) + try self.validate(self.workingDirectory, name: "workingDirectory", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case command = "Command" + case containerName = "ContainerName" + case cpu = "Cpu" + case dependsOn = "DependsOn" + case entryPoint = "EntryPoint" + case environment = "Environment" + case essential = "Essential" + case healthCheck = "HealthCheck" + case imageUri = "ImageUri" + case memoryLimits = "MemoryLimits" + case portConfiguration = "PortConfiguration" + case workingDirectory = "WorkingDirectory" + } + } + + public struct ContainerDependency: AWSEncodableShape & AWSDecodableShape { + /// The condition that the dependency container must reach before the dependent container can start. Valid conditions include: START - The dependency container must have started. COMPLETE - The dependency container has run to completion (exits). Use this condition with nonessential containers, such as those that run a script and then exit. The dependency container can't be an essential container. SUCCESS - The dependency container has run to completion and exited with a zero status. The dependency container can't be an essential container. HEALTHY - The dependency container has passed its Docker health check. Use this condition with dependency containers that have health checks configured. This condition is confirmed at container group startup only. + public let condition: ContainerDependencyCondition? + /// A descriptive label for the container definition that this container depends on. + public let containerName: String? + + public init(condition: ContainerDependencyCondition? = nil, containerName: String? = nil) { + self.condition = condition + self.containerName = containerName + } + + public func validate(name: String) throws { + try self.validate(self.containerName, name: "containerName", parent: name, max: 128) + try self.validate(self.containerName, name: "containerName", parent: name, min: 1) + try self.validate(self.containerName, name: "containerName", parent: name, pattern: "^[a-zA-Z0-9\\-]+$") + } + + private enum CodingKeys: String, CodingKey { + case condition = "Condition" + case containerName = "ContainerName" + } + } + + public struct ContainerEnvironment: AWSEncodableShape & AWSDecodableShape { + /// The environment variable name. + public let name: String? + /// The environment variable value. + public let value: String? + + public init(name: String? = nil, value: String? = nil) { + self.name = name + self.value = value + } + + public func validate(name: String) throws { + try self.validate(self.name, name: "name", parent: name, max: 255) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.value, name: "value", parent: name, max: 255) + try self.validate(self.value, name: "value", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case value = "Value" + } + } + + public struct ContainerGroupDefinition: AWSDecodableShape { + /// The set of container definitions that are included in the container group. + public let containerDefinitions: [ContainerDefinition]? + /// The Amazon Resource Name (ARN) that is assigned to an Amazon GameLift ContainerGroupDefinition resource. It uniquely identifies + /// the resource across all Amazon Web Services Regions. Format is + /// arn:aws:gamelift:::containergroupdefinition/[container group definition name]. + public let containerGroupDefinitionArn: String? + /// A 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: Date? + /// A descriptive identifier for the container group definition. The name value is unique in an Amazon Web Services Region. + public let name: String? + /// The platform required for all containers in the container group definition. + public let operatingSystem: ContainerOperatingSystem? + /// The method for deploying the container group across fleet instances. A replica container group might have multiple copies on each fleet instance. A daemon container group maintains only one copy per fleet instance. + public let schedulingStrategy: ContainerSchedulingStrategy? + /// Current status of the container group definition resource. Values include: COPYING -- Amazon GameLift is in the process of making copies of all container images that are defined in the group. While in this state, the resource can't be used to create a container fleet. READY -- Amazon GameLift has copied the registry images for all containers that are defined in the group. You can use a container group definition in this status to create a container fleet. FAILED -- Amazon GameLift failed to create a valid container group definition resource. For more details on the cause of the failure, see StatusReason. A container group definition resource in failed status will be deleted within a few minutes. + public let status: ContainerGroupDefinitionStatus? + /// Additional information about a container group definition that's in FAILED status. Possible reasons include: An internal issue prevented Amazon GameLift from creating the container group definition resource. Delete the failed resource and call CreateContainerGroupDefinitionagain. An access-denied message means that you don't have permissions to access the container image on ECR. See IAM permission examples for help setting up required IAM permissions for Amazon GameLift. The ImageUri value for at least one of the containers in the container group definition was invalid or not found in the current Amazon Web Services account. At least one of the container images referenced in the container group definition exceeds the allowed size. For size limits, see Amazon GameLift endpoints and quotas. At least one of the container images referenced in the container group definition uses a different operating system than the one defined for the container group. + public let statusReason: String? + /// The amount of CPU units on a fleet instance to allocate for the container group. All containers in the group share these resources. This property is an integer value in CPU units (1 vCPU is equal to 1024 CPU units). You can set additional limits for each ContainerDefinition in the group. If individual containers have limits, this value must be equal to or greater than the sum of all container-specific CPU limits in the group. For more details on memory allocation, see the Container fleet design guide. + public let totalCpuLimit: Int? + /// The amount of memory (in MiB) on a fleet instance to allocate for the container group. All containers in the group share these resources. You can set additional limits for each ContainerDefinition in the group. If individual containers have limits, this value must meet the following requirements: Equal to or greater than the sum of all container-specific soft memory limits in the group. Equal to or greater than any container-specific hard limits in the group. For more details on memory allocation, see the Container fleet design guide. + public let totalMemoryLimit: Int? + + public init(containerDefinitions: [ContainerDefinition]? = nil, containerGroupDefinitionArn: String? = nil, creationTime: Date? = nil, name: String? = nil, operatingSystem: ContainerOperatingSystem? = nil, schedulingStrategy: ContainerSchedulingStrategy? = nil, status: ContainerGroupDefinitionStatus? = nil, statusReason: String? = nil, totalCpuLimit: Int? = nil, totalMemoryLimit: Int? = nil) { + self.containerDefinitions = containerDefinitions + self.containerGroupDefinitionArn = containerGroupDefinitionArn + self.creationTime = creationTime + self.name = name + self.operatingSystem = operatingSystem + self.schedulingStrategy = schedulingStrategy + self.status = status + self.statusReason = statusReason + self.totalCpuLimit = totalCpuLimit + self.totalMemoryLimit = totalMemoryLimit + } + + private enum CodingKeys: String, CodingKey { + case containerDefinitions = "ContainerDefinitions" + case containerGroupDefinitionArn = "ContainerGroupDefinitionArn" + case creationTime = "CreationTime" + case name = "Name" + case operatingSystem = "OperatingSystem" + case schedulingStrategy = "SchedulingStrategy" + case status = "Status" + case statusReason = "StatusReason" + case totalCpuLimit = "TotalCpuLimit" + case totalMemoryLimit = "TotalMemoryLimit" + } + } + + public struct ContainerGroupDefinitionProperty: AWSDecodableShape { + /// The unique identifier for the container group definition. + public let containerGroupDefinitionName: String? + /// The method for scheduling and maintaining copies of the container group across a container fleet. + public let schedulingStrategy: ContainerSchedulingStrategy? + + public init(containerGroupDefinitionName: String? = nil, schedulingStrategy: ContainerSchedulingStrategy? = nil) { + self.containerGroupDefinitionName = containerGroupDefinitionName + self.schedulingStrategy = schedulingStrategy + } + + private enum CodingKeys: String, CodingKey { + case containerGroupDefinitionName = "ContainerGroupDefinitionName" + case schedulingStrategy = "SchedulingStrategy" + } + } + + public struct ContainerGroupsAttributes: AWSDecodableShape { + /// A set of ports that allow inbound traffic to connect to processes running in the fleet's container groups. Amazon GameLift maps each connection port to a container port, which is assigned to a specific container process. A fleet's connection port range can't be changed, but you can control access to connection ports by updating a fleet's EC2InboundPermissions with UpdateFleetPortSettings. + public let connectionPortRange: ConnectionPortRange? + /// A collection of properties that describe each container group in the fleet. A container fleet is deployed with one or more ContainerGroupDefinition resources, which is where these properties are set. + public let containerGroupDefinitionProperties: [ContainerGroupDefinitionProperty]? + /// Details about the number of replica container groups that Amazon GameLift deploys to each instance in the container fleet. + public let containerGroupsPerInstance: ContainerGroupsPerInstance? + + public init(connectionPortRange: ConnectionPortRange? = nil, containerGroupDefinitionProperties: [ContainerGroupDefinitionProperty]? = nil, containerGroupsPerInstance: ContainerGroupsPerInstance? = nil) { + self.connectionPortRange = connectionPortRange + self.containerGroupDefinitionProperties = containerGroupDefinitionProperties + self.containerGroupsPerInstance = containerGroupsPerInstance + } + + private enum CodingKeys: String, CodingKey { + case connectionPortRange = "ConnectionPortRange" + case containerGroupDefinitionProperties = "ContainerGroupDefinitionProperties" + case containerGroupsPerInstance = "ContainerGroupsPerInstance" + } + } + + public struct ContainerGroupsConfiguration: AWSEncodableShape { + /// A set of ports to allow inbound traffic, including game clients, to connect to processes running in the container fleet. Connection ports are dynamically mapped to container ports, which are assigned to individual processes running in a container. The connection port range must have enough ports to map to all container ports across a fleet instance. To calculate the minimum connection ports needed, use the following formula: [Total number of container ports as defined for containers in the replica container group] * [Desired or calculated number of replica container groups per instance] + [Total number of container ports as defined for containers in the daemon container group] As a best practice, double the minimum number of connection ports. Use the fleet's EC2InboundPermissions property to control external access to connection ports. Set this property to the connection port numbers that you want to open access to. See IpPermission for more details. + public let connectionPortRange: ConnectionPortRange? + /// The list of container group definition names to deploy to a new container fleet. + public let containerGroupDefinitionNames: [String]? + /// The number of times to replicate the replica container group on each instance in a container fleet. By default, Amazon GameLift calculates the maximum number of replica container groups that can fit on a fleet instance (based on CPU and memory resources). Leave this parameter empty if you want to use the maximum number, or specify a desired number to override the maximum. The desired number is used if it's less than the maximum number. + public let desiredReplicaContainerGroupsPerInstance: Int? + + public init(connectionPortRange: ConnectionPortRange? = nil, containerGroupDefinitionNames: [String]? = nil, desiredReplicaContainerGroupsPerInstance: Int? = nil) { + self.connectionPortRange = connectionPortRange + self.containerGroupDefinitionNames = containerGroupDefinitionNames + self.desiredReplicaContainerGroupsPerInstance = desiredReplicaContainerGroupsPerInstance + } + + public func validate(name: String) throws { + try self.connectionPortRange?.validate(name: "\(name).connectionPortRange") + try self.containerGroupDefinitionNames?.forEach { + try validate($0, name: "containerGroupDefinitionNames[]", parent: name, max: 512) + try validate($0, name: "containerGroupDefinitionNames[]", parent: name, min: 1) + try validate($0, name: "containerGroupDefinitionNames[]", parent: name, pattern: "^[a-zA-Z0-9\\-]+$|^arn:.*:containergroupdefinition\\/[a-zA-Z0-9\\-]+$") + } + try self.validate(self.containerGroupDefinitionNames, name: "containerGroupDefinitionNames", parent: name, max: 2) + try self.validate(self.containerGroupDefinitionNames, name: "containerGroupDefinitionNames", parent: name, min: 1) + try self.validate(self.desiredReplicaContainerGroupsPerInstance, name: "desiredReplicaContainerGroupsPerInstance", parent: name, max: 5000) + try self.validate(self.desiredReplicaContainerGroupsPerInstance, name: "desiredReplicaContainerGroupsPerInstance", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case connectionPortRange = "ConnectionPortRange" + case containerGroupDefinitionNames = "ContainerGroupDefinitionNames" + case desiredReplicaContainerGroupsPerInstance = "DesiredReplicaContainerGroupsPerInstance" + } + } + + public struct ContainerGroupsPerInstance: AWSDecodableShape { + /// The desired number of replica container groups to place on each fleet instance. + public let desiredReplicaContainerGroupsPerInstance: Int? + /// The maximum possible number of replica container groups that each fleet instance can have. + public let maxReplicaContainerGroupsPerInstance: Int? + + public init(desiredReplicaContainerGroupsPerInstance: Int? = nil, maxReplicaContainerGroupsPerInstance: Int? = nil) { + self.desiredReplicaContainerGroupsPerInstance = desiredReplicaContainerGroupsPerInstance + self.maxReplicaContainerGroupsPerInstance = maxReplicaContainerGroupsPerInstance + } + + private enum CodingKeys: String, CodingKey { + case desiredReplicaContainerGroupsPerInstance = "DesiredReplicaContainerGroupsPerInstance" + case maxReplicaContainerGroupsPerInstance = "MaxReplicaContainerGroupsPerInstance" + } + } + + public struct ContainerHealthCheck: AWSEncodableShape & AWSDecodableShape { + /// A string array that specifies the command that the container runs to determine if it's healthy. + public let command: [String]? + /// The time period (in seconds) between each health check. + public let interval: Int? + /// The number of times to retry a failed health check before the container is considered unhealthy. The first run of the command does not count as a retry. + public let retries: Int? + /// The optional grace period (in seconds) to give a container time to bootstrap before the first failed health check counts toward the number of retries. + public let startPeriod: Int? + /// The time period (in seconds) to wait for a health check to succeed before a failed health check is counted. + public let timeout: Int? + + public init(command: [String]? = nil, interval: Int? = nil, retries: Int? = nil, startPeriod: Int? = nil, timeout: Int? = nil) { + self.command = command + self.interval = interval + self.retries = retries + self.startPeriod = startPeriod + self.timeout = timeout + } + + public func validate(name: String) throws { + try self.command?.forEach { + try validate($0, name: "command[]", parent: name, max: 255) + try validate($0, name: "command[]", parent: name, min: 1) + } + try self.validate(self.command, name: "command", parent: name, max: 20) + try self.validate(self.command, name: "command", parent: name, min: 1) + try self.validate(self.interval, name: "interval", parent: name, max: 300) + try self.validate(self.interval, name: "interval", parent: name, min: 60) + try self.validate(self.retries, name: "retries", parent: name, max: 10) + try self.validate(self.retries, name: "retries", parent: name, min: 5) + try self.validate(self.startPeriod, name: "startPeriod", parent: name, max: 300) + try self.validate(self.startPeriod, name: "startPeriod", parent: name, min: 0) + try self.validate(self.timeout, name: "timeout", parent: name, max: 60) + try self.validate(self.timeout, name: "timeout", parent: name, min: 30) + } + + private enum CodingKeys: String, CodingKey { + case command = "Command" + case interval = "Interval" + case retries = "Retries" + case startPeriod = "StartPeriod" + case timeout = "Timeout" + } + } + + public struct ContainerMemoryLimits: AWSEncodableShape & AWSDecodableShape { + /// The maximum amount of memory that the container can use. If a container attempts to exceed this limit, the container is stopped. This property is similar to the Amazon ECS container definition parameter memory in the Amazon Elastic Container Service Developer Guide. + public let hardLimit: Int? + /// The amount of memory that is reserved for a container. When the container group's shared memory is under contention, the system attempts to maintain the container memory usage at this soft limit. However, the container can use more memory when needed, if available. This property is similar to the Amazon ECS container definition parameter memoryreservation (Amazon Elastic Container Service Developer Guide). + public let softLimit: Int? + + public init(hardLimit: Int? = nil, softLimit: Int? = nil) { + self.hardLimit = hardLimit + self.softLimit = softLimit + } + + public func validate(name: String) throws { + try self.validate(self.hardLimit, name: "hardLimit", parent: name, max: 1024000) + try self.validate(self.hardLimit, name: "hardLimit", parent: name, min: 4) + try self.validate(self.softLimit, name: "softLimit", parent: name, max: 1024000) + try self.validate(self.softLimit, name: "softLimit", parent: name, min: 4) + } + + private enum CodingKeys: String, CodingKey { + case hardLimit = "HardLimit" + case softLimit = "SoftLimit" + } + } + + public struct ContainerPortConfiguration: AWSEncodableShape & AWSDecodableShape { + /// Specifies one or more ranges of ports on a container. These ranges must not overlap. + public let containerPortRanges: [ContainerPortRange]? + + public init(containerPortRanges: [ContainerPortRange]? = nil) { + self.containerPortRanges = containerPortRanges + } + + public func validate(name: String) throws { + try self.containerPortRanges?.forEach { + try $0.validate(name: "\(name).containerPortRanges[]") + } + try self.validate(self.containerPortRanges, name: "containerPortRanges", parent: name, max: 100) + try self.validate(self.containerPortRanges, name: "containerPortRanges", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case containerPortRanges = "ContainerPortRanges" + } + } + + public struct ContainerPortMapping: AWSDecodableShape { + /// The port opened on the fleet instance. This is also called the "host port". + public let connectionPort: Int? + /// The port opened on the container. + public let containerPort: Int? + /// The network protocol that this mapping supports. + public let `protocol`: IpProtocol? + + public init(connectionPort: Int? = nil, containerPort: Int? = nil, protocol: IpProtocol? = nil) { + self.connectionPort = connectionPort + self.containerPort = containerPort + self.`protocol` = `protocol` + } + + private enum CodingKeys: String, CodingKey { + case connectionPort = "ConnectionPort" + case containerPort = "ContainerPort" + case `protocol` = "Protocol" + } + } + + public struct ContainerPortRange: AWSEncodableShape & AWSDecodableShape { + /// A starting value for the range of allowed port numbers. + public let fromPort: Int? + /// The network protocol that these ports support. + public let `protocol`: IpProtocol? + /// An ending value for the range of allowed port numbers. Port numbers are end-inclusive. This value must be equal to or greater than FromPort. + public let toPort: Int? + + public init(fromPort: Int? = nil, protocol: IpProtocol? = nil, toPort: Int? = nil) { + self.fromPort = fromPort + self.`protocol` = `protocol` + self.toPort = toPort + } + + public func validate(name: String) throws { + try self.validate(self.fromPort, name: "fromPort", parent: name, max: 60000) + try self.validate(self.fromPort, name: "fromPort", parent: name, min: 1) + try self.validate(self.toPort, name: "toPort", parent: name, max: 60000) + try self.validate(self.toPort, name: "toPort", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case fromPort = "FromPort" + case `protocol` = "Protocol" + case toPort = "ToPort" + } + } + public struct CreateAliasInput: AWSEncodableShape { /// A human-readable description of the alias. public let description: String? @@ -1078,28 +1637,99 @@ extension GameLift { } } + public struct CreateContainerGroupDefinitionInput: AWSEncodableShape { + /// Definitions for all containers in this group. Each container definition identifies the container image and specifies configuration settings for the container. See the Container fleet design guide for container guidelines. + public let containerDefinitions: [ContainerDefinitionInput]? + /// A descriptive identifier for the container group definition. The name value must be unique in an Amazon Web Services Region. + public let name: String? + /// The platform that is used by containers in the container group definition. All containers in a group must run on the same operating system. + public let operatingSystem: ContainerOperatingSystem? + /// The method for deploying the container group across fleet instances. A replica container group might have multiple copies on each fleet instance. A daemon container group has one copy per fleet instance. Default value is REPLICA. + public let schedulingStrategy: ContainerSchedulingStrategy? + /// A list of labels to assign to the container group definition resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference. + public let tags: [Tag]? + /// The maximum amount of CPU units to allocate to the container group. Set this parameter to an integer value in CPU units (1 vCPU is equal to 1024 CPU units). All containers in the group share this memory. If you specify CPU limits for individual containers, set this parameter based on the following guidelines. The value must be equal to or greater than the sum of the CPU limits for all containers in the group. + public let totalCpuLimit: Int? + /// The maximum amount of memory (in MiB) to allocate to the container group. All containers in the group share this memory. If you specify memory limits for individual containers, set this parameter based on the following guidelines. The value must be (1) greater than the sum of the soft memory limits for all containers in the group, and (2) greater than any individual container's hard memory limit. + public let totalMemoryLimit: Int? + + public init(containerDefinitions: [ContainerDefinitionInput]? = nil, name: String? = nil, operatingSystem: ContainerOperatingSystem? = nil, schedulingStrategy: ContainerSchedulingStrategy? = nil, tags: [Tag]? = nil, totalCpuLimit: Int? = nil, totalMemoryLimit: Int? = nil) { + self.containerDefinitions = containerDefinitions + self.name = name + self.operatingSystem = operatingSystem + self.schedulingStrategy = schedulingStrategy + self.tags = tags + self.totalCpuLimit = totalCpuLimit + self.totalMemoryLimit = totalMemoryLimit + } + + public func validate(name: String) throws { + try self.containerDefinitions?.forEach { + try $0.validate(name: "\(name).containerDefinitions[]") + } + try self.validate(self.containerDefinitions, name: "containerDefinitions", parent: name, max: 10) + try self.validate(self.containerDefinitions, name: "containerDefinitions", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, max: 128) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[a-zA-Z0-9\\-]+$") + try self.tags?.forEach { + try $0.validate(name: "\(name).tags[]") + } + try self.validate(self.tags, name: "tags", parent: name, max: 200) + try self.validate(self.totalCpuLimit, name: "totalCpuLimit", parent: name, max: 10240) + try self.validate(self.totalCpuLimit, name: "totalCpuLimit", parent: name, min: 128) + try self.validate(self.totalMemoryLimit, name: "totalMemoryLimit", parent: name, max: 1024000) + try self.validate(self.totalMemoryLimit, name: "totalMemoryLimit", parent: name, min: 4) + } + + private enum CodingKeys: String, CodingKey { + case containerDefinitions = "ContainerDefinitions" + case name = "Name" + case operatingSystem = "OperatingSystem" + case schedulingStrategy = "SchedulingStrategy" + case tags = "Tags" + case totalCpuLimit = "TotalCpuLimit" + case totalMemoryLimit = "TotalMemoryLimit" + } + } + + public struct CreateContainerGroupDefinitionOutput: AWSDecodableShape { + /// The properties of the newly created container group definition resource. You use this resource to create a container fleet. + public let containerGroupDefinition: ContainerGroupDefinition? + + public init(containerGroupDefinition: ContainerGroupDefinition? = nil) { + self.containerGroupDefinition = containerGroupDefinition + } + + private enum CodingKeys: String, CodingKey { + case containerGroupDefinition = "ContainerGroupDefinition" + } + } + public struct CreateFleetInput: AWSEncodableShape { /// Amazon GameLift Anywhere configuration options. public let anywhereConfiguration: AnywhereConfiguration? - /// The unique identifier for a custom game server build to be deployed on fleet instances. You can use either the build ID or ARN. The build must be uploaded to Amazon GameLift and in READY status. This fleet property can't be changed after the fleet is created. + /// The unique identifier for a custom game server build to be deployed to a fleet with compute type EC2. You can use either the build ID or ARN. The build must be uploaded to Amazon GameLift and in READY status. This fleet property can't be changed after the fleet is created. public let buildId: String? /// Prompts Amazon GameLift to generate a TLS/SSL certificate for the fleet. Amazon GameLift uses the certificates to encrypt traffic between game clients and the game servers running on Amazon GameLift. By default, the CertificateConfiguration is DISABLED. You can't change this property after you create the fleet. Certificate Manager (ACM) certificates expire after 13 months. Certificate expiration can cause fleets to fail, preventing players from connecting to instances in the fleet. We recommend you replace fleets before 13 months, consider using fleet aliases for a smooth transition. ACM isn't available in all Amazon Web Services regions. A fleet creation request with certificate generation enabled in an unsupported Region, fails with a 4xx error. For more information about the supported Regions, see Supported Regions in the Certificate Manager User Guide. public let certificateConfiguration: CertificateConfiguration? - /// The type of compute resource used to host your game servers. You can use your own compute resources with Amazon GameLift Anywhere or use Amazon EC2 instances with managed Amazon GameLift. By default, this property is set to EC2. + /// The type of compute resource used to host your game servers. EC2 – The game server build is deployed to Amazon EC2 instances for cloud hosting. This is the default setting. CONTAINER – Container images with your game server build and supporting software are deployed to Amazon EC2 instances for cloud hosting. With this compute type, you must specify the ContainerGroupsConfiguration parameter. ANYWHERE – Game servers or container images with your game server and supporting software are deployed to compute resources that are provided and managed by you. With this compute type, you can also set the AnywhereConfiguration parameter. public let computeType: ComputeType? + /// The container groups to deploy to instances in the container fleet and other fleet-level configuration settings. Use the CreateContainerGroupDefinition action to create container groups. A container fleet must have exactly one replica container group, and can optionally have one daemon container group. You can't change this property after you create the fleet. + public let containerGroupsConfiguration: ContainerGroupsConfiguration? /// A description for the fleet. public let description: String? - /// The allowed IP address ranges and port settings that allow inbound traffic to access game sessions on this fleet. If the fleet is hosting a custom game build, this property must be set before players can connect to game sessions. For Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges. + /// The IP address ranges and port settings that allow inbound traffic to access game server processes and other processes on this fleet. Set this parameter for EC2 and container fleets. You can leave this parameter empty when creating the fleet, but you must call UpdateFleetPortSettings to set it before players can connect to game sessions. As a best practice, we recommend opening ports for remote access only when you need them and closing them when you're finished. For Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges. To manage inbound access for a container fleet, set this parameter to the same port numbers that you set for the fleet's connection port range. During the life of the fleet, update this parameter to control which connection ports are open to inbound traffic. public let ec2InboundPermissions: [IpPermission]? - /// The Amazon GameLift-supported Amazon EC2 instance type to use for all fleet instances. Instance type determines the computing resources that will be used to host your game servers, including CPU, memory, storage, and networking capacity. See Amazon Elastic Compute Cloud Instance Types for detailed descriptions of Amazon EC2 instance types. + /// The Amazon GameLift-supported Amazon EC2 instance type to use with EC2 and container fleets. Instance type determines the computing resources that will be used to host your game servers, including CPU, memory, storage, and networking capacity. See Amazon Elastic Compute Cloud Instance Types for detailed descriptions of Amazon EC2 instance types. public let ec2InstanceType: EC2InstanceType? /// Indicates whether to use On-Demand or Spot instances for this fleet. By default, this property is set to ON_DEMAND. Learn more about when to use On-Demand versus Spot Instances. This fleet property can't be changed after the fleet is created. public let fleetType: FleetType? /// A unique identifier for an IAM role with access permissions to other Amazon Web Services services. Any application that runs on an instance in the fleet--including install scripts, server processes, and other processes--can use these permissions to interact with Amazon Web Services resources that you own or have access to. For more information about using the role with your game server builds, see Communicate with other Amazon Web Services resources from your fleets. This fleet property can't be changed after the fleet is created. public let instanceRoleArn: String? - /// Prompts Amazon GameLift to generate a shared credentials file for the IAM role defined in InstanceRoleArn. The shared credentials file is stored on each fleet instance and refreshed as needed. Use shared credentials for applications that are deployed along with the game server executable, if the game server is integrated with server SDK version 5.x. For more information about using shared credentials, see Communicate with other Amazon Web Services resources from your fleets. + /// Prompts Amazon GameLift to generate a shared credentials file for the IAM role that's defined in InstanceRoleArn. The shared credentials file is stored on each fleet instance and refreshed as needed. Use shared credentials for applications that are deployed along with the game server executable, if the game server is integrated with server SDK version 5.x. For more information about using shared credentials, see Communicate with other Amazon Web Services resources from your fleets. public let instanceRoleCredentialsProvider: InstanceRoleCredentialsProvider? - /// A set of remote locations to deploy additional instances to and manage as part of the fleet. This parameter can only be used when creating fleets in Amazon Web Services Regions that support multiple locations. You can add any Amazon GameLift-supported Amazon Web Services Region as a remote location, in the form of an Amazon Web Services Region code such as us-west-2. To create a fleet with instances in the home Region only, don't use this parameter. To use this parameter, Amazon GameLift requires you to use your home location in the request. + /// A set of remote locations to deploy additional instances to and manage as part of the fleet. This parameter can only be used when creating fleets in Amazon Web Services Regions that support multiple locations. You can add any Amazon GameLift-supported Amazon Web Services Region as a remote location, in the form of an Amazon Web Services Region code, such as us-west-2 or Local Zone code. To create a fleet with instances in the home Region only, don't set this parameter. When using this parameter, Amazon GameLift requires you to include your home location in the request. public let locations: [LocationConfiguration]? /// This parameter is no longer used. 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. For more information, see Initialize the server process in the Amazon GameLift Developer Guide. public let logPaths: [String]? @@ -1115,9 +1745,9 @@ extension GameLift { public let peerVpcId: String? /// A policy that limits the number of game sessions that an individual player can create on instances in this fleet within a specified span of time. public let resourceCreationLimitPolicy: ResourceCreationLimitPolicy? - /// Instructions for how to launch and maintain server processes on instances in the fleet. The runtime configuration defines one or more server process configurations, each identifying a build executable or Realtime script file and the number of processes of that type to run concurrently. The RuntimeConfiguration parameter is required unless the fleet is being configured using the older parameters ServerLaunchPath and ServerLaunchParameters, which are still supported for backward compatibility. + /// Instructions for how to launch and run server processes on the fleet. Set runtime configuration for EC2 fleets and container fleets. For an Anywhere fleets, set this parameter only if the fleet is running the Amazon GameLift Agent. The runtime configuration defines one or more server process configurations. Each server process identifies a game executable or Realtime script file and the number of processes to run concurrently. This parameter replaces the parameters ServerLaunchPath and ServerLaunchParameters, which are still supported for backward compatibility. public let runtimeConfiguration: RuntimeConfiguration? - /// The unique identifier for a Realtime configuration script to be deployed on fleet instances. You can use either the script ID or ARN. Scripts must be uploaded to Amazon GameLift prior to creating the fleet. This fleet property can't be changed after the fleet is created. + /// The unique identifier for a Realtime configuration script to be deployed to a fleet with compute type EC2. You can use either the script ID or ARN. Scripts must be uploaded to Amazon GameLift prior to creating the fleet. This fleet property can't be changed after the fleet is created. public let scriptId: String? /// This parameter is no longer used. Specify server launch parameters using the RuntimeConfiguration parameter. Requests that use this parameter instead continue to be valid. public let serverLaunchParameters: String? @@ -1126,11 +1756,12 @@ extension GameLift { /// A list of labels to assign to the new fleet resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference. public let tags: [Tag]? - public init(anywhereConfiguration: AnywhereConfiguration? = nil, buildId: String? = nil, certificateConfiguration: CertificateConfiguration? = nil, computeType: ComputeType? = nil, description: String? = nil, ec2InboundPermissions: [IpPermission]? = nil, ec2InstanceType: EC2InstanceType? = nil, fleetType: FleetType? = nil, instanceRoleArn: String? = nil, instanceRoleCredentialsProvider: InstanceRoleCredentialsProvider? = nil, locations: [LocationConfiguration]? = nil, logPaths: [String]? = nil, metricGroups: [String]? = nil, name: String? = nil, newGameSessionProtectionPolicy: ProtectionPolicy? = nil, peerVpcAwsAccountId: String? = nil, peerVpcId: String? = nil, resourceCreationLimitPolicy: ResourceCreationLimitPolicy? = nil, runtimeConfiguration: RuntimeConfiguration? = nil, scriptId: String? = nil, serverLaunchParameters: String? = nil, serverLaunchPath: String? = nil, tags: [Tag]? = nil) { + public init(anywhereConfiguration: AnywhereConfiguration? = nil, buildId: String? = nil, certificateConfiguration: CertificateConfiguration? = nil, computeType: ComputeType? = nil, containerGroupsConfiguration: ContainerGroupsConfiguration? = nil, description: String? = nil, ec2InboundPermissions: [IpPermission]? = nil, ec2InstanceType: EC2InstanceType? = nil, fleetType: FleetType? = nil, instanceRoleArn: String? = nil, instanceRoleCredentialsProvider: InstanceRoleCredentialsProvider? = nil, locations: [LocationConfiguration]? = nil, logPaths: [String]? = nil, metricGroups: [String]? = nil, name: String? = nil, newGameSessionProtectionPolicy: ProtectionPolicy? = nil, peerVpcAwsAccountId: String? = nil, peerVpcId: String? = nil, resourceCreationLimitPolicy: ResourceCreationLimitPolicy? = nil, runtimeConfiguration: RuntimeConfiguration? = nil, scriptId: String? = nil, serverLaunchParameters: String? = nil, serverLaunchPath: String? = nil, tags: [Tag]? = nil) { self.anywhereConfiguration = anywhereConfiguration self.buildId = buildId self.certificateConfiguration = certificateConfiguration self.computeType = computeType + self.containerGroupsConfiguration = containerGroupsConfiguration self.description = description self.ec2InboundPermissions = ec2InboundPermissions self.ec2InstanceType = ec2InstanceType @@ -1155,6 +1786,7 @@ extension GameLift { public func validate(name: String) throws { try self.anywhereConfiguration?.validate(name: "\(name).anywhereConfiguration") try self.validate(self.buildId, name: "buildId", parent: name, pattern: "^build-\\S+|^arn:.*:build\\/build-\\S+$") + try self.containerGroupsConfiguration?.validate(name: "\(name).containerGroupsConfiguration") try self.validate(self.description, name: "description", parent: name, max: 1024) try self.validate(self.description, name: "description", parent: name, min: 1) try self.ec2InboundPermissions?.forEach { @@ -1202,6 +1834,7 @@ extension GameLift { case buildId = "BuildId" case certificateConfiguration = "CertificateConfiguration" case computeType = "ComputeType" + case containerGroupsConfiguration = "ContainerGroupsConfiguration" case description = "Description" case ec2InboundPermissions = "EC2InboundPermissions" case ec2InstanceType = "EC2InstanceType" @@ -2006,6 +2639,25 @@ extension GameLift { } } + public struct DeleteContainerGroupDefinitionInput: AWSEncodableShape { + /// The unique identifier for the container group definition to delete. You can use either the Name or ARN value. + public let name: String? + + public init(name: String? = nil) { + self.name = name + } + + public func validate(name: String) throws { + try self.validate(self.name, name: "name", parent: name, max: 512) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[a-zA-Z0-9\\-]+$|^arn:.*:containergroupdefinition\\/[a-zA-Z0-9\\-]+$") + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + public struct DeleteFleetInput: AWSEncodableShape { /// A unique identifier for the fleet to be deleted. You can use either the fleet ID or ARN value. public let fleetId: String? @@ -2296,7 +2948,7 @@ extension GameLift { } public struct DeregisterComputeInput: AWSEncodableShape { - /// The name of the compute resource to remove from the specified Anywhere fleet. + /// The unique identifier of the compute resource to deregister. For an Anywhere fleet compute, use the registered compute name. For a container fleet, use the compute name (for example, a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9) or the compute ARN. public let computeName: String? /// A unique identifier for the fleet the compute resource is currently registered to. public let fleetId: String? @@ -2308,7 +2960,7 @@ extension GameLift { public func validate(name: String) throws { try self.validate(self.computeName, name: "computeName", parent: name, max: 1024) - try self.validate(self.computeName, name: "computeName", parent: name, pattern: "^[a-zA-Z0-9\\-]+|^arn:.*:compute\\/[a-zA-Z0-9\\-]+$") + try self.validate(self.computeName, name: "computeName", parent: name, pattern: "^[a-zA-Z0-9\\-]+(\\/[a-zA-Z0-9\\-]+)?$|^arn:.*:compute\\/[a-zA-Z0-9\\-]+(\\/[a-zA-Z0-9\\-]+)?$") try self.validate(self.fleetId, name: "fleetId", parent: name, pattern: "^fleet-\\S+|^arn:.*:fleet\\/fleet-\\S+$") } @@ -2409,9 +3061,9 @@ extension GameLift { } public struct DescribeComputeInput: AWSEncodableShape { - /// The unique identifier of the compute resource to retrieve properties for. For an Anywhere fleet compute, use the registered compute name. For a managed EC2 fleet instance, use the instance ID. + /// The unique identifier of the compute resource to retrieve properties for. For an Anywhere fleet compute, use the registered compute name. For an EC2 fleet instance, use the instance ID. For a container fleet, use the compute name (for example, a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9) or the compute ARN. public let computeName: String? - /// A unique identifier for the fleet that the compute is registered to. You can use either the fleet ID or ARN value. + /// A unique identifier for the fleet that the compute belongs to. You can use either the fleet ID or ARN value. public let fleetId: String? public init(computeName: String? = nil, fleetId: String? = nil) { @@ -2421,7 +3073,7 @@ extension GameLift { public func validate(name: String) throws { try self.validate(self.computeName, name: "computeName", parent: name, max: 1024) - try self.validate(self.computeName, name: "computeName", parent: name, pattern: "^[a-zA-Z0-9\\-]+|^arn:.*:compute\\/[a-zA-Z0-9\\-]+$") + try self.validate(self.computeName, name: "computeName", parent: name, pattern: "^[a-zA-Z0-9\\-]+(\\/[a-zA-Z0-9\\-]+)?$|^arn:.*:compute\\/[a-zA-Z0-9\\-]+(\\/[a-zA-Z0-9\\-]+)?$") try self.validate(self.fleetId, name: "fleetId", parent: name, pattern: "^fleet-\\S+|^arn:.*:fleet\\/fleet-\\S+$") } @@ -2444,6 +3096,38 @@ extension GameLift { } } + public struct DescribeContainerGroupDefinitionInput: AWSEncodableShape { + /// The unique identifier for the container group definition to retrieve properties for. You can use either the Name or ARN value. + public let name: String? + + public init(name: String? = nil) { + self.name = name + } + + public func validate(name: String) throws { + try self.validate(self.name, name: "name", parent: name, max: 512) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[a-zA-Z0-9\\-]+$|^arn:.*:containergroupdefinition\\/[a-zA-Z0-9\\-]+$") + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct DescribeContainerGroupDefinitionOutput: AWSDecodableShape { + /// The properties of the requested container group definition resource. + public let containerGroupDefinition: ContainerGroupDefinition? + + public init(containerGroupDefinition: ContainerGroupDefinition? = nil) { + self.containerGroupDefinition = containerGroupDefinition + } + + private enum CodingKeys: String, CodingKey { + case containerGroupDefinition = "ContainerGroupDefinition" + } + } + public struct DescribeEC2InstanceLimitsInput: AWSEncodableShape { /// Name of an Amazon 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. Do not specify a value for this parameter to retrieve limits for all instance types. public let ec2InstanceType: EC2InstanceType? @@ -3498,7 +4182,7 @@ extension GameLift { } public struct DescribeRuntimeConfigurationOutput: AWSDecodableShape { - /// Instructions that describe how server processes should be launched and maintained on each instance in the fleet. + /// Instructions that describe how server processes are launched and maintained on computes in the fleet. public let runtimeConfiguration: RuntimeConfiguration? public init(runtimeConfiguration: RuntimeConfiguration? = nil) { @@ -3730,6 +4414,8 @@ extension GameLift { } public struct Event: AWSDecodableShape { + /// The number of times that this event occurred. + public let count: Int64? /// The type of event being logged. Fleet state transition events: FLEET_CREATED -- A fleet resource 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_STATE_VALIDATING -- Fleet status changed from DOWNLOADING to VALIDATING. Amazon GameLift has successfully downloaded the build and is now validating the build files. FLEET_STATE_BUILDING -- Fleet status changed from VALIDATING to BUILDING. Amazon GameLift has successfully verified the build files and is now running the installation scripts. FLEET_STATE_ACTIVATING -- Fleet status changed from BUILDING to ACTIVATING. Amazon GameLift is trying to launch an instance and test the connectivity between the build and the Amazon GameLift Service via the Server SDK. FLEET_STATE_ACTIVE -- The fleet's status changed from ACTIVATING to ACTIVE. The fleet is now ready to host game sessions. FLEET_STATE_ERROR -- The Fleet's status changed to ERROR. Describe the fleet event message for more details. Fleet creation events (ordered by fleet creation activity): 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 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 GameLift is now verifying that the game server launch paths, which are specified in the fleet's runtime 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 runtime configuration and indicate whether each is found. Access the logs by using the URL in PreSignedLogUrl. FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND -- Validation of the runtime configuration failed because the executable specified in a launch path does not exist on the instance. FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE -- Validation of the runtime configuration failed because the executable specified in a launch path failed to run on the fleet instance. FLEET_VALIDATION_TIMED_OUT -- Validation of the fleet at the end of creation timed out. Try fleet creation again. 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. For more information, see Debug Fleet Creation Issues. FLEET_ACTIVATION_FAILED_NO_INSTANCES -- Fleet creation was not able to obtain any instances based on the input fleet attributes. Try again at a different time or choose a different combination of fleet attributes such as fleet type, instance type, etc. FLEET_INITIALIZATION_FAILED -- A generic exception occurred during fleet creation. Describe the fleet event message for more details. 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 Amazon Web Services account. FLEET_VPC_PEERING_FAILED -- A requested VPC peering connection has failed. Event details and status information 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 Amazon Web Services account. For more information on VPC peering failures, see https://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/invalid-peering-configurations.html FLEET_VPC_PEERING_DELETED -- A VPC peering connection has been successfully deleted. Spot instance events: INSTANCE_INTERRUPTED -- A spot instance was interrupted by EC2 with a two-minute notification. INSTANCE_RECYCLED -- A spot instance was determined to have a high risk of interruption and is scheduled to be recycled once it has no active game sessions. Server process events: SERVER_PROCESS_INVALID_PATH -- The game server executable or script could not be found based on the Fleet runtime configuration. Check that the launch path is correct based on the operating system of the Fleet. SERVER_PROCESS_SDK_INITIALIZATION_TIMEOUT -- The server process did not call InitSDK() within the time expected (5 minutes). Check your game session log to see why InitSDK() was not called in time. SERVER_PROCESS_PROCESS_READY_TIMEOUT -- The server process did not call ProcessReady() within the time expected (5 minutes) after calling InitSDK(). Check your game session log to see why ProcessReady() was not called in time. SERVER_PROCESS_CRASHED -- The server process exited without calling ProcessEnding(). Check your game session log to see why ProcessEnding() was not called. SERVER_PROCESS_TERMINATED_UNHEALTHY -- The server process did not report a valid health check for too long and was therefore terminated by GameLift. Check your game session log to see if the thread became stuck processing a synchronous task for too long. SERVER_PROCESS_FORCE_TERMINATED -- The server process did not exit cleanly within the time expected after OnProcessTerminate() was sent. Check your game session log to see why termination took longer than expected. SERVER_PROCESS_PROCESS_EXIT_TIMEOUT -- The server process did not exit cleanly within the time expected (30 seconds) after calling ProcessEnding(). Check your game session log to see why termination took longer than expected. Game session events: GAME_SESSION_ACTIVATION_TIMEOUT -- GameSession failed to activate within the expected time. Check your game session log to see why ActivateGameSession() took longer to complete than expected. 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. GENERIC_EVENT -- An unspecified event has occurred. public let eventCode: EventCode? /// A unique identifier for a fleet event. @@ -3743,7 +4429,8 @@ extension GameLift { /// A unique identifier for an event resource, such as a fleet ID. public let resourceId: String? - public init(eventCode: EventCode? = nil, eventId: String? = nil, eventTime: Date? = nil, message: String? = nil, preSignedLogUrl: String? = nil, resourceId: String? = nil) { + public init(count: Int64? = nil, eventCode: EventCode? = nil, eventId: String? = nil, eventTime: Date? = nil, message: String? = nil, preSignedLogUrl: String? = nil, resourceId: String? = nil) { + self.count = count self.eventCode = eventCode self.eventId = eventId self.eventTime = eventTime @@ -3753,6 +4440,7 @@ extension GameLift { } private enum CodingKeys: String, CodingKey { + case count = "Count" case eventCode = "EventCode" case eventId = "EventId" case eventTime = "EventTime" @@ -3786,14 +4474,18 @@ extension GameLift { } public struct FleetAttributes: AWSDecodableShape { + /// This property is used with the Amazon GameLift containers feature, which is currently in public preview. A set of attributes that describe the container groups that are deployed on the fleet. These attributes are included for fleets with compute type CONTAINER only. This attribute is used with fleets where ComputeType is "Container". public let anywhereConfiguration: AnywhereConfiguration? - /// The Amazon Resource Name (ARN) associated with the Amazon GameLift build resource that is deployed on instances in this fleet. In a GameLift build ARN, the resource ID matches the BuildId value. + /// The Amazon Resource Name (ARN) associated with the Amazon GameLift build resource that is deployed on instances in this fleet. In a GameLift build ARN, the resource ID matches the BuildId value. This attribute is used with fleets where ComputeType is "EC2". public let buildArn: String? - /// A unique identifier for the build resource that is deployed on instances in this fleet. + /// A unique identifier for the build resource that is deployed on instances in this fleet. This attribute is used with fleets where ComputeType is "EC2". public let buildId: String? + /// Determines whether a TLS/SSL certificate is generated for a fleet. This feature must be enabled when creating the fleet. All instances in a fleet share the same certificate. public let certificateConfiguration: CertificateConfiguration? /// The type of compute resource used to host your game servers. You can use your own compute resources with Amazon GameLift Anywhere or use Amazon EC2 instances with managed Amazon GameLift. public let computeType: ComputeType? + /// A set of properties that describe the container groups that are deployed to the fleet. These attributes are included for fleets with compute type CONTAINER. + public let containerGroupsAttributes: ContainerGroupsAttributes? /// A 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: Date? /// A human-readable description of the fleet. @@ -3802,46 +4494,47 @@ extension GameLift { public let fleetArn: String? /// A unique identifier for the fleet. public let fleetId: String? - /// Indicates whether to use On-Demand or Spot instances for this fleet. By default, this property is set to ON_DEMAND. Learn more about when to use On-Demand versus Spot Instances. This fleet property can't be changed after the fleet is created. + /// Indicates whether the fleet uses On-Demand or Spot instances. For more information, see On-Demand versus Spot Instances. This fleet property can't be changed after the fleet is created. public let fleetType: FleetType? - /// A unique identifier for an IAM role with access permissions to other Amazon Web Services services. Any application that runs on an instance in the fleet--including install scripts, server processes, and other processes--can use these permissions to interact with Amazon Web Services resources that you own or have access to. For more information about using the role with your game server builds, see Communicate with other Amazon Web Services resources from your fleets. + /// A unique identifier for an IAM role with access permissions to other Amazon Web Services services. Any application that runs on an instance in the fleet--including install scripts, server processes, and other processes--can use these permissions to interact with Amazon Web Services resources that you own or have access to. For more information about using the role with your game server builds, see Communicate with other Amazon Web Services resources from your fleets. This attribute is used with fleets where ComputeType is "EC2" or "Container". public let instanceRoleArn: String? - /// Indicates that fleet instances maintain a shared credentials file for the IAM role defined in InstanceRoleArn. Shared credentials allow applications that are deployed with the game server executable to communicate with other Amazon Web Services resources. This property is used only when the game server is integrated with the server SDK version 5.x. For more information about using shared credentials, see Communicate with other Amazon Web Services resources from your fleets. + /// Indicates that fleet instances maintain a shared credentials file for the IAM role defined in InstanceRoleArn. Shared credentials allow applications that are deployed with the game server executable to communicate with other Amazon Web Services resources. This property is used only when the game server is integrated with the server SDK version 5.x. For more information about using shared credentials, see Communicate with other Amazon Web Services resources from your fleets. This attribute is used with fleets where ComputeType is "EC2" or "Container". public let instanceRoleCredentialsProvider: InstanceRoleCredentialsProvider? - /// The Amazon EC2 instance type that determines the computing resources of each instance in the fleet. Instance type defines the CPU, memory, storage, and networking capacity. See Amazon Elastic Compute Cloud Instance Types for detailed descriptions. + /// The Amazon EC2 instance type that the fleet uses. Instance type determines the computing resources of each instance in the fleet, including CPU, memory, storage, and networking capacity. See Amazon Elastic Compute Cloud Instance Types for detailed descriptions. This attribute is used with fleets where ComputeType is "EC2" or "Container". public let instanceType: EC2InstanceType? /// This parameter is no longer used. Game session log paths are now defined using the Amazon GameLift server API ProcessReady() logParameters. See more information in the Server API Reference. public let logPaths: [String]? - /// Name of a metric group that metrics for this fleet are added to. In Amazon CloudWatch, you can view aggregated metrics for fleets that are in a metric group. A fleet can be included in only one metric group at a time. + /// Name of a metric group that metrics for this fleet are added to. In Amazon CloudWatch, you can view aggregated metrics for fleets that are in a metric group. A fleet can be included in only one metric group at a time. This attribute is used with fleets where ComputeType is "EC2" or "Container". public let metricGroups: [String]? /// A descriptive label that is associated with a fleet. Fleet names do not need to be unique. public let name: String? - /// The type of game session protection to set on all new instances that are 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. + /// The type of game session protection to set on all new instances that are started in the fleet. This attribute is used with fleets where ComputeType is "EC2" or "Container". 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? - /// The operating system of the fleet's computing resources. A fleet's operating system is determined by the OS of the build or script that is deployed on this fleet. + /// The operating system of the fleet's computing resources. A fleet's operating system is determined by the OS of the build or script that is deployed on this fleet. This attribute is used with fleets where ComputeType is "EC2" or "Container". public let operatingSystem: OperatingSystem? public let resourceCreationLimitPolicy: ResourceCreationLimitPolicy? /// The Amazon Resource Name (ARN) associated with the GameLift script resource that is deployed on instances in this fleet. In a GameLift script ARN, the resource ID matches the ScriptId value. public let scriptArn: String? - /// A unique identifier for the Realtime script resource that is deployed on instances in this fleet. + /// A unique identifier for the Realtime script resource that is deployed on instances in this fleet. This attribute is used with fleets where ComputeType is "EC2". public let scriptId: String? - /// This parameter is no longer used. Server launch parameters are now defined using the fleet's runtime configuration . Requests that use this parameter instead continue to be valid. + /// This parameter is no longer used. Server launch parameters are now defined using the fleet's runtime configuration . Requests that use this parameter continue to be valid. public let serverLaunchParameters: String? - /// This parameter is no longer used. Server launch paths are now defined using the fleet's RuntimeConfiguration . Requests that use this parameter instead continue to be valid. + /// This parameter is no longer used. Server launch paths are now defined using the fleet's RuntimeConfiguration . Requests that use this parameter continue to be valid. public let serverLaunchPath: 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 or Realtime script 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 or Realtime script 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? - /// A list of fleet activity that has been suspended using StopFleetActions . This includes fleet auto-scaling. + /// A list of fleet activity that has been suspended using StopFleetActions. This includes fleet auto-scaling. This attribute is used with fleets where ComputeType is "EC2" or "Container". public let stoppedActions: [FleetAction]? /// A 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: Date? - public init(anywhereConfiguration: AnywhereConfiguration? = nil, buildArn: String? = nil, buildId: String? = nil, certificateConfiguration: CertificateConfiguration? = nil, computeType: ComputeType? = nil, creationTime: Date? = nil, description: String? = nil, fleetArn: String? = nil, fleetId: String? = nil, fleetType: FleetType? = nil, instanceRoleArn: String? = nil, instanceRoleCredentialsProvider: InstanceRoleCredentialsProvider? = nil, instanceType: EC2InstanceType? = nil, logPaths: [String]? = nil, metricGroups: [String]? = nil, name: String? = nil, newGameSessionProtectionPolicy: ProtectionPolicy? = nil, operatingSystem: OperatingSystem? = nil, resourceCreationLimitPolicy: ResourceCreationLimitPolicy? = nil, scriptArn: String? = nil, scriptId: String? = nil, serverLaunchParameters: String? = nil, serverLaunchPath: String? = nil, status: FleetStatus? = nil, stoppedActions: [FleetAction]? = nil, terminationTime: Date? = nil) { + public init(anywhereConfiguration: AnywhereConfiguration? = nil, buildArn: String? = nil, buildId: String? = nil, certificateConfiguration: CertificateConfiguration? = nil, computeType: ComputeType? = nil, containerGroupsAttributes: ContainerGroupsAttributes? = nil, creationTime: Date? = nil, description: String? = nil, fleetArn: String? = nil, fleetId: String? = nil, fleetType: FleetType? = nil, instanceRoleArn: String? = nil, instanceRoleCredentialsProvider: InstanceRoleCredentialsProvider? = nil, instanceType: EC2InstanceType? = nil, logPaths: [String]? = nil, metricGroups: [String]? = nil, name: String? = nil, newGameSessionProtectionPolicy: ProtectionPolicy? = nil, operatingSystem: OperatingSystem? = nil, resourceCreationLimitPolicy: ResourceCreationLimitPolicy? = nil, scriptArn: String? = nil, scriptId: String? = nil, serverLaunchParameters: String? = nil, serverLaunchPath: String? = nil, status: FleetStatus? = nil, stoppedActions: [FleetAction]? = nil, terminationTime: Date? = nil) { self.anywhereConfiguration = anywhereConfiguration self.buildArn = buildArn self.buildId = buildId self.certificateConfiguration = certificateConfiguration self.computeType = computeType + self.containerGroupsAttributes = containerGroupsAttributes self.creationTime = creationTime self.description = description self.fleetArn = fleetArn @@ -3871,6 +4564,7 @@ extension GameLift { case buildId = "BuildId" case certificateConfiguration = "CertificateConfiguration" case computeType = "ComputeType" + case containerGroupsAttributes = "ContainerGroupsAttributes" case creationTime = "CreationTime" case description = "Description" case fleetArn = "FleetArn" @@ -3900,18 +4594,22 @@ extension GameLift { public let fleetArn: String? /// A unique identifier for the fleet associated with the location. public let fleetId: String? + /// The current number of instances in the fleet, listed by instance status. Counts for pending and terminating instances might be non-zero if the fleet is adjusting to a scaling event or if access to resources is temporarily affected. public let instanceCounts: EC2InstanceCounts? - /// The Amazon EC2 instance type that is used for all instances in a fleet. The instance type determines the computing resources in use, including CPU, memory, storage, and networking capacity. See Amazon Elastic Compute Cloud Instance Types for detailed descriptions. + /// The Amazon EC2 instance type that is used for instances in a fleet. Instance type determines the computing resources in use, including CPU, memory, storage, and networking capacity. See Amazon Elastic Compute Cloud Instance Types for detailed descriptions. public let instanceType: EC2InstanceType? /// The fleet location for the instance count information, expressed as an Amazon Web Services Region code, such as us-west-2. public let location: String? + /// This property is used with the Amazon GameLift containers feature, which is currently in public preview. The number and status of replica container groups in a container fleet. + public let replicaContainerGroupCounts: ReplicaContainerGroupCounts? - public init(fleetArn: String? = nil, fleetId: String? = nil, instanceCounts: EC2InstanceCounts? = nil, instanceType: EC2InstanceType? = nil, location: String? = nil) { + public init(fleetArn: String? = nil, fleetId: String? = nil, instanceCounts: EC2InstanceCounts? = nil, instanceType: EC2InstanceType? = nil, location: String? = nil, replicaContainerGroupCounts: ReplicaContainerGroupCounts? = nil) { self.fleetArn = fleetArn self.fleetId = fleetId self.instanceCounts = instanceCounts self.instanceType = instanceType self.location = location + self.replicaContainerGroupCounts = replicaContainerGroupCounts } private enum CodingKeys: String, CodingKey { @@ -3920,6 +4618,7 @@ extension GameLift { case instanceCounts = "InstanceCounts" case instanceType = "InstanceType" case location = "Location" + case replicaContainerGroupCounts = "ReplicaContainerGroupCounts" } } @@ -4416,9 +5115,9 @@ extension GameLift { } public struct GetComputeAccessInput: AWSEncodableShape { - /// A unique identifier for the compute resource that you want to connect to. You can use either a registered compute name or an instance ID. + /// A unique identifier for the compute resource that you want to connect to. For an EC2 fleet compute, use the instance ID. For a container fleet, use the compute name (for example, a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9) or the compute ARN. public let computeName: String? - /// A unique identifier for the fleet that contains the compute resource you want to connect to. You can use either the fleet ID or ARN value. + /// A unique identifier for the fleet that holds the compute resource that you want to connect to. You can use either the fleet ID or ARN value. public let fleetId: String? public init(computeName: String? = nil, fleetId: String? = nil) { @@ -4428,7 +5127,7 @@ extension GameLift { public func validate(name: String) throws { try self.validate(self.computeName, name: "computeName", parent: name, max: 1024) - try self.validate(self.computeName, name: "computeName", parent: name, pattern: "^[a-zA-Z0-9\\-]+|^arn:.*:compute\\/[a-zA-Z0-9\\-]+$") + try self.validate(self.computeName, name: "computeName", parent: name, pattern: "^[a-zA-Z0-9\\-]+(\\/[a-zA-Z0-9\\-]+)?$|^arn:.*:compute\\/[a-zA-Z0-9\\-]+(\\/[a-zA-Z0-9\\-]+)?$") try self.validate(self.fleetId, name: "fleetId", parent: name, pattern: "^fleet-\\S+|^arn:.*:fleet\\/fleet-\\S+$") } @@ -4447,15 +5146,18 @@ extension GameLift { public let credentials: AwsCredentials? /// The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. public let fleetArn: String? - /// The ID of the fleet that contains the compute resource to be accessed. + /// The ID of the fleet that holds the compute resource to be accessed. public let fleetId: String? + /// (For container fleets only) The instance ID where the compute resource is running. + public let target: String? - public init(computeArn: String? = nil, computeName: String? = nil, credentials: AwsCredentials? = nil, fleetArn: String? = nil, fleetId: String? = nil) { + public init(computeArn: String? = nil, computeName: String? = nil, credentials: AwsCredentials? = nil, fleetArn: String? = nil, fleetId: String? = nil, target: String? = nil) { self.computeArn = computeArn self.computeName = computeName self.credentials = credentials self.fleetArn = fleetArn self.fleetId = fleetId + self.target = target } private enum CodingKeys: String, CodingKey { @@ -4464,11 +5166,12 @@ extension GameLift { case credentials = "Credentials" case fleetArn = "FleetArn" case fleetId = "FleetId" + case target = "Target" } } public struct GetComputeAuthTokenInput: AWSEncodableShape { - /// The name of the compute resource you are requesting the authentication token for. + /// The name of the compute resource you are requesting the authentication token for. For an Anywhere fleet compute, use the registered compute name. For an EC2 fleet instance, use the instance ID. For a container fleet, use the compute name (for example, a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9) or the compute ARN. public let computeName: String? /// A unique identifier for the fleet that the compute is registered to. public let fleetId: String? @@ -4480,7 +5183,7 @@ extension GameLift { public func validate(name: String) throws { try self.validate(self.computeName, name: "computeName", parent: name, max: 1024) - try self.validate(self.computeName, name: "computeName", parent: name, pattern: "^[a-zA-Z0-9\\-]+|^arn:.*:compute\\/[a-zA-Z0-9\\-]+$") + try self.validate(self.computeName, name: "computeName", parent: name, pattern: "^[a-zA-Z0-9\\-]+(\\/[a-zA-Z0-9\\-]+)?$|^arn:.*:compute\\/[a-zA-Z0-9\\-]+(\\/[a-zA-Z0-9\\-]+)?$") try self.validate(self.fleetId, name: "fleetId", parent: name, pattern: "^fleet-\\S+|^arn:.*:fleet\\/fleet-\\S+$") } @@ -4870,7 +5573,7 @@ extension GameLift { public let fleetId: String? /// The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. public let limit: Int? - /// The name of a location to retrieve compute resources for. + /// The name of a location to retrieve compute resources for. For an Amazon GameLift Anywhere fleet, use a custom location. For a multi-location EC2 or container fleet, provide a Amazon Web Services Region or Local Zone code (for example: us-west-2 or us-west-2-lax-1). public let location: String? /// A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value. public let nextToken: String? @@ -4917,9 +5620,55 @@ extension GameLift { } } + public struct ListContainerGroupDefinitionsInput: AWSEncodableShape { + /// The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. + public let limit: Int? + /// A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value. + public let nextToken: String? + /// The type of container group definitions to retrieve. DAEMON -- Daemon container groups run background processes and are deployed once per fleet instance. REPLICA -- Replica container groups run your game server application and supporting software. Replica groups might be deployed multiple times per fleet instance. + public let schedulingStrategy: ContainerSchedulingStrategy? + + public init(limit: Int? = nil, nextToken: String? = nil, schedulingStrategy: ContainerSchedulingStrategy? = nil) { + self.limit = limit + self.nextToken = nextToken + self.schedulingStrategy = schedulingStrategy + } + + public func validate(name: String) throws { + try self.validate(self.limit, name: "limit", parent: name, max: 10) + try self.validate(self.limit, name: "limit", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case nextToken = "NextToken" + case schedulingStrategy = "SchedulingStrategy" + } + } + + public struct ListContainerGroupDefinitionsOutput: AWSDecodableShape { + /// A result set of container group definitions that match the request. + public let containerGroupDefinitions: [ContainerGroupDefinition]? + /// A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list. + public let nextToken: String? + + public init(containerGroupDefinitions: [ContainerGroupDefinition]? = nil, nextToken: String? = nil) { + self.containerGroupDefinitions = containerGroupDefinitions + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case containerGroupDefinitions = "ContainerGroupDefinitions" + case nextToken = "NextToken" + } + } + public struct ListFleetsInput: AWSEncodableShape { /// A unique identifier for the build to request fleets for. Use this parameter to return only fleets using a specified build. Use either the build ID or ARN value. public let buildId: String? + /// The container group definition name to request fleets for. Use this parameter to return only fleets that are deployed with the specified container group definition. + public let containerGroupDefinitionName: String? /// The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. public let limit: Int? /// A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value. @@ -4927,8 +5676,9 @@ extension GameLift { /// A unique identifier for the Realtime script to request fleets for. Use this parameter to return only fleets using a specified script. Use either the script ID or ARN value. public let scriptId: String? - public init(buildId: String? = nil, limit: Int? = nil, nextToken: String? = nil, scriptId: String? = nil) { + public init(buildId: String? = nil, containerGroupDefinitionName: String? = nil, limit: Int? = nil, nextToken: String? = nil, scriptId: String? = nil) { self.buildId = buildId + self.containerGroupDefinitionName = containerGroupDefinitionName self.limit = limit self.nextToken = nextToken self.scriptId = scriptId @@ -4936,6 +5686,9 @@ extension GameLift { public func validate(name: String) throws { try self.validate(self.buildId, name: "buildId", parent: name, pattern: "^build-\\S+|^arn:.*:build\\/build-\\S+$") + try self.validate(self.containerGroupDefinitionName, name: "containerGroupDefinitionName", parent: name, max: 512) + try self.validate(self.containerGroupDefinitionName, name: "containerGroupDefinitionName", parent: name, min: 1) + try self.validate(self.containerGroupDefinitionName, name: "containerGroupDefinitionName", parent: name, pattern: "^[a-zA-Z0-9\\-]+$|^arn:.*:containergroupdefinition\\/[a-zA-Z0-9\\-]+$") try self.validate(self.limit, name: "limit", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1024) try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) @@ -4944,6 +5697,7 @@ extension GameLift { private enum CodingKeys: String, CodingKey { case buildId = "BuildId" + case containerGroupDefinitionName = "ContainerGroupDefinitionName" case limit = "Limit" case nextToken = "NextToken" case scriptId = "ScriptId" @@ -5712,7 +6466,7 @@ extension GameLift { try self.validate(self.certificatePath, name: "certificatePath", parent: name, min: 1) try self.validate(self.computeName, name: "computeName", parent: name, max: 128) try self.validate(self.computeName, name: "computeName", parent: name, min: 1) - try self.validate(self.computeName, name: "computeName", parent: name, pattern: "^[a-zA-Z0-9\\-]+$") + try self.validate(self.computeName, name: "computeName", parent: name, pattern: "^[a-zA-Z0-9\\-]+(\\/[a-zA-Z0-9\\-]+)?$") try self.validate(self.dnsName, name: "dnsName", parent: name, max: 256) try self.validate(self.dnsName, name: "dnsName", parent: name, min: 1) try self.validate(self.dnsName, name: "dnsName", parent: name, pattern: "^[0-9a-zA-Z_\\-\\.]+$") @@ -5808,6 +6562,31 @@ extension GameLift { } } + public struct ReplicaContainerGroupCounts: AWSDecodableShape { + /// The number of container groups that have active game sessions. + public let active: Int? + /// The number of container groups that have no active game sessions. + public let idle: Int? + /// The number of container groups that are starting up but have not yet registered. + public let pending: Int? + /// The number of container groups that are in the process of shutting down. + public let terminating: Int? + + public init(active: Int? = nil, idle: Int? = nil, pending: Int? = nil, terminating: Int? = nil) { + self.active = active + self.idle = idle + self.pending = pending + self.terminating = terminating + } + + private enum CodingKeys: String, CodingKey { + case active = "ACTIVE" + case idle = "IDLE" + case pending = "PENDING" + case terminating = "TERMINATING" + } + } + public struct RequestUploadCredentialsInput: AWSEncodableShape { /// A unique identifier for the build to get credentials for. You can use either the build ID or ARN value. public let buildId: String? @@ -5964,9 +6743,9 @@ extension GameLift { public struct RuntimeConfiguration: AWSEncodableShape & AWSDecodableShape { /// The maximum amount of time (in seconds) allowed to launch a new game session and have it report ready to host players. During this time, the game session is in status ACTIVATING. If the game session does not become active before the timeout, it is ended and the game session status is changed to TERMINATED. public let gameSessionActivationTimeoutSeconds: Int? - /// The number of game sessions in status ACTIVATING to allow on an instance. This setting limits the instance resources that can be used for new game activations at any one time. + /// The number of game sessions in status ACTIVATING to allow on an instance or container. This setting limits the instance resources that can be used for new game activations at any one time. public let maxConcurrentGameSessionActivations: Int? - /// A collection of server process configurations that identify what server processes to run on each instance in a fleet. + /// A collection of server process configurations that identify what server processes to run on fleet computes. public let serverProcesses: [ServerProcess]? public init(gameSessionActivationTimeoutSeconds: Int? = nil, maxConcurrentGameSessionActivations: Int? = nil, serverProcesses: [ServerProcess]? = nil) { @@ -6198,7 +6977,7 @@ extension GameLift { } public struct ServerProcess: AWSEncodableShape & AWSDecodableShape { - /// The number of server processes using this configuration that run concurrently on each instance. + /// The number of server processes using this configuration that run concurrently on each instance or container.. public let concurrentExecutions: Int? /// The location of a game build executable or Realtime script. Game builds and Realtime scripts are installed on instances at the root: Windows (custom game builds only): C:\game. Example: "C:\game\MyGame\server.exe" Linux: /local/game. Examples: "/local/game/MyGame/server.exe" or "/local/game/MyRealtimeScript.js" Amazon GameLift doesn't support the use of setup scripts that launch the game executable. For custom game builds, this parameter must indicate the executable that calls the server SDK operations initSDK() and ProcessReady(). public let launchPath: String? @@ -7325,7 +8104,7 @@ extension GameLift { public struct UpdateRuntimeConfigurationInput: AWSEncodableShape { /// A unique identifier for the fleet to update runtime configuration for. You can use either the fleet ID or ARN value. public let fleetId: String? - /// Instructions for launching server processes on each instance in the fleet. Server processes run either a custom game build executable or a Realtime Servers script. The runtime configuration lists the types of server processes to run on an instance, how to launch them, and the number of processes to run concurrently. + /// Instructions for launching server processes on fleet computes. Server processes run either a custom game build executable or a Realtime Servers script. The runtime configuration lists the types of server processes to run, how to launch them, and the number of processes to run concurrently. public let runtimeConfiguration: RuntimeConfiguration? public init(fleetId: String? = nil, runtimeConfiguration: RuntimeConfiguration? = nil) { @@ -7345,7 +8124,7 @@ extension GameLift { } public struct UpdateRuntimeConfigurationOutput: AWSDecodableShape { - /// The runtime configuration currently in use by all instances in the fleet. If the update was successful, all property changes are shown. + /// The runtime configuration currently in use by computes in the fleet. If the update is successful, all property changes are shown. public let runtimeConfiguration: RuntimeConfiguration? public init(runtimeConfiguration: RuntimeConfiguration? = nil) { @@ -7539,6 +8318,7 @@ public struct GameLiftErrorType: AWSErrorType { case invalidRequestException = "InvalidRequestException" case limitExceededException = "LimitExceededException" case notFoundException = "NotFoundException" + case notReadyException = "NotReadyException" case outOfCapacityException = "OutOfCapacityException" case taggingFailedException = "TaggingFailedException" case terminalRoutingStrategyException = "TerminalRoutingStrategyException" @@ -7584,6 +8364,8 @@ public struct GameLiftErrorType: AWSErrorType { public static var limitExceededException: Self { .init(.limitExceededException) } /// THe requested resources was not found. The resource was either not created yet or deleted. public static var notFoundException: Self { .init(.notFoundException) } + /// The operation failed because Amazon GameLift has not yet finished validating this compute. We recommend attempting 8 to 10 retries over 3 to 5 minutes with exponential backoffs and jitter. + public static var notReadyException: Self { .init(.notReadyException) } /// The specified game server group has no available game servers to fulfill a ClaimGameServer request. Clients can retry such requests immediately or after a waiting period. public static var outOfCapacityException: Self { .init(.outOfCapacityException) } /// The requested tagging operation did not succeed. This may be due to invalid tag format or the maximum tag limit may have been exceeded. Resolve the issue before retrying. diff --git a/Sources/Soto/Services/Glue/Glue_api.swift b/Sources/Soto/Services/Glue/Glue_api.swift index 450e148cb7..6e2c15729f 100644 --- a/Sources/Soto/Services/Glue/Glue_api.swift +++ b/Sources/Soto/Services/Glue/Glue_api.swift @@ -1797,7 +1797,7 @@ public struct Glue: AWSService { ) } - /// Retrieves table metadata from the Data Catalog that contains unfiltered metadata. For IAM authorization, the public IAM action associated with this API is glue:GetTable. + /// Allows a third-party analytical engine to retrieve unfiltered table metadata from the Data Catalog. For IAM authorization, the public IAM action associated with this API is glue:GetTable. @Sendable public func getUnfilteredTableMetadata(_ input: GetUnfilteredTableMetadataRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetUnfilteredTableMetadataResponse { return try await self.client.execute( diff --git a/Sources/Soto/Services/Glue/Glue_shapes.swift b/Sources/Soto/Services/Glue/Glue_shapes.swift index 5684c03982..5797c3a8be 100644 --- a/Sources/Soto/Services/Glue/Glue_shapes.swift +++ b/Sources/Soto/Services/Glue/Glue_shapes.swift @@ -11957,25 +11957,31 @@ extension Glue { public let databaseName: String /// (Required) Specifies the name of a table for which you are requesting metadata. public let name: String + /// The resource ARN of the view. + public let parentResourceArn: String? /// The Lake Formation data permissions of the caller on the table. Used to authorize the call when no view context is found. public let permissions: [Permission]? /// A structure used as a protocol between query engines and Lake Formation or Glue. Contains both a Lake Formation generated authorization identifier and information from the request's authorization context. public let querySessionContext: QuerySessionContext? /// Specified only if the base tables belong to a different Amazon Web Services Region. public let region: String? + /// The resource ARN of the root view in a chain of nested views. + public let rootResourceArn: String? /// A structure specifying the dialect and dialect version used by the query engine. public let supportedDialect: SupportedDialect? - /// (Required) A list of supported permission types. + /// Indicates the level of filtering a third-party analytical engine is capable of enforcing when calling the GetUnfilteredTableMetadata API operation. Accepted values are: COLUMN_PERMISSION - Column permissions ensure that users can access only specific columns in the table. If there are particular columns contain sensitive data, data lake administrators can define column filters that exclude access to specific columns. CELL_FILTER_PERMISSION - Cell-level filtering combines column filtering (include or exclude columns) and row filter expressions to restrict access to individual elements in the table. NESTED_PERMISSION - Nested permissions combines cell-level filtering and nested column filtering to restrict access to columns and/or nested columns in specific rows based on row filter expressions. NESTED_CELL_PERMISSION - Nested cell permissions combines nested permission with nested cell-level filtering. This allows different subsets of nested columns to be restricted based on an array of row filter expressions. Note: Each of these permission types follows a hierarchical order where each subsequent permission type includes all permission of the previous type. Important: If you provide a supported permission type that doesn't match the user's level of permissions on the table, then Lake Formation raises an exception. For example, if the third-party engine calling the GetUnfilteredTableMetadata operation can enforce only column-level filtering, and the user has nested cell filtering applied on the table, Lake Formation throws an exception, and will not return unfiltered table metadata and data access credentials. public let supportedPermissionTypes: [PermissionType] - public init(auditContext: AuditContext? = nil, catalogId: String, databaseName: String, name: String, permissions: [Permission]? = nil, querySessionContext: QuerySessionContext? = nil, region: String? = nil, supportedDialect: SupportedDialect? = nil, supportedPermissionTypes: [PermissionType]) { + public init(auditContext: AuditContext? = nil, catalogId: String, databaseName: String, name: String, parentResourceArn: String? = nil, permissions: [Permission]? = nil, querySessionContext: QuerySessionContext? = nil, region: String? = nil, rootResourceArn: String? = nil, supportedDialect: SupportedDialect? = nil, supportedPermissionTypes: [PermissionType]) { self.auditContext = auditContext self.catalogId = catalogId self.databaseName = databaseName self.name = name + self.parentResourceArn = parentResourceArn self.permissions = permissions self.querySessionContext = querySessionContext self.region = region + self.rootResourceArn = rootResourceArn self.supportedDialect = supportedDialect self.supportedPermissionTypes = supportedPermissionTypes } @@ -11991,8 +11997,12 @@ extension Glue { try self.validate(self.name, name: "name", parent: name, max: 255) try self.validate(self.name, name: "name", parent: name, min: 1) try self.validate(self.name, name: "name", parent: name, pattern: "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*$") + try self.validate(self.parentResourceArn, name: "parentResourceArn", parent: name, max: 2048) + try self.validate(self.parentResourceArn, name: "parentResourceArn", parent: name, min: 20) try self.querySessionContext?.validate(name: "\(name).querySessionContext") try self.validate(self.region, name: "region", parent: name, max: 1024) + try self.validate(self.rootResourceArn, name: "rootResourceArn", parent: name, max: 2048) + try self.validate(self.rootResourceArn, name: "rootResourceArn", parent: name, min: 20) try self.supportedDialect?.validate(name: "\(name).supportedDialect") try self.validate(self.supportedPermissionTypes, name: "supportedPermissionTypes", parent: name, max: 255) try self.validate(self.supportedPermissionTypes, name: "supportedPermissionTypes", parent: name, min: 1) @@ -12003,9 +12013,11 @@ extension Glue { case catalogId = "CatalogId" case databaseName = "DatabaseName" case name = "Name" + case parentResourceArn = "ParentResourceArn" case permissions = "Permissions" case querySessionContext = "QuerySessionContext" case region = "Region" + case rootResourceArn = "RootResourceArn" case supportedDialect = "SupportedDialect" case supportedPermissionTypes = "SupportedPermissionTypes" } @@ -12028,10 +12040,12 @@ extension Glue { public let queryAuthorizationId: String? /// The resource ARN of the parent resource extracted from the request. public let resourceArn: String? + /// The filter that applies to the table. For example when applying the filter in SQL, it would go in the WHERE clause and can be evaluated by using an AND operator with any other predicates applied by the user querying the table. + public let rowFilter: String? /// A Table object containing the table metadata. public let table: Table? - public init(authorizedColumns: [String]? = nil, cellFilters: [ColumnRowFilter]? = nil, isMultiDialectView: Bool? = nil, isProtected: Bool? = nil, isRegisteredWithLakeFormation: Bool? = nil, permissions: [Permission]? = nil, queryAuthorizationId: String? = nil, resourceArn: String? = nil, table: Table? = nil) { + public init(authorizedColumns: [String]? = nil, cellFilters: [ColumnRowFilter]? = nil, isMultiDialectView: Bool? = nil, isProtected: Bool? = nil, isRegisteredWithLakeFormation: Bool? = nil, permissions: [Permission]? = nil, queryAuthorizationId: String? = nil, resourceArn: String? = nil, rowFilter: String? = nil, table: Table? = nil) { self.authorizedColumns = authorizedColumns self.cellFilters = cellFilters self.isMultiDialectView = isMultiDialectView @@ -12040,6 +12054,7 @@ extension Glue { self.permissions = permissions self.queryAuthorizationId = queryAuthorizationId self.resourceArn = resourceArn + self.rowFilter = rowFilter self.table = table } @@ -12052,6 +12067,7 @@ extension Glue { case permissions = "Permissions" case queryAuthorizationId = "QueryAuthorizationId" case resourceArn = "ResourceArn" + case rowFilter = "RowFilter" case table = "Table" } } @@ -13601,9 +13617,9 @@ extension Glue { public let endpointUrl: String? /// The minimum time delay between two consecutive getRecords operations, specified in ms. The default value is 1000. This option is only configurable for Glue version 2.0 and above. public let idleTimeBetweenReadsInMs: Int64? - /// The maximum number of records to fetch per shard in the Kinesis data stream. The default value is 100000. + /// The maximum number of records to fetch per shard in the Kinesis data stream per microbatch. Note: The client can exceed this limit if the streaming job has already read extra records from Kinesis (in the same get-records call). If MaxFetchRecordsPerShard needs to be strict then it needs to be a multiple of MaxRecordPerRead. The default value is 100000. public let maxFetchRecordsPerShard: Int64? - /// The maximum time spent in the job executor to fetch a record from the Kinesis data stream per shard, specified in milliseconds (ms). The default value is 1000. + /// The maximum time spent for the job executor to read records for the current batch from the Kinesis data stream, specified in milliseconds (ms). Multiple GetRecords API calls may be made within this time. The default value is 1000. public let maxFetchTimeInMs: Int64? /// The maximum number of records to fetch from the Kinesis data stream in each getRecords operation. The default value is 10000. public let maxRecordPerRead: Int64? diff --git a/Sources/Soto/Services/GuardDuty/GuardDuty_shapes.swift b/Sources/Soto/Services/GuardDuty/GuardDuty_shapes.swift index 4014bd2b45..519c51d8c7 100644 --- a/Sources/Soto/Services/GuardDuty/GuardDuty_shapes.swift +++ b/Sources/Soto/Services/GuardDuty/GuardDuty_shapes.swift @@ -1337,7 +1337,7 @@ extension GuardDuty { public let description: String? /// The ID of the detector belonging to the GuardDuty account that you want to create a filter for. public let detectorId: String - /// Represents the criteria to be used in the filter for querying findings. You can only use the following attributes to query findings: accountId id region severity To filter on the basis of severity, the API and CLI use the following input list for the FindingCriteria condition: Low: ["1", "2", "3"] Medium: ["4", "5", "6"] High: ["7", "8", "9"] For more information, see Severity levels for GuardDuty findings. type updatedAt Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds. resource.accessKeyDetails.accessKeyId resource.accessKeyDetails.principalId resource.accessKeyDetails.userName resource.accessKeyDetails.userType resource.instanceDetails.iamInstanceProfile.id resource.instanceDetails.imageId resource.instanceDetails.instanceId resource.instanceDetails.tags.key resource.instanceDetails.tags.value resource.instanceDetails.networkInterfaces.ipv6Addresses resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress resource.instanceDetails.networkInterfaces.publicDnsName resource.instanceDetails.networkInterfaces.publicIp resource.instanceDetails.networkInterfaces.securityGroups.groupId resource.instanceDetails.networkInterfaces.securityGroups.groupName resource.instanceDetails.networkInterfaces.subnetId resource.instanceDetails.networkInterfaces.vpcId resource.instanceDetails.outpostArn resource.resourceType resource.s3BucketDetails.publicAccess.effectivePermissions resource.s3BucketDetails.name resource.s3BucketDetails.tags.key resource.s3BucketDetails.tags.value resource.s3BucketDetails.type service.action.actionType service.action.awsApiCallAction.api service.action.awsApiCallAction.callerType service.action.awsApiCallAction.errorCode service.action.awsApiCallAction.remoteIpDetails.city.cityName service.action.awsApiCallAction.remoteIpDetails.country.countryName service.action.awsApiCallAction.remoteIpDetails.ipAddressV4 service.action.awsApiCallAction.remoteIpDetails.organization.asn service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg service.action.awsApiCallAction.serviceName service.action.dnsRequestAction.domain service.action.dnsRequestAction.domainWithSuffix service.action.networkConnectionAction.blocked service.action.networkConnectionAction.connectionDirection service.action.networkConnectionAction.localPortDetails.port service.action.networkConnectionAction.protocol service.action.networkConnectionAction.remoteIpDetails.city.cityName service.action.networkConnectionAction.remoteIpDetails.country.countryName service.action.networkConnectionAction.remoteIpDetails.ipAddressV4 service.action.networkConnectionAction.remoteIpDetails.organization.asn service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg service.action.networkConnectionAction.remotePortDetails.port service.action.awsApiCallAction.remoteAccountDetails.affiliated service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV4 service.action.kubernetesApiCallAction.namespace service.action.kubernetesApiCallAction.remoteIpDetails.organization.asn service.action.kubernetesApiCallAction.requestUri service.action.kubernetesApiCallAction.statusCode service.action.networkConnectionAction.localIpDetails.ipAddressV4 service.action.networkConnectionAction.protocol service.action.awsApiCallAction.serviceName service.action.awsApiCallAction.remoteAccountDetails.accountId service.additionalInfo.threatListName service.resourceRole resource.eksClusterDetails.name resource.kubernetesDetails.kubernetesWorkloadDetails.name resource.kubernetesDetails.kubernetesWorkloadDetails.namespace resource.kubernetesDetails.kubernetesUserDetails.username resource.kubernetesDetails.kubernetesWorkloadDetails.containers.image resource.kubernetesDetails.kubernetesWorkloadDetails.containers.imagePrefix service.ebsVolumeScanDetails.scanId service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.name service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.severity service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.hash resource.ecsClusterDetails.name resource.ecsClusterDetails.taskDetails.containers.image resource.ecsClusterDetails.taskDetails.definitionArn resource.containerDetails.image resource.rdsDbInstanceDetails.dbInstanceIdentifier resource.rdsDbInstanceDetails.dbClusterIdentifier resource.rdsDbInstanceDetails.engine resource.rdsDbUserDetails.user resource.rdsDbInstanceDetails.tags.key resource.rdsDbInstanceDetails.tags.value service.runtimeDetails.process.executableSha256 service.runtimeDetails.process.name service.runtimeDetails.process.name resource.lambdaDetails.functionName resource.lambdaDetails.functionArn resource.lambdaDetails.tags.key resource.lambdaDetails.tags.value + /// Represents the criteria to be used in the filter for querying findings. You can only use the following attributes to query findings: accountId id region severity To filter on the basis of severity, the API and CLI use the following input list for the FindingCriteria condition: Low: ["1", "2", "3"] Medium: ["4", "5", "6"] High: ["7", "8", "9"] For more information, see Severity levels for GuardDuty findings. type updatedAt Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds. resource.accessKeyDetails.accessKeyId resource.accessKeyDetails.principalId resource.accessKeyDetails.userName resource.accessKeyDetails.userType resource.instanceDetails.iamInstanceProfile.id resource.instanceDetails.imageId resource.instanceDetails.instanceId resource.instanceDetails.tags.key resource.instanceDetails.tags.value resource.instanceDetails.networkInterfaces.ipv6Addresses resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress resource.instanceDetails.networkInterfaces.publicDnsName resource.instanceDetails.networkInterfaces.publicIp resource.instanceDetails.networkInterfaces.securityGroups.groupId resource.instanceDetails.networkInterfaces.securityGroups.groupName resource.instanceDetails.networkInterfaces.subnetId resource.instanceDetails.networkInterfaces.vpcId resource.instanceDetails.outpostArn resource.resourceType resource.s3BucketDetails.publicAccess.effectivePermissions resource.s3BucketDetails.name resource.s3BucketDetails.tags.key resource.s3BucketDetails.tags.value resource.s3BucketDetails.type service.action.actionType service.action.awsApiCallAction.api service.action.awsApiCallAction.callerType service.action.awsApiCallAction.errorCode service.action.awsApiCallAction.remoteIpDetails.city.cityName service.action.awsApiCallAction.remoteIpDetails.country.countryName service.action.awsApiCallAction.remoteIpDetails.ipAddressV4 service.action.awsApiCallAction.remoteIpDetails.ipAddressV6 service.action.awsApiCallAction.remoteIpDetails.organization.asn service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg service.action.awsApiCallAction.serviceName service.action.dnsRequestAction.domain service.action.dnsRequestAction.domainWithSuffix service.action.networkConnectionAction.blocked service.action.networkConnectionAction.connectionDirection service.action.networkConnectionAction.localPortDetails.port service.action.networkConnectionAction.protocol service.action.networkConnectionAction.remoteIpDetails.city.cityName service.action.networkConnectionAction.remoteIpDetails.country.countryName service.action.networkConnectionAction.remoteIpDetails.ipAddressV4 service.action.networkConnectionAction.remoteIpDetails.ipAddressV6 service.action.networkConnectionAction.remoteIpDetails.organization.asn service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg service.action.networkConnectionAction.remotePortDetails.port service.action.awsApiCallAction.remoteAccountDetails.affiliated service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV4 service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV6 service.action.kubernetesApiCallAction.namespace service.action.kubernetesApiCallAction.remoteIpDetails.organization.asn service.action.kubernetesApiCallAction.requestUri service.action.kubernetesApiCallAction.statusCode service.action.networkConnectionAction.localIpDetails.ipAddressV4 service.action.networkConnectionAction.localIpDetails.ipAddressV6 service.action.networkConnectionAction.protocol service.action.awsApiCallAction.serviceName service.action.awsApiCallAction.remoteAccountDetails.accountId service.additionalInfo.threatListName service.resourceRole resource.eksClusterDetails.name resource.kubernetesDetails.kubernetesWorkloadDetails.name resource.kubernetesDetails.kubernetesWorkloadDetails.namespace resource.kubernetesDetails.kubernetesUserDetails.username resource.kubernetesDetails.kubernetesWorkloadDetails.containers.image resource.kubernetesDetails.kubernetesWorkloadDetails.containers.imagePrefix service.ebsVolumeScanDetails.scanId service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.name service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.severity service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.hash resource.ecsClusterDetails.name resource.ecsClusterDetails.taskDetails.containers.image resource.ecsClusterDetails.taskDetails.definitionArn resource.containerDetails.image resource.rdsDbInstanceDetails.dbInstanceIdentifier resource.rdsDbInstanceDetails.dbClusterIdentifier resource.rdsDbInstanceDetails.engine resource.rdsDbUserDetails.user resource.rdsDbInstanceDetails.tags.key resource.rdsDbInstanceDetails.tags.value service.runtimeDetails.process.executableSha256 service.runtimeDetails.process.name service.runtimeDetails.process.name resource.lambdaDetails.functionName resource.lambdaDetails.functionArn resource.lambdaDetails.tags.key resource.lambdaDetails.tags.value public let findingCriteria: FindingCriteria? /// The name of the filter. Valid characters include period (.), underscore (_), dash (-), and alphanumeric characters. A whitespace is considered to be an invalid character. public let name: String? @@ -4906,13 +4906,17 @@ extension GuardDuty { public struct LocalIpDetails: AWSDecodableShape { /// The IPv4 local address of the connection. public let ipAddressV4: String? + /// The IPv6 local address of the connection. + public let ipAddressV6: String? - public init(ipAddressV4: String? = nil) { + public init(ipAddressV4: String? = nil, ipAddressV6: String? = nil) { self.ipAddressV4 = ipAddressV4 + self.ipAddressV6 = ipAddressV6 } private enum CodingKeys: String, CodingKey { case ipAddressV4 = "ipAddressV4" + case ipAddressV6 = "ipAddressV6" } } @@ -5945,14 +5949,17 @@ extension GuardDuty { public let geoLocation: GeoLocation? /// The IPv4 remote address of the connection. public let ipAddressV4: String? + /// The IPv6 remote address of the connection. + public let ipAddressV6: String? /// The ISP organization information of the remote IP address. public let organization: Organization? - public init(city: City? = nil, country: Country? = nil, geoLocation: GeoLocation? = nil, ipAddressV4: String? = nil, organization: Organization? = nil) { + public init(city: City? = nil, country: Country? = nil, geoLocation: GeoLocation? = nil, ipAddressV4: String? = nil, ipAddressV6: String? = nil, organization: Organization? = nil) { self.city = city self.country = country self.geoLocation = geoLocation self.ipAddressV4 = ipAddressV4 + self.ipAddressV6 = ipAddressV6 self.organization = organization } @@ -5961,6 +5968,7 @@ extension GuardDuty { case country = "country" case geoLocation = "geoLocation" case ipAddressV4 = "ipAddressV4" + case ipAddressV6 = "ipAddressV6" case organization = "organization" } } diff --git a/Sources/Soto/Services/HealthLake/HealthLake_shapes.swift b/Sources/Soto/Services/HealthLake/HealthLake_shapes.swift index 0890bd8ea5..c81f645b51 100644 --- a/Sources/Soto/Services/HealthLake/HealthLake_shapes.swift +++ b/Sources/Soto/Services/HealthLake/HealthLake_shapes.swift @@ -40,12 +40,19 @@ extension HealthLake { public enum DatastoreStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case active = "ACTIVE" + case createFailed = "CREATE_FAILED" case creating = "CREATING" case deleted = "DELETED" case deleting = "DELETING" public var description: String { return self.rawValue } } + public enum ErrorCategory: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case nonRetryableError = "NON_RETRYABLE_ERROR" + case retryableError = "RETRYABLE_ERROR" + public var description: String { return self.rawValue } + } + public enum FHIRVersion: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case r4 = "R4" public var description: String { return self.rawValue } @@ -194,6 +201,8 @@ extension HealthLake { public let datastoreStatus: DatastoreStatus /// The FHIR version. Only R4 version data is supported. public let datastoreTypeVersion: FHIRVersion + /// The error cause for the current data store operation. + public let errorCause: ErrorCause? /// The identity provider that you selected when you created the data store. public let identityProviderConfiguration: IdentityProviderConfiguration? /// The preloaded data configuration for the data store. Only data preloaded from Synthea is supported. @@ -201,7 +210,7 @@ extension HealthLake { /// The server-side encryption key configuration for a customer provided encryption key (CMK). public let sseConfiguration: SseConfiguration? - public init(createdAt: Date? = nil, datastoreArn: String, datastoreEndpoint: String, datastoreId: String, datastoreName: String? = nil, datastoreStatus: DatastoreStatus, datastoreTypeVersion: FHIRVersion, identityProviderConfiguration: IdentityProviderConfiguration? = nil, preloadDataConfig: PreloadDataConfig? = nil, sseConfiguration: SseConfiguration? = nil) { + public init(createdAt: Date? = nil, datastoreArn: String, datastoreEndpoint: String, datastoreId: String, datastoreName: String? = nil, datastoreStatus: DatastoreStatus, datastoreTypeVersion: FHIRVersion, errorCause: ErrorCause? = nil, identityProviderConfiguration: IdentityProviderConfiguration? = nil, preloadDataConfig: PreloadDataConfig? = nil, sseConfiguration: SseConfiguration? = nil) { self.createdAt = createdAt self.datastoreArn = datastoreArn self.datastoreEndpoint = datastoreEndpoint @@ -209,6 +218,7 @@ extension HealthLake { self.datastoreName = datastoreName self.datastoreStatus = datastoreStatus self.datastoreTypeVersion = datastoreTypeVersion + self.errorCause = errorCause self.identityProviderConfiguration = identityProviderConfiguration self.preloadDataConfig = preloadDataConfig self.sseConfiguration = sseConfiguration @@ -222,6 +232,7 @@ extension HealthLake { case datastoreName = "DatastoreName" case datastoreStatus = "DatastoreStatus" case datastoreTypeVersion = "DatastoreTypeVersion" + case errorCause = "ErrorCause" case identityProviderConfiguration = "IdentityProviderConfiguration" case preloadDataConfig = "PreloadDataConfig" case sseConfiguration = "SseConfiguration" @@ -382,6 +393,23 @@ extension HealthLake { } } + public struct ErrorCause: AWSDecodableShape { + /// The error category of the create/delete data store operation. Possible statuses are RETRYABLE_ERROR or NON_RETRYABLE_ERROR. + public let errorCategory: ErrorCategory? + /// The text of the error message. + public let errorMessage: String? + + public init(errorCategory: ErrorCategory? = nil, errorMessage: String? = nil) { + self.errorCategory = errorCategory + self.errorMessage = errorMessage + } + + private enum CodingKeys: String, CodingKey { + case errorCategory = "ErrorCategory" + case errorMessage = "ErrorMessage" + } + } + public struct ExportJobProperties: AWSDecodableShape { /// The Amazon Resource Name used during the initiation of the job. public let dataAccessRoleArn: String? diff --git a/Sources/Soto/Services/IAM/IAM_api.swift b/Sources/Soto/Services/IAM/IAM_api.swift index 5ec0f41f42..9a22152610 100644 --- a/Sources/Soto/Services/IAM/IAM_api.swift +++ b/Sources/Soto/Services/IAM/IAM_api.swift @@ -1627,7 +1627,7 @@ public struct IAM: AWSService { ) } - /// Removes the specified IAM role from the specified EC2 instance profile. Make sure that you do not have any Amazon EC2 instances running with the role you are about to remove from the instance profile. Removing a role from an instance profile that is associated with a running instance might break any applications running on the instance. For more information about roles, see IAM roles in the IAM User Guide. For more information about instance profiles, see Using instance profiles in the IAM User Guide. + /// Removes the specified IAM role from the specified Amazon EC2 instance profile. Make sure that you do not have any Amazon EC2 instances running with the role you are about to remove from the instance profile. Removing a role from an instance profile that is associated with a running instance might break any applications running on the instance. For more information about roles, see IAM roles in the IAM User Guide. For more information about instance profiles, see Using instance profiles in the IAM User Guide. @Sendable public func removeRoleFromInstanceProfile(_ input: RemoveRoleFromInstanceProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws { return try await self.client.execute( diff --git a/Sources/Soto/Services/IAM/IAM_shapes.swift b/Sources/Soto/Services/IAM/IAM_shapes.swift index 6293ab65c9..bf9e7d21e0 100644 --- a/Sources/Soto/Services/IAM/IAM_shapes.swift +++ b/Sources/Soto/Services/IAM/IAM_shapes.swift @@ -732,13 +732,13 @@ extension IAM { /// A list of tags that you want to attach to the new IAM OpenID Connect (OIDC) provider. Each tag consists of a key name and an associated value. For more information about tagging, see Tagging IAM resources in the IAM User Guide. If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. @OptionalCustomCoding> public var tags: [Tag]? - /// A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificates. 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, assume that the OIDC provider is server.example.com and the provider stores its keys at https://keys.server.example.com/openid-connect. In that case, 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 thumbprint, see Obtaining the thumbprint for an OpenID Connect provider in the IAM user Guide. - @CustomCoding> - public var thumbprintList: [String] + /// A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificates. 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. This parameter is optional. If it is not included, IAM will retrieve and use the top intermediate certificate authority (CA) thumbprint of the OpenID Connect identity provider server certificate. 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. For example, assume that the OIDC provider is server.example.com and the provider stores its keys at https://keys.server.example.com/openid-connect. In that case, 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 thumbprint, see Obtaining the thumbprint for an OpenID Connect provider in the IAM user Guide. + @OptionalCustomCoding> + public var thumbprintList: [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 hostname, like https://server.example.org or https://example.com. The URL should not contain a port number. You cannot register the same provider multiple times in a single Amazon Web Services account. If you try to submit a URL that has already been used for an OpenID Connect provider in the Amazon Web Services account, you will get an error. public let url: String - public init(clientIDList: [String]? = nil, tags: [Tag]? = nil, thumbprintList: [String], url: String) { + public init(clientIDList: [String]? = nil, tags: [Tag]? = nil, thumbprintList: [String]? = nil, url: String) { self.clientIDList = clientIDList self.tags = tags self.thumbprintList = thumbprintList @@ -754,7 +754,7 @@ extension IAM { try $0.validate(name: "\(name).tags[]") } try self.validate(self.tags, name: "tags", parent: name, max: 50) - try self.thumbprintList.forEach { + try self.thumbprintList?.forEach { try validate($0, name: "thumbprintList[]", parent: name, max: 40) try validate($0, name: "thumbprintList[]", parent: name, min: 40) } @@ -6253,7 +6253,7 @@ extension IAM { /// A list of ARNs of Amazon Web Services 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. You can simulate resources that don't exist in your account. 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) in the Amazon Web Services General Reference. Simulation of resource-based policies isn't supported for IAM roles. @OptionalCustomCoding> public var resourceArns: [String]? - /// Specifies the type of simulation to run. Different API operations 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 Amazon EC2 User Guide. 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 + /// Specifies the type of simulation to run. Different API operations 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 Amazon 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 Amazon 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 Amazon EC2 scenario options, see Supported platforms in the Amazon EC2 User Guide. 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? /// An ARN representing the Amazon Web Services account ID that specifies the owner of any simulated resource that does not identify its owner in the resource ARN. Examples of resource ARNs include 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. The ARN for an account uses the following syntax: arn:aws:iam::AWS-account-ID:root. For example, to represent the account with the 112233445566 ID, use the following ARN: arn:aws:iam::112233445566-ID:root. public let resourceOwner: String? @@ -6373,7 +6373,7 @@ extension IAM { /// A list of ARNs of Amazon Web Services 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. You can simulate resources that don't exist in your account. 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. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference. Simulation of resource-based policies isn't supported for IAM roles. @OptionalCustomCoding> public var resourceArns: [String]? - /// Specifies the type of simulation to run. Different API operations 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 Amazon EC2 User Guide. 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 + /// Specifies the type of simulation to run. Different API operations 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 Amazon 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 Amazon 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 Amazon EC2 scenario options, see Supported platforms in the Amazon EC2 User Guide. 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? /// An Amazon Web Services account ID that specifies the owner of any simulated resource that does not identify its owner in the resource ARN. Examples of resource ARNs include 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? @@ -7224,7 +7224,7 @@ extension IAM { public struct UpdateRoleRequest: AWSEncodableShape { /// The new description that you want to apply to the specified role. public let description: String? - /// The maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default value of one hour is applied. This setting can have a value from 1 hour to 12 hours. Anyone who assumes the role from the CLI or API can use the DurationSeconds API parameter or the duration-seconds CLI parameter to request a longer session. The MaxSessionDuration setting determines the maximum duration that can be requested using the DurationSeconds parameter. If users don't specify a value for the DurationSeconds parameter, their security credentials are valid for one hour by default. This applies when you use the AssumeRole* API operations or the assume-role* CLI operations but does not apply when you use those operations to create a console URL. For more information, see Using IAM roles in the IAM User Guide. + /// The maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default value of one hour is applied. This setting can have a value from 1 hour to 12 hours. Anyone who assumes the role from the CLI or API can use the DurationSeconds API parameter or the duration-seconds CLI parameter to request a longer session. The MaxSessionDuration setting determines the maximum duration that can be requested using the DurationSeconds parameter. If users don't specify a value for the DurationSeconds parameter, their security credentials are valid for one hour by default. This applies when you use the AssumeRole* API operations or the assume-role* CLI operations but does not apply when you use those operations to create a console URL. For more information, see Using IAM roles in the IAM User Guide. IAM role credentials provided by Amazon EC2 instances assigned to the role are not subject to the specified maximum session duration. public let maxSessionDuration: Int? /// The name of the role that you want to modify. public let roleName: String @@ -7754,6 +7754,7 @@ public struct IAMErrorType: AWSErrorType { case malformedCertificateException = "MalformedCertificate" case malformedPolicyDocumentException = "MalformedPolicyDocument" case noSuchEntityException = "NoSuchEntity" + case openIdIdpCommunicationErrorException = "OpenIdIdpCommunicationError" case passwordPolicyViolationException = "PasswordPolicyViolation" case policyEvaluationException = "PolicyEvaluation" case policyNotAttachableException = "PolicyNotAttachable" @@ -7820,6 +7821,8 @@ public struct IAMErrorType: AWSErrorType { public static var malformedPolicyDocumentException: Self { .init(.malformedPolicyDocumentException) } /// The request was rejected because it referenced a resource entity that does not exist. The error message describes the resource. public static var noSuchEntityException: Self { .init(.noSuchEntityException) } + /// The request failed because IAM cannot connect to the OpenID Connect identity provider URL. + public static var openIdIdpCommunicationErrorException: Self { .init(.openIdIdpCommunicationErrorException) } /// The request was rejected because the provided password did not meet the requirements imposed by the account password policy. public static var passwordPolicyViolationException: Self { .init(.passwordPolicyViolationException) } /// The request failed because a provided policy could not be successfully evaluated. An additional detailed message indicates the source of the failure. diff --git a/Sources/Soto/Services/IVS/IVS_shapes.swift b/Sources/Soto/Services/IVS/IVS_shapes.swift index 1c8841a2f7..69a8626b6f 100644 --- a/Sources/Soto/Services/IVS/IVS_shapes.swift +++ b/Sources/Soto/Services/IVS/IVS_shapes.swift @@ -129,7 +129,7 @@ extension IVS { } public struct BatchError: AWSDecodableShape { - /// Channel ARN. + /// ARN of an IVS resource; e.g., channel. public let arn: String? /// Error code. public let code: String? @@ -161,7 +161,7 @@ extension IVS { try self.arns.forEach { try validate($0, name: "arns[]", parent: name, max: 128) try validate($0, name: "arns[]", parent: name, min: 1) - try validate($0, name: "arns[]", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") + try validate($0, name: "arns[]", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") } try self.validate(self.arns, name: "arns", parent: name, max: 50) try self.validate(self.arns, name: "arns", parent: name, min: 1) @@ -200,7 +200,7 @@ extension IVS { try self.arns.forEach { try validate($0, name: "arns[]", parent: name, max: 128) try validate($0, name: "arns[]", parent: name, min: 1) - try validate($0, name: "arns[]", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:stream-key/[a-zA-Z0-9-]+$") + try validate($0, name: "arns[]", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:stream-key/[a-zA-Z0-9-]+$") } try self.validate(self.arns, name: "arns", parent: name, max: 50) try self.validate(self.arns, name: "arns", parent: name, min: 1) @@ -302,7 +302,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.channelArn, name: "channelArn", parent: name, max: 128) try self.validate(self.channelArn, name: "channelArn", parent: name, min: 1) - try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") + try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") try self.validate(self.viewerId, name: "viewerId", parent: name, max: 40) try self.validate(self.viewerId, name: "viewerId", parent: name, min: 1) try self.validate(self.viewerSessionVersionsLessThanOrEqualTo, name: "viewerSessionVersionsLessThanOrEqualTo", parent: name, min: 0) @@ -633,7 +633,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.channelArn, name: "channelArn", parent: name, max: 128) try self.validate(self.channelArn, name: "channelArn", parent: name, min: 1) - try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") + try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") try self.tags?.forEach { try validate($0.key, name: "tags.key", parent: name, max: 128) try validate($0.key, name: "tags.key", parent: name, min: 1) @@ -672,7 +672,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.arn, name: "arn", parent: name, max: 128) try self.validate(self.arn, name: "arn", parent: name, min: 1) - try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") + try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") } private enum CodingKeys: String, CodingKey { @@ -691,7 +691,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.arn, name: "arn", parent: name, max: 128) try self.validate(self.arn, name: "arn", parent: name, min: 1) - try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:playback-key/[a-zA-Z0-9-]+$") + try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:playback-key/[a-zA-Z0-9-]+$") } private enum CodingKeys: String, CodingKey { @@ -751,7 +751,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.arn, name: "arn", parent: name, max: 128) try self.validate(self.arn, name: "arn", parent: name, min: 1) - try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:stream-key/[a-zA-Z0-9-]+$") + try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:stream-key/[a-zA-Z0-9-]+$") } private enum CodingKeys: String, CodingKey { @@ -787,7 +787,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.arn, name: "arn", parent: name, max: 128) try self.validate(self.arn, name: "arn", parent: name, min: 1) - try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") + try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") } private enum CodingKeys: String, CodingKey { @@ -818,7 +818,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.arn, name: "arn", parent: name, max: 128) try self.validate(self.arn, name: "arn", parent: name, min: 1) - try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:playback-key/[a-zA-Z0-9-]+$") + try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:playback-key/[a-zA-Z0-9-]+$") } private enum CodingKeys: String, CodingKey { @@ -910,7 +910,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.arn, name: "arn", parent: name, max: 128) try self.validate(self.arn, name: "arn", parent: name, min: 1) - try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:stream-key/[a-zA-Z0-9-]+$") + try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:stream-key/[a-zA-Z0-9-]+$") } private enum CodingKeys: String, CodingKey { @@ -941,7 +941,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.channelArn, name: "channelArn", parent: name, max: 128) try self.validate(self.channelArn, name: "channelArn", parent: name, min: 1) - try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") + try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") } private enum CodingKeys: String, CodingKey { @@ -975,7 +975,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.channelArn, name: "channelArn", parent: name, max: 128) try self.validate(self.channelArn, name: "channelArn", parent: name, min: 1) - try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") + try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") try self.validate(self.streamId, name: "streamId", parent: name, max: 26) try self.validate(self.streamId, name: "streamId", parent: name, min: 26) try self.validate(self.streamId, name: "streamId", parent: name, pattern: "^st-[a-zA-Z0-9]+$") @@ -1260,7 +1260,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.channelArn, name: "channelArn", parent: name, max: 128) try self.validate(self.channelArn, name: "channelArn", parent: name, min: 1) - try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") + try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1024) @@ -1308,7 +1308,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.channelArn, name: "channelArn", parent: name, max: 128) try self.validate(self.channelArn, name: "channelArn", parent: name, min: 1) - try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") + try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1024) @@ -1401,7 +1401,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.resourceArn, name: "resourceArn", parent: name, max: 128) try self.validate(self.resourceArn, name: "resourceArn", parent: name, min: 1) - try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$") + try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$") } private enum CodingKeys: CodingKey {} @@ -1546,7 +1546,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.channelArn, name: "channelArn", parent: name, max: 128) try self.validate(self.channelArn, name: "channelArn", parent: name, min: 1) - try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") + try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") try self.validate(self.metadata, name: "metadata", parent: name, min: 1) } @@ -1696,7 +1696,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.channelArn, name: "channelArn", parent: name, max: 128) try self.validate(self.channelArn, name: "channelArn", parent: name, min: 1) - try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") + try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") try self.validate(self.viewerId, name: "viewerId", parent: name, max: 40) try self.validate(self.viewerId, name: "viewerId", parent: name, min: 1) try self.validate(self.viewerSessionVersionsLessThanOrEqualTo, name: "viewerSessionVersionsLessThanOrEqualTo", parent: name, min: 0) @@ -1724,7 +1724,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.channelArn, name: "channelArn", parent: name, max: 128) try self.validate(self.channelArn, name: "channelArn", parent: name, min: 1) - try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") + try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") } private enum CodingKeys: String, CodingKey { @@ -1976,7 +1976,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.resourceArn, name: "resourceArn", parent: name, max: 128) try self.validate(self.resourceArn, name: "resourceArn", parent: name, min: 1) - try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$") + try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$") try self.tags.forEach { try validate($0.key, name: "tags.key", parent: name, max: 128) try validate($0.key, name: "tags.key", parent: name, min: 1) @@ -2045,7 +2045,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.resourceArn, name: "resourceArn", parent: name, max: 128) try self.validate(self.resourceArn, name: "resourceArn", parent: name, min: 1) - try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$") + try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$") try self.tagKeys.forEach { try validate($0, name: "tagKeys[]", parent: name, max: 128) try validate($0, name: "tagKeys[]", parent: name, min: 1) @@ -2095,7 +2095,7 @@ extension IVS { public func validate(name: String) throws { try self.validate(self.arn, name: "arn", parent: name, max: 128) try self.validate(self.arn, name: "arn", parent: name, min: 1) - try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") + try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") try self.validate(self.name, name: "name", parent: name, max: 128) try self.validate(self.name, name: "name", parent: name, pattern: "^[a-zA-Z0-9-_]*$") try self.validate(self.playbackRestrictionPolicyArn, name: "playbackRestrictionPolicyArn", parent: name, max: 128) diff --git a/Sources/Soto/Services/IVSRealTime/IVSRealTime_shapes.swift b/Sources/Soto/Services/IVSRealTime/IVSRealTime_shapes.swift index bec2c9b001..236aa3c72c 100644 --- a/Sources/Soto/Services/IVSRealTime/IVSRealTime_shapes.swift +++ b/Sources/Soto/Services/IVSRealTime/IVSRealTime_shapes.swift @@ -127,7 +127,7 @@ extension IVSRealTime { public func validate(name: String) throws { try self.validate(self.channelArn, name: "channelArn", parent: name, max: 128) try self.validate(self.channelArn, name: "channelArn", parent: name, min: 1) - try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") + try self.validate(self.channelArn, name: "channelArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$") try self.validate(self.encoderConfigurationArn, name: "encoderConfigurationArn", parent: name, max: 128) try self.validate(self.encoderConfigurationArn, name: "encoderConfigurationArn", parent: name, min: 1) try self.validate(self.encoderConfigurationArn, name: "encoderConfigurationArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:encoder-configuration/[a-zA-Z0-9-]+$") @@ -1346,7 +1346,7 @@ extension IVSRealTime { public func validate(name: String) throws { try self.validate(self.resourceArn, name: "resourceArn", parent: name, max: 128) try self.validate(self.resourceArn, name: "resourceArn", parent: name, min: 1) - try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$") + try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$") } private enum CodingKeys: CodingKey {} @@ -1925,7 +1925,7 @@ extension IVSRealTime { public func validate(name: String) throws { try self.validate(self.resourceArn, name: "resourceArn", parent: name, max: 128) try self.validate(self.resourceArn, name: "resourceArn", parent: name, min: 1) - try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$") + try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$") try self.tags.forEach { try validate($0.key, name: "tags.key", parent: name, max: 128) try validate($0.key, name: "tags.key", parent: name, min: 1) @@ -1964,7 +1964,7 @@ extension IVSRealTime { public func validate(name: String) throws { try self.validate(self.resourceArn, name: "resourceArn", parent: name, max: 128) try self.validate(self.resourceArn, name: "resourceArn", parent: name, min: 1) - try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$") + try self.validate(self.resourceArn, name: "resourceArn", parent: name, pattern: "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$") try self.tagKeys.forEach { try validate($0, name: "tagKeys[]", parent: name, max: 128) try validate($0, name: "tagKeys[]", parent: name, min: 1) diff --git a/Sources/Soto/Services/Inspector2/Inspector2_shapes.swift b/Sources/Soto/Services/Inspector2/Inspector2_shapes.swift index 5209c54c20..2fc1403879 100644 --- a/Sources/Soto/Services/Inspector2/Inspector2_shapes.swift +++ b/Sources/Soto/Services/Inspector2/Inspector2_shapes.swift @@ -95,6 +95,12 @@ extension Inspector2 { public var description: String { return self.rawValue } } + public enum CisReportFormat: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case csv = "CSV" + case pdf = "PDF" + public var description: String { return self.rawValue } + } + public enum CisReportStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case failed = "FAILED" case inProgress = "IN_PROGRESS" @@ -285,6 +291,18 @@ extension Inspector2 { public var description: String { return self.rawValue } } + public enum Ec2ScanMode: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case ec2Hybrid = "EC2_HYBRID" + case ec2SsmAgentBased = "EC2_SSM_AGENT_BASED" + public var description: String { return self.rawValue } + } + + public enum Ec2ScanModeStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case pending = "PENDING" + case success = "SUCCESS" + public var description: String { return self.rawValue } + } + public enum EcrPullDateRescanDuration: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case days14 = "DAYS_14" case days180 = "DAYS_180" @@ -601,6 +619,12 @@ extension Inspector2 { public var description: String { return self.rawValue } } + public enum ScanMode: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case ec2Agentless = "EC2_AGENTLESS" + case ec2SsmAgentBased = "EC2_SSM_AGENT_BASED" + public var description: String { return self.rawValue } + } + public enum ScanStatusCode: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case active = "ACTIVE" case inactive = "INACTIVE" @@ -2555,6 +2579,8 @@ extension Inspector2 { public let resourceId: [CoverageStringFilter]? /// An array of Amazon Web Services resource types to return coverage statistics for. The values can be AWS_EC2_INSTANCE, AWS_LAMBDA_FUNCTION, AWS_ECR_CONTAINER_IMAGE, AWS_ECR_REPOSITORY or AWS_ACCOUNT. public let resourceType: [CoverageStringFilter]? + /// The filter to search for Amazon EC2 instance coverage by scan mode. Valid values are EC2_SSM_AGENT_BASED and EC2_HYBRID. + public let scanMode: [CoverageStringFilter]? /// The scan status code to filter on. Valid values are: ValidationException, InternalServerException, ResourceNotFoundException, BadRequestException, and ThrottlingException. public let scanStatusCode: [CoverageStringFilter]? /// The scan status reason to filter on. @@ -2562,7 +2588,7 @@ extension Inspector2 { /// An array of Amazon Inspector scan types to return coverage statistics for. public let scanType: [CoverageStringFilter]? - public init(accountId: [CoverageStringFilter]? = nil, ec2InstanceTags: [CoverageMapFilter]? = nil, ecrImageTags: [CoverageStringFilter]? = nil, ecrRepositoryName: [CoverageStringFilter]? = nil, imagePulledAt: [CoverageDateFilter]? = nil, lambdaFunctionName: [CoverageStringFilter]? = nil, lambdaFunctionRuntime: [CoverageStringFilter]? = nil, lambdaFunctionTags: [CoverageMapFilter]? = nil, lastScannedAt: [CoverageDateFilter]? = nil, resourceId: [CoverageStringFilter]? = nil, resourceType: [CoverageStringFilter]? = nil, scanStatusCode: [CoverageStringFilter]? = nil, scanStatusReason: [CoverageStringFilter]? = nil, scanType: [CoverageStringFilter]? = nil) { + public init(accountId: [CoverageStringFilter]? = nil, ec2InstanceTags: [CoverageMapFilter]? = nil, ecrImageTags: [CoverageStringFilter]? = nil, ecrRepositoryName: [CoverageStringFilter]? = nil, imagePulledAt: [CoverageDateFilter]? = nil, lambdaFunctionName: [CoverageStringFilter]? = nil, lambdaFunctionRuntime: [CoverageStringFilter]? = nil, lambdaFunctionTags: [CoverageMapFilter]? = nil, lastScannedAt: [CoverageDateFilter]? = nil, resourceId: [CoverageStringFilter]? = nil, resourceType: [CoverageStringFilter]? = nil, scanMode: [CoverageStringFilter]? = nil, scanStatusCode: [CoverageStringFilter]? = nil, scanStatusReason: [CoverageStringFilter]? = nil, scanType: [CoverageStringFilter]? = nil) { self.accountId = accountId self.ec2InstanceTags = ec2InstanceTags self.ecrImageTags = ecrImageTags @@ -2574,6 +2600,7 @@ extension Inspector2 { self.lastScannedAt = lastScannedAt self.resourceId = resourceId self.resourceType = resourceType + self.scanMode = scanMode self.scanStatusCode = scanStatusCode self.scanStatusReason = scanStatusReason self.scanType = scanType @@ -2629,6 +2656,11 @@ extension Inspector2 { } try self.validate(self.resourceType, name: "resourceType", parent: name, max: 10) try self.validate(self.resourceType, name: "resourceType", parent: name, min: 1) + try self.scanMode?.forEach { + try $0.validate(name: "\(name).scanMode[]") + } + try self.validate(self.scanMode, name: "scanMode", parent: name, max: 10) + try self.validate(self.scanMode, name: "scanMode", parent: name, min: 1) try self.scanStatusCode?.forEach { try $0.validate(name: "\(name).scanStatusCode[]") } @@ -2658,6 +2690,7 @@ extension Inspector2 { case lastScannedAt = "lastScannedAt" case resourceId = "resourceId" case resourceType = "resourceType" + case scanMode = "scanMode" case scanStatusCode = "scanStatusCode" case scanStatusReason = "scanStatusReason" case scanType = "scanType" @@ -2723,17 +2756,20 @@ extension Inspector2 { public let resourceMetadata: ResourceScanMetadata? /// The type of the covered resource. public let resourceType: CoverageResourceType + /// The scan method that is applied to the instance. + public let scanMode: ScanMode? /// The status of the scan covering the resource. public let scanStatus: ScanStatus? /// The Amazon Inspector scan type covering the resource. public let scanType: ScanType - public init(accountId: String, lastScannedAt: Date? = nil, resourceId: String, resourceMetadata: ResourceScanMetadata? = nil, resourceType: CoverageResourceType, scanStatus: ScanStatus? = nil, scanType: ScanType) { + public init(accountId: String, lastScannedAt: Date? = nil, resourceId: String, resourceMetadata: ResourceScanMetadata? = nil, resourceType: CoverageResourceType, scanMode: ScanMode? = nil, scanStatus: ScanStatus? = nil, scanType: ScanType) { self.accountId = accountId self.lastScannedAt = lastScannedAt self.resourceId = resourceId self.resourceMetadata = resourceMetadata self.resourceType = resourceType + self.scanMode = scanMode self.scanStatus = scanStatus self.scanType = scanType } @@ -2744,6 +2780,7 @@ extension Inspector2 { case resourceId = "resourceId" case resourceMetadata = "resourceMetadata" case resourceType = "resourceType" + case scanMode = "scanMode" case scanStatus = "scanStatus" case scanType = "scanType" } @@ -3359,6 +3396,32 @@ extension Inspector2 { } } + public struct Ec2Configuration: AWSEncodableShape { + /// The scan method that is applied to the instance. + public let scanMode: Ec2ScanMode + + public init(scanMode: Ec2ScanMode) { + self.scanMode = scanMode + } + + private enum CodingKeys: String, CodingKey { + case scanMode = "scanMode" + } + } + + public struct Ec2ConfigurationState: AWSDecodableShape { + /// An object that contains details about the state of the Amazon EC2 scan mode. + public let scanModeState: Ec2ScanModeState? + + public init(scanModeState: Ec2ScanModeState? = nil) { + self.scanModeState = scanModeState + } + + private enum CodingKeys: String, CodingKey { + case scanModeState = "scanModeState" + } + } + public struct Ec2InstanceAggregation: AWSEncodableShape { /// The AMI IDs associated with the Amazon EC2 instances to aggregate findings for. public let amis: [StringFilter]? @@ -3473,6 +3536,23 @@ extension Inspector2 { } } + public struct Ec2ScanModeState: AWSDecodableShape { + /// The scan method that is applied to the instance. + public let scanMode: Ec2ScanMode? + /// The status of the Amazon EC2 scan mode setting. + public let scanModeStatus: Ec2ScanModeStatus? + + public init(scanMode: Ec2ScanMode? = nil, scanModeStatus: Ec2ScanModeStatus? = nil) { + self.scanMode = scanMode + self.scanModeStatus = scanModeStatus + } + + private enum CodingKeys: String, CodingKey { + case scanMode = "scanMode" + case scanModeStatus = "scanModeStatus" + } + } + public struct EcrConfiguration: AWSEncodableShape { /// The rescan duration configured for image pull date. public let pullDateRescanDuration: EcrPullDateRescanDuration? @@ -4219,7 +4299,7 @@ extension Inspector2 { public let inspectorScore: Double? /// An object that contains details of the Amazon Inspector score. public let inspectorScoreDetails: InspectorScoreDetails? - /// The date and time that the finding was last observed. + /// The date and time the finding was last observed. This timestamp for this field remains unchanged until a finding is updated. public let lastObservedAt: Date /// An object that contains the details of a network reachability finding. public let networkReachabilityDetails: NetworkReachabilityDetails? @@ -4463,12 +4543,15 @@ extension Inspector2 { } public struct GetCisScanReportRequest: AWSEncodableShape { + /// The format of the report. Valid values are PDF and CSV. If no value is specified, the report format defaults to PDF. + public let reportFormat: CisReportFormat? /// The scan ARN. public let scanArn: String /// The target accounts. public let targetAccounts: [String]? - public init(scanArn: String, targetAccounts: [String]? = nil) { + public init(reportFormat: CisReportFormat? = nil, scanArn: String, targetAccounts: [String]? = nil) { + self.reportFormat = reportFormat self.scanArn = scanArn self.targetAccounts = targetAccounts } @@ -4484,6 +4567,7 @@ extension Inspector2 { } private enum CodingKeys: String, CodingKey { + case reportFormat = "reportFormat" case scanArn = "scanArn" case targetAccounts = "targetAccounts" } @@ -4492,7 +4576,7 @@ extension Inspector2 { public struct GetCisScanReportResponse: AWSDecodableShape { /// The status. public let status: CisReportStatus? - /// The URL where the CIS scan report PDF can be downloaded. + /// The URL where a PDF or CSV of the CIS scan report can be downloaded. public let url: String? public init(status: CisReportStatus? = nil, url: String? = nil) { @@ -4583,14 +4667,18 @@ extension Inspector2 { } public struct GetConfigurationResponse: AWSDecodableShape { + /// Specifies how the Amazon EC2 automated scan mode is currently configured for your environment. + public let ec2Configuration: Ec2ConfigurationState? /// Specifies how the ECR automated re-scan duration is currently configured for your environment. public let ecrConfiguration: EcrConfigurationState? - public init(ecrConfiguration: EcrConfigurationState? = nil) { + public init(ec2Configuration: Ec2ConfigurationState? = nil, ecrConfiguration: EcrConfigurationState? = nil) { + self.ec2Configuration = ec2Configuration self.ecrConfiguration = ecrConfiguration } private enum CodingKeys: String, CodingKey { + case ec2Configuration = "ec2Configuration" case ecrConfiguration = "ecrConfiguration" } } @@ -7380,14 +7468,18 @@ extension Inspector2 { } public struct UpdateConfigurationRequest: AWSEncodableShape { + /// Specifies how the Amazon EC2 automated scan will be updated for your environment. + public let ec2Configuration: Ec2Configuration? /// Specifies how the ECR automated re-scan will be updated for your environment. - public let ecrConfiguration: EcrConfiguration + public let ecrConfiguration: EcrConfiguration? - public init(ecrConfiguration: EcrConfiguration) { + public init(ec2Configuration: Ec2Configuration? = nil, ecrConfiguration: EcrConfiguration? = nil) { + self.ec2Configuration = ec2Configuration self.ecrConfiguration = ecrConfiguration } private enum CodingKeys: String, CodingKey { + case ec2Configuration = "ec2Configuration" case ecrConfiguration = "ecrConfiguration" } } diff --git a/Sources/Soto/Services/InternetMonitor/InternetMonitor_api.swift b/Sources/Soto/Services/InternetMonitor/InternetMonitor_api.swift index 75d28beebd..7b3a0899cf 100644 --- a/Sources/Soto/Services/InternetMonitor/InternetMonitor_api.swift +++ b/Sources/Soto/Services/InternetMonitor/InternetMonitor_api.swift @@ -194,7 +194,7 @@ public struct InternetMonitor: AWSService { ) } - /// Gets information the Amazon CloudWatch Internet Monitor has created and stored about a health event for a specified monitor. This information includes the impacted locations, + /// Gets information that Amazon CloudWatch Internet Monitor has created and stored about a health event for a specified monitor. This information includes the impacted locations, /// and all the information related to the event, by location. The information returned includes the impact on performance, availability, and round-trip time, information about the network providers (ASNs), /// the event type, and so on. Information rolled up at the global traffic level is also returned, including the impact type and total traffic impact. @Sendable @@ -209,6 +209,23 @@ public struct InternetMonitor: AWSService { ) } + /// Gets information that Amazon CloudWatch Internet Monitor has generated about an internet event. Internet Monitor displays information about + /// recent global health events, called internet events, on a global outages map that is available to all Amazon Web Services + /// customers. The information returned here includes the impacted location, + /// when the event started and (if the event is over) ended, the type of event (PERFORMANCE or AVAILABILITY), + /// and the status (ACTIVE or RESOLVED). + @Sendable + public func getInternetEvent(_ input: GetInternetEventInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetInternetEventOutput { + return try await self.client.execute( + operation: "GetInternetEvent", + path: "/v20210603/InternetEvents/{EventId}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Gets information about a monitor in Amazon CloudWatch Internet Monitor based on a monitor name. The information returned includes the Amazon Resource Name (ARN), create time, /// modified time, resources included in the monitor, and status information. @Sendable @@ -253,7 +270,7 @@ public struct InternetMonitor: AWSService { ) } - /// Lists all health events for a monitor in Amazon CloudWatch Internet Monitor. Returns information for health events including the event start and end time and + /// Lists all health events for a monitor in Amazon CloudWatch Internet Monitor. Returns information for health events including the event start and end times, and /// the status. Health events that have start times during the time frame that is requested are not included in the list of health events. @Sendable public func listHealthEvents(_ input: ListHealthEventsInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ListHealthEventsOutput { @@ -267,6 +284,24 @@ public struct InternetMonitor: AWSService { ) } + /// Lists internet events that cause performance or availability issues for client locations. Amazon CloudWatch Internet Monitor displays information about + /// recent global health events, called internet events, on a global outages map that is available to all Amazon Web Services + /// customers. You can constrain the list of internet events returned by providing a start time and end time to define a total + /// time frame for events you want to list. Both start time and end time specify the time when an event started. End time + /// is optional. If you don't include it, the default end time is the current time. You can also limit the events returned to a specific status + /// (ACTIVE or RESOLVED) or type (PERFORMANCE or AVAILABILITY). + @Sendable + public func listInternetEvents(_ input: ListInternetEventsInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ListInternetEventsOutput { + return try await self.client.execute( + operation: "ListInternetEvents", + path: "/v20210603/InternetEvents", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Lists all of your monitors for Amazon CloudWatch Internet Monitor and their statuses, along with the Amazon Resource Name (ARN) and name of each monitor. @Sendable public func listMonitors(_ input: ListMonitorsInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ListMonitorsOutput { @@ -400,7 +435,7 @@ extension InternetMonitor { ) } - /// Lists all health events for a monitor in Amazon CloudWatch Internet Monitor. Returns information for health events including the event start and end time and + /// Lists all health events for a monitor in Amazon CloudWatch Internet Monitor. Returns information for health events including the event start and end times, and /// the status. Health events that have start times during the time frame that is requested are not included in the list of health events. /// Return PaginatorSequence for operation. /// @@ -420,6 +455,30 @@ extension InternetMonitor { ) } + /// Lists internet events that cause performance or availability issues for client locations. Amazon CloudWatch Internet Monitor displays information about + /// recent global health events, called internet events, on a global outages map that is available to all Amazon Web Services + /// customers. You can constrain the list of internet events returned by providing a start time and end time to define a total + /// time frame for events you want to list. Both start time and end time specify the time when an event started. End time + /// is optional. If you don't include it, the default end time is the current time. You can also limit the events returned to a specific status + /// (ACTIVE or RESOLVED) or type (PERFORMANCE or AVAILABILITY). + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listInternetEventsPaginator( + _ input: ListInternetEventsInput, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listInternetEvents, + inputKey: \ListInternetEventsInput.nextToken, + outputKey: \ListInternetEventsOutput.nextToken, + logger: logger + ) + } + /// Lists all of your monitors for Amazon CloudWatch Internet Monitor and their statuses, along with the Amazon Resource Name (ARN) and name of each monitor. /// Return PaginatorSequence for operation. /// @@ -465,6 +524,19 @@ extension InternetMonitor.ListHealthEventsInput: AWSPaginateToken { } } +extension InternetMonitor.ListInternetEventsInput: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> InternetMonitor.ListInternetEventsInput { + return .init( + endTime: self.endTime, + eventStatus: self.eventStatus, + eventType: self.eventType, + maxResults: self.maxResults, + nextToken: token, + startTime: self.startTime + ) + } +} + extension InternetMonitor.ListMonitorsInput: AWSPaginateToken { public func usingPaginationToken(_ token: String) -> InternetMonitor.ListMonitorsInput { return .init( diff --git a/Sources/Soto/Services/InternetMonitor/InternetMonitor_shapes.swift b/Sources/Soto/Services/InternetMonitor/InternetMonitor_shapes.swift index a9816a3ea8..0483e720c2 100644 --- a/Sources/Soto/Services/InternetMonitor/InternetMonitor_shapes.swift +++ b/Sources/Soto/Services/InternetMonitor/InternetMonitor_shapes.swift @@ -40,6 +40,18 @@ extension InternetMonitor { public var description: String { return self.rawValue } } + public enum InternetEventStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case active = "ACTIVE" + case resolved = "RESOLVED" + public var description: String { return self.rawValue } + } + + public enum InternetEventType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case availability = "AVAILABILITY" + case performance = "PERFORMANCE" + public var description: String { return self.rawValue } + } + public enum LocalHealthEventsConfigStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case disabled = "DISABLED" case enabled = "ENABLED" @@ -129,6 +141,50 @@ extension InternetMonitor { } } + public struct ClientLocation: AWSDecodableShape { + /// The name of the internet service provider (ISP) or network (ASN). + public let asName: String + /// The Autonomous System Number (ASN) of the network at an impacted location. + public let asNumber: Int64 + /// The name of the city where the internet event is located. + public let city: String + /// The name of the country where the internet event is located. + public let country: String + /// The latitude where the internet event is located. + public let latitude: Double + /// The longitude where the internet event is located. + public let longitude: Double + /// The metro area where the health event is located. Metro indicates a metropolitan region in the United States, such as the region around New York City. In non-US countries, + /// this is a second-level subdivision. For example, in the United Kingdom, it could be a county, a London borough, a unitary + /// authority, council area, and so on. + public let metro: String? + /// The subdivision location where the health event is located. The subdivision usually maps to states in most countries + /// (including the United States). For United Kingdom, it maps to a country (England, Scotland, Wales) or province (Northern Ireland). + public let subdivision: String? + + public init(asName: String, asNumber: Int64, city: String, country: String, latitude: Double, longitude: Double, metro: String? = nil, subdivision: String? = nil) { + self.asName = asName + self.asNumber = asNumber + self.city = city + self.country = country + self.latitude = latitude + self.longitude = longitude + self.metro = metro + self.subdivision = subdivision + } + + private enum CodingKeys: String, CodingKey { + case asName = "ASName" + case asNumber = "ASNumber" + case city = "City" + case country = "Country" + case latitude = "Latitude" + case longitude = "Longitude" + case metro = "Metro" + case subdivision = "Subdivision" + } + } + public struct CreateMonitorInput: AWSEncodableShape { /// A unique, case-sensitive string of up to 64 ASCII characters that you specify to make an idempotent API request. Don't reuse the same client token for /// other API requests. @@ -277,7 +333,10 @@ extension InternetMonitor { /// The internally-generated identifier of a health event. Because EventID contains the forward slash (“/”) character, you must /// URL-encode the EventID field in the request URL. public let eventId: String - /// TBD + /// The account ID for an account that you've set up cross-account sharing for in Amazon CloudWatch Internet Monitor. You configure cross-account + /// sharing by using Amazon CloudWatch Observability Access Manager. For more information, see + /// Internet Monitor cross-account + /// observability in the Amazon CloudWatch Internet Monitor User Guide. public let linkedAccountId: String? /// The name of the monitor. public let monitorName: String @@ -366,8 +425,71 @@ extension InternetMonitor { } } + public struct GetInternetEventInput: AWSEncodableShape { + /// The EventId of the internet event to return information for. + public let eventId: String + + public init(eventId: String) { + self.eventId = eventId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.eventId, key: "EventId") + } + + public func validate(name: String) throws { + try self.validate(self.eventId, name: "eventId", parent: name, max: 255) + try self.validate(self.eventId, name: "eventId", parent: name, min: 1) + try self.validate(self.eventId, name: "eventId", parent: name, pattern: "^[a-zA-Z0-9-]+$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct GetInternetEventOutput: AWSDecodableShape { + /// The impacted location, such as a city, where clients access Amazon Web Services application resources. + public let clientLocation: ClientLocation + /// The time when the internet event ended. If the event hasn't ended yet, this value is empty. + public let endedAt: Date? + /// The Amazon Resource Name (ARN) of the internet event. + public let eventArn: String + /// The internally-generated identifier of an internet event. + public let eventId: String + /// The status of the internet event. + public let eventStatus: InternetEventStatus + /// The type of network impairment. + public let eventType: InternetEventType + /// The time when the internet event started. + public let startedAt: Date + + public init(clientLocation: ClientLocation, endedAt: Date? = nil, eventArn: String, eventId: String, eventStatus: InternetEventStatus, eventType: InternetEventType, startedAt: Date) { + self.clientLocation = clientLocation + self.endedAt = endedAt + self.eventArn = eventArn + self.eventId = eventId + self.eventStatus = eventStatus + self.eventType = eventType + self.startedAt = startedAt + } + + private enum CodingKeys: String, CodingKey { + case clientLocation = "ClientLocation" + case endedAt = "EndedAt" + case eventArn = "EventArn" + case eventId = "EventId" + case eventStatus = "EventStatus" + case eventType = "EventType" + case startedAt = "StartedAt" + } + } + public struct GetMonitorInput: AWSEncodableShape { - /// TBD + /// The account ID for an account that you've set up cross-account sharing for in Amazon CloudWatch Internet Monitor. You configure cross-account + /// sharing by using Amazon CloudWatch Observability Access Manager. For more information, see + /// Internet Monitor cross-account + /// observability in the Amazon CloudWatch Internet Monitor User Guide. public let linkedAccountId: String? /// The name of the monitor. public let monitorName: String @@ -589,7 +711,7 @@ extension InternetMonitor { public let percentOfTotalTrafficImpacted: Double? /// When a health event started. public let startedAt: Date - /// Health event list member. + /// The status of a health event. public let status: HealthEventStatus public init(createdAt: Date? = nil, endedAt: Date? = nil, eventArn: String, eventId: String, healthScoreThreshold: Double? = nil, impactedLocations: [ImpactedLocation], impactType: HealthEventImpactType, lastUpdatedAt: Date, percentOfTotalTrafficImpacted: Double? = nil, startedAt: Date, status: HealthEventStatus) { @@ -656,7 +778,7 @@ extension InternetMonitor { } public struct ImpactedLocation: AWSDecodableShape { - /// The name of the network at an impacted location. + /// The name of the internet service provider (ISP) or network (ASN). public let asName: String /// The Autonomous System Number (ASN) of the network at an impacted location. public let asNumber: Int64 @@ -727,6 +849,44 @@ extension InternetMonitor { } } + public struct InternetEventSummary: AWSDecodableShape { + /// The impacted location, such as a city, that Amazon Web Services clients access application resources from. + public let clientLocation: ClientLocation + /// The time when an internet event ended. If the event hasn't ended yet, this value + /// is empty. + public let endedAt: Date? + /// The Amazon Resource Name (ARN) of the internet event. + public let eventArn: String + /// The internally-generated identifier of an internet event. + public let eventId: String + /// The status of an internet event. + public let eventStatus: InternetEventStatus + /// The type of network impairment. + public let eventType: InternetEventType + /// The time when an internet event started. + public let startedAt: Date + + public init(clientLocation: ClientLocation, endedAt: Date? = nil, eventArn: String, eventId: String, eventStatus: InternetEventStatus, eventType: InternetEventType, startedAt: Date) { + self.clientLocation = clientLocation + self.endedAt = endedAt + self.eventArn = eventArn + self.eventId = eventId + self.eventStatus = eventStatus + self.eventType = eventType + self.startedAt = startedAt + } + + private enum CodingKeys: String, CodingKey { + case clientLocation = "ClientLocation" + case endedAt = "EndedAt" + case eventArn = "EventArn" + case eventId = "EventId" + case eventStatus = "EventStatus" + case eventType = "EventType" + case startedAt = "StartedAt" + } + } + public struct InternetHealth: AWSDecodableShape { /// Availability in Internet Monitor represents the estimated percentage of traffic that is not seeing an availability drop. For example, an availability score of 99% /// for an end user and service location pair is equivalent to 1% of the traffic experiencing an availability drop for that pair. For more information, see How Internet Monitor calculates performance and availability @@ -768,7 +928,10 @@ extension InternetMonitor { public let endTime: Date? /// The status of a health event. public let eventStatus: HealthEventStatus? - /// TBD + /// The account ID for an account that you've set up cross-account sharing for in Amazon CloudWatch Internet Monitor. You configure cross-account + /// sharing by using Amazon CloudWatch Observability Access Manager. For more information, see + /// Internet Monitor cross-account + /// observability in the Amazon CloudWatch Internet Monitor User Guide. public let linkedAccountId: String? /// The number of health event objects that you want to return with this call. public let maxResults: Int? @@ -831,8 +994,71 @@ extension InternetMonitor { } } + public struct ListInternetEventsInput: AWSEncodableShape { + /// The end time of the time window that you want to get a list of internet events for. + public let endTime: Date? + /// The status of an internet event. + public let eventStatus: String? + /// The type of network impairment. + public let eventType: String? + /// The number of query results that you want to return with this call. + public let maxResults: Int? + /// The token for the next set of results. You receive this token from a previous call. + public let nextToken: String? + /// The start time of the time window that you want to get a list of internet events for. + public let startTime: Date? + + public init(endTime: Date? = nil, eventStatus: String? = nil, eventType: String? = nil, maxResults: Int? = nil, nextToken: String? = nil, startTime: Date? = nil) { + self.endTime = endTime + self.eventStatus = eventStatus + self.eventType = eventType + self.maxResults = maxResults + self.nextToken = nextToken + self.startTime = startTime + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.endTime, key: "EndTime") + request.encodeQuery(self.eventStatus, key: "EventStatus") + request.encodeQuery(self.eventType, key: "EventType") + request.encodeQuery(self.maxResults, key: "InternetEventMaxResults") + request.encodeQuery(self.nextToken, key: "NextToken") + request.encodeQuery(self.startTime, key: "StartTime") + } + + public func validate(name: String) throws { + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListInternetEventsOutput: AWSDecodableShape { + /// A set of internet events returned for the list operation. + public let internetEvents: [InternetEventSummary] + /// The token for the next set of results. You receive this token from a previous call. + public let nextToken: String? + + public init(internetEvents: [InternetEventSummary], nextToken: String? = nil) { + self.internetEvents = internetEvents + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case internetEvents = "InternetEvents" + case nextToken = "NextToken" + } + } + public struct ListMonitorsInput: AWSEncodableShape { - /// TBD + /// A boolean option that you can set to TRUE to include monitors for linked accounts in a list of + /// monitors, when you've set up cross-account sharing in Amazon CloudWatch Internet Monitor. You configure cross-account + /// sharing by using Amazon CloudWatch Observability Access Manager. For more information, see + /// Internet Monitor cross-account + /// observability in the Amazon CloudWatch Internet Monitor User Guide. public let includeLinkedAccounts: Bool? /// The number of monitor objects that you want to return with this call. public let maxResults: Int? @@ -975,7 +1201,7 @@ extension InternetMonitor { } public struct Network: AWSDecodableShape { - /// The internet provider name or network name. + /// The name of the internet service provider (ISP) or network (ASN). public let asName: String /// The Autonomous System Number (ASN) of the internet provider or network. public let asNumber: Int64 @@ -994,7 +1220,7 @@ extension InternetMonitor { public struct NetworkImpairment: AWSDecodableShape { /// The combination of the Autonomous System Number (ASN) of the network and the name of the network. public let asPath: [Network] - /// Type of network impairment. + /// The type of network impairment. public let networkEventType: TriangulationEventType /// The networks that could be impacted by a network impairment event. public let networks: [Network] @@ -1116,7 +1342,10 @@ extension InternetMonitor { /// Using the Amazon CloudWatch Internet Monitor query interface /// in the Amazon CloudWatch Internet Monitor User Guide. public let filterParameters: [FilterParameter]? - /// TBD + /// The account ID for an account that you've set up cross-account sharing for in Amazon CloudWatch Internet Monitor. You configure cross-account + /// sharing by using Amazon CloudWatch Observability Access Manager. For more information, see + /// Internet Monitor cross-account + /// observability in the Amazon CloudWatch Internet Monitor User Guide. public let linkedAccountId: String? /// The name of the monitor to query. public let monitorName: String diff --git a/Sources/Soto/Services/IoTEventsData/IoTEventsData_shapes.swift b/Sources/Soto/Services/IoTEventsData/IoTEventsData_shapes.swift index 5455657348..07cdef9d7f 100644 --- a/Sources/Soto/Services/IoTEventsData/IoTEventsData_shapes.swift +++ b/Sources/Soto/Services/IoTEventsData/IoTEventsData_shapes.swift @@ -1352,7 +1352,7 @@ extension IoTEventsData { } public func validate(name: String) throws { - try self.validate(self.timeInMillis, name: "timeInMillis", parent: name, max: -9223372036854775808) + try self.validate(self.timeInMillis, name: "timeInMillis", parent: name, max: 9223372036854775807) try self.validate(self.timeInMillis, name: "timeInMillis", parent: name, min: 1) } diff --git a/Sources/Soto/Services/IoTFleetHub/IoTFleetHub_api.swift b/Sources/Soto/Services/IoTFleetHub/IoTFleetHub_api.swift index 5cc157ccab..017afaddba 100644 --- a/Sources/Soto/Services/IoTFleetHub/IoTFleetHub_api.swift +++ b/Sources/Soto/Services/IoTFleetHub/IoTFleetHub_api.swift @@ -19,7 +19,7 @@ /// Service object for interacting with AWS IoTFleetHub service. /// -/// With Fleet Hub for AWS IoT Device Management you can build stand-alone web applications for monitoring the health of your device fleets. Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. +/// With Fleet Hub for IoT Device Management you can build stand-alone web applications for monitoring the health of your device fleets. public struct IoTFleetHub: AWSService { // MARK: Member variables @@ -84,7 +84,7 @@ public struct IoTFleetHub: AWSService { // MARK: API Calls - /// Creates a Fleet Hub for AWS IoT Device Management web application. Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. + /// Creates a Fleet Hub for IoT Device Management web application. When creating a Fleet Hub application, you must create an organization instance of IAM Identity Center if you don't already have one. The Fleet Hub application you create must also be in the same Amazon Web Services Region of the organization instance of IAM Identity Center. For more information see Enabling IAM Identity Center and Organization instances of IAM Identity Center. @Sendable public func createApplication(_ input: CreateApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateApplicationResponse { return try await self.client.execute( @@ -97,7 +97,7 @@ public struct IoTFleetHub: AWSService { ) } - /// Deletes a Fleet Hub for AWS IoT Device Management web application. Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. + /// Deletes a Fleet Hub for IoT Device Management web application. @Sendable public func deleteApplication(_ input: DeleteApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteApplicationResponse { return try await self.client.execute( @@ -110,7 +110,7 @@ public struct IoTFleetHub: AWSService { ) } - /// Gets information about a Fleet Hub for AWS IoT Device Management web application. Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. + /// Gets information about a Fleet Hub for IoT Device Management web application. @Sendable public func describeApplication(_ input: DescribeApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeApplicationResponse { return try await self.client.execute( @@ -123,7 +123,7 @@ public struct IoTFleetHub: AWSService { ) } - /// Gets a list of Fleet Hub for AWS IoT Device Management web applications for the current account. Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. + /// Gets a list of Fleet Hub for IoT Device Management web applications for the current account. @Sendable public func listApplications(_ input: ListApplicationsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListApplicationsResponse { return try await self.client.execute( @@ -136,7 +136,7 @@ public struct IoTFleetHub: AWSService { ) } - /// Lists the tags for the specified resource. Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. + /// Lists the tags for the specified resource. @Sendable public func listTagsForResource(_ input: ListTagsForResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListTagsForResourceResponse { return try await self.client.execute( @@ -149,7 +149,7 @@ public struct IoTFleetHub: AWSService { ) } - /// Adds to or modifies the tags of the specified resource. Tags are metadata which can be used to manage a resource. Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. + /// Adds to or modifies the tags of the specified resource. Tags are metadata which can be used to manage a resource. @Sendable public func tagResource(_ input: TagResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> TagResourceResponse { return try await self.client.execute( @@ -162,7 +162,7 @@ public struct IoTFleetHub: AWSService { ) } - /// Removes the specified tags (metadata) from the resource. Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. + /// Removes the specified tags (metadata) from the resource. @Sendable public func untagResource(_ input: UntagResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UntagResourceResponse { return try await self.client.execute( @@ -175,7 +175,7 @@ public struct IoTFleetHub: AWSService { ) } - /// Updates information about a Fleet Hub for a AWS IoT Device Management web application. Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. + /// Updates information about a Fleet Hub for IoT Device Management web application. @Sendable public func updateApplication(_ input: UpdateApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateApplicationResponse { return try await self.client.execute( @@ -202,7 +202,7 @@ extension IoTFleetHub { @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) extension IoTFleetHub { - /// Gets a list of Fleet Hub for AWS IoT Device Management web applications for the current account. Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. + /// Gets a list of Fleet Hub for IoT Device Management web applications for the current account. /// Return PaginatorSequence for operation. /// /// - Parameters: diff --git a/Sources/Soto/Services/IoTFleetHub/IoTFleetHub_shapes.swift b/Sources/Soto/Services/IoTFleetHub/IoTFleetHub_shapes.swift index b56b94ea9c..ad37ad5bf4 100644 --- a/Sources/Soto/Services/IoTFleetHub/IoTFleetHub_shapes.swift +++ b/Sources/Soto/Services/IoTFleetHub/IoTFleetHub_shapes.swift @@ -81,7 +81,7 @@ extension IoTFleetHub { public let applicationName: String /// A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required. public let clientToken: String? - /// The ARN of the role that the web application assumes when it interacts with AWS IoT Core. The name of the role must be in the form AWSIotFleetHub_random_string . + /// The ARN of the role that the web application assumes when it interacts with Amazon Web Services IoT Core. The name of the role must be in the form AWSIotFleetHub_random_string . public let roleArn: String /// A set of key/value pairs that you can use to manage the web application resource. public let tags: [String: String]? @@ -218,9 +218,9 @@ extension IoTFleetHub { public let applicationState: ApplicationState /// The URL of the web application. public let applicationUrl: String - /// A message indicating why the DescribeApplication API failed. + /// A message that explains any failures included in the applicationState response field. This message explains failures in the CreateApplication and DeleteApplication actions. public let errorMessage: String? - /// The ARN of the role that the web application assumes when it interacts with AWS IoT Core. + /// The ARN of the role that the web application assumes when it interacts with Amazon Web Services IoT Core. public let roleArn: String /// The Id of the single sign-on client that you use to authenticate and authorize users on the web application. public let ssoClientId: String? diff --git a/Sources/Soto/Services/IoTWireless/IoTWireless_api.swift b/Sources/Soto/Services/IoTWireless/IoTWireless_api.swift index 9695788b9a..ad8f64cc60 100644 --- a/Sources/Soto/Services/IoTWireless/IoTWireless_api.swift +++ b/Sources/Soto/Services/IoTWireless/IoTWireless_api.swift @@ -280,7 +280,7 @@ public struct IoTWireless: AWSService { ) } - /// Provisions a wireless gateway. + /// Provisions a wireless gateway. When provisioning a wireless gateway, you might run into duplication errors for the following reasons. If you specify a GatewayEui value that already exists. If you used a ClientRequestToken with the same parameters within the last 10 minutes. To avoid this error, make sure that you use unique identifiers and parameters for each request within the specified time period. @Sendable public func createWirelessGateway(_ input: CreateWirelessGatewayRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateWirelessGatewayResponse { return try await self.client.execute( @@ -436,7 +436,7 @@ public struct IoTWireless: AWSService { ) } - /// Deletes a wireless gateway. + /// Deletes a wireless gateway. When deleting a wireless gateway, you might run into duplication errors for the following reasons. If you specify a GatewayEui value that already exists. If you used a ClientRequestToken with the same parameters within the last 10 minutes. To avoid this error, make sure that you use unique identifiers and parameters for each request within the specified time period. @Sendable public func deleteWirelessGateway(_ input: DeleteWirelessGatewayRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteWirelessGatewayResponse { return try await self.client.execute( @@ -644,7 +644,7 @@ public struct IoTWireless: AWSService { ) } - /// Get the metric configuration status for this account. + /// Get the metric configuration status for this AWS account. @Sendable public func getMetricConfiguration(_ input: GetMetricConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetMetricConfigurationResponse { return try await self.client.execute( @@ -657,7 +657,7 @@ public struct IoTWireless: AWSService { ) } - /// Get metrics. + /// Get the summary metrics for this AWS account. @Sendable public func getMetrics(_ input: GetMetricsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetMetricsResponse { return try await self.client.execute( @@ -1415,7 +1415,7 @@ public struct IoTWireless: AWSService { ) } - /// Update the metric configuration. + /// Update the summary metric configuration. @Sendable public func updateMetricConfiguration(_ input: UpdateMetricConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateMetricConfigurationResponse { return try await self.client.execute( diff --git a/Sources/Soto/Services/IoTWireless/IoTWireless_shapes.swift b/Sources/Soto/Services/IoTWireless/IoTWireless_shapes.swift index 35a80452a7..626e25ea96 100644 --- a/Sources/Soto/Services/IoTWireless/IoTWireless_shapes.swift +++ b/Sources/Soto/Services/IoTWireless/IoTWireless_shapes.swift @@ -476,7 +476,7 @@ extension IoTWireless { } public struct AssociateAwsAccountWithPartnerAccountRequest: AWSEncodableShape { - /// Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. + /// Each resource must have a unique client request token. The client token is used to implement idempotency. It ensures that the request completes no more than one time. If you retry a request with the same token and the same parameters, the request will complete successfully. However, if you try to create a new resource using the same token but different parameters, an HTTP 409 conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests. public let clientRequestToken: String? /// The Sidewalk account credentials. public let sidewalk: SidewalkAccountInfo @@ -1002,7 +1002,7 @@ extension IoTWireless { } public struct CreateDestinationRequest: AWSEncodableShape { - /// Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. + /// Each resource must have a unique client request token. The client token is used to implement idempotency. It ensures that the request completes no more than one time. If you retry a request with the same token and the same parameters, the request will complete successfully. However, if you try to create a new resource using the same token but different parameters, an HTTP 409 conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests. public let clientRequestToken: String? /// The description of the new resource. public let description: String? @@ -1072,7 +1072,7 @@ extension IoTWireless { } public struct CreateDeviceProfileRequest: AWSEncodableShape { - /// Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. + /// Each resource must have a unique client request token. The client token is used to implement idempotency. It ensures that the request completes no more than one time. If you retry a request with the same token and the same parameters, the request will complete successfully. However, if you try to create a new resource using the same token but different parameters, an HTTP 409 conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests. public let clientRequestToken: String? /// The device profile information to use to create the device profile. public let loRaWAN: LoRaWANDeviceProfile? @@ -1204,7 +1204,7 @@ extension IoTWireless { } public struct CreateMulticastGroupRequest: AWSEncodableShape { - /// Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. + /// Each resource must have a unique client request token. The client token is used to implement idempotency. It ensures that the request completes no more than one time. If you retry a request with the same token and the same parameters, the request will complete successfully. However, if you try to create a new resource using the same token but different parameters, an HTTP 409 conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests. public let clientRequestToken: String? /// The description of the multicast group. public let description: String? @@ -1334,7 +1334,7 @@ extension IoTWireless { } public struct CreateServiceProfileRequest: AWSEncodableShape { - /// Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. + /// Each resource must have a unique client request token. The client token is used to implement idempotency. It ensures that the request completes no more than one time. If you retry a request with the same token and the same parameters, the request will complete successfully. However, if you try to create a new resource using the same token but different parameters, an HTTP 409 conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests. public let clientRequestToken: String? /// The service profile information to use to create the service profile. public let loRaWAN: LoRaWANServiceProfile? @@ -1388,7 +1388,7 @@ extension IoTWireless { } public struct CreateWirelessDeviceRequest: AWSEncodableShape { - /// Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. + /// Each resource must have a unique client request token. The client token is used to implement idempotency. It ensures that the request completes no more than one time. If you retry a request with the same token and the same parameters, the request will complete successfully. However, if you try to create a new resource using the same token but different parameters, an HTTP 409 conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests. public let clientRequestToken: String? /// The description of the new resource. public let description: String? @@ -1466,7 +1466,7 @@ extension IoTWireless { } public struct CreateWirelessGatewayRequest: AWSEncodableShape { - /// Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. + /// Each resource must have a unique client request token. The client token is used to implement idempotency. It ensures that the request completes no more than one time. If you retry a request with the same token and the same parameters, the request will complete successfully. However, if you try to create a new resource using the same token but different parameters, an HTTP 409 conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests. public let clientRequestToken: String? /// The description of the new resource. public let description: String? @@ -1527,7 +1527,7 @@ extension IoTWireless { public struct CreateWirelessGatewayTaskDefinitionRequest: AWSEncodableShape { /// Whether to automatically create tasks using this task definition for all gateways with the specified current version. If false, the task must me created by calling CreateWirelessGatewayTask. public let autoCreateTasks: Bool - /// Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. + /// Each resource must have a unique client request token. The client token is used to implement idempotency. It ensures that the request completes no more than one time. If you retry a request with the same token and the same parameters, the request will complete successfully. However, if you try to create a new resource using the same token but different parameters, an HTTP 409 conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests. public let clientRequestToken: String? /// The name of the new resource. public let name: String? @@ -2676,7 +2676,7 @@ extension IoTWireless { } public struct GetMetricConfigurationResponse: AWSDecodableShape { - /// The account's configuration status for summary metric aggregation. + /// The configuration status of the AWS account for summary metric aggregation. public let summaryMetric: SummaryMetricConfiguration? public init(summaryMetric: SummaryMetricConfiguration? = nil) { @@ -2689,7 +2689,7 @@ extension IoTWireless { } public struct GetMetricsRequest: AWSEncodableShape { - /// The list of queries to retrieve summary metrics. + /// The list of queries to retrieve the summary metrics. public let summaryMetricQueries: [SummaryMetricQuery]? public init(summaryMetricQueries: [SummaryMetricQuery]? = nil) { @@ -2708,7 +2708,7 @@ extension IoTWireless { } public struct GetMetricsResponse: AWSDecodableShape { - /// The list of retrieved metrics. + /// The list of summary metrics that were retrieved. public let summaryMetricQueryResults: [SummaryMetricQueryResult]? public init(summaryMetricQueryResults: [SummaryMetricQueryResult]? = nil) { @@ -4898,15 +4898,18 @@ extension IoTWireless { public let frequency: Int? /// Information about the gateways accessed by the device. public let gateways: [LoRaWANGatewayMetadata]? + /// Information about the LoRaWAN public network accessed by the device. + public let publicGateways: [LoRaWANPublicGatewayMetadata]? /// The date and time of the metadata. public let timestamp: String? - public init(dataRate: Int? = nil, devEui: String? = nil, fPort: Int? = nil, frequency: Int? = nil, gateways: [LoRaWANGatewayMetadata]? = nil, timestamp: String? = nil) { + public init(dataRate: Int? = nil, devEui: String? = nil, fPort: Int? = nil, frequency: Int? = nil, gateways: [LoRaWANGatewayMetadata]? = nil, publicGateways: [LoRaWANPublicGatewayMetadata]? = nil, timestamp: String? = nil) { self.dataRate = dataRate self.devEui = devEui self.fPort = fPort self.frequency = frequency self.gateways = gateways + self.publicGateways = publicGateways self.timestamp = timestamp } @@ -4916,6 +4919,7 @@ extension IoTWireless { case fPort = "FPort" case frequency = "Frequency" case gateways = "Gateways" + case publicGateways = "PublicGateways" case timestamp = "Timestamp" } } @@ -5400,6 +5404,38 @@ extension IoTWireless { } } + public struct LoRaWANPublicGatewayMetadata: AWSDecodableShape { + /// Boolean that indicates whether downlink is allowed using the network. + public let dlAllowed: Bool? + /// The ID of the gateways that are operated by the network provider. + public let id: String? + /// The ID of the LoRaWAN public network provider. + public let providerNetId: String? + public let rfRegion: String? + /// The RSSI (received signal strength indicator) value. + public let rssi: Double? + /// The SNR (signal to noise ratio) value. + public let snr: Double? + + public init(dlAllowed: Bool? = nil, id: String? = nil, providerNetId: String? = nil, rfRegion: String? = nil, rssi: Double? = nil, snr: Double? = nil) { + self.dlAllowed = dlAllowed + self.id = id + self.providerNetId = providerNetId + self.rfRegion = rfRegion + self.rssi = rssi + self.snr = snr + } + + private enum CodingKeys: String, CodingKey { + case dlAllowed = "DlAllowed" + case id = "Id" + case providerNetId = "ProviderNetId" + case rfRegion = "RfRegion" + case rssi = "Rssi" + case snr = "Snr" + } + } + public struct LoRaWANSendDataToDevice: AWSEncodableShape & AWSDecodableShape { public let fPort: Int? /// Choose the gateways that you want to use for the downlink data traffic when the wireless device is running in class B or class C mode. @@ -5726,17 +5762,17 @@ extension IoTWireless { } public struct MetricQueryValue: AWSDecodableShape { - /// The average of the values of the all data points collected during the period. + /// The average of the values of all data points collected during the aggregation period. public let avg: Double? - /// The maximum of the values of the all data points collected during the period. + /// The maximum of the values of all the data points collected during the aggregation period. public let max: Double? - /// The minimum of the values of the all data points collected during the period. + /// The minimum of the values of all data points collected during the aggregation period. public let min: Double? - /// The 90th percentile of the values of the all data points collected during the period. + /// The 90th percentile of the values of all data points collected during the aggregation period. public let p90: Double? - /// The standard deviation of the values of the all data points collected during the period. + /// The standard deviation of the values of all data points collected during the aggregation period. public let std: Double? - /// The sum of the values of the all data points collected during the period. + /// The sum of the values of all data points collected during the aggregation period. public let sum: Double? public init(avg: Double? = nil, max: Double? = nil, min: Double? = nil, p90: Double? = nil, std: Double? = nil, sum: Double? = nil) { @@ -5827,7 +5863,7 @@ extension IoTWireless { public let appKey: String? /// The GenAppKey value. public let genAppKey: String? - /// The JoinEUI value. You specify this value instead of the AppEUI when using LoRaWAN version v1.0.4. + /// The JoinEUI value. You specify this value instead of the AppEUI when using LoRaWAN version v1.0.4. public let joinEui: String? public init(appEui: String? = nil, appKey: String? = nil, genAppKey: String? = nil, joinEui: String? = nil) { @@ -6918,7 +6954,7 @@ extension IoTWireless { } public struct SummaryMetricConfiguration: AWSEncodableShape & AWSDecodableShape { - /// The configuration of summary metric. + /// The status of the configuration of summary metrics. public let status: SummaryMetricConfigurationStatus? public init(status: SummaryMetricConfigurationStatus? = nil) { @@ -6931,17 +6967,17 @@ extension IoTWireless { } public struct SummaryMetricQuery: AWSEncodableShape { - /// The aggregation period of the metric. + /// The aggregation period of the summary metric. public let aggregationPeriod: AggregationPeriod? - /// The dimensions of the metric. + /// The dimensions of the summary metric. public let dimensions: [Dimension]? - /// The end timestamp for summary metric query. + /// The end timestamp for the summary metric query. public let endTimestamp: Date? /// The name of the metric. public let metricName: MetricName? - /// The id of the query. + /// The id of the summary metric query. public let queryId: String? - /// The start timestamp for summary metric query. + /// The start timestamp for the summary metric query. public let startTimestamp: Date? public init(aggregationPeriod: AggregationPeriod? = nil, dimensions: [Dimension]? = nil, endTimestamp: Date? = nil, metricName: MetricName? = nil, queryId: String? = nil, startTimestamp: Date? = nil) { @@ -6975,23 +7011,23 @@ extension IoTWireless { public let aggregationPeriod: AggregationPeriod? /// The dimensions of the metric. public let dimensions: [Dimension]? - /// The end timestamp for summary metric query. + /// The end timestamp for the summary metric query. public let endTimestamp: Date? - /// The error message for the summary metric query. + /// The error message for the summary metric query result. public let error: String? - /// The name of the metric. + /// The name of the summary metric query result. public let metricName: MetricName? - /// The id of the query. + /// The ID of the summary metric results query operation. public let queryId: String? - /// The status of the metric query. + /// The status of the summary metric query result. public let queryStatus: MetricQueryStatus? - /// The start timestamp for summary metric query. + /// The start timestamp for the summary metric query. public let startTimestamp: Date? /// The timestamp of each aggregation result. public let timestamps: [Date]? /// The units of measurement to be used for interpreting the aggregation result. public let unit: String? - /// The list of aggregated metrics. + /// The list of aggregated summary metric query results. public let values: [MetricQueryValue]? public init(aggregationPeriod: AggregationPeriod? = nil, dimensions: [Dimension]? = nil, endTimestamp: Date? = nil, error: String? = nil, metricName: MetricName? = nil, queryId: String? = nil, queryStatus: MetricQueryStatus? = nil, startTimestamp: Date? = nil, timestamps: [Date]? = nil, unit: String? = nil, values: [MetricQueryValue]? = nil) { diff --git a/Sources/Soto/Services/KMS/KMS_api.swift b/Sources/Soto/Services/KMS/KMS_api.swift index bc50daf8a1..ac8fc3e8ed 100644 --- a/Sources/Soto/Services/KMS/KMS_api.swift +++ b/Sources/Soto/Services/KMS/KMS_api.swift @@ -300,7 +300,7 @@ public struct KMS: AWSService { } /// Disables automatic rotation of the key material of the specified symmetric encryption KMS key. Automatic key rotation is supported only on symmetric encryption KMS keys. You cannot enable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key. You can enable (EnableKeyRotation) and disable automatic rotation of the key material in customer managed KMS keys. Key material rotation of Amazon Web Services managed KMS keys is not configurable. KMS always rotates the key material for every year. Rotation of Amazon Web Services owned KMS keys varies. In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three years to every year. For details, see EnableKeyRotation. The KMS key that you use for this operation must be in a compatible key state. For - /// details, see Key states of KMS keys in the Key Management Service Developer Guide. Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account. Required permissions: kms:DisableKeyRotation (key policy) Related operations: EnableKeyRotation GetKeyRotationStatus Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency. + /// details, see Key states of KMS keys in the Key Management Service Developer Guide. Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account. Required permissions: kms:DisableKeyRotation (key policy) Related operations: EnableKeyRotation GetKeyRotationStatus ListKeyRotations RotateKeyOnDemand Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency. @Sendable public func disableKeyRotation(_ input: DisableKeyRotationRequest, logger: Logger = AWSClient.loggingDisabled) async throws { return try await self.client.execute( @@ -343,8 +343,8 @@ public struct KMS: AWSService { ) } - /// Enables automatic rotation of the key material of the specified symmetric encryption KMS key. When you enable automatic rotation of a customer managed KMS key, KMS rotates the key material of the KMS key one year (approximately 365 days) from the enable date and every year thereafter. You can monitor rotation of the key material for your KMS keys in CloudTrail and Amazon CloudWatch. To disable rotation of the key material in a customer managed KMS key, use the DisableKeyRotation operation. Automatic key rotation is supported only on symmetric encryption KMS keys. You cannot enable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key. You cannot enable or disable automatic rotation Amazon Web Services managed KMS keys. KMS always rotates the key material of Amazon Web Services managed keys every year. Rotation of Amazon Web Services owned KMS keys varies. In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three years (approximately 1,095 days) to every year (approximately 365 days). New Amazon Web Services managed keys are automatically rotated one year after they are created, and approximately every year thereafter. Existing Amazon Web Services managed keys are automatically rotated one year after their most recent rotation, and every year thereafter. The KMS key that you use for this operation must be in a compatible key state. For - /// details, see Key states of KMS keys in the Key Management Service Developer Guide. Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account. Required permissions: kms:EnableKeyRotation (key policy) Related operations: DisableKeyRotation GetKeyRotationStatus Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency. + /// Enables automatic rotation of the key material of the specified symmetric encryption KMS key. By default, when you enable automatic rotation of a customer managed KMS key, KMS rotates the key material of the KMS key one year (approximately 365 days) from the enable date and every year thereafter. You can use the optional RotationPeriodInDays parameter to specify a custom rotation period when you enable key rotation, or you can use RotationPeriodInDays to modify the rotation period of a key that you previously enabled automatic key rotation on. You can monitor rotation of the key material for your KMS keys in CloudTrail and Amazon CloudWatch. To disable rotation of the key material in a customer managed KMS key, use the DisableKeyRotation operation. You can use the GetKeyRotationStatus operation to identify any in progress rotations. You can use the ListKeyRotations operation to view the details of completed rotations. Automatic key rotation is supported only on symmetric encryption KMS keys. You cannot enable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key. You cannot enable or disable automatic rotation of Amazon Web Services managed KMS keys. KMS always rotates the key material of Amazon Web Services managed keys every year. Rotation of Amazon Web Services owned KMS keys is managed by the Amazon Web Services service that owns the key. In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three years (approximately 1,095 days) to every year (approximately 365 days). New Amazon Web Services managed keys are automatically rotated one year after they are created, and approximately every year thereafter. Existing Amazon Web Services managed keys are automatically rotated one year after their most recent rotation, and every year thereafter. The KMS key that you use for this operation must be in a compatible key state. For + /// details, see Key states of KMS keys in the Key Management Service Developer Guide. Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account. Required permissions: kms:EnableKeyRotation (key policy) Related operations: DisableKeyRotation GetKeyRotationStatus ListKeyRotations RotateKeyOnDemand You can perform on-demand (RotateKeyOnDemand) rotation of the key material in customer managed KMS keys, regardless of whether or not automatic key rotation is enabled. Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency. @Sendable public func enableKeyRotation(_ input: EnableKeyRotationRequest, logger: Logger = AWSClient.loggingDisabled) async throws { return try await self.client.execute( @@ -467,8 +467,8 @@ public struct KMS: AWSService { ) } - /// Gets a Boolean value that indicates whether automatic rotation of the key material is enabled for the specified KMS key. When you enable automatic rotation for customer managed KMS keys, KMS rotates the key material of the KMS key one year (approximately 365 days) from the enable date and every year thereafter. You can monitor rotation of the key material for your KMS keys in CloudTrail and Amazon CloudWatch. Automatic key rotation is supported only on symmetric encryption KMS keys. You cannot enable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.. You can enable (EnableKeyRotation) and disable automatic rotation (DisableKeyRotation) of the key material in customer managed KMS keys. Key material rotation of Amazon Web Services managed KMS keys is not configurable. KMS always rotates the key material in Amazon Web Services managed KMS keys every year. The key rotation status for Amazon Web Services managed KMS keys is always true. In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three years to every year. For details, see EnableKeyRotation. The KMS key that you use for this operation must be in a compatible key state. For - /// details, see Key states of KMS keys in the Key Management Service Developer Guide. Disabled: The key rotation status does not change when you disable a KMS key. However, while the KMS key is disabled, KMS does not rotate the key material. When you re-enable the KMS key, rotation resumes. If the key material in the re-enabled KMS key hasn't been rotated in one year, KMS rotates it immediately, and every year thereafter. If it's been less than a year since the key material in the re-enabled KMS key was rotated, the KMS key resumes its prior rotation schedule. Pending deletion: While a KMS key is pending deletion, its key rotation status is false and KMS does not rotate the key material. If you cancel the deletion, the original key rotation status returns to true. Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key ARN in the value of the KeyId parameter. Required permissions: kms:GetKeyRotationStatus (key policy) Related operations: DisableKeyRotation EnableKeyRotation Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency. + /// Provides detailed information about the rotation status for a KMS key, including whether automatic rotation of the key material is enabled for the specified KMS key, the rotation period, and the next scheduled rotation date. Automatic key rotation is supported only on symmetric encryption KMS keys. You cannot enable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.. You can enable (EnableKeyRotation) and disable automatic rotation (DisableKeyRotation) of the key material in customer managed KMS keys. Key material rotation of Amazon Web Services managed KMS keys is not configurable. KMS always rotates the key material in Amazon Web Services managed KMS keys every year. The key rotation status for Amazon Web Services managed KMS keys is always true. You can perform on-demand (RotateKeyOnDemand) rotation of the key material in customer managed KMS keys, regardless of whether or not automatic key rotation is enabled. You can use GetKeyRotationStatus to identify the date and time that an in progress on-demand rotation was initiated. You can use ListKeyRotations to view the details of completed rotations. In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three years to every year. For details, see EnableKeyRotation. The KMS key that you use for this operation must be in a compatible key state. For + /// details, see Key states of KMS keys in the Key Management Service Developer Guide. Disabled: The key rotation status does not change when you disable a KMS key. However, while the KMS key is disabled, KMS does not rotate the key material. When you re-enable the KMS key, rotation resumes. If the key material in the re-enabled KMS key hasn't been rotated in one year, KMS rotates it immediately, and every year thereafter. If it's been less than a year since the key material in the re-enabled KMS key was rotated, the KMS key resumes its prior rotation schedule. Pending deletion: While a KMS key is pending deletion, its key rotation status is false and KMS does not rotate the key material. If you cancel the deletion, the original key rotation status returns to true. Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key ARN in the value of the KeyId parameter. Required permissions: kms:GetKeyRotationStatus (key policy) Related operations: DisableKeyRotation EnableKeyRotation ListKeyRotations RotateKeyOnDemand Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency. @Sendable public func getKeyRotationStatus(_ input: GetKeyRotationStatusRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetKeyRotationStatusResponse { return try await self.client.execute( @@ -562,6 +562,19 @@ public struct KMS: AWSService { ) } + /// Returns information about all completed key material rotations for the specified KMS key. You must specify the KMS key in all requests. You can refine the key rotations list by limiting the number of rotations returned. For detailed information about automatic and on-demand key rotations, see Rotating KMS keys in the Key Management Service Developer Guide. Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account. Required permissions: kms:ListKeyRotations (key policy) Related operations: EnableKeyRotation DisableKeyRotation GetKeyRotationStatus RotateKeyOnDemand Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency. + @Sendable + public func listKeyRotations(_ input: ListKeyRotationsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListKeyRotationsResponse { + return try await self.client.execute( + operation: "ListKeyRotations", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Gets a list of all KMS keys in the caller's Amazon Web Services account and Region. Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account. Required permissions: kms:ListKeys (IAM policy) Related operations: CreateKey DescribeKey ListAliases ListResourceTags Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency. @Sendable public func listKeys(_ input: ListKeysRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListKeysResponse { @@ -667,6 +680,20 @@ public struct KMS: AWSService { ) } + /// Immediately initiates rotation of the key material of the specified symmetric encryption KMS key. You can perform on-demand rotation of the key material in customer managed KMS keys, regardless of whether or not automatic key rotation is enabled. On-demand rotations do not change existing automatic rotation schedules. For example, consider a KMS key that has automatic key rotation enabled with a rotation period of 730 days. If the key is scheduled to automatically rotate on April 14, 2024, and you perform an on-demand rotation on April 10, 2024, the key will automatically rotate, as scheduled, on April 14, 2024 and every 730 days thereafter. You can perform on-demand key rotation a maximum of 10 times per KMS key. You can use the KMS console to view the number of remaining on-demand rotations available for a KMS key. You can use GetKeyRotationStatus to identify any in progress on-demand rotations. You can use ListKeyRotations to identify the date that completed on-demand rotations were performed. You can monitor rotation of the key material for your KMS keys in CloudTrail and Amazon CloudWatch. On-demand key rotation is supported only on symmetric encryption KMS keys. You cannot perform on-demand rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To perform on-demand rotation of a set of related multi-Region keys, invoke the on-demand rotation on the primary key. You cannot initiate on-demand rotation of Amazon Web Services managed KMS keys. KMS always rotates the key material of Amazon Web Services managed keys every year. Rotation of Amazon Web Services owned KMS keys is managed by the Amazon Web Services service that owns the key. The KMS key that you use for this operation must be in a compatible key state. For + /// details, see Key states of KMS keys in the Key Management Service Developer Guide. Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account. Required permissions: kms:RotateKeyOnDemand (key policy) Related operations: EnableKeyRotation DisableKeyRotation GetKeyRotationStatus ListKeyRotations Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency. + @Sendable + public func rotateKeyOnDemand(_ input: RotateKeyOnDemandRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> RotateKeyOnDemandResponse { + return try await self.client.execute( + operation: "RotateKeyOnDemand", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Schedules the deletion of a KMS key. By default, KMS applies a waiting period of 30 days, but you can specify a waiting period of 7-30 days. When this operation is successful, the key state of the KMS key changes to PendingDeletion and the key can't be used in any cryptographic operations. It remains in this state for the duration of the waiting period. Before the waiting period ends, you can use CancelKeyDeletion to cancel the deletion of the KMS key. After the waiting period ends, KMS deletes the KMS key, its key material, and all KMS data associated with it, including all aliases that refer to it. Deleting a KMS key is a destructive and potentially dangerous operation. When a KMS key is deleted, all data that was encrypted under the KMS key is unrecoverable. (The only exception is a multi-Region replica key, or an asymmetric or HMAC KMS key with imported key material.) To prevent the use of a KMS key without deleting it, use DisableKey. You can schedule the deletion of a multi-Region primary key and its replica keys at any time. However, KMS will not delete a multi-Region primary key with existing replica keys. If you schedule the deletion of a primary key with replicas, its key state changes to PendingReplicaDeletion and it cannot be replicated or used in cryptographic operations. This status can continue indefinitely. When the last of its replicas keys is deleted (not just scheduled), the key state of the primary key changes to PendingDeletion and its waiting period (PendingWindowInDays) begins. For details, see Deleting multi-Region keys in the Key Management Service Developer Guide. When KMS deletes a KMS key from an CloudHSM key store, it makes a best effort to delete the associated key material from the associated CloudHSM cluster. However, you might need to manually delete the orphaned key material from the cluster and its backups. Deleting a KMS key from an external key store has no effect on the associated external key. However, for both types of custom key stores, deleting a KMS key is destructive and irreversible. You cannot decrypt ciphertext encrypted under the KMS key by using only its associated external key or CloudHSM key. Also, you cannot recreate a KMS key in an external key store by creating a new KMS key with the same key material. For more information about scheduling a KMS key for deletion, see Deleting KMS keys in the Key Management Service Developer Guide. The KMS key that you use for this operation must be in a compatible key state. For /// details, see Key states of KMS keys in the Key Management Service Developer Guide. Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account. Required permissions: kms:ScheduleKeyDeletion (key policy) Related operations CancelKeyDeletion DisableKey Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency. @Sendable @@ -900,6 +927,25 @@ extension KMS { ) } + /// Returns information about all completed key material rotations for the specified KMS key. You must specify the KMS key in all requests. You can refine the key rotations list by limiting the number of rotations returned. For detailed information about automatic and on-demand key rotations, see Rotating KMS keys in the Key Management Service Developer Guide. Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account. Required permissions: kms:ListKeyRotations (key policy) Related operations: EnableKeyRotation DisableKeyRotation GetKeyRotationStatus RotateKeyOnDemand Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listKeyRotationsPaginator( + _ input: ListKeyRotationsRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listKeyRotations, + inputKey: \ListKeyRotationsRequest.marker, + outputKey: \ListKeyRotationsResponse.nextMarker, + logger: logger + ) + } + /// Gets a list of all KMS keys in the caller's Amazon Web Services account and Region. Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account. Required permissions: kms:ListKeys (IAM policy) Related operations: CreateKey DescribeKey ListAliases ListResourceTags Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency. /// Return PaginatorSequence for operation. /// @@ -1001,6 +1047,16 @@ extension KMS.ListKeyPoliciesRequest: AWSPaginateToken { } } +extension KMS.ListKeyRotationsRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> KMS.ListKeyRotationsRequest { + return .init( + keyId: self.keyId, + limit: self.limit, + marker: token + ) + } +} + extension KMS.ListKeysRequest: AWSPaginateToken { public func usingPaginationToken(_ token: String) -> KMS.ListKeysRequest { return .init( diff --git a/Sources/Soto/Services/KMS/KMS_shapes.swift b/Sources/Soto/Services/KMS/KMS_shapes.swift index 4dc4ff87c6..b5530f076b 100644 --- a/Sources/Soto/Services/KMS/KMS_shapes.swift +++ b/Sources/Soto/Services/KMS/KMS_shapes.swift @@ -216,6 +216,12 @@ extension KMS { public var description: String { return self.rawValue } } + public enum RotationType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case automatic = "AUTOMATIC" + case onDemand = "ON_DEMAND" + public var description: String { return self.rawValue } + } + public enum SigningAlgorithmSpec: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case ecdsaSha256 = "ECDSA_SHA_256" case ecdsaSha384 = "ECDSA_SHA_384" @@ -838,7 +844,7 @@ extension KMS { public let customKeyStores: [CustomKeyStoresListEntry]? /// 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? - /// 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 thisresponse 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? public init(customKeyStores: [CustomKeyStoresListEntry]? = nil, nextMarker: String? = nil, truncated: Bool? = nil) { @@ -973,18 +979,24 @@ extension KMS { public struct EnableKeyRotationRequest: AWSEncodableShape { /// Identifies a symmetric encryption KMS key. You cannot enable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key. Specify the key ID or key ARN of the KMS key. 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 KMS key, use ListKeys or DescribeKey. public let keyId: String + /// Use this parameter to specify a custom period of time between each rotation date. If no value is specified, the default value is 365 days. The rotation period defines the number of days after you enable automatic key rotation that KMS will rotate your key material, and the number of days between each automatic rotation thereafter. You can use the kms:RotationPeriodInDays condition key to further constrain the values that principals can specify in the RotationPeriodInDays parameter. + public let rotationPeriodInDays: Int? - public init(keyId: String) { + public init(keyId: String, rotationPeriodInDays: Int? = nil) { self.keyId = keyId + self.rotationPeriodInDays = rotationPeriodInDays } public func validate(name: String) throws { try self.validate(self.keyId, name: "keyId", parent: name, max: 2048) try self.validate(self.keyId, name: "keyId", parent: name, min: 1) + try self.validate(self.rotationPeriodInDays, name: "rotationPeriodInDays", parent: name, max: 2560) + try self.validate(self.rotationPeriodInDays, name: "rotationPeriodInDays", parent: name, min: 90) } private enum CodingKeys: String, CodingKey { case keyId = "KeyId" + case rotationPeriodInDays = "RotationPeriodInDays" } } @@ -1517,15 +1529,31 @@ extension KMS { } public struct GetKeyRotationStatusResponse: AWSDecodableShape { + /// Identifies the specified symmetric encryption KMS key. + public let keyId: String? /// A Boolean value that specifies whether key rotation is enabled. public let keyRotationEnabled: Bool? - - public init(keyRotationEnabled: Bool? = nil) { + /// The next date that KMS will automatically rotate the key material. + public let nextRotationDate: Date? + /// Identifies the date and time that an in progress on-demand rotation was initiated. The KMS API follows an eventual consistency model due to the distributed nature of the system. As a result, there might be a slight delay between initiating on-demand key rotation and the rotation's completion. Once the on-demand rotation is complete, use ListKeyRotations to view the details of the on-demand rotation. + public let onDemandRotationStartDate: Date? + /// The number of days between each automatic rotation. The default value is 365 days. + public let rotationPeriodInDays: Int? + + public init(keyId: String? = nil, keyRotationEnabled: Bool? = nil, nextRotationDate: Date? = nil, onDemandRotationStartDate: Date? = nil, rotationPeriodInDays: Int? = nil) { + self.keyId = keyId self.keyRotationEnabled = keyRotationEnabled + self.nextRotationDate = nextRotationDate + self.onDemandRotationStartDate = onDemandRotationStartDate + self.rotationPeriodInDays = rotationPeriodInDays } private enum CodingKeys: String, CodingKey { + case keyId = "KeyId" case keyRotationEnabled = "KeyRotationEnabled" + case nextRotationDate = "NextRotationDate" + case onDemandRotationStartDate = "OnDemandRotationStartDate" + case rotationPeriodInDays = "RotationPeriodInDays" } } @@ -1945,7 +1973,7 @@ extension KMS { public let aliases: [AliasListEntry]? /// 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? - /// 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 thisresponse 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? public init(aliases: [AliasListEntry]? = nil, nextMarker: String? = nil, truncated: Bool? = nil) { @@ -2011,7 +2039,7 @@ extension KMS { public let grants: [GrantListEntry]? /// 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? - /// 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 thisresponse 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? public init(grants: [GrantListEntry]? = nil, nextMarker: String? = nil, truncated: Bool? = nil) { @@ -2063,7 +2091,7 @@ extension KMS { public let nextMarker: String? /// A list of key policy names. The only valid value is default. public let policyNames: [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 get more items, pass the value of the NextMarker element in thisresponse 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? public init(nextMarker: String? = nil, policyNames: [String]? = nil, truncated: Bool? = nil) { @@ -2079,6 +2107,58 @@ extension KMS { } } + public struct ListKeyRotationsRequest: AWSEncodableShape { + /// Gets the key rotations for the specified KMS key. Specify the key ID or key ARN of the KMS key. 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 KMS key, 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, 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. + public let limit: Int? + /// 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? + + public init(keyId: String, limit: Int? = nil, marker: String? = nil) { + self.keyId = keyId + self.limit = limit + self.marker = marker + } + + public func validate(name: String) throws { + try self.validate(self.keyId, name: "keyId", parent: name, max: 2048) + try self.validate(self.keyId, name: "keyId", parent: name, min: 1) + try self.validate(self.limit, name: "limit", parent: name, max: 1000) + try self.validate(self.limit, name: "limit", parent: name, min: 1) + try self.validate(self.marker, name: "marker", parent: name, max: 1024) + try self.validate(self.marker, name: "marker", parent: name, min: 1) + try self.validate(self.marker, name: "marker", parent: name, pattern: "^[\\u0020-\\u00FF]*$") + } + + private enum CodingKeys: String, CodingKey { + case keyId = "KeyId" + case limit = "Limit" + case marker = "Marker" + } + } + + public struct ListKeyRotationsResponse: AWSDecodableShape { + /// 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? + /// A list of completed key material rotations. + public let rotations: [RotationsListEntry]? + /// 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? + + public init(nextMarker: String? = nil, rotations: [RotationsListEntry]? = nil, truncated: Bool? = nil) { + self.nextMarker = nextMarker + self.rotations = rotations + self.truncated = truncated + } + + private enum CodingKeys: String, CodingKey { + case nextMarker = "NextMarker" + case rotations = "Rotations" + case truncated = "Truncated" + } + } + public struct ListKeysRequest: AWSEncodableShape { /// Use this parameter to specify the maximum number of items to return. When this value is present, 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. public let limit: Int? @@ -2109,7 +2189,7 @@ extension KMS { 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? - /// 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 thisresponse 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? public init(keys: [KeyListEntry]? = nil, nextMarker: String? = nil, truncated: Bool? = nil) { @@ -2161,7 +2241,7 @@ extension KMS { public let nextMarker: String? /// A list of tags. Each tag consists of a tag key and a tag value. Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide. public let tags: [Tag]? - /// 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 thisresponse 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? public init(nextMarker: String? = nil, tags: [Tag]? = nil, truncated: Bool? = nil) { @@ -2531,6 +2611,58 @@ extension KMS { } } + public struct RotateKeyOnDemandRequest: AWSEncodableShape { + /// Identifies a symmetric encryption KMS key. You cannot perform on-demand rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To perform on-demand rotation of a set of related multi-Region keys, invoke the on-demand rotation on the primary key. Specify the key ID or key ARN of the KMS key. 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 KMS key, use ListKeys or DescribeKey. + public let keyId: String + + public init(keyId: String) { + self.keyId = keyId + } + + public func validate(name: String) throws { + try self.validate(self.keyId, name: "keyId", parent: name, max: 2048) + try self.validate(self.keyId, name: "keyId", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case keyId = "KeyId" + } + } + + public struct RotateKeyOnDemandResponse: AWSDecodableShape { + /// Identifies the symmetric encryption KMS key that you initiated on-demand rotation on. + public let keyId: String? + + public init(keyId: String? = nil) { + self.keyId = keyId + } + + private enum CodingKeys: String, CodingKey { + case keyId = "KeyId" + } + } + + public struct RotationsListEntry: AWSDecodableShape { + /// Unique identifier of the key. + public let keyId: String? + /// Date and time that the key material rotation completed. Formatted as Unix time. + public let rotationDate: Date? + /// Identifies whether the key material rotation was a scheduled automatic rotation or an on-demand rotation. + public let rotationType: RotationType? + + public init(keyId: String? = nil, rotationDate: Date? = nil, rotationType: RotationType? = nil) { + self.keyId = keyId + self.rotationDate = rotationDate + self.rotationType = rotationType + } + + private enum CodingKeys: String, CodingKey { + case keyId = "KeyId" + case rotationDate = "RotationDate" + case rotationType = "RotationType" + } + } + public struct ScheduleKeyDeletionRequest: AWSEncodableShape { /// The unique identifier of the KMS key to delete. Specify the key ID or key ARN of the KMS key. 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 KMS key, use ListKeys or DescribeKey. public let keyId: String @@ -3084,6 +3216,7 @@ public struct KMSErrorType: AWSErrorType { case cloudHsmClusterNotActiveException = "CloudHsmClusterNotActiveException" case cloudHsmClusterNotFoundException = "CloudHsmClusterNotFoundException" case cloudHsmClusterNotRelatedException = "CloudHsmClusterNotRelatedException" + case conflictException = "ConflictException" case customKeyStoreHasCMKsException = "CustomKeyStoreHasCMKsException" case customKeyStoreInvalidStateException = "CustomKeyStoreInvalidStateException" case customKeyStoreNameInUseException = "CustomKeyStoreNameInUseException" @@ -3157,6 +3290,8 @@ public struct KMSErrorType: AWSErrorType { public static var cloudHsmClusterNotFoundException: Self { .init(.cloudHsmClusterNotFoundException) } /// The request was rejected because the specified CloudHSM cluster has a different cluster certificate than the original cluster. You cannot use the operation to specify an unrelated cluster for an CloudHSM key store. Specify an CloudHSM cluster that shares a backup history with the original cluster. This includes clusters that were created from a backup of the current cluster, and clusters that were created from the same backup that produced the current cluster. CloudHSM clusters that share a backup history have the same cluster certificate. To view the cluster certificate of an CloudHSM cluster, use the DescribeClusters operation. public static var cloudHsmClusterNotRelatedException: Self { .init(.cloudHsmClusterNotRelatedException) } + /// The request was rejected because an automatic rotation of this key is currently in progress or scheduled to begin within the next 20 minutes. + public static var conflictException: Self { .init(.conflictException) } /// The request was rejected because the custom key store contains KMS keys. After verifying that you do not need to use the KMS keys, use the ScheduleKeyDeletion operation to delete the KMS keys. After they are deleted, you can delete the custom key store. public static var customKeyStoreHasCMKsException: Self { .init(.customKeyStoreHasCMKsException) } /// The request was rejected because of the ConnectionState of the custom key store. To get the ConnectionState of a custom key store, use the DescribeCustomKeyStores operation. This exception is thrown under the following conditions: You requested the ConnectCustomKeyStore operation on a custom key store with a ConnectionState of DISCONNECTING or FAILED. This operation is valid for all other ConnectionState values. To reconnect a custom key store in a FAILED state, disconnect it (DisconnectCustomKeyStore), then connect it (ConnectCustomKeyStore). You requested the CreateKey operation in a custom key store that is not connected. This operations is valid only when the custom key store ConnectionState is CONNECTED. You requested the DisconnectCustomKeyStore operation on a custom key store with a ConnectionState of DISCONNECTING or DISCONNECTED. This operation is valid for all other ConnectionState values. You requested the UpdateCustomKeyStore or DeleteCustomKeyStore operation on a custom key store that is not disconnected. This operation is valid only when the custom key store ConnectionState is DISCONNECTED. You requested the GenerateRandom operation in an CloudHSM key store that is not connected. This operation is valid only when the CloudHSM key store ConnectionState is CONNECTED. diff --git a/Sources/Soto/Services/Kafka/Kafka_api.swift b/Sources/Soto/Services/Kafka/Kafka_api.swift index 5472e0df55..4434f84e77 100644 --- a/Sources/Soto/Services/Kafka/Kafka_api.swift +++ b/Sources/Soto/Services/Kafka/Kafka_api.swift @@ -81,6 +81,7 @@ public struct Kafka: AWSService { static var variantEndpoints: [EndpointVariantType: AWSServiceConfig.EndpointVariant] {[ [.fips]: .init(endpoints: [ "ca-central-1": "kafka-fips.ca-central-1.amazonaws.com", + "ca-west-1": "kafka-fips.ca-west-1.amazonaws.com", "us-east-1": "kafka-fips.us-east-1.amazonaws.com", "us-east-2": "kafka-fips.us-east-2.amazonaws.com", "us-gov-east-1": "kafka.us-gov-east-1.amazonaws.com", diff --git a/Sources/Soto/Services/KafkaConnect/KafkaConnect_shapes.swift b/Sources/Soto/Services/KafkaConnect/KafkaConnect_shapes.swift index e5b85a9ada..69a363e351 100644 --- a/Sources/Soto/Services/KafkaConnect/KafkaConnect_shapes.swift +++ b/Sources/Soto/Services/KafkaConnect/KafkaConnect_shapes.swift @@ -623,7 +623,7 @@ extension KafkaConnect { } public func validate(name: String) throws { - try self.validate(self.revision, name: "revision", parent: name, max: -9223372036854775808) + try self.validate(self.revision, name: "revision", parent: name, max: 9223372036854775807) try self.validate(self.revision, name: "revision", parent: name, min: 1) } @@ -1834,7 +1834,7 @@ extension KafkaConnect { } public func validate(name: String) throws { - try self.validate(self.revision, name: "revision", parent: name, max: -9223372036854775808) + try self.validate(self.revision, name: "revision", parent: name, max: 9223372036854775807) try self.validate(self.revision, name: "revision", parent: name, min: 1) } diff --git a/Sources/Soto/Services/LakeFormation/LakeFormation_shapes.swift b/Sources/Soto/Services/LakeFormation/LakeFormation_shapes.swift index 565ae51d93..a8cdbc7e69 100644 --- a/Sources/Soto/Services/LakeFormation/LakeFormation_shapes.swift +++ b/Sources/Soto/Services/LakeFormation/LakeFormation_shapes.swift @@ -612,28 +612,36 @@ extension LakeFormation { public let externalFiltering: ExternalFilteringConfiguration? /// The ARN of the IAM Identity Center instance for which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference. public let instanceArn: String? + /// A list of Amazon Web Services account IDs and/or Amazon Web Services organization/organizational unit ARNs that are allowed to access data managed by Lake Formation. If the ShareRecipients list includes valid values, a resource share is created with the principals you want to have access to the resources. If the ShareRecipients value is null or the list is empty, no resource share is created. + public let shareRecipients: [DataLakePrincipal]? - public init(catalogId: String? = nil, externalFiltering: ExternalFilteringConfiguration? = nil, instanceArn: String? = nil) { + public init(catalogId: String? = nil, externalFiltering: ExternalFilteringConfiguration? = nil, instanceArn: String? = nil, shareRecipients: [DataLakePrincipal]? = nil) { self.catalogId = catalogId self.externalFiltering = externalFiltering self.instanceArn = instanceArn + self.shareRecipients = shareRecipients } public func validate(name: String) throws { try self.validate(self.catalogId, name: "catalogId", parent: name, max: 255) try self.validate(self.catalogId, name: "catalogId", parent: name, min: 1) try self.validate(self.catalogId, name: "catalogId", parent: name, pattern: "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*$") + try self.shareRecipients?.forEach { + try $0.validate(name: "\(name).shareRecipients[]") + } + try self.validate(self.shareRecipients, name: "shareRecipients", parent: name, max: 30) } private enum CodingKeys: String, CodingKey { case catalogId = "CatalogId" case externalFiltering = "ExternalFiltering" case instanceArn = "InstanceArn" + case shareRecipients = "ShareRecipients" } } public struct CreateLakeFormationIdentityCenterConfigurationResponse: AWSDecodableShape { - /// The Amazon Resource Name (ARN) of the integrated application. + /// The Amazon Resource Name (ARN) of the Lake Formation application integrated with IAM Identity Center. public let applicationArn: String? public init(applicationArn: String? = nil) { @@ -1174,7 +1182,7 @@ extension LakeFormation { } public struct DescribeLakeFormationIdentityCenterConfigurationResponse: AWSDecodableShape { - /// The Amazon Resource Name (ARN) of the integrated application. + /// The Amazon Resource Name (ARN) of the Lake Formation application integrated with IAM Identity Center. public let applicationArn: String? /// The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. public let catalogId: String? @@ -1182,12 +1190,18 @@ extension LakeFormation { public let externalFiltering: ExternalFilteringConfiguration? /// The Amazon Resource Name (ARN) of the connection. public let instanceArn: String? + /// The Amazon Resource Name (ARN) of the RAM share. + public let resourceShare: String? + /// A list of Amazon Web Services account IDs or Amazon Web Services organization/organizational unit ARNs that are allowed to access data managed by Lake Formation. If the ShareRecipients list includes valid values, a resource share is created with the principals you want to have access to the resources as the ShareRecipients. If the ShareRecipients value is null or the list is empty, no resource share is created. + public let shareRecipients: [DataLakePrincipal]? - public init(applicationArn: String? = nil, catalogId: String? = nil, externalFiltering: ExternalFilteringConfiguration? = nil, instanceArn: String? = nil) { + public init(applicationArn: String? = nil, catalogId: String? = nil, externalFiltering: ExternalFilteringConfiguration? = nil, instanceArn: String? = nil, resourceShare: String? = nil, shareRecipients: [DataLakePrincipal]? = nil) { self.applicationArn = applicationArn self.catalogId = catalogId self.externalFiltering = externalFiltering self.instanceArn = instanceArn + self.resourceShare = resourceShare + self.shareRecipients = shareRecipients } private enum CodingKeys: String, CodingKey { @@ -1195,6 +1209,8 @@ extension LakeFormation { case catalogId = "CatalogId" case externalFiltering = "ExternalFiltering" case instanceArn = "InstanceArn" + case resourceShare = "ResourceShare" + case shareRecipients = "ShareRecipients" } } @@ -3471,23 +3487,31 @@ extension LakeFormation { public let catalogId: String? /// A list of the account IDs of Amazon Web Services accounts of third-party applications that are allowed to access data managed by Lake Formation. public let externalFiltering: ExternalFilteringConfiguration? + /// A list of Amazon Web Services account IDs or Amazon Web Services organization/organizational unit ARNs that are allowed to access to access data managed by Lake Formation. If the ShareRecipients list includes valid values, then the resource share is updated with the principals you want to have access to the resources. If the ShareRecipients value is null, both the list of share recipients and the resource share remain unchanged. If the ShareRecipients value is an empty list, then the existing share recipients list will be cleared, and the resource share will be deleted. + public let shareRecipients: [DataLakePrincipal]? - public init(applicationStatus: ApplicationStatus? = nil, catalogId: String? = nil, externalFiltering: ExternalFilteringConfiguration? = nil) { + public init(applicationStatus: ApplicationStatus? = nil, catalogId: String? = nil, externalFiltering: ExternalFilteringConfiguration? = nil, shareRecipients: [DataLakePrincipal]? = nil) { self.applicationStatus = applicationStatus self.catalogId = catalogId self.externalFiltering = externalFiltering + self.shareRecipients = shareRecipients } public func validate(name: String) throws { try self.validate(self.catalogId, name: "catalogId", parent: name, max: 255) try self.validate(self.catalogId, name: "catalogId", parent: name, min: 1) try self.validate(self.catalogId, name: "catalogId", parent: name, pattern: "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*$") + try self.shareRecipients?.forEach { + try $0.validate(name: "\(name).shareRecipients[]") + } + try self.validate(self.shareRecipients, name: "shareRecipients", parent: name, max: 30) } private enum CodingKeys: String, CodingKey { case applicationStatus = "ApplicationStatus" case catalogId = "CatalogId" case externalFiltering = "ExternalFiltering" + case shareRecipients = "ShareRecipients" } } diff --git a/Sources/Soto/Services/M2/M2_api.swift b/Sources/Soto/Services/M2/M2_api.swift index d3455d1b73..99d5d7a852 100644 --- a/Sources/Soto/Services/M2/M2_api.swift +++ b/Sources/Soto/Services/M2/M2_api.swift @@ -345,6 +345,19 @@ public struct M2: AWSService { ) } + /// Lists all the job steps for JCL files to restart a batch job. This is only applicable for Micro Focus engine with versions 8.0.6 and above. + @Sendable + public func listBatchJobRestartPoints(_ input: ListBatchJobRestartPointsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListBatchJobRestartPointsResponse { + return try await self.client.execute( + operation: "ListBatchJobRestartPoints", + path: "/applications/{applicationId}/batch-job-executions/{executionId}/steps", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Lists the data set imports for the specified application. @Sendable public func listDataSetImportHistory(_ input: ListDataSetImportHistoryRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListDataSetImportHistoryResponse { diff --git a/Sources/Soto/Services/M2/M2_shapes.swift b/Sources/Soto/Services/M2/M2_shapes.swift index b86e78dbb0..1bb7c868b6 100644 --- a/Sources/Soto/Services/M2/M2_shapes.swift +++ b/Sources/Soto/Services/M2/M2_shapes.swift @@ -60,6 +60,7 @@ extension M2 { case dispatching = "Dispatching" case failed = "Failed" case holding = "Holding" + case purged = "Purged" case running = "Running" case submitting = "Submitting" case succeeded = "Succeeded" @@ -139,6 +140,8 @@ extension M2 { public enum BatchJobIdentifier: AWSEncodableShape & AWSDecodableShape, Sendable { /// Specifies a file associated with a specific batch job. case fileBatchJobIdentifier(FileBatchJobIdentifier) + /// Specifies the required information for restart, including execution ID and jobsteprestartmarker. + case restartBatchJobIdentifier(RestartBatchJobIdentifier) /// Specifies an Amazon S3 location that identifies the batch jobs that you want to run. Use this identifier to run ad hoc batch jobs. case s3BatchJobIdentifier(S3BatchJobIdentifier) /// A batch job identifier in which the batch job to run is identified by the script name. @@ -157,6 +160,9 @@ extension M2 { case .fileBatchJobIdentifier: let value = try container.decode(FileBatchJobIdentifier.self, forKey: .fileBatchJobIdentifier) self = .fileBatchJobIdentifier(value) + case .restartBatchJobIdentifier: + let value = try container.decode(RestartBatchJobIdentifier.self, forKey: .restartBatchJobIdentifier) + self = .restartBatchJobIdentifier(value) case .s3BatchJobIdentifier: let value = try container.decode(S3BatchJobIdentifier.self, forKey: .s3BatchJobIdentifier) self = .s3BatchJobIdentifier(value) @@ -171,6 +177,8 @@ extension M2 { switch self { case .fileBatchJobIdentifier(let value): try container.encode(value, forKey: .fileBatchJobIdentifier) + case .restartBatchJobIdentifier(let value): + try container.encode(value, forKey: .restartBatchJobIdentifier) case .s3BatchJobIdentifier(let value): try container.encode(value, forKey: .s3BatchJobIdentifier) case .scriptBatchJobIdentifier(let value): @@ -178,8 +186,18 @@ extension M2 { } } + public func validate(name: String) throws { + switch self { + case .restartBatchJobIdentifier(let value): + try value.validate(name: "\(name).restartBatchJobIdentifier") + default: + break + } + } + private enum CodingKeys: String, CodingKey { case fileBatchJobIdentifier = "fileBatchJobIdentifier" + case restartBatchJobIdentifier = "restartBatchJobIdentifier" case s3BatchJobIdentifier = "s3BatchJobIdentifier" case scriptBatchJobIdentifier = "scriptBatchJobIdentifier" } @@ -1557,6 +1575,8 @@ extension M2 { public let jobId: String? /// The name of this batch job. public let jobName: String? + /// The restart steps information for the most recent restart operation. + public let jobStepRestartMarker: JobStepRestartMarker? /// The type of job. public let jobType: BatchJobType? /// The user for the job. @@ -1570,13 +1590,14 @@ extension M2 { /// The reason for the reported status. public let statusReason: String? - public init(applicationId: String, batchJobIdentifier: BatchJobIdentifier? = nil, endTime: Date? = nil, executionId: String, jobId: String? = nil, jobName: String? = nil, jobType: BatchJobType? = nil, jobUser: String? = nil, returnCode: String? = nil, startTime: Date, status: BatchJobExecutionStatus, statusReason: String? = nil) { + public init(applicationId: String, batchJobIdentifier: BatchJobIdentifier? = nil, endTime: Date? = nil, executionId: String, jobId: String? = nil, jobName: String? = nil, jobStepRestartMarker: JobStepRestartMarker? = nil, jobType: BatchJobType? = nil, jobUser: String? = nil, returnCode: String? = nil, startTime: Date, status: BatchJobExecutionStatus, statusReason: String? = nil) { self.applicationId = applicationId self.batchJobIdentifier = batchJobIdentifier self.endTime = endTime self.executionId = executionId self.jobId = jobId self.jobName = jobName + self.jobStepRestartMarker = jobStepRestartMarker self.jobType = jobType self.jobUser = jobUser self.returnCode = returnCode @@ -1592,6 +1613,7 @@ extension M2 { case executionId = "executionId" case jobId = "jobId" case jobName = "jobName" + case jobStepRestartMarker = "jobStepRestartMarker" case jobType = "jobType" case jobUser = "jobUser" case returnCode = "returnCode" @@ -1926,6 +1948,64 @@ extension M2 { } } + public struct JobStep: AWSDecodableShape { + /// The name of a procedure step. + public let procStepName: String? + /// The number of a procedure step. + public let procStepNumber: Int? + /// The condition code of a step. + public let stepCondCode: String? + /// The name of a step. + public let stepName: String? + /// The number of a step. + public let stepNumber: Int? + /// Specifies if a step can be restarted or not. + public let stepRestartable: Bool? + + public init(procStepName: String? = nil, procStepNumber: Int? = nil, stepCondCode: String? = nil, stepName: String? = nil, stepNumber: Int? = nil, stepRestartable: Bool? = nil) { + self.procStepName = procStepName + self.procStepNumber = procStepNumber + self.stepCondCode = stepCondCode + self.stepName = stepName + self.stepNumber = stepNumber + self.stepRestartable = stepRestartable + } + + private enum CodingKeys: String, CodingKey { + case procStepName = "procStepName" + case procStepNumber = "procStepNumber" + case stepCondCode = "stepCondCode" + case stepName = "stepName" + case stepNumber = "stepNumber" + case stepRestartable = "stepRestartable" + } + } + + public struct JobStepRestartMarker: AWSEncodableShape & AWSDecodableShape { + /// The procedure step name that a job was restarted from. + public let fromProcStep: String? + /// The step name that a batch job restart was from. + public let fromStep: String + /// The procedure step name that a batch job was restarted to. + public let toProcStep: String? + /// The step name that a job was restarted to. + public let toStep: String? + + public init(fromProcStep: String? = nil, fromStep: String, toProcStep: String? = nil, toStep: String? = nil) { + self.fromProcStep = fromProcStep + self.fromStep = fromStep + self.toProcStep = toProcStep + self.toStep = toStep + } + + private enum CodingKeys: String, CodingKey { + case fromProcStep = "fromProcStep" + case fromStep = "fromStep" + case toProcStep = "toProcStep" + case toStep = "toStep" + } + } + public struct ListApplicationVersionsRequest: AWSEncodableShape { /// The unique identifier of the application. public let applicationId: String @@ -2161,6 +2241,45 @@ extension M2 { } } + public struct ListBatchJobRestartPointsRequest: AWSEncodableShape { + /// The unique identifier of the application. + public let applicationId: String + /// The unique identifier of each batch job execution. + public let executionId: String + + public init(applicationId: String, executionId: String) { + self.applicationId = applicationId + self.executionId = executionId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.applicationId, key: "applicationId") + request.encodePath(self.executionId, key: "executionId") + } + + public func validate(name: String) throws { + try self.validate(self.applicationId, name: "applicationId", parent: name, pattern: "^\\S{1,80}$") + try self.validate(self.executionId, name: "executionId", parent: name, pattern: "^\\S{1,80}$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListBatchJobRestartPointsResponse: AWSDecodableShape { + /// Returns all the batch job steps and related information for a batch job that previously ran. + public let batchJobSteps: [JobStep]? + + public init(batchJobSteps: [JobStep]? = nil) { + self.batchJobSteps = batchJobSteps + } + + private enum CodingKeys: String, CodingKey { + case batchJobSteps = "batchJobSteps" + } + } + public struct ListDataSetImportHistoryRequest: AWSEncodableShape { /// The unique identifier of the application. public let applicationId: String @@ -2626,6 +2745,27 @@ extension M2 { } } + public struct RestartBatchJobIdentifier: AWSEncodableShape & AWSDecodableShape { + /// The executionId from the StartBatchJob response when the job ran for the first time. + public let executionId: String + /// The restart step information for the most recent restart operation. + public let jobStepRestartMarker: JobStepRestartMarker + + public init(executionId: String, jobStepRestartMarker: JobStepRestartMarker) { + self.executionId = executionId + self.jobStepRestartMarker = jobStepRestartMarker + } + + public func validate(name: String) throws { + try self.validate(self.executionId, name: "executionId", parent: name, pattern: "^\\S{1,80}$") + } + + private enum CodingKeys: String, CodingKey { + case executionId = "executionId" + case jobStepRestartMarker = "jobStepRestartMarker" + } + } + public struct S3BatchJobIdentifier: AWSEncodableShape & AWSDecodableShape { /// The Amazon S3 bucket that contains the batch job definitions. public let bucket: String @@ -2722,6 +2862,7 @@ extension M2 { public func validate(name: String) throws { try self.validate(self.applicationId, name: "applicationId", parent: name, pattern: "^\\S{1,80}$") + try self.batchJobIdentifier.validate(name: "\(name).batchJobIdentifier") try self.jobParams?.forEach { try validate($0.key, name: "jobParams.key", parent: name, max: 32) try validate($0.key, name: "jobParams.key", parent: name, min: 1) diff --git a/Sources/Soto/Services/MarketplaceEntitlementService/MarketplaceEntitlementService_api.swift b/Sources/Soto/Services/MarketplaceEntitlementService/MarketplaceEntitlementService_api.swift index a4de199086..b615ae6add 100644 --- a/Sources/Soto/Services/MarketplaceEntitlementService/MarketplaceEntitlementService_api.swift +++ b/Sources/Soto/Services/MarketplaceEntitlementService/MarketplaceEntitlementService_api.swift @@ -61,6 +61,7 @@ public struct MarketplaceEntitlementService: AWSService { serviceProtocol: .json(version: "1.1"), apiVersion: "2017-01-11", endpoint: endpoint, + serviceEndpoints: Self.serviceEndpoints, errorType: MarketplaceEntitlementServiceErrorType.self, middleware: middleware, timeout: timeout, @@ -70,6 +71,10 @@ public struct MarketplaceEntitlementService: AWSService { } + /// custom endpoints for regions + static var serviceEndpoints: [String: String] {[ + "cn-northwest-1": "entitlement-marketplace.cn-northwest-1.amazonaws.com.cn" + ]} diff --git a/Sources/Soto/Services/MediaConvert/MediaConvert_api.swift b/Sources/Soto/Services/MediaConvert/MediaConvert_api.swift index 22bd19b112..cf70ebd9fc 100644 --- a/Sources/Soto/Services/MediaConvert/MediaConvert_api.swift +++ b/Sources/Soto/Services/MediaConvert/MediaConvert_api.swift @@ -72,7 +72,7 @@ public struct MediaConvert: AWSService { /// custom endpoints for regions static var serviceEndpoints: [String: String] {[ - "cn-northwest-1": "subscribe.mediaconvert.cn-northwest-1.amazonaws.com.cn" + "cn-northwest-1": "mediaconvert.cn-northwest-1.amazonaws.com.cn" ]} diff --git a/Sources/Soto/Services/MediaConvert/MediaConvert_shapes.swift b/Sources/Soto/Services/MediaConvert/MediaConvert_shapes.swift index a062ceb0dc..7a9a4feee3 100644 --- a/Sources/Soto/Services/MediaConvert/MediaConvert_shapes.swift +++ b/Sources/Soto/Services/MediaConvert/MediaConvert_shapes.swift @@ -2141,6 +2141,12 @@ extension MediaConvert { public var description: String { return self.rawValue } } + public enum M2tsPreventBufferUnderflow: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + public enum M2tsRateMode: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case cbr = "CBR" case vbr = "VBR" @@ -4002,6 +4008,16 @@ extension MediaConvert { public let fallbackFont: BurninSubtitleFallbackFont? /// Specify the color of the burned-in captions text. Leave Font color blank and set Style passthrough to enabled to use the font color data from your input captions, if present. public let fontColor: BurninSubtitleFontColor? + /// Specify a bold TrueType font file to use when rendering your output captions. Enter an S3, HTTP, or HTTPS URL. When you do, you must also separately specify a regular, an italic, and a bold italic font file. + public let fontFileBold: String? + /// Specify a bold italic TrueType font file to use when rendering your output captions. + /// Enter an S3, HTTP, or HTTPS URL. + /// When you do, you must also separately specify a regular, a bold, and an italic font file. + public let fontFileBoldItalic: String? + /// Specify an italic TrueType font file to use when rendering your output captions. Enter an S3, HTTP, or HTTPS URL. When you do, you must also separately specify a regular, a bold, and a bold italic font file. + public let fontFileItalic: String? + /// Specify a regular TrueType font file to use when rendering your output captions. Enter an S3, HTTP, or HTTPS URL. When you do, you must also separately specify a bold, an italic, and a bold italic font file. + public let fontFileRegular: String? /// Specify the opacity of the burned-in captions. 255 is opaque; 0 is transparent. public let fontOpacity: Int? /// Specify the Font resolution in DPI (dots per inch). @@ -4024,7 +4040,7 @@ extension MediaConvert { public let shadowXOffset: Int? /// Specify 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. Leave Shadow y-offset blank and set Style passthrough to enabled to use the shadow y-offset data from your input captions, if present. public let shadowYOffset: Int? - /// Set Style passthrough to ENABLED to use the available style, color, and position information from your input captions. MediaConvert uses default settings for any missing style and position information in your input captions. Set Style passthrough to DISABLED, or leave blank, to ignore the style and position information from your input captions and use default settings: white text with black outlining, bottom-center positioning, and automatic sizing. Whether you set Style passthrough to enabled or not, you can also choose to manually override any of the individual style and position settings. + /// To use the available style, color, and position information from your input captions: Set Style passthrough to Enabled. Note that MediaConvert uses default settings for any missing style or position information in your input captions To ignore the style and position information from your input captions and use default settings: Leave blank or keep the default value, Disabled. Default settings include white text with black outlining, bottom-center positioning, and automatic sizing. Whether you set Style passthrough to enabled or not, you can also choose to manually override any of the individual style and position settings. You can also override any fonts by manually specifying custom font files. public let stylePassthrough: BurnInSubtitleStylePassthrough? /// Specify whether the text spacing in your captions is set by the captions grid, or varies depending on letter width. Choose fixed grid to conform to the spacing specified in the captions file more accurately. Choose proportional to make the text easier to read for closed captions. public let teletextSpacing: BurninSubtitleTeletextSpacing? @@ -4033,13 +4049,17 @@ extension MediaConvert { /// Specify the vertical position of the captions, 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. public let yPosition: Int? - public init(alignment: BurninSubtitleAlignment? = nil, applyFontColor: BurninSubtitleApplyFontColor? = nil, backgroundColor: BurninSubtitleBackgroundColor? = nil, backgroundOpacity: Int? = nil, fallbackFont: BurninSubtitleFallbackFont? = nil, fontColor: BurninSubtitleFontColor? = nil, fontOpacity: Int? = nil, fontResolution: Int? = nil, fontScript: FontScript? = nil, fontSize: Int? = nil, hexFontColor: String? = nil, outlineColor: BurninSubtitleOutlineColor? = nil, outlineSize: Int? = nil, shadowColor: BurninSubtitleShadowColor? = nil, shadowOpacity: Int? = nil, shadowXOffset: Int? = nil, shadowYOffset: Int? = nil, stylePassthrough: BurnInSubtitleStylePassthrough? = nil, teletextSpacing: BurninSubtitleTeletextSpacing? = nil, xPosition: Int? = nil, yPosition: Int? = nil) { + public init(alignment: BurninSubtitleAlignment? = nil, applyFontColor: BurninSubtitleApplyFontColor? = nil, backgroundColor: BurninSubtitleBackgroundColor? = nil, backgroundOpacity: Int? = nil, fallbackFont: BurninSubtitleFallbackFont? = nil, fontColor: BurninSubtitleFontColor? = nil, fontFileBold: String? = nil, fontFileBoldItalic: String? = nil, fontFileItalic: String? = nil, fontFileRegular: String? = nil, fontOpacity: Int? = nil, fontResolution: Int? = nil, fontScript: FontScript? = nil, fontSize: Int? = nil, hexFontColor: String? = nil, outlineColor: BurninSubtitleOutlineColor? = nil, outlineSize: Int? = nil, shadowColor: BurninSubtitleShadowColor? = nil, shadowOpacity: Int? = nil, shadowXOffset: Int? = nil, shadowYOffset: Int? = nil, stylePassthrough: BurnInSubtitleStylePassthrough? = nil, teletextSpacing: BurninSubtitleTeletextSpacing? = nil, xPosition: Int? = nil, yPosition: Int? = nil) { self.alignment = alignment self.applyFontColor = applyFontColor self.backgroundColor = backgroundColor self.backgroundOpacity = backgroundOpacity self.fallbackFont = fallbackFont self.fontColor = fontColor + self.fontFileBold = fontFileBold + self.fontFileBoldItalic = fontFileBoldItalic + self.fontFileItalic = fontFileItalic + self.fontFileRegular = fontFileRegular self.fontOpacity = fontOpacity self.fontResolution = fontResolution self.fontScript = fontScript @@ -4060,6 +4080,9 @@ extension MediaConvert { public func validate(name: String) throws { try self.validate(self.backgroundOpacity, name: "backgroundOpacity", parent: name, max: 255) try self.validate(self.backgroundOpacity, name: "backgroundOpacity", parent: name, min: 0) + try self.validate(self.fontFileBold, name: "fontFileBold", parent: name, pattern: "^((s3://(.*?)\\.(ttf))|(https?://(.*?)\\.(ttf)(\\?([^&=]+=[^&]+&)*[^&=]+=[^&]+)?))$") + try self.validate(self.fontFileItalic, name: "fontFileItalic", parent: name, pattern: "^((s3://(.*?)\\.(ttf))|(https?://(.*?)\\.(ttf)(\\?([^&=]+=[^&]+&)*[^&=]+=[^&]+)?))$") + try self.validate(self.fontFileRegular, name: "fontFileRegular", parent: name, pattern: "^((s3://(.*?)\\.(ttf))|(https?://(.*?)\\.(ttf)(\\?([^&=]+=[^&]+&)*[^&=]+=[^&]+)?))$") try self.validate(self.fontOpacity, name: "fontOpacity", parent: name, max: 255) try self.validate(self.fontOpacity, name: "fontOpacity", parent: name, min: 0) try self.validate(self.fontResolution, name: "fontResolution", parent: name, max: 600) @@ -4090,6 +4113,10 @@ extension MediaConvert { case backgroundOpacity = "backgroundOpacity" case fallbackFont = "fallbackFont" case fontColor = "fontColor" + case fontFileBold = "fontFileBold" + case fontFileBoldItalic = "fontFileBoldItalic" + case fontFileItalic = "fontFileItalic" + case fontFileRegular = "fontFileRegular" case fontOpacity = "fontOpacity" case fontResolution = "fontResolution" case fontScript = "fontScript" @@ -5635,6 +5662,16 @@ extension MediaConvert { public let fallbackFont: DvbSubSubtitleFallbackFont? /// Specify the color of the captions text. Leave Font color blank and set Style passthrough to enabled to use the font color data from your input captions, if present. Within your job settings, all of your DVB-Sub settings must be identical. public let fontColor: DvbSubtitleFontColor? + /// Specify a bold TrueType font file to use when rendering your output captions. Enter an S3, HTTP, or HTTPS URL. When you do, you must also separately specify a regular, an italic, and a bold italic font file. + public let fontFileBold: String? + /// Specify a bold italic TrueType font file to use when rendering your output captions. + /// Enter an S3, HTTP, or HTTPS URL. + /// When you do, you must also separately specify a regular, a bold, and an italic font file. + public let fontFileBoldItalic: String? + /// Specify an italic TrueType font file to use when rendering your output captions. Enter an S3, HTTP, or HTTPS URL. When you do, you must also separately specify a regular, a bold, and a bold italic font file. + public let fontFileItalic: String? + /// Specify a regular TrueType font file to use when rendering your output captions. Enter an S3, HTTP, or HTTPS URL. When you do, you must also separately specify a bold, an italic, and a bold italic font file. + public let fontFileRegular: String? /// Specify the opacity of the burned-in captions. 255 is opaque; 0 is transparent. /// Within your job settings, all of your DVB-Sub settings must be identical. public let fontOpacity: Int? @@ -5661,7 +5698,7 @@ extension MediaConvert { public let shadowXOffset: Int? /// Specify 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. Leave Shadow y-offset blank and set Style passthrough to enabled to use the shadow y-offset data from your input captions, if present. Within your job settings, all of your DVB-Sub settings must be identical. public let shadowYOffset: Int? - /// Set Style passthrough to ENABLED to use the available style, color, and position information from your input captions. MediaConvert uses default settings for any missing style and position information in your input captions. Set Style passthrough to DISABLED, or leave blank, to ignore the style and position information from your input captions and use default settings: white text with black outlining, bottom-center positioning, and automatic sizing. Whether you set Style passthrough to enabled or not, you can also choose to manually override any of the individual style and position settings. + /// To use the available style, color, and position information from your input captions: Set Style passthrough to Enabled. Note that MediaConvert uses default settings for any missing style or position information in your input captions To ignore the style and position information from your input captions and use default settings: Leave blank or keep the default value, Disabled. Default settings include white text with black outlining, bottom-center positioning, and automatic sizing. Whether you set Style passthrough to enabled or not, you can also choose to manually override any of the individual style and position settings. You can also override any fonts by manually specifying custom font files. public let stylePassthrough: DvbSubtitleStylePassthrough? /// Specify whether your DVB subtitles are standard or for hearing impaired. Choose hearing impaired if your subtitles include audio descriptions and dialogue. Choose standard if your subtitles include only dialogue. public let subtitlingType: DvbSubtitlingType? @@ -5674,7 +5711,7 @@ extension MediaConvert { /// Specify the vertical position of the captions, 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. Within your job settings, all of your DVB-Sub settings must be identical. public let yPosition: Int? - public init(alignment: DvbSubtitleAlignment? = nil, applyFontColor: DvbSubtitleApplyFontColor? = nil, backgroundColor: DvbSubtitleBackgroundColor? = nil, backgroundOpacity: Int? = nil, ddsHandling: DvbddsHandling? = nil, ddsXCoordinate: Int? = nil, ddsYCoordinate: Int? = nil, fallbackFont: DvbSubSubtitleFallbackFont? = nil, fontColor: DvbSubtitleFontColor? = nil, fontOpacity: Int? = nil, fontResolution: Int? = nil, fontScript: FontScript? = nil, fontSize: Int? = nil, height: Int? = nil, hexFontColor: String? = nil, outlineColor: DvbSubtitleOutlineColor? = nil, outlineSize: Int? = nil, shadowColor: DvbSubtitleShadowColor? = nil, shadowOpacity: Int? = nil, shadowXOffset: Int? = nil, shadowYOffset: Int? = nil, stylePassthrough: DvbSubtitleStylePassthrough? = nil, subtitlingType: DvbSubtitlingType? = nil, teletextSpacing: DvbSubtitleTeletextSpacing? = nil, width: Int? = nil, xPosition: Int? = nil, yPosition: Int? = nil) { + public init(alignment: DvbSubtitleAlignment? = nil, applyFontColor: DvbSubtitleApplyFontColor? = nil, backgroundColor: DvbSubtitleBackgroundColor? = nil, backgroundOpacity: Int? = nil, ddsHandling: DvbddsHandling? = nil, ddsXCoordinate: Int? = nil, ddsYCoordinate: Int? = nil, fallbackFont: DvbSubSubtitleFallbackFont? = nil, fontColor: DvbSubtitleFontColor? = nil, fontFileBold: String? = nil, fontFileBoldItalic: String? = nil, fontFileItalic: String? = nil, fontFileRegular: String? = nil, fontOpacity: Int? = nil, fontResolution: Int? = nil, fontScript: FontScript? = nil, fontSize: Int? = nil, height: Int? = nil, hexFontColor: String? = nil, outlineColor: DvbSubtitleOutlineColor? = nil, outlineSize: Int? = nil, shadowColor: DvbSubtitleShadowColor? = nil, shadowOpacity: Int? = nil, shadowXOffset: Int? = nil, shadowYOffset: Int? = nil, stylePassthrough: DvbSubtitleStylePassthrough? = nil, subtitlingType: DvbSubtitlingType? = nil, teletextSpacing: DvbSubtitleTeletextSpacing? = nil, width: Int? = nil, xPosition: Int? = nil, yPosition: Int? = nil) { self.alignment = alignment self.applyFontColor = applyFontColor self.backgroundColor = backgroundColor @@ -5684,6 +5721,10 @@ extension MediaConvert { self.ddsYCoordinate = ddsYCoordinate self.fallbackFont = fallbackFont self.fontColor = fontColor + self.fontFileBold = fontFileBold + self.fontFileBoldItalic = fontFileBoldItalic + self.fontFileItalic = fontFileItalic + self.fontFileRegular = fontFileRegular self.fontOpacity = fontOpacity self.fontResolution = fontResolution self.fontScript = fontScript @@ -5711,6 +5752,10 @@ extension MediaConvert { try self.validate(self.ddsXCoordinate, name: "ddsXCoordinate", parent: name, min: 0) try self.validate(self.ddsYCoordinate, name: "ddsYCoordinate", parent: name, max: 2147483647) try self.validate(self.ddsYCoordinate, name: "ddsYCoordinate", parent: name, min: 0) + try self.validate(self.fontFileBold, name: "fontFileBold", parent: name, pattern: "^((s3://(.*?)\\.(ttf))|(https?://(.*?)\\.(ttf)(\\?([^&=]+=[^&]+&)*[^&=]+=[^&]+)?))$") + try self.validate(self.fontFileBoldItalic, name: "fontFileBoldItalic", parent: name, pattern: "^((s3://(.*?)\\.(ttf))|(https?://(.*?)\\.(ttf)(\\?([^&=]+=[^&]+&)*[^&=]+=[^&]+)?))$") + try self.validate(self.fontFileItalic, name: "fontFileItalic", parent: name, pattern: "^((s3://(.*?)\\.(ttf))|(https?://(.*?)\\.(ttf)(\\?([^&=]+=[^&]+&)*[^&=]+=[^&]+)?))$") + try self.validate(self.fontFileRegular, name: "fontFileRegular", parent: name, pattern: "^((s3://(.*?)\\.(ttf))|(https?://(.*?)\\.(ttf)(\\?([^&=]+=[^&]+&)*[^&=]+=[^&]+)?))$") try self.validate(self.fontOpacity, name: "fontOpacity", parent: name, max: 255) try self.validate(self.fontOpacity, name: "fontOpacity", parent: name, min: 0) try self.validate(self.fontResolution, name: "fontResolution", parent: name, max: 600) @@ -5748,6 +5793,10 @@ extension MediaConvert { case ddsYCoordinate = "ddsYCoordinate" case fallbackFont = "fallbackFont" case fontColor = "fontColor" + case fontFileBold = "fontFileBold" + case fontFileBoldItalic = "fontFileBoldItalic" + case fontFileItalic = "fontFileItalic" + case fontFileRegular = "fontFileRegular" case fontOpacity = "fontOpacity" case fontResolution = "fontResolution" case fontScript = "fontScript" @@ -8060,7 +8109,7 @@ extension MediaConvert { public let adAvailOffset: Int? /// 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? - /// Use 3D LUTs to specify custom color mapping behavior when you convert from one color space into another. You can include up to 8 different 3D LUTs. + /// Use 3D LUTs to specify custom color mapping behavior when you convert from one color space into another. You can include up to 8 different 3D LUTs. For more information, see: https://docs.aws.amazon.com/mediaconvert/latest/ug/3d-luts.html public let colorConversion3DLUTSettings: [ColorConversion3DLUTSetting]? /// Settings for Event Signaling And Messaging (ESAM). If you don't do ad insertion, you can ignore these settings. public let esam: EsamSettings? @@ -8212,7 +8261,7 @@ extension MediaConvert { public let adAvailOffset: Int? /// 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? - /// Use 3D LUTs to specify custom color mapping behavior when you convert from one color space into another. You can include up to 8 different 3D LUTs. + /// Use 3D LUTs to specify custom color mapping behavior when you convert from one color space into another. You can include up to 8 different 3D LUTs. For more information, see: https://docs.aws.amazon.com/mediaconvert/latest/ug/3d-luts.html public let colorConversion3DLUTSettings: [ColorConversion3DLUTSetting]? /// Settings for Event Signaling And Messaging (ESAM). If you don't do ad insertion, you can ignore these settings. public let esam: EsamSettings? @@ -8703,6 +8752,8 @@ extension MediaConvert { public let pmtInterval: Int? /// Specify the packet identifier (PID) for the program map table (PMT) itself. Default is 480. public let pmtPid: Int? + /// Specify whether MediaConvert automatically attempts to prevent decoder buffer underflows in your transport stream output. Use if you are seeing decoder buffer underflows in your output and are unable to increase your transport stream's bitrate. For most workflows: We recommend that you keep the default value, Disabled. To prevent decoder buffer underflows in your output, when possible: Choose Enabled. Note that if MediaConvert prevents a decoder buffer underflow in your output, output video quality is reduced and your job will take longer to complete. + public let preventBufferUnderflow: M2tsPreventBufferUnderflow? /// Specify the packet identifier (PID) of the private metadata stream. Default is 503. public let privateMetadataPid: Int? /// Use Program number to specify the program number used in the program map table (PMT) for this output. Default is 1. Program numbers and program map tables are parts of MPEG-2 transport stream containers, used for organizing data. @@ -8732,7 +8783,7 @@ extension MediaConvert { /// Specify the packet identifier (PID) of the elementary video stream in the transport stream. public let videoPid: Int? - public init(audioBufferModel: M2tsAudioBufferModel? = nil, audioDuration: M2tsAudioDuration? = nil, audioFramesPerPes: Int? = nil, audioPids: [Int]? = nil, bitrate: Int? = nil, bufferModel: M2tsBufferModel? = nil, dataPTSControl: M2tsDataPtsControl? = nil, dvbNitSettings: DvbNitSettings? = nil, dvbSdtSettings: DvbSdtSettings? = nil, dvbSubPids: [Int]? = nil, dvbTdtSettings: DvbTdtSettings? = nil, dvbTeletextPid: Int? = nil, ebpAudioInterval: M2tsEbpAudioInterval? = nil, ebpPlacement: M2tsEbpPlacement? = nil, esRateInPes: M2tsEsRateInPes? = nil, forceTsVideoEbpOrder: M2tsForceTsVideoEbpOrder? = nil, fragmentTime: Double? = nil, klvMetadata: M2tsKlvMetadata? = nil, maxPcrInterval: Int? = nil, minEbpInterval: Int? = nil, nielsenId3: M2tsNielsenId3? = nil, nullPacketBitrate: Double? = nil, patInterval: Int? = nil, pcrControl: M2tsPcrControl? = nil, pcrPid: Int? = nil, pmtInterval: Int? = nil, pmtPid: Int? = nil, privateMetadataPid: Int? = nil, programNumber: Int? = nil, ptsOffset: Int? = nil, ptsOffsetMode: TsPtsOffset? = nil, rateMode: M2tsRateMode? = nil, scte35Esam: M2tsScte35Esam? = nil, scte35Pid: Int? = nil, scte35Source: M2tsScte35Source? = nil, segmentationMarkers: M2tsSegmentationMarkers? = nil, segmentationStyle: M2tsSegmentationStyle? = nil, segmentationTime: Double? = nil, timedMetadataPid: Int? = nil, transportStreamId: Int? = nil, videoPid: Int? = nil) { + public init(audioBufferModel: M2tsAudioBufferModel? = nil, audioDuration: M2tsAudioDuration? = nil, audioFramesPerPes: Int? = nil, audioPids: [Int]? = nil, bitrate: Int? = nil, bufferModel: M2tsBufferModel? = nil, dataPTSControl: M2tsDataPtsControl? = nil, dvbNitSettings: DvbNitSettings? = nil, dvbSdtSettings: DvbSdtSettings? = nil, dvbSubPids: [Int]? = nil, dvbTdtSettings: DvbTdtSettings? = nil, dvbTeletextPid: Int? = nil, ebpAudioInterval: M2tsEbpAudioInterval? = nil, ebpPlacement: M2tsEbpPlacement? = nil, esRateInPes: M2tsEsRateInPes? = nil, forceTsVideoEbpOrder: M2tsForceTsVideoEbpOrder? = nil, fragmentTime: Double? = nil, klvMetadata: M2tsKlvMetadata? = nil, maxPcrInterval: Int? = nil, minEbpInterval: Int? = nil, nielsenId3: M2tsNielsenId3? = nil, nullPacketBitrate: Double? = nil, patInterval: Int? = nil, pcrControl: M2tsPcrControl? = nil, pcrPid: Int? = nil, pmtInterval: Int? = nil, pmtPid: Int? = nil, preventBufferUnderflow: M2tsPreventBufferUnderflow? = nil, privateMetadataPid: Int? = nil, programNumber: Int? = nil, ptsOffset: Int? = nil, ptsOffsetMode: TsPtsOffset? = nil, rateMode: M2tsRateMode? = nil, scte35Esam: M2tsScte35Esam? = nil, scte35Pid: Int? = nil, scte35Source: M2tsScte35Source? = nil, segmentationMarkers: M2tsSegmentationMarkers? = nil, segmentationStyle: M2tsSegmentationStyle? = nil, segmentationTime: Double? = nil, timedMetadataPid: Int? = nil, transportStreamId: Int? = nil, videoPid: Int? = nil) { self.audioBufferModel = audioBufferModel self.audioDuration = audioDuration self.audioFramesPerPes = audioFramesPerPes @@ -8760,6 +8811,7 @@ extension MediaConvert { self.pcrPid = pcrPid self.pmtInterval = pmtInterval self.pmtPid = pmtPid + self.preventBufferUnderflow = preventBufferUnderflow self.privateMetadataPid = privateMetadataPid self.programNumber = programNumber self.ptsOffset = ptsOffset @@ -8851,6 +8903,7 @@ extension MediaConvert { case pcrPid = "pcrPid" case pmtInterval = "pmtInterval" case pmtPid = "pmtPid" + case preventBufferUnderflow = "preventBufferUnderflow" case privateMetadataPid = "privateMetadataPid" case programNumber = "programNumber" case ptsOffset = "ptsOffset" diff --git a/Sources/Soto/Services/MediaLive/MediaLive_api.swift b/Sources/Soto/Services/MediaLive/MediaLive_api.swift index a2076ef87e..a1059ab149 100644 --- a/Sources/Soto/Services/MediaLive/MediaLive_api.swift +++ b/Sources/Soto/Services/MediaLive/MediaLive_api.swift @@ -186,6 +186,58 @@ public struct MediaLive: AWSService { ) } + /// Creates a cloudwatch alarm template to dynamically generate cloudwatch metric alarms on targeted resource types. + @Sendable + public func createCloudWatchAlarmTemplate(_ input: CreateCloudWatchAlarmTemplateRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateCloudWatchAlarmTemplateResponse { + return try await self.client.execute( + operation: "CreateCloudWatchAlarmTemplate", + path: "/prod/cloudwatch-alarm-templates", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Creates a cloudwatch alarm template group to group your cloudwatch alarm templates and to attach to signal maps for dynamically creating alarms. + @Sendable + public func createCloudWatchAlarmTemplateGroup(_ input: CreateCloudWatchAlarmTemplateGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateCloudWatchAlarmTemplateGroupResponse { + return try await self.client.execute( + operation: "CreateCloudWatchAlarmTemplateGroup", + path: "/prod/cloudwatch-alarm-template-groups", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Creates an eventbridge rule template to monitor events and send notifications to your targeted resources. + @Sendable + public func createEventBridgeRuleTemplate(_ input: CreateEventBridgeRuleTemplateRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateEventBridgeRuleTemplateResponse { + return try await self.client.execute( + operation: "CreateEventBridgeRuleTemplate", + path: "/prod/eventbridge-rule-templates", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Creates an eventbridge rule template group to group your eventbridge rule templates and to attach to signal maps for dynamically creating notification rules. + @Sendable + public func createEventBridgeRuleTemplateGroup(_ input: CreateEventBridgeRuleTemplateGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateEventBridgeRuleTemplateGroupResponse { + return try await self.client.execute( + operation: "CreateEventBridgeRuleTemplateGroup", + path: "/prod/eventbridge-rule-template-groups", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Create an input @Sendable public func createInput(_ input: CreateInputRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateInputResponse { @@ -251,6 +303,19 @@ public struct MediaLive: AWSService { ) } + /// Initiates the creation of a new signal map. Will discover a new mediaResourceMap based on the provided discoveryEntryPointArn. + @Sendable + public func createSignalMap(_ input: CreateSignalMapRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateSignalMapResponse { + return try await self.client.execute( + operation: "CreateSignalMap", + path: "/prod/signal-maps", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Create tags for a resource @Sendable public func createTags(_ input: CreateTagsRequest, logger: Logger = AWSClient.loggingDisabled) async throws { @@ -277,6 +342,58 @@ public struct MediaLive: AWSService { ) } + /// Deletes a cloudwatch alarm template. + @Sendable + public func deleteCloudWatchAlarmTemplate(_ input: DeleteCloudWatchAlarmTemplateRequest, logger: Logger = AWSClient.loggingDisabled) async throws { + return try await self.client.execute( + operation: "DeleteCloudWatchAlarmTemplate", + path: "/prod/cloudwatch-alarm-templates/{Identifier}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Deletes a cloudwatch alarm template group. You must detach this group from all signal maps and ensure its existing templates are moved to another group or deleted. + @Sendable + public func deleteCloudWatchAlarmTemplateGroup(_ input: DeleteCloudWatchAlarmTemplateGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws { + return try await self.client.execute( + operation: "DeleteCloudWatchAlarmTemplateGroup", + path: "/prod/cloudwatch-alarm-template-groups/{Identifier}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Deletes an eventbridge rule template. + @Sendable + public func deleteEventBridgeRuleTemplate(_ input: DeleteEventBridgeRuleTemplateRequest, logger: Logger = AWSClient.loggingDisabled) async throws { + return try await self.client.execute( + operation: "DeleteEventBridgeRuleTemplate", + path: "/prod/eventbridge-rule-templates/{Identifier}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Deletes an eventbridge rule template group. You must detach this group from all signal maps and ensure its existing templates are moved to another group or deleted. + @Sendable + public func deleteEventBridgeRuleTemplateGroup(_ input: DeleteEventBridgeRuleTemplateGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws { + return try await self.client.execute( + operation: "DeleteEventBridgeRuleTemplateGroup", + path: "/prod/eventbridge-rule-template-groups/{Identifier}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Deletes the input end point @Sendable public func deleteInput(_ input: DeleteInputRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteInputResponse { @@ -355,6 +472,19 @@ public struct MediaLive: AWSService { ) } + /// Deletes the specified signal map. + @Sendable + public func deleteSignalMap(_ input: DeleteSignalMapRequest, logger: Logger = AWSClient.loggingDisabled) async throws { + return try await self.client.execute( + operation: "DeleteSignalMap", + path: "/prod/signal-maps/{Identifier}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Removes tags for a resource @Sendable public func deleteTags(_ input: DeleteTagsRequest, logger: Logger = AWSClient.loggingDisabled) async throws { @@ -524,6 +654,71 @@ public struct MediaLive: AWSService { ) } + /// Retrieves the specified cloudwatch alarm template. + @Sendable + public func getCloudWatchAlarmTemplate(_ input: GetCloudWatchAlarmTemplateRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetCloudWatchAlarmTemplateResponse { + return try await self.client.execute( + operation: "GetCloudWatchAlarmTemplate", + path: "/prod/cloudwatch-alarm-templates/{Identifier}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Retrieves the specified cloudwatch alarm template group. + @Sendable + public func getCloudWatchAlarmTemplateGroup(_ input: GetCloudWatchAlarmTemplateGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetCloudWatchAlarmTemplateGroupResponse { + return try await self.client.execute( + operation: "GetCloudWatchAlarmTemplateGroup", + path: "/prod/cloudwatch-alarm-template-groups/{Identifier}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Retrieves the specified eventbridge rule template. + @Sendable + public func getEventBridgeRuleTemplate(_ input: GetEventBridgeRuleTemplateRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetEventBridgeRuleTemplateResponse { + return try await self.client.execute( + operation: "GetEventBridgeRuleTemplate", + path: "/prod/eventbridge-rule-templates/{Identifier}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Retrieves the specified eventbridge rule template group. + @Sendable + public func getEventBridgeRuleTemplateGroup(_ input: GetEventBridgeRuleTemplateGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetEventBridgeRuleTemplateGroupResponse { + return try await self.client.execute( + operation: "GetEventBridgeRuleTemplateGroup", + path: "/prod/eventbridge-rule-template-groups/{Identifier}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Retrieves the specified signal map. + @Sendable + public func getSignalMap(_ input: GetSignalMapRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetSignalMapResponse { + return try await self.client.execute( + operation: "GetSignalMap", + path: "/prod/signal-maps/{Identifier}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Produces list of channels that have been created @Sendable public func listChannels(_ input: ListChannelsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListChannelsResponse { @@ -537,6 +732,58 @@ public struct MediaLive: AWSService { ) } + /// Lists cloudwatch alarm template groups. + @Sendable + public func listCloudWatchAlarmTemplateGroups(_ input: ListCloudWatchAlarmTemplateGroupsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListCloudWatchAlarmTemplateGroupsResponse { + return try await self.client.execute( + operation: "ListCloudWatchAlarmTemplateGroups", + path: "/prod/cloudwatch-alarm-template-groups", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Lists cloudwatch alarm templates. + @Sendable + public func listCloudWatchAlarmTemplates(_ input: ListCloudWatchAlarmTemplatesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListCloudWatchAlarmTemplatesResponse { + return try await self.client.execute( + operation: "ListCloudWatchAlarmTemplates", + path: "/prod/cloudwatch-alarm-templates", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Lists eventbridge rule template groups. + @Sendable + public func listEventBridgeRuleTemplateGroups(_ input: ListEventBridgeRuleTemplateGroupsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListEventBridgeRuleTemplateGroupsResponse { + return try await self.client.execute( + operation: "ListEventBridgeRuleTemplateGroups", + path: "/prod/eventbridge-rule-template-groups", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Lists eventbridge rule templates. + @Sendable + public func listEventBridgeRuleTemplates(_ input: ListEventBridgeRuleTemplatesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListEventBridgeRuleTemplatesResponse { + return try await self.client.execute( + operation: "ListEventBridgeRuleTemplates", + path: "/prod/eventbridge-rule-templates", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// List input devices that are currently being transferred. List input devices that you are transferring from your AWS account or input devices that another AWS account is transferring to you. @Sendable public func listInputDeviceTransfers(_ input: ListInputDeviceTransfersRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListInputDeviceTransfersResponse { @@ -641,6 +888,19 @@ public struct MediaLive: AWSService { ) } + /// Lists signal maps. + @Sendable + public func listSignalMaps(_ input: ListSignalMapsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListSignalMapsResponse { + return try await self.client.execute( + operation: "ListSignalMaps", + path: "/prod/signal-maps", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Produces list of tags that have been created for a resource @Sendable public func listTagsForResource(_ input: ListTagsForResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListTagsForResourceResponse { @@ -719,6 +979,19 @@ public struct MediaLive: AWSService { ) } + /// Initiates a deployment to delete the monitor of the specified signal map. + @Sendable + public func startDeleteMonitorDeployment(_ input: StartDeleteMonitorDeploymentRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartDeleteMonitorDeploymentResponse { + return try await self.client.execute( + operation: "StartDeleteMonitorDeployment", + path: "/prod/signal-maps/{Identifier}/monitor-deployment", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Start an input device that is attached to a MediaConnect flow. (There is no need to start a device that is attached to a MediaLive input; MediaLive starts the device when the channel starts.) @Sendable public func startInputDevice(_ input: StartInputDeviceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartInputDeviceResponse { @@ -745,6 +1018,19 @@ public struct MediaLive: AWSService { ) } + /// Initiates a deployment to deploy the latest monitor of the specified signal map. + @Sendable + public func startMonitorDeployment(_ input: StartMonitorDeploymentRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartMonitorDeploymentResponse { + return try await self.client.execute( + operation: "StartMonitorDeployment", + path: "/prod/signal-maps/{Identifier}/monitor-deployment", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Start (run) the multiplex. Starting the multiplex does not start the channels. You must explicitly start each channel. @Sendable public func startMultiplex(_ input: StartMultiplexRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartMultiplexResponse { @@ -758,6 +1044,19 @@ public struct MediaLive: AWSService { ) } + /// Initiates an update for the specified signal map. Will discover a new signal map if a changed discoveryEntryPointArn is provided. + @Sendable + public func startUpdateSignalMap(_ input: StartUpdateSignalMapRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartUpdateSignalMapResponse { + return try await self.client.execute( + operation: "StartUpdateSignalMap", + path: "/prod/signal-maps/{Identifier}", + httpMethod: .PATCH, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Stops a running channel @Sendable public func stopChannel(_ input: StopChannelRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StopChannelResponse { @@ -849,6 +1148,58 @@ public struct MediaLive: AWSService { ) } + /// Updates the specified cloudwatch alarm template. + @Sendable + public func updateCloudWatchAlarmTemplate(_ input: UpdateCloudWatchAlarmTemplateRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateCloudWatchAlarmTemplateResponse { + return try await self.client.execute( + operation: "UpdateCloudWatchAlarmTemplate", + path: "/prod/cloudwatch-alarm-templates/{Identifier}", + httpMethod: .PATCH, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Updates the specified cloudwatch alarm template group. + @Sendable + public func updateCloudWatchAlarmTemplateGroup(_ input: UpdateCloudWatchAlarmTemplateGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateCloudWatchAlarmTemplateGroupResponse { + return try await self.client.execute( + operation: "UpdateCloudWatchAlarmTemplateGroup", + path: "/prod/cloudwatch-alarm-template-groups/{Identifier}", + httpMethod: .PATCH, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Updates the specified eventbridge rule template. + @Sendable + public func updateEventBridgeRuleTemplate(_ input: UpdateEventBridgeRuleTemplateRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateEventBridgeRuleTemplateResponse { + return try await self.client.execute( + operation: "UpdateEventBridgeRuleTemplate", + path: "/prod/eventbridge-rule-templates/{Identifier}", + httpMethod: .PATCH, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Updates the specified eventbridge rule template group. + @Sendable + public func updateEventBridgeRuleTemplateGroup(_ input: UpdateEventBridgeRuleTemplateGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateEventBridgeRuleTemplateGroupResponse { + return try await self.client.execute( + operation: "UpdateEventBridgeRuleTemplateGroup", + path: "/prod/eventbridge-rule-template-groups/{Identifier}", + httpMethod: .PATCH, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Updates an input. @Sendable public func updateInput(_ input: UpdateInputRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateInputResponse { @@ -979,6 +1330,82 @@ extension MediaLive { ) } + /// Lists cloudwatch alarm template groups. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listCloudWatchAlarmTemplateGroupsPaginator( + _ input: ListCloudWatchAlarmTemplateGroupsRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listCloudWatchAlarmTemplateGroups, + inputKey: \ListCloudWatchAlarmTemplateGroupsRequest.nextToken, + outputKey: \ListCloudWatchAlarmTemplateGroupsResponse.nextToken, + logger: logger + ) + } + + /// Lists cloudwatch alarm templates. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listCloudWatchAlarmTemplatesPaginator( + _ input: ListCloudWatchAlarmTemplatesRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listCloudWatchAlarmTemplates, + inputKey: \ListCloudWatchAlarmTemplatesRequest.nextToken, + outputKey: \ListCloudWatchAlarmTemplatesResponse.nextToken, + logger: logger + ) + } + + /// Lists eventbridge rule template groups. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listEventBridgeRuleTemplateGroupsPaginator( + _ input: ListEventBridgeRuleTemplateGroupsRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listEventBridgeRuleTemplateGroups, + inputKey: \ListEventBridgeRuleTemplateGroupsRequest.nextToken, + outputKey: \ListEventBridgeRuleTemplateGroupsResponse.nextToken, + logger: logger + ) + } + + /// Lists eventbridge rule templates. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listEventBridgeRuleTemplatesPaginator( + _ input: ListEventBridgeRuleTemplatesRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listEventBridgeRuleTemplates, + inputKey: \ListEventBridgeRuleTemplatesRequest.nextToken, + outputKey: \ListEventBridgeRuleTemplatesResponse.nextToken, + logger: logger + ) + } + /// List input devices that are currently being transferred. List input devices that you are transferring from your AWS account or input devices that another AWS account is transferring to you. /// Return PaginatorSequence for operation. /// @@ -1130,6 +1557,25 @@ extension MediaLive { logger: logger ) } + + /// Lists signal maps. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listSignalMapsPaginator( + _ input: ListSignalMapsRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listSignalMaps, + inputKey: \ListSignalMapsRequest.nextToken, + outputKey: \ListSignalMapsResponse.nextToken, + logger: logger + ) + } } extension MediaLive.DescribeScheduleRequest: AWSPaginateToken { @@ -1151,6 +1597,50 @@ extension MediaLive.ListChannelsRequest: AWSPaginateToken { } } +extension MediaLive.ListCloudWatchAlarmTemplateGroupsRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> MediaLive.ListCloudWatchAlarmTemplateGroupsRequest { + return .init( + maxResults: self.maxResults, + nextToken: token, + scope: self.scope, + signalMapIdentifier: self.signalMapIdentifier + ) + } +} + +extension MediaLive.ListCloudWatchAlarmTemplatesRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> MediaLive.ListCloudWatchAlarmTemplatesRequest { + return .init( + groupIdentifier: self.groupIdentifier, + maxResults: self.maxResults, + nextToken: token, + scope: self.scope, + signalMapIdentifier: self.signalMapIdentifier + ) + } +} + +extension MediaLive.ListEventBridgeRuleTemplateGroupsRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> MediaLive.ListEventBridgeRuleTemplateGroupsRequest { + return .init( + maxResults: self.maxResults, + nextToken: token, + signalMapIdentifier: self.signalMapIdentifier + ) + } +} + +extension MediaLive.ListEventBridgeRuleTemplatesRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> MediaLive.ListEventBridgeRuleTemplatesRequest { + return .init( + groupIdentifier: self.groupIdentifier, + maxResults: self.maxResults, + nextToken: token, + signalMapIdentifier: self.signalMapIdentifier + ) + } +} + extension MediaLive.ListInputDeviceTransfersRequest: AWSPaginateToken { public func usingPaginationToken(_ token: String) -> MediaLive.ListInputDeviceTransfersRequest { return .init( @@ -1243,6 +1733,17 @@ extension MediaLive.ListReservationsRequest: AWSPaginateToken { } } +extension MediaLive.ListSignalMapsRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> MediaLive.ListSignalMapsRequest { + return .init( + cloudWatchAlarmTemplateGroupIdentifier: self.cloudWatchAlarmTemplateGroupIdentifier, + eventBridgeRuleTemplateGroupIdentifier: self.eventBridgeRuleTemplateGroupIdentifier, + maxResults: self.maxResults, + nextToken: token + ) + } +} + // MARK: Waiters @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) @@ -1436,4 +1937,76 @@ extension MediaLive { ) return try await self.client.waitUntil(input, waiter: waiter, maxWaitTime: maxWaitTime, logger: logger) } + + public func waitUntilSignalMapCreated( + _ input: GetSignalMapRequest, + maxWaitTime: TimeAmount? = nil, + logger: Logger = AWSClient.loggingDisabled + ) async throws { + let waiter = AWSClient.Waiter( + acceptors: [ + .init(state: .success, matcher: try! JMESPathMatcher("status", expected: "CREATE_COMPLETE")), + .init(state: .retry, matcher: try! JMESPathMatcher("status", expected: "CREATE_IN_PROGRESS")), + .init(state: .failure, matcher: try! JMESPathMatcher("status", expected: "CREATE_FAILED")), + ], + minDelayTime: .seconds(5), + command: self.getSignalMap + ) + return try await self.client.waitUntil(input, waiter: waiter, maxWaitTime: maxWaitTime, logger: logger) + } + + public func waitUntilSignalMapMonitorDeleted( + _ input: GetSignalMapRequest, + maxWaitTime: TimeAmount? = nil, + logger: Logger = AWSClient.loggingDisabled + ) async throws { + let waiter = AWSClient.Waiter( + acceptors: [ + .init(state: .success, matcher: try! JMESPathMatcher("monitorDeployment.status", expected: "DELETE_COMPLETE")), + .init(state: .retry, matcher: try! JMESPathMatcher("monitorDeployment.status", expected: "DELETE_IN_PROGRESS")), + .init(state: .failure, matcher: try! JMESPathMatcher("monitorDeployment.status", expected: "DELETE_FAILED")), + ], + minDelayTime: .seconds(5), + command: self.getSignalMap + ) + return try await self.client.waitUntil(input, waiter: waiter, maxWaitTime: maxWaitTime, logger: logger) + } + + public func waitUntilSignalMapMonitorDeployed( + _ input: GetSignalMapRequest, + maxWaitTime: TimeAmount? = nil, + logger: Logger = AWSClient.loggingDisabled + ) async throws { + let waiter = AWSClient.Waiter( + acceptors: [ + .init(state: .success, matcher: try! JMESPathMatcher("monitorDeployment.status", expected: "DRY_RUN_DEPLOYMENT_COMPLETE")), + .init(state: .success, matcher: try! JMESPathMatcher("monitorDeployment.status", expected: "DEPLOYMENT_COMPLETE")), + .init(state: .retry, matcher: try! JMESPathMatcher("monitorDeployment.status", expected: "DRY_RUN_DEPLOYMENT_IN_PROGRESS")), + .init(state: .retry, matcher: try! JMESPathMatcher("monitorDeployment.status", expected: "DEPLOYMENT_IN_PROGRESS")), + .init(state: .failure, matcher: try! JMESPathMatcher("monitorDeployment.status", expected: "DRY_RUN_DEPLOYMENT_FAILED")), + .init(state: .failure, matcher: try! JMESPathMatcher("monitorDeployment.status", expected: "DEPLOYMENT_FAILED")), + ], + minDelayTime: .seconds(5), + command: self.getSignalMap + ) + return try await self.client.waitUntil(input, waiter: waiter, maxWaitTime: maxWaitTime, logger: logger) + } + + public func waitUntilSignalMapUpdated( + _ input: GetSignalMapRequest, + maxWaitTime: TimeAmount? = nil, + logger: Logger = AWSClient.loggingDisabled + ) async throws { + let waiter = AWSClient.Waiter( + acceptors: [ + .init(state: .success, matcher: try! JMESPathMatcher("status", expected: "UPDATE_COMPLETE")), + .init(state: .retry, matcher: try! JMESPathMatcher("status", expected: "UPDATE_IN_PROGRESS")), + .init(state: .failure, matcher: try! JMESPathMatcher("status", expected: "UPDATE_FAILED")), + .init(state: .failure, matcher: try! JMESPathMatcher("status", expected: "UPDATE_REVERTED")), + ], + minDelayTime: .seconds(5), + command: self.getSignalMap + ) + return try await self.client.waitUntil(input, waiter: waiter, maxWaitTime: maxWaitTime, logger: logger) + } } diff --git a/Sources/Soto/Services/MediaLive/MediaLive_shapes.swift b/Sources/Soto/Services/MediaLive/MediaLive_shapes.swift index 9bf6104834..0346573574 100644 --- a/Sources/Soto/Services/MediaLive/MediaLive_shapes.swift +++ b/Sources/Soto/Services/MediaLive/MediaLive_shapes.swift @@ -293,6 +293,43 @@ extension MediaLive { public var description: String { return self.rawValue } } + public enum CloudWatchAlarmTemplateComparisonOperator: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case greaterThanOrEqualToThreshold = "GreaterThanOrEqualToThreshold" + case greaterThanThreshold = "GreaterThanThreshold" + case lessThanOrEqualToThreshold = "LessThanOrEqualToThreshold" + case lessThanThreshold = "LessThanThreshold" + public var description: String { return self.rawValue } + } + + public enum CloudWatchAlarmTemplateStatistic: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case average = "Average" + case maximum = "Maximum" + case minimum = "Minimum" + case sampleCount = "SampleCount" + case sum = "Sum" + public var description: String { return self.rawValue } + } + + public enum CloudWatchAlarmTemplateTargetResourceType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case cloudfrontDistribution = "CLOUDFRONT_DISTRIBUTION" + case mediaconnectFlow = "MEDIACONNECT_FLOW" + case medialiveChannel = "MEDIALIVE_CHANNEL" + case medialiveInputDevice = "MEDIALIVE_INPUT_DEVICE" + case medialiveMultiplex = "MEDIALIVE_MULTIPLEX" + case mediapackageChannel = "MEDIAPACKAGE_CHANNEL" + case mediapackageOriginEndpoint = "MEDIAPACKAGE_ORIGIN_ENDPOINT" + case s3Bucket = "S3_BUCKET" + public var description: String { return self.rawValue } + } + + public enum CloudWatchAlarmTemplateTreatMissingData: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case breaching = "breaching" + case ignore = "ignore" + case missing = "missing" + case notBreaching = "notBreaching" + public var description: String { return self.rawValue } + } + public enum CmafIngestSegmentLengthUnits: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case milliseconds = "MILLISECONDS" case seconds = "SECONDS" @@ -601,6 +638,23 @@ extension MediaLive { public var description: String { return self.rawValue } } + public enum EventBridgeRuleTemplateEventType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case mediaconnectAlert = "MEDIACONNECT_ALERT" + case mediaconnectFlowStatusChange = "MEDIACONNECT_FLOW_STATUS_CHANGE" + case mediaconnectOutputHealth = "MEDIACONNECT_OUTPUT_HEALTH" + case mediaconnectSourceHealth = "MEDIACONNECT_SOURCE_HEALTH" + case medialiveChannelAlert = "MEDIALIVE_CHANNEL_ALERT" + case medialiveChannelInputChange = "MEDIALIVE_CHANNEL_INPUT_CHANGE" + case medialiveChannelStateChange = "MEDIALIVE_CHANNEL_STATE_CHANGE" + case medialiveMultiplexAlert = "MEDIALIVE_MULTIPLEX_ALERT" + case medialiveMultiplexStateChange = "MEDIALIVE_MULTIPLEX_STATE_CHANGE" + case mediapackageHarvestJobNotification = "MEDIAPACKAGE_HARVEST_JOB_NOTIFICATION" + case mediapackageInputNotification = "MEDIAPACKAGE_INPUT_NOTIFICATION" + case mediapackageKeyProviderNotification = "MEDIAPACKAGE_KEY_PROVIDER_NOTIFICATION" + case signalMapActiveAlarm = "SIGNAL_MAP_ACTIVE_ALARM" + public var description: String { return self.rawValue } + } + public enum FeatureActivationsInputPrepareScheduleActions: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case disabled = "DISABLED" case enabled = "ENABLED" @@ -1859,6 +1913,33 @@ extension MediaLive { public var description: String { return self.rawValue } } + public enum SignalMapMonitorDeploymentStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case deleteComplete = "DELETE_COMPLETE" + case deleteFailed = "DELETE_FAILED" + case deleteInProgress = "DELETE_IN_PROGRESS" + case deploymentComplete = "DEPLOYMENT_COMPLETE" + case deploymentFailed = "DEPLOYMENT_FAILED" + case deploymentInProgress = "DEPLOYMENT_IN_PROGRESS" + case dryRunDeploymentComplete = "DRY_RUN_DEPLOYMENT_COMPLETE" + case dryRunDeploymentFailed = "DRY_RUN_DEPLOYMENT_FAILED" + case dryRunDeploymentInProgress = "DRY_RUN_DEPLOYMENT_IN_PROGRESS" + case notDeployed = "NOT_DEPLOYED" + public var description: String { return self.rawValue } + } + + public enum SignalMapStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case createComplete = "CREATE_COMPLETE" + case createFailed = "CREATE_FAILED" + case createInProgress = "CREATE_IN_PROGRESS" + case notReady = "NOT_READY" + case ready = "READY" + case updateComplete = "UPDATE_COMPLETE" + case updateFailed = "UPDATE_FAILED" + case updateInProgress = "UPDATE_IN_PROGRESS" + case updateReverted = "UPDATE_REVERTED" + public var description: String { return self.rawValue } + } + public enum SmoothGroupAudioOnlyTimecodeControl: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case passthrough = "PASSTHROUGH" case useConfiguredClock = "USE_CONFIGURED_CLOCK" @@ -3605,6 +3686,118 @@ extension MediaLive { public init() {} } + public struct CloudWatchAlarmTemplateGroupSummary: AWSDecodableShape { + /// A cloudwatch alarm template group's ARN (Amazon Resource Name) + public let arn: String? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + /// A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-` + public let id: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let tags: [String: String]? + /// The number of templates in a group. + public let templateCount: Int? + + public init(arn: String? = nil, createdAt: Date? = nil, description: String? = nil, id: String? = nil, modifiedAt: Date? = nil, name: String? = nil, tags: [String: String]? = nil, templateCount: Int? = nil) { + self.arn = arn + self.createdAt = createdAt + self.description = description + self.id = id + self.modifiedAt = modifiedAt + self.name = name + self.tags = tags + self.templateCount = templateCount + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case createdAt = "createdAt" + case description = "description" + case id = "id" + case modifiedAt = "modifiedAt" + case name = "name" + case tags = "tags" + case templateCount = "templateCount" + } + } + + public struct CloudWatchAlarmTemplateSummary: AWSDecodableShape { + /// A cloudwatch alarm template's ARN (Amazon Resource Name) + public let arn: String? + public let comparisonOperator: CloudWatchAlarmTemplateComparisonOperator? + @OptionalCustomCoding + public var createdAt: Date? + /// The number of datapoints within the evaluation period that must be breaching to trigger the alarm. + public let datapointsToAlarm: Int? + /// A resource's optional description. + public let description: String? + /// The number of periods over which data is compared to the specified threshold. + public let evaluationPeriods: Int? + /// A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-` + public let groupId: String? + /// A cloudwatch alarm template's id. AWS provided templates have ids that start with `aws-` + public let id: String? + /// The name of the metric associated with the alarm. Must be compatible with targetResourceType. + public let metricName: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + /// The period, in seconds, over which the specified statistic is applied. + public let period: Int? + public let statistic: CloudWatchAlarmTemplateStatistic? + public let tags: [String: String]? + public let targetResourceType: CloudWatchAlarmTemplateTargetResourceType? + /// The threshold value to compare with the specified statistic. + public let threshold: Double? + public let treatMissingData: CloudWatchAlarmTemplateTreatMissingData? + + public init(arn: String? = nil, comparisonOperator: CloudWatchAlarmTemplateComparisonOperator? = nil, createdAt: Date? = nil, datapointsToAlarm: Int? = nil, description: String? = nil, evaluationPeriods: Int? = nil, groupId: String? = nil, id: String? = nil, metricName: String? = nil, modifiedAt: Date? = nil, name: String? = nil, period: Int? = nil, statistic: CloudWatchAlarmTemplateStatistic? = nil, tags: [String: String]? = nil, targetResourceType: CloudWatchAlarmTemplateTargetResourceType? = nil, threshold: Double? = nil, treatMissingData: CloudWatchAlarmTemplateTreatMissingData? = nil) { + self.arn = arn + self.comparisonOperator = comparisonOperator + self.createdAt = createdAt + self.datapointsToAlarm = datapointsToAlarm + self.description = description + self.evaluationPeriods = evaluationPeriods + self.groupId = groupId + self.id = id + self.metricName = metricName + self.modifiedAt = modifiedAt + self.name = name + self.period = period + self.statistic = statistic + self.tags = tags + self.targetResourceType = targetResourceType + self.threshold = threshold + self.treatMissingData = treatMissingData + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case comparisonOperator = "comparisonOperator" + case createdAt = "createdAt" + case datapointsToAlarm = "datapointsToAlarm" + case description = "description" + case evaluationPeriods = "evaluationPeriods" + case groupId = "groupId" + case id = "id" + case metricName = "metricName" + case modifiedAt = "modifiedAt" + case name = "name" + case period = "period" + case statistic = "statistic" + case tags = "tags" + case targetResourceType = "targetResourceType" + case threshold = "threshold" + case treatMissingData = "treatMissingData" + } + } + public struct CmafIngestGroupSettings: AWSEncodableShape & AWSDecodableShape { /// A HTTP destination for the tracks public let destination: OutputLocationRef? @@ -3800,6 +3993,360 @@ extension MediaLive { } } + public struct CreateCloudWatchAlarmTemplateGroupRequest: AWSEncodableShape { + /// A resource's optional description. + public let description: String? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let tags: [String: String]? + + public init(description: String? = nil, name: String? = nil, tags: [String: String]? = nil) { + self.description = description + self.name = name + self.tags = tags + } + + public func validate(name: String) throws { + try self.validate(self.description, name: "description", parent: name, max: 1024) + try self.validate(self.name, name: "name", parent: name, max: 255) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[^\\s]+$") + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case name = "name" + case tags = "tags" + } + } + + public struct CreateCloudWatchAlarmTemplateGroupResponse: AWSDecodableShape { + /// A cloudwatch alarm template group's ARN (Amazon Resource Name) + public let arn: String? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + /// A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-` + public let id: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let tags: [String: String]? + + public init(arn: String? = nil, createdAt: Date? = nil, description: String? = nil, id: String? = nil, modifiedAt: Date? = nil, name: String? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.createdAt = createdAt + self.description = description + self.id = id + self.modifiedAt = modifiedAt + self.name = name + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case createdAt = "createdAt" + case description = "description" + case id = "id" + case modifiedAt = "modifiedAt" + case name = "name" + case tags = "tags" + } + } + + public struct CreateCloudWatchAlarmTemplateRequest: AWSEncodableShape { + public let comparisonOperator: CloudWatchAlarmTemplateComparisonOperator? + /// The number of datapoints within the evaluation period that must be breaching to trigger the alarm. + public let datapointsToAlarm: Int? + /// A resource's optional description. + public let description: String? + /// The number of periods over which data is compared to the specified threshold. + public let evaluationPeriods: Int? + /// A cloudwatch alarm template group's identifier. Can be either be its id or current name. + public let groupIdentifier: String? + /// The name of the metric associated with the alarm. Must be compatible with targetResourceType. + public let metricName: String? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + /// The period, in seconds, over which the specified statistic is applied. + public let period: Int? + public let statistic: CloudWatchAlarmTemplateStatistic? + public let tags: [String: String]? + public let targetResourceType: CloudWatchAlarmTemplateTargetResourceType? + /// The threshold value to compare with the specified statistic. + public let threshold: Double? + public let treatMissingData: CloudWatchAlarmTemplateTreatMissingData? + + public init(comparisonOperator: CloudWatchAlarmTemplateComparisonOperator? = nil, datapointsToAlarm: Int? = nil, description: String? = nil, evaluationPeriods: Int? = nil, groupIdentifier: String? = nil, metricName: String? = nil, name: String? = nil, period: Int? = nil, statistic: CloudWatchAlarmTemplateStatistic? = nil, tags: [String: String]? = nil, targetResourceType: CloudWatchAlarmTemplateTargetResourceType? = nil, threshold: Double? = nil, treatMissingData: CloudWatchAlarmTemplateTreatMissingData? = nil) { + self.comparisonOperator = comparisonOperator + self.datapointsToAlarm = datapointsToAlarm + self.description = description + self.evaluationPeriods = evaluationPeriods + self.groupIdentifier = groupIdentifier + self.metricName = metricName + self.name = name + self.period = period + self.statistic = statistic + self.tags = tags + self.targetResourceType = targetResourceType + self.threshold = threshold + self.treatMissingData = treatMissingData + } + + public func validate(name: String) throws { + try self.validate(self.datapointsToAlarm, name: "datapointsToAlarm", parent: name, min: 1) + try self.validate(self.description, name: "description", parent: name, max: 1024) + try self.validate(self.evaluationPeriods, name: "evaluationPeriods", parent: name, min: 1) + try self.validate(self.groupIdentifier, name: "groupIdentifier", parent: name, pattern: "^[^\\s]+$") + try self.validate(self.metricName, name: "metricName", parent: name, max: 64) + try self.validate(self.name, name: "name", parent: name, max: 255) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[^\\s]+$") + try self.validate(self.period, name: "period", parent: name, max: 86400) + try self.validate(self.period, name: "period", parent: name, min: 10) + } + + private enum CodingKeys: String, CodingKey { + case comparisonOperator = "comparisonOperator" + case datapointsToAlarm = "datapointsToAlarm" + case description = "description" + case evaluationPeriods = "evaluationPeriods" + case groupIdentifier = "groupIdentifier" + case metricName = "metricName" + case name = "name" + case period = "period" + case statistic = "statistic" + case tags = "tags" + case targetResourceType = "targetResourceType" + case threshold = "threshold" + case treatMissingData = "treatMissingData" + } + } + + public struct CreateCloudWatchAlarmTemplateResponse: AWSDecodableShape { + /// A cloudwatch alarm template's ARN (Amazon Resource Name) + public let arn: String? + public let comparisonOperator: CloudWatchAlarmTemplateComparisonOperator? + @OptionalCustomCoding + public var createdAt: Date? + /// The number of datapoints within the evaluation period that must be breaching to trigger the alarm. + public let datapointsToAlarm: Int? + /// A resource's optional description. + public let description: String? + /// The number of periods over which data is compared to the specified threshold. + public let evaluationPeriods: Int? + /// A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-` + public let groupId: String? + /// A cloudwatch alarm template's id. AWS provided templates have ids that start with `aws-` + public let id: String? + /// The name of the metric associated with the alarm. Must be compatible with targetResourceType. + public let metricName: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + /// The period, in seconds, over which the specified statistic is applied. + public let period: Int? + public let statistic: CloudWatchAlarmTemplateStatistic? + public let tags: [String: String]? + public let targetResourceType: CloudWatchAlarmTemplateTargetResourceType? + /// The threshold value to compare with the specified statistic. + public let threshold: Double? + public let treatMissingData: CloudWatchAlarmTemplateTreatMissingData? + + public init(arn: String? = nil, comparisonOperator: CloudWatchAlarmTemplateComparisonOperator? = nil, createdAt: Date? = nil, datapointsToAlarm: Int? = nil, description: String? = nil, evaluationPeriods: Int? = nil, groupId: String? = nil, id: String? = nil, metricName: String? = nil, modifiedAt: Date? = nil, name: String? = nil, period: Int? = nil, statistic: CloudWatchAlarmTemplateStatistic? = nil, tags: [String: String]? = nil, targetResourceType: CloudWatchAlarmTemplateTargetResourceType? = nil, threshold: Double? = nil, treatMissingData: CloudWatchAlarmTemplateTreatMissingData? = nil) { + self.arn = arn + self.comparisonOperator = comparisonOperator + self.createdAt = createdAt + self.datapointsToAlarm = datapointsToAlarm + self.description = description + self.evaluationPeriods = evaluationPeriods + self.groupId = groupId + self.id = id + self.metricName = metricName + self.modifiedAt = modifiedAt + self.name = name + self.period = period + self.statistic = statistic + self.tags = tags + self.targetResourceType = targetResourceType + self.threshold = threshold + self.treatMissingData = treatMissingData + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case comparisonOperator = "comparisonOperator" + case createdAt = "createdAt" + case datapointsToAlarm = "datapointsToAlarm" + case description = "description" + case evaluationPeriods = "evaluationPeriods" + case groupId = "groupId" + case id = "id" + case metricName = "metricName" + case modifiedAt = "modifiedAt" + case name = "name" + case period = "period" + case statistic = "statistic" + case tags = "tags" + case targetResourceType = "targetResourceType" + case threshold = "threshold" + case treatMissingData = "treatMissingData" + } + } + + public struct CreateEventBridgeRuleTemplateGroupRequest: AWSEncodableShape { + /// A resource's optional description. + public let description: String? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let tags: [String: String]? + + public init(description: String? = nil, name: String? = nil, tags: [String: String]? = nil) { + self.description = description + self.name = name + self.tags = tags + } + + public func validate(name: String) throws { + try self.validate(self.description, name: "description", parent: name, max: 1024) + try self.validate(self.name, name: "name", parent: name, max: 255) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[^\\s]+$") + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case name = "name" + case tags = "tags" + } + } + + public struct CreateEventBridgeRuleTemplateGroupResponse: AWSDecodableShape { + /// An eventbridge rule template group's ARN (Amazon Resource Name) + public let arn: String? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + /// An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-` + public let id: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let tags: [String: String]? + + public init(arn: String? = nil, createdAt: Date? = nil, description: String? = nil, id: String? = nil, modifiedAt: Date? = nil, name: String? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.createdAt = createdAt + self.description = description + self.id = id + self.modifiedAt = modifiedAt + self.name = name + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case createdAt = "createdAt" + case description = "description" + case id = "id" + case modifiedAt = "modifiedAt" + case name = "name" + case tags = "tags" + } + } + + public struct CreateEventBridgeRuleTemplateRequest: AWSEncodableShape { + /// A resource's optional description. + public let description: String? + public let eventTargets: [EventBridgeRuleTemplateTarget]? + public let eventType: EventBridgeRuleTemplateEventType? + /// An eventbridge rule template group's identifier. Can be either be its id or current name. + public let groupIdentifier: String? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let tags: [String: String]? + + public init(description: String? = nil, eventTargets: [EventBridgeRuleTemplateTarget]? = nil, eventType: EventBridgeRuleTemplateEventType? = nil, groupIdentifier: String? = nil, name: String? = nil, tags: [String: String]? = nil) { + self.description = description + self.eventTargets = eventTargets + self.eventType = eventType + self.groupIdentifier = groupIdentifier + self.name = name + self.tags = tags + } + + public func validate(name: String) throws { + try self.validate(self.description, name: "description", parent: name, max: 1024) + try self.eventTargets?.forEach { + try $0.validate(name: "\(name).eventTargets[]") + } + try self.validate(self.groupIdentifier, name: "groupIdentifier", parent: name, pattern: "^[^\\s]+$") + try self.validate(self.name, name: "name", parent: name, max: 255) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[^\\s]+$") + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case eventTargets = "eventTargets" + case eventType = "eventType" + case groupIdentifier = "groupIdentifier" + case name = "name" + case tags = "tags" + } + } + + public struct CreateEventBridgeRuleTemplateResponse: AWSDecodableShape { + /// An eventbridge rule template's ARN (Amazon Resource Name) + public let arn: String? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + public let eventTargets: [EventBridgeRuleTemplateTarget]? + public let eventType: EventBridgeRuleTemplateEventType? + /// An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-` + public let groupId: String? + /// An eventbridge rule template's id. AWS provided templates have ids that start with `aws-` + public let id: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let tags: [String: String]? + + public init(arn: String? = nil, createdAt: Date? = nil, description: String? = nil, eventTargets: [EventBridgeRuleTemplateTarget]? = nil, eventType: EventBridgeRuleTemplateEventType? = nil, groupId: String? = nil, id: String? = nil, modifiedAt: Date? = nil, name: String? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.createdAt = createdAt + self.description = description + self.eventTargets = eventTargets + self.eventType = eventType + self.groupId = groupId + self.id = id + self.modifiedAt = modifiedAt + self.name = name + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case createdAt = "createdAt" + case description = "description" + case eventTargets = "eventTargets" + case eventType = "eventType" + case groupId = "groupId" + case id = "id" + case modifiedAt = "modifiedAt" + case name = "name" + case tags = "tags" + } + } + public struct CreateInputRequest: AWSEncodableShape { /// Destination settings for PUSH type inputs. public let destinations: [InputDestinationRequest]? @@ -4036,35 +4583,153 @@ extension MediaLive { } } - public struct CreateTagsRequest: AWSEncodableShape { - public let resourceArn: String + public struct CreateSignalMapRequest: AWSEncodableShape { + public let cloudWatchAlarmTemplateGroupIdentifiers: [String]? + /// A resource's optional description. + public let description: String? + /// A top-level supported AWS resource ARN to discovery a signal map from. + public let discoveryEntryPointArn: String? + public let eventBridgeRuleTemplateGroupIdentifiers: [String]? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? public let tags: [String: String]? - public init(resourceArn: String, tags: [String: String]? = nil) { - self.resourceArn = resourceArn + public init(cloudWatchAlarmTemplateGroupIdentifiers: [String]? = nil, description: String? = nil, discoveryEntryPointArn: String? = nil, eventBridgeRuleTemplateGroupIdentifiers: [String]? = nil, name: String? = nil, tags: [String: String]? = nil) { + self.cloudWatchAlarmTemplateGroupIdentifiers = cloudWatchAlarmTemplateGroupIdentifiers + self.description = description + self.discoveryEntryPointArn = discoveryEntryPointArn + self.eventBridgeRuleTemplateGroupIdentifiers = eventBridgeRuleTemplateGroupIdentifiers + self.name = name self.tags = tags } - public func encode(to encoder: Encoder) throws { - let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer - var container = encoder.container(keyedBy: CodingKeys.self) - request.encodePath(self.resourceArn, key: "ResourceArn") - try container.encodeIfPresent(self.tags, forKey: .tags) + public func validate(name: String) throws { + try self.cloudWatchAlarmTemplateGroupIdentifiers?.forEach { + try validate($0, name: "cloudWatchAlarmTemplateGroupIdentifiers[]", parent: name, pattern: "^[^\\s]+$") + } + try self.validate(self.description, name: "description", parent: name, max: 1024) + try self.validate(self.discoveryEntryPointArn, name: "discoveryEntryPointArn", parent: name, max: 2048) + try self.validate(self.discoveryEntryPointArn, name: "discoveryEntryPointArn", parent: name, min: 1) + try self.eventBridgeRuleTemplateGroupIdentifiers?.forEach { + try validate($0, name: "eventBridgeRuleTemplateGroupIdentifiers[]", parent: name, pattern: "^[^\\s]+$") + } + try self.validate(self.name, name: "name", parent: name, max: 255) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[^\\s]+$") } private enum CodingKeys: String, CodingKey { + case cloudWatchAlarmTemplateGroupIdentifiers = "cloudWatchAlarmTemplateGroupIdentifiers" + case description = "description" + case discoveryEntryPointArn = "discoveryEntryPointArn" + case eventBridgeRuleTemplateGroupIdentifiers = "eventBridgeRuleTemplateGroupIdentifiers" + case name = "name" case tags = "tags" } } - public struct DeleteChannelRequest: AWSEncodableShape { - /// Unique ID of the channel. - public let channelId: String - - public init(channelId: String) { - self.channelId = channelId - } - + public struct CreateSignalMapResponse: AWSDecodableShape { + /// A signal map's ARN (Amazon Resource Name) + public let arn: String? + public let cloudWatchAlarmTemplateGroupIds: [String]? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + /// A top-level supported AWS resource ARN to discovery a signal map from. + public let discoveryEntryPointArn: String? + /// Error message associated with a failed creation or failed update attempt of a signal map. + public let errorMessage: String? + public let eventBridgeRuleTemplateGroupIds: [String]? + public let failedMediaResourceMap: [String: MediaResource]? + /// A signal map's id. + public let id: String? + @OptionalCustomCoding + public var lastDiscoveredAt: Date? + public let lastSuccessfulMonitorDeployment: SuccessfulMonitorDeployment? + public let mediaResourceMap: [String: MediaResource]? + @OptionalCustomCoding + public var modifiedAt: Date? + /// If true, there are pending monitor changes for this signal map that can be deployed. + public let monitorChangesPendingDeployment: Bool? + public let monitorDeployment: MonitorDeployment? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let status: SignalMapStatus? + public let tags: [String: String]? + + public init(arn: String? = nil, cloudWatchAlarmTemplateGroupIds: [String]? = nil, createdAt: Date? = nil, description: String? = nil, discoveryEntryPointArn: String? = nil, errorMessage: String? = nil, eventBridgeRuleTemplateGroupIds: [String]? = nil, failedMediaResourceMap: [String: MediaResource]? = nil, id: String? = nil, lastDiscoveredAt: Date? = nil, lastSuccessfulMonitorDeployment: SuccessfulMonitorDeployment? = nil, mediaResourceMap: [String: MediaResource]? = nil, modifiedAt: Date? = nil, monitorChangesPendingDeployment: Bool? = nil, monitorDeployment: MonitorDeployment? = nil, name: String? = nil, status: SignalMapStatus? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.cloudWatchAlarmTemplateGroupIds = cloudWatchAlarmTemplateGroupIds + self.createdAt = createdAt + self.description = description + self.discoveryEntryPointArn = discoveryEntryPointArn + self.errorMessage = errorMessage + self.eventBridgeRuleTemplateGroupIds = eventBridgeRuleTemplateGroupIds + self.failedMediaResourceMap = failedMediaResourceMap + self.id = id + self.lastDiscoveredAt = lastDiscoveredAt + self.lastSuccessfulMonitorDeployment = lastSuccessfulMonitorDeployment + self.mediaResourceMap = mediaResourceMap + self.modifiedAt = modifiedAt + self.monitorChangesPendingDeployment = monitorChangesPendingDeployment + self.monitorDeployment = monitorDeployment + self.name = name + self.status = status + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case cloudWatchAlarmTemplateGroupIds = "cloudWatchAlarmTemplateGroupIds" + case createdAt = "createdAt" + case description = "description" + case discoveryEntryPointArn = "discoveryEntryPointArn" + case errorMessage = "errorMessage" + case eventBridgeRuleTemplateGroupIds = "eventBridgeRuleTemplateGroupIds" + case failedMediaResourceMap = "failedMediaResourceMap" + case id = "id" + case lastDiscoveredAt = "lastDiscoveredAt" + case lastSuccessfulMonitorDeployment = "lastSuccessfulMonitorDeployment" + case mediaResourceMap = "mediaResourceMap" + case modifiedAt = "modifiedAt" + case monitorChangesPendingDeployment = "monitorChangesPendingDeployment" + case monitorDeployment = "monitorDeployment" + case name = "name" + case status = "status" + case tags = "tags" + } + } + + public struct CreateTagsRequest: AWSEncodableShape { + public let resourceArn: String + public let tags: [String: String]? + + public init(resourceArn: String, tags: [String: String]? = nil) { + self.resourceArn = resourceArn + self.tags = tags + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.resourceArn, key: "ResourceArn") + try container.encodeIfPresent(self.tags, forKey: .tags) + } + + private enum CodingKeys: String, CodingKey { + case tags = "tags" + } + } + + public struct DeleteChannelRequest: AWSEncodableShape { + /// Unique ID of the channel. + public let channelId: String + + public init(channelId: String) { + self.channelId = channelId + } + public func encode(to encoder: Encoder) throws { let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer _ = encoder.container(keyedBy: CodingKeys.self) @@ -4155,6 +4820,74 @@ extension MediaLive { } } + public struct DeleteCloudWatchAlarmTemplateGroupRequest: AWSEncodableShape { + /// A cloudwatch alarm template group's identifier. Can be either be its id or current name. + public let identifier: String + + public init(identifier: String) { + self.identifier = identifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.identifier, key: "Identifier") + } + + private enum CodingKeys: CodingKey {} + } + + public struct DeleteCloudWatchAlarmTemplateRequest: AWSEncodableShape { + /// A cloudwatch alarm template's identifier. Can be either be its id or current name. + public let identifier: String + + public init(identifier: String) { + self.identifier = identifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.identifier, key: "Identifier") + } + + private enum CodingKeys: CodingKey {} + } + + public struct DeleteEventBridgeRuleTemplateGroupRequest: AWSEncodableShape { + /// An eventbridge rule template group's identifier. Can be either be its id or current name. + public let identifier: String + + public init(identifier: String) { + self.identifier = identifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.identifier, key: "Identifier") + } + + private enum CodingKeys: CodingKey {} + } + + public struct DeleteEventBridgeRuleTemplateRequest: AWSEncodableShape { + /// An eventbridge rule template's identifier. Can be either be its id or current name. + public let identifier: String + + public init(identifier: String) { + self.identifier = identifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.identifier, key: "Identifier") + } + + private enum CodingKeys: CodingKey {} + } + public struct DeleteInputRequest: AWSEncodableShape { /// Unique ID of the input public let inputId: String @@ -4436,6 +5169,23 @@ extension MediaLive { public init() {} } + public struct DeleteSignalMapRequest: AWSEncodableShape { + /// A signal map's identifier. Can be either be its id or current name. + public let identifier: String + + public init(identifier: String) { + self.identifier = identifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.identifier, key: "Identifier") + } + + private enum CodingKeys: CodingKey {} + } + public struct DeleteTagsRequest: AWSEncodableShape { public let resourceArn: String /// An array of tag keys to delete @@ -5780,6 +6530,112 @@ extension MediaLive { } } + public struct EventBridgeRuleTemplateGroupSummary: AWSDecodableShape { + /// An eventbridge rule template group's ARN (Amazon Resource Name) + public let arn: String? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + /// An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-` + public let id: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let tags: [String: String]? + /// The number of templates in a group. + public let templateCount: Int? + + public init(arn: String? = nil, createdAt: Date? = nil, description: String? = nil, id: String? = nil, modifiedAt: Date? = nil, name: String? = nil, tags: [String: String]? = nil, templateCount: Int? = nil) { + self.arn = arn + self.createdAt = createdAt + self.description = description + self.id = id + self.modifiedAt = modifiedAt + self.name = name + self.tags = tags + self.templateCount = templateCount + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case createdAt = "createdAt" + case description = "description" + case id = "id" + case modifiedAt = "modifiedAt" + case name = "name" + case tags = "tags" + case templateCount = "templateCount" + } + } + + public struct EventBridgeRuleTemplateSummary: AWSDecodableShape { + /// An eventbridge rule template's ARN (Amazon Resource Name) + public let arn: String? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + /// The number of targets configured to send matching events. + public let eventTargetCount: Int? + public let eventType: EventBridgeRuleTemplateEventType? + /// An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-` + public let groupId: String? + /// An eventbridge rule template's id. AWS provided templates have ids that start with `aws-` + public let id: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let tags: [String: String]? + + public init(arn: String? = nil, createdAt: Date? = nil, description: String? = nil, eventTargetCount: Int? = nil, eventType: EventBridgeRuleTemplateEventType? = nil, groupId: String? = nil, id: String? = nil, modifiedAt: Date? = nil, name: String? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.createdAt = createdAt + self.description = description + self.eventTargetCount = eventTargetCount + self.eventType = eventType + self.groupId = groupId + self.id = id + self.modifiedAt = modifiedAt + self.name = name + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case createdAt = "createdAt" + case description = "description" + case eventTargetCount = "eventTargetCount" + case eventType = "eventType" + case groupId = "groupId" + case id = "id" + case modifiedAt = "modifiedAt" + case name = "name" + case tags = "tags" + } + } + + public struct EventBridgeRuleTemplateTarget: AWSEncodableShape & AWSDecodableShape { + /// Target ARNs must be either an SNS topic or CloudWatch log group. + public let arn: String? + + public init(arn: String? = nil) { + self.arn = arn + } + + public func validate(name: String) throws { + try self.validate(self.arn, name: "arn", parent: name, max: 2048) + try self.validate(self.arn, name: "arn", parent: name, min: 1) + try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn.+$") + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + } + } + public struct FailoverCondition: AWSEncodableShape & AWSDecodableShape { /// Failover condition type-specific settings. public let failoverConditionSettings: FailoverConditionSettings? @@ -6008,95 +6864,443 @@ extension MediaLive { } } - public struct GlobalConfiguration: AWSEncodableShape & AWSDecodableShape { - /// Value to set the initial audio gain for the Live Event. - public let initialAudioGain: Int? - /// Indicates the action to take when the current input completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the beginning of the first input. When "none" is configured the encoder will transcode either black, a solid color, or a user specified slate images per the "Input Loss Behavior" configuration until the next input switch occurs (which is controlled through the Channel Schedule API). - public let inputEndAction: GlobalConfigurationInputEndAction? - /// Settings for system actions when input is lost. - public let inputLossBehavior: InputLossBehavior? - /// Indicates how MediaLive pipelines are synchronized. - /// PIPELINE_LOCKING - MediaLive will attempt to synchronize the output of each pipeline to the other. - /// EPOCH_LOCKING - MediaLive will attempt to synchronize the output of each pipeline to the Unix epoch. - public let outputLockingMode: GlobalConfigurationOutputLockingMode? - /// Advanced output locking settings - public let outputLockingSettings: OutputLockingSettings? - /// 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? - /// 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? + public struct GetCloudWatchAlarmTemplateGroupRequest: AWSEncodableShape { + /// A cloudwatch alarm template group's identifier. Can be either be its id or current name. + public let identifier: String - public init(initialAudioGain: Int? = nil, inputEndAction: GlobalConfigurationInputEndAction? = nil, inputLossBehavior: InputLossBehavior? = nil, outputLockingMode: GlobalConfigurationOutputLockingMode? = nil, outputLockingSettings: OutputLockingSettings? = nil, outputTimingSource: GlobalConfigurationOutputTimingSource? = nil, supportLowFramerateInputs: GlobalConfigurationLowFramerateInputs? = nil) { - self.initialAudioGain = initialAudioGain - self.inputEndAction = inputEndAction - self.inputLossBehavior = inputLossBehavior - self.outputLockingMode = outputLockingMode - self.outputLockingSettings = outputLockingSettings - self.outputTimingSource = outputTimingSource - self.supportLowFramerateInputs = supportLowFramerateInputs + public init(identifier: String) { + self.identifier = identifier } - public func validate(name: String) throws { - try self.validate(self.initialAudioGain, name: "initialAudioGain", parent: name, max: 60) - try self.validate(self.initialAudioGain, name: "initialAudioGain", parent: name, min: -60) - try self.inputLossBehavior?.validate(name: "\(name).inputLossBehavior") + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.identifier, key: "Identifier") } - private enum CodingKeys: String, CodingKey { - case initialAudioGain = "initialAudioGain" - case inputEndAction = "inputEndAction" - case inputLossBehavior = "inputLossBehavior" - case outputLockingMode = "outputLockingMode" - case outputLockingSettings = "outputLockingSettings" - case outputTimingSource = "outputTimingSource" - case supportLowFramerateInputs = "supportLowFramerateInputs" - } + private enum CodingKeys: CodingKey {} } - public struct H264ColorSpaceSettings: AWSEncodableShape & AWSDecodableShape { - public let colorSpacePassthroughSettings: ColorSpacePassthroughSettings? - public let rec601Settings: Rec601Settings? - public let rec709Settings: Rec709Settings? + public struct GetCloudWatchAlarmTemplateGroupResponse: AWSDecodableShape { + /// A cloudwatch alarm template group's ARN (Amazon Resource Name) + public let arn: String? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + /// A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-` + public let id: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let tags: [String: String]? - public init(colorSpacePassthroughSettings: ColorSpacePassthroughSettings? = nil, rec601Settings: Rec601Settings? = nil, rec709Settings: Rec709Settings? = nil) { - self.colorSpacePassthroughSettings = colorSpacePassthroughSettings - self.rec601Settings = rec601Settings - self.rec709Settings = rec709Settings + public init(arn: String? = nil, createdAt: Date? = nil, description: String? = nil, id: String? = nil, modifiedAt: Date? = nil, name: String? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.createdAt = createdAt + self.description = description + self.id = id + self.modifiedAt = modifiedAt + self.name = name + self.tags = tags } private enum CodingKeys: String, CodingKey { - case colorSpacePassthroughSettings = "colorSpacePassthroughSettings" - case rec601Settings = "rec601Settings" - case rec709Settings = "rec709Settings" + case arn = "arn" + case createdAt = "createdAt" + case description = "description" + case id = "id" + case modifiedAt = "modifiedAt" + case name = "name" + case tags = "tags" } } - public struct H264FilterSettings: AWSEncodableShape & AWSDecodableShape { - public let temporalFilterSettings: TemporalFilterSettings? + public struct GetCloudWatchAlarmTemplateRequest: AWSEncodableShape { + /// A cloudwatch alarm template's identifier. Can be either be its id or current name. + public let identifier: String - public init(temporalFilterSettings: TemporalFilterSettings? = nil) { - self.temporalFilterSettings = temporalFilterSettings + public init(identifier: String) { + self.identifier = identifier } - private enum CodingKeys: String, CodingKey { - case temporalFilterSettings = "temporalFilterSettings" + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.identifier, key: "Identifier") } + + private enum CodingKeys: CodingKey {} } - public struct H264Settings: AWSEncodableShape & AWSDecodableShape { - /// Enables or disables adaptive quantization, which is a technique MediaLive can apply to video on a frame-by-frame basis to produce more compression without losing quality. There are three types of adaptive quantization: flicker, spatial, and temporal. Set the field in one of these ways: Set to Auto. Recommended. For each type of AQ, MediaLive will determine if AQ is needed, and if so, the appropriate strength. Set a strength (a value other than Auto or Disable). This strength will apply to any of the AQ fields that you choose to enable. Set to Disabled to disable all types of adaptive quantization. - public let adaptiveQuantization: H264AdaptiveQuantization? - /// 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? - /// Average bitrate in bits/second. Required when the rate control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique value when its bitrate is rounded down to the nearest multiple of 1000. - public let bitrate: Int? - /// Percentage of the buffer that should initially be filled (HRD buffer model). - public let bufFillPct: Int? - /// Size of buffer (HRD buffer model) in bits. - public let bufSize: Int? - /// Includes colorspace metadata in the output. - public let colorMetadata: H264ColorMetadata? - /// Color Space settings + public struct GetCloudWatchAlarmTemplateResponse: AWSDecodableShape { + /// A cloudwatch alarm template's ARN (Amazon Resource Name) + public let arn: String? + public let comparisonOperator: CloudWatchAlarmTemplateComparisonOperator? + @OptionalCustomCoding + public var createdAt: Date? + /// The number of datapoints within the evaluation period that must be breaching to trigger the alarm. + public let datapointsToAlarm: Int? + /// A resource's optional description. + public let description: String? + /// The number of periods over which data is compared to the specified threshold. + public let evaluationPeriods: Int? + /// A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-` + public let groupId: String? + /// A cloudwatch alarm template's id. AWS provided templates have ids that start with `aws-` + public let id: String? + /// The name of the metric associated with the alarm. Must be compatible with targetResourceType. + public let metricName: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + /// The period, in seconds, over which the specified statistic is applied. + public let period: Int? + public let statistic: CloudWatchAlarmTemplateStatistic? + public let tags: [String: String]? + public let targetResourceType: CloudWatchAlarmTemplateTargetResourceType? + /// The threshold value to compare with the specified statistic. + public let threshold: Double? + public let treatMissingData: CloudWatchAlarmTemplateTreatMissingData? + + public init(arn: String? = nil, comparisonOperator: CloudWatchAlarmTemplateComparisonOperator? = nil, createdAt: Date? = nil, datapointsToAlarm: Int? = nil, description: String? = nil, evaluationPeriods: Int? = nil, groupId: String? = nil, id: String? = nil, metricName: String? = nil, modifiedAt: Date? = nil, name: String? = nil, period: Int? = nil, statistic: CloudWatchAlarmTemplateStatistic? = nil, tags: [String: String]? = nil, targetResourceType: CloudWatchAlarmTemplateTargetResourceType? = nil, threshold: Double? = nil, treatMissingData: CloudWatchAlarmTemplateTreatMissingData? = nil) { + self.arn = arn + self.comparisonOperator = comparisonOperator + self.createdAt = createdAt + self.datapointsToAlarm = datapointsToAlarm + self.description = description + self.evaluationPeriods = evaluationPeriods + self.groupId = groupId + self.id = id + self.metricName = metricName + self.modifiedAt = modifiedAt + self.name = name + self.period = period + self.statistic = statistic + self.tags = tags + self.targetResourceType = targetResourceType + self.threshold = threshold + self.treatMissingData = treatMissingData + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case comparisonOperator = "comparisonOperator" + case createdAt = "createdAt" + case datapointsToAlarm = "datapointsToAlarm" + case description = "description" + case evaluationPeriods = "evaluationPeriods" + case groupId = "groupId" + case id = "id" + case metricName = "metricName" + case modifiedAt = "modifiedAt" + case name = "name" + case period = "period" + case statistic = "statistic" + case tags = "tags" + case targetResourceType = "targetResourceType" + case threshold = "threshold" + case treatMissingData = "treatMissingData" + } + } + + public struct GetEventBridgeRuleTemplateGroupRequest: AWSEncodableShape { + /// An eventbridge rule template group's identifier. Can be either be its id or current name. + public let identifier: String + + public init(identifier: String) { + self.identifier = identifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.identifier, key: "Identifier") + } + + private enum CodingKeys: CodingKey {} + } + + public struct GetEventBridgeRuleTemplateGroupResponse: AWSDecodableShape { + /// An eventbridge rule template group's ARN (Amazon Resource Name) + public let arn: String? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + /// An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-` + public let id: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let tags: [String: String]? + + public init(arn: String? = nil, createdAt: Date? = nil, description: String? = nil, id: String? = nil, modifiedAt: Date? = nil, name: String? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.createdAt = createdAt + self.description = description + self.id = id + self.modifiedAt = modifiedAt + self.name = name + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case createdAt = "createdAt" + case description = "description" + case id = "id" + case modifiedAt = "modifiedAt" + case name = "name" + case tags = "tags" + } + } + + public struct GetEventBridgeRuleTemplateRequest: AWSEncodableShape { + /// An eventbridge rule template's identifier. Can be either be its id or current name. + public let identifier: String + + public init(identifier: String) { + self.identifier = identifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.identifier, key: "Identifier") + } + + private enum CodingKeys: CodingKey {} + } + + public struct GetEventBridgeRuleTemplateResponse: AWSDecodableShape { + /// An eventbridge rule template's ARN (Amazon Resource Name) + public let arn: String? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + public let eventTargets: [EventBridgeRuleTemplateTarget]? + public let eventType: EventBridgeRuleTemplateEventType? + /// An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-` + public let groupId: String? + /// An eventbridge rule template's id. AWS provided templates have ids that start with `aws-` + public let id: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let tags: [String: String]? + + public init(arn: String? = nil, createdAt: Date? = nil, description: String? = nil, eventTargets: [EventBridgeRuleTemplateTarget]? = nil, eventType: EventBridgeRuleTemplateEventType? = nil, groupId: String? = nil, id: String? = nil, modifiedAt: Date? = nil, name: String? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.createdAt = createdAt + self.description = description + self.eventTargets = eventTargets + self.eventType = eventType + self.groupId = groupId + self.id = id + self.modifiedAt = modifiedAt + self.name = name + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case createdAt = "createdAt" + case description = "description" + case eventTargets = "eventTargets" + case eventType = "eventType" + case groupId = "groupId" + case id = "id" + case modifiedAt = "modifiedAt" + case name = "name" + case tags = "tags" + } + } + + public struct GetSignalMapRequest: AWSEncodableShape { + /// A signal map's identifier. Can be either be its id or current name. + public let identifier: String + + public init(identifier: String) { + self.identifier = identifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.identifier, key: "Identifier") + } + + private enum CodingKeys: CodingKey {} + } + + public struct GetSignalMapResponse: AWSDecodableShape { + /// A signal map's ARN (Amazon Resource Name) + public let arn: String? + public let cloudWatchAlarmTemplateGroupIds: [String]? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + /// A top-level supported AWS resource ARN to discovery a signal map from. + public let discoveryEntryPointArn: String? + /// Error message associated with a failed creation or failed update attempt of a signal map. + public let errorMessage: String? + public let eventBridgeRuleTemplateGroupIds: [String]? + public let failedMediaResourceMap: [String: MediaResource]? + /// A signal map's id. + public let id: String? + @OptionalCustomCoding + public var lastDiscoveredAt: Date? + public let lastSuccessfulMonitorDeployment: SuccessfulMonitorDeployment? + public let mediaResourceMap: [String: MediaResource]? + @OptionalCustomCoding + public var modifiedAt: Date? + /// If true, there are pending monitor changes for this signal map that can be deployed. + public let monitorChangesPendingDeployment: Bool? + public let monitorDeployment: MonitorDeployment? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let status: SignalMapStatus? + public let tags: [String: String]? + + public init(arn: String? = nil, cloudWatchAlarmTemplateGroupIds: [String]? = nil, createdAt: Date? = nil, description: String? = nil, discoveryEntryPointArn: String? = nil, errorMessage: String? = nil, eventBridgeRuleTemplateGroupIds: [String]? = nil, failedMediaResourceMap: [String: MediaResource]? = nil, id: String? = nil, lastDiscoveredAt: Date? = nil, lastSuccessfulMonitorDeployment: SuccessfulMonitorDeployment? = nil, mediaResourceMap: [String: MediaResource]? = nil, modifiedAt: Date? = nil, monitorChangesPendingDeployment: Bool? = nil, monitorDeployment: MonitorDeployment? = nil, name: String? = nil, status: SignalMapStatus? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.cloudWatchAlarmTemplateGroupIds = cloudWatchAlarmTemplateGroupIds + self.createdAt = createdAt + self.description = description + self.discoveryEntryPointArn = discoveryEntryPointArn + self.errorMessage = errorMessage + self.eventBridgeRuleTemplateGroupIds = eventBridgeRuleTemplateGroupIds + self.failedMediaResourceMap = failedMediaResourceMap + self.id = id + self.lastDiscoveredAt = lastDiscoveredAt + self.lastSuccessfulMonitorDeployment = lastSuccessfulMonitorDeployment + self.mediaResourceMap = mediaResourceMap + self.modifiedAt = modifiedAt + self.monitorChangesPendingDeployment = monitorChangesPendingDeployment + self.monitorDeployment = monitorDeployment + self.name = name + self.status = status + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case cloudWatchAlarmTemplateGroupIds = "cloudWatchAlarmTemplateGroupIds" + case createdAt = "createdAt" + case description = "description" + case discoveryEntryPointArn = "discoveryEntryPointArn" + case errorMessage = "errorMessage" + case eventBridgeRuleTemplateGroupIds = "eventBridgeRuleTemplateGroupIds" + case failedMediaResourceMap = "failedMediaResourceMap" + case id = "id" + case lastDiscoveredAt = "lastDiscoveredAt" + case lastSuccessfulMonitorDeployment = "lastSuccessfulMonitorDeployment" + case mediaResourceMap = "mediaResourceMap" + case modifiedAt = "modifiedAt" + case monitorChangesPendingDeployment = "monitorChangesPendingDeployment" + case monitorDeployment = "monitorDeployment" + case name = "name" + case status = "status" + case tags = "tags" + } + } + + public struct GlobalConfiguration: AWSEncodableShape & AWSDecodableShape { + /// Value to set the initial audio gain for the Live Event. + public let initialAudioGain: Int? + /// Indicates the action to take when the current input completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the beginning of the first input. When "none" is configured the encoder will transcode either black, a solid color, or a user specified slate images per the "Input Loss Behavior" configuration until the next input switch occurs (which is controlled through the Channel Schedule API). + public let inputEndAction: GlobalConfigurationInputEndAction? + /// Settings for system actions when input is lost. + public let inputLossBehavior: InputLossBehavior? + /// Indicates how MediaLive pipelines are synchronized. + /// PIPELINE_LOCKING - MediaLive will attempt to synchronize the output of each pipeline to the other. + /// EPOCH_LOCKING - MediaLive will attempt to synchronize the output of each pipeline to the Unix epoch. + public let outputLockingMode: GlobalConfigurationOutputLockingMode? + /// Advanced output locking settings + public let outputLockingSettings: OutputLockingSettings? + /// 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? + /// 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? + + public init(initialAudioGain: Int? = nil, inputEndAction: GlobalConfigurationInputEndAction? = nil, inputLossBehavior: InputLossBehavior? = nil, outputLockingMode: GlobalConfigurationOutputLockingMode? = nil, outputLockingSettings: OutputLockingSettings? = nil, outputTimingSource: GlobalConfigurationOutputTimingSource? = nil, supportLowFramerateInputs: GlobalConfigurationLowFramerateInputs? = nil) { + self.initialAudioGain = initialAudioGain + self.inputEndAction = inputEndAction + self.inputLossBehavior = inputLossBehavior + self.outputLockingMode = outputLockingMode + self.outputLockingSettings = outputLockingSettings + self.outputTimingSource = outputTimingSource + self.supportLowFramerateInputs = supportLowFramerateInputs + } + + public func validate(name: String) throws { + try self.validate(self.initialAudioGain, name: "initialAudioGain", parent: name, max: 60) + try self.validate(self.initialAudioGain, name: "initialAudioGain", parent: name, min: -60) + try self.inputLossBehavior?.validate(name: "\(name).inputLossBehavior") + } + + private enum CodingKeys: String, CodingKey { + case initialAudioGain = "initialAudioGain" + case inputEndAction = "inputEndAction" + case inputLossBehavior = "inputLossBehavior" + case outputLockingMode = "outputLockingMode" + case outputLockingSettings = "outputLockingSettings" + case outputTimingSource = "outputTimingSource" + case supportLowFramerateInputs = "supportLowFramerateInputs" + } + } + + public struct H264ColorSpaceSettings: AWSEncodableShape & AWSDecodableShape { + public let colorSpacePassthroughSettings: ColorSpacePassthroughSettings? + public let rec601Settings: Rec601Settings? + public let rec709Settings: Rec709Settings? + + public init(colorSpacePassthroughSettings: ColorSpacePassthroughSettings? = nil, rec601Settings: Rec601Settings? = nil, rec709Settings: Rec709Settings? = nil) { + self.colorSpacePassthroughSettings = colorSpacePassthroughSettings + self.rec601Settings = rec601Settings + self.rec709Settings = rec709Settings + } + + private enum CodingKeys: String, CodingKey { + case colorSpacePassthroughSettings = "colorSpacePassthroughSettings" + case rec601Settings = "rec601Settings" + case rec709Settings = "rec709Settings" + } + } + + public struct H264FilterSettings: AWSEncodableShape & AWSDecodableShape { + public let temporalFilterSettings: TemporalFilterSettings? + + public init(temporalFilterSettings: TemporalFilterSettings? = nil) { + self.temporalFilterSettings = temporalFilterSettings + } + + private enum CodingKeys: String, CodingKey { + case temporalFilterSettings = "temporalFilterSettings" + } + } + + public struct H264Settings: AWSEncodableShape & AWSDecodableShape { + /// Enables or disables adaptive quantization, which is a technique MediaLive can apply to video on a frame-by-frame basis to produce more compression without losing quality. There are three types of adaptive quantization: flicker, spatial, and temporal. Set the field in one of these ways: Set to Auto. Recommended. For each type of AQ, MediaLive will determine if AQ is needed, and if so, the appropriate strength. Set a strength (a value other than Auto or Disable). This strength will apply to any of the AQ fields that you choose to enable. Set to Disabled to disable all types of adaptive quantization. + public let adaptiveQuantization: H264AdaptiveQuantization? + /// 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? + /// Average bitrate in bits/second. Required when the rate control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique value when its bitrate is rounded down to the nearest multiple of 1000. + public let bitrate: Int? + /// Percentage of the buffer that should initially be filled (HRD buffer model). + public let bufFillPct: Int? + /// Size of buffer (HRD buffer model) in bits. + public let bufSize: Int? + /// Includes colorspace metadata in the output. + public let colorMetadata: H264ColorMetadata? + /// Color Space settings public let colorSpaceSettings: H264ColorSpaceSettings? /// Entropy encoding mode. Use cabac (must be in Main or High profile) or cavlc. public let entropyEncoding: H264EntropyEncoding? @@ -8079,15 +9283,20 @@ extension MediaLive { } } - public struct ListInputDeviceTransfersRequest: AWSEncodableShape { + public struct ListCloudWatchAlarmTemplateGroupsRequest: AWSEncodableShape { public let maxResults: Int? + /// A token used to retrieve the next set of results in paginated list responses. public let nextToken: String? - public let transferType: String? + /// Represents the scope of a resource, with options for all scopes, AWS provided resources, or local resources. + public let scope: String? + /// A signal map's identifier. Can be either be its id or current name. + public let signalMapIdentifier: String? - public init(maxResults: Int? = nil, nextToken: String? = nil, transferType: String? = nil) { + public init(maxResults: Int? = nil, nextToken: String? = nil, scope: String? = nil, signalMapIdentifier: String? = nil) { self.maxResults = maxResults self.nextToken = nextToken - self.transferType = transferType + self.scope = scope + self.signalMapIdentifier = signalMapIdentifier } public func encode(to encoder: Encoder) throws { @@ -8095,7 +9304,8 @@ extension MediaLive { _ = encoder.container(keyedBy: CodingKeys.self) request.encodeQuery(self.maxResults, key: "maxResults") request.encodeQuery(self.nextToken, key: "nextToken") - request.encodeQuery(self.transferType, key: "transferType") + request.encodeQuery(self.scope, key: "scope") + request.encodeQuery(self.signalMapIdentifier, key: "signalMapIdentifier") } public func validate(name: String) throws { @@ -8106,37 +9316,49 @@ extension MediaLive { private enum CodingKeys: CodingKey {} } - public struct ListInputDeviceTransfersResponse: AWSDecodableShape { - /// The list of devices that you are transferring or are being transferred to you. - public let inputDeviceTransfers: [TransferringInputDeviceSummary]? - /// A token to get additional list results. + public struct ListCloudWatchAlarmTemplateGroupsResponse: AWSDecodableShape { + public let cloudWatchAlarmTemplateGroups: [CloudWatchAlarmTemplateGroupSummary]? + /// A token used to retrieve the next set of results in paginated list responses. public let nextToken: String? - public init(inputDeviceTransfers: [TransferringInputDeviceSummary]? = nil, nextToken: String? = nil) { - self.inputDeviceTransfers = inputDeviceTransfers + public init(cloudWatchAlarmTemplateGroups: [CloudWatchAlarmTemplateGroupSummary]? = nil, nextToken: String? = nil) { + self.cloudWatchAlarmTemplateGroups = cloudWatchAlarmTemplateGroups self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { - case inputDeviceTransfers = "inputDeviceTransfers" + case cloudWatchAlarmTemplateGroups = "cloudWatchAlarmTemplateGroups" case nextToken = "nextToken" } } - public struct ListInputDevicesRequest: AWSEncodableShape { + public struct ListCloudWatchAlarmTemplatesRequest: AWSEncodableShape { + /// A cloudwatch alarm template group's identifier. Can be either be its id or current name. + public let groupIdentifier: String? public let maxResults: Int? + /// A token used to retrieve the next set of results in paginated list responses. public let nextToken: String? + /// Represents the scope of a resource, with options for all scopes, AWS provided resources, or local resources. + public let scope: String? + /// A signal map's identifier. Can be either be its id or current name. + public let signalMapIdentifier: String? - public init(maxResults: Int? = nil, nextToken: String? = nil) { + public init(groupIdentifier: String? = nil, maxResults: Int? = nil, nextToken: String? = nil, scope: String? = nil, signalMapIdentifier: String? = nil) { + self.groupIdentifier = groupIdentifier self.maxResults = maxResults self.nextToken = nextToken + self.scope = scope + self.signalMapIdentifier = signalMapIdentifier } public func encode(to encoder: Encoder) throws { let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.groupIdentifier, key: "groupIdentifier") request.encodeQuery(self.maxResults, key: "maxResults") request.encodeQuery(self.nextToken, key: "nextToken") + request.encodeQuery(self.scope, key: "scope") + request.encodeQuery(self.signalMapIdentifier, key: "signalMapIdentifier") } public func validate(name: String) throws { @@ -8147,30 +9369,33 @@ extension MediaLive { private enum CodingKeys: CodingKey {} } - public struct ListInputDevicesResponse: AWSDecodableShape { - /// The list of input devices. - public let inputDevices: [InputDeviceSummary]? - /// A token to get additional list results. + public struct ListCloudWatchAlarmTemplatesResponse: AWSDecodableShape { + public let cloudWatchAlarmTemplates: [CloudWatchAlarmTemplateSummary]? + /// A token used to retrieve the next set of results in paginated list responses. public let nextToken: String? - public init(inputDevices: [InputDeviceSummary]? = nil, nextToken: String? = nil) { - self.inputDevices = inputDevices + public init(cloudWatchAlarmTemplates: [CloudWatchAlarmTemplateSummary]? = nil, nextToken: String? = nil) { + self.cloudWatchAlarmTemplates = cloudWatchAlarmTemplates self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { - case inputDevices = "inputDevices" + case cloudWatchAlarmTemplates = "cloudWatchAlarmTemplates" case nextToken = "nextToken" } } - public struct ListInputSecurityGroupsRequest: AWSEncodableShape { + public struct ListEventBridgeRuleTemplateGroupsRequest: AWSEncodableShape { public let maxResults: Int? + /// A token used to retrieve the next set of results in paginated list responses. public let nextToken: String? + /// A signal map's identifier. Can be either be its id or current name. + public let signalMapIdentifier: String? - public init(maxResults: Int? = nil, nextToken: String? = nil) { + public init(maxResults: Int? = nil, nextToken: String? = nil, signalMapIdentifier: String? = nil) { self.maxResults = maxResults self.nextToken = nextToken + self.signalMapIdentifier = signalMapIdentifier } public func encode(to encoder: Encoder) throws { @@ -8178,6 +9403,7 @@ extension MediaLive { _ = encoder.container(keyedBy: CodingKeys.self) request.encodeQuery(self.maxResults, key: "maxResults") request.encodeQuery(self.nextToken, key: "nextToken") + request.encodeQuery(self.signalMapIdentifier, key: "signalMapIdentifier") } public func validate(name: String) throws { @@ -8188,36 +9414,45 @@ extension MediaLive { private enum CodingKeys: CodingKey {} } - public struct ListInputSecurityGroupsResponse: AWSDecodableShape { - /// List of input security groups - public let inputSecurityGroups: [InputSecurityGroup]? + public struct ListEventBridgeRuleTemplateGroupsResponse: AWSDecodableShape { + public let eventBridgeRuleTemplateGroups: [EventBridgeRuleTemplateGroupSummary]? + /// A token used to retrieve the next set of results in paginated list responses. public let nextToken: String? - public init(inputSecurityGroups: [InputSecurityGroup]? = nil, nextToken: String? = nil) { - self.inputSecurityGroups = inputSecurityGroups + public init(eventBridgeRuleTemplateGroups: [EventBridgeRuleTemplateGroupSummary]? = nil, nextToken: String? = nil) { + self.eventBridgeRuleTemplateGroups = eventBridgeRuleTemplateGroups self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { - case inputSecurityGroups = "inputSecurityGroups" + case eventBridgeRuleTemplateGroups = "eventBridgeRuleTemplateGroups" case nextToken = "nextToken" } } - public struct ListInputsRequest: AWSEncodableShape { + public struct ListEventBridgeRuleTemplatesRequest: AWSEncodableShape { + /// An eventbridge rule template group's identifier. Can be either be its id or current name. + public let groupIdentifier: String? public let maxResults: Int? + /// A token used to retrieve the next set of results in paginated list responses. public let nextToken: String? + /// A signal map's identifier. Can be either be its id or current name. + public let signalMapIdentifier: String? - public init(maxResults: Int? = nil, nextToken: String? = nil) { + public init(groupIdentifier: String? = nil, maxResults: Int? = nil, nextToken: String? = nil, signalMapIdentifier: String? = nil) { + self.groupIdentifier = groupIdentifier self.maxResults = maxResults self.nextToken = nextToken + self.signalMapIdentifier = signalMapIdentifier } public func encode(to encoder: Encoder) throws { let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.groupIdentifier, key: "groupIdentifier") request.encodeQuery(self.maxResults, key: "maxResults") request.encodeQuery(self.nextToken, key: "nextToken") + request.encodeQuery(self.signalMapIdentifier, key: "signalMapIdentifier") } public func validate(name: String) throws { @@ -8228,27 +9463,192 @@ extension MediaLive { private enum CodingKeys: CodingKey {} } - public struct ListInputsResponse: AWSDecodableShape { - public let inputs: [Input]? + public struct ListEventBridgeRuleTemplatesResponse: AWSDecodableShape { + public let eventBridgeRuleTemplates: [EventBridgeRuleTemplateSummary]? + /// A token used to retrieve the next set of results in paginated list responses. public let nextToken: String? - public init(inputs: [Input]? = nil, nextToken: String? = nil) { - self.inputs = inputs + public init(eventBridgeRuleTemplates: [EventBridgeRuleTemplateSummary]? = nil, nextToken: String? = nil) { + self.eventBridgeRuleTemplates = eventBridgeRuleTemplates self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { - case inputs = "inputs" + case eventBridgeRuleTemplates = "eventBridgeRuleTemplates" case nextToken = "nextToken" } } - public struct ListMultiplexProgramsRequest: AWSEncodableShape { - /// The maximum number of items to return. + public struct ListInputDeviceTransfersRequest: AWSEncodableShape { public let maxResults: Int? - /// The ID of the multiplex that the programs belong to. - public let multiplexId: String - /// The token to retrieve the next page of results. + public let nextToken: String? + public let transferType: String? + + public init(maxResults: Int? = nil, nextToken: String? = nil, transferType: String? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + self.transferType = transferType + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.maxResults, key: "maxResults") + request.encodeQuery(self.nextToken, key: "nextToken") + request.encodeQuery(self.transferType, key: "transferType") + } + + public func validate(name: String) throws { + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 1000) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListInputDeviceTransfersResponse: AWSDecodableShape { + /// The list of devices that you are transferring or are being transferred to you. + public let inputDeviceTransfers: [TransferringInputDeviceSummary]? + /// A token to get additional list results. + public let nextToken: String? + + public init(inputDeviceTransfers: [TransferringInputDeviceSummary]? = nil, nextToken: String? = nil) { + self.inputDeviceTransfers = inputDeviceTransfers + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case inputDeviceTransfers = "inputDeviceTransfers" + case nextToken = "nextToken" + } + } + + public struct ListInputDevicesRequest: AWSEncodableShape { + public let maxResults: Int? + public let nextToken: String? + + public init(maxResults: Int? = nil, nextToken: String? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.maxResults, key: "maxResults") + request.encodeQuery(self.nextToken, key: "nextToken") + } + + public func validate(name: String) throws { + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 1000) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListInputDevicesResponse: AWSDecodableShape { + /// The list of input devices. + public let inputDevices: [InputDeviceSummary]? + /// A token to get additional list results. + public let nextToken: String? + + public init(inputDevices: [InputDeviceSummary]? = nil, nextToken: String? = nil) { + self.inputDevices = inputDevices + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case inputDevices = "inputDevices" + case nextToken = "nextToken" + } + } + + public struct ListInputSecurityGroupsRequest: AWSEncodableShape { + public let maxResults: Int? + public let nextToken: String? + + public init(maxResults: Int? = nil, nextToken: String? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.maxResults, key: "maxResults") + request.encodeQuery(self.nextToken, key: "nextToken") + } + + public func validate(name: String) throws { + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 1000) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListInputSecurityGroupsResponse: AWSDecodableShape { + /// List of input security groups + public let inputSecurityGroups: [InputSecurityGroup]? + public let nextToken: String? + + public init(inputSecurityGroups: [InputSecurityGroup]? = nil, nextToken: String? = nil) { + self.inputSecurityGroups = inputSecurityGroups + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case inputSecurityGroups = "inputSecurityGroups" + case nextToken = "nextToken" + } + } + + public struct ListInputsRequest: AWSEncodableShape { + public let maxResults: Int? + public let nextToken: String? + + public init(maxResults: Int? = nil, nextToken: String? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.maxResults, key: "maxResults") + request.encodeQuery(self.nextToken, key: "nextToken") + } + + public func validate(name: String) throws { + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 1000) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListInputsResponse: AWSDecodableShape { + 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 ListMultiplexProgramsRequest: AWSEncodableShape { + /// The maximum number of items to return. + public let maxResults: Int? + /// The ID of the multiplex that the programs belong to. + public let multiplexId: String + /// The token to retrieve the next page of results. public let nextToken: String? public init(maxResults: Int? = nil, multiplexId: String, nextToken: String? = nil) { @@ -8487,6 +9887,55 @@ extension MediaLive { } } + public struct ListSignalMapsRequest: AWSEncodableShape { + /// A cloudwatch alarm template group's identifier. Can be either be its id or current name. + public let cloudWatchAlarmTemplateGroupIdentifier: String? + /// An eventbridge rule template group's identifier. Can be either be its id or current name. + public let eventBridgeRuleTemplateGroupIdentifier: String? + public let maxResults: Int? + /// A token used to retrieve the next set of results in paginated list responses. + public let nextToken: String? + + public init(cloudWatchAlarmTemplateGroupIdentifier: String? = nil, eventBridgeRuleTemplateGroupIdentifier: String? = nil, maxResults: Int? = nil, nextToken: String? = nil) { + self.cloudWatchAlarmTemplateGroupIdentifier = cloudWatchAlarmTemplateGroupIdentifier + self.eventBridgeRuleTemplateGroupIdentifier = eventBridgeRuleTemplateGroupIdentifier + self.maxResults = maxResults + self.nextToken = nextToken + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.cloudWatchAlarmTemplateGroupIdentifier, key: "cloudWatchAlarmTemplateGroupIdentifier") + request.encodeQuery(self.eventBridgeRuleTemplateGroupIdentifier, key: "eventBridgeRuleTemplateGroupIdentifier") + request.encodeQuery(self.maxResults, key: "maxResults") + request.encodeQuery(self.nextToken, key: "nextToken") + } + + public func validate(name: String) throws { + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 1000) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListSignalMapsResponse: AWSDecodableShape { + /// A token used to retrieve the next set of results in paginated list responses. + public let nextToken: String? + public let signalMaps: [SignalMapSummary]? + + public init(nextToken: String? = nil, signalMaps: [SignalMapSummary]? = nil) { + self.nextToken = nextToken + self.signalMaps = signalMaps + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case signalMaps = "signalMaps" + } + } + public struct ListTagsForResourceRequest: AWSEncodableShape { public let resourceArn: String @@ -8968,6 +10417,62 @@ extension MediaLive { public init() {} } + public struct MediaResource: AWSDecodableShape { + public let destinations: [MediaResourceNeighbor]? + /// The logical name of an AWS media resource. + public let name: String? + public let sources: [MediaResourceNeighbor]? + + public init(destinations: [MediaResourceNeighbor]? = nil, name: String? = nil, sources: [MediaResourceNeighbor]? = nil) { + self.destinations = destinations + self.name = name + self.sources = sources + } + + private enum CodingKeys: String, CodingKey { + case destinations = "destinations" + case name = "name" + case sources = "sources" + } + } + + public struct MediaResourceNeighbor: AWSDecodableShape { + /// The ARN of a resource used in AWS media workflows. + public let arn: String? + /// The logical name of an AWS media resource. + public let name: String? + + public init(arn: String? = nil, name: String? = nil) { + self.arn = arn + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case name = "name" + } + } + + public struct MonitorDeployment: AWSDecodableShape { + /// URI associated with a signal map's monitor deployment. + public let detailsUri: String? + /// Error message associated with a failed monitor deployment of a signal map. + public let errorMessage: String? + public let status: SignalMapMonitorDeploymentStatus? + + public init(detailsUri: String? = nil, errorMessage: String? = nil, status: SignalMapMonitorDeploymentStatus? = nil) { + self.detailsUri = detailsUri + self.errorMessage = errorMessage + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case detailsUri = "detailsUri" + case errorMessage = "errorMessage" + case status = "status" + } + } + public struct MotionGraphicsActivateScheduleActionSettings: AWSEncodableShape & AWSDecodableShape { /// Duration (in milliseconds) that motion graphics should render on to the video stream. Leaving out this property or setting to 0 will result in rendering continuing until a deactivate action is processed. public let duration: Int64? @@ -11118,6 +12623,48 @@ extension MediaLive { } } + public struct SignalMapSummary: AWSDecodableShape { + /// A signal map's ARN (Amazon Resource Name) + public let arn: String? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + /// A signal map's id. + public let id: String? + @OptionalCustomCoding + public var modifiedAt: Date? + public let monitorDeploymentStatus: SignalMapMonitorDeploymentStatus? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let status: SignalMapStatus? + public let tags: [String: String]? + + public init(arn: String? = nil, createdAt: Date? = nil, description: String? = nil, id: String? = nil, modifiedAt: Date? = nil, monitorDeploymentStatus: SignalMapMonitorDeploymentStatus? = nil, name: String? = nil, status: SignalMapStatus? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.createdAt = createdAt + self.description = description + self.id = id + self.modifiedAt = modifiedAt + self.monitorDeploymentStatus = monitorDeploymentStatus + self.name = name + self.status = status + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case createdAt = "createdAt" + case description = "description" + case id = "id" + case modifiedAt = "modifiedAt" + case monitorDeploymentStatus = "monitorDeploymentStatus" + case name = "name" + case status = "status" + case tags = "tags" + } + } + public struct SmpteTtDestinationSettings: AWSEncodableShape & AWSDecodableShape { public init() {} } @@ -11240,8 +12787,98 @@ extension MediaLive { } } - public struct StartInputDeviceMaintenanceWindowRequest: AWSEncodableShape { - /// The unique ID of the input device to start a maintenance window for. For example, hd-123456789abcdef. + public struct StartDeleteMonitorDeploymentRequest: AWSEncodableShape { + /// A signal map's identifier. Can be either be its id or current name. + public let identifier: String + + public init(identifier: String) { + self.identifier = identifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.identifier, key: "Identifier") + } + + private enum CodingKeys: CodingKey {} + } + + public struct StartDeleteMonitorDeploymentResponse: AWSDecodableShape { + /// A signal map's ARN (Amazon Resource Name) + public let arn: String? + public let cloudWatchAlarmTemplateGroupIds: [String]? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + /// A top-level supported AWS resource ARN to discovery a signal map from. + public let discoveryEntryPointArn: String? + /// Error message associated with a failed creation or failed update attempt of a signal map. + public let errorMessage: String? + public let eventBridgeRuleTemplateGroupIds: [String]? + public let failedMediaResourceMap: [String: MediaResource]? + /// A signal map's id. + public let id: String? + @OptionalCustomCoding + public var lastDiscoveredAt: Date? + public let lastSuccessfulMonitorDeployment: SuccessfulMonitorDeployment? + public let mediaResourceMap: [String: MediaResource]? + @OptionalCustomCoding + public var modifiedAt: Date? + /// If true, there are pending monitor changes for this signal map that can be deployed. + public let monitorChangesPendingDeployment: Bool? + public let monitorDeployment: MonitorDeployment? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let status: SignalMapStatus? + public let tags: [String: String]? + + public init(arn: String? = nil, cloudWatchAlarmTemplateGroupIds: [String]? = nil, createdAt: Date? = nil, description: String? = nil, discoveryEntryPointArn: String? = nil, errorMessage: String? = nil, eventBridgeRuleTemplateGroupIds: [String]? = nil, failedMediaResourceMap: [String: MediaResource]? = nil, id: String? = nil, lastDiscoveredAt: Date? = nil, lastSuccessfulMonitorDeployment: SuccessfulMonitorDeployment? = nil, mediaResourceMap: [String: MediaResource]? = nil, modifiedAt: Date? = nil, monitorChangesPendingDeployment: Bool? = nil, monitorDeployment: MonitorDeployment? = nil, name: String? = nil, status: SignalMapStatus? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.cloudWatchAlarmTemplateGroupIds = cloudWatchAlarmTemplateGroupIds + self.createdAt = createdAt + self.description = description + self.discoveryEntryPointArn = discoveryEntryPointArn + self.errorMessage = errorMessage + self.eventBridgeRuleTemplateGroupIds = eventBridgeRuleTemplateGroupIds + self.failedMediaResourceMap = failedMediaResourceMap + self.id = id + self.lastDiscoveredAt = lastDiscoveredAt + self.lastSuccessfulMonitorDeployment = lastSuccessfulMonitorDeployment + self.mediaResourceMap = mediaResourceMap + self.modifiedAt = modifiedAt + self.monitorChangesPendingDeployment = monitorChangesPendingDeployment + self.monitorDeployment = monitorDeployment + self.name = name + self.status = status + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case cloudWatchAlarmTemplateGroupIds = "cloudWatchAlarmTemplateGroupIds" + case createdAt = "createdAt" + case description = "description" + case discoveryEntryPointArn = "discoveryEntryPointArn" + case errorMessage = "errorMessage" + case eventBridgeRuleTemplateGroupIds = "eventBridgeRuleTemplateGroupIds" + case failedMediaResourceMap = "failedMediaResourceMap" + case id = "id" + case lastDiscoveredAt = "lastDiscoveredAt" + case lastSuccessfulMonitorDeployment = "lastSuccessfulMonitorDeployment" + case mediaResourceMap = "mediaResourceMap" + case modifiedAt = "modifiedAt" + case monitorChangesPendingDeployment = "monitorChangesPendingDeployment" + case monitorDeployment = "monitorDeployment" + case name = "name" + case status = "status" + case tags = "tags" + } + } + + public struct StartInputDeviceMaintenanceWindowRequest: AWSEncodableShape { + /// The unique ID of the input device to start a maintenance window for. For example, hd-123456789abcdef. public let inputDeviceId: String public init(inputDeviceId: String) { @@ -11282,6 +12919,101 @@ extension MediaLive { public init() {} } + public struct StartMonitorDeploymentRequest: AWSEncodableShape { + public let dryRun: Bool? + /// A signal map's identifier. Can be either be its id or current name. + public let identifier: String + + public init(dryRun: Bool? = nil, identifier: String) { + self.dryRun = dryRun + self.identifier = identifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.dryRun, forKey: .dryRun) + request.encodePath(self.identifier, key: "Identifier") + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "dryRun" + } + } + + public struct StartMonitorDeploymentResponse: AWSDecodableShape { + /// A signal map's ARN (Amazon Resource Name) + public let arn: String? + public let cloudWatchAlarmTemplateGroupIds: [String]? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + /// A top-level supported AWS resource ARN to discovery a signal map from. + public let discoveryEntryPointArn: String? + /// Error message associated with a failed creation or failed update attempt of a signal map. + public let errorMessage: String? + public let eventBridgeRuleTemplateGroupIds: [String]? + public let failedMediaResourceMap: [String: MediaResource]? + /// A signal map's id. + public let id: String? + @OptionalCustomCoding + public var lastDiscoveredAt: Date? + public let lastSuccessfulMonitorDeployment: SuccessfulMonitorDeployment? + public let mediaResourceMap: [String: MediaResource]? + @OptionalCustomCoding + public var modifiedAt: Date? + /// If true, there are pending monitor changes for this signal map that can be deployed. + public let monitorChangesPendingDeployment: Bool? + public let monitorDeployment: MonitorDeployment? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let status: SignalMapStatus? + public let tags: [String: String]? + + public init(arn: String? = nil, cloudWatchAlarmTemplateGroupIds: [String]? = nil, createdAt: Date? = nil, description: String? = nil, discoveryEntryPointArn: String? = nil, errorMessage: String? = nil, eventBridgeRuleTemplateGroupIds: [String]? = nil, failedMediaResourceMap: [String: MediaResource]? = nil, id: String? = nil, lastDiscoveredAt: Date? = nil, lastSuccessfulMonitorDeployment: SuccessfulMonitorDeployment? = nil, mediaResourceMap: [String: MediaResource]? = nil, modifiedAt: Date? = nil, monitorChangesPendingDeployment: Bool? = nil, monitorDeployment: MonitorDeployment? = nil, name: String? = nil, status: SignalMapStatus? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.cloudWatchAlarmTemplateGroupIds = cloudWatchAlarmTemplateGroupIds + self.createdAt = createdAt + self.description = description + self.discoveryEntryPointArn = discoveryEntryPointArn + self.errorMessage = errorMessage + self.eventBridgeRuleTemplateGroupIds = eventBridgeRuleTemplateGroupIds + self.failedMediaResourceMap = failedMediaResourceMap + self.id = id + self.lastDiscoveredAt = lastDiscoveredAt + self.lastSuccessfulMonitorDeployment = lastSuccessfulMonitorDeployment + self.mediaResourceMap = mediaResourceMap + self.modifiedAt = modifiedAt + self.monitorChangesPendingDeployment = monitorChangesPendingDeployment + self.monitorDeployment = monitorDeployment + self.name = name + self.status = status + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case cloudWatchAlarmTemplateGroupIds = "cloudWatchAlarmTemplateGroupIds" + case createdAt = "createdAt" + case description = "description" + case discoveryEntryPointArn = "discoveryEntryPointArn" + case errorMessage = "errorMessage" + case eventBridgeRuleTemplateGroupIds = "eventBridgeRuleTemplateGroupIds" + case failedMediaResourceMap = "failedMediaResourceMap" + case id = "id" + case lastDiscoveredAt = "lastDiscoveredAt" + case lastSuccessfulMonitorDeployment = "lastSuccessfulMonitorDeployment" + case mediaResourceMap = "mediaResourceMap" + case modifiedAt = "modifiedAt" + case monitorChangesPendingDeployment = "monitorChangesPendingDeployment" + case monitorDeployment = "monitorDeployment" + case name = "name" + case status = "status" + case tags = "tags" + } + } + public struct StartMultiplexRequest: AWSEncodableShape { /// The ID of the multiplex. public let multiplexId: String @@ -11361,6 +13093,140 @@ extension MediaLive { } } + public struct StartUpdateSignalMapRequest: AWSEncodableShape { + public let cloudWatchAlarmTemplateGroupIdentifiers: [String]? + /// A resource's optional description. + public let description: String? + /// A top-level supported AWS resource ARN to discovery a signal map from. + public let discoveryEntryPointArn: String? + public let eventBridgeRuleTemplateGroupIdentifiers: [String]? + /// If true, will force a rediscovery of a signal map if an unchanged discoveryEntryPointArn is provided. + public let forceRediscovery: Bool? + /// A signal map's identifier. Can be either be its id or current name. + public let identifier: String + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + + public init(cloudWatchAlarmTemplateGroupIdentifiers: [String]? = nil, description: String? = nil, discoveryEntryPointArn: String? = nil, eventBridgeRuleTemplateGroupIdentifiers: [String]? = nil, forceRediscovery: Bool? = nil, identifier: String, name: String? = nil) { + self.cloudWatchAlarmTemplateGroupIdentifiers = cloudWatchAlarmTemplateGroupIdentifiers + self.description = description + self.discoveryEntryPointArn = discoveryEntryPointArn + self.eventBridgeRuleTemplateGroupIdentifiers = eventBridgeRuleTemplateGroupIdentifiers + self.forceRediscovery = forceRediscovery + self.identifier = identifier + self.name = name + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.cloudWatchAlarmTemplateGroupIdentifiers, forKey: .cloudWatchAlarmTemplateGroupIdentifiers) + try container.encodeIfPresent(self.description, forKey: .description) + try container.encodeIfPresent(self.discoveryEntryPointArn, forKey: .discoveryEntryPointArn) + try container.encodeIfPresent(self.eventBridgeRuleTemplateGroupIdentifiers, forKey: .eventBridgeRuleTemplateGroupIdentifiers) + try container.encodeIfPresent(self.forceRediscovery, forKey: .forceRediscovery) + request.encodePath(self.identifier, key: "Identifier") + try container.encodeIfPresent(self.name, forKey: .name) + } + + public func validate(name: String) throws { + try self.cloudWatchAlarmTemplateGroupIdentifiers?.forEach { + try validate($0, name: "cloudWatchAlarmTemplateGroupIdentifiers[]", parent: name, pattern: "^[^\\s]+$") + } + try self.validate(self.description, name: "description", parent: name, max: 1024) + try self.validate(self.discoveryEntryPointArn, name: "discoveryEntryPointArn", parent: name, max: 2048) + try self.validate(self.discoveryEntryPointArn, name: "discoveryEntryPointArn", parent: name, min: 1) + try self.eventBridgeRuleTemplateGroupIdentifiers?.forEach { + try validate($0, name: "eventBridgeRuleTemplateGroupIdentifiers[]", parent: name, pattern: "^[^\\s]+$") + } + try self.validate(self.name, name: "name", parent: name, max: 255) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[^\\s]+$") + } + + private enum CodingKeys: String, CodingKey { + case cloudWatchAlarmTemplateGroupIdentifiers = "cloudWatchAlarmTemplateGroupIdentifiers" + case description = "description" + case discoveryEntryPointArn = "discoveryEntryPointArn" + case eventBridgeRuleTemplateGroupIdentifiers = "eventBridgeRuleTemplateGroupIdentifiers" + case forceRediscovery = "forceRediscovery" + case name = "name" + } + } + + public struct StartUpdateSignalMapResponse: AWSDecodableShape { + /// A signal map's ARN (Amazon Resource Name) + public let arn: String? + public let cloudWatchAlarmTemplateGroupIds: [String]? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + /// A top-level supported AWS resource ARN to discovery a signal map from. + public let discoveryEntryPointArn: String? + /// Error message associated with a failed creation or failed update attempt of a signal map. + public let errorMessage: String? + public let eventBridgeRuleTemplateGroupIds: [String]? + public let failedMediaResourceMap: [String: MediaResource]? + /// A signal map's id. + public let id: String? + @OptionalCustomCoding + public var lastDiscoveredAt: Date? + public let lastSuccessfulMonitorDeployment: SuccessfulMonitorDeployment? + public let mediaResourceMap: [String: MediaResource]? + @OptionalCustomCoding + public var modifiedAt: Date? + /// If true, there are pending monitor changes for this signal map that can be deployed. + public let monitorChangesPendingDeployment: Bool? + public let monitorDeployment: MonitorDeployment? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let status: SignalMapStatus? + public let tags: [String: String]? + + public init(arn: String? = nil, cloudWatchAlarmTemplateGroupIds: [String]? = nil, createdAt: Date? = nil, description: String? = nil, discoveryEntryPointArn: String? = nil, errorMessage: String? = nil, eventBridgeRuleTemplateGroupIds: [String]? = nil, failedMediaResourceMap: [String: MediaResource]? = nil, id: String? = nil, lastDiscoveredAt: Date? = nil, lastSuccessfulMonitorDeployment: SuccessfulMonitorDeployment? = nil, mediaResourceMap: [String: MediaResource]? = nil, modifiedAt: Date? = nil, monitorChangesPendingDeployment: Bool? = nil, monitorDeployment: MonitorDeployment? = nil, name: String? = nil, status: SignalMapStatus? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.cloudWatchAlarmTemplateGroupIds = cloudWatchAlarmTemplateGroupIds + self.createdAt = createdAt + self.description = description + self.discoveryEntryPointArn = discoveryEntryPointArn + self.errorMessage = errorMessage + self.eventBridgeRuleTemplateGroupIds = eventBridgeRuleTemplateGroupIds + self.failedMediaResourceMap = failedMediaResourceMap + self.id = id + self.lastDiscoveredAt = lastDiscoveredAt + self.lastSuccessfulMonitorDeployment = lastSuccessfulMonitorDeployment + self.mediaResourceMap = mediaResourceMap + self.modifiedAt = modifiedAt + self.monitorChangesPendingDeployment = monitorChangesPendingDeployment + self.monitorDeployment = monitorDeployment + self.name = name + self.status = status + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case cloudWatchAlarmTemplateGroupIds = "cloudWatchAlarmTemplateGroupIds" + case createdAt = "createdAt" + case description = "description" + case discoveryEntryPointArn = "discoveryEntryPointArn" + case errorMessage = "errorMessage" + case eventBridgeRuleTemplateGroupIds = "eventBridgeRuleTemplateGroupIds" + case failedMediaResourceMap = "failedMediaResourceMap" + case id = "id" + case lastDiscoveredAt = "lastDiscoveredAt" + case lastSuccessfulMonitorDeployment = "lastSuccessfulMonitorDeployment" + case mediaResourceMap = "mediaResourceMap" + case modifiedAt = "modifiedAt" + case monitorChangesPendingDeployment = "monitorChangesPendingDeployment" + case monitorDeployment = "monitorDeployment" + case name = "name" + case status = "status" + case tags = "tags" + } + } + public struct StaticImageActivateScheduleActionSettings: AWSEncodableShape & AWSDecodableShape { /// The duration in milliseconds for the image to remain on the video. If omitted or set to 0 the duration is unlimited and the image will remain until it is explicitly deactivated. public let duration: Int? @@ -11768,6 +13634,22 @@ extension MediaLive { } } + public struct SuccessfulMonitorDeployment: AWSDecodableShape { + /// URI associated with a signal map's monitor deployment. + public let detailsUri: String? + public let status: SignalMapMonitorDeploymentStatus? + + public init(detailsUri: String? = nil, status: SignalMapMonitorDeploymentStatus? = nil) { + self.detailsUri = detailsUri + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case detailsUri = "detailsUri" + case status = "status" + } + } + public struct TeletextDestinationSettings: AWSEncodableShape & AWSDecodableShape { public init() {} } @@ -12216,6 +14098,389 @@ extension MediaLive { } } + public struct UpdateCloudWatchAlarmTemplateGroupRequest: AWSEncodableShape { + /// A resource's optional description. + public let description: String? + /// A cloudwatch alarm template group's identifier. Can be either be its id or current name. + public let identifier: String + + public init(description: String? = nil, identifier: String) { + self.description = description + self.identifier = identifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.description, forKey: .description) + request.encodePath(self.identifier, key: "Identifier") + } + + public func validate(name: String) throws { + try self.validate(self.description, name: "description", parent: name, max: 1024) + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + } + } + + public struct UpdateCloudWatchAlarmTemplateGroupResponse: AWSDecodableShape { + /// A cloudwatch alarm template group's ARN (Amazon Resource Name) + public let arn: String? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + /// A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-` + public let id: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let tags: [String: String]? + + public init(arn: String? = nil, createdAt: Date? = nil, description: String? = nil, id: String? = nil, modifiedAt: Date? = nil, name: String? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.createdAt = createdAt + self.description = description + self.id = id + self.modifiedAt = modifiedAt + self.name = name + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case createdAt = "createdAt" + case description = "description" + case id = "id" + case modifiedAt = "modifiedAt" + case name = "name" + case tags = "tags" + } + } + + public struct UpdateCloudWatchAlarmTemplateRequest: AWSEncodableShape { + public let comparisonOperator: CloudWatchAlarmTemplateComparisonOperator? + /// The number of datapoints within the evaluation period that must be breaching to trigger the alarm. + public let datapointsToAlarm: Int? + /// A resource's optional description. + public let description: String? + /// The number of periods over which data is compared to the specified threshold. + public let evaluationPeriods: Int? + /// A cloudwatch alarm template group's identifier. Can be either be its id or current name. + public let groupIdentifier: String? + /// A cloudwatch alarm template's identifier. Can be either be its id or current name. + public let identifier: String + /// The name of the metric associated with the alarm. Must be compatible with targetResourceType. + public let metricName: String? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + /// The period, in seconds, over which the specified statistic is applied. + public let period: Int? + public let statistic: CloudWatchAlarmTemplateStatistic? + public let targetResourceType: CloudWatchAlarmTemplateTargetResourceType? + /// The threshold value to compare with the specified statistic. + public let threshold: Double? + public let treatMissingData: CloudWatchAlarmTemplateTreatMissingData? + + public init(comparisonOperator: CloudWatchAlarmTemplateComparisonOperator? = nil, datapointsToAlarm: Int? = nil, description: String? = nil, evaluationPeriods: Int? = nil, groupIdentifier: String? = nil, identifier: String, metricName: String? = nil, name: String? = nil, period: Int? = nil, statistic: CloudWatchAlarmTemplateStatistic? = nil, targetResourceType: CloudWatchAlarmTemplateTargetResourceType? = nil, threshold: Double? = nil, treatMissingData: CloudWatchAlarmTemplateTreatMissingData? = nil) { + self.comparisonOperator = comparisonOperator + self.datapointsToAlarm = datapointsToAlarm + self.description = description + self.evaluationPeriods = evaluationPeriods + self.groupIdentifier = groupIdentifier + self.identifier = identifier + self.metricName = metricName + self.name = name + self.period = period + self.statistic = statistic + self.targetResourceType = targetResourceType + self.threshold = threshold + self.treatMissingData = treatMissingData + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.comparisonOperator, forKey: .comparisonOperator) + try container.encodeIfPresent(self.datapointsToAlarm, forKey: .datapointsToAlarm) + try container.encodeIfPresent(self.description, forKey: .description) + try container.encodeIfPresent(self.evaluationPeriods, forKey: .evaluationPeriods) + try container.encodeIfPresent(self.groupIdentifier, forKey: .groupIdentifier) + request.encodePath(self.identifier, key: "Identifier") + try container.encodeIfPresent(self.metricName, forKey: .metricName) + try container.encodeIfPresent(self.name, forKey: .name) + try container.encodeIfPresent(self.period, forKey: .period) + try container.encodeIfPresent(self.statistic, forKey: .statistic) + try container.encodeIfPresent(self.targetResourceType, forKey: .targetResourceType) + try container.encodeIfPresent(self.threshold, forKey: .threshold) + try container.encodeIfPresent(self.treatMissingData, forKey: .treatMissingData) + } + + public func validate(name: String) throws { + try self.validate(self.datapointsToAlarm, name: "datapointsToAlarm", parent: name, min: 1) + try self.validate(self.description, name: "description", parent: name, max: 1024) + try self.validate(self.evaluationPeriods, name: "evaluationPeriods", parent: name, min: 1) + try self.validate(self.groupIdentifier, name: "groupIdentifier", parent: name, pattern: "^[^\\s]+$") + try self.validate(self.metricName, name: "metricName", parent: name, max: 64) + try self.validate(self.name, name: "name", parent: name, max: 255) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[^\\s]+$") + try self.validate(self.period, name: "period", parent: name, max: 86400) + try self.validate(self.period, name: "period", parent: name, min: 10) + } + + private enum CodingKeys: String, CodingKey { + case comparisonOperator = "comparisonOperator" + case datapointsToAlarm = "datapointsToAlarm" + case description = "description" + case evaluationPeriods = "evaluationPeriods" + case groupIdentifier = "groupIdentifier" + case metricName = "metricName" + case name = "name" + case period = "period" + case statistic = "statistic" + case targetResourceType = "targetResourceType" + case threshold = "threshold" + case treatMissingData = "treatMissingData" + } + } + + public struct UpdateCloudWatchAlarmTemplateResponse: AWSDecodableShape { + /// A cloudwatch alarm template's ARN (Amazon Resource Name) + public let arn: String? + public let comparisonOperator: CloudWatchAlarmTemplateComparisonOperator? + @OptionalCustomCoding + public var createdAt: Date? + /// The number of datapoints within the evaluation period that must be breaching to trigger the alarm. + public let datapointsToAlarm: Int? + /// A resource's optional description. + public let description: String? + /// The number of periods over which data is compared to the specified threshold. + public let evaluationPeriods: Int? + /// A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-` + public let groupId: String? + /// A cloudwatch alarm template's id. AWS provided templates have ids that start with `aws-` + public let id: String? + /// The name of the metric associated with the alarm. Must be compatible with targetResourceType. + public let metricName: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + /// The period, in seconds, over which the specified statistic is applied. + public let period: Int? + public let statistic: CloudWatchAlarmTemplateStatistic? + public let tags: [String: String]? + public let targetResourceType: CloudWatchAlarmTemplateTargetResourceType? + /// The threshold value to compare with the specified statistic. + public let threshold: Double? + public let treatMissingData: CloudWatchAlarmTemplateTreatMissingData? + + public init(arn: String? = nil, comparisonOperator: CloudWatchAlarmTemplateComparisonOperator? = nil, createdAt: Date? = nil, datapointsToAlarm: Int? = nil, description: String? = nil, evaluationPeriods: Int? = nil, groupId: String? = nil, id: String? = nil, metricName: String? = nil, modifiedAt: Date? = nil, name: String? = nil, period: Int? = nil, statistic: CloudWatchAlarmTemplateStatistic? = nil, tags: [String: String]? = nil, targetResourceType: CloudWatchAlarmTemplateTargetResourceType? = nil, threshold: Double? = nil, treatMissingData: CloudWatchAlarmTemplateTreatMissingData? = nil) { + self.arn = arn + self.comparisonOperator = comparisonOperator + self.createdAt = createdAt + self.datapointsToAlarm = datapointsToAlarm + self.description = description + self.evaluationPeriods = evaluationPeriods + self.groupId = groupId + self.id = id + self.metricName = metricName + self.modifiedAt = modifiedAt + self.name = name + self.period = period + self.statistic = statistic + self.tags = tags + self.targetResourceType = targetResourceType + self.threshold = threshold + self.treatMissingData = treatMissingData + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case comparisonOperator = "comparisonOperator" + case createdAt = "createdAt" + case datapointsToAlarm = "datapointsToAlarm" + case description = "description" + case evaluationPeriods = "evaluationPeriods" + case groupId = "groupId" + case id = "id" + case metricName = "metricName" + case modifiedAt = "modifiedAt" + case name = "name" + case period = "period" + case statistic = "statistic" + case tags = "tags" + case targetResourceType = "targetResourceType" + case threshold = "threshold" + case treatMissingData = "treatMissingData" + } + } + + public struct UpdateEventBridgeRuleTemplateGroupRequest: AWSEncodableShape { + /// A resource's optional description. + public let description: String? + /// An eventbridge rule template group's identifier. Can be either be its id or current name. + public let identifier: String + + public init(description: String? = nil, identifier: String) { + self.description = description + self.identifier = identifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.description, forKey: .description) + request.encodePath(self.identifier, key: "Identifier") + } + + public func validate(name: String) throws { + try self.validate(self.description, name: "description", parent: name, max: 1024) + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + } + } + + public struct UpdateEventBridgeRuleTemplateGroupResponse: AWSDecodableShape { + /// An eventbridge rule template group's ARN (Amazon Resource Name) + public let arn: String? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + /// An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-` + public let id: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let tags: [String: String]? + + public init(arn: String? = nil, createdAt: Date? = nil, description: String? = nil, id: String? = nil, modifiedAt: Date? = nil, name: String? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.createdAt = createdAt + self.description = description + self.id = id + self.modifiedAt = modifiedAt + self.name = name + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case createdAt = "createdAt" + case description = "description" + case id = "id" + case modifiedAt = "modifiedAt" + case name = "name" + case tags = "tags" + } + } + + public struct UpdateEventBridgeRuleTemplateRequest: AWSEncodableShape { + /// A resource's optional description. + public let description: String? + public let eventTargets: [EventBridgeRuleTemplateTarget]? + public let eventType: EventBridgeRuleTemplateEventType? + /// An eventbridge rule template group's identifier. Can be either be its id or current name. + public let groupIdentifier: String? + /// An eventbridge rule template's identifier. Can be either be its id or current name. + public let identifier: String + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + + public init(description: String? = nil, eventTargets: [EventBridgeRuleTemplateTarget]? = nil, eventType: EventBridgeRuleTemplateEventType? = nil, groupIdentifier: String? = nil, identifier: String, name: String? = nil) { + self.description = description + self.eventTargets = eventTargets + self.eventType = eventType + self.groupIdentifier = groupIdentifier + self.identifier = identifier + self.name = name + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.description, forKey: .description) + try container.encodeIfPresent(self.eventTargets, forKey: .eventTargets) + try container.encodeIfPresent(self.eventType, forKey: .eventType) + try container.encodeIfPresent(self.groupIdentifier, forKey: .groupIdentifier) + request.encodePath(self.identifier, key: "Identifier") + try container.encodeIfPresent(self.name, forKey: .name) + } + + public func validate(name: String) throws { + try self.validate(self.description, name: "description", parent: name, max: 1024) + try self.eventTargets?.forEach { + try $0.validate(name: "\(name).eventTargets[]") + } + try self.validate(self.groupIdentifier, name: "groupIdentifier", parent: name, pattern: "^[^\\s]+$") + try self.validate(self.name, name: "name", parent: name, max: 255) + try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[^\\s]+$") + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case eventTargets = "eventTargets" + case eventType = "eventType" + case groupIdentifier = "groupIdentifier" + case name = "name" + } + } + + public struct UpdateEventBridgeRuleTemplateResponse: AWSDecodableShape { + /// An eventbridge rule template's ARN (Amazon Resource Name) + public let arn: String? + @OptionalCustomCoding + public var createdAt: Date? + /// A resource's optional description. + public let description: String? + public let eventTargets: [EventBridgeRuleTemplateTarget]? + public let eventType: EventBridgeRuleTemplateEventType? + /// An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-` + public let groupId: String? + /// An eventbridge rule template's id. AWS provided templates have ids that start with `aws-` + public let id: String? + @OptionalCustomCoding + public var modifiedAt: Date? + /// A resource's name. Names must be unique within the scope of a resource type in a specific region. + public let name: String? + public let tags: [String: String]? + + public init(arn: String? = nil, createdAt: Date? = nil, description: String? = nil, eventTargets: [EventBridgeRuleTemplateTarget]? = nil, eventType: EventBridgeRuleTemplateEventType? = nil, groupId: String? = nil, id: String? = nil, modifiedAt: Date? = nil, name: String? = nil, tags: [String: String]? = nil) { + self.arn = arn + self.createdAt = createdAt + self.description = description + self.eventTargets = eventTargets + self.eventType = eventType + self.groupId = groupId + self.id = id + self.modifiedAt = modifiedAt + self.name = name + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case createdAt = "createdAt" + case description = "description" + case eventTargets = "eventTargets" + case eventType = "eventType" + case groupId = "groupId" + case id = "id" + case modifiedAt = "modifiedAt" + case name = "name" + case tags = "tags" + } + } + public struct UpdateInputDeviceRequest: AWSEncodableShape { /// The Availability Zone you want associated with this input device. public let availabilityZone: String? diff --git a/Sources/Soto/Services/MediaPackageV2/MediaPackageV2_shapes.swift b/Sources/Soto/Services/MediaPackageV2/MediaPackageV2_shapes.swift index b67a0eff74..b58a27a6d6 100644 --- a/Sources/Soto/Services/MediaPackageV2/MediaPackageV2_shapes.swift +++ b/Sources/Soto/Services/MediaPackageV2/MediaPackageV2_shapes.swift @@ -26,6 +26,12 @@ import Foundation extension MediaPackageV2 { // MARK: Enums + public enum AdMarkerDash: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case binary = "BINARY" + case xml = "XML" + public var description: String { return self.rawValue } + } + public enum AdMarkerHls: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case daterange = "DATERANGE" public var description: String { return self.rawValue } @@ -43,6 +49,34 @@ extension MediaPackageV2 { public var description: String { return self.rawValue } } + public enum DashDrmSignaling: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case individual = "INDIVIDUAL" + case referenced = "REFERENCED" + public var description: String { return self.rawValue } + } + + public enum DashPeriodTrigger: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case avails = "AVAILS" + case drmKeyRotation = "DRM_KEY_ROTATION" + case none = "NONE" + case sourceChanges = "SOURCE_CHANGES" + case sourceDisruptions = "SOURCE_DISRUPTIONS" + public var description: String { return self.rawValue } + } + + public enum DashSegmentTemplateFormat: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case numberWithTimeline = "NUMBER_WITH_TIMELINE" + public var description: String { return self.rawValue } + } + + public enum DashUtcTimingMode: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case httpHead = "HTTP_HEAD" + case httpIso = "HTTP_ISO" + case httpXsdate = "HTTP_XSDATE" + case utcDirect = "UTC_DIRECT" + public var description: String { return self.rawValue } + } + public enum DrmSystem: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case clearKeyAes128 = "CLEAR_KEY_AES_128" case fairplay = "FAIRPLAY" @@ -335,6 +369,65 @@ extension MediaPackageV2 { } } + public struct CreateDashManifestConfiguration: AWSEncodableShape { + /// Determines how the DASH manifest signals the DRM content. + public let drmSignaling: DashDrmSignaling? + public let filterConfiguration: FilterConfiguration? + /// A short string that's appended to the endpoint URL. The child manifest name creates a unique path to this endpoint. + public let manifestName: String + /// The total duration (in seconds) of the manifest's content. + public let manifestWindowSeconds: Int? + /// Minimum amount of content (in seconds) that a player must keep available in the buffer. + public let minBufferTimeSeconds: Int? + /// Minimum amount of time (in seconds) that the player should wait before requesting updates to the manifest. + public let minUpdatePeriodSeconds: Int? + /// A list of triggers that controls when AWS Elemental MediaPackage separates the MPEG-DASH manifest into multiple periods. Type ADS to indicate that AWS Elemental MediaPackage must create periods in the output manifest that correspond to SCTE-35 ad markers in the input source. Leave this value empty to indicate that the manifest is contained all in one period. For more information about periods in the DASH manifest, see Multi-period DASH in AWS Elemental MediaPackage. + public let periodTriggers: [DashPeriodTrigger]? + /// The SCTE configuration. + public let scteDash: ScteDash? + /// Determines the type of variable used in the media URL of the SegmentTemplate tag in the manifest. Also specifies if segment timeline information is included in SegmentTimeline or SegmentTemplate. Value description: NUMBER_WITH_TIMELINE - The $Number$ variable is used in the media URL. The value of this variable is the sequential number of the segment. A full SegmentTimeline object is presented in each SegmentTemplate. + public let segmentTemplateFormat: DashSegmentTemplateFormat? + /// The amount of time (in seconds) that the player should be from the end of the manifest. + public let suggestedPresentationDelaySeconds: Int? + /// Determines the type of UTC timing included in the DASH Media Presentation Description (MPD). + public let utcTiming: DashUtcTiming? + + public init(drmSignaling: DashDrmSignaling? = nil, filterConfiguration: FilterConfiguration? = nil, manifestName: String, manifestWindowSeconds: Int? = nil, minBufferTimeSeconds: Int? = nil, minUpdatePeriodSeconds: Int? = nil, periodTriggers: [DashPeriodTrigger]? = nil, scteDash: ScteDash? = nil, segmentTemplateFormat: DashSegmentTemplateFormat? = nil, suggestedPresentationDelaySeconds: Int? = nil, utcTiming: DashUtcTiming? = nil) { + self.drmSignaling = drmSignaling + self.filterConfiguration = filterConfiguration + self.manifestName = manifestName + self.manifestWindowSeconds = manifestWindowSeconds + self.minBufferTimeSeconds = minBufferTimeSeconds + self.minUpdatePeriodSeconds = minUpdatePeriodSeconds + self.periodTriggers = periodTriggers + self.scteDash = scteDash + self.segmentTemplateFormat = segmentTemplateFormat + self.suggestedPresentationDelaySeconds = suggestedPresentationDelaySeconds + self.utcTiming = utcTiming + } + + public func validate(name: String) throws { + try self.validate(self.manifestName, name: "manifestName", parent: name, max: 256) + try self.validate(self.manifestName, name: "manifestName", parent: name, min: 1) + try self.validate(self.manifestName, name: "manifestName", parent: name, pattern: "^[a-zA-Z0-9-]+$") + try self.validate(self.periodTriggers, name: "periodTriggers", parent: name, max: 100) + } + + private enum CodingKeys: String, CodingKey { + case drmSignaling = "DrmSignaling" + case filterConfiguration = "FilterConfiguration" + case manifestName = "ManifestName" + case manifestWindowSeconds = "ManifestWindowSeconds" + case minBufferTimeSeconds = "MinBufferTimeSeconds" + case minUpdatePeriodSeconds = "MinUpdatePeriodSeconds" + case periodTriggers = "PeriodTriggers" + case scteDash = "ScteDash" + case segmentTemplateFormat = "SegmentTemplateFormat" + case suggestedPresentationDelaySeconds = "SuggestedPresentationDelaySeconds" + case utcTiming = "UtcTiming" + } + } + public struct CreateHlsManifestConfiguration: AWSEncodableShape { /// A short string that's appended to the endpoint URL. The child manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default manifest name, index, with an added suffix to distinguish it from the manifest name. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object. public let childManifestName: String? @@ -424,6 +517,8 @@ extension MediaPackageV2 { public let clientToken: String? /// The type of container to attach to this origin endpoint. A container type is a file format that encapsulates one or more media streams, such as audio and video, into a single file. You can't change the container type after you create the endpoint. public let containerType: ContainerType + /// A DASH manifest configuration. + public let dashManifests: [CreateDashManifestConfiguration]? /// Enter any descriptive text that helps you to identify the origin endpoint. public let description: String? /// An HTTP live streaming (HLS) manifest configuration. @@ -439,11 +534,12 @@ extension MediaPackageV2 { /// A comma-separated list of tag key:value pairs that you define. For example: "Key1": "Value1", "Key2": "Value2" public let tags: [String: String]? - public init(channelGroupName: String, channelName: String, clientToken: String? = CreateOriginEndpointRequest.idempotencyToken(), containerType: ContainerType, description: String? = nil, hlsManifests: [CreateHlsManifestConfiguration]? = nil, lowLatencyHlsManifests: [CreateLowLatencyHlsManifestConfiguration]? = nil, originEndpointName: String, segment: Segment? = nil, startoverWindowSeconds: Int? = nil, tags: [String: String]? = nil) { + public init(channelGroupName: String, channelName: String, clientToken: String? = CreateOriginEndpointRequest.idempotencyToken(), containerType: ContainerType, dashManifests: [CreateDashManifestConfiguration]? = nil, description: String? = nil, hlsManifests: [CreateHlsManifestConfiguration]? = nil, lowLatencyHlsManifests: [CreateLowLatencyHlsManifestConfiguration]? = nil, originEndpointName: String, segment: Segment? = nil, startoverWindowSeconds: Int? = nil, tags: [String: String]? = nil) { self.channelGroupName = channelGroupName self.channelName = channelName self.clientToken = clientToken self.containerType = containerType + self.dashManifests = dashManifests self.description = description self.hlsManifests = hlsManifests self.lowLatencyHlsManifests = lowLatencyHlsManifests @@ -460,6 +556,7 @@ extension MediaPackageV2 { request.encodePath(self.channelName, key: "ChannelName") request.encodeHeader(self.clientToken, key: "x-amzn-client-token") try container.encode(self.containerType, forKey: .containerType) + try container.encodeIfPresent(self.dashManifests, forKey: .dashManifests) try container.encodeIfPresent(self.description, forKey: .description) try container.encodeIfPresent(self.hlsManifests, forKey: .hlsManifests) try container.encodeIfPresent(self.lowLatencyHlsManifests, forKey: .lowLatencyHlsManifests) @@ -479,6 +576,9 @@ extension MediaPackageV2 { try self.validate(self.clientToken, name: "clientToken", parent: name, max: 256) try self.validate(self.clientToken, name: "clientToken", parent: name, min: 1) try self.validate(self.clientToken, name: "clientToken", parent: name, pattern: "^[\\S]+$") + try self.dashManifests?.forEach { + try $0.validate(name: "\(name).dashManifests[]") + } try self.validate(self.description, name: "description", parent: name, max: 1024) try self.hlsManifests?.forEach { try $0.validate(name: "\(name).hlsManifests[]") @@ -494,6 +594,7 @@ extension MediaPackageV2 { private enum CodingKeys: String, CodingKey { case containerType = "ContainerType" + case dashManifests = "DashManifests" case description = "Description" case hlsManifests = "HlsManifests" case lowLatencyHlsManifests = "LowLatencyHlsManifests" @@ -515,6 +616,8 @@ extension MediaPackageV2 { public let containerType: ContainerType /// The date and time the origin endpoint was created. public let createdAt: Date + /// A DASH manifest configuration. + public let dashManifests: [GetDashManifestConfiguration]? /// The description for your origin endpoint. public let description: String? /// The current Entity Tag (ETag) associated with this resource. The entity tag can be used to safely make concurrent updates to the resource. @@ -534,12 +637,13 @@ extension MediaPackageV2 { /// The comma-separated list of tag key:value pairs assigned to the origin endpoint. public let tags: [String: String]? - public init(arn: String, channelGroupName: String, channelName: String, containerType: ContainerType, createdAt: Date, description: String? = nil, eTag: String? = nil, hlsManifests: [GetHlsManifestConfiguration]? = nil, lowLatencyHlsManifests: [GetLowLatencyHlsManifestConfiguration]? = nil, modifiedAt: Date, originEndpointName: String, segment: Segment, startoverWindowSeconds: Int? = nil, tags: [String: String]? = nil) { + public init(arn: String, channelGroupName: String, channelName: String, containerType: ContainerType, createdAt: Date, dashManifests: [GetDashManifestConfiguration]? = nil, description: String? = nil, eTag: String? = nil, hlsManifests: [GetHlsManifestConfiguration]? = nil, lowLatencyHlsManifests: [GetLowLatencyHlsManifestConfiguration]? = nil, modifiedAt: Date, originEndpointName: String, segment: Segment, startoverWindowSeconds: Int? = nil, tags: [String: String]? = nil) { self.arn = arn self.channelGroupName = channelGroupName self.channelName = channelName self.containerType = containerType self.createdAt = createdAt + self.dashManifests = dashManifests self.description = description self.eTag = eTag self.hlsManifests = hlsManifests @@ -557,6 +661,7 @@ extension MediaPackageV2 { case channelName = "ChannelName" case containerType = "ContainerType" case createdAt = "CreatedAt" + case dashManifests = "DashManifests" case description = "Description" case eTag = "ETag" case hlsManifests = "HlsManifests" @@ -569,6 +674,23 @@ extension MediaPackageV2 { } } + public struct DashUtcTiming: AWSEncodableShape & AWSDecodableShape { + /// The UTC timing mode. + public let timingMode: DashUtcTimingMode? + /// The the method that the player uses to synchronize to coordinated universal time (UTC) wall clock time. + public let timingSource: String? + + public init(timingMode: DashUtcTimingMode? = nil, timingSource: String? = nil) { + self.timingMode = timingMode + self.timingSource = timingSource + } + + private enum CodingKeys: String, CodingKey { + case timingMode = "TimingMode" + case timingSource = "TimingSource" + } + } + public struct DeleteChannelGroupRequest: AWSEncodableShape { /// The name that describes the channel group. The name is the primary identifier for the channel group, and must be unique for your account in the AWS Region. public let channelGroupName: String @@ -1019,6 +1141,62 @@ extension MediaPackageV2 { } } + public struct GetDashManifestConfiguration: AWSDecodableShape { + /// Determines how the DASH manifest signals the DRM content. + public let drmSignaling: DashDrmSignaling? + public let filterConfiguration: FilterConfiguration? + /// A short string that's appended to the endpoint URL. The manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default manifest name, index. + public let manifestName: String + /// The total duration (in seconds) of the manifest's content. + public let manifestWindowSeconds: Int? + /// Minimum amount of content (in seconds) that a player must keep available in the buffer. + public let minBufferTimeSeconds: Int? + /// Minimum amount of time (in seconds) that the player should wait before requesting updates to the manifest. + public let minUpdatePeriodSeconds: Int? + /// A list of triggers that controls when AWS Elemental MediaPackage separates the MPEG-DASH manifest into multiple periods. Leave this value empty to indicate that the manifest is contained all in one period. For more information about periods in the DASH manifest, see Multi-period DASH in AWS Elemental MediaPackage. + public let periodTriggers: [DashPeriodTrigger]? + /// The SCTE configuration. + public let scteDash: ScteDash? + /// Determines the type of variable used in the media URL of the SegmentTemplate tag in the manifest. Also specifies if segment timeline information is included in SegmentTimeline or SegmentTemplate. Value description: NUMBER_WITH_TIMELINE - The $Number$ variable is used in the media URL. The value of this variable is the sequential number of the segment. A full SegmentTimeline object is presented in each SegmentTemplate. + public let segmentTemplateFormat: DashSegmentTemplateFormat? + /// The amount of time (in seconds) that the player should be from the end of the manifest. + public let suggestedPresentationDelaySeconds: Int? + /// The egress domain URL for stream delivery from MediaPackage. + public let url: String + /// Determines the type of UTC timing included in the DASH Media Presentation Description (MPD). + public let utcTiming: DashUtcTiming? + + public init(drmSignaling: DashDrmSignaling? = nil, filterConfiguration: FilterConfiguration? = nil, manifestName: String, manifestWindowSeconds: Int? = nil, minBufferTimeSeconds: Int? = nil, minUpdatePeriodSeconds: Int? = nil, periodTriggers: [DashPeriodTrigger]? = nil, scteDash: ScteDash? = nil, segmentTemplateFormat: DashSegmentTemplateFormat? = nil, suggestedPresentationDelaySeconds: Int? = nil, url: String, utcTiming: DashUtcTiming? = nil) { + self.drmSignaling = drmSignaling + self.filterConfiguration = filterConfiguration + self.manifestName = manifestName + self.manifestWindowSeconds = manifestWindowSeconds + self.minBufferTimeSeconds = minBufferTimeSeconds + self.minUpdatePeriodSeconds = minUpdatePeriodSeconds + self.periodTriggers = periodTriggers + self.scteDash = scteDash + self.segmentTemplateFormat = segmentTemplateFormat + self.suggestedPresentationDelaySeconds = suggestedPresentationDelaySeconds + self.url = url + self.utcTiming = utcTiming + } + + private enum CodingKeys: String, CodingKey { + case drmSignaling = "DrmSignaling" + case filterConfiguration = "FilterConfiguration" + case manifestName = "ManifestName" + case manifestWindowSeconds = "ManifestWindowSeconds" + case minBufferTimeSeconds = "MinBufferTimeSeconds" + case minUpdatePeriodSeconds = "MinUpdatePeriodSeconds" + case periodTriggers = "PeriodTriggers" + case scteDash = "ScteDash" + case segmentTemplateFormat = "SegmentTemplateFormat" + case suggestedPresentationDelaySeconds = "SuggestedPresentationDelaySeconds" + case url = "Url" + case utcTiming = "UtcTiming" + } + } + public struct GetHlsManifestConfiguration: AWSDecodableShape { /// A short string that's appended to the endpoint URL. The child manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default child manifest name, index_1. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object. public let childManifestName: String? @@ -1199,6 +1377,8 @@ extension MediaPackageV2 { public let containerType: ContainerType /// The date and time the origin endpoint was created. public let createdAt: Date + /// A DASH manifest configuration. + public let dashManifests: [GetDashManifestConfiguration]? /// The description for your origin endpoint. public let description: String? /// The current Entity Tag (ETag) associated with this resource. The entity tag can be used to safely make concurrent updates to the resource. @@ -1217,12 +1397,13 @@ extension MediaPackageV2 { /// The comma-separated list of tag key:value pairs assigned to the origin endpoint. public let tags: [String: String]? - public init(arn: String, channelGroupName: String, channelName: String, containerType: ContainerType, createdAt: Date, description: String? = nil, eTag: String? = nil, hlsManifests: [GetHlsManifestConfiguration]? = nil, lowLatencyHlsManifests: [GetLowLatencyHlsManifestConfiguration]? = nil, modifiedAt: Date, originEndpointName: String, segment: Segment, startoverWindowSeconds: Int? = nil, tags: [String: String]? = nil) { + public init(arn: String, channelGroupName: String, channelName: String, containerType: ContainerType, createdAt: Date, dashManifests: [GetDashManifestConfiguration]? = nil, description: String? = nil, eTag: String? = nil, hlsManifests: [GetHlsManifestConfiguration]? = nil, lowLatencyHlsManifests: [GetLowLatencyHlsManifestConfiguration]? = nil, modifiedAt: Date, originEndpointName: String, segment: Segment, startoverWindowSeconds: Int? = nil, tags: [String: String]? = nil) { self.arn = arn self.channelGroupName = channelGroupName self.channelName = channelName self.containerType = containerType self.createdAt = createdAt + self.dashManifests = dashManifests self.description = description self.eTag = eTag self.hlsManifests = hlsManifests @@ -1240,6 +1421,7 @@ extension MediaPackageV2 { case channelName = "ChannelName" case containerType = "ContainerType" case createdAt = "CreatedAt" + case dashManifests = "DashManifests" case description = "Description" case eTag = "ETag" case hlsManifests = "HlsManifests" @@ -1362,6 +1544,23 @@ extension MediaPackageV2 { } } + public struct ListDashManifestConfiguration: AWSDecodableShape { + /// A short string that's appended to the endpoint URL. The manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default manifest name, index. + public let manifestName: String + /// The egress domain URL for stream delivery from MediaPackage. + public let url: String? + + public init(manifestName: String, url: String? = nil) { + self.manifestName = manifestName + self.url = url + } + + private enum CodingKeys: String, CodingKey { + case manifestName = "ManifestName" + case url = "Url" + } + } + public struct ListHlsManifestConfiguration: AWSDecodableShape { /// A short string that's appended to the endpoint URL. The child manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default child manifest name, index_1. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object. public let childManifestName: String? @@ -1502,6 +1701,8 @@ extension MediaPackageV2 { public let containerType: ContainerType /// The date and time the origin endpoint was created. public let createdAt: Date? + /// A DASH manifest configuration. + public let dashManifests: [ListDashManifestConfiguration]? /// Any descriptive information that you want to add to the origin endpoint for future identification purposes. public let description: String? /// An HTTP live streaming (HLS) manifest configuration. @@ -1513,12 +1714,13 @@ extension MediaPackageV2 { /// The name that describes the origin endpoint. The name is the primary identifier for the origin endpoint, and and must be unique for your account in the AWS Region and channel. public let originEndpointName: String - public init(arn: String, channelGroupName: String, channelName: String, containerType: ContainerType, createdAt: Date? = nil, description: String? = nil, hlsManifests: [ListHlsManifestConfiguration]? = nil, lowLatencyHlsManifests: [ListLowLatencyHlsManifestConfiguration]? = nil, modifiedAt: Date? = nil, originEndpointName: String) { + public init(arn: String, channelGroupName: String, channelName: String, containerType: ContainerType, createdAt: Date? = nil, dashManifests: [ListDashManifestConfiguration]? = nil, description: String? = nil, hlsManifests: [ListHlsManifestConfiguration]? = nil, lowLatencyHlsManifests: [ListLowLatencyHlsManifestConfiguration]? = nil, modifiedAt: Date? = nil, originEndpointName: String) { self.arn = arn self.channelGroupName = channelGroupName self.channelName = channelName self.containerType = containerType self.createdAt = createdAt + self.dashManifests = dashManifests self.description = description self.hlsManifests = hlsManifests self.lowLatencyHlsManifests = lowLatencyHlsManifests @@ -1532,6 +1734,7 @@ extension MediaPackageV2 { case channelName = "ChannelName" case containerType = "ContainerType" case createdAt = "CreatedAt" + case dashManifests = "DashManifests" case description = "Description" case hlsManifests = "HlsManifests" case lowLatencyHlsManifests = "LowLatencyHlsManifests" @@ -1646,6 +1849,19 @@ extension MediaPackageV2 { } } + public struct ScteDash: AWSEncodableShape & AWSDecodableShape { + /// Choose how ad markers are included in the packaged content. If you include ad markers in the content stream in your upstream encoders, then you need to inform MediaPackage what to do with the ad markers in the output. Value description: Binary - The SCTE-35 marker is expressed as a hex-string (Base64 string) rather than full XML. XML - The SCTE marker is expressed fully in XML. + public let adMarkerDash: AdMarkerDash? + + public init(adMarkerDash: AdMarkerDash? = nil) { + self.adMarkerDash = adMarkerDash + } + + private enum CodingKeys: String, CodingKey { + case adMarkerDash = "AdMarkerDash" + } + } + public struct ScteHls: AWSEncodableShape & AWSDecodableShape { /// Ad markers indicate when ads should be inserted during playback. If you include ad markers in the content stream in your upstream encoders, then you need to inform MediaPackage what to do with the ad markers in the output. Choose what you want MediaPackage to do with the ad markers. Value description: DATERANGE - Insert EXT-X-DATERANGE tags to signal ad and program transition events in TS and CMAF manifests. If you use DATERANGE, you must set a programDateTimeIntervalSeconds value of 1 or higher. To learn more about DATERANGE, see SCTE-35 Ad Marker EXT-X-DATERANGE. public let adMarkerHls: AdMarkerHls? @@ -1945,6 +2161,8 @@ extension MediaPackageV2 { public let channelName: String /// The type of container attached to this origin endpoint. A container type is a file format that encapsulates one or more media streams, such as audio and video, into a single file. public let containerType: ContainerType + /// A DASH manifest configuration. + public let dashManifests: [CreateDashManifestConfiguration]? /// Any descriptive information that you want to add to the origin endpoint for future identification purposes. public let description: String? /// The expected current Entity Tag (ETag) for the resource. If the specified ETag does not match the resource's current entity tag, the update request will be rejected. @@ -1960,10 +2178,11 @@ extension MediaPackageV2 { /// The size of the window (in seconds) to create a window of the live stream that's available for on-demand viewing. Viewers can start-over or catch-up on content that falls within the window. The maximum startover window is 1,209,600 seconds (14 days). public let startoverWindowSeconds: Int? - public init(channelGroupName: String, channelName: String, containerType: ContainerType, description: String? = nil, eTag: String? = nil, hlsManifests: [CreateHlsManifestConfiguration]? = nil, lowLatencyHlsManifests: [CreateLowLatencyHlsManifestConfiguration]? = nil, originEndpointName: String, segment: Segment? = nil, startoverWindowSeconds: Int? = nil) { + public init(channelGroupName: String, channelName: String, containerType: ContainerType, dashManifests: [CreateDashManifestConfiguration]? = nil, description: String? = nil, eTag: String? = nil, hlsManifests: [CreateHlsManifestConfiguration]? = nil, lowLatencyHlsManifests: [CreateLowLatencyHlsManifestConfiguration]? = nil, originEndpointName: String, segment: Segment? = nil, startoverWindowSeconds: Int? = nil) { self.channelGroupName = channelGroupName self.channelName = channelName self.containerType = containerType + self.dashManifests = dashManifests self.description = description self.eTag = eTag self.hlsManifests = hlsManifests @@ -1979,6 +2198,7 @@ extension MediaPackageV2 { request.encodePath(self.channelGroupName, key: "ChannelGroupName") request.encodePath(self.channelName, key: "ChannelName") try container.encode(self.containerType, forKey: .containerType) + try container.encodeIfPresent(self.dashManifests, forKey: .dashManifests) try container.encodeIfPresent(self.description, forKey: .description) request.encodeHeader(self.eTag, key: "x-amzn-update-if-match") try container.encodeIfPresent(self.hlsManifests, forKey: .hlsManifests) @@ -1995,6 +2215,9 @@ extension MediaPackageV2 { try self.validate(self.channelName, name: "channelName", parent: name, max: 256) try self.validate(self.channelName, name: "channelName", parent: name, min: 1) try self.validate(self.channelName, name: "channelName", parent: name, pattern: "^[a-zA-Z0-9_-]+$") + try self.dashManifests?.forEach { + try $0.validate(name: "\(name).dashManifests[]") + } try self.validate(self.description, name: "description", parent: name, max: 1024) try self.validate(self.eTag, name: "eTag", parent: name, max: 256) try self.validate(self.eTag, name: "eTag", parent: name, min: 1) @@ -2013,6 +2236,7 @@ extension MediaPackageV2 { private enum CodingKeys: String, CodingKey { case containerType = "ContainerType" + case dashManifests = "DashManifests" case description = "Description" case hlsManifests = "HlsManifests" case lowLatencyHlsManifests = "LowLatencyHlsManifests" @@ -2032,6 +2256,8 @@ extension MediaPackageV2 { public let containerType: ContainerType /// The date and time the origin endpoint was created. public let createdAt: Date + /// A DASH manifest configuration. + public let dashManifests: [GetDashManifestConfiguration]? /// The description of the origin endpoint. public let description: String? /// The current Entity Tag (ETag) associated with this resource. The entity tag can be used to safely make concurrent updates to the resource. @@ -2051,12 +2277,13 @@ extension MediaPackageV2 { /// The comma-separated list of tag key:value pairs assigned to the origin endpoint. public let tags: [String: String]? - public init(arn: String, channelGroupName: String, channelName: String, containerType: ContainerType, createdAt: Date, description: String? = nil, eTag: String? = nil, hlsManifests: [GetHlsManifestConfiguration]? = nil, lowLatencyHlsManifests: [GetLowLatencyHlsManifestConfiguration]? = nil, modifiedAt: Date, originEndpointName: String, segment: Segment, startoverWindowSeconds: Int? = nil, tags: [String: String]? = nil) { + public init(arn: String, channelGroupName: String, channelName: String, containerType: ContainerType, createdAt: Date, dashManifests: [GetDashManifestConfiguration]? = nil, description: String? = nil, eTag: String? = nil, hlsManifests: [GetHlsManifestConfiguration]? = nil, lowLatencyHlsManifests: [GetLowLatencyHlsManifestConfiguration]? = nil, modifiedAt: Date, originEndpointName: String, segment: Segment, startoverWindowSeconds: Int? = nil, tags: [String: String]? = nil) { self.arn = arn self.channelGroupName = channelGroupName self.channelName = channelName self.containerType = containerType self.createdAt = createdAt + self.dashManifests = dashManifests self.description = description self.eTag = eTag self.hlsManifests = hlsManifests @@ -2074,6 +2301,7 @@ extension MediaPackageV2 { case channelName = "ChannelName" case containerType = "ContainerType" case createdAt = "CreatedAt" + case dashManifests = "DashManifests" case description = "Description" case eTag = "ETag" case hlsManifests = "HlsManifests" diff --git a/Sources/Soto/Services/MediaTailor/MediaTailor_shapes.swift b/Sources/Soto/Services/MediaTailor/MediaTailor_shapes.swift index 7f0efe640f..3866b4a8b6 100644 --- a/Sources/Soto/Services/MediaTailor/MediaTailor_shapes.swift +++ b/Sources/Soto/Services/MediaTailor/MediaTailor_shapes.swift @@ -58,6 +58,12 @@ extension MediaTailor { public var description: String { return self.rawValue } } + public enum InsertionMode: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case playerSelect = "PLAYER_SELECT" + case stitchedOnly = "STITCHED_ONLY" + public var description: String { return self.rawValue } + } + public enum LogType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case asRun = "AS_RUN" public var description: String { return self.rawValue } @@ -1749,6 +1755,8 @@ extension MediaTailor { public let dashConfiguration: DashConfiguration? /// The configuration for HLS content. public let hlsConfiguration: HlsConfiguration? + /// The setting that controls whether players can use stitched or guided ad insertion. The default, STITCHED_ONLY, forces all player sessions to use stitched (server-side) ad insertion. Choosing PLAYER_SELECT allows players to select either stitched or guided ad insertion at session-initialization time. The default for players that do not specify an insertion mode is stitched. + public let insertionMode: InsertionMode? /// The configuration for pre-roll ad insertion. public let livePreRollConfiguration: LivePreRollConfiguration? /// The Amazon CloudWatch log settings for a playback configuration. @@ -1774,7 +1782,7 @@ extension MediaTailor { /// The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters. public let videoContentSourceUrl: String? - public init(adDecisionServerUrl: String? = nil, availSuppression: AvailSuppression? = nil, bumper: Bumper? = nil, cdnConfiguration: CdnConfiguration? = nil, configurationAliases: [String: [String: String]]? = nil, dashConfiguration: DashConfiguration? = nil, hlsConfiguration: HlsConfiguration? = nil, livePreRollConfiguration: LivePreRollConfiguration? = nil, logConfiguration: LogConfiguration? = nil, manifestProcessingRules: ManifestProcessingRules? = nil, name: String? = nil, personalizationThresholdSeconds: Int? = nil, playbackConfigurationArn: String? = nil, playbackEndpointPrefix: String? = nil, sessionInitializationEndpointPrefix: String? = nil, slateAdUrl: String? = nil, tags: [String: String]? = nil, transcodeProfileName: String? = nil, videoContentSourceUrl: String? = nil) { + public init(adDecisionServerUrl: String? = nil, availSuppression: AvailSuppression? = nil, bumper: Bumper? = nil, cdnConfiguration: CdnConfiguration? = nil, configurationAliases: [String: [String: String]]? = nil, dashConfiguration: DashConfiguration? = nil, hlsConfiguration: HlsConfiguration? = nil, insertionMode: InsertionMode? = nil, livePreRollConfiguration: LivePreRollConfiguration? = nil, logConfiguration: LogConfiguration? = nil, manifestProcessingRules: ManifestProcessingRules? = nil, name: String? = nil, personalizationThresholdSeconds: Int? = nil, playbackConfigurationArn: String? = nil, playbackEndpointPrefix: String? = nil, sessionInitializationEndpointPrefix: String? = nil, slateAdUrl: String? = nil, tags: [String: String]? = nil, transcodeProfileName: String? = nil, videoContentSourceUrl: String? = nil) { self.adDecisionServerUrl = adDecisionServerUrl self.availSuppression = availSuppression self.bumper = bumper @@ -1782,6 +1790,7 @@ extension MediaTailor { self.configurationAliases = configurationAliases self.dashConfiguration = dashConfiguration self.hlsConfiguration = hlsConfiguration + self.insertionMode = insertionMode self.livePreRollConfiguration = livePreRollConfiguration self.logConfiguration = logConfiguration self.manifestProcessingRules = manifestProcessingRules @@ -1804,6 +1813,7 @@ extension MediaTailor { case configurationAliases = "ConfigurationAliases" case dashConfiguration = "DashConfiguration" case hlsConfiguration = "HlsConfiguration" + case insertionMode = "InsertionMode" case livePreRollConfiguration = "LivePreRollConfiguration" case logConfiguration = "LogConfiguration" case manifestProcessingRules = "ManifestProcessingRules" @@ -2419,6 +2429,8 @@ extension MediaTailor { public let dashConfiguration: DashConfiguration? /// The configuration for HLS content. public let hlsConfiguration: HlsConfiguration? + /// The setting that controls whether players can use stitched or guided ad insertion. The default, STITCHED_ONLY, forces all player sessions to use stitched (server-side) ad insertion. Choosing PLAYER_SELECT allows players to select either stitched or guided ad insertion at session-initialization time. The default for players that do not specify an insertion mode is stitched. + public let insertionMode: InsertionMode? /// The configuration for pre-roll ad insertion. public let livePreRollConfiguration: LivePreRollConfiguration? /// The Amazon CloudWatch log settings for a playback configuration. @@ -2444,7 +2456,7 @@ extension MediaTailor { /// The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters. public let videoContentSourceUrl: String? - public init(adDecisionServerUrl: String? = nil, availSuppression: AvailSuppression? = nil, bumper: Bumper? = nil, cdnConfiguration: CdnConfiguration? = nil, configurationAliases: [String: [String: String]]? = nil, dashConfiguration: DashConfiguration? = nil, hlsConfiguration: HlsConfiguration? = nil, livePreRollConfiguration: LivePreRollConfiguration? = nil, logConfiguration: LogConfiguration? = nil, manifestProcessingRules: ManifestProcessingRules? = nil, name: String? = nil, personalizationThresholdSeconds: Int? = nil, playbackConfigurationArn: String? = nil, playbackEndpointPrefix: String? = nil, sessionInitializationEndpointPrefix: String? = nil, slateAdUrl: String? = nil, tags: [String: String]? = nil, transcodeProfileName: String? = nil, videoContentSourceUrl: String? = nil) { + public init(adDecisionServerUrl: String? = nil, availSuppression: AvailSuppression? = nil, bumper: Bumper? = nil, cdnConfiguration: CdnConfiguration? = nil, configurationAliases: [String: [String: String]]? = nil, dashConfiguration: DashConfiguration? = nil, hlsConfiguration: HlsConfiguration? = nil, insertionMode: InsertionMode? = nil, livePreRollConfiguration: LivePreRollConfiguration? = nil, logConfiguration: LogConfiguration? = nil, manifestProcessingRules: ManifestProcessingRules? = nil, name: String? = nil, personalizationThresholdSeconds: Int? = nil, playbackConfigurationArn: String? = nil, playbackEndpointPrefix: String? = nil, sessionInitializationEndpointPrefix: String? = nil, slateAdUrl: String? = nil, tags: [String: String]? = nil, transcodeProfileName: String? = nil, videoContentSourceUrl: String? = nil) { self.adDecisionServerUrl = adDecisionServerUrl self.availSuppression = availSuppression self.bumper = bumper @@ -2452,6 +2464,7 @@ extension MediaTailor { self.configurationAliases = configurationAliases self.dashConfiguration = dashConfiguration self.hlsConfiguration = hlsConfiguration + self.insertionMode = insertionMode self.livePreRollConfiguration = livePreRollConfiguration self.logConfiguration = logConfiguration self.manifestProcessingRules = manifestProcessingRules @@ -2474,6 +2487,7 @@ extension MediaTailor { case configurationAliases = "ConfigurationAliases" case dashConfiguration = "DashConfiguration" case hlsConfiguration = "HlsConfiguration" + case insertionMode = "InsertionMode" case livePreRollConfiguration = "LivePreRollConfiguration" case logConfiguration = "LogConfiguration" case manifestProcessingRules = "ManifestProcessingRules" @@ -2608,6 +2622,8 @@ extension MediaTailor { public let configurationAliases: [String: [String: String]]? /// The configuration for DASH content. public let dashConfiguration: DashConfigurationForPut? + /// The setting that controls whether players can use stitched or guided ad insertion. The default, STITCHED_ONLY, forces all player sessions to use stitched (server-side) ad insertion. Choosing PLAYER_SELECT allows players to select either stitched or guided ad insertion at session-initialization time. The default for players that do not specify an insertion mode is stitched. + public let insertionMode: InsertionMode? /// The configuration for pre-roll ad insertion. public let livePreRollConfiguration: LivePreRollConfiguration? /// The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor. @@ -2625,13 +2641,14 @@ extension MediaTailor { /// The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters. public let videoContentSourceUrl: String? - public init(adDecisionServerUrl: String? = nil, availSuppression: AvailSuppression? = nil, bumper: Bumper? = nil, cdnConfiguration: CdnConfiguration? = nil, configurationAliases: [String: [String: String]]? = nil, dashConfiguration: DashConfigurationForPut? = nil, livePreRollConfiguration: LivePreRollConfiguration? = nil, manifestProcessingRules: ManifestProcessingRules? = nil, name: String, personalizationThresholdSeconds: Int? = nil, slateAdUrl: String? = nil, tags: [String: String]? = nil, transcodeProfileName: String? = nil, videoContentSourceUrl: String? = nil) { + public init(adDecisionServerUrl: String? = nil, availSuppression: AvailSuppression? = nil, bumper: Bumper? = nil, cdnConfiguration: CdnConfiguration? = nil, configurationAliases: [String: [String: String]]? = nil, dashConfiguration: DashConfigurationForPut? = nil, insertionMode: InsertionMode? = nil, livePreRollConfiguration: LivePreRollConfiguration? = nil, manifestProcessingRules: ManifestProcessingRules? = nil, name: String, personalizationThresholdSeconds: Int? = nil, slateAdUrl: String? = nil, tags: [String: String]? = nil, transcodeProfileName: String? = nil, videoContentSourceUrl: String? = nil) { self.adDecisionServerUrl = adDecisionServerUrl self.availSuppression = availSuppression self.bumper = bumper self.cdnConfiguration = cdnConfiguration self.configurationAliases = configurationAliases self.dashConfiguration = dashConfiguration + self.insertionMode = insertionMode self.livePreRollConfiguration = livePreRollConfiguration self.manifestProcessingRules = manifestProcessingRules self.name = name @@ -2653,6 +2670,7 @@ extension MediaTailor { case cdnConfiguration = "CdnConfiguration" case configurationAliases = "ConfigurationAliases" case dashConfiguration = "DashConfiguration" + case insertionMode = "InsertionMode" case livePreRollConfiguration = "LivePreRollConfiguration" case manifestProcessingRules = "ManifestProcessingRules" case name = "Name" @@ -2679,6 +2697,8 @@ extension MediaTailor { public let dashConfiguration: DashConfiguration? /// The configuration for HLS content. public let hlsConfiguration: HlsConfiguration? + /// The setting that controls whether players can use stitched or guided ad insertion. The default, STITCHED_ONLY, forces all player sessions to use stitched (server-side) ad insertion. Choosing PLAYER_SELECT allows players to select either stitched or guided ad insertion at session-initialization time. The default for players that do not specify an insertion mode is stitched. + public let insertionMode: InsertionMode? /// The configuration for pre-roll ad insertion. public let livePreRollConfiguration: LivePreRollConfiguration? /// The Amazon CloudWatch log settings for a playback configuration. @@ -2704,7 +2724,7 @@ extension MediaTailor { /// The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters. public let videoContentSourceUrl: String? - public init(adDecisionServerUrl: String? = nil, availSuppression: AvailSuppression? = nil, bumper: Bumper? = nil, cdnConfiguration: CdnConfiguration? = nil, configurationAliases: [String: [String: String]]? = nil, dashConfiguration: DashConfiguration? = nil, hlsConfiguration: HlsConfiguration? = nil, livePreRollConfiguration: LivePreRollConfiguration? = nil, logConfiguration: LogConfiguration? = nil, manifestProcessingRules: ManifestProcessingRules? = nil, name: String? = nil, personalizationThresholdSeconds: Int? = nil, playbackConfigurationArn: String? = nil, playbackEndpointPrefix: String? = nil, sessionInitializationEndpointPrefix: String? = nil, slateAdUrl: String? = nil, tags: [String: String]? = nil, transcodeProfileName: String? = nil, videoContentSourceUrl: String? = nil) { + public init(adDecisionServerUrl: String? = nil, availSuppression: AvailSuppression? = nil, bumper: Bumper? = nil, cdnConfiguration: CdnConfiguration? = nil, configurationAliases: [String: [String: String]]? = nil, dashConfiguration: DashConfiguration? = nil, hlsConfiguration: HlsConfiguration? = nil, insertionMode: InsertionMode? = nil, livePreRollConfiguration: LivePreRollConfiguration? = nil, logConfiguration: LogConfiguration? = nil, manifestProcessingRules: ManifestProcessingRules? = nil, name: String? = nil, personalizationThresholdSeconds: Int? = nil, playbackConfigurationArn: String? = nil, playbackEndpointPrefix: String? = nil, sessionInitializationEndpointPrefix: String? = nil, slateAdUrl: String? = nil, tags: [String: String]? = nil, transcodeProfileName: String? = nil, videoContentSourceUrl: String? = nil) { self.adDecisionServerUrl = adDecisionServerUrl self.availSuppression = availSuppression self.bumper = bumper @@ -2712,6 +2732,7 @@ extension MediaTailor { self.configurationAliases = configurationAliases self.dashConfiguration = dashConfiguration self.hlsConfiguration = hlsConfiguration + self.insertionMode = insertionMode self.livePreRollConfiguration = livePreRollConfiguration self.logConfiguration = logConfiguration self.manifestProcessingRules = manifestProcessingRules @@ -2734,6 +2755,7 @@ extension MediaTailor { case configurationAliases = "ConfigurationAliases" case dashConfiguration = "DashConfiguration" case hlsConfiguration = "HlsConfiguration" + case insertionMode = "InsertionMode" case livePreRollConfiguration = "LivePreRollConfiguration" case logConfiguration = "LogConfiguration" case manifestProcessingRules = "ManifestProcessingRules" diff --git a/Sources/Soto/Services/Mgn/Mgn_api.swift b/Sources/Soto/Services/Mgn/Mgn_api.swift index 1289ee288d..437c297222 100644 --- a/Sources/Soto/Services/Mgn/Mgn_api.swift +++ b/Sources/Soto/Services/Mgn/Mgn_api.swift @@ -904,7 +904,7 @@ public struct Mgn: AWSService { ) } - /// Updates multiple LaunchConfigurations by Source Server ID. + /// Updates multiple LaunchConfigurations by Source Server ID. bootMode valid values are LEGACY_BIOS | UEFI @Sendable public func updateLaunchConfiguration(_ input: UpdateLaunchConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> LaunchConfiguration { return try await self.client.execute( diff --git a/Sources/Soto/Services/Mgn/Mgn_shapes.swift b/Sources/Soto/Services/Mgn/Mgn_shapes.swift index 23fcc708c7..d3aa0c28a1 100644 --- a/Sources/Soto/Services/Mgn/Mgn_shapes.swift +++ b/Sources/Soto/Services/Mgn/Mgn_shapes.swift @@ -35,6 +35,7 @@ extension Mgn { case observability = "OBSERVABILITY" case operatingSystem = "OPERATING_SYSTEM" case other = "OTHER" + case refactoring = "REFACTORING" case security = "SECURITY" case validation = "VALIDATION" public var description: String { return self.rawValue } @@ -57,6 +58,7 @@ extension Mgn { public enum BootMode: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case legacyBios = "LEGACY_BIOS" case uefi = "UEFI" + case useSource = "USE_SOURCE" public var description: String { return self.rawValue } } diff --git a/Sources/Soto/Services/NeptuneGraph/NeptuneGraph_shapes.swift b/Sources/Soto/Services/NeptuneGraph/NeptuneGraph_shapes.swift index ea0b2f12db..fcd1904371 100644 --- a/Sources/Soto/Services/NeptuneGraph/NeptuneGraph_shapes.swift +++ b/Sources/Soto/Services/NeptuneGraph/NeptuneGraph_shapes.swift @@ -206,7 +206,7 @@ extension NeptuneGraph { public let provisionedMemory: Int /// Specifies whether or not the graph can be reachable over the internet. All access to graphs is IAM authenticated. (true to enable, or false to disable. public let publicConnectivity: Bool? - /// The number of replicas in other AZs. Min =0, Max = 2, Default = 1. + /// The number of replicas in other AZs. Min =0, Max = 2, Default = 1. Additional charges equivalent to the m-NCUs selected for the graph apply for each replica. public let replicaCount: Int? /// Adds metadata tags to the new graph. These tags can also be used with cost allocation reporting, or used in a Condition statement in an IAM policy. public let tags: [String: String]? @@ -417,7 +417,7 @@ extension NeptuneGraph { public let minProvisionedMemory: Int? /// Specifies whether or not the graph can be reachable over the internet. All access to graphs is IAM authenticated. (true to enable, or false to disable). public let publicConnectivity: Bool? - /// The number of replicas in other AZs to provision on the new graph after import. Default = 0, Min = 0, Max = 2. + /// The number of replicas in other AZs to provision on the new graph after import. Default = 0, Min = 0, Max = 2. Additional charges equivalent to the m-NCUs selected for the graph apply for each replica. public let replicaCount: Int? /// The ARN of the IAM role that will allow access to the data that is to be imported. public let roleArn: String @@ -1954,7 +1954,7 @@ extension NeptuneGraph { public let provisionedMemory: Int? /// Specifies whether or not the graph can be reachable over the internet. All access to graphs is IAM authenticated. (true to enable, or false to disable). public let publicConnectivity: Bool? - /// The number of replicas in other AZs. Min =0, Max = 2, Default =1 + /// The number of replicas in other AZs. Min =0, Max = 2, Default =1 Additional charges equivalent to the m-NCUs selected for the graph apply for each replica. public let replicaCount: Int? /// The ID of the snapshot in question. public let snapshotIdentifier: String diff --git a/Sources/Soto/Services/NetworkMonitor/NetworkMonitor_api.swift b/Sources/Soto/Services/NetworkMonitor/NetworkMonitor_api.swift index 5e44203a35..1b87f03dc0 100644 --- a/Sources/Soto/Services/NetworkMonitor/NetworkMonitor_api.swift +++ b/Sources/Soto/Services/NetworkMonitor/NetworkMonitor_api.swift @@ -19,7 +19,7 @@ /// Service object for interacting with AWS NetworkMonitor service. /// -/// Amazon CloudWatch Network Monitor is an Amazon Web Services active network monitoring service that identifies if a network issues exists within the Amazon Web Services network or your own company network. Within Network Monitor you'll choose the source VPCs and subnets from the Amazon Web Services network in which you operate and then you'll choose the destination IP addresses from your on-premises network. From these sources and destinations, Network Monitor creates a monitor containing all the possible source and destination combinations, each of which is called a probe, within a single monitor. These probes then monitor network traffic to help you identify where network issues might be affecting your traffic. For more information, see Using Amazon CloudWatch Network Monitor in the Amazon CloudWatch User Guide. +/// Amazon CloudWatch Network Monitor is an Amazon Web Services active network monitoring service that identifies if a network issues exists within the Amazon Web Services network or your own company network. Within Network Monitor you'll choose the source VPCs and subnets from the Amazon Web Services network in which you operate and then you'll choose the destination IP addresses from your on-premises network. From these sources and destinations, Network Monitor creates a monitor containing all the possible source and destination combinations, each of which is called a probe, within a single monitor. These probes then monitor network traffic to help you identify where network issues might be affecting your traffic. Before you begin, ensure the Amazon Web Services CLI is configured in the Amazon Web Services Account where you will create the Network Monitor resource. Network Monitor doesn’t support creation on cross-account resources, but you can create a Network Monitor in any subnet belonging to a VPC owned by your Account. For more information, see Using Amazon CloudWatch Network Monitor in the Amazon CloudWatch User Guide. public struct NetworkMonitor: AWSService { // MARK: Member variables @@ -73,7 +73,7 @@ public struct NetworkMonitor: AWSService { // MARK: API Calls - /// Creates a monitor between a source subnet and destination IP address. Within a monitor you'll create one or more probes that monitor network traffic between your source Amazon Web Services VPC subnets and your destination IP addresses. Each probe then aggregates and sends metrics to Amazon CloudWatch. + /// Creates a monitor between a source subnet and destination IP address. Within a monitor you'll create one or more probes that monitor network traffic between your source Amazon Web Services VPC subnets and your destination IP addresses. Each probe then aggregates and sends metrics to Amazon CloudWatch. You can also create a monitor with probes using this command. For each probe, you define the following: source—The subnet IDs where the probes will be created. destination— The target destination IP address for the probe. destinationPort—Required only if the protocol is TCP. protocol—The communication protocol between the source and destination. This will be either TCP or ICMP. packetSize—The size of the packets. This must be a number between 56 and 8500. (Optional) tags —Key-value pairs created and assigned to the probe. @Sendable public func createMonitor(_ input: CreateMonitorInput, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateMonitorOutput { return try await self.client.execute( @@ -86,7 +86,7 @@ public struct NetworkMonitor: AWSService { ) } - /// Create a probe within a monitor. Once you create a probe, and it begins monitoring your network traffic, you'll incur billing charges for that probe. + /// Create a probe within a monitor. Once you create a probe, and it begins monitoring your network traffic, you'll incur billing charges for that probe. This action requires the monitorName parameter. Run ListMonitors to get a list of monitor names. Note the name of the monitorName you want to create the probe for. @Sendable public func createProbe(_ input: CreateProbeInput, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateProbeOutput { return try await self.client.execute( @@ -99,7 +99,7 @@ public struct NetworkMonitor: AWSService { ) } - /// Deletes a specified monitor. + /// Deletes a specified monitor. This action requires the monitorName parameter. Run ListMonitors to get a list of monitor names. @Sendable public func deleteMonitor(_ input: DeleteMonitorInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteMonitorOutput { return try await self.client.execute( @@ -112,7 +112,7 @@ public struct NetworkMonitor: AWSService { ) } - /// Deletes the specified monitor. Once a probe is deleted you'll no longer incur any billing fees for that probe. + /// Deletes the specified probe. Once a probe is deleted you'll no longer incur any billing fees for that probe. This action requires both the monitorName and probeId parameters. Run ListMonitors to get a list of monitor names. Run GetMonitor to get a list of probes and probe IDs. You can only delete a single probe at a time using this action. @Sendable public func deleteProbe(_ input: DeleteProbeInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteProbeOutput { return try await self.client.execute( @@ -125,7 +125,7 @@ public struct NetworkMonitor: AWSService { ) } - /// Returns details about a specific monitor. + /// Returns details about a specific monitor. This action requires the monitorName parameter. Run ListMonitors to get a list of monitor names. @Sendable public func getMonitor(_ input: GetMonitorInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetMonitorOutput { return try await self.client.execute( @@ -138,7 +138,7 @@ public struct NetworkMonitor: AWSService { ) } - /// Returns the details about a probe. You'll need both the monitorName and probeId. + /// Returns the details about a probe. This action requires both the monitorName and probeId parameters. Run ListMonitors to get a list of monitor names. Run GetMonitor to get a list of probes and probe IDs. @Sendable public func getProbe(_ input: GetProbeInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetProbeOutput { return try await self.client.execute( @@ -203,7 +203,7 @@ public struct NetworkMonitor: AWSService { ) } - /// Updates the aggregationPeriod for a monitor. Monitors support an aggregationPeriod of either 30 or 60 seconds. + /// Updates the aggregationPeriod for a monitor. Monitors support an aggregationPeriod of either 30 or 60 seconds. This action requires the monitorName and probeId parameter. Run ListMonitors to get a list of monitor names. @Sendable public func updateMonitor(_ input: UpdateMonitorInput, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateMonitorOutput { return try await self.client.execute( @@ -216,7 +216,7 @@ public struct NetworkMonitor: AWSService { ) } - /// Updates a monitor probe. This action requires both the monitorName and probeId parameters. Run ListMonitors to get a list of monitor names. Run GetMonitor to get a list of probes and probe IDs. + /// Updates a monitor probe. This action requires both the monitorName and probeId parameters. Run ListMonitors to get a list of monitor names. Run GetMonitor to get a list of probes and probe IDs. You can update the following para create a monitor with probes using this command. For each probe, you define the following: state—The state of the probe. destination— The target destination IP address for the probe. destinationPort—Required only if the protocol is TCP. protocol—The communication protocol between the source and destination. This will be either TCP or ICMP. packetSize—The size of the packets. This must be a number between 56 and 8500. (Optional) tags —Key-value pairs created and assigned to the probe. @Sendable public func updateProbe(_ input: UpdateProbeInput, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateProbeOutput { return try await self.client.execute( diff --git a/Sources/Soto/Services/NetworkMonitor/NetworkMonitor_shapes.swift b/Sources/Soto/Services/NetworkMonitor/NetworkMonitor_shapes.swift index df24ae479b..ca42927f76 100644 --- a/Sources/Soto/Services/NetworkMonitor/NetworkMonitor_shapes.swift +++ b/Sources/Soto/Services/NetworkMonitor/NetworkMonitor_shapes.swift @@ -60,11 +60,11 @@ extension NetworkMonitor { // MARK: Shapes public struct CreateMonitorInput: AWSEncodableShape { - /// The time, in seconds, that metrics are aggregated and sent to Amazon CloudWatch. Valid values are either 30 or 60. + /// The time, in seconds, that metrics are aggregated and sent to Amazon CloudWatch. Valid values are either 30 or 60. 60 is the default if no period is chosen. public let aggregationPeriod: Int64? /// 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? - /// The name identifying the monitor. It can contain only letters, underscores (_), or dashes (-), and can be up to 255 characters. + /// The name identifying the monitor. It can contain only letters, underscores (_), or dashes (-), and can be up to 200 characters. public let monitorName: String /// Displays a list of all of the probes created for a monitor. public let probes: [CreateMonitorProbeInput]? @@ -81,7 +81,7 @@ extension NetworkMonitor { public func validate(name: String) throws { try self.validate(self.aggregationPeriod, name: "aggregationPeriod", parent: name, min: 30) - try self.validate(self.monitorName, name: "monitorName", parent: name, max: 255) + try self.validate(self.monitorName, name: "monitorName", parent: name, max: 200) try self.validate(self.monitorName, name: "monitorName", parent: name, min: 1) try self.validate(self.monitorName, name: "monitorName", parent: name, pattern: "^[a-zA-Z0-9_-]+$") try self.probes?.forEach { @@ -134,15 +134,15 @@ extension NetworkMonitor { } public struct CreateMonitorProbeInput: AWSEncodableShape { - /// The destination IP address. This will be either IPV4 or IPV6. + /// The destination IP address. This must be either IPV4 or IPV6. public let destination: String /// The port associated with the destination. This is required only if the protocol is TCP and must be a number between 1 and 65536. public let destinationPort: Int? - /// The size of the packets sent between the source and destination. This will be a number between 56 and 8500. + /// The size of the packets sent between the source and destination. This must be a number between 56 and 8500. public let packetSize: Int? /// The list of key-value pairs created and assigned to the monitor. public let probeTags: [String: String]? - /// The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP. + /// The protocol used for the network traffic between the source and destination. This must be either TCP or ICMP. public let `protocol`: `Protocol` /// The ARN of the subnet. public let sourceArn: String @@ -187,7 +187,7 @@ extension NetworkMonitor { public struct CreateProbeInput: AWSEncodableShape { /// 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? - /// The name of the monitor to associated with the probe. To get a list of available monitors, use ListMonitors. + /// The name of the monitor to associated with the probe. public let monitorName: String /// Describes the details of an individual probe for a monitor. public let probe: ProbeInput @@ -211,7 +211,7 @@ extension NetworkMonitor { } public func validate(name: String) throws { - try self.validate(self.monitorName, name: "monitorName", parent: name, max: 255) + try self.validate(self.monitorName, name: "monitorName", parent: name, max: 200) try self.validate(self.monitorName, name: "monitorName", parent: name, min: 1) try self.validate(self.monitorName, name: "monitorName", parent: name, pattern: "^[a-zA-Z0-9_-]+$") try self.probe.validate(name: "\(name).probe") @@ -235,19 +235,19 @@ extension NetworkMonitor { public let addressFamily: AddressFamily? /// The time and date that the probe was created. public let createdAt: Date? - /// The destination IP address for the monitor. This will be either an IPv4 or IPv6 address. + /// The destination IP address for the monitor. This must be either an IPv4 or IPv6 address. public let destination: String /// The port associated with the destination. This is required only if the protocol is TCP and must be a number between 1 and 65536. public let destinationPort: Int? /// The time and date when the probe was last modified. public let modifiedAt: Date? - /// The size of the packets sent between the source and destination. This will be a number between 56 and 8500. + /// The size of the packets sent between the source and destination. This must be a number between 56 and 8500. public let packetSize: Int? /// The ARN of the probe. public let probeArn: String? /// The ID of the probe for which details are returned. public let probeId: String? - /// The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP. + /// The protocol used for the network traffic between the source and destination. This must be either TCP or ICMP. public let `protocol`: `Protocol` /// The ARN of the probe. public let sourceArn: String @@ -292,7 +292,7 @@ extension NetworkMonitor { } public struct DeleteMonitorInput: AWSEncodableShape { - /// The name of the monitor to delete. Use the ListMonitors action to get a list of your current monitors. + /// The name of the monitor to delete. public let monitorName: String public init(monitorName: String) { @@ -306,7 +306,7 @@ extension NetworkMonitor { } public func validate(name: String) throws { - try self.validate(self.monitorName, name: "monitorName", parent: name, max: 255) + try self.validate(self.monitorName, name: "monitorName", parent: name, max: 200) try self.validate(self.monitorName, name: "monitorName", parent: name, min: 1) try self.validate(self.monitorName, name: "monitorName", parent: name, pattern: "^[a-zA-Z0-9_-]+$") } @@ -319,9 +319,9 @@ extension NetworkMonitor { } public struct DeleteProbeInput: AWSEncodableShape { - /// The name of the monitor to delete. For a list of the available monitors, use the ListMonitors action. + /// The name of the monitor to delete. public let monitorName: String - /// The ID of the probe to delete. Run GetMonitor to get a lst of all probes and probe IDs associated with the monitor. + /// The ID of the probe to delete. public let probeId: String public init(monitorName: String, probeId: String) { @@ -337,7 +337,7 @@ extension NetworkMonitor { } public func validate(name: String) throws { - try self.validate(self.monitorName, name: "monitorName", parent: name, max: 255) + try self.validate(self.monitorName, name: "monitorName", parent: name, max: 200) try self.validate(self.monitorName, name: "monitorName", parent: name, min: 1) try self.validate(self.monitorName, name: "monitorName", parent: name, pattern: "^[a-zA-Z0-9_-]+$") try self.validate(self.probeId, name: "probeId", parent: name, pattern: "^probe-[a-z0-9A-Z-]{21,64}$") @@ -365,7 +365,7 @@ extension NetworkMonitor { } public func validate(name: String) throws { - try self.validate(self.monitorName, name: "monitorName", parent: name, max: 255) + try self.validate(self.monitorName, name: "monitorName", parent: name, max: 200) try self.validate(self.monitorName, name: "monitorName", parent: name, min: 1) try self.validate(self.monitorName, name: "monitorName", parent: name, pattern: "^[a-zA-Z0-9_-]+$") } @@ -382,11 +382,11 @@ extension NetworkMonitor { public let modifiedAt: Date /// The ARN of the selected monitor. public let monitorArn: String - /// The name of the monitor. To get a list of the current monitors and their names, use the ListMonitors action. + /// The name of the monitor. public let monitorName: String /// The details about each probe associated with that monitor. public let probes: [Probe]? - /// Returns a list of the state of each monitor. + /// Lists the status of the state of each monitor. public let state: MonitorState /// The list of key-value pairs assigned to the monitor. public let tags: [String: String]? @@ -433,7 +433,7 @@ extension NetworkMonitor { } public func validate(name: String) throws { - try self.validate(self.monitorName, name: "monitorName", parent: name, max: 255) + try self.validate(self.monitorName, name: "monitorName", parent: name, max: 200) try self.validate(self.monitorName, name: "monitorName", parent: name, min: 1) try self.validate(self.monitorName, name: "monitorName", parent: name, pattern: "^[a-zA-Z0-9_-]+$") try self.validate(self.probeId, name: "probeId", parent: name, pattern: "^probe-[a-z0-9A-Z-]{21,64}$") @@ -447,19 +447,19 @@ extension NetworkMonitor { public let addressFamily: AddressFamily? /// The time and date that the probe was created. public let createdAt: Date? - /// The destination IP address for the monitor. This will be either an IPv4 or IPv6 address. + /// The destination IP address for the monitor. This must be either an IPv4 or IPv6 address. public let destination: String /// The port associated with the destination. This is required only if the protocol is TCP and must be a number between 1 and 65536. public let destinationPort: Int? /// The time and date that the probe was last modified. public let modifiedAt: Date? - /// The size of the packets sent between the source and destination. This will be a number between 56 and 8500. + /// The size of the packets sent between the source and destination. This must be a number between 56 and 8500. public let packetSize: Int? /// The ARN of the probe. public let probeArn: String? /// The ID of the probe for which details are returned. public let probeId: String? - /// The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP. + /// The protocol used for the network traffic between the source and destination. This must be either TCP or ICMP. public let `protocol`: `Protocol` /// The ARN of the probe. public let sourceArn: String @@ -679,13 +679,13 @@ extension NetworkMonitor { } public struct ProbeInput: AWSEncodableShape { - /// The destination IP address. This will be either IPV4 or IPV6. + /// The destination IP address. This must be either IPV4 or IPV6. public let destination: String /// The port associated with the destination. This is required only if the protocol is TCP and must be a number between 1 and 65536. public let destinationPort: Int? - /// The size of the packets sent between the source and destination. This will be a number between 56 and 8500. + /// The size of the packets sent between the source and destination. This must be a number between 56 and 8500. public let packetSize: Int? - /// The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP. + /// The protocol used for the network traffic between the source and destination. This must be either TCP or ICMP. public let `protocol`: `Protocol` /// The ARN of the subnet. public let sourceArn: String @@ -807,7 +807,7 @@ extension NetworkMonitor { public struct UpdateMonitorInput: AWSEncodableShape { /// The aggregation time, in seconds, to change to. This must be either 30 or 60. public let aggregationPeriod: Int64 - /// The name of the monitor to update. Run ListMonitors to get a list of monitor names. + /// The name of the monitor to update. public let monitorName: String public init(aggregationPeriod: Int64, monitorName: String) { @@ -824,7 +824,7 @@ extension NetworkMonitor { public func validate(name: String) throws { try self.validate(self.aggregationPeriod, name: "aggregationPeriod", parent: name, min: 30) - try self.validate(self.monitorName, name: "monitorName", parent: name, max: 255) + try self.validate(self.monitorName, name: "monitorName", parent: name, max: 200) try self.validate(self.monitorName, name: "monitorName", parent: name, min: 1) try self.validate(self.monitorName, name: "monitorName", parent: name, pattern: "^[a-zA-Z0-9_-]+$") } @@ -872,7 +872,7 @@ extension NetworkMonitor { public let monitorName: String /// he updated packets size for network traffic between the source and destination. This must be a number between 56 and 8500. public let packetSize: Int? - /// Run GetMonitor to get a list of probes and probe IDs. + /// The ID of the probe to update. public let probeId: String /// The updated network protocol for the destination. This can be either TCP or ICMP. If the protocol is TCP, then port is also required. public let `protocol`: `Protocol`? @@ -906,7 +906,7 @@ extension NetworkMonitor { try self.validate(self.destination, name: "destination", parent: name, min: 1) try self.validate(self.destinationPort, name: "destinationPort", parent: name, max: 65536) try self.validate(self.destinationPort, name: "destinationPort", parent: name, min: 0) - try self.validate(self.monitorName, name: "monitorName", parent: name, max: 255) + try self.validate(self.monitorName, name: "monitorName", parent: name, max: 200) try self.validate(self.monitorName, name: "monitorName", parent: name, min: 1) try self.validate(self.monitorName, name: "monitorName", parent: name, pattern: "^[a-zA-Z0-9_-]+$") try self.validate(self.packetSize, name: "packetSize", parent: name, max: 8500) @@ -924,13 +924,13 @@ extension NetworkMonitor { } public struct UpdateProbeOutput: AWSDecodableShape { - /// The updated IP address family. This will be either IPV4 or IPV6. + /// The updated IP address family. This must be either IPV4 or IPV6. public let addressFamily: AddressFamily? /// The time and date that the probe was created. public let createdAt: Date? /// The updated destination IP address for the probe. public let destination: String - /// The updated destination port. This will be a number between 1 and 65536. + /// The updated destination port. This must be a number between 1 and 65536. public let destinationPort: Int? /// The time and date that the probe was last updated. public let modifiedAt: Date? diff --git a/Sources/Soto/Services/OAM/OAM_api.swift b/Sources/Soto/Services/OAM/OAM_api.swift index e9a9ceeaf6..c2494c9c80 100644 --- a/Sources/Soto/Services/OAM/OAM_api.swift +++ b/Sources/Soto/Services/OAM/OAM_api.swift @@ -73,7 +73,7 @@ public struct OAM: AWSService { // MARK: API Calls - /// Creates a link between a source account and a sink that you have created in a monitoring account. Before you create a link, you must create a sink in the monitoring account and create a sink policy in that account. The sink policy must permit the source account to link to it. You can grant permission to source accounts by granting permission to an entire organization or to individual accounts. For more information, see CreateSink and PutSinkPolicy. Each monitoring account can be linked to as many as 100,000 source accounts. Each source account can be linked to as many as five monitoring accounts. + /// Creates a link between a source account and a sink that you have created in a monitoring account. After the link is created, data is sent from the source account to the monitoring account. When you create a link, you can optionally specify filters that specify which metric namespaces and which log groups are shared from the source account to the monitoring account. Before you create a link, you must create a sink in the monitoring account and create a sink policy in that account. The sink policy must permit the source account to link to it. You can grant permission to source accounts by granting permission to an entire organization or to individual accounts. For more information, see CreateSink and PutSinkPolicy. Each monitoring account can be linked to as many as 100,000 source accounts. Each source account can be linked to as many as five monitoring accounts. @Sendable public func createLink(_ input: CreateLinkInput, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateLinkOutput { return try await self.client.execute( @@ -86,7 +86,7 @@ public struct OAM: AWSService { ) } - /// Use this to create a sink in the current account, so that it can be used as a monitoring account in CloudWatch cross-account observability. A sink is a resource that represents an attachment point in a monitoring account. Source accounts can link to the sink to send observability data. After you create a sink, you must create a sink policy that allows source accounts to attach to it. For more information, see PutSinkPolicy. Each account can contain one sink. If you delete a sink, you can then create a new one in that account. + /// Use this to create a sink in the current account, so that it can be used as a monitoring account in CloudWatch cross-account observability. A sink is a resource that represents an attachment point in a monitoring account. Source accounts can link to the sink to send observability data. After you create a sink, you must create a sink policy that allows source accounts to attach to it. For more information, see PutSinkPolicy. Each account can contain one sink per Region. If you delete a sink, you can then create a new one in that Region. @Sendable public func createSink(_ input: CreateSinkInput, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateSinkOutput { return try await self.client.execute( @@ -151,7 +151,7 @@ public struct OAM: AWSService { ) } - /// Returns the current sink policy attached to this sink. The sink policy specifies what accounts can attach to this sink as source accounts, and what types of data they can share. + /// Returns the current sink policy attached to this sink. The sink policy specifies what accounts can attach to this sink as source accounts, and what types of data they can share. @Sendable public func getSinkPolicy(_ input: GetSinkPolicyInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetSinkPolicyOutput { return try await self.client.execute( @@ -216,7 +216,7 @@ public struct OAM: AWSService { ) } - /// Creates or updates the resource policy that grants permissions to source accounts to link to the monitoring account sink. When you create a sink policy, you can grant permissions to all accounts in an organization or to individual accounts. You can also use a sink policy to limit the types of data that is shared. The three types that you can allow or deny are: Metrics - Specify with AWS::CloudWatch::Metric Log groups - Specify with AWS::Logs::LogGroup Traces - Specify with AWS::XRay::Trace Application Insights - Applications - Specify with AWS::ApplicationInsights::Application See the examples in this section to see how to specify permitted source accounts and data types. + /// Creates or updates the resource policy that grants permissions to source accounts to link to the monitoring account sink. When you create a sink policy, you can grant permissions to all accounts in an organization or to individual accounts. You can also use a sink policy to limit the types of data that is shared. The three types that you can allow or deny are: Metrics - Specify with AWS::CloudWatch::Metric Log groups - Specify with AWS::Logs::LogGroup Traces - Specify with AWS::XRay::Trace Application Insights - Applications - Specify with AWS::ApplicationInsights::Application See the examples in this section to see how to specify permitted source accounts and data types. @Sendable public func putSinkPolicy(_ input: PutSinkPolicyInput, logger: Logger = AWSClient.loggingDisabled) async throws -> PutSinkPolicyOutput { return try await self.client.execute( @@ -229,7 +229,7 @@ public struct OAM: AWSService { ) } - /// Assigns one or more tags (key-value pairs) to the specified resource. Both sinks and links can be tagged. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters. You can use the TagResource action with a resource that already has tags. If you specify a new tag key for the alarm, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the alarm, the new tag value that you specify replaces the previous value for that tag. You can associate as many as 50 tags with a resource. Unlike tagging permissions in other Amazon Web Services services, to tag or untag links and sinks you must have the oam:ResourceTag permission. The iam:ResourceTag permission does not allow you to tag and untag links and sinks. + /// Assigns one or more tags (key-value pairs) to the specified resource. Both sinks and links can be tagged. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters. You can use the TagResource action with a resource that already has tags. If you specify a new tag key for the alarm, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the alarm, the new tag value that you specify replaces the previous value for that tag. You can associate as many as 50 tags with a resource. Unlike tagging permissions in other Amazon Web Services services, to tag or untag links and sinks you must have the oam:ResourceTag permission. The iam:ResourceTag permission does not allow you to tag and untag links and sinks. @Sendable public func tagResource(_ input: TagResourceInput, logger: Logger = AWSClient.loggingDisabled) async throws -> TagResourceOutput { return try await self.client.execute( @@ -255,7 +255,7 @@ public struct OAM: AWSService { ) } - /// Use this operation to change what types of data are shared from a source account to its linked monitoring account sink. You can't change the sink or change the monitoring account with this operation. To update the list of tags associated with the sink, use TagResource. + /// Use this operation to change what types of data are shared from a source account to its linked monitoring account sink. You can't change the sink or change the monitoring account with this operation. When you update a link, you can optionally specify filters that specify which metric namespaces and which log groups are shared from the source account to the monitoring account. To update the list of tags associated with the sink, use TagResource. @Sendable public func updateLink(_ input: UpdateLinkInput, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateLinkOutput { return try await self.client.execute( diff --git a/Sources/Soto/Services/OAM/OAM_shapes.swift b/Sources/Soto/Services/OAM/OAM_shapes.swift index 8687fcbdbc..dcb264d93d 100644 --- a/Sources/Soto/Services/OAM/OAM_shapes.swift +++ b/Sources/Soto/Services/OAM/OAM_shapes.swift @@ -40,15 +40,18 @@ extension OAM { public struct CreateLinkInput: AWSEncodableShape { /// Specify a friendly human-readable name to use to identify this source account when you are viewing data from it in the monitoring account. You can use a custom label or use the following variables: $AccountName is the name of the account $AccountEmail is the globally unique email address of the account $AccountEmailNoDomain is the email address of the account without the domain name public let labelTemplate: String - /// An array of strings that define which types of data that the source account shares with the monitoring account. + /// Use this structure to optionally create filters that specify that only some metric namespaces or log groups are to be shared from the source account to the monitoring account. + public let linkConfiguration: LinkConfiguration? + /// An array of strings that define which types of data that the source account shares with the monitoring account. public let resourceTypes: [ResourceType] - /// The ARN of the sink to use to create this link. You can use ListSinks to find the ARNs of sinks. For more information about sinks, see CreateSink. + /// The ARN of the sink to use to create this link. You can use ListSinks to find the ARNs of sinks. For more information about sinks, see CreateSink. public let sinkIdentifier: String - /// Assigns one or more tags (key-value pairs) to the link. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags. + /// Assigns one or more tags (key-value pairs) to the link. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags. public let tags: [String: String]? - public init(labelTemplate: String, resourceTypes: [ResourceType], sinkIdentifier: String, tags: [String: String]? = nil) { + public init(labelTemplate: String, linkConfiguration: LinkConfiguration? = nil, resourceTypes: [ResourceType], sinkIdentifier: String, tags: [String: String]? = nil) { self.labelTemplate = labelTemplate + self.linkConfiguration = linkConfiguration self.resourceTypes = resourceTypes self.sinkIdentifier = sinkIdentifier self.tags = tags @@ -57,6 +60,7 @@ extension OAM { public func validate(name: String) throws { try self.validate(self.labelTemplate, name: "labelTemplate", parent: name, max: 64) try self.validate(self.labelTemplate, name: "labelTemplate", parent: name, min: 1) + try self.linkConfiguration?.validate(name: "\(name).linkConfiguration") try self.validate(self.resourceTypes, name: "resourceTypes", parent: name, max: 50) try self.validate(self.resourceTypes, name: "resourceTypes", parent: name, min: 1) try self.validate(self.sinkIdentifier, name: "sinkIdentifier", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_:\\.\\-\\/]{0,2047}$") @@ -70,6 +74,7 @@ extension OAM { private enum CodingKeys: String, CodingKey { case labelTemplate = "LabelTemplate" + case linkConfiguration = "LinkConfiguration" case resourceTypes = "ResourceTypes" case sinkIdentifier = "SinkIdentifier" case tags = "Tags" @@ -81,10 +86,12 @@ extension OAM { public let arn: String? /// The random ID string that Amazon Web Services generated as part of the link ARN. public let id: String? - /// The label that you assigned to this link. If the labelTemplate includes variables, this field displays the variables resolved to their actual values. + /// The label that you assigned to this link. If the labelTemplate includes variables, this field displays the variables resolved to their actual values. public let label: String? /// The exact label template that you specified, with the variables not resolved. public let labelTemplate: String? + /// This structure includes filters that specify which metric namespaces and which log groups are shared from the source account to the monitoring account. + public let linkConfiguration: LinkConfiguration? /// The resource types supported by this link. public let resourceTypes: [String]? /// The ARN of the sink that is used for this link. @@ -92,11 +99,12 @@ extension OAM { /// The tags assigned to the link. public let tags: [String: String]? - public init(arn: String? = nil, id: String? = nil, label: String? = nil, labelTemplate: String? = nil, resourceTypes: [String]? = nil, sinkArn: String? = nil, tags: [String: String]? = nil) { + public init(arn: String? = nil, id: String? = nil, label: String? = nil, labelTemplate: String? = nil, linkConfiguration: LinkConfiguration? = nil, resourceTypes: [String]? = nil, sinkArn: String? = nil, tags: [String: String]? = nil) { self.arn = arn self.id = id self.label = label self.labelTemplate = labelTemplate + self.linkConfiguration = linkConfiguration self.resourceTypes = resourceTypes self.sinkArn = sinkArn self.tags = tags @@ -107,6 +115,7 @@ extension OAM { case id = "Id" case label = "Label" case labelTemplate = "LabelTemplate" + case linkConfiguration = "LinkConfiguration" case resourceTypes = "ResourceTypes" case sinkArn = "SinkArn" case tags = "Tags" @@ -116,7 +125,7 @@ extension OAM { public struct CreateSinkInput: AWSEncodableShape { /// A name for the sink. public let name: String - /// Assigns one or more tags (key-value pairs) to the link. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags. + /// Assigns one or more tags (key-value pairs) to the link. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags. public let tags: [String: String]? public init(name: String, tags: [String: String]? = nil) { @@ -233,6 +242,8 @@ extension OAM { public let label: String? /// The exact label template that was specified when the link was created, with the template variables not resolved. public let labelTemplate: String? + /// This structure includes filters that specify which metric namespaces and which log groups are shared from the source account to the monitoring account. + public let linkConfiguration: LinkConfiguration? /// The resource types supported by this link. public let resourceTypes: [String]? /// The ARN of the sink that is used for this link. @@ -240,11 +251,12 @@ extension OAM { /// The tags assigned to the link. public let tags: [String: String]? - public init(arn: String? = nil, id: String? = nil, label: String? = nil, labelTemplate: String? = nil, resourceTypes: [String]? = nil, sinkArn: String? = nil, tags: [String: String]? = nil) { + public init(arn: String? = nil, id: String? = nil, label: String? = nil, labelTemplate: String? = nil, linkConfiguration: LinkConfiguration? = nil, resourceTypes: [String]? = nil, sinkArn: String? = nil, tags: [String: String]? = nil) { self.arn = arn self.id = id self.label = label self.labelTemplate = labelTemplate + self.linkConfiguration = linkConfiguration self.resourceTypes = resourceTypes self.sinkArn = sinkArn self.tags = tags @@ -255,6 +267,7 @@ extension OAM { case id = "Id" case label = "Label" case labelTemplate = "LabelTemplate" + case linkConfiguration = "LinkConfiguration" case resourceTypes = "ResourceTypes" case sinkArn = "SinkArn" case tags = "Tags" @@ -341,6 +354,28 @@ extension OAM { } } + public struct LinkConfiguration: AWSEncodableShape & AWSDecodableShape { + /// Use this structure to filter which log groups are to send log events from the source account to the monitoring account. + public let logGroupConfiguration: LogGroupConfiguration? + /// Use this structure to filter which metric namespaces are to be shared from the source account to the monitoring account. + public let metricConfiguration: MetricConfiguration? + + public init(logGroupConfiguration: LogGroupConfiguration? = nil, metricConfiguration: MetricConfiguration? = nil) { + self.logGroupConfiguration = logGroupConfiguration + self.metricConfiguration = metricConfiguration + } + + public func validate(name: String) throws { + try self.logGroupConfiguration?.validate(name: "\(name).logGroupConfiguration") + try self.metricConfiguration?.validate(name: "\(name).metricConfiguration") + } + + private enum CodingKeys: String, CodingKey { + case logGroupConfiguration = "LogGroupConfiguration" + case metricConfiguration = "MetricConfiguration" + } + } + public struct ListAttachedLinksInput: AWSEncodableShape { /// Limits the number of returned links to the specified number. public let maxResults: Int? @@ -535,7 +570,7 @@ extension OAM { } public struct ListTagsForResourceInput: AWSEncodableShape { - /// The ARN of the resource that you want to view tags for. The ARN format of a sink is arn:aws:oam:Region:account-id:sink/sink-id The ARN format of a link is arn:aws:oam:Region:account-id:link/link-id For more information about ARN format, see CloudWatch Logs resources and operations. Unlike tagging permissions in other Amazon Web Services services, to retrieve the list of tags for links or sinks you must have the oam:RequestTag permission. The aws:ReguestTag permission does not allow you to tag and untag links and sinks. + /// The ARN of the resource that you want to view tags for. The ARN format of a sink is arn:aws:oam:Region:account-id:sink/sink-id The ARN format of a link is arn:aws:oam:Region:account-id:link/link-id For more information about ARN format, see CloudWatch Logs resources and operations. Unlike tagging permissions in other Amazon Web Services services, to retrieve the list of tags for links or sinks you must have the oam:RequestTag permission. The aws:ReguestTag permission does not allow you to tag and untag links and sinks. public let resourceArn: String public init(resourceArn: String) { @@ -568,6 +603,42 @@ extension OAM { } } + public struct LogGroupConfiguration: AWSEncodableShape & AWSDecodableShape { + /// Use this field to specify which log groups are to share their log events with the monitoring account. Use the term LogGroupName and one or more of the following operands. Use single quotation marks (') around log group names. The matching of log group names is case sensitive. Each filter has a limit of five conditional operands. Conditional operands are AND and OR. = and != AND OR LIKE and NOT LIKE. These can be used only as prefix searches. Include a % at the end of the string that you want to search for and include. IN and NOT IN, using parentheses ( ) Examples: LogGroupName IN ('This-Log-Group', 'Other-Log-Group') includes only the log groups with names This-Log-Group and Other-Log-Group. LogGroupName NOT IN ('Private-Log-Group', 'Private-Log-Group-2') includes all log groups except the log groups with names Private-Log-Group and Private-Log-Group-2. LogGroupName LIKE 'aws/lambda/%' OR LogGroupName LIKE 'AWSLogs%' includes all log groups that have names that start with aws/lambda/ or AWSLogs. If you are updating a link that uses filters, you can specify * as the only value for the filter parameter to delete the filter and share all log groups with the monitoring account. + public let filter: String + + public init(filter: String) { + self.filter = filter + } + + public func validate(name: String) throws { + try self.validate(self.filter, name: "filter", parent: name, max: 2000) + try self.validate(self.filter, name: "filter", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case filter = "Filter" + } + } + + public struct MetricConfiguration: AWSEncodableShape & AWSDecodableShape { + /// Use this field to specify which metrics are to be shared with the monitoring account. Use the term Namespace and one or more of the following operands. Use single quotation marks (') around namespace names. The matching of namespace names is case sensitive. Each filter has a limit of five conditional operands. Conditional operands are AND and OR. = and != AND OR LIKE and NOT LIKE. These can be used only as prefix searches. Include a % at the end of the string that you want to search for and include. IN and NOT IN, using parentheses ( ) Examples: Namespace NOT LIKE 'AWS/%' includes only namespaces that don't start with AWS/, such as custom namespaces. Namespace IN ('AWS/EC2', 'AWS/ELB', 'AWS/S3') includes only the metrics in the EC2, Elastic Load Balancing, and Amazon S3 namespaces. Namespace = 'AWS/EC2' OR Namespace NOT LIKE 'AWS/%' includes only the EC2 namespace and your custom namespaces. If you are updating a link that uses filters, you can specify * as the only value for the filter parameter to delete the filter and share all metric namespaces with the monitoring account. + public let filter: String + + public init(filter: String) { + self.filter = filter + } + + public func validate(name: String) throws { + try self.validate(self.filter, name: "filter", parent: name, max: 2000) + try self.validate(self.filter, name: "filter", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case filter = "Filter" + } + } + public struct PutSinkPolicyInput: AWSEncodableShape { /// The JSON policy to use. If you are updating an existing policy, the entire existing policy is replaced by what you specify here. The policy must be in JSON string format with quotation marks escaped and no newlines. For examples of different types of policies, see the Examples section on this page. public let policy: String @@ -611,7 +682,7 @@ extension OAM { } public struct TagResourceInput: AWSEncodableShape { - /// The ARN of the resource that you're adding tags to. The ARN format of a sink is arn:aws:oam:Region:account-id:sink/sink-id The ARN format of a link is arn:aws:oam:Region:account-id:link/link-id For more information about ARN format, see CloudWatch Logs resources and operations. + /// The ARN of the resource that you're adding tags to. The ARN format of a sink is arn:aws:oam:Region:account-id:sink/sink-id The ARN format of a link is arn:aws:oam:Region:account-id:link/link-id For more information about ARN format, see CloudWatch Logs resources and operations. public let resourceArn: String /// The list of key-value pairs to associate with the resource. public let tags: [String: String] @@ -648,7 +719,7 @@ extension OAM { } public struct UntagResourceInput: AWSEncodableShape { - /// The ARN of the resource that you're removing tags from. The ARN format of a sink is arn:aws:oam:Region:account-id:sink/sink-id The ARN format of a link is arn:aws:oam:Region:account-id:link/link-id For more information about ARN format, see CloudWatch Logs resources and operations. + /// The ARN of the resource that you're removing tags from. The ARN format of a sink is arn:aws:oam:Region:account-id:sink/sink-id The ARN format of a link is arn:aws:oam:Region:account-id:link/link-id For more information about ARN format, see CloudWatch Logs resources and operations. public let resourceArn: String /// The list of tag keys to remove from the resource. public let tagKeys: [String] @@ -683,22 +754,27 @@ extension OAM { public struct UpdateLinkInput: AWSEncodableShape { /// The ARN of the link that you want to update. public let identifier: String - /// An array of strings that define which types of data that the source account will send to the monitoring account. Your input here replaces the current set of data types that are shared. + /// Use this structure to filter which metric namespaces and which log groups are to be shared from the source account to the monitoring account. + public let linkConfiguration: LinkConfiguration? + /// An array of strings that define which types of data that the source account will send to the monitoring account. Your input here replaces the current set of data types that are shared. public let resourceTypes: [ResourceType] - public init(identifier: String, resourceTypes: [ResourceType]) { + public init(identifier: String, linkConfiguration: LinkConfiguration? = nil, resourceTypes: [ResourceType]) { self.identifier = identifier + self.linkConfiguration = linkConfiguration self.resourceTypes = resourceTypes } public func validate(name: String) throws { try self.validate(self.identifier, name: "identifier", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_:\\.\\-\\/]{0,2047}$") + try self.linkConfiguration?.validate(name: "\(name).linkConfiguration") try self.validate(self.resourceTypes, name: "resourceTypes", parent: name, max: 50) try self.validate(self.resourceTypes, name: "resourceTypes", parent: name, min: 1) } private enum CodingKeys: String, CodingKey { case identifier = "Identifier" + case linkConfiguration = "LinkConfiguration" case resourceTypes = "ResourceTypes" } } @@ -712,6 +788,8 @@ extension OAM { public let label: String? /// The exact label template that was specified when the link was created, with the template variables not resolved. public let labelTemplate: String? + /// This structure includes filters that specify which metric namespaces and which log groups are shared from the source account to the monitoring account. + public let linkConfiguration: LinkConfiguration? /// The resource types now supported by this link. public let resourceTypes: [String]? /// The ARN of the sink that is used for this link. @@ -719,11 +797,12 @@ extension OAM { /// The tags assigned to the link. public let tags: [String: String]? - public init(arn: String? = nil, id: String? = nil, label: String? = nil, labelTemplate: String? = nil, resourceTypes: [String]? = nil, sinkArn: String? = nil, tags: [String: String]? = nil) { + public init(arn: String? = nil, id: String? = nil, label: String? = nil, labelTemplate: String? = nil, linkConfiguration: LinkConfiguration? = nil, resourceTypes: [String]? = nil, sinkArn: String? = nil, tags: [String: String]? = nil) { self.arn = arn self.id = id self.label = label self.labelTemplate = labelTemplate + self.linkConfiguration = linkConfiguration self.resourceTypes = resourceTypes self.sinkArn = sinkArn self.tags = tags @@ -734,6 +813,7 @@ extension OAM { case id = "Id" case label = "Label" case labelTemplate = "LabelTemplate" + case linkConfiguration = "LinkConfiguration" case resourceTypes = "ResourceTypes" case sinkArn = "SinkArn" case tags = "Tags" diff --git a/Sources/Soto/Services/Omics/Omics_api.swift b/Sources/Soto/Services/Omics/Omics_api.swift index c89bb7f2a0..c5af28f41e 100644 --- a/Sources/Soto/Services/Omics/Omics_api.swift +++ b/Sources/Soto/Services/Omics/Omics_api.swift @@ -92,7 +92,7 @@ public struct Omics: AWSService { // MARK: API Calls - /// Stops a multipart upload. + /// Stops a multipart upload. @Sendable public func abortMultipartReadSetUpload(_ input: AbortMultipartReadSetUploadRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> AbortMultipartReadSetUploadResponse { return try await self.client.execute( @@ -106,7 +106,7 @@ public struct Omics: AWSService { ) } - /// Accepts a share for an analytics store. + /// Accept a resource share request. @Sendable public func acceptShare(_ input: AcceptShareRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> AcceptShareResponse { return try await self.client.execute( @@ -176,7 +176,7 @@ public struct Omics: AWSService { ) } - /// Concludes a multipart upload once you have uploaded all the components. + /// Concludes a multipart upload once you have uploaded all the components. @Sendable public func completeMultipartReadSetUpload(_ input: CompleteMultipartReadSetUploadRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CompleteMultipartReadSetUploadResponse { return try await self.client.execute( @@ -218,7 +218,7 @@ public struct Omics: AWSService { ) } - /// Begins a multipart read set upload. + /// Begins a multipart read set upload. @Sendable public func createMultipartReadSetUpload(_ input: CreateMultipartReadSetUploadRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateMultipartReadSetUploadResponse { return try await self.client.execute( @@ -274,7 +274,7 @@ public struct Omics: AWSService { ) } - /// Creates a share offer that can be accepted outside the account by a subscriber. The share is created by the owner and accepted by the principal subscriber. + /// Creates a cross-account shared resource. The resource owner makes an offer to share the resource with the principal subscriber (an AWS user with a different account than the resource owner). The following resources support cross-account sharing: Healthomics variant stores Healthomics annotation stores Private workflows @Sendable public func createShare(_ input: CreateShareRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateShareResponse { return try await self.client.execute( @@ -414,7 +414,7 @@ public struct Omics: AWSService { ) } - /// Deletes a share of an analytics store. + /// Deletes a resource share. If you are the resource owner, the subscriber will no longer have access to the shared resource. If you are the subscriber, this operation deletes your access to the share. @Sendable public func deleteShare(_ input: DeleteShareRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteShareResponse { return try await self.client.execute( @@ -624,7 +624,7 @@ public struct Omics: AWSService { ) } - /// Gets information about a workflow run. + /// Gets information about a workflow run. If a workflow is shared with you, you cannot export information about the run. @Sendable public func getRun(_ input: GetRunRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetRunResponse { return try await self.client.execute( @@ -680,7 +680,7 @@ public struct Omics: AWSService { ) } - /// Retrieves the metadata for a share. + /// Retrieves the metadata for the specified resource share. @Sendable public func getShare(_ input: GetShareRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetShareResponse { return try await self.client.execute( @@ -722,7 +722,7 @@ public struct Omics: AWSService { ) } - /// Gets information about a workflow. + /// Gets information about a workflow. If a workflow is shared with you, you cannot export the workflow. @Sendable public func getWorkflow(_ input: GetWorkflowRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetWorkflowResponse { return try await self.client.execute( @@ -778,7 +778,7 @@ public struct Omics: AWSService { ) } - /// Lists multipart read set uploads and for in progress uploads. Once the upload is completed, a read set is created and the upload will no longer be returned in the respone. + /// Lists multipart read set uploads and for in progress uploads. Once the upload is completed, a read set is created and the upload will no longer be returned in the response. @Sendable public func listMultipartReadSetUploads(_ input: ListMultipartReadSetUploadsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListMultipartReadSetUploadsResponse { return try await self.client.execute( @@ -834,7 +834,7 @@ public struct Omics: AWSService { ) } - /// This operation will list all parts in a requested multipart upload for a sequence store. + /// This operation will list all parts in a requested multipart upload for a sequence store. @Sendable public func listReadSetUploadParts(_ input: ListReadSetUploadPartsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListReadSetUploadPartsResponse { return try await self.client.execute( @@ -960,7 +960,7 @@ public struct Omics: AWSService { ) } - /// Lists all shares associated with an account. + /// Retrieves the resource shares associated with an account. Use the filter parameter to retrieve a specific subset of the shares. @Sendable public func listShares(_ input: ListSharesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListSharesResponse { return try await self.client.execute( @@ -1100,7 +1100,7 @@ public struct Omics: AWSService { ) } - /// Starts a workflow run. To duplicate a run, specify the run's ID and a role ARN. The remaining parameters are copied from the previous run. The total number of runs in your account is subject to a quota per Region. To avoid needing to delete runs manually, you can set the retention mode to REMOVE. Runs with this setting are deleted automatically when the run quoata is exceeded. + /// Starts a workflow run. To duplicate a run, specify the run's ID and a role ARN. The remaining parameters are copied from the previous run. StartRun will not support re-run for a workflow that is shared with you. The total number of runs in your account is subject to a quota per Region. To avoid needing to delete runs manually, you can set the retention mode to REMOVE. Runs with this setting are deleted automatically when the run quoata is exceeded. By default, the run uses STATIC storage. For STATIC storage, set the storageCapacity field. You can set the storage type to DYNAMIC. You do not set storageCapacity, because HealthOmics dynamically scales the storage up or down as required. For more information about static and dynamic storage, see Running workflows in the AWS HealthOmics User Guide. @Sendable public func startRun(_ input: StartRunRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartRunResponse { return try await self.client.execute( @@ -1226,7 +1226,7 @@ public struct Omics: AWSService { ) } - /// This operation uploads a specific part of a read set. If you upload a new part using a previously used part number, the previously uploaded part will be overwritten. + /// This operation uploads a specific part of a read set. If you upload a new part using a previously used part number, the previously uploaded part will be overwritten. @Sendable public func uploadReadSetPart(_ input: UploadReadSetPartRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UploadReadSetPartResponse { return try await self.client.execute( @@ -1311,7 +1311,7 @@ extension Omics { ) } - /// Lists multipart read set uploads and for in progress uploads. Once the upload is completed, a read set is created and the upload will no longer be returned in the respone. + /// Lists multipart read set uploads and for in progress uploads. Once the upload is completed, a read set is created and the upload will no longer be returned in the response. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -1387,7 +1387,7 @@ extension Omics { ) } - /// This operation will list all parts in a requested multipart upload for a sequence store. + /// This operation will list all parts in a requested multipart upload for a sequence store. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -1558,7 +1558,7 @@ extension Omics { ) } - /// Lists all shares associated with an account. + /// Retrieves the resource shares associated with an account. Use the filter parameter to retrieve a specific subset of the shares. /// Return PaginatorSequence for operation. /// /// - Parameters: diff --git a/Sources/Soto/Services/Omics/Omics_shapes.swift b/Sources/Soto/Services/Omics/Omics_shapes.swift index c25ae34b13..91291ffcb8 100644 --- a/Sources/Soto/Services/Omics/Omics_shapes.swift +++ b/Sources/Soto/Services/Omics/Omics_shapes.swift @@ -57,8 +57,21 @@ extension Omics { public enum ETagAlgorithm: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case bamMd5Up = "BAM_MD5up" + case bamSha256Up = "BAM_SHA256up" + case bamSha512Up = "BAM_SHA512up" case cramMd5Up = "CRAM_MD5up" + case cramSha256Up = "CRAM_SHA256up" + case cramSha512Up = "CRAM_SHA512up" case fastqMd5Up = "FASTQ_MD5up" + case fastqSha256Up = "FASTQ_SHA256up" + case fastqSha512Up = "FASTQ_SHA512up" + public var description: String { return self.rawValue } + } + + public enum ETagAlgorithmFamily: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case md5up = "MD5up" + case sha256up = "SHA256up" + case sha512up = "SHA512up" public var description: String { return self.rawValue } } @@ -270,6 +283,16 @@ extension Omics { public var description: String { return self.rawValue } } + public enum ShareResourceType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + /// The share is on an annotation store + case annotationStore = "ANNOTATION_STORE" + /// The share is on a variant store + case variantStore = "VARIANT_STORE" + /// The share is on a workflow + case workflow = "WORKFLOW" + public var description: String { return self.rawValue } + } + public enum ShareStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { /// The share is activated case activating = "ACTIVATING" @@ -286,6 +309,12 @@ extension Omics { public var description: String { return self.rawValue } } + public enum StorageType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case dynamic = "DYNAMIC" + case `static` = "STATIC" + public var description: String { return self.rawValue } + } + public enum StoreFormat: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { /// GFF3 Format case gff = "GFF" @@ -416,9 +445,9 @@ extension Omics { // MARK: Shapes public struct AbortMultipartReadSetUploadRequest: AWSEncodableShape { - /// The sequence store ID for the store involved in the multipart upload. + /// The sequence store ID for the store involved in the multipart upload. public let sequenceStoreId: String - /// The ID for the multipart upload. + /// The ID for the multipart upload. public let uploadId: String public init(sequenceStoreId: String, uploadId: String) { @@ -450,7 +479,7 @@ extension Omics { } public struct AcceptShareRequest: AWSEncodableShape { - /// The ID for a share offer for analytics store data. + /// The ID of the resource share. public let shareId: String public init(shareId: String) { @@ -467,7 +496,7 @@ extension Omics { } public struct AcceptShareResponse: AWSDecodableShape { - /// The status of an analytics store share. + /// The status of the resource share. public let status: ShareStatus? public init(status: ShareStatus? = nil) { @@ -873,11 +902,11 @@ extension Omics { } public struct CompleteMultipartReadSetUploadRequest: AWSEncodableShape { - /// The individual uploads or parts of a multipart upload. + /// The individual uploads or parts of a multipart upload. public let parts: [CompleteReadSetUploadPartListItem] - /// The sequence store ID for the store involved in the multipart upload. + /// The sequence store ID for the store involved in the multipart upload. public let sequenceStoreId: String - /// The ID for the multipart upload. + /// The ID for the multipart upload. public let uploadId: String public init(parts: [CompleteReadSetUploadPartListItem], sequenceStoreId: String, uploadId: String) { @@ -909,7 +938,7 @@ extension Omics { } public struct CompleteMultipartReadSetUploadResponse: AWSDecodableShape { - /// The read set ID created for an uploaded read set. + /// The read set ID created for an uploaded read set. public let readSetId: String public init(readSetId: String) { @@ -1135,25 +1164,25 @@ extension Omics { } public struct CreateMultipartReadSetUploadRequest: AWSEncodableShape { - /// An idempotency token that can be used to avoid triggering multiple multipart uploads. + /// An idempotency token that can be used to avoid triggering multiple multipart uploads. public let clientToken: String? - /// The description of the read set. + /// The description of the read set. public let description: String? - /// Where the source originated. + /// Where the source originated. public let generatedFrom: String? - /// The name of the read set. + /// The name of the read set. public let name: String - /// The ARN of the reference. + /// The ARN of the reference. public let referenceArn: String? - /// The source's sample ID. + /// The source's sample ID. public let sampleId: String - /// The sequence store ID for the store that is the destination of the multipart uploads. + /// The sequence store ID for the store that is the destination of the multipart uploads. public let sequenceStoreId: String - /// The type of file being uploaded. + /// The type of file being uploaded. public let sourceFileType: FileType - /// The source's subject ID. + /// The source's subject ID. public let subjectId: String - /// Any tags to add to the read set. + /// Any tags to add to the read set. public let tags: [String: String]? public init(clientToken: String? = nil, description: String? = nil, generatedFrom: String? = nil, name: String, referenceArn: String? = nil, sampleId: String, sequenceStoreId: String, sourceFileType: FileType, subjectId: String, tags: [String: String]? = nil) { @@ -1230,27 +1259,27 @@ extension Omics { } public struct CreateMultipartReadSetUploadResponse: AWSDecodableShape { - /// The creation time of the multipart upload. + /// The creation time of the multipart upload. public let creationTime: Date - /// The description of the read set. + /// The description of the read set. public let description: String? - /// The source of the read set. + /// The source of the read set. public let generatedFrom: String? - /// The name of the read set. + /// The name of the read set. public let name: String? - /// The read set source's reference ARN. + /// The read set source's reference ARN. public let referenceArn: String - /// The source's sample ID. + /// The source's sample ID. public let sampleId: String - /// The sequence store ID for the store that the read set will be created in. + /// The sequence store ID for the store that the read set will be created in. public let sequenceStoreId: String - /// The file type of the read set source. + /// The file type of the read set source. public let sourceFileType: FileType - /// The source's subject ID. + /// The source's subject ID. public let subjectId: String - /// The tags to add to the read set. + /// The tags to add to the read set. public let tags: [String: String]? - /// he ID for the initiated multipart upload. + /// The ID for the initiated multipart upload. public let uploadId: String public init(creationTime: Date, description: String? = nil, generatedFrom: String? = nil, name: String? = nil, referenceArn: String, sampleId: String, sequenceStoreId: String, sourceFileType: FileType, subjectId: String, tags: [String: String]? = nil, uploadId: String) { @@ -1366,7 +1395,7 @@ extension Omics { public let maxCpus: Int? /// A maximum run time for the group in minutes. public let maxDuration: Int? - /// The maximum GPUs that can be used by a run group. + /// The maximum GPUs that can be used by a run group. public let maxGpus: Int? /// The maximum number of concurrent runs for the group. public let maxRuns: Int? @@ -1438,7 +1467,9 @@ extension Omics { public let clientToken: String? /// A description for the store. public let description: String? - /// An S3 location that is used to store files that have failed a direct upload. + /// The ETag algorithm family to use for ingested read sets. + public let eTagAlgorithmFamily: ETagAlgorithmFamily? + /// An S3 location that is used to store files that have failed a direct upload. public let fallbackLocation: String? /// A name for the store. public let name: String @@ -1447,9 +1478,10 @@ extension Omics { /// Tags for the store. public let tags: [String: String]? - public init(clientToken: String? = nil, description: String? = nil, fallbackLocation: String? = nil, name: String, sseConfig: SseConfig? = nil, tags: [String: String]? = nil) { + public init(clientToken: String? = nil, description: String? = nil, eTagAlgorithmFamily: ETagAlgorithmFamily? = nil, fallbackLocation: String? = nil, name: String, sseConfig: SseConfig? = nil, tags: [String: String]? = nil) { self.clientToken = clientToken self.description = description + self.eTagAlgorithmFamily = eTagAlgorithmFamily self.fallbackLocation = fallbackLocation self.name = name self.sseConfig = sseConfig @@ -1477,6 +1509,7 @@ extension Omics { private enum CodingKeys: String, CodingKey { case clientToken = "clientToken" case description = "description" + case eTagAlgorithmFamily = "eTagAlgorithmFamily" case fallbackLocation = "fallbackLocation" case name = "name" case sseConfig = "sseConfig" @@ -1491,7 +1524,9 @@ extension Omics { public let creationTime: Date /// The store's description. public let description: String? - /// An S3 location that is used to store files that have failed a direct upload. + /// The algorithm family of the ETag. + public let eTagAlgorithmFamily: ETagAlgorithmFamily? + /// An S3 location that is used to store files that have failed a direct upload. public let fallbackLocation: String? /// The store's ID. public let id: String @@ -1500,10 +1535,11 @@ extension Omics { /// The store's SSE settings. public let sseConfig: SseConfig? - public init(arn: String, creationTime: Date, description: String? = nil, fallbackLocation: String? = nil, id: String, name: String? = nil, sseConfig: SseConfig? = nil) { + public init(arn: String, creationTime: Date, description: String? = nil, eTagAlgorithmFamily: ETagAlgorithmFamily? = nil, fallbackLocation: String? = nil, id: String, name: String? = nil, sseConfig: SseConfig? = nil) { self.arn = arn self.creationTime = creationTime self.description = description + self.eTagAlgorithmFamily = eTagAlgorithmFamily self.fallbackLocation = fallbackLocation self.id = id self.name = name @@ -1514,6 +1550,7 @@ extension Omics { case arn = "arn" case creationTime = "creationTime" case description = "description" + case eTagAlgorithmFamily = "eTagAlgorithmFamily" case fallbackLocation = "fallbackLocation" case id = "id" case name = "name" @@ -1522,11 +1559,11 @@ extension Omics { } public struct CreateShareRequest: AWSEncodableShape { - /// The principal subscriber is the account being given access to the analytics store data through the share offer. + /// The principal subscriber is the account being offered shared access to the resource. public let principalSubscriber: String - /// The resource ARN for the analytics store to be shared. + /// The ARN of the resource to be shared. public let resourceArn: String - /// A name given to the share. + /// A name that the owner defines for the share. public let shareName: String? public init(principalSubscriber: String, resourceArn: String, shareName: String? = nil) { @@ -1549,11 +1586,11 @@ extension Omics { } public struct CreateShareResponse: AWSDecodableShape { - /// An ID generated for the share. + /// The ID that HealthOmics generates for the share. public let shareId: String? - /// A name given to the share. + /// The name of the share. public let shareName: String? - /// The status of a share. + /// The status of the share. public let status: ShareStatus? public init(shareId: String? = nil, shareName: String? = nil, status: ShareStatus? = nil) { @@ -1642,7 +1679,7 @@ extension Omics { } public struct CreateWorkflowRequest: AWSEncodableShape { - /// The computational accelerator specified to run the workflow. + /// The computational accelerator specified to run the workflow. public let accelerators: Accelerators? /// The URI of a definition for the workflow. public let definitionUri: String? @@ -1660,7 +1697,7 @@ extension Omics { public let parameterTemplate: [String: WorkflowParameter]? /// To ensure that requests don't run multiple times, specify a unique ID for each request. public let requestId: String - /// A storage capacity for the workflow in gibibytes. + /// The storage capacity for the workflow in gibibytes. public let storageCapacity: Int? /// Tags for the workflow. public let tags: [String: String]? @@ -1969,7 +2006,7 @@ extension Omics { } public struct DeleteShareRequest: AWSEncodableShape { - /// The ID for the share request to be deleted. + /// The ID for the resource share to be deleted. public let shareId: String public init(shareId: String) { @@ -1986,7 +2023,7 @@ extension Omics { } public struct DeleteShareResponse: AWSDecodableShape { - /// The status of the share being deleted. + /// The status of the share being deleted. public let status: ShareStatus? public init(status: ShareStatus? = nil) { @@ -2056,11 +2093,11 @@ extension Omics { } public struct ETag: AWSDecodableShape { - /// The algorithm used to calculate the read set’s ETag(s). + /// The algorithm used to calculate the read set’s ETag(s). public let algorithm: ETagAlgorithm? - /// The ETag hash calculated on Source1 of the read set. + /// The ETag hash calculated on Source1 of the read set. public let source1: String? - /// The ETag hash calculated on Source2 of the read set. + /// The ETag hash calculated on Source2 of the read set. public let source2: String? public init(algorithm: ETagAlgorithm? = nil, source1: String? = nil, source2: String? = nil) { @@ -2175,41 +2212,53 @@ extension Omics { public let contentLength: Int64? /// The file's part size. public let partSize: Int64? + /// The S3 URI metadata of a sequence store. + public let s3Access: ReadSetS3Access? /// The file's total parts. public let totalParts: Int? - public init(contentLength: Int64? = nil, partSize: Int64? = nil, totalParts: Int? = nil) { + public init(contentLength: Int64? = nil, partSize: Int64? = nil, s3Access: ReadSetS3Access? = nil, totalParts: Int? = nil) { self.contentLength = contentLength self.partSize = partSize + self.s3Access = s3Access self.totalParts = totalParts } private enum CodingKeys: String, CodingKey { case contentLength = "contentLength" case partSize = "partSize" + case s3Access = "s3Access" case totalParts = "totalParts" } } public struct Filter: AWSEncodableShape { - /// The Amazon Resource Number (Arn) for an analytics store. + /// Filter based on the Amazon Resource Number (ARN) of the resource. You can specify up to 10 values. public let resourceArns: [String]? - /// The status of an annotation store version. + /// Filter based on the resource status. You can specify up to 10 values. public let status: [ShareStatus]? + /// The type of resources to be filtered. You can specify one or more of the resource types. + public let type: [ShareResourceType]? - public init(resourceArns: [String]? = nil, status: [ShareStatus]? = nil) { + public init(resourceArns: [String]? = nil, status: [ShareStatus]? = nil, type: [ShareResourceType]? = nil) { self.resourceArns = resourceArns self.status = status + self.type = type } public func validate(name: String) throws { try self.validate(self.resourceArns, name: "resourceArns", parent: name, max: 10) try self.validate(self.resourceArns, name: "resourceArns", parent: name, min: 1) + try self.validate(self.status, name: "status", parent: name, max: 10) + try self.validate(self.status, name: "status", parent: name, min: 1) + try self.validate(self.type, name: "type", parent: name, max: 10) + try self.validate(self.type, name: "type", parent: name, min: 1) } private enum CodingKeys: String, CodingKey { case resourceArns = "resourceArns" case status = "status" + case type = "type" } } @@ -2235,7 +2284,7 @@ extension Omics { } public struct GetAnnotationImportResponse: AWSDecodableShape { - /// The annotation schema generated by the parsed annotation data. + /// The annotation schema generated by the parsed annotation data. public let annotationFields: [String: String]? /// When the job completed. @CustomCoding @@ -2717,7 +2766,7 @@ extension Omics { public let creationType: CreationType? /// The read set's description. public let description: String? - /// The entity tag (ETag) is a hash of the object meant to represent its semantic content. + /// The entity tag (ETag) is a hash of the object meant to represent its semantic content. public let etag: ETag? /// The read set's files. public let files: ReadSetFiles? @@ -2737,7 +2786,7 @@ extension Omics { public let sequenceStoreId: String /// The read set's status. public let status: ReadSetStatus - /// The status message for a read set. It provides more detail as to why the read set has a status. + /// The status message for a read set. It provides more detail as to why the read set has a status. public let statusMessage: String? /// The read set's subject ID. public let subjectId: String? @@ -3139,7 +3188,7 @@ extension Omics { public let maxCpus: Int? /// The group's maximum run time in minutes. public let maxDuration: Int? - /// The maximum GPUs that can be used by a run group. + /// The maximum GPUs that can be used by a run group. public let maxGpus: Int? /// The maximum number of concurrent runs for the group. public let maxRuns: Int? @@ -3202,7 +3251,7 @@ extension Omics { } public struct GetRunResponse: AWSDecodableShape { - /// The computational accelerator used to run the workflow. + /// The computational accelerator used to run the workflow. public let accelerators: Accelerators? /// The run's ARN. public let arn: String? @@ -3213,13 +3262,13 @@ extension Omics { public let definition: String? /// The run's digest. public let digest: String? - /// The reason a run has failed. + /// The reason a run has failed. public let failureReason: String? /// The run's ID. public let id: String? /// The run's log level. public let logLevel: RunLogLevel? - /// The location of the run log. + /// The location of the run log. public let logLocation: RunLogLocation? /// The run's name. public let name: String? @@ -3239,7 +3288,7 @@ extension Omics { public let runGroupId: String? /// The run's ID. public let runId: String? - /// The destination for workflow outputs. + /// The destination for workflow outputs. public let runOutputUri: String? /// Who started the run. public let startedBy: String? @@ -3253,18 +3302,22 @@ extension Omics { /// The run's stop time. @OptionalCustomCoding public var stopTime: Date? - /// The run's storage capacity in gigabytes. + /// The run's storage capacity in gibibytes. For dynamic storage, after the run has completed, this value is the maximum amount of storage used during the run. public let storageCapacity: Int? + /// The run's storage type. + public let storageType: StorageType? /// The run's tags. public let tags: [String: String]? - /// The universally unique identifier for a run. + /// The universally unique identifier for a run. public let uuid: String? /// The run's workflow ID. public let workflowId: String? + /// The ID of the workflow owner. + public let workflowOwnerId: String? /// The run's workflow type. public let workflowType: WorkflowType? - public init(accelerators: Accelerators? = nil, arn: String? = nil, creationTime: Date? = nil, definition: String? = nil, digest: String? = nil, failureReason: String? = nil, id: String? = nil, logLevel: RunLogLevel? = nil, logLocation: RunLogLocation? = nil, name: String? = nil, outputUri: String? = nil, parameters: String? = nil, priority: Int? = nil, resourceDigests: [String: String]? = nil, retentionMode: RunRetentionMode? = nil, roleArn: String? = nil, runGroupId: String? = nil, runId: String? = nil, runOutputUri: String? = nil, startedBy: String? = nil, startTime: Date? = nil, status: RunStatus? = nil, statusMessage: String? = nil, stopTime: Date? = nil, storageCapacity: Int? = nil, tags: [String: String]? = nil, uuid: String? = nil, workflowId: String? = nil, workflowType: WorkflowType? = nil) { + public init(accelerators: Accelerators? = nil, arn: String? = nil, creationTime: Date? = nil, definition: String? = nil, digest: String? = nil, failureReason: String? = nil, id: String? = nil, logLevel: RunLogLevel? = nil, logLocation: RunLogLocation? = nil, name: String? = nil, outputUri: String? = nil, parameters: String? = nil, priority: Int? = nil, resourceDigests: [String: String]? = nil, retentionMode: RunRetentionMode? = nil, roleArn: String? = nil, runGroupId: String? = nil, runId: String? = nil, runOutputUri: String? = nil, startedBy: String? = nil, startTime: Date? = nil, status: RunStatus? = nil, statusMessage: String? = nil, stopTime: Date? = nil, storageCapacity: Int? = nil, storageType: StorageType? = nil, tags: [String: String]? = nil, uuid: String? = nil, workflowId: String? = nil, workflowOwnerId: String? = nil, workflowType: WorkflowType? = nil) { self.accelerators = accelerators self.arn = arn self.creationTime = creationTime @@ -3290,9 +3343,11 @@ extension Omics { self.statusMessage = statusMessage self.stopTime = stopTime self.storageCapacity = storageCapacity + self.storageType = storageType self.tags = tags self.uuid = uuid self.workflowId = workflowId + self.workflowOwnerId = workflowOwnerId self.workflowType = workflowType } @@ -3322,9 +3377,11 @@ extension Omics { case statusMessage = "statusMessage" case stopTime = "stopTime" case storageCapacity = "storageCapacity" + case storageType = "storageType" case tags = "tags" case uuid = "uuid" case workflowId = "workflowId" + case workflowOwnerId = "workflowOwnerId" case workflowType = "workflowType" } } @@ -3365,11 +3422,11 @@ extension Omics { /// When the task was created. @OptionalCustomCoding public var creationTime: Date? - /// The reason a task has failed. + /// The reason a task has failed. public let failureReason: String? - /// The number of Graphics Processing Units (GPU) specified in the task. + /// The number of Graphics Processing Units (GPU) specified in the task. public let gpus: Int? - /// The instance type for a task. + /// The instance type for a task. public let instanceType: String? /// The task's log stream. public let logStream: String? @@ -3453,22 +3510,28 @@ extension Omics { public let creationTime: Date /// The store's description. public let description: String? - /// An S3 location that is used to store files that have failed a direct upload. + /// The algorithm family of the ETag. + public let eTagAlgorithmFamily: ETagAlgorithmFamily? + /// An S3 location that is used to store files that have failed a direct upload. public let fallbackLocation: String? /// The store's ID. public let id: String /// The store's name. public let name: String? + /// The S3 metadata of a sequence store, including the ARN and S3 URI of the S3 bucket. + public let s3Access: SequenceStoreS3Access? /// The store's server-side encryption (SSE) settings. public let sseConfig: SseConfig? - public init(arn: String, creationTime: Date, description: String? = nil, fallbackLocation: String? = nil, id: String, name: String? = nil, sseConfig: SseConfig? = nil) { + public init(arn: String, creationTime: Date, description: String? = nil, eTagAlgorithmFamily: ETagAlgorithmFamily? = nil, fallbackLocation: String? = nil, id: String, name: String? = nil, s3Access: SequenceStoreS3Access? = nil, sseConfig: SseConfig? = nil) { self.arn = arn self.creationTime = creationTime self.description = description + self.eTagAlgorithmFamily = eTagAlgorithmFamily self.fallbackLocation = fallbackLocation self.id = id self.name = name + self.s3Access = s3Access self.sseConfig = sseConfig } @@ -3476,15 +3539,17 @@ extension Omics { case arn = "arn" case creationTime = "creationTime" case description = "description" + case eTagAlgorithmFamily = "eTagAlgorithmFamily" case fallbackLocation = "fallbackLocation" case id = "id" case name = "name" + case s3Access = "s3Access" case sseConfig = "sseConfig" } } public struct GetShareRequest: AWSEncodableShape { - /// The generated ID for a share. + /// The ID of the share. public let shareId: String public init(shareId: String) { @@ -3501,7 +3566,7 @@ extension Omics { } public struct GetShareResponse: AWSDecodableShape { - /// An analytic store share details object. contains status, resourceArn, ownerId, etc. + /// A resource share details object. The object includes the status, the resourceArn, and ownerId. public let share: ShareDetails? public init(share: ShareDetails? = nil) { @@ -3535,7 +3600,7 @@ extension Omics { } public struct GetVariantImportResponse: AWSDecodableShape { - /// The annotation schema generated by the parsed annotation data. + /// The annotation schema generated by the parsed annotation data. public let annotationFields: [String: String]? /// When the job completed. @OptionalCustomCoding @@ -3673,11 +3738,14 @@ extension Omics { public let id: String /// The workflow's type. public let type: WorkflowType? + /// The ID of the workflow owner. + public let workflowOwnerId: String? - public init(export: [WorkflowExport]? = nil, id: String, type: WorkflowType? = nil) { + public init(export: [WorkflowExport]? = nil, id: String, type: WorkflowType? = nil, workflowOwnerId: String? = nil) { self.export = export self.id = id self.type = type + self.workflowOwnerId = workflowOwnerId } public func encode(to encoder: Encoder) throws { @@ -3686,6 +3754,7 @@ extension Omics { request.encodeQuery(self.export, key: "export") request.encodePath(self.id, key: "id") request.encodeQuery(self.type, key: "type") + request.encodeQuery(self.workflowOwnerId, key: "workflowOwnerId") } public func validate(name: String) throws { @@ -3693,13 +3762,14 @@ extension Omics { try self.validate(self.id, name: "id", parent: name, max: 18) try self.validate(self.id, name: "id", parent: name, min: 1) try self.validate(self.id, name: "id", parent: name, pattern: "^[0-9]+$") + try self.validate(self.workflowOwnerId, name: "workflowOwnerId", parent: name, pattern: "^[0-9]{12}$") } private enum CodingKeys: CodingKey {} } public struct GetWorkflowResponse: AWSDecodableShape { - /// The computational accelerator specified to run the workflow. + /// The computational accelerator specified to run the workflow. public let accelerators: Accelerators? /// The workflow's ARN. public let arn: String? @@ -3718,7 +3788,7 @@ extension Omics { public let id: String? /// The path of the main definition file for the workflow. public let main: String? - /// Gets metadata for workflow. + /// Gets metadata for workflow. public let metadata: [String: String]? /// The workflow's name. public let name: String? @@ -3728,7 +3798,7 @@ extension Omics { public let status: WorkflowStatus? /// The workflow's status message. public let statusMessage: String? - /// The workflow's storage capacity in gigabytes. + /// The workflow's storage capacity in gibibytes. public let storageCapacity: Int? /// The workflow's tags. public let tags: [String: String]? @@ -4174,11 +4244,11 @@ extension Omics { } public struct ListMultipartReadSetUploadsRequest: AWSEncodableShape { - /// The maximum number of multipart uploads returned in a page. + /// The maximum number of multipart uploads returned in a page. public let maxResults: Int? - /// Next token returned in the response of a previous ListMultipartReadSetUploads call. Used to get the next page of results. + /// Next token returned in the response of a previous ListMultipartReadSetUploads call. Used to get the next page of results. public let nextToken: String? - /// The Sequence Store ID used for the multipart uploads. + /// The Sequence Store ID used for the multipart uploads. public let sequenceStoreId: String public init(maxResults: Int? = nil, nextToken: String? = nil, sequenceStoreId: String) { @@ -4208,9 +4278,9 @@ extension Omics { } public struct ListMultipartReadSetUploadsResponse: AWSDecodableShape { - /// Next token returned in the response of a previous ListMultipartReadSetUploads call. Used to get the next page of results. + /// Next token returned in the response of a previous ListMultipartReadSetUploads call. Used to get the next page of results. public let nextToken: String? - /// An array of multipart uploads. + /// An array of multipart uploads. public let uploads: [MultipartReadSetUploadListItem]? public init(nextToken: String? = nil, uploads: [MultipartReadSetUploadListItem]? = nil) { @@ -4396,17 +4466,17 @@ extension Omics { } public struct ListReadSetUploadPartsRequest: AWSEncodableShape { - /// Attributes used to filter for a specific subset of read set part uploads. + /// Attributes used to filter for a specific subset of read set part uploads. public let filter: ReadSetUploadPartListFilter? - /// The maximum number of read set upload parts returned in a page. + /// The maximum number of read set upload parts returned in a page. public let maxResults: Int? - /// Next token returned in the response of a previous ListReadSetUploadPartsRequest call. Used to get the next page of results. + /// Next token returned in the response of a previous ListReadSetUploadPartsRequest call. Used to get the next page of results. public let nextToken: String? - /// The source file for the upload part. + /// The source file for the upload part. public let partSource: ReadSetPartSource - /// The Sequence Store ID used for the multipart uploads. + /// The Sequence Store ID used for the multipart uploads. public let sequenceStoreId: String - /// The ID for the initiated multipart upload. + /// The ID for the initiated multipart upload. public let uploadId: String public init(filter: ReadSetUploadPartListFilter? = nil, maxResults: Int? = nil, nextToken: String? = nil, partSource: ReadSetPartSource, sequenceStoreId: String, uploadId: String) { @@ -4448,9 +4518,9 @@ extension Omics { } public struct ListReadSetUploadPartsResponse: AWSDecodableShape { - /// Next token returned in the response of a previous ListReadSetUploadParts call. Used to get the next page of results. + /// Next token returned in the response of a previous ListReadSetUploadParts call. Used to get the next page of results. public let nextToken: String? - /// An array of upload parts. + /// An array of upload parts. public let parts: [ReadSetUploadPartListItem]? public init(nextToken: String? = nil, parts: [ReadSetUploadPartListItem]? = nil) { @@ -4803,7 +4873,7 @@ extension Omics { public let runGroupId: String? /// Specify the pagination token from a previous request to retrieve the next page of results. public let startingToken: String? - /// The status of a run. + /// The status of a run. public let status: RunStatus? public init(maxResults: Int? = nil, name: String? = nil, runGroupId: String? = nil, startingToken: String? = nil, status: RunStatus? = nil) { @@ -4908,13 +4978,13 @@ extension Omics { } public struct ListSharesRequest: AWSEncodableShape { - /// Attributes used to filter for a specific subset of shares. + /// Attributes that you use to filter for a specific subset of resource shares. public let filter: Filter? - /// The maximum number of shares to return in one page of results. + /// The maximum number of shares to return in one page of results. public let maxResults: Int? - /// Next token returned in the response of a previous ListReadSetUploadPartsRequest call. Used to get the next page of results. + /// Next token returned in the response of a previous ListReadSetUploadPartsRequest call. Used to get the next page of results. public let nextToken: String? - /// The account that owns the analytics store shared. + /// The account that owns the resource shares. public let resourceOwner: ResourceOwner public init(filter: Filter? = nil, maxResults: Int? = nil, nextToken: String? = nil, resourceOwner: ResourceOwner) { @@ -4946,7 +5016,7 @@ extension Omics { public struct ListSharesResponse: AWSDecodableShape { /// Next token returned in the response of a previous ListSharesResponse call. Used to get the next page of results. public let nextToken: String? - /// The shares available and their meta details. + /// The shares available and their metadata details. public let shares: [ShareDetails] public init(nextToken: String? = nil, shares: [ShareDetails]) { @@ -5141,11 +5211,11 @@ extension Omics { public struct ListWorkflowsRequest: AWSEncodableShape { /// The maximum number of workflows to return in one page of results. public let maxResults: Int? - /// The workflows' name. + /// Filter the list by workflow name. public let name: String? /// Specify the pagination token from a previous request to retrieve the next page of results. public let startingToken: String? - /// The workflows' type. + /// Filter the list by workflow type. public let type: WorkflowType? public init(maxResults: Int? = nil, name: String? = nil, startingToken: String? = nil, type: WorkflowType? = nil) { @@ -5177,7 +5247,7 @@ extension Omics { } public struct ListWorkflowsResponse: AWSDecodableShape { - /// The workflows' items. + /// A list of workflow items. public let items: [WorkflowListItem]? /// A pagination token that's included if more results are available. public let nextToken: String? @@ -5419,7 +5489,7 @@ extension Omics { public let creationType: CreationType? /// The read set's description. public let description: String? - /// The entity tag (ETag) is a hash of the object representing its semantic content. + /// The entity tag (ETag) is a hash of the object representing its semantic content. public let etag: ETag? /// The read set's file type. public let fileType: FileType @@ -5478,6 +5548,19 @@ extension Omics { } } + public struct ReadSetS3Access: AWSDecodableShape { + /// The S3 URI for each read set file. + public let s3Uri: String? + + public init(s3Uri: String? = nil) { + self.s3Uri = s3Uri + } + + private enum CodingKeys: String, CodingKey { + case s3Uri = "s3Uri" + } + } + public struct ReadSetUploadPartListFilter: AWSEncodableShape { /// Filters for read set uploads after a specified time. public let createdAfter: Date? @@ -5746,12 +5829,14 @@ extension Omics { /// When the run stopped. @OptionalCustomCoding public var stopTime: Date? - /// The run's storage capacity. + /// The run's storage capacity in gibibytes. For dynamic storage, after the run has completed, this value is the maximum amount of storage used during the run. public let storageCapacity: Int? + /// The run's storage type. + public let storageType: StorageType? /// The run's workflow ID. public let workflowId: String? - public init(arn: String? = nil, creationTime: Date? = nil, id: String? = nil, name: String? = nil, priority: Int? = nil, startTime: Date? = nil, status: RunStatus? = nil, stopTime: Date? = nil, storageCapacity: Int? = nil, workflowId: String? = nil) { + public init(arn: String? = nil, creationTime: Date? = nil, id: String? = nil, name: String? = nil, priority: Int? = nil, startTime: Date? = nil, status: RunStatus? = nil, stopTime: Date? = nil, storageCapacity: Int? = nil, storageType: StorageType? = nil, workflowId: String? = nil) { self.arn = arn self.creationTime = creationTime self.id = id @@ -5761,6 +5846,7 @@ extension Omics { self.status = status self.stopTime = stopTime self.storageCapacity = storageCapacity + self.storageType = storageType self.workflowId = workflowId } @@ -5774,14 +5860,15 @@ extension Omics { case status = "status" case stopTime = "stopTime" case storageCapacity = "storageCapacity" + case storageType = "storageType" case workflowId = "workflowId" } } public struct RunLogLocation: AWSDecodableShape { - /// The log stream ARN for the engine log. + /// The log stream ARN for the engine log. public let engineLogStream: String? - /// The log stream ARN for the run log. + /// The log stream ARN for the run log. public let runLogStream: String? public init(engineLogStream: String? = nil, runLogStream: String? = nil) { @@ -5827,6 +5914,8 @@ extension Omics { public let creationTime: Date /// The store's description. public let description: String? + /// The algorithm family of the ETag. + public let eTagAlgorithmFamily: ETagAlgorithmFamily? /// An S3 location that is used to store files that have failed a direct upload. public let fallbackLocation: String? /// The store's ID. @@ -5836,10 +5925,11 @@ extension Omics { /// The store's server-side encryption (SSE) settings. public let sseConfig: SseConfig? - public init(arn: String, creationTime: Date, description: String? = nil, fallbackLocation: String? = nil, id: String, name: String? = nil, sseConfig: SseConfig? = nil) { + public init(arn: String, creationTime: Date, description: String? = nil, eTagAlgorithmFamily: ETagAlgorithmFamily? = nil, fallbackLocation: String? = nil, id: String, name: String? = nil, sseConfig: SseConfig? = nil) { self.arn = arn self.creationTime = creationTime self.description = description + self.eTagAlgorithmFamily = eTagAlgorithmFamily self.fallbackLocation = fallbackLocation self.id = id self.name = name @@ -5850,6 +5940,7 @@ extension Omics { case arn = "arn" case creationTime = "creationTime" case description = "description" + case eTagAlgorithmFamily = "eTagAlgorithmFamily" case fallbackLocation = "fallbackLocation" case id = "id" case name = "name" @@ -5884,33 +5975,53 @@ extension Omics { } } + public struct SequenceStoreS3Access: AWSDecodableShape { + /// This is ARN of the access point associated with the S3 bucket storing read sets. + public let s3AccessPointArn: String? + /// The S3 URI of the sequence store. + public let s3Uri: String? + + public init(s3AccessPointArn: String? = nil, s3Uri: String? = nil) { + self.s3AccessPointArn = s3AccessPointArn + self.s3Uri = s3Uri + } + + private enum CodingKeys: String, CodingKey { + case s3AccessPointArn = "s3AccessPointArn" + case s3Uri = "s3Uri" + } + } + public struct ShareDetails: AWSDecodableShape { - /// The timestamp for when the share was created. + /// The timestamp of when the resource share was created. @OptionalCustomCoding public var creationTime: Date? - /// The account ID for the data owner. The owner creates the share offer. + /// The account ID for the data owner. The owner creates the resource share. public let ownerId: String? - /// The principal subscriber is the account the analytics store data is being shared with. + /// The principal subscriber is the account that is sharing the resource. public let principalSubscriber: String? - /// The resource Arn of the analytics store being shared. + /// The Arn of the shared resource. public let resourceArn: String? - /// The ID for a share offer for an analytics store . + /// The ID of the shared resource. + public let resourceId: String? + /// The ID of the resource share. public let shareId: String? - /// The name of the share. + /// The name of the resource share. public let shareName: String? - /// The status of a share. + /// The status of the share. public let status: ShareStatus? - /// The status message for a share. It provides more details on the status of the share. + /// The status message for a resource share. It provides additional details about the share status. public let statusMessage: String? - /// The timestamp of the share update. + /// The timestamp of the resource share update. @OptionalCustomCoding public var updateTime: Date? - public init(creationTime: Date? = nil, ownerId: String? = nil, principalSubscriber: String? = nil, resourceArn: String? = nil, shareId: String? = nil, shareName: String? = nil, status: ShareStatus? = nil, statusMessage: String? = nil, updateTime: Date? = nil) { + public init(creationTime: Date? = nil, ownerId: String? = nil, principalSubscriber: String? = nil, resourceArn: String? = nil, resourceId: String? = nil, shareId: String? = nil, shareName: String? = nil, status: ShareStatus? = nil, statusMessage: String? = nil, updateTime: Date? = nil) { self.creationTime = creationTime self.ownerId = ownerId self.principalSubscriber = principalSubscriber self.resourceArn = resourceArn + self.resourceId = resourceId self.shareId = shareId self.shareName = shareName self.status = status @@ -5923,6 +6034,7 @@ extension Omics { case ownerId = "ownerId" case principalSubscriber = "principalSubscriber" case resourceArn = "resourceArn" + case resourceId = "resourceId" case shareId = "shareId" case shareName = "shareName" case status = "status" @@ -5971,7 +6083,7 @@ extension Omics { } public struct StartAnnotationImportRequest: AWSEncodableShape { - /// The annotation schema generated by the parsed annotation data. + /// The annotation schema generated by the parsed annotation data. public let annotationFields: [String: String]? /// A destination annotation store for the job. public let destinationName: String @@ -6491,16 +6603,20 @@ extension Omics { public let runGroupId: String? /// The ID of a run to duplicate. public let runId: String? - /// A storage capacity for the run in gigabytes. + /// A storage capacity for the run in gibibytes. This field is not required if the storage type is dynamic (the system ignores any value that you enter). public let storageCapacity: Int? + /// The run's storage type. By default, the run uses STATIC storage type, which allocates a fixed amount of storage. If you set the storage type to DYNAMIC, HealthOmics dynamically scales the storage up or down, based on file system utilization. + public let storageType: StorageType? /// Tags for the run. public let tags: [String: String]? /// The run's workflow ID. public let workflowId: String? + /// The ID of the workflow owner. + public let workflowOwnerId: String? /// The run's workflow type. public let workflowType: WorkflowType? - public init(logLevel: RunLogLevel? = nil, name: String? = nil, outputUri: String? = nil, parameters: String? = nil, priority: Int? = nil, requestId: String = StartRunRequest.idempotencyToken(), retentionMode: RunRetentionMode? = nil, roleArn: String, runGroupId: String? = nil, runId: String? = nil, storageCapacity: Int? = nil, tags: [String: String]? = nil, workflowId: String? = nil, workflowType: WorkflowType? = nil) { + public init(logLevel: RunLogLevel? = nil, name: String? = nil, outputUri: String? = nil, parameters: String? = nil, priority: Int? = nil, requestId: String = StartRunRequest.idempotencyToken(), retentionMode: RunRetentionMode? = nil, roleArn: String, runGroupId: String? = nil, runId: String? = nil, storageCapacity: Int? = nil, storageType: StorageType? = nil, tags: [String: String]? = nil, workflowId: String? = nil, workflowOwnerId: String? = nil, workflowType: WorkflowType? = nil) { self.logLevel = logLevel self.name = name self.outputUri = outputUri @@ -6512,8 +6628,10 @@ extension Omics { self.runGroupId = runGroupId self.runId = runId self.storageCapacity = storageCapacity + self.storageType = storageType self.tags = tags self.workflowId = workflowId + self.workflowOwnerId = workflowOwnerId self.workflowType = workflowType } @@ -6544,6 +6662,7 @@ extension Omics { try self.validate(self.workflowId, name: "workflowId", parent: name, max: 18) try self.validate(self.workflowId, name: "workflowId", parent: name, min: 1) try self.validate(self.workflowId, name: "workflowId", parent: name, pattern: "^[0-9]+$") + try self.validate(self.workflowOwnerId, name: "workflowOwnerId", parent: name, pattern: "^[0-9]{12}$") } private enum CodingKeys: String, CodingKey { @@ -6558,8 +6677,10 @@ extension Omics { case runGroupId = "runGroupId" case runId = "runId" case storageCapacity = "storageCapacity" + case storageType = "storageType" case tags = "tags" case workflowId = "workflowId" + case workflowOwnerId = "workflowOwnerId" case workflowType = "workflowType" } } @@ -6569,13 +6690,13 @@ extension Omics { public let arn: String? /// The run's ID. public let id: String? - /// The destination for workflow outputs. + /// The destination for workflow outputs. public let runOutputUri: String? /// The run's status. public let status: RunStatus? /// The run's tags. public let tags: [String: String]? - /// The universally unique identifier for a run. + /// The universally unique identifier for a run. public let uuid: String? public init(arn: String? = nil, id: String? = nil, runOutputUri: String? = nil, status: RunStatus? = nil, tags: [String: String]? = nil, uuid: String? = nil) { @@ -6598,7 +6719,7 @@ extension Omics { } public struct StartVariantImportRequest: AWSEncodableShape { - /// The annotation schema generated by the parsed annotation data. + /// The annotation schema generated by the parsed annotation data. public let annotationFields: [String: String]? /// The destination variant store for the job. public let destinationName: String @@ -7006,7 +7127,7 @@ extension Omics { public let maxCpus: Int? /// A maximum run time for the group in minutes. public let maxDuration: Int? - /// The maximum GPUs that can be used by a run group. + /// The maximum GPUs that can be used by a run group. public let maxGpus: Int? /// The maximum number of concurrent runs for the group. public let maxRuns: Int? @@ -7159,15 +7280,15 @@ extension Omics { public struct UploadReadSetPartRequest: AWSEncodableShape { public static let _options: AWSShapeOptions = [.allowStreaming] - /// The number of the part being uploaded. + /// The number of the part being uploaded. public let partNumber: Int - /// The source file for an upload part. + /// The source file for an upload part. public let partSource: ReadSetPartSource - /// The read set data to upload for a part. + /// The read set data to upload for a part. public let payload: AWSHTTPBody - /// The Sequence Store ID used for the multipart upload. + /// The Sequence Store ID used for the multipart upload. public let sequenceStoreId: String - /// The ID for the initiated multipart upload. + /// The ID for the initiated multipart upload. public let uploadId: String public init(partNumber: Int, partSource: ReadSetPartSource, payload: AWSHTTPBody, sequenceStoreId: String, uploadId: String) { @@ -7201,7 +7322,7 @@ extension Omics { } public struct UploadReadSetPartResponse: AWSDecodableShape { - /// An identifier used to confirm that parts are being added to the intended upload. + /// An identifier used to confirm that parts are being added to the intended upload. public let checksum: String public init(checksum: String) { diff --git a/Sources/Soto/Services/OpenSearch/OpenSearch_shapes.swift b/Sources/Soto/Services/OpenSearch/OpenSearch_shapes.swift index 9badb96612..550e38fe29 100644 --- a/Sources/Soto/Services/OpenSearch/OpenSearch_shapes.swift +++ b/Sources/Soto/Services/OpenSearch/OpenSearch_shapes.swift @@ -3118,6 +3118,8 @@ extension OpenSearch { public let deleted: Bool? /// Additional options for the domain endpoint, such as whether to require HTTPS for all traffic. public let domainEndpointOptions: DomainEndpointOptions? + /// The DualStack Hosted Zone Id for the domain. + public let domainEndpointV2HostedZoneId: String? /// Unique identifier for the domain. public let domainId: String /// Name of the domain. Domain names are unique across all domains owned by the same account within an Amazon Web Services Region. @@ -3130,7 +3132,7 @@ extension OpenSearch { public let encryptionAtRestOptions: EncryptionAtRestOptions? /// Domain-specific endpoint used to submit index, search, and data upload requests to the domain. public let endpoint: String? - /// The key-value pair that exists if the OpenSearch Service domain uses VPC endpoints. Example key, value: 'vpc','vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'. + /// The key-value pair that exists if the OpenSearch Service domain uses VPC endpoints. For example: IPv4 IP addresses - 'vpc','vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com' Dual stack IP addresses - 'vpcv2':'vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.aos.us-east-1.on.aws' public let endpoints: [String: String]? /// If IPAddressType to set to dualstack, a version 2 domain endpoint is provisioned. This endpoint functions like a normal endpoint, except that it works with both IPv4 and IPv6 IP addresses. Normal endpoints work only with IPv4 IP addresses. public let endpointV2: String? @@ -3159,7 +3161,7 @@ extension OpenSearch { /// The VPC configuration for the domain. public let vpcOptions: VPCDerivedInfo? - public init(accessPolicies: String? = nil, advancedOptions: [String: String]? = nil, advancedSecurityOptions: AdvancedSecurityOptions? = nil, arn: String, autoTuneOptions: AutoTuneOptionsOutput? = nil, changeProgressDetails: ChangeProgressDetails? = nil, clusterConfig: ClusterConfig, cognitoOptions: CognitoOptions? = nil, created: Bool? = nil, deleted: Bool? = nil, domainEndpointOptions: DomainEndpointOptions? = nil, domainId: String, domainName: String, domainProcessingStatus: DomainProcessingStatusType? = nil, ebsOptions: EBSOptions? = nil, encryptionAtRestOptions: EncryptionAtRestOptions? = nil, endpoint: String? = nil, endpoints: [String: String]? = nil, endpointV2: String? = nil, engineVersion: String? = nil, ipAddressType: IPAddressType? = nil, logPublishingOptions: [LogType: LogPublishingOption]? = nil, modifyingProperties: [ModifyingProperties]? = nil, nodeToNodeEncryptionOptions: NodeToNodeEncryptionOptions? = nil, offPeakWindowOptions: OffPeakWindowOptions? = nil, processing: Bool? = nil, serviceSoftwareOptions: ServiceSoftwareOptions? = nil, snapshotOptions: SnapshotOptions? = nil, softwareUpdateOptions: SoftwareUpdateOptions? = nil, upgradeProcessing: Bool? = nil, vpcOptions: VPCDerivedInfo? = nil) { + public init(accessPolicies: String? = nil, advancedOptions: [String: String]? = nil, advancedSecurityOptions: AdvancedSecurityOptions? = nil, arn: String, autoTuneOptions: AutoTuneOptionsOutput? = nil, changeProgressDetails: ChangeProgressDetails? = nil, clusterConfig: ClusterConfig, cognitoOptions: CognitoOptions? = nil, created: Bool? = nil, deleted: Bool? = nil, domainEndpointOptions: DomainEndpointOptions? = nil, domainEndpointV2HostedZoneId: String? = nil, domainId: String, domainName: String, domainProcessingStatus: DomainProcessingStatusType? = nil, ebsOptions: EBSOptions? = nil, encryptionAtRestOptions: EncryptionAtRestOptions? = nil, endpoint: String? = nil, endpoints: [String: String]? = nil, endpointV2: String? = nil, engineVersion: String? = nil, ipAddressType: IPAddressType? = nil, logPublishingOptions: [LogType: LogPublishingOption]? = nil, modifyingProperties: [ModifyingProperties]? = nil, nodeToNodeEncryptionOptions: NodeToNodeEncryptionOptions? = nil, offPeakWindowOptions: OffPeakWindowOptions? = nil, processing: Bool? = nil, serviceSoftwareOptions: ServiceSoftwareOptions? = nil, snapshotOptions: SnapshotOptions? = nil, softwareUpdateOptions: SoftwareUpdateOptions? = nil, upgradeProcessing: Bool? = nil, vpcOptions: VPCDerivedInfo? = nil) { self.accessPolicies = accessPolicies self.advancedOptions = advancedOptions self.advancedSecurityOptions = advancedSecurityOptions @@ -3171,6 +3173,7 @@ extension OpenSearch { self.created = created self.deleted = deleted self.domainEndpointOptions = domainEndpointOptions + self.domainEndpointV2HostedZoneId = domainEndpointV2HostedZoneId self.domainId = domainId self.domainName = domainName self.domainProcessingStatus = domainProcessingStatus @@ -3205,6 +3208,7 @@ extension OpenSearch { case created = "Created" case deleted = "Deleted" case domainEndpointOptions = "DomainEndpointOptions" + case domainEndpointV2HostedZoneId = "DomainEndpointV2HostedZoneId" case domainId = "DomainId" case domainName = "DomainName" case domainProcessingStatus = "DomainProcessingStatus" diff --git a/Sources/Soto/Services/Outposts/Outposts_api.swift b/Sources/Soto/Services/Outposts/Outposts_api.swift index 3bcb4f2ce6..0ba94ba970 100644 --- a/Sources/Soto/Services/Outposts/Outposts_api.swift +++ b/Sources/Soto/Services/Outposts/Outposts_api.swift @@ -86,6 +86,19 @@ public struct Outposts: AWSService { // MARK: API Calls + /// Cancels the capacity task. + @Sendable + public func cancelCapacityTask(_ input: CancelCapacityTaskInput, logger: Logger = AWSClient.loggingDisabled) async throws -> CancelCapacityTaskOutput { + return try await self.client.execute( + operation: "CancelCapacityTask", + path: "/outposts/{OutpostIdentifier}/capacity/{CapacityTaskId}", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Cancels the specified order for an Outpost. @Sendable public func cancelOrder(_ input: CancelOrderInput, logger: Logger = AWSClient.loggingDisabled) async throws -> CancelOrderOutput { @@ -164,6 +177,19 @@ public struct Outposts: AWSService { ) } + /// Gets details of the specified capacity task. + @Sendable + public func getCapacityTask(_ input: GetCapacityTaskInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetCapacityTaskOutput { + return try await self.client.execute( + operation: "GetCapacityTask", + path: "/outposts/{OutpostIdentifier}/capacity/{CapacityTaskId}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Gets information about the specified catalog item. @Sendable public func getCatalogItem(_ input: GetCatalogItemInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetCatalogItemOutput { @@ -229,6 +255,19 @@ public struct Outposts: AWSService { ) } + /// Gets the instance types that an Outpost can support in InstanceTypeCapacity. This will generally include instance types that are not currently configured and therefore cannot be launched with the current Outpost capacity configuration. + @Sendable + public func getOutpostSupportedInstanceTypes(_ input: GetOutpostSupportedInstanceTypesInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetOutpostSupportedInstanceTypesOutput { + return try await self.client.execute( + operation: "GetOutpostSupportedInstanceTypes", + path: "/outposts/{OutpostIdentifier}/supportedInstanceTypes", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Gets information about the specified Outpost site. @Sendable public func getSite(_ input: GetSiteInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetSiteOutput { @@ -268,6 +307,19 @@ public struct Outposts: AWSService { ) } + /// Lists the capacity tasks for your Amazon Web Services account. Use filters to return specific results. If you specify multiple filters, the results include only the resources that match all of the specified filters. For a filter where you can specify multiple values, the results include items that match any of the values that you specify for the filter. + @Sendable + public func listCapacityTasks(_ input: ListCapacityTasksInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ListCapacityTasksOutput { + return try await self.client.execute( + operation: "ListCapacityTasks", + path: "/capacity/tasks", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Lists the items in the catalog. Use filters to return specific results. If you specify multiple filters, the results include only the resources that match all of the specified filters. For a filter where you can specify multiple values, the results include items that match any of the values that you specify for the filter. @Sendable public func listCatalogItems(_ input: ListCatalogItemsInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ListCatalogItemsOutput { @@ -333,6 +385,19 @@ public struct Outposts: AWSService { ) } + /// Starts the specified capacity task. You can have one active capacity task for an order. + @Sendable + public func startCapacityTask(_ input: StartCapacityTaskInput, logger: Logger = AWSClient.loggingDisabled) async throws -> StartCapacityTaskOutput { + return try await self.client.execute( + operation: "StartCapacityTask", + path: "/outposts/{OutpostIdentifier}/capacity", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Amazon Web Services uses this action to install Outpost servers. Starts the connection required for Outpost server installation. Use CloudTrail to monitor this action or Amazon Web Services managed policy for Amazon Web Services Outposts to secure it. For more information, see Amazon Web Services managed policies for Amazon Web Services Outposts and Logging Amazon Web Services Outposts API calls with Amazon Web Services CloudTrail in the Amazon Web Services Outposts User Guide. @Sendable public func startConnection(_ input: StartConnectionRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartConnectionResponse { @@ -457,6 +522,25 @@ extension Outposts { ) } + /// Gets the instance types that an Outpost can support in InstanceTypeCapacity. This will generally include instance types that are not currently configured and therefore cannot be launched with the current Outpost capacity configuration. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func getOutpostSupportedInstanceTypesPaginator( + _ input: GetOutpostSupportedInstanceTypesInput, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.getOutpostSupportedInstanceTypes, + inputKey: \GetOutpostSupportedInstanceTypesInput.nextToken, + outputKey: \GetOutpostSupportedInstanceTypesOutput.nextToken, + logger: logger + ) + } + /// Lists the hardware assets for the specified Outpost. Use filters to return specific results. If you specify multiple filters, the results include only the resources that match all of the specified filters. For a filter where you can specify multiple values, the results include items that match any of the values that you specify for the filter. /// Return PaginatorSequence for operation. /// @@ -476,6 +560,25 @@ extension Outposts { ) } + /// Lists the capacity tasks for your Amazon Web Services account. Use filters to return specific results. If you specify multiple filters, the results include only the resources that match all of the specified filters. For a filter where you can specify multiple values, the results include items that match any of the values that you specify for the filter. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listCapacityTasksPaginator( + _ input: ListCapacityTasksInput, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listCapacityTasks, + inputKey: \ListCapacityTasksInput.nextToken, + outputKey: \ListCapacityTasksOutput.nextToken, + logger: logger + ) + } + /// Lists the items in the catalog. Use filters to return specific results. If you specify multiple filters, the results include only the resources that match all of the specified filters. For a filter where you can specify multiple values, the results include items that match any of the values that you specify for the filter. /// Return PaginatorSequence for operation. /// @@ -563,6 +666,17 @@ extension Outposts.GetOutpostInstanceTypesInput: AWSPaginateToken { } } +extension Outposts.GetOutpostSupportedInstanceTypesInput: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> Outposts.GetOutpostSupportedInstanceTypesInput { + return .init( + maxResults: self.maxResults, + nextToken: token, + orderId: self.orderId, + outpostIdentifier: self.outpostIdentifier + ) + } +} + extension Outposts.ListAssetsInput: AWSPaginateToken { public func usingPaginationToken(_ token: String) -> Outposts.ListAssetsInput { return .init( @@ -575,6 +689,17 @@ extension Outposts.ListAssetsInput: AWSPaginateToken { } } +extension Outposts.ListCapacityTasksInput: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> Outposts.ListCapacityTasksInput { + return .init( + capacityTaskStatusFilter: self.capacityTaskStatusFilter, + maxResults: self.maxResults, + nextToken: token, + outpostIdentifierFilter: self.outpostIdentifierFilter + ) + } +} + extension Outposts.ListCatalogItemsInput: AWSPaginateToken { public func usingPaginationToken(_ token: String) -> Outposts.ListCatalogItemsInput { return .init( diff --git a/Sources/Soto/Services/Outposts/Outposts_shapes.swift b/Sources/Soto/Services/Outposts/Outposts_shapes.swift index 8ea772c9cd..8b4f736820 100644 --- a/Sources/Soto/Services/Outposts/Outposts_shapes.swift +++ b/Sources/Soto/Services/Outposts/Outposts_shapes.swift @@ -44,6 +44,20 @@ extension Outposts { public var description: String { return self.rawValue } } + public enum CapacityTaskFailureType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case unsupportedCapacityConfiguration = "UNSUPPORTED_CAPACITY_CONFIGURATION" + public var description: String { return self.rawValue } + } + + public enum CapacityTaskStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case cancelled = "CANCELLED" + case completed = "COMPLETED" + case failed = "FAILED" + case inProgress = "IN_PROGRESS" + case requested = "REQUESTED" + public var description: String { return self.rawValue } + } + public enum CatalogItemClass: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case rack = "RACK" case server = "SERVER" @@ -172,6 +186,7 @@ extension Outposts { public enum ShipmentCarrier: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case dbs = "DBS" case dhl = "DHL" + case expeditors = "EXPEDITORS" case fedex = "FEDEX" case ups = "UPS" public var description: String { return self.rawValue } @@ -341,6 +356,40 @@ extension Outposts { } } + public struct CancelCapacityTaskInput: AWSEncodableShape { + /// ID of the capacity task that you want to cancel. + public let capacityTaskId: String + /// ID or ARN of the Outpost associated with the capacity task that you want to cancel. + public let outpostIdentifier: String + + public init(capacityTaskId: String, outpostIdentifier: String) { + self.capacityTaskId = capacityTaskId + self.outpostIdentifier = outpostIdentifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.capacityTaskId, key: "CapacityTaskId") + request.encodePath(self.outpostIdentifier, key: "OutpostIdentifier") + } + + public func validate(name: String) throws { + try self.validate(self.capacityTaskId, name: "capacityTaskId", parent: name, max: 21) + try self.validate(self.capacityTaskId, name: "capacityTaskId", parent: name, min: 21) + try self.validate(self.capacityTaskId, name: "capacityTaskId", parent: name, pattern: "^cap-[a-f0-9]{17}$") + try self.validate(self.outpostIdentifier, name: "outpostIdentifier", parent: name, max: 180) + try self.validate(self.outpostIdentifier, name: "outpostIdentifier", parent: name, min: 1) + try self.validate(self.outpostIdentifier, name: "outpostIdentifier", parent: name, pattern: "^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/)?op-[a-f0-9]{17}$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct CancelCapacityTaskOutput: AWSDecodableShape { + public init() {} + } + public struct CancelOrderInput: AWSEncodableShape { /// The ID of the order. public let orderId: String @@ -368,6 +417,60 @@ extension Outposts { public init() {} } + public struct CapacityTaskFailure: AWSDecodableShape { + /// The reason that the specified capacity task failed. + public let reason: String + /// The type of failure. + public let type: CapacityTaskFailureType? + + public init(reason: String, type: CapacityTaskFailureType? = nil) { + self.reason = reason + self.type = type + } + + private enum CodingKeys: String, CodingKey { + case reason = "Reason" + case type = "Type" + } + } + + public struct CapacityTaskSummary: AWSDecodableShape { + /// The ID of the specified capacity task. + public let capacityTaskId: String? + /// The status of the capacity task. + public let capacityTaskStatus: CapacityTaskStatus? + /// The date that the specified capacity task successfully ran. + public let completionDate: Date? + /// The date that the specified capacity task was created. + public let creationDate: Date? + /// The date that the specified capacity was last modified. + public let lastModifiedDate: Date? + /// The ID of the Amazon Web Services Outposts order of the host associated with the capacity task. + public let orderId: String? + /// The ID of the Outpost associated with the specified capacity task. + public let outpostId: String? + + public init(capacityTaskId: String? = nil, capacityTaskStatus: CapacityTaskStatus? = nil, completionDate: Date? = nil, creationDate: Date? = nil, lastModifiedDate: Date? = nil, orderId: String? = nil, outpostId: String? = nil) { + self.capacityTaskId = capacityTaskId + self.capacityTaskStatus = capacityTaskStatus + self.completionDate = completionDate + self.creationDate = creationDate + self.lastModifiedDate = lastModifiedDate + self.orderId = orderId + self.outpostId = outpostId + } + + private enum CodingKeys: String, CodingKey { + case capacityTaskId = "CapacityTaskId" + case capacityTaskStatus = "CapacityTaskStatus" + case completionDate = "CompletionDate" + case creationDate = "CreationDate" + case lastModifiedDate = "LastModifiedDate" + case orderId = "OrderId" + case outpostId = "OutpostId" + } + } + public struct CatalogItem: AWSDecodableShape { /// The ID of the catalog item. public let catalogItemId: String? @@ -650,7 +753,7 @@ extension Outposts { } public struct DeleteOutpostInput: AWSEncodableShape { - /// The ID or the Amazon Resource Name (ARN) of the Outpost. + /// The ID or ARN of the Outpost. public let outpostId: String public init(outpostId: String) { @@ -724,6 +827,85 @@ extension Outposts { } } + public struct GetCapacityTaskInput: AWSEncodableShape { + /// ID of the capacity task. + public let capacityTaskId: String + /// ID or ARN of the Outpost associated with the specified capacity task. + public let outpostIdentifier: String + + public init(capacityTaskId: String, outpostIdentifier: String) { + self.capacityTaskId = capacityTaskId + self.outpostIdentifier = outpostIdentifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.capacityTaskId, key: "CapacityTaskId") + request.encodePath(self.outpostIdentifier, key: "OutpostIdentifier") + } + + public func validate(name: String) throws { + try self.validate(self.capacityTaskId, name: "capacityTaskId", parent: name, max: 21) + try self.validate(self.capacityTaskId, name: "capacityTaskId", parent: name, min: 21) + try self.validate(self.capacityTaskId, name: "capacityTaskId", parent: name, pattern: "^cap-[a-f0-9]{17}$") + try self.validate(self.outpostIdentifier, name: "outpostIdentifier", parent: name, max: 180) + try self.validate(self.outpostIdentifier, name: "outpostIdentifier", parent: name, min: 1) + try self.validate(self.outpostIdentifier, name: "outpostIdentifier", parent: name, pattern: "^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/)?op-[a-f0-9]{17}$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct GetCapacityTaskOutput: AWSDecodableShape { + /// ID of the capacity task. + public let capacityTaskId: String? + /// Status of the capacity task. A capacity task can have one of the following statuses: REQUESTED - The capacity task was created and is awaiting the next step by Amazon Web Services Outposts. IN_PROGRESS - The capacity task is running and cannot be cancelled. WAITING_FOR_EVACUATION - The capacity task requires capacity to run. You must stop the recommended EC2 running instances to free up capacity for the task to run. + public let capacityTaskStatus: CapacityTaskStatus? + /// The date the capacity task ran successfully. + public let completionDate: Date? + /// The date the capacity task was created. + public let creationDate: Date? + /// Performs a dry run to determine if you are above or below instance capacity. + public let dryRun: Bool? + /// Reason why the capacity task failed. + public let failed: CapacityTaskFailure? + /// The date the capacity task was last modified. + public let lastModifiedDate: Date? + /// ID of the Amazon Web Services Outposts order associated with the specified capacity task. + public let orderId: String? + /// ID of the Outpost associated with the specified capacity task. + public let outpostId: String? + /// List of instance pools requested in the capacity task. + public let requestedInstancePools: [InstanceTypeCapacity]? + + public init(capacityTaskId: String? = nil, capacityTaskStatus: CapacityTaskStatus? = nil, completionDate: Date? = nil, creationDate: Date? = nil, dryRun: Bool? = nil, failed: CapacityTaskFailure? = nil, lastModifiedDate: Date? = nil, orderId: String? = nil, outpostId: String? = nil, requestedInstancePools: [InstanceTypeCapacity]? = nil) { + self.capacityTaskId = capacityTaskId + self.capacityTaskStatus = capacityTaskStatus + self.completionDate = completionDate + self.creationDate = creationDate + self.dryRun = dryRun + self.failed = failed + self.lastModifiedDate = lastModifiedDate + self.orderId = orderId + self.outpostId = outpostId + self.requestedInstancePools = requestedInstancePools + } + + private enum CodingKeys: String, CodingKey { + case capacityTaskId = "CapacityTaskId" + case capacityTaskStatus = "CapacityTaskStatus" + case completionDate = "CompletionDate" + case creationDate = "CreationDate" + case dryRun = "DryRun" + case failed = "Failed" + case lastModifiedDate = "LastModifiedDate" + case orderId = "OrderId" + case outpostId = "OutpostId" + case requestedInstancePools = "RequestedInstancePools" + } + } + public struct GetCatalogItemInput: AWSEncodableShape { /// The ID of the catalog item. public let catalogItemId: String @@ -836,7 +1018,7 @@ extension Outposts { } public struct GetOutpostInput: AWSEncodableShape { - /// The ID or the Amazon Resource Name (ARN) of the Outpost. + /// The ID or ARN of the Outpost. public let outpostId: String public init(outpostId: String) { @@ -861,7 +1043,7 @@ extension Outposts { public struct GetOutpostInstanceTypesInput: AWSEncodableShape { public let maxResults: Int? public let nextToken: String? - /// The ID or the Amazon Resource Name (ARN) of the Outpost. + /// The ID or ARN of the Outpost. public let outpostId: String public init(maxResults: Int? = nil, nextToken: String? = nil, outpostId: String) { @@ -926,6 +1108,62 @@ extension Outposts { } } + public struct GetOutpostSupportedInstanceTypesInput: AWSEncodableShape { + public let maxResults: Int? + public let nextToken: String? + /// The ID for the Amazon Web Services Outposts order. + public let orderId: String + /// The ID or ARN of the Outpost. + public let outpostIdentifier: String + + public init(maxResults: Int? = nil, nextToken: String? = nil, orderId: String, outpostIdentifier: String) { + self.maxResults = maxResults + self.nextToken = nextToken + self.orderId = orderId + self.outpostIdentifier = outpostIdentifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.maxResults, key: "MaxResults") + request.encodeQuery(self.nextToken, key: "NextToken") + request.encodeQuery(self.orderId, key: "OrderId") + request.encodePath(self.outpostIdentifier, key: "OutpostIdentifier") + } + + public func validate(name: String) throws { + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 1000) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, max: 2048) + try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^(\\d+)##(\\S+)$") + try self.validate(self.orderId, name: "orderId", parent: name, max: 20) + try self.validate(self.orderId, name: "orderId", parent: name, min: 1) + try self.validate(self.orderId, name: "orderId", parent: name, pattern: "^oo-[a-f0-9]{17}$") + try self.validate(self.outpostIdentifier, name: "outpostIdentifier", parent: name, max: 180) + try self.validate(self.outpostIdentifier, name: "outpostIdentifier", parent: name, min: 1) + try self.validate(self.outpostIdentifier, name: "outpostIdentifier", parent: name, pattern: "^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/)?op-[a-f0-9]{17}$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct GetOutpostSupportedInstanceTypesOutput: AWSDecodableShape { + public let instanceTypes: [InstanceTypeItem]? + public let nextToken: String? + + public init(instanceTypes: [InstanceTypeItem]? = nil, nextToken: String? = nil) { + self.instanceTypes = instanceTypes + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case instanceTypes = "InstanceTypes" + case nextToken = "NextToken" + } + } + public struct GetSiteAddressInput: AWSEncodableShape { /// The type of the address you request. public let addressType: AddressType @@ -1008,6 +1246,31 @@ extension Outposts { } } + public struct InstanceTypeCapacity: AWSEncodableShape & AWSDecodableShape { + /// The number of instances for the specified instance type. + public let count: Int + /// The instance type of the hosts. + public let instanceType: String + + public init(count: Int, instanceType: String) { + self.count = count + self.instanceType = instanceType + } + + public func validate(name: String) throws { + try self.validate(self.count, name: "count", parent: name, max: 9999) + try self.validate(self.count, name: "count", parent: name, min: 0) + try self.validate(self.instanceType, name: "instanceType", parent: name, max: 64) + try self.validate(self.instanceType, name: "instanceType", parent: name, min: 1) + try self.validate(self.instanceType, name: "instanceType", parent: name, pattern: "^[a-z0-9\\-]+\\.[a-z0-9\\-]+$") + } + + private enum CodingKeys: String, CodingKey { + case count = "Count" + case instanceType = "InstanceType" + } + } + public struct InstanceTypeItem: AWSDecodableShape { public let instanceType: String? @@ -1167,6 +1430,60 @@ extension Outposts { } } + public struct ListCapacityTasksInput: AWSEncodableShape { + /// A list of statuses. For example, REQUESTED or WAITING_FOR_EVACUATION. + public let capacityTaskStatusFilter: [CapacityTaskStatus]? + public let maxResults: Int? + public let nextToken: String? + /// Filters the results by an Outpost ID or an Outpost ARN. + public let outpostIdentifierFilter: String? + + public init(capacityTaskStatusFilter: [CapacityTaskStatus]? = nil, maxResults: Int? = nil, nextToken: String? = nil, outpostIdentifierFilter: String? = nil) { + self.capacityTaskStatusFilter = capacityTaskStatusFilter + self.maxResults = maxResults + self.nextToken = nextToken + self.outpostIdentifierFilter = outpostIdentifierFilter + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.capacityTaskStatusFilter, key: "CapacityTaskStatusFilter") + request.encodeQuery(self.maxResults, key: "MaxResults") + request.encodeQuery(self.nextToken, key: "NextToken") + request.encodeQuery(self.outpostIdentifierFilter, key: "OutpostIdentifierFilter") + } + + public func validate(name: String) throws { + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 1000) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, max: 2048) + try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^(\\d+)##(\\S+)$") + try self.validate(self.outpostIdentifierFilter, name: "outpostIdentifierFilter", parent: name, max: 180) + try self.validate(self.outpostIdentifierFilter, name: "outpostIdentifierFilter", parent: name, min: 1) + try self.validate(self.outpostIdentifierFilter, name: "outpostIdentifierFilter", parent: name, pattern: "^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/)?op-[a-f0-9]{17}$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListCapacityTasksOutput: AWSDecodableShape { + /// Lists all the capacity tasks. + public let capacityTasks: [CapacityTaskSummary]? + public let nextToken: String? + + public init(capacityTasks: [CapacityTaskSummary]? = nil, nextToken: String? = nil) { + self.capacityTasks = capacityTasks + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case capacityTasks = "CapacityTasks" + case nextToken = "NextToken" + } + } + public struct ListCatalogItemsInput: AWSEncodableShape { /// Filters the results by EC2 family (for example, M5). public let ec2FamilyFilter: [String]? @@ -1696,6 +2013,100 @@ extension Outposts { } } + public struct StartCapacityTaskInput: AWSEncodableShape { + /// You can request a dry run to determine if the instance type and instance size changes is above or below available instance capacity. Requesting a dry run does not make any changes to your plan. + public let dryRun: Bool? + /// The instance pools specified in the capacity task. + public let instancePools: [InstanceTypeCapacity] + /// The ID of the Amazon Web Services Outposts order associated with the specified capacity task. + public let orderId: String + /// The ID or ARN of the Outposts associated with the specified capacity task. + public let outpostIdentifier: String + + public init(dryRun: Bool? = nil, instancePools: [InstanceTypeCapacity], orderId: String, outpostIdentifier: String) { + self.dryRun = dryRun + self.instancePools = instancePools + self.orderId = orderId + self.outpostIdentifier = outpostIdentifier + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.dryRun, forKey: .dryRun) + try container.encode(self.instancePools, forKey: .instancePools) + try container.encode(self.orderId, forKey: .orderId) + request.encodePath(self.outpostIdentifier, key: "OutpostIdentifier") + } + + public func validate(name: String) throws { + try self.instancePools.forEach { + try $0.validate(name: "\(name).instancePools[]") + } + try self.validate(self.orderId, name: "orderId", parent: name, max: 20) + try self.validate(self.orderId, name: "orderId", parent: name, min: 1) + try self.validate(self.orderId, name: "orderId", parent: name, pattern: "^oo-[a-f0-9]{17}$") + try self.validate(self.outpostIdentifier, name: "outpostIdentifier", parent: name, max: 180) + try self.validate(self.outpostIdentifier, name: "outpostIdentifier", parent: name, min: 1) + try self.validate(self.outpostIdentifier, name: "outpostIdentifier", parent: name, pattern: "^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/)?op-[a-f0-9]{17}$") + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "DryRun" + case instancePools = "InstancePools" + case orderId = "OrderId" + } + } + + public struct StartCapacityTaskOutput: AWSDecodableShape { + /// ID of the capacity task that you want to start. + public let capacityTaskId: String? + /// Status of the specified capacity task. + public let capacityTaskStatus: CapacityTaskStatus? + /// Date that the specified capacity task ran successfully. + public let completionDate: Date? + /// Date that the specified capacity task was created. + public let creationDate: Date? + /// Results of the dry run showing if the specified capacity task is above or below the available instance capacity. + public let dryRun: Bool? + /// Reason that the specified capacity task failed. + public let failed: CapacityTaskFailure? + /// Date that the specified capacity task was last modified. + public let lastModifiedDate: Date? + /// ID of the Amazon Web Services Outposts order of the host associated with the capacity task. + public let orderId: String? + /// ID of the Outpost associated with the capacity task. + public let outpostId: String? + /// List of the instance pools requested in the specified capacity task. + public let requestedInstancePools: [InstanceTypeCapacity]? + + public init(capacityTaskId: String? = nil, capacityTaskStatus: CapacityTaskStatus? = nil, completionDate: Date? = nil, creationDate: Date? = nil, dryRun: Bool? = nil, failed: CapacityTaskFailure? = nil, lastModifiedDate: Date? = nil, orderId: String? = nil, outpostId: String? = nil, requestedInstancePools: [InstanceTypeCapacity]? = nil) { + self.capacityTaskId = capacityTaskId + self.capacityTaskStatus = capacityTaskStatus + self.completionDate = completionDate + self.creationDate = creationDate + self.dryRun = dryRun + self.failed = failed + self.lastModifiedDate = lastModifiedDate + self.orderId = orderId + self.outpostId = outpostId + self.requestedInstancePools = requestedInstancePools + } + + private enum CodingKeys: String, CodingKey { + case capacityTaskId = "CapacityTaskId" + case capacityTaskStatus = "CapacityTaskStatus" + case completionDate = "CompletionDate" + case creationDate = "CreationDate" + case dryRun = "DryRun" + case failed = "Failed" + case lastModifiedDate = "LastModifiedDate" + case orderId = "OrderId" + case outpostId = "OutpostId" + case requestedInstancePools = "RequestedInstancePools" + } + } + public struct StartConnectionRequest: AWSEncodableShape { /// The ID of the Outpost server. public let assetId: String @@ -1833,7 +2244,7 @@ extension Outposts { public struct UpdateOutpostInput: AWSEncodableShape { public let description: String? public let name: String? - /// The ID or the Amazon Resource Name (ARN) of the Outpost. + /// The ID or ARN of the Outpost. public let outpostId: String /// The type of hardware for this Outpost. public let supportedHardwareType: SupportedHardwareType? diff --git a/Sources/Soto/Services/PI/PI_api.swift b/Sources/Soto/Services/PI/PI_api.swift index 88978312c0..158777d4e4 100644 --- a/Sources/Soto/Services/PI/PI_api.swift +++ b/Sources/Soto/Services/PI/PI_api.swift @@ -153,7 +153,7 @@ public struct PI: AWSService { ) } - /// Retrieve Performance Insights metrics for a set of data sources over a time period. You can provide specific dimension groups and dimensions, and provide aggregation and filtering criteria for each group. Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned. + /// Retrieve Performance Insights metrics for a set of data sources over a time period. You can provide specific dimension groups and dimensions, and provide filtering criteria for each group. You must specify an aggregate function for each metric. Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned. @Sendable public func getResourceMetrics(_ input: GetResourceMetricsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetResourceMetricsResponse { return try await self.client.execute( @@ -277,7 +277,7 @@ extension PI { ) } - /// Retrieve Performance Insights metrics for a set of data sources over a time period. You can provide specific dimension groups and dimensions, and provide aggregation and filtering criteria for each group. Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned. + /// Retrieve Performance Insights metrics for a set of data sources over a time period. You can provide specific dimension groups and dimensions, and provide filtering criteria for each group. You must specify an aggregate function for each metric. Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned. /// Return PaginatorSequence for operation. /// /// - Parameters: diff --git a/Sources/Soto/Services/PI/PI_shapes.swift b/Sources/Soto/Services/PI/PI_shapes.swift index 4adc22bd45..c7e1bd2220 100644 --- a/Sources/Soto/Services/PI/PI_shapes.swift +++ b/Sources/Soto/Services/PI/PI_shapes.swift @@ -664,7 +664,7 @@ extension PI { public let identifier: String /// The maximum number of items to return in the response. If more items exist than the specified MaxRecords value, a pagination token is included in the response so that the remaining results can be retrieved. public let maxResults: Int? - /// An array of one or more queries to perform. Each query must specify a Performance Insights metric, and can optionally specify aggregation and filtering criteria. + /// An array of one or more queries to perform. Each query must specify a Performance Insights metric and specify an aggregate function, and you can provide filtering criteria. You must append the aggregate function to the metric. For example, to find the average for the metric db.load you must use db.load.avg. Valid values for aggregate functions include .avg, .min, .max, and .sum. public let metricQueries: [MetricQuery] /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the token, up to the value specified by MaxRecords. public let nextToken: String? @@ -1052,7 +1052,7 @@ extension PI { public let filter: [String: String]? /// A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension. public let groupBy: DimensionGroup? - /// The name of a Performance Insights metric to be measured. Valid values for Metric are: db.load.avg - A scaled representation of the number of active sessions for the database engine. db.sampledload.avg - The raw number of active sessions for the database engine. The counter metrics listed in Performance Insights operating system counters in the Amazon Aurora User Guide. If the number of active sessions is less than an internal Performance Insights threshold, db.load.avg and db.sampledload.avg are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with db.load.avg showing the scaled values, db.sampledload.avg showing the raw values, and db.sampledload.avg less than db.load.avg. For most use cases, you can query db.load.avg only. + /// The name of a Performance Insights metric to be measured. Valid values for Metric are: db.load.avg - A scaled representation of the number of active sessions for the database engine. db.sampledload.avg - The raw number of active sessions for the database engine. The counter metrics listed in Performance Insights operating system counters in the Amazon Aurora User Guide. The counter metrics listed in Performance Insights operating system counters in the Amazon RDS User Guide. If the number of active sessions is less than an internal Performance Insights threshold, db.load.avg and db.sampledload.avg are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with db.load.avg showing the scaled values, db.sampledload.avg showing the raw values, and db.sampledload.avg less than db.load.avg. For most use cases, you can query db.load.avg only. public let metric: String public init(filter: [String: String]? = nil, groupBy: DimensionGroup? = nil, metric: String) { @@ -1159,7 +1159,7 @@ extension PI { public struct ResponseResourceMetricKey: AWSDecodableShape { /// The valid dimensions for the metric. public let dimensions: [String: String]? - /// The name of a Performance Insights metric to be measured. Valid values for Metric are: db.load.avg - A scaled representation of the number of active sessions for the database engine. db.sampledload.avg - The raw number of active sessions for the database engine. The counter metrics listed in Performance Insights operating system counters in the Amazon Aurora User Guide. If the number of active sessions is less than an internal Performance Insights threshold, db.load.avg and db.sampledload.avg are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with db.load.avg showing the scaled values, db.sampledload.avg showing the raw values, and db.sampledload.avg less than db.load.avg. For most use cases, you can query db.load.avg only. + /// The name of a Performance Insights metric to be measured. Valid values for Metric are: db.load.avg - A scaled representation of the number of active sessions for the database engine. db.sampledload.avg - The raw number of active sessions for the database engine. The counter metrics listed in Performance Insights operating system counters in the Amazon Aurora User Guide. The counter metrics listed in Performance Insights operating system counters in the Amazon RDS User Guide. If the number of active sessions is less than an internal Performance Insights threshold, db.load.avg and db.sampledload.avg are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with db.load.avg showing the scaled values, db.sampledload.avg showing the raw values, and db.sampledload.avg less than db.load.avg. For most use cases, you can query db.load.avg only. public let metric: String public init(dimensions: [String: String]? = nil, metric: String) { diff --git a/Sources/Soto/Services/PaymentCryptography/PaymentCryptography_api.swift b/Sources/Soto/Services/PaymentCryptography/PaymentCryptography_api.swift index 6f7c33d2c1..5d0bb5ecad 100644 --- a/Sources/Soto/Services/PaymentCryptography/PaymentCryptography_api.swift +++ b/Sources/Soto/Services/PaymentCryptography/PaymentCryptography_api.swift @@ -101,7 +101,7 @@ public struct PaymentCryptography: AWSService { ) } - /// Deletes the alias, but doesn't affect the underlying key. Each key can have multiple aliases. To get the aliases of all keys, use the ListAliases operation. To change the alias of a key, first use DeleteAlias to delete the current alias and then use CreateAlias to create a new alias. To associate an existing alias with a different key, call UpdateAlias. Cross-account use: This operation can't be used across different Amazon Web Services accounts. Related operations: CreateAlias GetAlias ListAliases UpdateAlias + /// Deletes the alias, but doesn't affect the underlying key. Each key can have multiple aliases. To get the aliases of all keys, use the UpdateAlias operation. To change the alias of a key, first use DeleteAlias to delete the current alias and then use CreateAlias to create a new alias. To associate an existing alias with a different key, call UpdateAlias. Cross-account use: This operation can't be used across different Amazon Web Services accounts. Related operations: CreateAlias GetAlias ListAliases UpdateAlias @Sendable public func deleteAlias(_ input: DeleteAliasInput, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteAliasOutput { return try await self.client.execute( @@ -127,7 +127,7 @@ public struct PaymentCryptography: AWSService { ) } - /// Exports a key from Amazon Web Services Payment Cryptography. Amazon Web Services Payment Cryptography simplifies key exchange by replacing the existing paper-based approach with a modern electronic approach. With ExportKey you can export symmetric keys using either symmetric and asymmetric key exchange mechanisms. Using this operation, you can share your Amazon Web Services Payment Cryptography generated keys with other service partners to perform cryptographic operations outside of Amazon Web Services Payment Cryptography For symmetric key exchange, Amazon Web Services Payment Cryptography uses the ANSI X9 TR-31 norm in accordance with PCI PIN guidelines. And for asymmetric key exchange, Amazon Web Services Payment Cryptography supports ANSI X9 TR-34 norm and RSA wrap and unwrap key exchange mechanism. Asymmetric key exchange methods are typically used to establish bi-directional trust between the two parties exhanging keys and are used for initial key exchange such as Key Encryption Key (KEK). After which you can export working keys using symmetric method to perform various cryptographic operations within Amazon Web Services Payment Cryptography. The TR-34 norm is intended for exchanging 3DES keys only and keys are imported in a WrappedKeyBlock format. Key attributes (such as KeyUsage, KeyAlgorithm, KeyModesOfUse, Exportability) are contained within the key block. With RSA wrap and unwrap, you can exchange both 3DES and AES-128 keys. The keys are imported in a WrappedKeyCryptogram format and you will need to specify the key attributes during import. You can also use ExportKey functionality to generate and export an IPEK (Initial Pin Encryption Key) from Amazon Web Services Payment Cryptography using either TR-31 or TR-34 export key exchange. IPEK is generated from BDK (Base Derivation Key) and ExportDukptInitialKey attribute KSN (KeySerialNumber). The generated IPEK does not persist within Amazon Web Services Payment Cryptography and has to be re-generated each time during export. To export initial keys (KEK) or IPEK using TR-34 Using this operation, you can export initial key using TR-34 asymmetric key exchange. You can only export KEK generated within Amazon Web Services Payment Cryptography. In TR-34 terminology, the sending party of the key is called Key Distribution Host (KDH) and the receiving party of the key is called Key Receiving Device (KRD). During key export process, KDH is Amazon Web Services Payment Cryptography which initiates key export and KRD is the user receiving the key. To initiate TR-34 key export, the KRD must obtain an export token by calling GetParametersForExport. This operation also generates a key pair for the purpose of key export, signs the key and returns back the signing public key certificate (also known as KDH signing certificate) and root certificate chain. The KDH uses the private key to sign the the export payload and the signing public key certificate is provided to KRD to verify the signature. The KRD can import the root certificate into its Hardware Security Module (HSM), as required. The export token and the associated KDH signing certificate expires after 7 days. Next the KRD generates a key pair for the the purpose of encrypting the KDH key and provides the public key cerificate (also known as KRD wrapping certificate) back to KDH. The KRD will also import the root cerificate chain into Amazon Web Services Payment Cryptography by calling ImportKey for RootCertificatePublicKey. The KDH, Amazon Web Services Payment Cryptography, will use the KRD wrapping cerificate to encrypt (wrap) the key under export and signs it with signing private key to generate a TR-34 WrappedKeyBlock. For more information on TR-34 key export, see section Exporting symmetric keys in the Amazon Web Services Payment Cryptography User Guide. Set the following parameters: ExportAttributes: Specify export attributes in case of IPEK export. This parameter is optional for KEK export. ExportKeyIdentifier: The KeyARN of the KEK or BDK (in case of IPEK) under export. KeyMaterial: Use Tr34KeyBlock parameters. CertificateAuthorityPublicKeyIdentifier: The KeyARN of the certificate chain that signed the KRD wrapping key certificate. ExportToken: Obtained from KDH by calling GetParametersForImport. WrappingKeyCertificate: The public key certificate in PEM format (base64 encoded) of the KRD wrapping key Amazon Web Services Payment Cryptography uses for encryption of the TR-34 export payload. This certificate must be signed by the root certificate (CertificateAuthorityPublicKeyIdentifier) imported into Amazon Web Services Payment Cryptography. When this operation is successful, Amazon Web Services Payment Cryptography returns the KEK or IPEK as a TR-34 WrappedKeyBlock. To export initial keys (KEK) or IPEK using RSA Wrap and Unwrap Using this operation, you can export initial key using asymmetric RSA wrap and unwrap key exchange method. To initiate export, generate an asymmetric key pair on the receiving HSM and obtain the public key certificate in PEM format (base64 encoded) for the purpose of wrapping and the root certifiate chain. Import the root certificate into Amazon Web Services Payment Cryptography by calling ImportKey for RootCertificatePublicKey. Next call ExportKey and set the following parameters: CertificateAuthorityPublicKeyIdentifier: The KeyARN of the certificate chain that signed wrapping key certificate. KeyMaterial: Set to KeyCryptogram. WrappingKeyCertificate: The public key certificate in PEM format (base64 encoded) obtained by the receiving HSM and signed by the root certificate (CertificateAuthorityPublicKeyIdentifier) imported into Amazon Web Services Payment Cryptography. The receiving HSM uses its private key component to unwrap the WrappedKeyCryptogram. When this operation is successful, Amazon Web Services Payment Cryptography returns the WrappedKeyCryptogram. To export working keys or IPEK using TR-31 Using this operation, you can export working keys or IPEK using TR-31 symmetric key exchange. In TR-31, you must use an initial key such as KEK to encrypt or wrap the key under export. To establish a KEK, you can use CreateKey or ImportKey. Set the following parameters: ExportAttributes: Specify export attributes in case of IPEK export. This parameter is optional for KEK export. ExportKeyIdentifier: The KeyARN of the KEK or BDK (in case of IPEK) under export. KeyMaterial: Use Tr31KeyBlock parameters. When this operation is successful, Amazon Web Services Payment Cryptography returns the working key or IPEK as a TR-31 WrappedKeyBlock. Cross-account use: This operation can't be used across different Amazon Web Services accounts. Related operations: GetParametersForExport ImportKey + /// Exports a key from Amazon Web Services Payment Cryptography. Amazon Web Services Payment Cryptography simplifies key exchange by replacing the existing paper-based approach with a modern electronic approach. With ExportKey you can export symmetric keys using either symmetric and asymmetric key exchange mechanisms. Using this operation, you can share your Amazon Web Services Payment Cryptography generated keys with other service partners to perform cryptographic operations outside of Amazon Web Services Payment Cryptography For symmetric key exchange, Amazon Web Services Payment Cryptography uses the ANSI X9 TR-31 norm in accordance with PCI PIN guidelines. And for asymmetric key exchange, Amazon Web Services Payment Cryptography supports ANSI X9 TR-34 norm and RSA wrap and unwrap key exchange mechanism. Asymmetric key exchange methods are typically used to establish bi-directional trust between the two parties exhanging keys and are used for initial key exchange such as Key Encryption Key (KEK). After which you can export working keys using symmetric method to perform various cryptographic operations within Amazon Web Services Payment Cryptography. The TR-34 norm is intended for exchanging 3DES keys only and keys are imported in a WrappedKeyBlock format. Key attributes (such as KeyUsage, KeyAlgorithm, KeyModesOfUse, Exportability) are contained within the key block. With RSA wrap and unwrap, you can exchange both 3DES and AES-128 keys. The keys are imported in a WrappedKeyCryptogram format and you will need to specify the key attributes during import. You can also use ExportKey functionality to generate and export an IPEK (Initial Pin Encryption Key) from Amazon Web Services Payment Cryptography using either TR-31 or TR-34 export key exchange. IPEK is generated from BDK (Base Derivation Key) and ExportDukptInitialKey attribute KSN (KeySerialNumber). The generated IPEK does not persist within Amazon Web Services Payment Cryptography and has to be re-generated each time during export. For key exchange using TR-31 or TR-34 key blocks, you can also export optional blocks within the key block header which contain additional attribute information about the key. The KeyVersion within KeyBlockHeaders indicates the version of the key within the key block. Furthermore, KeyExportability within KeyBlockHeaders can be used to further restrict exportability of the key after export from Amazon Web Services Payment Cryptography. The OptionalBlocks contain the additional data related to the key. For information on data type that can be included within optional blocks, refer to ASC X9.143-2022. Data included in key block headers is signed but transmitted in clear text. Sensitive or confidential information should not be included in optional blocks. Refer to ASC X9.143-2022 standard for information on allowed data type. To export initial keys (KEK) or IPEK using TR-34 Using this operation, you can export initial key using TR-34 asymmetric key exchange. You can only export KEK generated within Amazon Web Services Payment Cryptography. In TR-34 terminology, the sending party of the key is called Key Distribution Host (KDH) and the receiving party of the key is called Key Receiving Device (KRD). During key export process, KDH is Amazon Web Services Payment Cryptography which initiates key export and KRD is the user receiving the key. To initiate TR-34 key export, the KRD must obtain an export token by calling GetParametersForExport. This operation also generates a key pair for the purpose of key export, signs the key and returns back the signing public key certificate (also known as KDH signing certificate) and root certificate chain. The KDH uses the private key to sign the the export payload and the signing public key certificate is provided to KRD to verify the signature. The KRD can import the root certificate into its Hardware Security Module (HSM), as required. The export token and the associated KDH signing certificate expires after 7 days. Next the KRD generates a key pair for the the purpose of encrypting the KDH key and provides the public key cerificate (also known as KRD wrapping certificate) back to KDH. The KRD will also import the root cerificate chain into Amazon Web Services Payment Cryptography by calling ImportKey for RootCertificatePublicKey. The KDH, Amazon Web Services Payment Cryptography, will use the KRD wrapping cerificate to encrypt (wrap) the key under export and signs it with signing private key to generate a TR-34 WrappedKeyBlock. For more information on TR-34 key export, see section Exporting symmetric keys in the Amazon Web Services Payment Cryptography User Guide. Set the following parameters: ExportAttributes: Specify export attributes in case of IPEK export. This parameter is optional for KEK export. ExportKeyIdentifier: The KeyARN of the KEK or BDK (in case of IPEK) under export. KeyMaterial: Use Tr34KeyBlock parameters. CertificateAuthorityPublicKeyIdentifier: The KeyARN of the certificate chain that signed the KRD wrapping key certificate. ExportToken: Obtained from KDH by calling GetParametersForImport. WrappingKeyCertificate: The public key certificate in PEM format (base64 encoded) of the KRD wrapping key Amazon Web Services Payment Cryptography uses for encryption of the TR-34 export payload. This certificate must be signed by the root certificate (CertificateAuthorityPublicKeyIdentifier) imported into Amazon Web Services Payment Cryptography. When this operation is successful, Amazon Web Services Payment Cryptography returns the KEK or IPEK as a TR-34 WrappedKeyBlock. To export initial keys (KEK) or IPEK using RSA Wrap and Unwrap Using this operation, you can export initial key using asymmetric RSA wrap and unwrap key exchange method. To initiate export, generate an asymmetric key pair on the receiving HSM and obtain the public key certificate in PEM format (base64 encoded) for the purpose of wrapping and the root certifiate chain. Import the root certificate into Amazon Web Services Payment Cryptography by calling ImportKey for RootCertificatePublicKey. Next call ExportKey and set the following parameters: CertificateAuthorityPublicKeyIdentifier: The KeyARN of the certificate chain that signed wrapping key certificate. KeyMaterial: Set to KeyCryptogram. WrappingKeyCertificate: The public key certificate in PEM format (base64 encoded) obtained by the receiving HSM and signed by the root certificate (CertificateAuthorityPublicKeyIdentifier) imported into Amazon Web Services Payment Cryptography. The receiving HSM uses its private key component to unwrap the WrappedKeyCryptogram. When this operation is successful, Amazon Web Services Payment Cryptography returns the WrappedKeyCryptogram. To export working keys or IPEK using TR-31 Using this operation, you can export working keys or IPEK using TR-31 symmetric key exchange. In TR-31, you must use an initial key such as KEK to encrypt or wrap the key under export. To establish a KEK, you can use CreateKey or ImportKey. Set the following parameters: ExportAttributes: Specify export attributes in case of IPEK export. This parameter is optional for KEK export. ExportKeyIdentifier: The KeyARN of the KEK or BDK (in case of IPEK) under export. KeyMaterial: Use Tr31KeyBlock parameters. When this operation is successful, Amazon Web Services Payment Cryptography returns the working key or IPEK as a TR-31 WrappedKeyBlock. Cross-account use: This operation can't be used across different Amazon Web Services accounts. Related operations: GetParametersForExport ImportKey @Sendable public func exportKey(_ input: ExportKeyInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ExportKeyOutput { return try await self.client.execute( diff --git a/Sources/Soto/Services/PaymentCryptography/PaymentCryptography_shapes.swift b/Sources/Soto/Services/PaymentCryptography/PaymentCryptography_shapes.swift index f9480d8cbe..2f7bc02ba2 100644 --- a/Sources/Soto/Services/PaymentCryptography/PaymentCryptography_shapes.swift +++ b/Sources/Soto/Services/PaymentCryptography/PaymentCryptography_shapes.swift @@ -52,6 +52,13 @@ extension PaymentCryptography { public var description: String { return self.rawValue } } + public enum KeyExportability: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case exportable = "EXPORTABLE" + case nonExportable = "NON_EXPORTABLE" + case sensitive = "SENSITIVE" + public var description: String { return self.rawValue } + } + public enum KeyMaterialType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case keyCryptogram = "KEY_CRYPTOGRAM" case rootPublicKeyCertificate = "ROOT_PUBLIC_KEY_CERTIFICATE" @@ -489,20 +496,25 @@ extension PaymentCryptography { } public struct ExportTr31KeyBlock: AWSEncodableShape { + /// Optional metadata for export associated with the key material. This data is signed but transmitted in clear text. + public let keyBlockHeaders: KeyBlockHeaders? /// The KeyARN of the the wrapping key. This key encrypts or wraps the key under export for TR-31 key block generation. public let wrappingKeyIdentifier: String - public init(wrappingKeyIdentifier: String) { + public init(keyBlockHeaders: KeyBlockHeaders? = nil, wrappingKeyIdentifier: String) { + self.keyBlockHeaders = keyBlockHeaders self.wrappingKeyIdentifier = wrappingKeyIdentifier } public func validate(name: String) throws { + try self.keyBlockHeaders?.validate(name: "\(name).keyBlockHeaders") try self.validate(self.wrappingKeyIdentifier, name: "wrappingKeyIdentifier", parent: name, max: 322) try self.validate(self.wrappingKeyIdentifier, name: "wrappingKeyIdentifier", parent: name, min: 7) try self.validate(self.wrappingKeyIdentifier, name: "wrappingKeyIdentifier", parent: name, pattern: "^arn:aws:payment-cryptography:[a-z]{2}-[a-z]{1,16}-[0-9]+:[0-9]{12}:(key/[0-9a-zA-Z]{16,64}|alias/[a-zA-Z0-9/_-]+)$|^alias/[a-zA-Z0-9/_-]+$") } private enum CodingKeys: String, CodingKey { + case keyBlockHeaders = "KeyBlockHeaders" case wrappingKeyIdentifier = "WrappingKeyIdentifier" } } @@ -514,15 +526,18 @@ extension PaymentCryptography { public let exportToken: String /// The format of key block that Amazon Web Services Payment Cryptography will use during key export. public let keyBlockFormat: Tr34KeyBlockFormat + /// Optional metadata for export associated with the key material. This data is signed but transmitted in clear text. + public let keyBlockHeaders: KeyBlockHeaders? /// A random number value that is unique to the TR-34 key block generated using 2 pass. The operation will fail, if a random nonce value is not provided for a TR-34 key block generated using 2 pass. public let randomNonce: String? /// The KeyARN of the wrapping key certificate. Amazon Web Services Payment Cryptography uses this certificate to wrap the key under export. public let wrappingKeyCertificate: String - public init(certificateAuthorityPublicKeyIdentifier: String, exportToken: String, keyBlockFormat: Tr34KeyBlockFormat, randomNonce: String? = nil, wrappingKeyCertificate: String) { + public init(certificateAuthorityPublicKeyIdentifier: String, exportToken: String, keyBlockFormat: Tr34KeyBlockFormat, keyBlockHeaders: KeyBlockHeaders? = nil, randomNonce: String? = nil, wrappingKeyCertificate: String) { self.certificateAuthorityPublicKeyIdentifier = certificateAuthorityPublicKeyIdentifier self.exportToken = exportToken self.keyBlockFormat = keyBlockFormat + self.keyBlockHeaders = keyBlockHeaders self.randomNonce = randomNonce self.wrappingKeyCertificate = wrappingKeyCertificate } @@ -532,6 +547,7 @@ extension PaymentCryptography { try self.validate(self.certificateAuthorityPublicKeyIdentifier, name: "certificateAuthorityPublicKeyIdentifier", parent: name, min: 7) try self.validate(self.certificateAuthorityPublicKeyIdentifier, name: "certificateAuthorityPublicKeyIdentifier", parent: name, pattern: "^arn:aws:payment-cryptography:[a-z]{2}-[a-z]{1,16}-[0-9]+:[0-9]{12}:(key/[0-9a-zA-Z]{16,64}|alias/[a-zA-Z0-9/_-]+)$|^alias/[a-zA-Z0-9/_-]+$") try self.validate(self.exportToken, name: "exportToken", parent: name, pattern: "^export-token-[0-9a-zA-Z]{16,64}$") + try self.keyBlockHeaders?.validate(name: "\(name).keyBlockHeaders") try self.validate(self.randomNonce, name: "randomNonce", parent: name, max: 16) try self.validate(self.randomNonce, name: "randomNonce", parent: name, min: 16) try self.validate(self.randomNonce, name: "randomNonce", parent: name, pattern: "^[0-9A-F]+$") @@ -544,6 +560,7 @@ extension PaymentCryptography { case certificateAuthorityPublicKeyIdentifier = "CertificateAuthorityPublicKeyIdentifier" case exportToken = "ExportToken" case keyBlockFormat = "KeyBlockFormat" + case keyBlockHeaders = "KeyBlockHeaders" case randomNonce = "RandomNonce" case wrappingKeyCertificate = "WrappingKeyCertificate" } @@ -983,6 +1000,44 @@ extension PaymentCryptography { } } + public struct KeyBlockHeaders: AWSEncodableShape { + /// Specifies subsequent exportability of the key within the key block after it is received by the receiving party. It can be used to further restrict exportability of the key after export from Amazon Web Services Payment Cryptography. When set to EXPORTABLE, the key can be subsequently exported by the receiver under a KEK using TR-31 or TR-34 key block export only. When set to NON_EXPORTABLE, the key cannot be subsequently exported by the receiver. When set to SENSITIVE, the key can be exported by the receiver under a KEK using TR-31, TR-34, RSA wrap and unwrap cryptogram or using a symmetric cryptogram key export method. For further information refer to ANSI X9.143-2022. + public let keyExportability: KeyExportability? + public let keyModesOfUse: KeyModesOfUse? + /// Parameter used to indicate the version of the key carried in the key block or indicate the value carried in the key block is a component of a key. + public let keyVersion: String? + /// Parameter used to indicate the type of optional data in key block headers. Refer to ANSI X9.143-2022 for information on allowed data type for optional blocks. Optional block character limit is 112 characters. For each optional block, 2 characters are reserved for optional block ID and 2 characters reserved for optional block length. More than one optional blocks can be included as long as the combined length does not increase 112 characters. + public let optionalBlocks: [String: String]? + + public init(keyExportability: KeyExportability? = nil, keyModesOfUse: KeyModesOfUse? = nil, keyVersion: String? = nil, optionalBlocks: [String: String]? = nil) { + self.keyExportability = keyExportability + self.keyModesOfUse = keyModesOfUse + self.keyVersion = keyVersion + self.optionalBlocks = optionalBlocks + } + + public func validate(name: String) throws { + try self.validate(self.keyVersion, name: "keyVersion", parent: name, max: 2) + try self.validate(self.keyVersion, name: "keyVersion", parent: name, min: 2) + try self.validate(self.keyVersion, name: "keyVersion", parent: name, pattern: "^[0-9A-Z]{2}+$") + try self.optionalBlocks?.forEach { + try validate($0.key, name: "optionalBlocks.key", parent: name, max: 2) + try validate($0.key, name: "optionalBlocks.key", parent: name, min: 2) + try validate($0.key, name: "optionalBlocks.key", parent: name, pattern: "^[0-9A-Z]{2}+$") + try validate($0.value, name: "optionalBlocks[\"\($0.key)\"]", parent: name, max: 108) + try validate($0.value, name: "optionalBlocks[\"\($0.key)\"]", parent: name, min: 1) + try validate($0.value, name: "optionalBlocks[\"\($0.key)\"]", parent: name, pattern: "^[0-9A-Z]+$") + } + } + + private enum CodingKeys: String, CodingKey { + case keyExportability = "KeyExportability" + case keyModesOfUse = "KeyModesOfUse" + case keyVersion = "KeyVersion" + case optionalBlocks = "OptionalBlocks" + } + } + public struct KeyModesOfUse: AWSEncodableShape & AWSDecodableShape { /// Specifies whether an Amazon Web Services Payment Cryptography key can be used to decrypt data. public let decrypt: Bool? diff --git a/Sources/Soto/Services/Personalize/Personalize_api.swift b/Sources/Soto/Services/Personalize/Personalize_api.swift index 7b42a17b1b..7f0b9f5203 100644 --- a/Sources/Soto/Services/Personalize/Personalize_api.swift +++ b/Sources/Soto/Services/Personalize/Personalize_api.swift @@ -100,7 +100,7 @@ public struct Personalize: AWSService { ) } - /// Creates a campaign that deploys a solution version. When a client calls the GetRecommendations and GetPersonalizedRanking APIs, a campaign is specified in the request. Minimum Provisioned TPS and Auto-Scaling A high minProvisionedTPS will increase your cost. We recommend starting with 1 for minProvisionedTPS (the default). Track your usage using Amazon CloudWatch metrics, and increase the minProvisionedTPS as necessary. When you create an Amazon Personalize campaign, you can specify the minimum provisioned transactions per second (minProvisionedTPS) for the campaign. This is the baseline transaction throughput for the campaign provisioned by Amazon Personalize. It sets the minimum billing charge for the campaign while it is active. A transaction is a single GetRecommendations or GetPersonalizedRanking request. The default minProvisionedTPS is 1. If your TPS increases beyond the minProvisionedTPS, Amazon Personalize auto-scales the provisioned capacity up and down, but never below minProvisionedTPS. There's a short time delay while the capacity is increased that might cause loss of transactions. When your traffic reduces, capacity returns to the minProvisionedTPS. You are charged for the the minimum provisioned TPS or, if your requests exceed the minProvisionedTPS, the actual TPS. The actual TPS is the total number of recommendation requests you make. We recommend starting with a low minProvisionedTPS, track your usage using Amazon CloudWatch metrics, and then increase the minProvisionedTPS as necessary. For more information about campaign costs, see Amazon Personalize pricing. Status A campaign can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the campaign status, call DescribeCampaign. Wait until the status of the campaign is ACTIVE before asking the campaign for recommendations. Related APIs ListCampaigns DescribeCampaign UpdateCampaign DeleteCampaign + /// You incur campaign costs while it is active. To avoid unnecessary costs, make sure to delete the campaign when you are finished. For information about campaign costs, see Amazon Personalize pricing. Creates a campaign that deploys a solution version. When a client calls the GetRecommendations and GetPersonalizedRanking APIs, a campaign is specified in the request. Minimum Provisioned TPS and Auto-Scaling A high minProvisionedTPS will increase your cost. We recommend starting with 1 for minProvisionedTPS (the default). Track your usage using Amazon CloudWatch metrics, and increase the minProvisionedTPS as necessary. When you create an Amazon Personalize campaign, you can specify the minimum provisioned transactions per second (minProvisionedTPS) for the campaign. This is the baseline transaction throughput for the campaign provisioned by Amazon Personalize. It sets the minimum billing charge for the campaign while it is active. A transaction is a single GetRecommendations or GetPersonalizedRanking request. The default minProvisionedTPS is 1. If your TPS increases beyond the minProvisionedTPS, Amazon Personalize auto-scales the provisioned capacity up and down, but never below minProvisionedTPS. There's a short time delay while the capacity is increased that might cause loss of transactions. When your traffic reduces, capacity returns to the minProvisionedTPS. You are charged for the the minimum provisioned TPS or, if your requests exceed the minProvisionedTPS, the actual TPS. The actual TPS is the total number of recommendation requests you make. We recommend starting with a low minProvisionedTPS, track your usage using Amazon CloudWatch metrics, and then increase the minProvisionedTPS as necessary. For more information about campaign costs, see Amazon Personalize pricing. Status A campaign can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the campaign status, call DescribeCampaign. Wait until the status of the campaign is ACTIVE before asking the campaign for recommendations. Related APIs ListCampaigns DescribeCampaign UpdateCampaign DeleteCampaign @Sendable public func createCampaign(_ input: CreateCampaignRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateCampaignResponse { return try await self.client.execute( @@ -113,6 +113,19 @@ public struct Personalize: AWSService { ) } + /// Creates a batch job that deletes all references to specific users from an Amazon Personalize dataset group in batches. You specify the users to delete in a CSV file of userIds in an Amazon S3 bucket. After a job completes, Amazon Personalize no longer trains on the users’ data and no longer considers the users when generating user segments. For more information about creating a data deletion job, see Deleting users. Your input file must be a CSV file with a single USER_ID column that lists the users IDs. For more information about preparing the CSV file, see Preparing your data deletion file and uploading it to Amazon S3. To give Amazon Personalize permission to access your input CSV file of userIds, you must specify an IAM service role that has permission to read from the data source. This role needs GetObject and ListBucket permissions for the bucket and its content. These permissions are the same as importing data. For information on granting access to your Amazon S3 bucket, see Giving Amazon Personalize Access to Amazon S3 Resources. After you create a job, it can take up to a day to delete all references to the users from datasets and models. Until the job completes, Amazon Personalize continues to use the data when training. And if you use a User Segmentation recipe, the users might appear in user segments. Status A data deletion job can have one of the following statuses: PENDING > IN_PROGRESS > COMPLETED -or- FAILED To get the status of the data deletion job, call DescribeDataDeletionJob API operation and specify the Amazon Resource Name (ARN) of the job. If the status is FAILED, the response includes a failureReason key, which describes why the job failed. Related APIs ListDataDeletionJobs DescribeDataDeletionJob + @Sendable + public func createDataDeletionJob(_ input: CreateDataDeletionJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateDataDeletionJobResponse { + return try await self.client.execute( + operation: "CreateDataDeletionJob", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Creates an empty dataset and adds it to the specified dataset group. Use CreateDatasetImportJob to import your training data to a dataset. There are 5 types of datasets: Item interactions Items Users Action interactions Actions Each dataset type has an associated schema with required field types. Only the Item interactions dataset is required in order to train a model (also referred to as creating a solution). A dataset can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the status of the dataset, call DescribeDataset. Related APIs CreateDatasetGroup ListDatasets DescribeDataset DeleteDataset @Sendable public func createDataset(_ input: CreateDatasetRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateDatasetResponse { @@ -230,7 +243,7 @@ public struct Personalize: AWSService { ) } - /// Creates the configuration for training a model. A trained model is known as a solution version. After the configuration is created, you train the model (create a solution version) by calling the CreateSolutionVersion operation. Every time you call CreateSolutionVersion, a new version of the solution is created. After creating a solution version, you check its accuracy by calling GetSolutionMetrics. When you are satisfied with the version, you deploy it using CreateCampaign. The campaign provides recommendations to a client through the GetRecommendations API. To train a model, Amazon Personalize requires training data and a recipe. The training data comes from the dataset group that you provide in the request. A recipe specifies the training algorithm and a feature transformation. You can specify one of the predefined recipes provided by Amazon Personalize. Amazon Personalize doesn't support configuring the hpoObjective for solution hyperparameter optimization at this time. Status A solution can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the status of the solution, call DescribeSolution. Wait until the status shows as ACTIVE before calling CreateSolutionVersion. Related APIs ListSolutions CreateSolutionVersion DescribeSolution DeleteSolution ListSolutionVersions DescribeSolutionVersion + /// After you create a solution, you can’t change its configuration. By default, all new solutions use automatic training. With automatic training, you incur training costs while your solution is active. You can't stop automatic training for a solution. To avoid unnecessary costs, make sure to delete the solution when you are finished. For information about training costs, see Amazon Personalize pricing. Creates the configuration for training a model (creating a solution version). This configuration includes the recipe to use for model training and optional training configuration, such as columns to use in training and feature transformation parameters. For more information about configuring a solution, see Creating and configuring a solution. By default, new solutions use automatic training to create solution versions every 7 days. You can change the training frequency. Automatic solution version creation starts one hour after the solution is ACTIVE. If you manually create a solution version within the hour, the solution skips the first automatic training. For more information, see Configuring automatic training. To turn off automatic training, set performAutoTraining to false. If you turn off automatic training, you must manually create a solution version by calling the CreateSolutionVersion operation. After training starts, you can get the solution version's Amazon Resource Name (ARN) with the ListSolutionVersions API operation. To get its status, use the DescribeSolutionVersion. After training completes you can evaluate model accuracy by calling GetSolutionMetrics. When you are satisfied with the solution version, you deploy it using CreateCampaign. The campaign provides recommendations to a client through the GetRecommendations API. Amazon Personalize doesn't support configuring the hpoObjective for solution hyperparameter optimization at this time. Status A solution can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the status of the solution, call DescribeSolution. If you use manual training, the status must be ACTIVE before you call CreateSolutionVersion. Related APIs ListSolutions CreateSolutionVersion DescribeSolution DeleteSolution ListSolutionVersions DescribeSolutionVersion @Sendable public func createSolution(_ input: CreateSolutionRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateSolutionResponse { return try await self.client.execute( @@ -425,6 +438,19 @@ public struct Personalize: AWSService { ) } + /// Describes the data deletion job created by CreateDataDeletionJob, including the job status. + @Sendable + public func describeDataDeletionJob(_ input: DescribeDataDeletionJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeDataDeletionJobResponse { + return try await self.client.execute( + operation: "DescribeDataDeletionJob", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Describes the given dataset. For more information on datasets, see CreateDataset. @Sendable public func describeDataset(_ input: DescribeDatasetRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeDatasetResponse { @@ -646,6 +672,19 @@ public struct Personalize: AWSService { ) } + /// Returns a list of data deletion jobs for a dataset group ordered by creation time, with the most recent first. When a dataset group is not specified, all the data deletion jobs associated with the account are listed. The response provides the properties for each job, including the Amazon Resource Name (ARN). For more information on data deletion jobs, see Deleting users. + @Sendable + public func listDataDeletionJobs(_ input: ListDataDeletionJobsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListDataDeletionJobsResponse { + return try await self.client.execute( + operation: "ListDataDeletionJobs", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Returns a list of dataset export jobs that use the given dataset. When a dataset is not specified, all the dataset export jobs associated with the account are listed. The response provides the properties for each dataset export job, including the Amazon Resource Name (ARN). For more information on dataset export jobs, see CreateDatasetExportJob. For more information on datasets, see CreateDataset. @Sendable public func listDatasetExportJobs(_ input: ListDatasetExportJobsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListDatasetExportJobsResponse { @@ -802,7 +841,7 @@ public struct Personalize: AWSService { ) } - /// Returns a list of solutions that use the given dataset group. When a dataset group is not specified, all the solutions associated with the account are listed. The response provides the properties for each solution, including the Amazon Resource Name (ARN). For more information on solutions, see CreateSolution. + /// Returns a list of solutions in a given dataset group. When a dataset group is not specified, all the solutions associated with the account are listed. The response provides the properties for each solution, including the Amazon Resource Name (ARN). For more information on solutions, see CreateSolution. @Sendable public func listSolutions(_ input: ListSolutionsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListSolutionsResponse { return try await self.client.execute( @@ -880,7 +919,7 @@ public struct Personalize: AWSService { ) } - /// Remove tags that are attached to a resource. + /// Removes the specified tags that are attached to a resource. For more information, see Removing tags from Amazon Personalize resources. @Sendable public func untagResource(_ input: UntagResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UntagResourceResponse { return try await self.client.execute( @@ -893,7 +932,7 @@ public struct Personalize: AWSService { ) } - /// Updates a campaign to deploy a retrained solution version with an existing campaign, change your campaign's minProvisionedTPS, or modify your campaign's configuration, such as the exploration configuration. To update a campaign, the campaign status must be ACTIVE or CREATE FAILED. Check the campaign status using the DescribeCampaign operation. You can still get recommendations from a campaign while an update is in progress. The campaign will use the previous solution version and campaign configuration to generate recommendations until the latest campaign update status is Active. For more information about updating a campaign, including code samples, see Updating a campaign. For more information about campaigns, see Creating a campaign. + /// Updates a campaign to deploy a retrained solution version with an existing campaign, change your campaign's minProvisionedTPS, or modify your campaign's configuration. For example, you can set enableMetadataWithRecommendations to true for an existing campaign. To update a campaign to start automatically using the latest solution version, specify the following: For the SolutionVersionArn parameter, specify the Amazon Resource Name (ARN) of your solution in SolutionArn/$LATEST format. In the campaignConfig, set syncWithLatestSolutionVersion to true. To update a campaign, the campaign status must be ACTIVE or CREATE FAILED. Check the campaign status using the DescribeCampaign operation. You can still get recommendations from a campaign while an update is in progress. The campaign will use the previous solution version and campaign configuration to generate recommendations until the latest campaign update status is Active. For more information about updating a campaign, including code samples, see Updating a campaign. For more information about campaigns, see Creating a campaign. @Sendable public func updateCampaign(_ input: UpdateCampaignRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateCampaignResponse { return try await self.client.execute( @@ -1244,7 +1283,7 @@ extension Personalize { ) } - /// Returns a list of solutions that use the given dataset group. When a dataset group is not specified, all the solutions associated with the account are listed. The response provides the properties for each solution, including the Amazon Resource Name (ARN). For more information on solutions, see CreateSolution. + /// Returns a list of solutions in a given dataset group. When a dataset group is not specified, all the solutions associated with the account are listed. The response provides the properties for each solution, including the Amazon Resource Name (ARN). For more information on solutions, see CreateSolution. /// Return PaginatorSequence for operation. /// /// - Parameters: diff --git a/Sources/Soto/Services/Personalize/Personalize_shapes.swift b/Sources/Soto/Services/Personalize/Personalize_shapes.swift index 565254706b..117bcfa421 100644 --- a/Sources/Soto/Services/Personalize/Personalize_shapes.swift +++ b/Sources/Soto/Services/Personalize/Personalize_shapes.swift @@ -65,11 +65,18 @@ extension Personalize { } public enum TrainingMode: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case autotrain = "AUTOTRAIN" case full = "FULL" case update = "UPDATE" public var description: String { return self.rawValue } } + public enum TrainingType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case automatic = "AUTOMATIC" + case manual = "MANUAL" + public var description: String { return self.rawValue } + } + // MARK: Shapes public struct Algorithm: AWSDecodableShape { @@ -177,6 +184,25 @@ extension Personalize { } } + public struct AutoTrainingConfig: AWSEncodableShape & AWSDecodableShape { + /// Specifies how often to automatically train new solution versions. Specify a rate expression in rate(value unit) format. For value, specify a number between 1 and 30. For unit, specify day or days. For example, to automatically create a new solution version every 5 days, specify rate(5 days). The default is every 7 days. For more information about auto training, see Creating and configuring a solution. + public let schedulingExpression: String? + + public init(schedulingExpression: String? = nil) { + self.schedulingExpression = schedulingExpression + } + + public func validate(name: String) throws { + try self.validate(self.schedulingExpression, name: "schedulingExpression", parent: name, max: 16) + try self.validate(self.schedulingExpression, name: "schedulingExpression", parent: name, min: 1) + try self.validate(self.schedulingExpression, name: "schedulingExpression", parent: name, pattern: "^rate\\(\\d+ days?\\)$") + } + + private enum CodingKeys: String, CodingKey { + case schedulingExpression = "schedulingExpression" + } + } + public struct BatchInferenceJob: AWSDecodableShape { /// The Amazon Resource Name (ARN) of the batch inference job. public let batchInferenceJobArn: String? @@ -484,7 +510,7 @@ extension Personalize { public let minProvisionedTPS: Int? /// The name of the campaign. public let name: String? - /// The Amazon Resource Name (ARN) of a specific version of the solution. + /// The Amazon Resource Name (ARN) of the solution version the campaign uses. public let solutionVersionArn: String? /// The status of the campaign. A campaign can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS public let status: String? @@ -521,10 +547,13 @@ extension Personalize { public let enableMetadataWithRecommendations: Bool? /// Specifies the exploration configuration hyperparameters, including explorationWeight and explorationItemAgeCutOff, you want to use to configure the amount of item exploration Amazon Personalize uses when recommending items. Provide itemExplorationConfig data only if your solution uses the User-Personalization recipe. public let itemExplorationConfig: [String: String]? + /// Whether the campaign automatically updates to use the latest solution version (trained model) of a solution. If you specify True, you must specify the ARN of your solution for the SolutionVersionArn parameter. It must be in SolutionArn/$LATEST format. The default is False and you must manually update the campaign to deploy the latest solution version. For more information about automatic campaign updates, see Enabling automatic campaign updates. + public let syncWithLatestSolutionVersion: Bool? - public init(enableMetadataWithRecommendations: Bool? = nil, itemExplorationConfig: [String: String]? = nil) { + public init(enableMetadataWithRecommendations: Bool? = nil, itemExplorationConfig: [String: String]? = nil, syncWithLatestSolutionVersion: Bool? = nil) { self.enableMetadataWithRecommendations = enableMetadataWithRecommendations self.itemExplorationConfig = itemExplorationConfig + self.syncWithLatestSolutionVersion = syncWithLatestSolutionVersion } public func validate(name: String) throws { @@ -538,6 +567,7 @@ extension Personalize { private enum CodingKeys: String, CodingKey { case enableMetadataWithRecommendations = "enableMetadataWithRecommendations" case itemExplorationConfig = "itemExplorationConfig" + case syncWithLatestSolutionVersion = "syncWithLatestSolutionVersion" } } @@ -827,7 +857,7 @@ extension Personalize { public let minProvisionedTPS: Int? /// A name for the new campaign. The campaign name must be unique within your account. public let name: String - /// The Amazon Resource Name (ARN) of the solution version to deploy. + /// The Amazon Resource Name (ARN) of the trained model to deploy with the campaign. To specify the latest solution version of your solution, specify the ARN of your solution in SolutionArn/$LATEST format. You must use this format if you set syncWithLatestSolutionVersion to True in the CampaignConfig. To deploy a model that isn't the latest solution version of your solution, specify the ARN of the solution version. For more information about automatic campaign updates, see Enabling automatic campaign updates. public let solutionVersionArn: String /// A list of tags to apply to the campaign. public let tags: [Tag]? @@ -876,6 +906,63 @@ extension Personalize { } } + public struct CreateDataDeletionJobRequest: AWSEncodableShape { + /// The Amazon Resource Name (ARN) of the dataset group that has the datasets you want to delete records from. + public let datasetGroupArn: String + /// The Amazon S3 bucket that contains the list of userIds of the users to delete. + public let dataSource: DataSource + /// The name for the data deletion job. + public let jobName: String + /// The Amazon Resource Name (ARN) of the IAM role that has permissions to read from the Amazon S3 data source. + public let roleArn: String + /// A list of tags to apply to the data deletion job. + public let tags: [Tag]? + + public init(datasetGroupArn: String, dataSource: DataSource, jobName: String, roleArn: String, tags: [Tag]? = nil) { + self.datasetGroupArn = datasetGroupArn + self.dataSource = dataSource + self.jobName = jobName + self.roleArn = roleArn + self.tags = tags + } + + public func validate(name: String) throws { + try self.validate(self.datasetGroupArn, name: "datasetGroupArn", parent: name, max: 256) + try self.validate(self.datasetGroupArn, name: "datasetGroupArn", parent: name, pattern: "^arn:([a-z\\d-]+):personalize:.*:.*:.+$") + try self.dataSource.validate(name: "\(name).dataSource") + try self.validate(self.jobName, name: "jobName", parent: name, max: 63) + try self.validate(self.jobName, name: "jobName", parent: name, min: 1) + try self.validate(self.jobName, name: "jobName", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9\\-_]*$") + try self.validate(self.roleArn, name: "roleArn", parent: name, max: 256) + try self.validate(self.roleArn, name: "roleArn", parent: name, pattern: "^arn:([a-z\\d-]+):iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$") + try self.tags?.forEach { + try $0.validate(name: "\(name).tags[]") + } + try self.validate(self.tags, name: "tags", parent: name, max: 200) + } + + private enum CodingKeys: String, CodingKey { + case datasetGroupArn = "datasetGroupArn" + case dataSource = "dataSource" + case jobName = "jobName" + case roleArn = "roleArn" + case tags = "tags" + } + } + + public struct CreateDataDeletionJobResponse: AWSDecodableShape { + /// The Amazon Resource Name (ARN) of the data deletion job. + public let dataDeletionJobArn: String? + + public init(dataDeletionJobArn: String? = nil) { + self.dataDeletionJobArn = dataDeletionJobArn + } + + private enum CodingKeys: String, CodingKey { + case dataDeletionJobArn = "dataDeletionJobArn" + } + } + public struct CreateDatasetExportJobRequest: AWSEncodableShape { /// The Amazon Resource Name (ARN) of the dataset that contains the data to export. public let datasetArn: String @@ -1379,6 +1466,8 @@ extension Personalize { public let name: String /// We don't recommend enabling automated machine learning. Instead, match your use case to the available Amazon Personalize recipes. For more information, see Choosing a recipe. Whether to perform automated machine learning (AutoML). The default is false. For this case, you must specify recipeArn. When set to true, Amazon Personalize analyzes your training data and selects the optimal USER_PERSONALIZATION recipe and hyperparameters. In this case, you must omit recipeArn. Amazon Personalize determines the optimal recipe by running tests with different values for the hyperparameters. AutoML lengthens the training process as compared to selecting a specific recipe. public let performAutoML: Bool? + /// Whether the solution uses automatic training to create new solution versions (trained models). The default is True and the solution automatically creates new solution versions every 7 days. You can change the training frequency by specifying a schedulingExpression in the AutoTrainingConfig as part of solution configuration. For more information about automatic training, see Configuring automatic training. Automatic solution version creation starts one hour after the solution is ACTIVE. If you manually create a solution version within the hour, the solution skips the first automatic training. After training starts, you can get the solution version's Amazon Resource Name (ARN) with the ListSolutionVersions API operation. To get its status, use the DescribeSolutionVersion. + public let performAutoTraining: Bool? /// Whether to perform hyperparameter optimization (HPO) on the specified or selected recipe. The default is false. When performing AutoML, this parameter is always true and you should not set it to false. public let performHPO: Bool? /// The Amazon Resource Name (ARN) of the recipe to use for model training. This is required when performAutoML is false. For information about different Amazon Personalize recipes and their ARNs, see Choosing a recipe. @@ -1388,11 +1477,12 @@ extension Personalize { /// A list of tags to apply to the solution. public let tags: [Tag]? - public init(datasetGroupArn: String, eventType: String? = nil, name: String, performAutoML: Bool? = nil, performHPO: Bool? = nil, recipeArn: String? = nil, solutionConfig: SolutionConfig? = nil, tags: [Tag]? = nil) { + public init(datasetGroupArn: String, eventType: String? = nil, name: String, performAutoML: Bool? = nil, performAutoTraining: Bool? = nil, performHPO: Bool? = nil, recipeArn: String? = nil, solutionConfig: SolutionConfig? = nil, tags: [Tag]? = nil) { self.datasetGroupArn = datasetGroupArn self.eventType = eventType self.name = name self.performAutoML = performAutoML + self.performAutoTraining = performAutoTraining self.performHPO = performHPO self.recipeArn = recipeArn self.solutionConfig = solutionConfig @@ -1420,6 +1510,7 @@ extension Personalize { case eventType = "eventType" case name = "name" case performAutoML = "performAutoML" + case performAutoTraining = "performAutoTraining" case performHPO = "performHPO" case recipeArn = "recipeArn" case solutionConfig = "solutionConfig" @@ -1490,8 +1581,93 @@ extension Personalize { } } + public struct DataDeletionJob: AWSDecodableShape { + /// The creation date and time (in Unix time) of the data deletion job. + public let creationDateTime: Date? + /// The Amazon Resource Name (ARN) of the data deletion job. + public let dataDeletionJobArn: String? + /// The Amazon Resource Name (ARN) of the dataset group the job deletes records from. + public let datasetGroupArn: String? + public let dataSource: DataSource? + /// If a data deletion job fails, provides the reason why. + public let failureReason: String? + /// The name of the data deletion job. + public let jobName: String? + /// The date and time (in Unix time) the data deletion job was last updated. + public let lastUpdatedDateTime: Date? + /// The number of records deleted by a COMPLETED job. + public let numDeleted: Int? + /// The Amazon Resource Name (ARN) of the IAM role that has permissions to read from the Amazon S3 data source. + public let roleArn: String? + /// The status of the data deletion job. A data deletion job can have one of the following statuses: PENDING > IN_PROGRESS > COMPLETED -or- FAILED + public let status: String? + + public init(creationDateTime: Date? = nil, dataDeletionJobArn: String? = nil, datasetGroupArn: String? = nil, dataSource: DataSource? = nil, failureReason: String? = nil, jobName: String? = nil, lastUpdatedDateTime: Date? = nil, numDeleted: Int? = nil, roleArn: String? = nil, status: String? = nil) { + self.creationDateTime = creationDateTime + self.dataDeletionJobArn = dataDeletionJobArn + self.datasetGroupArn = datasetGroupArn + self.dataSource = dataSource + self.failureReason = failureReason + self.jobName = jobName + self.lastUpdatedDateTime = lastUpdatedDateTime + self.numDeleted = numDeleted + self.roleArn = roleArn + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case creationDateTime = "creationDateTime" + case dataDeletionJobArn = "dataDeletionJobArn" + case datasetGroupArn = "datasetGroupArn" + case dataSource = "dataSource" + case failureReason = "failureReason" + case jobName = "jobName" + case lastUpdatedDateTime = "lastUpdatedDateTime" + case numDeleted = "numDeleted" + case roleArn = "roleArn" + case status = "status" + } + } + + public struct DataDeletionJobSummary: AWSDecodableShape { + /// The creation date and time (in Unix time) of the data deletion job. + public let creationDateTime: Date? + /// The Amazon Resource Name (ARN) of the data deletion job. + public let dataDeletionJobArn: String? + /// The Amazon Resource Name (ARN) of the dataset group the job deleted records from. + public let datasetGroupArn: String? + /// If a data deletion job fails, provides the reason why. + public let failureReason: String? + /// The name of the data deletion job. + public let jobName: String? + /// The date and time (in Unix time) the data deletion job was last updated. + public let lastUpdatedDateTime: Date? + /// The status of the data deletion job. A data deletion job can have one of the following statuses: PENDING > IN_PROGRESS > COMPLETED -or- FAILED + public let status: String? + + public init(creationDateTime: Date? = nil, dataDeletionJobArn: String? = nil, datasetGroupArn: String? = nil, failureReason: String? = nil, jobName: String? = nil, lastUpdatedDateTime: Date? = nil, status: String? = nil) { + self.creationDateTime = creationDateTime + self.dataDeletionJobArn = dataDeletionJobArn + self.datasetGroupArn = datasetGroupArn + self.failureReason = failureReason + self.jobName = jobName + self.lastUpdatedDateTime = lastUpdatedDateTime + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case creationDateTime = "creationDateTime" + case dataDeletionJobArn = "dataDeletionJobArn" + case datasetGroupArn = "datasetGroupArn" + case failureReason = "failureReason" + case jobName = "jobName" + case lastUpdatedDateTime = "lastUpdatedDateTime" + case status = "status" + } + } + public struct DataSource: AWSEncodableShape & AWSDecodableShape { - /// The path to the Amazon S3 bucket where the data that you want to upload to your dataset is stored. For example: s3://bucket-name/folder-name/ + /// For dataset import jobs, the path to the Amazon S3 bucket where the data that you want to upload to your dataset is stored. For data deletion jobs, the path to the Amazon S3 bucket that stores the list of records to delete. For example: s3://bucket-name/folder-name/fileName.csv If your CSV files are in a folder in your Amazon S3 bucket and you want your import job or data deletion job to consider multiple files, you can specify the path to the folder. With a data deletion job, Amazon Personalize uses all files in the folder and any sub folder. Use the following syntax with a / after the folder name: s3://bucket-name/folder-name/ public let dataLocation: String? public init(dataLocation: String? = nil) { @@ -2329,6 +2505,37 @@ extension Personalize { } } + public struct DescribeDataDeletionJobRequest: AWSEncodableShape { + /// The Amazon Resource Name (ARN) of the data deletion job. + public let dataDeletionJobArn: String + + public init(dataDeletionJobArn: String) { + self.dataDeletionJobArn = dataDeletionJobArn + } + + public func validate(name: String) throws { + try self.validate(self.dataDeletionJobArn, name: "dataDeletionJobArn", parent: name, max: 256) + try self.validate(self.dataDeletionJobArn, name: "dataDeletionJobArn", parent: name, pattern: "^arn:([a-z\\d-]+):personalize:.*:.*:.+$") + } + + private enum CodingKeys: String, CodingKey { + case dataDeletionJobArn = "dataDeletionJobArn" + } + } + + public struct DescribeDataDeletionJobResponse: AWSDecodableShape { + /// Information about the data deletion job, including the status. The status is one of the following values: PENDING IN_PROGRESS COMPLETED FAILED + public let dataDeletionJob: DataDeletionJob? + + public init(dataDeletionJob: DataDeletionJob? = nil) { + self.dataDeletionJob = dataDeletionJob + } + + private enum CodingKeys: String, CodingKey { + case dataDeletionJob = "dataDeletionJob" + } + } + public struct DescribeDatasetExportJobRequest: AWSEncodableShape { /// The Amazon Resource Name (ARN) of the dataset export job to describe. public let datasetExportJobArn: String @@ -3122,6 +3329,7 @@ extension Personalize { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") try self.validate(self.solutionVersionArn, name: "solutionVersionArn", parent: name, max: 256) try self.validate(self.solutionVersionArn, name: "solutionVersionArn", parent: name, pattern: "^arn:([a-z\\d-]+):personalize:.*:.*:.+$") } @@ -3168,6 +3376,7 @@ extension Personalize { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") try self.validate(self.solutionVersionArn, name: "solutionVersionArn", parent: name, max: 256) try self.validate(self.solutionVersionArn, name: "solutionVersionArn", parent: name, pattern: "^arn:([a-z\\d-]+):personalize:.*:.*:.+$") } @@ -3214,6 +3423,7 @@ extension Personalize { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") try self.validate(self.solutionArn, name: "solutionArn", parent: name, max: 256) try self.validate(self.solutionArn, name: "solutionArn", parent: name, pattern: "^arn:([a-z\\d-]+):personalize:.*:.*:.+$") } @@ -3242,6 +3452,53 @@ extension Personalize { } } + public struct ListDataDeletionJobsRequest: AWSEncodableShape { + /// The Amazon Resource Name (ARN) of the dataset group to list data deletion jobs for. + public let datasetGroupArn: String? + /// The maximum number of data deletion jobs to return. + public let maxResults: Int? + /// A token returned from the previous call to ListDataDeletionJobs for getting the next set of jobs (if they exist). + public let nextToken: String? + + public init(datasetGroupArn: String? = nil, maxResults: Int? = nil, nextToken: String? = nil) { + self.datasetGroupArn = datasetGroupArn + self.maxResults = maxResults + self.nextToken = nextToken + } + + public func validate(name: String) throws { + try self.validate(self.datasetGroupArn, name: "datasetGroupArn", parent: name, max: 256) + try self.validate(self.datasetGroupArn, name: "datasetGroupArn", parent: name, pattern: "^arn:([a-z\\d-]+):personalize:.*:.*:.+$") + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") + } + + private enum CodingKeys: String, CodingKey { + case datasetGroupArn = "datasetGroupArn" + case maxResults = "maxResults" + case nextToken = "nextToken" + } + } + + public struct ListDataDeletionJobsResponse: AWSDecodableShape { + /// The list of data deletion jobs. + public let dataDeletionJobs: [DataDeletionJobSummary]? + /// A token for getting the next set of data deletion jobs (if they exist). + public let nextToken: String? + + public init(dataDeletionJobs: [DataDeletionJobSummary]? = nil, nextToken: String? = nil) { + self.dataDeletionJobs = dataDeletionJobs + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case dataDeletionJobs = "dataDeletionJobs" + case nextToken = "nextToken" + } + } + public struct ListDatasetExportJobsRequest: AWSEncodableShape { /// The Amazon Resource Name (ARN) of the dataset to list the dataset export jobs for. public let datasetArn: String? @@ -3262,6 +3519,7 @@ extension Personalize { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") } private enum CodingKeys: String, CodingKey { @@ -3303,6 +3561,7 @@ extension Personalize { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") } private enum CodingKeys: String, CodingKey { @@ -3348,6 +3607,7 @@ extension Personalize { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") } private enum CodingKeys: String, CodingKey { @@ -3394,6 +3654,7 @@ extension Personalize { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") } private enum CodingKeys: String, CodingKey { @@ -3440,6 +3701,7 @@ extension Personalize { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") } private enum CodingKeys: String, CodingKey { @@ -3486,6 +3748,7 @@ extension Personalize { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") } private enum CodingKeys: String, CodingKey { @@ -3532,6 +3795,7 @@ extension Personalize { try self.validate(self.metricAttributionArn, name: "metricAttributionArn", parent: name, max: 256) try self.validate(self.metricAttributionArn, name: "metricAttributionArn", parent: name, pattern: "^arn:([a-z\\d-]+):personalize:.*:.*:.+$") try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") } private enum CodingKeys: String, CodingKey { @@ -3578,6 +3842,7 @@ extension Personalize { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") } private enum CodingKeys: String, CodingKey { @@ -3625,6 +3890,7 @@ extension Personalize { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") } private enum CodingKeys: String, CodingKey { @@ -3672,6 +3938,7 @@ extension Personalize { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") } private enum CodingKeys: String, CodingKey { @@ -3713,6 +3980,7 @@ extension Personalize { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") } private enum CodingKeys: String, CodingKey { @@ -3756,6 +4024,7 @@ extension Personalize { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") try self.validate(self.solutionArn, name: "solutionArn", parent: name, max: 256) try self.validate(self.solutionArn, name: "solutionArn", parent: name, pattern: "^arn:([a-z\\d-]+):personalize:.*:.*:.+$") } @@ -3804,6 +4073,7 @@ extension Personalize { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1500) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^\\p{ASCII}{0,1500}$") } private enum CodingKeys: String, CodingKey { @@ -3831,7 +4101,7 @@ extension Personalize { } public struct ListTagsForResourceRequest: AWSEncodableShape { - /// The resource's Amazon Resource Name. + /// The resource's Amazon Resource Name (ARN). public let resourceArn: String public init(resourceArn: String) { @@ -4283,6 +4553,8 @@ extension Personalize { public let name: String? /// We don't recommend enabling automated machine learning. Instead, match your use case to the available Amazon Personalize recipes. For more information, see Determining your use case. When true, Amazon Personalize performs a search for the best USER_PERSONALIZATION recipe from the list specified in the solution configuration (recipeArn must not be specified). When false (the default), Amazon Personalize uses recipeArn for training. public let performAutoML: Bool? + /// Specifies whether the solution automatically creates solution versions. The default is True and the solution automatically creates new solution versions every 7 days. For more information about auto training, see Creating and configuring a solution. + public let performAutoTraining: Bool? /// Whether to perform hyperparameter optimization (HPO) on the chosen recipe. The default is false. public let performHPO: Bool? /// The ARN of the recipe used to create the solution. This is required when performAutoML is false. @@ -4294,7 +4566,7 @@ extension Personalize { /// The status of the solution. A solution can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS public let status: String? - public init(autoMLResult: AutoMLResult? = nil, creationDateTime: Date? = nil, datasetGroupArn: String? = nil, eventType: String? = nil, lastUpdatedDateTime: Date? = nil, latestSolutionVersion: SolutionVersionSummary? = nil, name: String? = nil, performAutoML: Bool? = nil, performHPO: Bool? = nil, recipeArn: String? = nil, solutionArn: String? = nil, solutionConfig: SolutionConfig? = nil, status: String? = nil) { + public init(autoMLResult: AutoMLResult? = nil, creationDateTime: Date? = nil, datasetGroupArn: String? = nil, eventType: String? = nil, lastUpdatedDateTime: Date? = nil, latestSolutionVersion: SolutionVersionSummary? = nil, name: String? = nil, performAutoML: Bool? = nil, performAutoTraining: Bool? = nil, performHPO: Bool? = nil, recipeArn: String? = nil, solutionArn: String? = nil, solutionConfig: SolutionConfig? = nil, status: String? = nil) { self.autoMLResult = autoMLResult self.creationDateTime = creationDateTime self.datasetGroupArn = datasetGroupArn @@ -4303,6 +4575,7 @@ extension Personalize { self.latestSolutionVersion = latestSolutionVersion self.name = name self.performAutoML = performAutoML + self.performAutoTraining = performAutoTraining self.performHPO = performHPO self.recipeArn = recipeArn self.solutionArn = solutionArn @@ -4319,6 +4592,7 @@ extension Personalize { case latestSolutionVersion = "latestSolutionVersion" case name = "name" case performAutoML = "performAutoML" + case performAutoTraining = "performAutoTraining" case performHPO = "performHPO" case recipeArn = "recipeArn" case solutionArn = "solutionArn" @@ -4332,6 +4606,8 @@ extension Personalize { public let algorithmHyperParameters: [String: String]? /// The AutoMLConfig object containing a list of recipes to search when AutoML is performed. public let autoMLConfig: AutoMLConfig? + /// Specifies the automatic training configuration to use. + public let autoTrainingConfig: AutoTrainingConfig? /// Only events with a value greater than or equal to this threshold are used for training a model. public let eventValueThreshold: String? /// Lists the feature transformation parameters. @@ -4343,9 +4619,10 @@ extension Personalize { /// Specifies the training data configuration to use when creating a custom solution version (trained model). public let trainingDataConfig: TrainingDataConfig? - public init(algorithmHyperParameters: [String: String]? = nil, autoMLConfig: AutoMLConfig? = nil, eventValueThreshold: String? = nil, featureTransformationParameters: [String: String]? = nil, hpoConfig: HPOConfig? = nil, optimizationObjective: OptimizationObjective? = nil, trainingDataConfig: TrainingDataConfig? = nil) { + public init(algorithmHyperParameters: [String: String]? = nil, autoMLConfig: AutoMLConfig? = nil, autoTrainingConfig: AutoTrainingConfig? = nil, eventValueThreshold: String? = nil, featureTransformationParameters: [String: String]? = nil, hpoConfig: HPOConfig? = nil, optimizationObjective: OptimizationObjective? = nil, trainingDataConfig: TrainingDataConfig? = nil) { self.algorithmHyperParameters = algorithmHyperParameters self.autoMLConfig = autoMLConfig + self.autoTrainingConfig = autoTrainingConfig self.eventValueThreshold = eventValueThreshold self.featureTransformationParameters = featureTransformationParameters self.hpoConfig = hpoConfig @@ -4360,6 +4637,7 @@ extension Personalize { } try self.validate(self.algorithmHyperParameters, name: "algorithmHyperParameters", parent: name, max: 100) try self.autoMLConfig?.validate(name: "\(name).autoMLConfig") + try self.autoTrainingConfig?.validate(name: "\(name).autoTrainingConfig") try self.validate(self.eventValueThreshold, name: "eventValueThreshold", parent: name, max: 256) try self.featureTransformationParameters?.forEach { try validate($0.key, name: "featureTransformationParameters.key", parent: name, max: 256) @@ -4374,6 +4652,7 @@ extension Personalize { private enum CodingKeys: String, CodingKey { case algorithmHyperParameters = "algorithmHyperParameters" case autoMLConfig = "autoMLConfig" + case autoTrainingConfig = "autoTrainingConfig" case eventValueThreshold = "eventValueThreshold" case featureTransformationParameters = "featureTransformationParameters" case hpoConfig = "hpoConfig" @@ -4444,12 +4723,14 @@ extension Personalize { public let status: String? /// The time used to train the model. You are billed for the time it takes to train a model. This field is visible only after Amazon Personalize successfully trains a model. public let trainingHours: Double? - /// The scope of training to be performed when creating the solution version. The FULL option trains the solution version based on the entirety of the input solution's training data, while the UPDATE option processes only the data that has changed in comparison to the input solution. Choose UPDATE when you want to incrementally update your solution version instead of creating an entirely new one. The UPDATE option can only be used when you already have an active solution version created from the input solution using the FULL option and the input solution was trained with the User-Personalization recipe or the HRNN-Coldstart recipe. + /// The scope of training to be performed when creating the solution version. A FULL training considers all of the data in your dataset group. An UPDATE processes only the data that has changed since the latest training. Only solution versions created with the User-Personalization recipe can use UPDATE. public let trainingMode: TrainingMode? + /// Whether the solution version was created automatically or manually. + public let trainingType: TrainingType? /// If hyperparameter optimization was performed, contains the hyperparameter values of the best performing model. public let tunedHPOParams: TunedHPOParams? - public init(creationDateTime: Date? = nil, datasetGroupArn: String? = nil, eventType: String? = nil, failureReason: String? = nil, lastUpdatedDateTime: Date? = nil, name: String? = nil, performAutoML: Bool? = nil, performHPO: Bool? = nil, recipeArn: String? = nil, solutionArn: String? = nil, solutionConfig: SolutionConfig? = nil, solutionVersionArn: String? = nil, status: String? = nil, trainingHours: Double? = nil, trainingMode: TrainingMode? = nil, tunedHPOParams: TunedHPOParams? = nil) { + public init(creationDateTime: Date? = nil, datasetGroupArn: String? = nil, eventType: String? = nil, failureReason: String? = nil, lastUpdatedDateTime: Date? = nil, name: String? = nil, performAutoML: Bool? = nil, performHPO: Bool? = nil, recipeArn: String? = nil, solutionArn: String? = nil, solutionConfig: SolutionConfig? = nil, solutionVersionArn: String? = nil, status: String? = nil, trainingHours: Double? = nil, trainingMode: TrainingMode? = nil, trainingType: TrainingType? = nil, tunedHPOParams: TunedHPOParams? = nil) { self.creationDateTime = creationDateTime self.datasetGroupArn = datasetGroupArn self.eventType = eventType @@ -4465,6 +4746,7 @@ extension Personalize { self.status = status self.trainingHours = trainingHours self.trainingMode = trainingMode + self.trainingType = trainingType self.tunedHPOParams = tunedHPOParams } @@ -4484,6 +4766,7 @@ extension Personalize { case status = "status" case trainingHours = "trainingHours" case trainingMode = "trainingMode" + case trainingType = "trainingType" case tunedHPOParams = "tunedHPOParams" } } @@ -4499,13 +4782,19 @@ extension Personalize { public let solutionVersionArn: String? /// The status of the solution version. A solution version can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED public let status: String? + /// The scope of training to be performed when creating the solution version. A FULL training considers all of the data in your dataset group. An UPDATE processes only the data that has changed since the latest training. Only solution versions created with the User-Personalization recipe can use UPDATE. + public let trainingMode: TrainingMode? + /// Whether the solution version was created automatically or manually. + public let trainingType: TrainingType? - public init(creationDateTime: Date? = nil, failureReason: String? = nil, lastUpdatedDateTime: Date? = nil, solutionVersionArn: String? = nil, status: String? = nil) { + public init(creationDateTime: Date? = nil, failureReason: String? = nil, lastUpdatedDateTime: Date? = nil, solutionVersionArn: String? = nil, status: String? = nil, trainingMode: TrainingMode? = nil, trainingType: TrainingType? = nil) { self.creationDateTime = creationDateTime self.failureReason = failureReason self.lastUpdatedDateTime = lastUpdatedDateTime self.solutionVersionArn = solutionVersionArn self.status = status + self.trainingMode = trainingMode + self.trainingType = trainingType } private enum CodingKeys: String, CodingKey { @@ -4514,6 +4803,8 @@ extension Personalize { case lastUpdatedDateTime = "lastUpdatedDateTime" case solutionVersionArn = "solutionVersionArn" case status = "status" + case trainingMode = "trainingMode" + case trainingType = "trainingType" } } @@ -4625,7 +4916,7 @@ extension Personalize { public struct TagResourceRequest: AWSEncodableShape { /// The resource's Amazon Resource Name (ARN). public let resourceArn: String - /// Tags to apply to the resource. For more information see Tagging Amazon Personalize recources. + /// Tags to apply to the resource. For more information see Tagging Amazon Personalize resources. public let tags: [Tag] public init(resourceArn: String, tags: [Tag]) { @@ -4670,7 +4961,7 @@ extension Personalize { } public struct TrainingDataConfig: AWSEncodableShape & AWSDecodableShape { - /// Specifies the columns to exclude from training. Each key is a dataset type, and each value is a list of columns. Exclude columns to control what data Amazon Personalize uses to generate recommendations. For example, you might have a column that you want to use only to filter recommendations. You can exclude this column from training and Amazon Personalize considers it only when filtering. + /// Specifies the columns to exclude from training. Each key is a dataset type, and each value is a list of columns. Exclude columns to control what data Amazon Personalize uses to generate recommendations. For example, you might have a column that you want to use only to filter recommendations. You can exclude this column from training and Amazon Personalize considers it only when filtering. public let excludedDatasetColumns: [String: [String]]? public init(excludedDatasetColumns: [String: [String]]? = nil) { @@ -4706,7 +4997,7 @@ extension Personalize { public struct UntagResourceRequest: AWSEncodableShape { /// The resource's Amazon Resource Name (ARN). public let resourceArn: String - /// Keys to remove from the resource's tags. + /// The keys of the tags to be removed. public let tagKeys: [String] public init(resourceArn: String, tagKeys: [String]) { @@ -4742,7 +5033,7 @@ extension Personalize { public let campaignConfig: CampaignConfig? /// Specifies the requested minimum provisioned transactions (recommendations) per second that Amazon Personalize will support. A high minProvisionedTPS will increase your bill. We recommend starting with 1 for minProvisionedTPS (the default). Track your usage using Amazon CloudWatch metrics, and increase the minProvisionedTPS as necessary. public let minProvisionedTPS: Int? - /// The ARN of a new solution version to deploy. + /// The Amazon Resource Name (ARN) of a new model to deploy. To specify the latest solution version of your solution, specify the ARN of your solution in SolutionArn/$LATEST format. You must use this format if you set syncWithLatestSolutionVersion to True in the CampaignConfig. To deploy a model that isn't the latest solution version of your solution, specify the ARN of the solution version. For more information about automatic campaign updates, see Enabling automatic campaign updates. public let solutionVersionArn: String? public init(campaignArn: String, campaignConfig: CampaignConfig? = nil, minProvisionedTPS: Int? = nil, solutionVersionArn: String? = nil) { diff --git a/Sources/Soto/Services/PersonalizeRuntime/PersonalizeRuntime_shapes.swift b/Sources/Soto/Services/PersonalizeRuntime/PersonalizeRuntime_shapes.swift index c2709994ee..a55da7061d 100644 --- a/Sources/Soto/Services/PersonalizeRuntime/PersonalizeRuntime_shapes.swift +++ b/Sources/Soto/Services/PersonalizeRuntime/PersonalizeRuntime_shapes.swift @@ -294,13 +294,16 @@ extension PersonalizeRuntime { public let metadata: [String: String]? /// The name of the promotion that included the predicted item. public let promotionName: String? + /// If you use User-Personalization-v2, a list of reasons for why the item was included in recommendations. Possible reasons include the following: Promoted item - Indicates the item was included as part of a promotion that you applied in your recommendation request. Exploration - Indicates the item was included with exploration. With exploration, recommendations include items with less interactions data or relevance for the user. For more information about exploration, see Exploration. Popular item - Indicates the item was included as a placeholder popular item. If you use a filter, depending on how many recommendations the filter removes, Amazon Personalize might add placeholder items to meet the numResults for your recommendation request. These items are popular items, based on interactions data, that satisfy your filter criteria. They don't have a relevance score for the user. + public let reason: [String]? /// A numeric representation of the model's certainty that the item will be the next user selection. For more information on scoring logic, see how-scores-work. public let score: Double? - public init(itemId: String? = nil, metadata: [String: String]? = nil, promotionName: String? = nil, score: Double? = nil) { + public init(itemId: String? = nil, metadata: [String: String]? = nil, promotionName: String? = nil, reason: [String]? = nil, score: Double? = nil) { self.itemId = itemId self.metadata = metadata self.promotionName = promotionName + self.reason = reason self.score = score } @@ -308,6 +311,7 @@ extension PersonalizeRuntime { case itemId = "itemId" case metadata = "metadata" case promotionName = "promotionName" + case reason = "reason" case score = "score" } } diff --git a/Sources/Soto/Services/Pinpoint/Pinpoint_shapes.swift b/Sources/Soto/Services/Pinpoint/Pinpoint_shapes.swift index 4f1f93afeb..37824c0df7 100644 --- a/Sources/Soto/Services/Pinpoint/Pinpoint_shapes.swift +++ b/Sources/Soto/Services/Pinpoint/Pinpoint_shapes.swift @@ -3455,14 +3455,17 @@ extension Pinpoint { public let fromAddress: String? /// The Amazon Resource Name (ARN) of the identity, verified with Amazon Simple Email Service (Amazon SES), that you want to use when you send email through the channel. public let identity: String? + /// The ARN of an IAM role for Amazon Pinpoint to use to send email from your campaigns or journeys through Amazon SES. + public let orchestrationSendingRoleArn: String? /// The ARN of the AWS Identity and Access Management (IAM) role that you want Amazon Pinpoint to use when it submits email-related event data for the channel. public let roleArn: String? - public init(configurationSet: String? = nil, enabled: Bool? = nil, fromAddress: String? = nil, identity: String? = nil, roleArn: String? = nil) { + public init(configurationSet: String? = nil, enabled: Bool? = nil, fromAddress: String? = nil, identity: String? = nil, orchestrationSendingRoleArn: String? = nil, roleArn: String? = nil) { self.configurationSet = configurationSet self.enabled = enabled self.fromAddress = fromAddress self.identity = identity + self.orchestrationSendingRoleArn = orchestrationSendingRoleArn self.roleArn = roleArn } @@ -3471,6 +3474,7 @@ extension Pinpoint { case enabled = "Enabled" case fromAddress = "FromAddress" case identity = "Identity" + case orchestrationSendingRoleArn = "OrchestrationSendingRoleArn" case roleArn = "RoleArn" } } @@ -3500,6 +3504,8 @@ extension Pinpoint { public let lastModifiedDate: String? /// The maximum number of emails that can be sent through the channel each second. public let messagesPerSecond: Int? + /// The ARN of an IAM role for Amazon Pinpoint to use to send email from your campaigns or journeys through Amazon SES. + public let orchestrationSendingRoleArn: String? /// The type of messaging or notification platform for the channel. For the email channel, this value is EMAIL. public let platform: String? /// The ARN of the AWS Identity and Access Management (IAM) role that Amazon Pinpoint uses to submit email-related event data for the channel. @@ -3507,7 +3513,7 @@ extension Pinpoint { /// The current version of the email channel. public let version: Int? - public init(applicationId: String? = nil, configurationSet: String? = nil, creationDate: String? = nil, enabled: Bool? = nil, fromAddress: String? = nil, hasCredential: Bool? = nil, id: String? = nil, identity: String? = nil, isArchived: Bool? = nil, lastModifiedBy: String? = nil, lastModifiedDate: String? = nil, messagesPerSecond: Int? = nil, platform: String? = nil, roleArn: String? = nil, version: Int? = nil) { + public init(applicationId: String? = nil, configurationSet: String? = nil, creationDate: String? = nil, enabled: Bool? = nil, fromAddress: String? = nil, hasCredential: Bool? = nil, id: String? = nil, identity: String? = nil, isArchived: Bool? = nil, lastModifiedBy: String? = nil, lastModifiedDate: String? = nil, messagesPerSecond: Int? = nil, orchestrationSendingRoleArn: String? = nil, platform: String? = nil, roleArn: String? = nil, version: Int? = nil) { self.applicationId = applicationId self.configurationSet = configurationSet self.creationDate = creationDate @@ -3520,6 +3526,7 @@ extension Pinpoint { self.lastModifiedBy = lastModifiedBy self.lastModifiedDate = lastModifiedDate self.messagesPerSecond = messagesPerSecond + self.orchestrationSendingRoleArn = orchestrationSendingRoleArn self.platform = platform self.roleArn = roleArn self.version = version @@ -3538,6 +3545,7 @@ extension Pinpoint { case lastModifiedBy = "LastModifiedBy" case lastModifiedDate = "LastModifiedDate" case messagesPerSecond = "MessagesPerSecond" + case orchestrationSendingRoleArn = "OrchestrationSendingRoleArn" case platform = "Platform" case roleArn = "RoleArn" case version = "Version" @@ -3868,7 +3876,7 @@ extension Pinpoint { public struct EndpointMessageResult: AWSDecodableShape { /// The endpoint address that the message was delivered to. public let address: String? - /// The delivery status of the message. Possible values are: DUPLICATE - The endpoint address is a duplicate of another endpoint address. Amazon Pinpoint won't attempt to send the message again. OPT_OUT - The user who's associated with the endpoint has opted out of receiving messages from you. Amazon Pinpoint won't attempt to send the message again. PERMANENT_FAILURE - An error occurred when delivering the message to the endpoint. Amazon Pinpoint won't attempt to send the message again. SUCCESSFUL - The message was successfully delivered to the endpoint. TEMPORARY_FAILURE - A temporary error occurred. Amazon Pinpoint won't attempt to send the message again. THROTTLED - Amazon Pinpoint throttled the operation to send the message to the endpoint. TIMEOUT - The message couldn't be sent within the timeout period. UNKNOWN_FAILURE - An unknown error occurred. + /// The delivery status of the message. Possible values are: DUPLICATE - The endpoint address is a duplicate of another endpoint address. Amazon Pinpoint won't attempt to send the message again. OPT_OUT - The user who's associated with the endpoint has opted out of receiving messages from you. Amazon Pinpoint won't attempt to send the message again. PERMANENT_FAILURE - An error occurred when delivering the message to the endpoint. Amazon Pinpoint won't attempt to send the message again. SUCCESSFUL - The message was successfully delivered to the endpoint. TEMPORARY_FAILURE - A temporary error occurred. Amazon Pinpoint won't attempt to send the message again. THROTTLED - Amazon Pinpoint throttled the operation to send the message to the endpoint. UNKNOWN_FAILURE - An unknown error occurred. public let deliveryStatus: DeliveryStatus? /// The unique identifier for the message that was sent. public let messageId: String? @@ -7823,7 +7831,7 @@ extension Pinpoint { } public struct MessageResult: AWSDecodableShape { - /// The delivery status of the message. Possible values are: DUPLICATE - The endpoint address is a duplicate of another endpoint address. Amazon Pinpoint won't attempt to send the message again. OPT_OUT - The user who's associated with the endpoint address has opted out of receiving messages from you. Amazon Pinpoint won't attempt to send the message again. PERMANENT_FAILURE - An error occurred when delivering the message to the endpoint address. Amazon Pinpoint won't attempt to send the message again. SUCCESSFUL - The message was successfully delivered to the endpoint address. TEMPORARY_FAILURE - A temporary error occurred. Amazon Pinpoint won't attempt to send the message again. THROTTLED - Amazon Pinpoint throttled the operation to send the message to the endpoint address. TIMEOUT - The message couldn't be sent within the timeout period. UNKNOWN_FAILURE - An unknown error occurred. + /// The delivery status of the message. Possible values are: DUPLICATE - The endpoint address is a duplicate of another endpoint address. Amazon Pinpoint won't attempt to send the message again. OPT_OUT - The user who's associated with the endpoint address has opted out of receiving messages from you. Amazon Pinpoint won't attempt to send the message again. PERMANENT_FAILURE - An error occurred when delivering the message to the endpoint address. Amazon Pinpoint won't attempt to send the message again. SUCCESSFUL - The message was successfully delivered to the endpoint address. TEMPORARY_FAILURE - A temporary error occurred. Amazon Pinpoint won't attempt to send the message again. THROTTLED - Amazon Pinpoint throttled the operation to send the message to the endpoint address. UNKNOWN_FAILURE - An unknown error occurred. public let deliveryStatus: DeliveryStatus? /// The unique identifier for the message that was sent. public let messageId: String? diff --git a/Sources/Soto/Services/PinpointEmail/PinpointEmail_api.swift b/Sources/Soto/Services/PinpointEmail/PinpointEmail_api.swift index 5a74fdb4ec..0e5ba3479b 100644 --- a/Sources/Soto/Services/PinpointEmail/PinpointEmail_api.swift +++ b/Sources/Soto/Services/PinpointEmail/PinpointEmail_api.swift @@ -78,6 +78,7 @@ public struct PinpointEmail: AWSService { "ca-central-1": "email-fips.ca-central-1.amazonaws.com", "us-east-1": "email-fips.us-east-1.amazonaws.com", "us-east-2": "email-fips.us-east-2.amazonaws.com", + "us-gov-east-1": "email-fips.us-gov-east-1.amazonaws.com", "us-gov-west-1": "email-fips.us-gov-west-1.amazonaws.com", "us-west-1": "email-fips.us-west-1.amazonaws.com", "us-west-2": "email-fips.us-west-2.amazonaws.com" diff --git a/Sources/Soto/Services/PinpointSMSVoiceV2/PinpointSMSVoiceV2_api.swift b/Sources/Soto/Services/PinpointSMSVoiceV2/PinpointSMSVoiceV2_api.swift index 63f1799d39..dc31672721 100644 --- a/Sources/Soto/Services/PinpointSMSVoiceV2/PinpointSMSVoiceV2_api.swift +++ b/Sources/Soto/Services/PinpointSMSVoiceV2/PinpointSMSVoiceV2_api.swift @@ -19,7 +19,7 @@ /// Service object for interacting with AWS PinpointSMSVoiceV2 service. /// -/// Welcome to the Amazon Pinpoint SMS and Voice, version 2 API Reference. This guide provides information about Amazon Pinpoint SMS and Voice, version 2 API resources, including supported HTTP methods, parameters, and schemas. Amazon Pinpoint is an Amazon Web Services service that you can use to engage with your recipients across multiple messaging channels. The Amazon Pinpoint SMS and Voice, version 2 API provides programmatic access to options that are unique to the SMS and voice channels and supplements the resources provided by the Amazon Pinpoint API. If you're new to Amazon Pinpoint, it's also helpful to review the Amazon Pinpoint Developer Guide. The Amazon Pinpoint Developer Guide provides tutorials, code samples, and procedures that demonstrate how to use Amazon Pinpoint features programmatically and how to integrate Amazon Pinpoint functionality into mobile apps and other types of applications. The guide also provides key information, such as Amazon Pinpoint integration with other Amazon Web Services services, and the quotas that apply to use of the service. Regional availability The Amazon Pinpoint SMS and Voice, version 2 API Reference is available in several Amazon Web Services Regions and it provides an endpoint for each of these Regions. For a list of all the Regions and endpoints where the API is currently available, see Amazon Web Services Service Endpoints and Amazon Pinpoint endpoints and quotas in the Amazon Web Services General Reference. To learn more about Amazon Web Services Regions, see Managing Amazon Web Services Regions in the Amazon Web Services General Reference. In each Region, Amazon Web Services maintains multiple Availability Zones. These Availability Zones are physically isolated from each other, but are united by private, low-latency, high-throughput, and highly redundant network connections. These Availability Zones enable us to provide very high levels of availability and redundancy, while also minimizing latency. To learn more about the number of Availability Zones that are available in each Region, see Amazon Web Services Global Infrastructure. +/// Welcome to the Amazon Pinpoint SMS and Voice, version 2 API Reference. This guide provides information about Amazon Pinpoint SMS and Voice, version 2 API resources, including supported HTTP methods, parameters, and schemas. Amazon Pinpoint is an Amazon Web Services service that you can use to engage with your recipients across multiple messaging channels. The Amazon Pinpoint SMS and Voice, version 2 API provides programmatic access to options that are unique to the SMS and voice channels. Amazon Pinpoint SMS and Voice, version 2 resources such as phone numbers, sender IDs, and opt-out lists can be used by the Amazon Pinpoint API. If you're new to Amazon Pinpoint SMS, it's also helpful to review the Amazon Pinpoint SMS User Guide. The Amazon Pinpoint Developer Guide provides tutorials, code samples, and procedures that demonstrate how to use Amazon Pinpoint SMS features programmatically and how to integrate Amazon Pinpoint functionality into mobile apps and other types of applications. The guide also provides key information, such as Amazon Pinpoint integration with other Amazon Web Services services, and the quotas that apply to use of the service. Regional availability The Amazon Pinpoint SMS and Voice, version 2 API Reference is available in several Amazon Web Services Regions and it provides an endpoint for each of these Regions. For a list of all the Regions and endpoints where the API is currently available, see Amazon Web Services Service Endpoints and Amazon Pinpoint endpoints and quotas in the Amazon Web Services General Reference. To learn more about Amazon Web Services Regions, see Managing Amazon Web Services Regions in the Amazon Web Services General Reference. In each Region, Amazon Web Services maintains multiple Availability Zones. These Availability Zones are physically isolated from each other, but are united by private, low-latency, high-throughput, and highly redundant network connections. These Availability Zones enable us to provide very high levels of availability and redundancy, while also minimizing latency. To learn more about the number of Availability Zones that are available in each Region, see Amazon Web Services Global Infrastructure. public struct PinpointSMSVoiceV2: AWSService { // MARK: Member variables @@ -100,6 +100,19 @@ public struct PinpointSMSVoiceV2: AWSService { ) } + /// Associate a protect configuration with a configuration set. This replaces the configuration sets current protect configuration. A configuration set can only be associated with one protect configuration at a time. A protect configuration can be associated with multiple configuration sets. + @Sendable + public func associateProtectConfiguration(_ input: AssociateProtectConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> AssociateProtectConfigurationResult { + return try await self.client.execute( + operation: "AssociateProtectConfiguration", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Creates a new configuration set. After you create the configuration set, you can add one or more event destinations to it. A configuration set is a set of rules that you apply to the SMS and voice messages that you send. When you send a message, you can optionally specify a single configuration set. @Sendable public func createConfigurationSet(_ input: CreateConfigurationSetRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateConfigurationSetResult { @@ -152,6 +165,19 @@ public struct PinpointSMSVoiceV2: AWSService { ) } + /// Create a new protect configuration. By default all country rule sets for each capability are set to ALLOW. Update the country rule sets using UpdateProtectConfigurationCountryRuleSet. A protect configurations name is stored as a Tag with the key set to Name and value as the name of the protect configuration. + @Sendable + public func createProtectConfiguration(_ input: CreateProtectConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateProtectConfigurationResult { + return try await self.client.execute( + operation: "CreateProtectConfiguration", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Creates a new registration based on the RegistrationType field. @Sendable public func createRegistration(_ input: CreateRegistrationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateRegistrationResult { @@ -217,6 +243,19 @@ public struct PinpointSMSVoiceV2: AWSService { ) } + /// Removes the current account default protect configuration. + @Sendable + public func deleteAccountDefaultProtectConfiguration(_ input: DeleteAccountDefaultProtectConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteAccountDefaultProtectConfigurationResult { + return try await self.client.execute( + operation: "DeleteAccountDefaultProtectConfiguration", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Deletes an existing configuration set. A configuration set is a set of rules that you apply to voice and SMS messages that you send. In a configuration set, you can specify a destination for specific types of events related to voice and SMS messages. @Sendable public func deleteConfigurationSet(_ input: DeleteConfigurationSetRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteConfigurationSetResult { @@ -282,6 +321,19 @@ public struct PinpointSMSVoiceV2: AWSService { ) } + /// Deletes an account-level monthly spending limit override for sending multimedia messages (MMS). Deleting a spend limit override will set the EnforcedLimit to equal the MaxLimit, which is controlled by Amazon Web Services. For more information on spend limits (quotas) see Quotas for Server Migration Service in the Server Migration Service User Guide. + @Sendable + public func deleteMediaMessageSpendLimitOverride(_ input: DeleteMediaMessageSpendLimitOverrideRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteMediaMessageSpendLimitOverrideResult { + return try await self.client.execute( + operation: "DeleteMediaMessageSpendLimitOverride", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Deletes an existing opt-out list. All opted out phone numbers in the opt-out list are deleted. If the specified opt-out list name doesn't exist or is in-use by an origination phone number or pool, an error is returned. @Sendable public func deleteOptOutList(_ input: DeleteOptOutListRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteOptOutListResult { @@ -321,6 +373,19 @@ public struct PinpointSMSVoiceV2: AWSService { ) } + /// Permanently delete the protect configuration. The protect configuration must have deletion protection disabled and must not be associated as the account default protect configuration or associated with a configuration set. + @Sendable + public func deleteProtectConfiguration(_ input: DeleteProtectConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteProtectConfigurationResult { + return try await self.client.execute( + operation: "DeleteProtectConfiguration", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Permanently delete an existing registration from your account. @Sendable public func deleteRegistration(_ input: DeleteRegistrationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteRegistrationResult { @@ -503,6 +568,19 @@ public struct PinpointSMSVoiceV2: AWSService { ) } + /// Retrieves the protect configurations that match any of filters. If a filter isn’t provided then all protect configurations are returned. + @Sendable + public func describeProtectConfigurations(_ input: DescribeProtectConfigurationsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeProtectConfigurationsResult { + return try await self.client.execute( + operation: "DescribeProtectConfigurations", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Retrieves the specified registration attachments or all registration attachments associated with your Amazon Web Services account. @Sendable public func describeRegistrationAttachments(_ input: DescribeRegistrationAttachmentsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeRegistrationAttachmentsResult { @@ -646,6 +724,19 @@ public struct PinpointSMSVoiceV2: AWSService { ) } + /// Disassociate a protect configuration from a configuration set. + @Sendable + public func disassociateProtectConfiguration(_ input: DisassociateProtectConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DisassociateProtectConfigurationResult { + return try await self.client.execute( + operation: "DisassociateProtectConfiguration", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Discard the current version of the registration. @Sendable public func discardRegistrationVersion(_ input: DiscardRegistrationVersionRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DiscardRegistrationVersionResult { @@ -659,6 +750,19 @@ public struct PinpointSMSVoiceV2: AWSService { ) } + /// Retrieve the CountryRuleSet for the specified NumberCapability from a protect configuration. + @Sendable + public func getProtectConfigurationCountryRuleSet(_ input: GetProtectConfigurationCountryRuleSetRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetProtectConfigurationCountryRuleSetResult { + return try await self.client.execute( + operation: "GetProtectConfigurationCountryRuleSet", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Lists all associated origination identities in your pool. If you specify filters, the output includes information for only those origination identities that meet the filter criteria. @Sendable public func listPoolOriginationIdentities(_ input: ListPoolOriginationIdentitiesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListPoolOriginationIdentitiesResult { @@ -802,6 +906,19 @@ public struct PinpointSMSVoiceV2: AWSService { ) } + /// Creates a new multimedia message (MMS) and sends it to a recipient's phone number. + @Sendable + public func sendMediaMessage(_ input: SendMediaMessageRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SendMediaMessageResult { + return try await self.client.execute( + operation: "SendMediaMessage", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Creates a new text message and sends it to a recipient's phone number. SMS throughput limits are measured in Message Parts per Second (MPS). Your MPS limit depends on the destination country of your messages, as well as the type of phone number (origination number) that you use to send the message. For more information, see Message Parts per Second (MPS) limits in the Amazon Pinpoint User Guide. @Sendable public func sendTextMessage(_ input: SendTextMessageRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SendTextMessageResult { @@ -828,6 +945,19 @@ public struct PinpointSMSVoiceV2: AWSService { ) } + /// Set a protect configuration as your account default. You can only have one account default protect configuration at a time. The current account default protect configuration is replaced with the provided protect configuration. + @Sendable + public func setAccountDefaultProtectConfiguration(_ input: SetAccountDefaultProtectConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SetAccountDefaultProtectConfigurationResult { + return try await self.client.execute( + operation: "SetAccountDefaultProtectConfiguration", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Sets the default message type on a configuration set. Choose the category of SMS messages that you plan to send from this account. If you send account-related messages or time-sensitive messages such as one-time passcodes, choose Transactional. If you plan to send messages that contain marketing material or other promotional content, choose Promotional. This setting applies to your entire Amazon Web Services account. @Sendable public func setDefaultMessageType(_ input: SetDefaultMessageTypeRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SetDefaultMessageTypeResult { @@ -854,6 +984,19 @@ public struct PinpointSMSVoiceV2: AWSService { ) } + /// Sets an account level monthly spend limit override for sending MMS messages. The requested spend limit must be less than or equal to the MaxLimit, which is set by Amazon Web Services. + @Sendable + public func setMediaMessageSpendLimitOverride(_ input: SetMediaMessageSpendLimitOverrideRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SetMediaMessageSpendLimitOverrideResult { + return try await self.client.execute( + operation: "SetMediaMessageSpendLimitOverride", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Sets an account level monthly spend limit override for sending text messages. The requested spend limit must be less than or equal to the MaxLimit, which is set by Amazon Web Services. @Sendable public func setTextMessageSpendLimitOverride(_ input: SetTextMessageSpendLimitOverrideRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SetTextMessageSpendLimitOverrideResult { @@ -958,6 +1101,32 @@ public struct PinpointSMSVoiceV2: AWSService { ) } + /// Update the setting for an existing protect configuration. + @Sendable + public func updateProtectConfiguration(_ input: UpdateProtectConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateProtectConfigurationResult { + return try await self.client.execute( + operation: "UpdateProtectConfiguration", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Update a country rule set to ALLOW or BLOCK messages to be sent to the specified destination counties. You can update one or multiple countries at a time. The updates are only applied to the specified NumberCapability type. + @Sendable + public func updateProtectConfigurationCountryRuleSet(_ input: UpdateProtectConfigurationCountryRuleSetRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateProtectConfigurationCountryRuleSetResult { + return try await self.client.execute( + operation: "UpdateProtectConfigurationCountryRuleSet", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Updates the configuration of an existing sender ID. @Sendable public func updateSenderId(_ input: UpdateSenderIdRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateSenderIdResult { diff --git a/Sources/Soto/Services/PinpointSMSVoiceV2/PinpointSMSVoiceV2_shapes.swift b/Sources/Soto/Services/PinpointSMSVoiceV2/PinpointSMSVoiceV2_shapes.swift index f4a2ae7ebd..d0eba4c632 100644 --- a/Sources/Soto/Services/PinpointSMSVoiceV2/PinpointSMSVoiceV2_shapes.swift +++ b/Sources/Soto/Services/PinpointSMSVoiceV2/PinpointSMSVoiceV2_shapes.swift @@ -28,6 +28,7 @@ extension PinpointSMSVoiceV2 { public enum AccountAttributeName: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case accountTier = "ACCOUNT_TIER" + case defaultProtectConfigurationId = "DEFAULT_PROTECT_CONFIGURATION_ID" public var description: String { return self.rawValue } } @@ -61,6 +62,7 @@ extension PinpointSMSVoiceV2 { case defaultSenderId = "default-sender-id" case eventDestinationName = "event-destination-name" case matchingEventTypes = "matching-event-types" + case protectConfigurationId = "protect-configuration-id" public var description: String { return self.rawValue } } @@ -72,6 +74,23 @@ extension PinpointSMSVoiceV2 { public enum EventType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case all = "ALL" + case mediaAll = "MEDIA_ALL" + case mediaBlocked = "MEDIA_BLOCKED" + case mediaCarrierBlocked = "MEDIA_CARRIER_BLOCKED" + case mediaCarrierUnreachable = "MEDIA_CARRIER_UNREACHABLE" + case mediaDelivered = "MEDIA_DELIVERED" + case mediaFileInaccessible = "MEDIA_FILE_INACCESSIBLE" + case mediaFileSizeExceeded = "MEDIA_FILE_SIZE_EXCEEDED" + case mediaFileTypeUnsupported = "MEDIA_FILE_TYPE_UNSUPPORTED" + case mediaInvalid = "MEDIA_INVALID" + case mediaInvalidMessage = "MEDIA_INVALID_MESSAGE" + case mediaPending = "MEDIA_PENDING" + case mediaQueued = "MEDIA_QUEUED" + case mediaSpam = "MEDIA_SPAM" + case mediaSuccessful = "MEDIA_SUCCESSFUL" + case mediaTtlExpired = "MEDIA_TTL_EXPIRED" + case mediaUnknown = "MEDIA_UNKNOWN" + case mediaUnreachable = "MEDIA_UNREACHABLE" case textAll = "TEXT_ALL" case textBlocked = "TEXT_BLOCKED" case textCarrierBlocked = "TEXT_CARRIER_BLOCKED" @@ -149,6 +168,7 @@ extension PinpointSMSVoiceV2 { } public enum NumberCapability: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case mms = "MMS" case sms = "SMS" case voice = "VOICE" public var description: String { return self.rawValue } @@ -216,6 +236,18 @@ extension PinpointSMSVoiceV2 { public var description: String { return self.rawValue } } + public enum ProtectConfigurationFilterName: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case accountDefault = "account-default" + case deletionProtectionEnabled = "deletion-protection-enabled" + public var description: String { return self.rawValue } + } + + public enum ProtectStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case allow = "ALLOW" + case block = "BLOCK" + public var description: String { return self.rawValue } + } + public enum RegistrationAssociationBehavior: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case associateAfterComplete = "ASSOCIATE_AFTER_COMPLETE" case associateBeforeSubmit = "ASSOCIATE_BEFORE_SUBMIT" @@ -300,6 +332,7 @@ extension PinpointSMSVoiceV2 { } public enum SpendLimitName: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case mediaMessageMonthlySpendLimit = "MEDIA_MESSAGE_MONTHLY_SPEND_LIMIT" case textMessageMonthlySpendLimit = "TEXT_MESSAGE_MONTHLY_SPEND_LIMIT" case voiceMessageMonthlySpendLimit = "VOICE_MESSAGE_MONTHLY_SPEND_LIMIT" public var description: String { return self.rawValue } @@ -500,8 +533,59 @@ extension PinpointSMSVoiceV2 { } } + public struct AssociateProtectConfigurationRequest: AWSEncodableShape { + /// The name of the ConfigurationSet. + public let configurationSetName: String + /// The unique identifier for the protect configuration. + public let protectConfigurationId: String + + public init(configurationSetName: String, protectConfigurationId: String) { + self.configurationSetName = configurationSetName + self.protectConfigurationId = protectConfigurationId + } + + public func validate(name: String) throws { + try self.validate(self.configurationSetName, name: "configurationSetName", parent: name, max: 256) + try self.validate(self.configurationSetName, name: "configurationSetName", parent: name, min: 1) + try self.validate(self.configurationSetName, name: "configurationSetName", parent: name, pattern: "^[A-Za-z0-9_:/-]+$") + try self.validate(self.protectConfigurationId, name: "protectConfigurationId", parent: name, max: 256) + try self.validate(self.protectConfigurationId, name: "protectConfigurationId", parent: name, min: 1) + try self.validate(self.protectConfigurationId, name: "protectConfigurationId", parent: name, pattern: "^[A-Za-z0-9_:/-]+$") + } + + private enum CodingKeys: String, CodingKey { + case configurationSetName = "ConfigurationSetName" + case protectConfigurationId = "ProtectConfigurationId" + } + } + + public struct AssociateProtectConfigurationResult: AWSDecodableShape { + /// The Amazon Resource Name (ARN) of the configuration set. + public let configurationSetArn: String + /// The name of the ConfigurationSet. + public let configurationSetName: String + /// The Amazon Resource Name (ARN) of the protect configuration. + public let protectConfigurationArn: String + /// The unique identifier for the protect configuration. + public let protectConfigurationId: String + + public init(configurationSetArn: String, configurationSetName: String, protectConfigurationArn: String, protectConfigurationId: String) { + self.configurationSetArn = configurationSetArn + self.configurationSetName = configurationSetName + self.protectConfigurationArn = protectConfigurationArn + self.protectConfigurationId = protectConfigurationId + } + + private enum CodingKeys: String, CodingKey { + case configurationSetArn = "ConfigurationSetArn" + case configurationSetName = "ConfigurationSetName" + case protectConfigurationArn = "ProtectConfigurationArn" + case protectConfigurationId = "ProtectConfigurationId" + } + } + public struct CloudWatchLogsDestination: AWSEncodableShape & AWSDecodableShape { - /// The Amazon Resource Name (ARN) of an Amazon Identity and Access Management (IAM) role that is able to write event data to an Amazon CloudWatch destination. + /// The Amazon Resource Name (ARN) of an Identity and Access Management role that is able to write event data to an Amazon CloudWatch destination. public let iamRoleArn: String /// The name of the Amazon CloudWatch log group that you want to record events in. public let logGroupArn: String @@ -539,9 +623,9 @@ extension PinpointSMSVoiceV2 { public func validate(name: String) throws { try self.values.forEach { - try validate($0, name: "values[]", parent: name, max: 100) + try validate($0, name: "values[]", parent: name, max: 128) try validate($0, name: "values[]", parent: name, min: 1) - try validate($0, name: "values[]", parent: name, pattern: "^[\\.:A-Za-z0-9_-]+$") + try validate($0, name: "values[]", parent: name, pattern: "^[/\\.:A-Za-z0-9_-]+$") } try self.validate(self.values, name: "values", parent: name, max: 20) try self.validate(self.values, name: "values", parent: name, min: 1) @@ -566,14 +650,17 @@ extension PinpointSMSVoiceV2 { public let defaultSenderId: String? /// An array of EventDestination objects that describe any events to log and where to log them. public let eventDestinations: [EventDestination] + /// The unique identifier for the protect configuration. + public let protectConfigurationId: String? - public init(configurationSetArn: String, configurationSetName: String, createdTimestamp: Date, defaultMessageType: MessageType? = nil, defaultSenderId: String? = nil, eventDestinations: [EventDestination]) { + public init(configurationSetArn: String, configurationSetName: String, createdTimestamp: Date, defaultMessageType: MessageType? = nil, defaultSenderId: String? = nil, eventDestinations: [EventDestination], protectConfigurationId: String? = nil) { self.configurationSetArn = configurationSetArn self.configurationSetName = configurationSetName self.createdTimestamp = createdTimestamp self.defaultMessageType = defaultMessageType self.defaultSenderId = defaultSenderId self.eventDestinations = eventDestinations + self.protectConfigurationId = protectConfigurationId } private enum CodingKeys: String, CodingKey { @@ -583,6 +670,7 @@ extension PinpointSMSVoiceV2 { case defaultMessageType = "DefaultMessageType" case defaultSenderId = "DefaultSenderId" case eventDestinations = "EventDestinations" + case protectConfigurationId = "ProtectConfigurationId" } } @@ -648,7 +736,7 @@ extension PinpointSMSVoiceV2 { public struct CreateEventDestinationRequest: AWSEncodableShape { /// Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you don't specify a client token, a randomly generated token is used for the request to ensure idempotency. public let clientToken: String? - /// An object that contains information about an event destination for logging to Amazon CloudWatch logs. + /// An object that contains information about an event destination for logging to Amazon CloudWatch Logs. public let cloudWatchLogsDestination: CloudWatchLogsDestination? /// Either the name of the configuration set or the configuration set ARN to apply event logging to. The ConfigurateSetName and ConfigurationSetArn can be found using the DescribeConfigurationSets action. public let configurationSetName: String @@ -683,7 +771,7 @@ extension PinpointSMSVoiceV2 { try self.validate(self.eventDestinationName, name: "eventDestinationName", parent: name, min: 1) try self.validate(self.eventDestinationName, name: "eventDestinationName", parent: name, pattern: "^[A-Za-z0-9_-]+$") try self.kinesisFirehoseDestination?.validate(name: "\(name).kinesisFirehoseDestination") - try self.validate(self.matchingEventTypes, name: "matchingEventTypes", parent: name, max: 25) + try self.validate(self.matchingEventTypes, name: "matchingEventTypes", parent: name, max: 43) try self.validate(self.matchingEventTypes, name: "matchingEventTypes", parent: name, min: 1) try self.snsDestination?.validate(name: "\(name).snsDestination") } @@ -889,6 +977,70 @@ extension PinpointSMSVoiceV2 { } } + public struct CreateProtectConfigurationRequest: AWSEncodableShape { + /// Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you don't specify a client token, a randomly generated token is used for the request to ensure idempotency. + public let clientToken: String? + /// When set to true deletion protection is enabled. By default this is set to false. + public let deletionProtectionEnabled: Bool? + /// An array of key and value pair tags that are associated with the resource. + public let tags: [Tag]? + + public init(clientToken: String? = CreateProtectConfigurationRequest.idempotencyToken(), deletionProtectionEnabled: Bool? = nil, tags: [Tag]? = nil) { + self.clientToken = clientToken + self.deletionProtectionEnabled = deletionProtectionEnabled + self.tags = tags + } + + public func validate(name: String) throws { + try self.validate(self.clientToken, name: "clientToken", parent: name, max: 64) + try self.validate(self.clientToken, name: "clientToken", parent: name, min: 1) + try self.validate(self.clientToken, name: "clientToken", parent: name, pattern: "^[!-~]+$") + try self.tags?.forEach { + try $0.validate(name: "\(name).tags[]") + } + try self.validate(self.tags, name: "tags", parent: name, max: 200) + } + + private enum CodingKeys: String, CodingKey { + case clientToken = "ClientToken" + case deletionProtectionEnabled = "DeletionProtectionEnabled" + case tags = "Tags" + } + } + + public struct CreateProtectConfigurationResult: AWSDecodableShape { + /// This is true if the protect configuration is set as your account default protect configuration. + public let accountDefault: Bool + /// The time when the protect configuration was created, in UNIX epoch time format. + public let createdTimestamp: Date + /// When set to true deletion protection is enabled. By default this is set to false. + public let deletionProtectionEnabled: Bool + /// The Amazon Resource Name (ARN) of the protect configuration. + public let protectConfigurationArn: String + /// The unique identifier for the protect configuration. + public let protectConfigurationId: String + /// An array of key and value pair tags that are associated with the resource. + public let tags: [Tag]? + + public init(accountDefault: Bool, createdTimestamp: Date, deletionProtectionEnabled: Bool, protectConfigurationArn: String, protectConfigurationId: String, tags: [Tag]? = nil) { + self.accountDefault = accountDefault + self.createdTimestamp = createdTimestamp + self.deletionProtectionEnabled = deletionProtectionEnabled + self.protectConfigurationArn = protectConfigurationArn + self.protectConfigurationId = protectConfigurationId + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case accountDefault = "AccountDefault" + case createdTimestamp = "CreatedTimestamp" + case deletionProtectionEnabled = "DeletionProtectionEnabled" + case protectConfigurationArn = "ProtectConfigurationArn" + case protectConfigurationId = "ProtectConfigurationId" + case tags = "Tags" + } + } + public struct CreateRegistrationAssociationRequest: AWSEncodableShape { /// The unique identifier for the registration. public let registrationId: String @@ -1215,6 +1367,27 @@ extension PinpointSMSVoiceV2 { } } + public struct DeleteAccountDefaultProtectConfigurationRequest: AWSEncodableShape { + public init() {} + } + + public struct DeleteAccountDefaultProtectConfigurationResult: AWSDecodableShape { + /// The Amazon Resource Name (ARN) of the account default protect configuration. + public let defaultProtectConfigurationArn: String + /// The unique identifier of the account default protect configuration. + public let defaultProtectConfigurationId: String + + public init(defaultProtectConfigurationArn: String, defaultProtectConfigurationId: String) { + self.defaultProtectConfigurationArn = defaultProtectConfigurationArn + self.defaultProtectConfigurationId = defaultProtectConfigurationId + } + + private enum CodingKeys: String, CodingKey { + case defaultProtectConfigurationArn = "DefaultProtectConfigurationArn" + case defaultProtectConfigurationId = "DefaultProtectConfigurationId" + } + } + public struct DeleteConfigurationSetRequest: AWSEncodableShape { /// The name of the configuration set or the configuration set ARN that you want to delete. The ConfigurationSetName and ConfigurationSetArn can be found using the DescribeConfigurationSets action. public let configurationSetName: String @@ -1449,6 +1622,23 @@ extension PinpointSMSVoiceV2 { } } + public struct DeleteMediaMessageSpendLimitOverrideRequest: AWSEncodableShape { + public init() {} + } + + public struct DeleteMediaMessageSpendLimitOverrideResult: AWSDecodableShape { + /// The current monthly limit, in US dollars. + public let monthlyLimit: Int64? + + public init(monthlyLimit: Int64? = nil) { + self.monthlyLimit = monthlyLimit + } + + private enum CodingKeys: String, CodingKey { + case monthlyLimit = "MonthlyLimit" + } + } + public struct DeleteOptOutListRequest: AWSEncodableShape { /// The OptOutListName or OptOutListArn of the OptOutList to delete. You can use DescribeOptOutLists to find the values for OptOutListName and OptOutListArn. public let optOutListName: String @@ -1616,6 +1806,54 @@ extension PinpointSMSVoiceV2 { } } + public struct DeleteProtectConfigurationRequest: AWSEncodableShape { + /// The unique identifier for the protect configuration. + public let protectConfigurationId: String + + public init(protectConfigurationId: String) { + self.protectConfigurationId = protectConfigurationId + } + + public func validate(name: String) throws { + try self.validate(self.protectConfigurationId, name: "protectConfigurationId", parent: name, max: 256) + try self.validate(self.protectConfigurationId, name: "protectConfigurationId", parent: name, min: 1) + try self.validate(self.protectConfigurationId, name: "protectConfigurationId", parent: name, pattern: "^[A-Za-z0-9_:/-]+$") + } + + private enum CodingKeys: String, CodingKey { + case protectConfigurationId = "ProtectConfigurationId" + } + } + + public struct DeleteProtectConfigurationResult: AWSDecodableShape { + /// This is true if the protect configuration is set as your account default protect configuration. + public let accountDefault: Bool + /// The time when the protect configuration was created, in UNIX epoch time format. + public let createdTimestamp: Date + /// The status of deletion protection for the protect configuration. When set to true deletion protection is enabled. By default this is set to false. + public let deletionProtectionEnabled: Bool + /// The Amazon Resource Name (ARN) of the protect configuration. + public let protectConfigurationArn: String + /// The unique identifier for the protect configuration. + public let protectConfigurationId: String + + public init(accountDefault: Bool, createdTimestamp: Date, deletionProtectionEnabled: Bool, protectConfigurationArn: String, protectConfigurationId: String) { + self.accountDefault = accountDefault + self.createdTimestamp = createdTimestamp + self.deletionProtectionEnabled = deletionProtectionEnabled + self.protectConfigurationArn = protectConfigurationArn + self.protectConfigurationId = protectConfigurationId + } + + private enum CodingKeys: String, CodingKey { + case accountDefault = "AccountDefault" + case createdTimestamp = "CreatedTimestamp" + case deletionProtectionEnabled = "DeletionProtectionEnabled" + case protectConfigurationArn = "ProtectConfigurationArn" + case protectConfigurationId = "ProtectConfigurationId" + } + } + public struct DeleteRegistrationAttachmentRequest: AWSEncodableShape { /// The unique identifier for the registration attachment. public let registrationAttachmentId: String @@ -2335,6 +2573,66 @@ extension PinpointSMSVoiceV2 { } } + public struct DescribeProtectConfigurationsRequest: AWSEncodableShape { + /// An array of ProtectConfigurationFilter objects to filter the results. + public let filters: [ProtectConfigurationFilter]? + /// The maximum number of results to return per each request. + public let maxResults: Int? + /// The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request. + public let nextToken: String? + /// An array of protect configuration identifiers to search for. + public let protectConfigurationIds: [String]? + + public init(filters: [ProtectConfigurationFilter]? = nil, maxResults: Int? = nil, nextToken: String? = nil, protectConfigurationIds: [String]? = nil) { + self.filters = filters + self.maxResults = maxResults + self.nextToken = nextToken + self.protectConfigurationIds = protectConfigurationIds + } + + public func validate(name: String) throws { + try self.filters?.forEach { + try $0.validate(name: "\(name).filters[]") + } + try self.validate(self.filters, name: "filters", parent: name, max: 20) + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, max: 1024) + try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, pattern: "^.+$") + try self.protectConfigurationIds?.forEach { + try validate($0, name: "protectConfigurationIds[]", parent: name, max: 256) + try validate($0, name: "protectConfigurationIds[]", parent: name, min: 1) + try validate($0, name: "protectConfigurationIds[]", parent: name, pattern: "^[A-Za-z0-9_:/-]+$") + } + try self.validate(self.protectConfigurationIds, name: "protectConfigurationIds", parent: name, max: 5) + } + + private enum CodingKeys: String, CodingKey { + case filters = "Filters" + case maxResults = "MaxResults" + case nextToken = "NextToken" + case protectConfigurationIds = "ProtectConfigurationIds" + } + } + + public struct DescribeProtectConfigurationsResult: AWSDecodableShape { + /// The token to be used for the next set of paginated results. You don't need to supply a value for this field in the initial request. + public let nextToken: String? + /// An array of ProtectConfigurationInformation objects that contain the details for the request. + public let protectConfigurations: [ProtectConfigurationInformation]? + + public init(nextToken: String? = nil, protectConfigurations: [ProtectConfigurationInformation]? = nil) { + self.nextToken = nextToken + self.protectConfigurations = protectConfigurations + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case protectConfigurations = "ProtectConfigurations" + } + } + public struct DescribeRegistrationAttachmentsRequest: AWSEncodableShape { /// An array of RegistrationAttachmentFilter objects to filter the results. public let filters: [RegistrationAttachmentFilter]? @@ -3045,6 +3343,57 @@ extension PinpointSMSVoiceV2 { } } + public struct DisassociateProtectConfigurationRequest: AWSEncodableShape { + /// The name of the ConfigurationSet. + public let configurationSetName: String + /// The unique identifier for the protect configuration. + public let protectConfigurationId: String + + public init(configurationSetName: String, protectConfigurationId: String) { + self.configurationSetName = configurationSetName + self.protectConfigurationId = protectConfigurationId + } + + public func validate(name: String) throws { + try self.validate(self.configurationSetName, name: "configurationSetName", parent: name, max: 256) + try self.validate(self.configurationSetName, name: "configurationSetName", parent: name, min: 1) + try self.validate(self.configurationSetName, name: "configurationSetName", parent: name, pattern: "^[A-Za-z0-9_:/-]+$") + try self.validate(self.protectConfigurationId, name: "protectConfigurationId", parent: name, max: 256) + try self.validate(self.protectConfigurationId, name: "protectConfigurationId", parent: name, min: 1) + try self.validate(self.protectConfigurationId, name: "protectConfigurationId", parent: name, pattern: "^[A-Za-z0-9_:/-]+$") + } + + private enum CodingKeys: String, CodingKey { + case configurationSetName = "ConfigurationSetName" + case protectConfigurationId = "ProtectConfigurationId" + } + } + + public struct DisassociateProtectConfigurationResult: AWSDecodableShape { + /// The Amazon Resource Name (ARN) of the configuration set. + public let configurationSetArn: String + /// The name of the ConfigurationSet. + public let configurationSetName: String + /// The Amazon Resource Name (ARN) of the protect configuration. + public let protectConfigurationArn: String + /// The unique identifier for the protect configuration. + public let protectConfigurationId: String + + public init(configurationSetArn: String, configurationSetName: String, protectConfigurationArn: String, protectConfigurationId: String) { + self.configurationSetArn = configurationSetArn + self.configurationSetName = configurationSetName + self.protectConfigurationArn = protectConfigurationArn + self.protectConfigurationId = protectConfigurationId + } + + private enum CodingKeys: String, CodingKey { + case configurationSetArn = "ConfigurationSetArn" + case configurationSetName = "ConfigurationSetName" + case protectConfigurationArn = "ProtectConfigurationArn" + case protectConfigurationId = "ProtectConfigurationId" + } + } + public struct DiscardRegistrationVersionRequest: AWSEncodableShape { /// The unique identifier for the registration. public let registrationId: String @@ -3126,6 +3475,54 @@ extension PinpointSMSVoiceV2 { } } + public struct GetProtectConfigurationCountryRuleSetRequest: AWSEncodableShape { + /// The capability type to return the CountryRuleSet for. Valid values are SMS, VOICE, or MMS. + public let numberCapability: NumberCapability + /// The unique identifier for the protect configuration. + public let protectConfigurationId: String + + public init(numberCapability: NumberCapability, protectConfigurationId: String) { + self.numberCapability = numberCapability + self.protectConfigurationId = protectConfigurationId + } + + public func validate(name: String) throws { + try self.validate(self.protectConfigurationId, name: "protectConfigurationId", parent: name, max: 256) + try self.validate(self.protectConfigurationId, name: "protectConfigurationId", parent: name, min: 1) + try self.validate(self.protectConfigurationId, name: "protectConfigurationId", parent: name, pattern: "^[A-Za-z0-9_:/-]+$") + } + + private enum CodingKeys: String, CodingKey { + case numberCapability = "NumberCapability" + case protectConfigurationId = "ProtectConfigurationId" + } + } + + public struct GetProtectConfigurationCountryRuleSetResult: AWSDecodableShape { + /// A map of ProtectConfigurationCountryRuleSetInformation objects that contain the details for the requested NumberCapability. The Key is the two-letter ISO country code. For a list of supported ISO country codes, see Supported countries and regions (SMS channel) in the Amazon Pinpoint SMS user guide. + public let countryRuleSet: [String: ProtectConfigurationCountryRuleSetInformation] + /// The capability type associated with the returned ProtectConfigurationCountryRuleSetInformation objects. + public let numberCapability: NumberCapability + /// The Amazon Resource Name (ARN) of the protect configuration. + public let protectConfigurationArn: String + /// The unique identifier for the protect configuration. + public let protectConfigurationId: String + + public init(countryRuleSet: [String: ProtectConfigurationCountryRuleSetInformation], numberCapability: NumberCapability, protectConfigurationArn: String, protectConfigurationId: String) { + self.countryRuleSet = countryRuleSet + self.numberCapability = numberCapability + self.protectConfigurationArn = protectConfigurationArn + self.protectConfigurationId = protectConfigurationId + } + + private enum CodingKeys: String, CodingKey { + case countryRuleSet = "CountryRuleSet" + case numberCapability = "NumberCapability" + case protectConfigurationArn = "ProtectConfigurationArn" + case protectConfigurationId = "ProtectConfigurationId" + } + } + public struct KeywordFilter: AWSEncodableShape { /// The name of the attribute to filter on. public let name: KeywordFilterName @@ -3139,9 +3536,9 @@ extension PinpointSMSVoiceV2 { public func validate(name: String) throws { try self.values.forEach { - try validate($0, name: "values[]", parent: name, max: 100) + try validate($0, name: "values[]", parent: name, max: 128) try validate($0, name: "values[]", parent: name, min: 1) - try validate($0, name: "values[]", parent: name, pattern: "^[\\.:A-Za-z0-9_-]+$") + try validate($0, name: "values[]", parent: name, pattern: "^[/\\.:A-Za-z0-9_-]+$") } try self.validate(self.values, name: "values", parent: name, max: 20) try self.validate(self.values, name: "values", parent: name, min: 1) @@ -3177,7 +3574,7 @@ extension PinpointSMSVoiceV2 { public struct KinesisFirehoseDestination: AWSEncodableShape & AWSDecodableShape { /// The Amazon Resource Name (ARN) of the delivery stream. public let deliveryStreamArn: String - /// The ARN of an Amazon Identity and Access Management (IAM) role that is able to write event data to an Amazon Firehose destination. + /// The ARN of an Identity and Access Management role that is able to write event data to an Amazon Kinesis Data Firehose destination. public let iamRoleArn: String public init(deliveryStreamArn: String, iamRoleArn: String) { @@ -3404,9 +3801,9 @@ extension PinpointSMSVoiceV2 { public func validate(name: String) throws { try self.values.forEach { - try validate($0, name: "values[]", parent: name, max: 100) + try validate($0, name: "values[]", parent: name, max: 128) try validate($0, name: "values[]", parent: name, min: 1) - try validate($0, name: "values[]", parent: name, pattern: "^[\\.:A-Za-z0-9_-]+$") + try validate($0, name: "values[]", parent: name, pattern: "^[/\\.:A-Za-z0-9_-]+$") } try self.validate(self.values, name: "values", parent: name, max: 20) try self.validate(self.values, name: "values", parent: name, min: 1) @@ -3481,9 +3878,9 @@ extension PinpointSMSVoiceV2 { public func validate(name: String) throws { try self.values.forEach { - try validate($0, name: "values[]", parent: name, max: 100) + try validate($0, name: "values[]", parent: name, max: 128) try validate($0, name: "values[]", parent: name, min: 1) - try validate($0, name: "values[]", parent: name, pattern: "^[\\.:A-Za-z0-9_-]+$") + try validate($0, name: "values[]", parent: name, pattern: "^[/\\.:A-Za-z0-9_-]+$") } try self.validate(self.values, name: "values", parent: name, max: 20) try self.validate(self.values, name: "values", parent: name, min: 1) @@ -3589,9 +3986,9 @@ extension PinpointSMSVoiceV2 { public func validate(name: String) throws { try self.values.forEach { - try validate($0, name: "values[]", parent: name, max: 100) + try validate($0, name: "values[]", parent: name, max: 128) try validate($0, name: "values[]", parent: name, min: 1) - try validate($0, name: "values[]", parent: name, pattern: "^[\\.:A-Za-z0-9_-]+$") + try validate($0, name: "values[]", parent: name, pattern: "^[/\\.:A-Za-z0-9_-]+$") } try self.validate(self.values, name: "values", parent: name, max: 20) try self.validate(self.values, name: "values", parent: name, min: 1) @@ -3673,9 +4070,9 @@ extension PinpointSMSVoiceV2 { public func validate(name: String) throws { try self.values.forEach { - try validate($0, name: "values[]", parent: name, max: 100) + try validate($0, name: "values[]", parent: name, max: 128) try validate($0, name: "values[]", parent: name, min: 1) - try validate($0, name: "values[]", parent: name, pattern: "^[\\.:A-Za-z0-9_-]+$") + try validate($0, name: "values[]", parent: name, pattern: "^[/\\.:A-Za-z0-9_-]+$") } try self.validate(self.values, name: "values", parent: name, max: 20) try self.validate(self.values, name: "values", parent: name, min: 1) @@ -3687,6 +4084,75 @@ extension PinpointSMSVoiceV2 { } } + public struct ProtectConfigurationCountryRuleSetInformation: AWSEncodableShape & AWSDecodableShape { + /// The types of protection that can be used. + public let protectStatus: ProtectStatus + + public init(protectStatus: ProtectStatus) { + self.protectStatus = protectStatus + } + + private enum CodingKeys: String, CodingKey { + case protectStatus = "ProtectStatus" + } + } + + public struct ProtectConfigurationFilter: AWSEncodableShape { + /// The name of the attribute to filter on. + public let name: ProtectConfigurationFilterName + /// An array of values to filter for. + public let values: [String] + + public init(name: ProtectConfigurationFilterName, values: [String]) { + self.name = name + self.values = values + } + + public func validate(name: String) throws { + try self.values.forEach { + try validate($0, name: "values[]", parent: name, max: 128) + try validate($0, name: "values[]", parent: name, min: 1) + try validate($0, name: "values[]", parent: name, pattern: "^[/\\.:A-Za-z0-9_-]+$") + } + try self.validate(self.values, name: "values", parent: name, max: 20) + try self.validate(self.values, name: "values", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case values = "Values" + } + } + + public struct ProtectConfigurationInformation: AWSDecodableShape { + /// This is true if the protect configuration is set as your account default protect configuration. + public let accountDefault: Bool + /// The time when the protect configuration was created, in UNIX epoch time format. + public let createdTimestamp: Date + /// The status of deletion protection for the protect configuration. When set to true deletion protection is enabled. By default this is set to false. + public let deletionProtectionEnabled: Bool + /// The Amazon Resource Name (ARN) of the protect configuration. + public let protectConfigurationArn: String + /// The unique identifier for the protect configuration. + public let protectConfigurationId: String + + public init(accountDefault: Bool, createdTimestamp: Date, deletionProtectionEnabled: Bool, protectConfigurationArn: String, protectConfigurationId: String) { + self.accountDefault = accountDefault + self.createdTimestamp = createdTimestamp + self.deletionProtectionEnabled = deletionProtectionEnabled + self.protectConfigurationArn = protectConfigurationArn + self.protectConfigurationId = protectConfigurationId + } + + private enum CodingKeys: String, CodingKey { + case accountDefault = "AccountDefault" + case createdTimestamp = "CreatedTimestamp" + case deletionProtectionEnabled = "DeletionProtectionEnabled" + case protectConfigurationArn = "ProtectConfigurationArn" + case protectConfigurationId = "ProtectConfigurationId" + } + } + public struct PutKeywordRequest: AWSEncodableShape { /// The new keyword to add. public let keyword: String @@ -3906,9 +4372,9 @@ extension PinpointSMSVoiceV2 { public func validate(name: String) throws { try self.values.forEach { - try validate($0, name: "values[]", parent: name, max: 100) + try validate($0, name: "values[]", parent: name, max: 128) try validate($0, name: "values[]", parent: name, min: 1) - try validate($0, name: "values[]", parent: name, pattern: "^[\\.:A-Za-z0-9_-]+$") + try validate($0, name: "values[]", parent: name, pattern: "^[/\\.:A-Za-z0-9_-]+$") } try self.validate(self.values, name: "values", parent: name, max: 20) try self.validate(self.values, name: "values", parent: name, min: 1) @@ -3962,9 +4428,9 @@ extension PinpointSMSVoiceV2 { public func validate(name: String) throws { try self.values.forEach { - try validate($0, name: "values[]", parent: name, max: 100) + try validate($0, name: "values[]", parent: name, max: 128) try validate($0, name: "values[]", parent: name, min: 1) - try validate($0, name: "values[]", parent: name, pattern: "^[\\.:A-Za-z0-9_-]+$") + try validate($0, name: "values[]", parent: name, pattern: "^[/\\.:A-Za-z0-9_-]+$") } try self.validate(self.values, name: "values", parent: name, max: 20) try self.validate(self.values, name: "values", parent: name, min: 1) @@ -4154,9 +4620,9 @@ extension PinpointSMSVoiceV2 { public func validate(name: String) throws { try self.values.forEach { - try validate($0, name: "values[]", parent: name, max: 100) + try validate($0, name: "values[]", parent: name, max: 128) try validate($0, name: "values[]", parent: name, min: 1) - try validate($0, name: "values[]", parent: name, pattern: "^[\\.:A-Za-z0-9_-]+$") + try validate($0, name: "values[]", parent: name, pattern: "^[/\\.:A-Za-z0-9_-]+$") } try self.validate(self.values, name: "values", parent: name, max: 20) try self.validate(self.values, name: "values", parent: name, min: 1) @@ -4322,9 +4788,9 @@ extension PinpointSMSVoiceV2 { public func validate(name: String) throws { try self.values.forEach { - try validate($0, name: "values[]", parent: name, max: 100) + try validate($0, name: "values[]", parent: name, max: 128) try validate($0, name: "values[]", parent: name, min: 1) - try validate($0, name: "values[]", parent: name, pattern: "^[\\.:A-Za-z0-9_-]+$") + try validate($0, name: "values[]", parent: name, pattern: "^[/\\.:A-Za-z0-9_-]+$") } try self.validate(self.values, name: "values", parent: name, max: 20) try self.validate(self.values, name: "values", parent: name, min: 1) @@ -4349,9 +4815,9 @@ extension PinpointSMSVoiceV2 { public func validate(name: String) throws { try self.values.forEach { - try validate($0, name: "values[]", parent: name, max: 100) + try validate($0, name: "values[]", parent: name, max: 128) try validate($0, name: "values[]", parent: name, min: 1) - try validate($0, name: "values[]", parent: name, pattern: "^[\\.:A-Za-z0-9_-]+$") + try validate($0, name: "values[]", parent: name, pattern: "^[/\\.:A-Za-z0-9_-]+$") } try self.validate(self.values, name: "values", parent: name, max: 20) try self.validate(self.values, name: "values", parent: name, min: 1) @@ -4626,7 +5092,7 @@ extension PinpointSMSVoiceV2 { try self.validate(self.isoCountryCode, name: "isoCountryCode", parent: name, max: 2) try self.validate(self.isoCountryCode, name: "isoCountryCode", parent: name, min: 2) try self.validate(self.isoCountryCode, name: "isoCountryCode", parent: name, pattern: "^[A-Z]{2}$") - try self.validate(self.numberCapabilities, name: "numberCapabilities", parent: name, max: 2) + try self.validate(self.numberCapabilities, name: "numberCapabilities", parent: name, max: 3) try self.validate(self.numberCapabilities, name: "numberCapabilities", parent: name, min: 1) try self.validate(self.optOutListName, name: "optOutListName", parent: name, max: 256) try self.validate(self.optOutListName, name: "optOutListName", parent: name, min: 1) @@ -4952,6 +5418,107 @@ extension PinpointSMSVoiceV2 { } } + public struct SendMediaMessageRequest: AWSEncodableShape { + /// The name of the configuration set to use. This can be either the ConfigurationSetName or ConfigurationSetArn. + public let configurationSetName: String? + /// You can specify custom data in this field. If you do, that data is logged to the event destination. + public let context: [String: String]? + /// The destination phone number in E.164 format. + public let destinationPhoneNumber: String + /// When set to true, the message is checked and validated, but isn't sent to the end recipient. + public let dryRun: Bool? + /// The maximum amount that you want to spend, in US dollars, per each MMS message. + public let maxPrice: String? + /// An array of URLs to each media file to send. The media files have to be stored in a publicly available S3 bucket. Supported media file formats are listed in MMS file types, size and character limits. For more information on creating an S3 bucket and managing objects, see Creating a bucket and Uploading objects in the S3 user guide. + public let mediaUrls: [String]? + /// The text body of the message. + public let messageBody: String? + /// The origination identity of the message. This can be either the PhoneNumber, PhoneNumberId, PhoneNumberArn, SenderId, SenderIdArn, PoolId, or PoolArn. + public let originationIdentity: String + /// The unique identifier of the protect configuration to use. + public let protectConfigurationId: String? + /// How long the text message is valid for. By default this is 72 hours. + public let timeToLive: Int? + + public init(configurationSetName: String? = nil, context: [String: String]? = nil, destinationPhoneNumber: String, dryRun: Bool? = nil, maxPrice: String? = nil, mediaUrls: [String]? = nil, messageBody: String? = nil, originationIdentity: String, protectConfigurationId: String? = nil, timeToLive: Int? = nil) { + self.configurationSetName = configurationSetName + self.context = context + self.destinationPhoneNumber = destinationPhoneNumber + self.dryRun = dryRun + self.maxPrice = maxPrice + self.mediaUrls = mediaUrls + self.messageBody = messageBody + self.originationIdentity = originationIdentity + self.protectConfigurationId = protectConfigurationId + self.timeToLive = timeToLive + } + + public func validate(name: String) throws { + try self.validate(self.configurationSetName, name: "configurationSetName", parent: name, max: 256) + try self.validate(self.configurationSetName, name: "configurationSetName", parent: name, min: 1) + try self.validate(self.configurationSetName, name: "configurationSetName", parent: name, pattern: "^[A-Za-z0-9_:/-]+$") + try self.context?.forEach { + try validate($0.key, name: "context.key", parent: name, max: 100) + try validate($0.key, name: "context.key", parent: name, min: 1) + try validate($0.key, name: "context.key", parent: name, pattern: "^\\S+$") + try validate($0.value, name: "context[\"\($0.key)\"]", parent: name, max: 800) + try validate($0.value, name: "context[\"\($0.key)\"]", parent: name, min: 1) + try validate($0.value, name: "context[\"\($0.key)\"]", parent: name, pattern: "^(?!\\s)^[\\s\\S]+(? BatchDeleteDocumentResponse { return try await self.client.execute( @@ -162,7 +162,7 @@ public struct QBusiness: AWSService { ) } - /// Adds one or more documents to an Amazon Q index. You use this API to: ingest your structured and unstructured documents and documents stored in an Amazon S3 bucket into an Amazon Q index. add custom attributes to documents in an Amazon Q index. attach an access control list to the documents added to an Amazon Q index. You can see the progress of the deletion, and any error messages related to the process, by using CloudWatch. + /// Adds one or more documents to an Amazon Q Business index. You use this API to: ingest your structured and unstructured documents and documents stored in an Amazon S3 bucket into an Amazon Q Business index. add custom attributes to documents in an Amazon Q Business index. attach an access control list to the documents added to an Amazon Q Business index. You can see the progress of the deletion, and any error messages related to the process, by using CloudWatch. @Sendable public func batchPutDocument(_ input: BatchPutDocumentRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> BatchPutDocumentResponse { return try await self.client.execute( @@ -175,7 +175,20 @@ public struct QBusiness: AWSService { ) } - /// Starts or continues a non-streaming Amazon Q conversation. + /// Starts or continues a streaming Amazon Q Business conversation. + @Sendable + public func chat(_ input: ChatInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ChatOutput { + return try await self.client.execute( + operation: "Chat", + path: "/applications/{applicationId}/conversations", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Starts or continues a non-streaming Amazon Q Business conversation. @Sendable public func chatSync(_ input: ChatSyncInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ChatSyncOutput { return try await self.client.execute( @@ -188,7 +201,7 @@ public struct QBusiness: AWSService { ) } - /// Creates an Amazon Q application. + /// Creates an Amazon Q Business application. There are new tiers for Amazon Q Business. Not all features in Amazon Q Business Pro are also available in Amazon Q Business Lite. For information on what's included in Amazon Q Business Lite and what's included in Amazon Q Business Pro, see Amazon Q Business tiers. You must use the Amazon Q Business console to assign subscription tiers to users. @Sendable public func createApplication(_ input: CreateApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateApplicationResponse { return try await self.client.execute( @@ -201,7 +214,7 @@ public struct QBusiness: AWSService { ) } - /// Creates a data source connector for an Amazon Q application. CreateDataSource is a synchronous operation. The operation returns 200 if the data source was successfully created. Otherwise, an exception is raised. + /// Creates a data source connector for an Amazon Q Business application. CreateDataSource is a synchronous operation. The operation returns 200 if the data source was successfully created. Otherwise, an exception is raised. @Sendable public func createDataSource(_ input: CreateDataSourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateDataSourceResponse { return try await self.client.execute( @@ -214,7 +227,7 @@ public struct QBusiness: AWSService { ) } - /// Creates an Amazon Q index. To determine if index creation has completed, check the Status field returned from a call to DescribeIndex. The Status field is set to ACTIVE when the index is ready to use. Once the index is active, you can index your documents using the BatchPutDocument API or the CreateDataSource API. + /// Creates an Amazon Q Business index. To determine if index creation has completed, check the Status field returned from a call to DescribeIndex. The Status field is set to ACTIVE when the index is ready to use. Once the index is active, you can index your documents using the BatchPutDocument API or the CreateDataSource API. @Sendable public func createIndex(_ input: CreateIndexRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateIndexResponse { return try await self.client.execute( @@ -227,7 +240,7 @@ public struct QBusiness: AWSService { ) } - /// Creates an Amazon Q plugin. + /// Creates an Amazon Q Business plugin. @Sendable public func createPlugin(_ input: CreatePluginRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreatePluginResponse { return try await self.client.execute( @@ -240,7 +253,7 @@ public struct QBusiness: AWSService { ) } - /// Adds a retriever to your Amazon Q application. + /// Adds a retriever to your Amazon Q Business application. @Sendable public func createRetriever(_ input: CreateRetrieverRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateRetrieverResponse { return try await self.client.execute( @@ -266,7 +279,7 @@ public struct QBusiness: AWSService { ) } - /// Creates an Amazon Q web experience. + /// Creates an Amazon Q Business web experience. @Sendable public func createWebExperience(_ input: CreateWebExperienceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateWebExperienceResponse { return try await self.client.execute( @@ -279,7 +292,7 @@ public struct QBusiness: AWSService { ) } - /// Deletes an Amazon Q application. + /// Deletes an Amazon Q Business application. @Sendable public func deleteApplication(_ input: DeleteApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteApplicationResponse { return try await self.client.execute( @@ -292,7 +305,7 @@ public struct QBusiness: AWSService { ) } - /// Deletes chat controls configured for an existing Amazon Q application. + /// Deletes chat controls configured for an existing Amazon Q Business application. @Sendable public func deleteChatControlsConfiguration(_ input: DeleteChatControlsConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteChatControlsConfigurationResponse { return try await self.client.execute( @@ -305,7 +318,7 @@ public struct QBusiness: AWSService { ) } - /// Deletes an Amazon Q web experience conversation. + /// Deletes an Amazon Q Business web experience conversation. @Sendable public func deleteConversation(_ input: DeleteConversationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteConversationResponse { return try await self.client.execute( @@ -318,7 +331,7 @@ public struct QBusiness: AWSService { ) } - /// Deletes an Amazon Q data source connector. While the data source is being deleted, the Status field returned by a call to the DescribeDataSource API is set to DELETING. + /// Deletes an Amazon Q Business data source connector. While the data source is being deleted, the Status field returned by a call to the DescribeDataSource API is set to DELETING. @Sendable public func deleteDataSource(_ input: DeleteDataSourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteDataSourceResponse { return try await self.client.execute( @@ -344,7 +357,7 @@ public struct QBusiness: AWSService { ) } - /// Deletes an Amazon Q index. + /// Deletes an Amazon Q Business index. @Sendable public func deleteIndex(_ input: DeleteIndexRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteIndexResponse { return try await self.client.execute( @@ -357,7 +370,7 @@ public struct QBusiness: AWSService { ) } - /// Deletes an Amazon Q plugin. + /// Deletes an Amazon Q Business plugin. @Sendable public func deletePlugin(_ input: DeletePluginRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeletePluginResponse { return try await self.client.execute( @@ -370,7 +383,7 @@ public struct QBusiness: AWSService { ) } - /// Deletes the retriever used by an Amazon Q application. + /// Deletes the retriever used by an Amazon Q Business application. @Sendable public func deleteRetriever(_ input: DeleteRetrieverRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteRetrieverResponse { return try await self.client.execute( @@ -396,7 +409,7 @@ public struct QBusiness: AWSService { ) } - /// Deletes an Amazon Q web experience. + /// Deletes an Amazon Q Business web experience. @Sendable public func deleteWebExperience(_ input: DeleteWebExperienceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteWebExperienceResponse { return try await self.client.execute( @@ -409,7 +422,7 @@ public struct QBusiness: AWSService { ) } - /// Gets information about an existing Amazon Q application. + /// Gets information about an existing Amazon Q Business application. @Sendable public func getApplication(_ input: GetApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetApplicationResponse { return try await self.client.execute( @@ -422,7 +435,7 @@ public struct QBusiness: AWSService { ) } - /// Gets information about an chat controls configured for an existing Amazon Q application. + /// Gets information about an chat controls configured for an existing Amazon Q Business application. @Sendable public func getChatControlsConfiguration(_ input: GetChatControlsConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetChatControlsConfigurationResponse { return try await self.client.execute( @@ -435,7 +448,7 @@ public struct QBusiness: AWSService { ) } - /// Gets information about an existing Amazon Q data source connector. + /// Gets information about an existing Amazon Q Business data source connector. @Sendable public func getDataSource(_ input: GetDataSourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetDataSourceResponse { return try await self.client.execute( @@ -461,7 +474,7 @@ public struct QBusiness: AWSService { ) } - /// Gets information about an existing Amazon Q index. + /// Gets information about an existing Amazon Q Business index. @Sendable public func getIndex(_ input: GetIndexRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetIndexResponse { return try await self.client.execute( @@ -474,7 +487,7 @@ public struct QBusiness: AWSService { ) } - /// Gets information about an existing Amazon Q plugin. + /// Gets information about an existing Amazon Q Business plugin. @Sendable public func getPlugin(_ input: GetPluginRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetPluginResponse { return try await self.client.execute( @@ -487,7 +500,7 @@ public struct QBusiness: AWSService { ) } - /// Gets information about an existing retriever used by an Amazon Q application. + /// Gets information about an existing retriever used by an Amazon Q Business application. @Sendable public func getRetriever(_ input: GetRetrieverRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetRetrieverResponse { return try await self.client.execute( @@ -513,7 +526,7 @@ public struct QBusiness: AWSService { ) } - /// Gets information about an existing Amazon Q web experience. + /// Gets information about an existing Amazon Q Business web experience. @Sendable public func getWebExperience(_ input: GetWebExperienceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetWebExperienceResponse { return try await self.client.execute( @@ -526,7 +539,7 @@ public struct QBusiness: AWSService { ) } - /// Lists Amazon Q applications. + /// Lists Amazon Q Business applications. @Sendable public func listApplications(_ input: ListApplicationsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListApplicationsResponse { return try await self.client.execute( @@ -539,7 +552,7 @@ public struct QBusiness: AWSService { ) } - /// Lists one or more Amazon Q conversations. + /// Lists one or more Amazon Q Business conversations. @Sendable public func listConversations(_ input: ListConversationsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListConversationsResponse { return try await self.client.execute( @@ -552,7 +565,7 @@ public struct QBusiness: AWSService { ) } - /// Get information about an Amazon Q data source connector synchronization. + /// Get information about an Amazon Q Business data source connector synchronization. @Sendable public func listDataSourceSyncJobs(_ input: ListDataSourceSyncJobsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListDataSourceSyncJobsResponse { return try await self.client.execute( @@ -565,7 +578,7 @@ public struct QBusiness: AWSService { ) } - /// Lists the Amazon Q data source connectors that you have created. + /// Lists the Amazon Q Business data source connectors that you have created. @Sendable public func listDataSources(_ input: ListDataSourcesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListDataSourcesResponse { return try await self.client.execute( @@ -604,7 +617,7 @@ public struct QBusiness: AWSService { ) } - /// Lists the Amazon Q indices you have created. + /// Lists the Amazon Q Business indices you have created. @Sendable public func listIndices(_ input: ListIndicesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListIndicesResponse { return try await self.client.execute( @@ -617,7 +630,7 @@ public struct QBusiness: AWSService { ) } - /// Gets a list of messages associated with an Amazon Q web experience. + /// Gets a list of messages associated with an Amazon Q Business web experience. @Sendable public func listMessages(_ input: ListMessagesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListMessagesResponse { return try await self.client.execute( @@ -630,7 +643,7 @@ public struct QBusiness: AWSService { ) } - /// Lists configured Amazon Q plugins. + /// Lists configured Amazon Q Business plugins. @Sendable public func listPlugins(_ input: ListPluginsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListPluginsResponse { return try await self.client.execute( @@ -643,7 +656,7 @@ public struct QBusiness: AWSService { ) } - /// Lists the retriever used by an Amazon Q application. + /// Lists the retriever used by an Amazon Q Business application. @Sendable public func listRetrievers(_ input: ListRetrieversRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListRetrieversResponse { return try await self.client.execute( @@ -656,7 +669,7 @@ public struct QBusiness: AWSService { ) } - /// Gets a list of tags associated with a specified resource. Amazon Q applications and data sources can have tags associated with them. + /// Gets a list of tags associated with a specified resource. Amazon Q Business applications and data sources can have tags associated with them. @Sendable public func listTagsForResource(_ input: ListTagsForResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListTagsForResourceResponse { return try await self.client.execute( @@ -669,7 +682,7 @@ public struct QBusiness: AWSService { ) } - /// Lists one or more Amazon Q Web Experiences. + /// Lists one or more Amazon Q Business Web Experiences. @Sendable public func listWebExperiences(_ input: ListWebExperiencesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListWebExperiencesResponse { return try await self.client.execute( @@ -682,7 +695,7 @@ public struct QBusiness: AWSService { ) } - /// Enables your end user to to provide feedback on their Amazon Q generated chat responses. + /// Enables your end user to provide feedback on their Amazon Q Business generated chat responses. @Sendable public func putFeedback(_ input: PutFeedbackRequest, logger: Logger = AWSClient.loggingDisabled) async throws { return try await self.client.execute( @@ -695,7 +708,7 @@ public struct QBusiness: AWSService { ) } - /// Create, or updates, a mapping of users—who have access to a document—to groups. You can also map sub groups to groups. For example, the group "Company Intellectual Property Teams" includes sub groups "Research" and "Engineering". These sub groups include their own list of users or people who work in these teams. Only users who work in research and engineering, and therefore belong in the intellectual property group, can see top-secret company documents in their Amazon Q chat results. + /// Create, or updates, a mapping of users—who have access to a document—to groups. You can also map sub groups to groups. For example, the group "Company Intellectual Property Teams" includes sub groups "Research" and "Engineering". These sub groups include their own list of users or people who work in these teams. Only users who work in research and engineering, and therefore belong in the intellectual property group, can see top-secret company documents in their Amazon Q Business chat results. @Sendable public func putGroup(_ input: PutGroupRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> PutGroupResponse { return try await self.client.execute( @@ -708,7 +721,7 @@ public struct QBusiness: AWSService { ) } - /// Starts a data source connector synchronization job. If a synchronization job is already in progress, Amazon Q returns a ConflictException. + /// Starts a data source connector synchronization job. If a synchronization job is already in progress, Amazon Q Business returns a ConflictException. @Sendable public func startDataSourceSyncJob(_ input: StartDataSourceSyncJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartDataSourceSyncJobResponse { return try await self.client.execute( @@ -721,7 +734,7 @@ public struct QBusiness: AWSService { ) } - /// Stops an Amazon Q data source connector synchronization job already in progress. + /// Stops an Amazon Q Business data source connector synchronization job already in progress. @Sendable public func stopDataSourceSyncJob(_ input: StopDataSourceSyncJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StopDataSourceSyncJobResponse { return try await self.client.execute( @@ -734,7 +747,7 @@ public struct QBusiness: AWSService { ) } - /// Adds the specified tag to the specified Amazon Q application or data source resource. If the tag already exists, the existing value is replaced with the new value. + /// Adds the specified tag to the specified Amazon Q Business application or data source resource. If the tag already exists, the existing value is replaced with the new value. @Sendable public func tagResource(_ input: TagResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> TagResourceResponse { return try await self.client.execute( @@ -747,7 +760,7 @@ public struct QBusiness: AWSService { ) } - /// Removes a tag from an Amazon Q application or a data source. + /// Removes a tag from an Amazon Q Business application or a data source. @Sendable public func untagResource(_ input: UntagResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UntagResourceResponse { return try await self.client.execute( @@ -760,7 +773,7 @@ public struct QBusiness: AWSService { ) } - /// Updates an existing Amazon Q application. + /// Updates an existing Amazon Q Business application. @Sendable public func updateApplication(_ input: UpdateApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateApplicationResponse { return try await self.client.execute( @@ -773,7 +786,7 @@ public struct QBusiness: AWSService { ) } - /// Updates an set of chat controls configured for an existing Amazon Q application. + /// Updates an set of chat controls configured for an existing Amazon Q Business application. @Sendable public func updateChatControlsConfiguration(_ input: UpdateChatControlsConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateChatControlsConfigurationResponse { return try await self.client.execute( @@ -786,7 +799,7 @@ public struct QBusiness: AWSService { ) } - /// Updates an existing Amazon Q data source connector. + /// Updates an existing Amazon Q Business data source connector. @Sendable public func updateDataSource(_ input: UpdateDataSourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateDataSourceResponse { return try await self.client.execute( @@ -799,7 +812,7 @@ public struct QBusiness: AWSService { ) } - /// Updates an Amazon Q index. + /// Updates an Amazon Q Business index. @Sendable public func updateIndex(_ input: UpdateIndexRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateIndexResponse { return try await self.client.execute( @@ -812,7 +825,7 @@ public struct QBusiness: AWSService { ) } - /// Updates an Amazon Q plugin. + /// Updates an Amazon Q Business plugin. @Sendable public func updatePlugin(_ input: UpdatePluginRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdatePluginResponse { return try await self.client.execute( @@ -825,7 +838,7 @@ public struct QBusiness: AWSService { ) } - /// Updates the retriever used for your Amazon Q application. + /// Updates the retriever used for your Amazon Q Business application. @Sendable public func updateRetriever(_ input: UpdateRetrieverRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateRetrieverResponse { return try await self.client.execute( @@ -851,7 +864,7 @@ public struct QBusiness: AWSService { ) } - /// Updates an Amazon Q web experience. + /// Updates an Amazon Q Business web experience. @Sendable public func updateWebExperience(_ input: UpdateWebExperienceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateWebExperienceResponse { return try await self.client.execute( @@ -878,7 +891,7 @@ extension QBusiness { @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) extension QBusiness { - /// Gets information about an chat controls configured for an existing Amazon Q application. + /// Gets information about an chat controls configured for an existing Amazon Q Business application. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -897,7 +910,7 @@ extension QBusiness { ) } - /// Lists Amazon Q applications. + /// Lists Amazon Q Business applications. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -916,7 +929,7 @@ extension QBusiness { ) } - /// Lists one or more Amazon Q conversations. + /// Lists one or more Amazon Q Business conversations. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -935,7 +948,7 @@ extension QBusiness { ) } - /// Get information about an Amazon Q data source connector synchronization. + /// Get information about an Amazon Q Business data source connector synchronization. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -954,7 +967,7 @@ extension QBusiness { ) } - /// Lists the Amazon Q data source connectors that you have created. + /// Lists the Amazon Q Business data source connectors that you have created. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -1011,7 +1024,7 @@ extension QBusiness { ) } - /// Lists the Amazon Q indices you have created. + /// Lists the Amazon Q Business indices you have created. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -1030,7 +1043,7 @@ extension QBusiness { ) } - /// Gets a list of messages associated with an Amazon Q web experience. + /// Gets a list of messages associated with an Amazon Q Business web experience. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -1049,7 +1062,7 @@ extension QBusiness { ) } - /// Lists configured Amazon Q plugins. + /// Lists configured Amazon Q Business plugins. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -1068,7 +1081,7 @@ extension QBusiness { ) } - /// Lists the retriever used by an Amazon Q application. + /// Lists the retriever used by an Amazon Q Business application. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -1087,7 +1100,7 @@ extension QBusiness { ) } - /// Lists one or more Amazon Q Web Experiences. + /// Lists one or more Amazon Q Business Web Experiences. /// Return PaginatorSequence for operation. /// /// - Parameters: diff --git a/Sources/Soto/Services/QBusiness/QBusiness_shapes.swift b/Sources/Soto/Services/QBusiness/QBusiness_shapes.swift index 8fce79cef5..2e6b7b7768 100644 --- a/Sources/Soto/Services/QBusiness/QBusiness_shapes.swift +++ b/Sources/Soto/Services/QBusiness/QBusiness_shapes.swift @@ -26,6 +26,11 @@ import Foundation extension QBusiness { // MARK: Enums + public enum APISchemaType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case openApiV3 = "OPEN_API_V3" + public var description: String { return self.rawValue } + } + public enum ActionPayloadFieldType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case array = "ARRAY" case boolean = "BOOLEAN" @@ -68,6 +73,13 @@ extension QBusiness { public var description: String { return self.rawValue } } + public enum ChatMode: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case creatorMode = "CREATOR_MODE" + case pluginMode = "PLUGIN_MODE" + case retrievalMode = "RETRIEVAL_MODE" + public var description: String { return self.rawValue } + } + public enum ContentType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case csv = "CSV" case html = "HTML" @@ -84,6 +96,12 @@ extension QBusiness { public var description: String { return self.rawValue } } + public enum CreatorModeControl: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + public enum DataSourceStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case active = "ACTIVE" case creating = "CREATING" @@ -172,6 +190,12 @@ extension QBusiness { public var description: String { return self.rawValue } } + public enum IndexType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case enterprise = "ENTERPRISE" + case starter = "STARTER" + public var description: String { return self.rawValue } + } + public enum MemberRelation: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case and = "AND" case or = "OR" @@ -218,6 +242,17 @@ extension QBusiness { public var description: String { return self.rawValue } } + public enum PluginBuildStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case createFailed = "CREATE_FAILED" + case createInProgress = "CREATE_IN_PROGRESS" + case deleteFailed = "DELETE_FAILED" + case deleteInProgress = "DELETE_IN_PROGRESS" + case ready = "READY" + case updateFailed = "UPDATE_FAILED" + case updateInProgress = "UPDATE_IN_PROGRESS" + public var description: String { return self.rawValue } + } + public enum PluginState: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case disabled = "DISABLED" case enabled = "ENABLED" @@ -225,6 +260,7 @@ extension QBusiness { } public enum PluginType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case custom = "CUSTOM" case jira = "JIRA" case salesforce = "SALESFORCE" case serviceNow = "SERVICE_NOW" @@ -292,6 +328,164 @@ extension QBusiness { public var description: String { return self.rawValue } } + public enum APISchema: AWSEncodableShape & AWSDecodableShape, Sendable { + /// The JSON or YAML-formatted payload defining the OpenAPI schema for a custom plugin. + case payload(String) + /// Contains details about the S3 object containing the OpenAPI schema for a custom plugin. The schema could be in either JSON or YAML format. + case s3(S3) + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + guard container.allKeys.count == 1, let key = container.allKeys.first else { + let context = DecodingError.Context( + codingPath: container.codingPath, + debugDescription: "Expected exactly one key, but got \(container.allKeys.count)" + ) + throw DecodingError.dataCorrupted(context) + } + switch key { + case .payload: + let value = try container.decode(String.self, forKey: .payload) + self = .payload(value) + case .s3: + let value = try container.decode(S3.self, forKey: .s3) + self = .s3(value) + } + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case .payload(let value): + try container.encode(value, forKey: .payload) + case .s3(let value): + try container.encode(value, forKey: .s3) + } + } + + public func validate(name: String) throws { + switch self { + case .s3(let value): + try value.validate(name: "\(name).s3") + default: + break + } + } + + private enum CodingKeys: String, CodingKey { + case payload = "payload" + case s3 = "s3" + } + } + + public enum ChatInputStream: AWSEncodableShape, Sendable { + /// A request from an end user to perform an Amazon Q Business plugin action. + case actionExecutionEvent(ActionExecutionEvent) + /// A request by an end user to upload a file during chat. + case attachmentEvent(AttachmentInputEvent) + /// An authentication verification event response by a third party authentication server to Amazon Q Business. + case authChallengeResponseEvent(AuthChallengeResponseEvent) + /// A configuration event activated by an end user request to select a specific chat mode. + case configurationEvent(ConfigurationEvent) + /// The end of the streaming input for the Chat API. + case endOfInputEvent(EndOfInputEvent) + /// Information about the payload of the ChatInputStream event containing the end user message input. + case textEvent(TextInputEvent) + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case .actionExecutionEvent(let value): + try container.encode(value, forKey: .actionExecutionEvent) + case .attachmentEvent(let value): + try container.encode(value, forKey: .attachmentEvent) + case .authChallengeResponseEvent(let value): + try container.encode(value, forKey: .authChallengeResponseEvent) + case .configurationEvent(let value): + try container.encode(value, forKey: .configurationEvent) + case .endOfInputEvent(let value): + try container.encode(value, forKey: .endOfInputEvent) + case .textEvent(let value): + try container.encode(value, forKey: .textEvent) + } + } + + public func validate(name: String) throws { + switch self { + case .actionExecutionEvent(let value): + try value.validate(name: "\(name).actionExecutionEvent") + case .attachmentEvent(let value): + try value.validate(name: "\(name).attachmentEvent") + case .authChallengeResponseEvent(let value): + try value.validate(name: "\(name).authChallengeResponseEvent") + case .configurationEvent(let value): + try value.validate(name: "\(name).configurationEvent") + case .textEvent(let value): + try value.validate(name: "\(name).textEvent") + default: + break + } + } + + private enum CodingKeys: String, CodingKey { + case actionExecutionEvent = "actionExecutionEvent" + case attachmentEvent = "attachmentEvent" + case authChallengeResponseEvent = "authChallengeResponseEvent" + case configurationEvent = "configurationEvent" + case endOfInputEvent = "endOfInputEvent" + case textEvent = "textEvent" + } + } + + public enum ChatOutputStream: AWSDecodableShape, Sendable { + /// A request from Amazon Q Business to the end user for information Amazon Q Business needs to successfully complete a requested plugin action. + case actionReviewEvent(ActionReviewEvent) + /// An authentication verification event activated by an end user request to use a custom plugin. + case authChallengeRequestEvent(AuthChallengeRequestEvent) + /// A failed file upload event during a web experience chat. + case failedAttachmentEvent(FailedAttachmentEvent) + /// A metadata event for a AI-generated text output message in a Amazon Q Business conversation. + case metadataEvent(MetadataEvent) + /// Information about the payload of the ChatOutputStream event containing the AI-generated message output. + case textEvent(TextOutputEvent) + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + guard container.allKeys.count == 1, let key = container.allKeys.first else { + let context = DecodingError.Context( + codingPath: container.codingPath, + debugDescription: "Expected exactly one key, but got \(container.allKeys.count)" + ) + throw DecodingError.dataCorrupted(context) + } + switch key { + case .actionReviewEvent: + let value = try container.decode(ActionReviewEvent.self, forKey: .actionReviewEvent) + self = .actionReviewEvent(value) + case .authChallengeRequestEvent: + let value = try container.decode(AuthChallengeRequestEvent.self, forKey: .authChallengeRequestEvent) + self = .authChallengeRequestEvent(value) + case .failedAttachmentEvent: + let value = try container.decode(FailedAttachmentEvent.self, forKey: .failedAttachmentEvent) + self = .failedAttachmentEvent(value) + case .metadataEvent: + let value = try container.decode(MetadataEvent.self, forKey: .metadataEvent) + self = .metadataEvent(value) + case .textEvent: + let value = try container.decode(TextOutputEvent.self, forKey: .textEvent) + self = .textEvent(value) + } + } + + private enum CodingKeys: String, CodingKey { + case actionReviewEvent = "actionReviewEvent" + case authChallengeRequestEvent = "authChallengeRequestEvent" + case failedAttachmentEvent = "failedAttachmentEvent" + case metadataEvent = "metadataEvent" + case textEvent = "textEvent" + } + } + public enum DocumentAttributeBoostingConfiguration: AWSEncodableShape & AWSDecodableShape, Sendable { /// Provides information on boosting DATE type document attributes. case dateConfiguration(DateAttributeBoostingConfiguration) @@ -432,7 +626,7 @@ extension QBusiness { } public enum DocumentContent: AWSEncodableShape, Sendable { - /// The contents of the document. Documents passed to the blob parameter must be base64 encoded. Your code might not need to encode the document file bytes if you're using an Amazon Web Services SDK to call Amazon Q APIs. If you are calling the Amazon Q endpoint directly using REST, you must base64 encode the contents before sending. + /// The contents of the document. Documents passed to the blob parameter must be base64 encoded. Your code might not need to encode the document file bytes if you're using an Amazon Web Services SDK to call Amazon Q Business APIs. If you are calling the Amazon Q Business endpoint directly using REST, you must base64 encode the contents before sending. case blob(AWSBase64Data) /// The path to the document in an Amazon S3 bucket. case s3(S3) @@ -465,6 +659,8 @@ extension QBusiness { public enum PluginAuthConfiguration: AWSEncodableShape & AWSDecodableShape, Sendable { /// Information about the basic authentication credentials used to configure a plugin. case basicAuthConfiguration(BasicAuthConfiguration) + /// Information about invoking a custom plugin without any authentication. + case noAuthConfiguration(NoAuthConfiguration) /// Information about the OAuth 2.0 authentication credential/token used to configure a plugin. case oAuth2ClientCredentialConfiguration(OAuth2ClientCredentialConfiguration) @@ -481,6 +677,9 @@ extension QBusiness { case .basicAuthConfiguration: let value = try container.decode(BasicAuthConfiguration.self, forKey: .basicAuthConfiguration) self = .basicAuthConfiguration(value) + case .noAuthConfiguration: + let value = try container.decode(NoAuthConfiguration.self, forKey: .noAuthConfiguration) + self = .noAuthConfiguration(value) case .oAuth2ClientCredentialConfiguration: let value = try container.decode(OAuth2ClientCredentialConfiguration.self, forKey: .oAuth2ClientCredentialConfiguration) self = .oAuth2ClientCredentialConfiguration(value) @@ -492,6 +691,8 @@ extension QBusiness { switch self { case .basicAuthConfiguration(let value): try container.encode(value, forKey: .basicAuthConfiguration) + case .noAuthConfiguration(let value): + try container.encode(value, forKey: .noAuthConfiguration) case .oAuth2ClientCredentialConfiguration(let value): try container.encode(value, forKey: .oAuth2ClientCredentialConfiguration) } @@ -503,11 +704,14 @@ extension QBusiness { try value.validate(name: "\(name).basicAuthConfiguration") case .oAuth2ClientCredentialConfiguration(let value): try value.validate(name: "\(name).oAuth2ClientCredentialConfiguration") + default: + break } } private enum CodingKeys: String, CodingKey { case basicAuthConfiguration = "basicAuthConfiguration" + case noAuthConfiguration = "noAuthConfiguration" case oAuth2ClientCredentialConfiguration = "oAuth2ClientCredentialConfiguration" } } @@ -544,9 +748,9 @@ extension QBusiness { } public enum RetrieverConfiguration: AWSEncodableShape & AWSDecodableShape, Sendable { - /// Provides information on how the Amazon Kendra index used as a retriever for your Amazon Q application is configured. + /// Provides information on how the Amazon Kendra index used as a retriever for your Amazon Q Business application is configured. case kendraIndexConfiguration(KendraIndexConfiguration) - /// Provides information on how a Amazon Q index used as a retriever for your Amazon Q application is configured. + /// Provides information on how a Amazon Q Business index used as a retriever for your Amazon Q Business application is configured. case nativeIndexConfiguration(NativeIndexConfiguration) public init(from decoder: Decoder) throws { @@ -594,7 +798,7 @@ extension QBusiness { } public enum RuleConfiguration: AWSEncodableShape & AWSDecodableShape, Sendable { - /// A rule for configuring how Amazon Q responds when it encounters a a blocked topic. + /// A rule for configuring how Amazon Q Business responds when it encounters a a blocked topic. case contentBlockerRule(ContentBlockerRule) case contentRetrievalRule(ContentRetrievalRule) @@ -691,7 +895,7 @@ extension QBusiness { } public struct ActionExecution: AWSEncodableShape & AWSDecodableShape { - /// A mapping of field names to the field values in input that an end user provides to Amazon Q requests to perform their plugin action. + /// A mapping of field names to the field values in input that an end user provides to Amazon Q Business requests to perform their plugin action. public let payload: [String: ActionExecutionPayloadField] /// A string used to retain information about the hierarchical contexts within an action execution event payload. public let payloadFieldNameSeparator: String @@ -722,6 +926,38 @@ extension QBusiness { } } + public struct ActionExecutionEvent: AWSEncodableShape { + /// A mapping of field names to the field values in input that an end user provides to Amazon Q Business requests to perform their plugin action. + public let payload: [String: ActionExecutionPayloadField] + /// A string used to retain information about the hierarchical contexts within a action execution event payload. + public let payloadFieldNameSeparator: String + /// The identifier of the plugin for which the action is being requested. + public let pluginId: String + + public init(payload: [String: ActionExecutionPayloadField], payloadFieldNameSeparator: String, pluginId: String) { + self.payload = payload + self.payloadFieldNameSeparator = payloadFieldNameSeparator + self.pluginId = pluginId + } + + public func validate(name: String) throws { + try self.payload.forEach { + try validate($0.key, name: "payload.key", parent: name, min: 1) + } + try self.validate(self.payloadFieldNameSeparator, name: "payloadFieldNameSeparator", parent: name, max: 1) + try self.validate(self.payloadFieldNameSeparator, name: "payloadFieldNameSeparator", parent: name, min: 1) + try self.validate(self.pluginId, name: "pluginId", parent: name, max: 36) + try self.validate(self.pluginId, name: "pluginId", parent: name, min: 36) + try self.validate(self.pluginId, name: "pluginId", parent: name, pattern: "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$") + } + + private enum CodingKeys: String, CodingKey { + case payload = "payload" + case payloadFieldNameSeparator = "payloadFieldNameSeparator" + case pluginId = "pluginId" + } + } + public struct ActionExecutionPayloadField: AWSEncodableShape & AWSDecodableShape { /// The content of a user input field in an plugin action execution payload. public let value: String @@ -736,7 +972,7 @@ extension QBusiness { } public struct ActionReview: AWSDecodableShape { - /// Field values that an end user needs to provide to Amazon Q for Amazon Q to perform the requested plugin action. + /// Field values that an end user needs to provide to Amazon Q Business for Amazon Q Business to perform the requested plugin action. public let payload: [String: ActionReviewPayloadField]? /// A string used to retain information about the hierarchical contexts within an action review payload. public let payloadFieldNameSeparator: String? @@ -760,9 +996,50 @@ extension QBusiness { } } + public struct ActionReviewEvent: AWSDecodableShape { + /// The identifier of the conversation with which the action review event is associated. + public let conversationId: String? + /// Field values that an end user needs to provide to Amazon Q Business for Amazon Q Business to perform the requested plugin action. + public let payload: [String: ActionReviewPayloadField]? + /// A string used to retain information about the hierarchical contexts within an action review event payload. + public let payloadFieldNameSeparator: String? + /// The identifier of the plugin associated with the action review event. + public let pluginId: String? + /// The type of plugin. + public let pluginType: PluginType? + /// The identifier of an Amazon Q Business AI generated associated with the action review event. + public let systemMessageId: String? + /// The identifier of the conversation with which the plugin action is associated. + public let userMessageId: String? + + public init(conversationId: String? = nil, payload: [String: ActionReviewPayloadField]? = nil, payloadFieldNameSeparator: String? = nil, pluginId: String? = nil, pluginType: PluginType? = nil, systemMessageId: String? = nil, userMessageId: String? = nil) { + self.conversationId = conversationId + self.payload = payload + self.payloadFieldNameSeparator = payloadFieldNameSeparator + self.pluginId = pluginId + self.pluginType = pluginType + self.systemMessageId = systemMessageId + self.userMessageId = userMessageId + } + + private enum CodingKeys: String, CodingKey { + case conversationId = "conversationId" + case payload = "payload" + case payloadFieldNameSeparator = "payloadFieldNameSeparator" + case pluginId = "pluginId" + case pluginType = "pluginType" + case systemMessageId = "systemMessageId" + case userMessageId = "userMessageId" + } + } + public struct ActionReviewPayloadField: AWSDecodableShape { - /// Information about the field values that an end user can use to provide to Amazon Q for Amazon Q to perform the requested plugin action. + /// The expected data format for the action review input field value. For example, in PTO request, from and to would be of datetime allowed format. + public let allowedFormat: String? + /// Information about the field values that an end user can use to provide to Amazon Q Business for Amazon Q Business to perform the requested plugin action. public let allowedValues: [ActionReviewPayloadFieldAllowedValue]? + /// The field level description of each action review input field. This could be an explanation of the field. In the Amazon Q Business web experience, these descriptions could be used to display as tool tips to help users understand the field. + public let displayDescription: String? /// The name of the field. public let displayName: String? /// The display order of fields in a payload. @@ -774,8 +1051,10 @@ extension QBusiness { /// The field value. public let value: String? - public init(allowedValues: [ActionReviewPayloadFieldAllowedValue]? = nil, displayName: String? = nil, displayOrder: Int? = nil, required: Bool? = nil, type: ActionPayloadFieldType? = nil, value: String? = nil) { + public init(allowedFormat: String? = nil, allowedValues: [ActionReviewPayloadFieldAllowedValue]? = nil, displayDescription: String? = nil, displayName: String? = nil, displayOrder: Int? = nil, required: Bool? = nil, type: ActionPayloadFieldType? = nil, value: String? = nil) { + self.allowedFormat = allowedFormat self.allowedValues = allowedValues + self.displayDescription = displayDescription self.displayName = displayName self.displayOrder = displayOrder self.required = required @@ -784,7 +1063,9 @@ extension QBusiness { } private enum CodingKeys: String, CodingKey { + case allowedFormat = "allowedFormat" case allowedValues = "allowedValues" + case displayDescription = "displayDescription" case displayName = "displayName" case displayOrder = "displayOrder" case required = "required" @@ -811,15 +1092,15 @@ extension QBusiness { } public struct Application: AWSDecodableShape { - /// The identifier for the Amazon Q application. + /// The identifier for the Amazon Q Business application. public let applicationId: String? - /// The Unix timestamp when the Amazon Q application was created. + /// The Unix timestamp when the Amazon Q Business application was created. public let createdAt: Date? - /// The name of the Amazon Q application. + /// The name of the Amazon Q Business application. public let displayName: String? - /// The status of the Amazon Q application. The application is ready to use when the status is ACTIVE. + /// The status of the Amazon Q Business application. The application is ready to use when the status is ACTIVE. public let status: ApplicationStatus? - /// The Unix timestamp when the Amazon Q application was last updated. + /// The Unix timestamp when the Amazon Q Business application was last updated. public let updatedAt: Date? public init(applicationId: String? = nil, createdAt: Date? = nil, displayName: String? = nil, status: ApplicationStatus? = nil, updatedAt: Date? = nil) { @@ -852,6 +1133,19 @@ extension QBusiness { } } + public struct AppliedCreatorModeConfiguration: AWSDecodableShape { + /// Information about whether creator mode is enabled or disabled for an Amazon Q Business application. + public let creatorModeControl: CreatorModeControl + + public init(creatorModeControl: CreatorModeControl) { + self.creatorModeControl = creatorModeControl + } + + private enum CodingKeys: String, CodingKey { + case creatorModeControl = "creatorModeControl" + } + } + public struct AttachmentInput: AWSEncodableShape { /// The data contained within the uploaded file. public let data: AWSBase64Data @@ -875,6 +1169,22 @@ extension QBusiness { } } + public struct AttachmentInputEvent: AWSEncodableShape { + public let attachment: AttachmentInput? + + public init(attachment: AttachmentInput? = nil) { + self.attachment = attachment + } + + public func validate(name: String) throws { + try self.attachment?.validate(name: "\(name).attachment") + } + + private enum CodingKeys: String, CodingKey { + case attachment = "attachment" + } + } + public struct AttachmentOutput: AWSDecodableShape { /// An error associated with a file uploaded during chat. public let error: ErrorDetail? @@ -912,19 +1222,19 @@ extension QBusiness { public final class AttributeFilter: AWSEncodableShape { /// Performs a logical AND operation on all supplied filters. public let andAllFilters: [AttributeFilter]? - /// Returns true when a document contains all the specified document attributes or metadata fields. + /// Returns true when a document contains all the specified document attributes or metadata fields. Supported for the following document attribute value types: stringListValue. public let containsAll: DocumentAttribute? - /// Returns true when a document contains any of the specified document attributes or metadata fields. + /// Returns true when a document contains any of the specified document attributes or metadata fields. Supported for the following document attribute value types: dateValue, longValue, stringListValue and stringValue. public let containsAny: DocumentAttribute? - /// Performs an equals operation on two document attributes or metadata fields. + /// Performs an equals operation on two document attributes or metadata fields. Supported for the following document attribute value types: dateValue, longValue, stringListValue and stringValue. public let equalsTo: DocumentAttribute? - /// Performs a greater than operation on two document attributes or metadata fields. Use with a document attribute of type Date or Long. + /// Performs a greater than operation on two document attributes or metadata fields. Supported for the following document attribute value types: dateValue and longValue. public let greaterThan: DocumentAttribute? - /// Performs a greater or equals than operation on two document attributes or metadata fields. Use with a document attribute of type Date or Long. + /// Performs a greater or equals than operation on two document attributes or metadata fields. Supported for the following document attribute value types: dateValue and longValue. public let greaterThanOrEquals: DocumentAttribute? - /// Performs a less than operation on two document attributes or metadata fields. Use with a document attribute of type Date or Long. + /// Performs a less than operation on two document attributes or metadata fields. Supported for the following document attribute value types: dateValue and longValue. public let lessThan: DocumentAttribute? - /// Performs a less than or equals operation on two document attributes or metadata fields. Use with a document attribute of type Date or Long. + /// Performs a less than or equals operation on two document attributes or metadata fields.Supported for the following document attribute value type: dateValue and longValue. public let lessThanOrEquals: DocumentAttribute? /// Performs a logical NOT operation on all supplied filters. public let notFilter: AttributeFilter? @@ -975,8 +1285,78 @@ extension QBusiness { } } + public struct AuthChallengeRequest: AWSDecodableShape { + /// The URL sent by Amazon Q Business to the third party authentication server to authenticate a custom plugin user through an OAuth protocol. + public let authorizationUrl: String + + public init(authorizationUrl: String) { + self.authorizationUrl = authorizationUrl + } + + private enum CodingKeys: String, CodingKey { + case authorizationUrl = "authorizationUrl" + } + } + + public struct AuthChallengeRequestEvent: AWSDecodableShape { + /// The URL sent by Amazon Q Business to a third party authentication server in response to an authentication verification event activated by an end user request to use a custom plugin. + public let authorizationUrl: String + + public init(authorizationUrl: String) { + self.authorizationUrl = authorizationUrl + } + + private enum CodingKeys: String, CodingKey { + case authorizationUrl = "authorizationUrl" + } + } + + public struct AuthChallengeResponse: AWSEncodableShape { + /// The mapping of key-value pairs in an authentication challenge response. + public let responseMap: [String: String] + + public init(responseMap: [String: String]) { + self.responseMap = responseMap + } + + public func validate(name: String) throws { + try self.responseMap.forEach { + try validate($0.key, name: "responseMap.key", parent: name, max: 100) + try validate($0.key, name: "responseMap.key", parent: name, min: 1) + try validate($0.value, name: "responseMap[\"\($0.key)\"]", parent: name, max: 2048) + try validate($0.value, name: "responseMap[\"\($0.key)\"]", parent: name, min: 1) + } + } + + private enum CodingKeys: String, CodingKey { + case responseMap = "responseMap" + } + } + + public struct AuthChallengeResponseEvent: AWSEncodableShape { + /// The mapping of key-value pairs in an authentication challenge response. + public let responseMap: [String: String] + + public init(responseMap: [String: String]) { + self.responseMap = responseMap + } + + public func validate(name: String) throws { + try self.responseMap.forEach { + try validate($0.key, name: "responseMap.key", parent: name, max: 100) + try validate($0.key, name: "responseMap.key", parent: name, min: 1) + try validate($0.value, name: "responseMap[\"\($0.key)\"]", parent: name, max: 2048) + try validate($0.value, name: "responseMap[\"\($0.key)\"]", parent: name, min: 1) + } + } + + private enum CodingKeys: String, CodingKey { + case responseMap = "responseMap" + } + } + public struct BasicAuthConfiguration: AWSEncodableShape & AWSDecodableShape { - /// The ARN of an IAM role used by Amazon Q to access the basic authentication credentials stored in a Secrets Manager secret. + /// The ARN of an IAM role used by Amazon Q Business to access the basic authentication credentials stored in a Secrets Manager secret. public let roleArn: String /// The ARN of the Secrets Manager secret that stores the basic authentication credentials used for plugin configuration.. public let secretArn: String @@ -1000,13 +1380,13 @@ extension QBusiness { } public struct BatchDeleteDocumentRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application. + /// The identifier of the Amazon Q Business application. public let applicationId: String /// The identifier of the data source sync during which the documents were deleted. public let dataSourceSyncId: String? - /// Documents deleted from the Amazon Q index. + /// Documents deleted from the Amazon Q Business index. public let documents: [DeleteDocument] - /// The identifier of the Amazon Q index that contains the documents to delete. + /// The identifier of the Amazon Q Business index that contains the documents to delete. public let indexId: String public init(applicationId: String, dataSourceSyncId: String? = nil, documents: [DeleteDocument], indexId: String) { @@ -1047,7 +1427,7 @@ extension QBusiness { } public struct BatchDeleteDocumentResponse: AWSDecodableShape { - /// A list of documents that couldn't be removed from the Amazon Q index. Each entry contains an error message that indicates why the document couldn't be removed from the index. + /// A list of documents that couldn't be removed from the Amazon Q Business index. Each entry contains an error message that indicates why the document couldn't be removed from the index. public let failedDocuments: [FailedDocument]? public init(failedDocuments: [FailedDocument]? = nil) { @@ -1060,13 +1440,13 @@ extension QBusiness { } public struct BatchPutDocumentRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application. + /// The identifier of the Amazon Q Business application. public let applicationId: String /// The identifier of the data source sync during which the documents were added. public let dataSourceSyncId: String? /// One or more documents to add to the index. public let documents: [Document] - /// The identifier of the Amazon Q index to add the documents to. + /// The identifier of the Amazon Q Business index to add the documents to. public let indexId: String /// The Amazon Resource Name (ARN) of an IAM role with permission to access your S3 bucket. public let roleArn: String? @@ -1116,7 +1496,7 @@ extension QBusiness { } public struct BatchPutDocumentResponse: AWSDecodableShape { - /// A list of documents that were not added to the Amazon Q index because the document failed a validation check. Each document contains an error message that indicates why the document couldn't be added to the index. + /// A list of documents that were not added to the Amazon Q Business index because the document failed a validation check. Each document contains an error message that indicates why the document couldn't be added to the index. public let failedDocuments: [FailedDocument]? public init(failedDocuments: [FailedDocument]? = nil) { @@ -1129,7 +1509,7 @@ extension QBusiness { } public struct BlockedPhrasesConfiguration: AWSDecodableShape { - /// A list of phrases blocked from a Amazon Q web experience chat. + /// A list of phrases blocked from a Amazon Q Business web experience chat. public let blockedPhrases: [String]? /// The configured custom message displayed to an end user informing them that they've used a blocked phrase during chat. public let systemMessageOverride: String? @@ -1146,9 +1526,9 @@ extension QBusiness { } public struct BlockedPhrasesConfigurationUpdate: AWSEncodableShape { - /// Creates or updates a blocked phrases configuration in your Amazon Q application. + /// Creates or updates a blocked phrases configuration in your Amazon Q Business application. public let blockedPhrasesToCreateOrUpdate: [String]? - /// Deletes a blocked phrases configuration in your Amazon Q application. + /// Deletes a blocked phrases configuration in your Amazon Q Business application. public let blockedPhrasesToDelete: [String]? /// The configured custom message displayed to your end user when they use blocked phrase during chat. public let systemMessageOverride: String? @@ -1181,33 +1561,121 @@ extension QBusiness { } } + public struct ChatInput: AWSEncodableShape { + /// The identifier of the Amazon Q Business application linked to a streaming Amazon Q Business conversation. + public let applicationId: String + /// A token that you provide to identify the chat input. + public let clientToken: String? + /// The identifier of the Amazon Q Business conversation. + public let conversationId: String? + /// The streaming input for the Chat API. + public let inputStream: AWSEventStream? + /// The identifier used to associate a user message with a AI generated response. + public let parentMessageId: String? + /// The groups that a user associated with the chat input belongs to. + public let userGroups: [String]? + /// The identifier of the user attached to the chat input. + public let userId: String? + + public init(applicationId: String, clientToken: String? = ChatInput.idempotencyToken(), conversationId: String? = nil, inputStream: AWSEventStream? = nil, parentMessageId: String? = nil, userGroups: [String]? = nil, userId: String? = nil) { + self.applicationId = applicationId + self.clientToken = clientToken + self.conversationId = conversationId + self.inputStream = inputStream + self.parentMessageId = parentMessageId + self.userGroups = userGroups + self.userId = userId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.singleValueContainer() + request.encodePath(self.applicationId, key: "applicationId") + request.encodeQuery(self.clientToken, key: "clientToken") + request.encodeQuery(self.conversationId, key: "conversationId") + try container.encode(self.inputStream) + request.encodeQuery(self.parentMessageId, key: "parentMessageId") + request.encodeQuery(self.userGroups, key: "userGroups") + request.encodeQuery(self.userId, key: "userId") + } + + public func validate(name: String) throws { + try self.validate(self.applicationId, name: "applicationId", parent: name, max: 36) + try self.validate(self.applicationId, name: "applicationId", parent: name, min: 36) + try self.validate(self.applicationId, name: "applicationId", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$") + try self.validate(self.clientToken, name: "clientToken", parent: name, max: 100) + try self.validate(self.clientToken, name: "clientToken", parent: name, min: 1) + try self.validate(self.conversationId, name: "conversationId", parent: name, max: 36) + try self.validate(self.conversationId, name: "conversationId", parent: name, min: 36) + try self.validate(self.conversationId, name: "conversationId", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$") + try self.validate(self.parentMessageId, name: "parentMessageId", parent: name, max: 36) + try self.validate(self.parentMessageId, name: "parentMessageId", parent: name, min: 36) + try self.validate(self.parentMessageId, name: "parentMessageId", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$") + try self.userGroups?.forEach { + try validate($0, name: "userGroups[]", parent: name, max: 2048) + try validate($0, name: "userGroups[]", parent: name, min: 1) + } + try self.validate(self.userId, name: "userId", parent: name, max: 1024) + try self.validate(self.userId, name: "userId", parent: name, min: 1) + try self.validate(self.userId, name: "userId", parent: name, pattern: "^\\P{C}*$") + } + + private enum CodingKeys: CodingKey {} + } + + public struct ChatOutput: AWSDecodableShape { + public static let _options: AWSShapeOptions = [.rawPayload] + /// The streaming output for the Chat API. + public let outputStream: AWSEventStream + + public init(outputStream: AWSEventStream) { + self.outputStream = outputStream + } + + public init(from decoder: Decoder) throws { + let container = try decoder.singleValueContainer() + self.outputStream = try container.decode(AWSEventStream.self) + } + + private enum CodingKeys: CodingKey {} + } + public struct ChatSyncInput: AWSEncodableShape { - /// A request from an end user to perform an Amazon Q plugin action. + /// A request from an end user to perform an Amazon Q Business plugin action. public let actionExecution: ActionExecution? - /// The identifier of the Amazon Q application linked to the Amazon Q conversation. + /// The identifier of the Amazon Q Business application linked to the Amazon Q Business conversation. public let applicationId: String /// A list of files uploaded directly during chat. You can upload a maximum of 5 files of upto 10 MB each. public let attachments: [AttachmentInput]? - /// Enables filtering of Amazon Q web experience responses based on document attributes or metadata fields. + /// Enables filtering of Amazon Q Business web experience responses based on document attributes or metadata fields. public let attributeFilter: AttributeFilter? + /// An authentication verification event response by a third party authentication server to Amazon Q Business. + public let authChallengeResponse: AuthChallengeResponse? + /// The chat modes available to an Amazon Q Business end user. RETRIEVAL_MODE - The default chat mode for an Amazon Q Business application. When this mode is enabled, Amazon Q Business generates responses only from data sources connected to an Amazon Q Business application. CREATOR_MODE - By selecting this mode, users can choose to generate responses only from the LLM knowledge, without consulting connected data sources, for a chat request. PLUGIN_MODE - By selecting this mode, users can choose to use plugins in chat. For more information, see Admin controls and guardrails, Plugins, and Conversation settings. + public let chatMode: ChatMode? + /// The chat mode configuration for an Amazon Q Business application. + public let chatModeConfiguration: ChatModeConfiguration? /// A token that you provide to identify a chat request. public let clientToken: String? - /// The identifier of the Amazon Q conversation. + /// The identifier of the Amazon Q Business conversation. public let conversationId: String? /// The identifier of the previous end user text input message in a conversation. public let parentMessageId: String? /// The groups that a user associated with the chat input belongs to. public let userGroups: [String]? /// The identifier of the user attached to the chat input. - public let userId: String + public let userId: String? /// A end user message in a conversation. public let userMessage: String? - public init(actionExecution: ActionExecution? = nil, applicationId: String, attachments: [AttachmentInput]? = nil, attributeFilter: AttributeFilter? = nil, clientToken: String? = ChatSyncInput.idempotencyToken(), conversationId: String? = nil, parentMessageId: String? = nil, userGroups: [String]? = nil, userId: String, userMessage: String? = nil) { + public init(actionExecution: ActionExecution? = nil, applicationId: String, attachments: [AttachmentInput]? = nil, attributeFilter: AttributeFilter? = nil, authChallengeResponse: AuthChallengeResponse? = nil, chatMode: ChatMode? = nil, chatModeConfiguration: ChatModeConfiguration? = nil, clientToken: String? = ChatSyncInput.idempotencyToken(), conversationId: String? = nil, parentMessageId: String? = nil, userGroups: [String]? = nil, userId: String? = nil, userMessage: String? = nil) { self.actionExecution = actionExecution self.applicationId = applicationId self.attachments = attachments self.attributeFilter = attributeFilter + self.authChallengeResponse = authChallengeResponse + self.chatMode = chatMode + self.chatModeConfiguration = chatModeConfiguration self.clientToken = clientToken self.conversationId = conversationId self.parentMessageId = parentMessageId @@ -1223,6 +1691,9 @@ extension QBusiness { request.encodePath(self.applicationId, key: "applicationId") try container.encodeIfPresent(self.attachments, forKey: .attachments) try container.encodeIfPresent(self.attributeFilter, forKey: .attributeFilter) + try container.encodeIfPresent(self.authChallengeResponse, forKey: .authChallengeResponse) + try container.encodeIfPresent(self.chatMode, forKey: .chatMode) + try container.encodeIfPresent(self.chatModeConfiguration, forKey: .chatModeConfiguration) try container.encodeIfPresent(self.clientToken, forKey: .clientToken) try container.encodeIfPresent(self.conversationId, forKey: .conversationId) try container.encodeIfPresent(self.parentMessageId, forKey: .parentMessageId) @@ -1241,6 +1712,8 @@ extension QBusiness { } try self.validate(self.attachments, name: "attachments", parent: name, min: 1) try self.attributeFilter?.validate(name: "\(name).attributeFilter") + try self.authChallengeResponse?.validate(name: "\(name).authChallengeResponse") + try self.chatModeConfiguration?.validate(name: "\(name).chatModeConfiguration") try self.validate(self.clientToken, name: "clientToken", parent: name, max: 100) try self.validate(self.clientToken, name: "clientToken", parent: name, min: 1) try self.validate(self.conversationId, name: "conversationId", parent: name, max: 36) @@ -1264,6 +1737,9 @@ extension QBusiness { case actionExecution = "actionExecution" case attachments = "attachments" case attributeFilter = "attributeFilter" + case authChallengeResponse = "authChallengeResponse" + case chatMode = "chatMode" + case chatModeConfiguration = "chatModeConfiguration" case clientToken = "clientToken" case conversationId = "conversationId" case parentMessageId = "parentMessageId" @@ -1272,9 +1748,11 @@ extension QBusiness { } public struct ChatSyncOutput: AWSDecodableShape { - /// A request from Amazon Q to the end user for information Amazon Q needs to successfully complete a requested plugin action. + /// A request from Amazon Q Business to the end user for information Amazon Q Business needs to successfully complete a requested plugin action. public let actionReview: ActionReview? - /// The identifier of the Amazon Q conversation. + /// An authentication verification event activated by an end user request to use a custom plugin. + public let authChallengeRequest: AuthChallengeRequest? + /// The identifier of the Amazon Q Business conversation. public let conversationId: String? /// A list of files which failed to upload during chat. public let failedAttachments: [AttachmentOutput]? @@ -1282,13 +1760,14 @@ extension QBusiness { public let sourceAttributions: [SourceAttribution]? /// An AI-generated message in a conversation. public let systemMessage: String? - /// The identifier of an Amazon Q AI generated message within the conversation. + /// The identifier of an Amazon Q Business AI generated message within the conversation. public let systemMessageId: String? - /// The identifier of an Amazon Q end user text input message within the conversation. + /// The identifier of an Amazon Q Business end user text input message within the conversation. public let userMessageId: String? - public init(actionReview: ActionReview? = nil, conversationId: String? = nil, failedAttachments: [AttachmentOutput]? = nil, sourceAttributions: [SourceAttribution]? = nil, systemMessage: String? = nil, systemMessageId: String? = nil, userMessageId: String? = nil) { + public init(actionReview: ActionReview? = nil, authChallengeRequest: AuthChallengeRequest? = nil, conversationId: String? = nil, failedAttachments: [AttachmentOutput]? = nil, sourceAttributions: [SourceAttribution]? = nil, systemMessage: String? = nil, systemMessageId: String? = nil, userMessageId: String? = nil) { self.actionReview = actionReview + self.authChallengeRequest = authChallengeRequest self.conversationId = conversationId self.failedAttachments = failedAttachments self.sourceAttributions = sourceAttributions @@ -1299,6 +1778,7 @@ extension QBusiness { private enum CodingKeys: String, CodingKey { case actionReview = "actionReview" + case authChallengeRequest = "authChallengeRequest" case conversationId = "conversationId" case failedAttachments = "failedAttachments" case sourceAttributions = "sourceAttributions" @@ -1308,6 +1788,30 @@ extension QBusiness { } } + public struct ConfigurationEvent: AWSEncodableShape { + public let attributeFilter: AttributeFilter? + /// The chat modes available to an Amazon Q Business end user. RETRIEVAL_MODE - The default chat mode for an Amazon Q Business application. When this mode is enabled, Amazon Q Business generates responses only from data sources connected to an Amazon Q Business application. CREATOR_MODE - By selecting this mode, users can choose to generate responses only from the LLM knowledge, without consulting connected data sources, for a chat request. PLUGIN_MODE - By selecting this mode, users can choose to use plugins in chat. For more information, see Admin controls and guardrails, Plugins, and Conversation settings. + public let chatMode: ChatMode? + public let chatModeConfiguration: ChatModeConfiguration? + + public init(attributeFilter: AttributeFilter? = nil, chatMode: ChatMode? = nil, chatModeConfiguration: ChatModeConfiguration? = nil) { + self.attributeFilter = attributeFilter + self.chatMode = chatMode + self.chatModeConfiguration = chatModeConfiguration + } + + public func validate(name: String) throws { + try self.attributeFilter?.validate(name: "\(name).attributeFilter") + try self.chatModeConfiguration?.validate(name: "\(name).chatModeConfiguration") + } + + private enum CodingKeys: String, CodingKey { + case attributeFilter = "attributeFilter" + case chatMode = "chatMode" + case chatModeConfiguration = "chatModeConfiguration" + } + } + public struct ContentBlockerRule: AWSEncodableShape & AWSDecodableShape { /// The configured custom message displayed to an end user informing them that they've used a blocked phrase during chat. public let systemMessageOverride: String? @@ -1327,7 +1831,7 @@ extension QBusiness { } public struct ContentRetrievalRule: AWSEncodableShape & AWSDecodableShape { - /// Specifies data sources in a Amazon Q application to use for content generation. + /// Specifies data sources in a Amazon Q Business application to use for content generation. public let eligibleDataSources: [EligibleDataSource]? public init(eligibleDataSources: [EligibleDataSource]? = nil) { @@ -1347,7 +1851,7 @@ extension QBusiness { } public struct Conversation: AWSDecodableShape { - /// The identifier of the Amazon Q conversation. + /// The identifier of the Amazon Q Business conversation. public let conversationId: String? /// The start time of the conversation. public let startTime: Date? @@ -1370,25 +1874,28 @@ extension QBusiness { public struct CreateApplicationRequest: AWSEncodableShape { /// An option to allow end users to upload files directly during chat. public let attachmentsConfiguration: AttachmentsConfiguration? - /// A token that you provide to identify the request to create your Amazon Q application. + /// A token that you provide to identify the request to create your Amazon Q Business application. public let clientToken: String? - /// A description for the Amazon Q application. + /// A description for the Amazon Q Business application. public let description: String? - /// A name for the Amazon Q application. + /// A name for the Amazon Q Business application. public let displayName: String - /// The identifier of the KMS key that is used to encrypt your data. Amazon Q doesn't support asymmetric keys. + /// The identifier of the KMS key that is used to encrypt your data. Amazon Q Business doesn't support asymmetric keys. public let encryptionConfiguration: EncryptionConfiguration? + /// The Amazon Resource Name (ARN) of the IAM Identity Center instance you are either creating for—or connecting to—your Amazon Q Business application. + public let identityCenterInstanceArn: String? /// The Amazon Resource Name (ARN) of an IAM role with permissions to access your Amazon CloudWatch logs and metrics. - public let roleArn: String - /// A list of key-value pairs that identify or categorize your Amazon Q application. You can also use tags to help control access to the application. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @. + public let roleArn: String? + /// A list of key-value pairs that identify or categorize your Amazon Q Business application. You can also use tags to help control access to the application. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @. public let tags: [Tag]? - public init(attachmentsConfiguration: AttachmentsConfiguration? = nil, clientToken: String? = CreateApplicationRequest.idempotencyToken(), description: String? = nil, displayName: String, encryptionConfiguration: EncryptionConfiguration? = nil, roleArn: String, tags: [Tag]? = nil) { + public init(attachmentsConfiguration: AttachmentsConfiguration? = nil, clientToken: String? = CreateApplicationRequest.idempotencyToken(), description: String? = nil, displayName: String, encryptionConfiguration: EncryptionConfiguration? = nil, identityCenterInstanceArn: String? = nil, roleArn: String? = nil, tags: [Tag]? = nil) { self.attachmentsConfiguration = attachmentsConfiguration self.clientToken = clientToken self.description = description self.displayName = displayName self.encryptionConfiguration = encryptionConfiguration + self.identityCenterInstanceArn = identityCenterInstanceArn self.roleArn = roleArn self.tags = tags } @@ -1402,6 +1909,9 @@ extension QBusiness { try self.validate(self.displayName, name: "displayName", parent: name, min: 1) try self.validate(self.displayName, name: "displayName", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$") try self.encryptionConfiguration?.validate(name: "\(name).encryptionConfiguration") + try self.validate(self.identityCenterInstanceArn, name: "identityCenterInstanceArn", parent: name, max: 1224) + try self.validate(self.identityCenterInstanceArn, name: "identityCenterInstanceArn", parent: name, min: 10) + try self.validate(self.identityCenterInstanceArn, name: "identityCenterInstanceArn", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$") try self.validate(self.roleArn, name: "roleArn", parent: name, max: 1284) try self.validate(self.roleArn, name: "roleArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") try self.tags?.forEach { @@ -1416,15 +1926,16 @@ extension QBusiness { case description = "description" case displayName = "displayName" case encryptionConfiguration = "encryptionConfiguration" + case identityCenterInstanceArn = "identityCenterInstanceArn" case roleArn = "roleArn" case tags = "tags" } } public struct CreateApplicationResponse: AWSDecodableShape { - /// The Amazon Resource Name (ARN) of the Amazon Q application. + /// The Amazon Resource Name (ARN) of the Amazon Q Business application. public let applicationArn: String? - /// The identifier of the Amazon Q application. + /// The identifier of the Amazon Q Business application. public let applicationId: String? public init(applicationArn: String? = nil, applicationId: String? = nil) { @@ -1439,7 +1950,7 @@ extension QBusiness { } public struct CreateDataSourceRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application the data source will be attached to. + /// The identifier of the Amazon Q Business application the data source will be attached to. public let applicationId: String /// A token you provide to identify a request to create a data source connector. Multiple calls to the CreateDataSource API with the same client token will create only one data source connector. public let clientToken: String? @@ -1454,11 +1965,11 @@ extension QBusiness { public let indexId: String /// The Amazon Resource Name (ARN) of an IAM role with permission to access the data source and required resources. public let roleArn: String? - /// Sets the frequency for Amazon Q to check the documents in your data source repository and update your index. If you don't set a schedule, Amazon Q won't periodically update the index. Specify a cron- format schedule string or an empty string to indicate that the index is updated on demand. You can't specify the Schedule parameter when the Type parameter is set to CUSTOM. If you do, you receive a ValidationException exception. + /// Sets the frequency for Amazon Q Business to check the documents in your data source repository and update your index. If you don't set a schedule, Amazon Q Business won't periodically update the index. Specify a cron- format schedule string or an empty string to indicate that the index is updated on demand. You can't specify the Schedule parameter when the Type parameter is set to CUSTOM. If you do, you receive a ValidationException exception. public let syncSchedule: String? /// A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @. public let tags: [Tag]? - /// Configuration information for an Amazon VPC (Virtual Private Cloud) to connect to your data source. For more information, see Using Amazon VPC with Amazon Q connectors. + /// Configuration information for an Amazon VPC (Virtual Private Cloud) to connect to your data source. For more information, see Using Amazon VPC with Amazon Q Business connectors. public let vpcConfiguration: DataSourceVpcConfiguration? public init(applicationId: String, clientToken: String? = CreateDataSourceRequest.idempotencyToken(), configuration: String, description: String? = nil, displayName: String, documentEnrichmentConfiguration: DocumentEnrichmentConfiguration? = nil, indexId: String, roleArn: String? = nil, syncSchedule: String? = nil, tags: [Tag]? = nil, vpcConfiguration: DataSourceVpcConfiguration? = nil) { @@ -1531,7 +2042,7 @@ extension QBusiness { } public struct CreateDataSourceResponse: AWSDecodableShape { - /// The Amazon Resource Name (ARN) of a data source in an Amazon Q application. + /// The Amazon Resource Name (ARN) of a data source in an Amazon Q Business application. public let dataSourceArn: String? /// The identifier of the data source connector. public let dataSourceId: String? @@ -1548,26 +2059,29 @@ extension QBusiness { } public struct CreateIndexRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application using the index. + /// The identifier of the Amazon Q Business application using the index. public let applicationId: String /// The capacity units you want to provision for your index. You can add and remove capacity to fit your usage needs. public let capacityConfiguration: IndexCapacityConfiguration? /// A token that you provide to identify the request to create an index. Multiple calls to the CreateIndex API with the same client token will create only one index. public let clientToken: String? - /// A description for the Amazon Q index. + /// A description for the Amazon Q Business index. public let description: String? - /// A name for the Amazon Q index. + /// A name for the Amazon Q Business index. public let displayName: String /// A list of key-value pairs that identify or categorize the index. You can also use tags to help control access to the index. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @. public let tags: [Tag]? + /// The index type that's suitable for your needs. For more information on what's included in each type of index or index tier, see Amazon Q Business tiers. + public let type: IndexType? - public init(applicationId: String, capacityConfiguration: IndexCapacityConfiguration? = nil, clientToken: String? = CreateIndexRequest.idempotencyToken(), description: String? = nil, displayName: String, tags: [Tag]? = nil) { + public init(applicationId: String, capacityConfiguration: IndexCapacityConfiguration? = nil, clientToken: String? = CreateIndexRequest.idempotencyToken(), description: String? = nil, displayName: String, tags: [Tag]? = nil, type: IndexType? = nil) { self.applicationId = applicationId self.capacityConfiguration = capacityConfiguration self.clientToken = clientToken self.description = description self.displayName = displayName self.tags = tags + self.type = type } public func encode(to encoder: Encoder) throws { @@ -1579,6 +2093,7 @@ extension QBusiness { try container.encodeIfPresent(self.description, forKey: .description) try container.encode(self.displayName, forKey: .displayName) try container.encodeIfPresent(self.tags, forKey: .tags) + try container.encodeIfPresent(self.type, forKey: .type) } public func validate(name: String) throws { @@ -1605,13 +2120,14 @@ extension QBusiness { case description = "description" case displayName = "displayName" case tags = "tags" + case type = "type" } } public struct CreateIndexResponse: AWSDecodableShape { - /// The Amazon Resource Name (ARN) of an Amazon Q index. + /// The Amazon Resource Name (ARN) of an Amazon Q Business index. public let indexArn: String? - /// The identifier for the Amazon Q index. + /// The identifier for the Amazon Q Business index. public let indexId: String? public init(indexArn: String? = nil, indexId: String? = nil) { @@ -1629,21 +2145,24 @@ extension QBusiness { /// The identifier of the application that will contain the plugin. public let applicationId: String public let authConfiguration: PluginAuthConfiguration - /// A token that you provide to identify the request to create your Amazon Q plugin. + /// A token that you provide to identify the request to create your Amazon Q Business plugin. public let clientToken: String? + /// Contains configuration for a custom plugin. + public let customPluginConfiguration: CustomPluginConfiguration? /// A the name for your plugin. public let displayName: String /// The source URL used for plugin configuration. - public let serverUrl: String + public let serverUrl: String? /// A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @. public let tags: [Tag]? /// The type of plugin you want to create. public let type: PluginType - public init(applicationId: String, authConfiguration: PluginAuthConfiguration, clientToken: String? = CreatePluginRequest.idempotencyToken(), displayName: String, serverUrl: String, tags: [Tag]? = nil, type: PluginType) { + public init(applicationId: String, authConfiguration: PluginAuthConfiguration, clientToken: String? = CreatePluginRequest.idempotencyToken(), customPluginConfiguration: CustomPluginConfiguration? = nil, displayName: String, serverUrl: String? = nil, tags: [Tag]? = nil, type: PluginType) { self.applicationId = applicationId self.authConfiguration = authConfiguration self.clientToken = clientToken + self.customPluginConfiguration = customPluginConfiguration self.displayName = displayName self.serverUrl = serverUrl self.tags = tags @@ -1656,8 +2175,9 @@ extension QBusiness { request.encodePath(self.applicationId, key: "applicationId") try container.encode(self.authConfiguration, forKey: .authConfiguration) try container.encodeIfPresent(self.clientToken, forKey: .clientToken) + try container.encodeIfPresent(self.customPluginConfiguration, forKey: .customPluginConfiguration) try container.encode(self.displayName, forKey: .displayName) - try container.encode(self.serverUrl, forKey: .serverUrl) + try container.encodeIfPresent(self.serverUrl, forKey: .serverUrl) try container.encodeIfPresent(self.tags, forKey: .tags) try container.encode(self.type, forKey: .type) } @@ -1669,6 +2189,7 @@ extension QBusiness { try self.authConfiguration.validate(name: "\(name).authConfiguration") try self.validate(self.clientToken, name: "clientToken", parent: name, max: 100) try self.validate(self.clientToken, name: "clientToken", parent: name, min: 1) + try self.customPluginConfiguration?.validate(name: "\(name).customPluginConfiguration") try self.validate(self.displayName, name: "displayName", parent: name, max: 100) try self.validate(self.displayName, name: "displayName", parent: name, min: 1) try self.validate(self.displayName, name: "displayName", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$") @@ -1684,6 +2205,7 @@ extension QBusiness { private enum CodingKeys: String, CodingKey { case authConfiguration = "authConfiguration" case clientToken = "clientToken" + case customPluginConfiguration = "customPluginConfiguration" case displayName = "displayName" case serverUrl = "serverUrl" case tags = "tags" @@ -1692,31 +2214,35 @@ extension QBusiness { } public struct CreatePluginResponse: AWSDecodableShape { + /// The current status of a plugin. A plugin is modified asynchronously. + public let buildStatus: PluginBuildStatus? /// The Amazon Resource Name (ARN) of a plugin. public let pluginArn: String? /// The identifier of the plugin created. public let pluginId: String? - public init(pluginArn: String? = nil, pluginId: String? = nil) { + public init(buildStatus: PluginBuildStatus? = nil, pluginArn: String? = nil, pluginId: String? = nil) { + self.buildStatus = buildStatus self.pluginArn = pluginArn self.pluginId = pluginId } private enum CodingKeys: String, CodingKey { + case buildStatus = "buildStatus" case pluginArn = "pluginArn" case pluginId = "pluginId" } } public struct CreateRetrieverRequest: AWSEncodableShape { - /// The identifier of your Amazon Q application. + /// The identifier of your Amazon Q Business application. public let applicationId: String - /// A token that you provide to identify the request to create your Amazon Q application retriever. + /// A token that you provide to identify the request to create your Amazon Q Business application retriever. public let clientToken: String? public let configuration: RetrieverConfiguration /// The name of your retriever. public let displayName: String - /// The ARN of an IAM role used by Amazon Q to access the basic authentication credentials stored in a Secrets Manager secret. + /// The ARN of an IAM role used by Amazon Q Business to access the basic authentication credentials stored in a Secrets Manager secret. public let roleArn: String? /// A list of key-value pairs that identify or categorize the retriever. You can also use tags to help control access to the retriever. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @. public let tags: [Tag]? @@ -1793,7 +2319,7 @@ extension QBusiness { public struct CreateUserRequest: AWSEncodableShape { /// The identifier of the application for which the user mapping will be created. public let applicationId: String - /// A token that you provide to identify the request to create your Amazon Q user mapping. + /// A token that you provide to identify the request to create your Amazon Q Business user mapping. public let clientToken: String? /// The list of user aliases in the mapping. public let userAliases: [UserAlias]? @@ -1841,24 +2367,27 @@ extension QBusiness { } public struct CreateWebExperienceRequest: AWSEncodableShape { - /// The identifier of the Amazon Q web experience. + /// The identifier of the Amazon Q Business web experience. public let applicationId: String - /// A token you provide to identify a request to create an Amazon Q web experience. + /// A token you provide to identify a request to create an Amazon Q Business web experience. public let clientToken: String? + /// The Amazon Resource Name (ARN) of the service role attached to your web experience. + public let roleArn: String? /// Determines whether sample prompts are enabled in the web experience for an end user. public let samplePromptsControlMode: WebExperienceSamplePromptsControlMode? - /// A subtitle to personalize your Amazon Q web experience. + /// A subtitle to personalize your Amazon Q Business web experience. public let subtitle: String? - /// A list of key-value pairs that identify or categorize your Amazon Q web experience. You can also use tags to help control access to the web experience. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @. + /// A list of key-value pairs that identify or categorize your Amazon Q Business web experience. You can also use tags to help control access to the web experience. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @. public let tags: [Tag]? - /// The title for your Amazon Q web experience. + /// The title for your Amazon Q Business web experience. public let title: String? - /// The customized welcome message for end users of an Amazon Q web experience. + /// The customized welcome message for end users of an Amazon Q Business web experience. public let welcomeMessage: String? - public init(applicationId: String, clientToken: String? = CreateWebExperienceRequest.idempotencyToken(), samplePromptsControlMode: WebExperienceSamplePromptsControlMode? = nil, subtitle: String? = nil, tags: [Tag]? = nil, title: String? = nil, welcomeMessage: String? = nil) { + public init(applicationId: String, clientToken: String? = CreateWebExperienceRequest.idempotencyToken(), roleArn: String? = nil, samplePromptsControlMode: WebExperienceSamplePromptsControlMode? = nil, subtitle: String? = nil, tags: [Tag]? = nil, title: String? = nil, welcomeMessage: String? = nil) { self.applicationId = applicationId self.clientToken = clientToken + self.roleArn = roleArn self.samplePromptsControlMode = samplePromptsControlMode self.subtitle = subtitle self.tags = tags @@ -1871,6 +2400,7 @@ extension QBusiness { var container = encoder.container(keyedBy: CodingKeys.self) request.encodePath(self.applicationId, key: "applicationId") try container.encodeIfPresent(self.clientToken, forKey: .clientToken) + try container.encodeIfPresent(self.roleArn, forKey: .roleArn) try container.encodeIfPresent(self.samplePromptsControlMode, forKey: .samplePromptsControlMode) try container.encodeIfPresent(self.subtitle, forKey: .subtitle) try container.encodeIfPresent(self.tags, forKey: .tags) @@ -1884,6 +2414,8 @@ extension QBusiness { try self.validate(self.applicationId, name: "applicationId", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$") try self.validate(self.clientToken, name: "clientToken", parent: name, max: 100) try self.validate(self.clientToken, name: "clientToken", parent: name, min: 1) + try self.validate(self.roleArn, name: "roleArn", parent: name, max: 1284) + try self.validate(self.roleArn, name: "roleArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") try self.validate(self.subtitle, name: "subtitle", parent: name, max: 500) try self.validate(self.subtitle, name: "subtitle", parent: name, pattern: "^\\P{C}*$") try self.tags?.forEach { @@ -1897,6 +2429,7 @@ extension QBusiness { private enum CodingKeys: String, CodingKey { case clientToken = "clientToken" + case roleArn = "roleArn" case samplePromptsControlMode = "samplePromptsControlMode" case subtitle = "subtitle" case tags = "tags" @@ -1906,9 +2439,9 @@ extension QBusiness { } public struct CreateWebExperienceResponse: AWSDecodableShape { - /// The Amazon Resource Name (ARN) of an Amazon Q web experience. + /// The Amazon Resource Name (ARN) of an Amazon Q Business web experience. public let webExperienceArn: String? - /// The identifier of the Amazon Q web experience. + /// The identifier of the Amazon Q Business web experience. public let webExperienceId: String? public init(webExperienceArn: String? = nil, webExperienceId: String? = nil) { @@ -1922,18 +2455,58 @@ extension QBusiness { } } + public struct CreatorModeConfiguration: AWSEncodableShape { + /// Status information about whether CREATOR_MODE has been enabled or disabled. The default status is DISABLED. + public let creatorModeControl: CreatorModeControl + + public init(creatorModeControl: CreatorModeControl) { + self.creatorModeControl = creatorModeControl + } + + private enum CodingKeys: String, CodingKey { + case creatorModeControl = "creatorModeControl" + } + } + + public struct CustomPluginConfiguration: AWSEncodableShape & AWSDecodableShape { + /// Contains either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. + public let apiSchema: APISchema + /// The type of OpenAPI schema to use. + public let apiSchemaType: APISchemaType + /// A description for your custom plugin configuration. + public let description: String + + public init(apiSchema: APISchema, apiSchemaType: APISchemaType, description: String) { + self.apiSchema = apiSchema + self.apiSchemaType = apiSchemaType + self.description = description + } + + public func validate(name: String) throws { + try self.apiSchema.validate(name: "\(name).apiSchema") + try self.validate(self.description, name: "description", parent: name, max: 200) + try self.validate(self.description, name: "description", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case apiSchema = "apiSchema" + case apiSchemaType = "apiSchemaType" + case description = "description" + } + } + public struct DataSource: AWSDecodableShape { - /// The Unix timestamp when the Amazon Q data source was created. + /// The Unix timestamp when the Amazon Q Business data source was created. public let createdAt: Date? - /// The identifier of the Amazon Q data source. + /// The identifier of the Amazon Q Business data source. public let dataSourceId: String? - /// The name of the Amazon Q data source. + /// The name of the Amazon Q Business data source. public let displayName: String? - /// The status of the Amazon Q data source. + /// The status of the Amazon Q Business data source. public let status: DataSourceStatus? - /// The type of the Amazon Q data source. + /// The type of the Amazon Q Business data source. public let type: String? - /// The Unix timestamp when the Amazon Q data source was last updated. + /// The Unix timestamp when the Amazon Q Business data source was last updated. public let updatedAt: Date? public init(createdAt: Date? = nil, dataSourceId: String? = nil, displayName: String? = nil, status: DataSourceStatus? = nil, type: String? = nil, updatedAt: Date? = nil) { @@ -2022,7 +2595,7 @@ extension QBusiness { } public struct DataSourceVpcConfiguration: AWSEncodableShape & AWSDecodableShape { - /// A list of identifiers of security groups within your Amazon VPC. The security groups should enable Amazon Q to connect to the data source. + /// A list of identifiers of security groups within your Amazon VPC. The security groups should enable Amazon Q Business to connect to the data source. public let securityGroupIds: [String] /// A list of identifiers for subnets within your Amazon VPC. The subnets should be able to connect to each other in the VPC, and they should have outgoing access to the Internet through a NAT device. public let subnetIds: [String] @@ -2076,7 +2649,7 @@ extension QBusiness { } public struct DeleteApplicationRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application. + /// The identifier of the Amazon Q Business application. public let applicationId: String public init(applicationId: String) { @@ -2130,14 +2703,14 @@ extension QBusiness { } public struct DeleteConversationRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application associated with the conversation. + /// The identifier of the Amazon Q Business application associated with the conversation. public let applicationId: String - /// The identifier of the Amazon Q web experience conversation being deleted. + /// The identifier of the Amazon Q Business web experience conversation being deleted. public let conversationId: String /// The identifier of the user who is deleting the conversation. - public let userId: String + public let userId: String? - public init(applicationId: String, conversationId: String, userId: String) { + public init(applicationId: String, conversationId: String, userId: String? = nil) { self.applicationId = applicationId self.conversationId = conversationId self.userId = userId @@ -2171,7 +2744,7 @@ extension QBusiness { } public struct DeleteDataSourceRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application used with the data source connector. + /// The identifier of the Amazon Q Business application used with the data source connector. public let applicationId: String /// The identifier of the data source connector that you want to delete. public let dataSourceId: String @@ -2279,9 +2852,9 @@ extension QBusiness { } public struct DeleteIndexRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application the Amazon Q index is linked to. + /// The identifier of the Amazon Q Business application the Amazon Q Business index is linked to. public let applicationId: String - /// The identifier of the Amazon Q index. + /// The identifier of the Amazon Q Business index. public let indexId: String public init(applicationId: String, indexId: String) { @@ -2313,7 +2886,7 @@ extension QBusiness { } public struct DeletePluginRequest: AWSEncodableShape { - /// The identifier the application attached to the Amazon Q plugin. + /// The identifier the application attached to the Amazon Q Business plugin. public let applicationId: String /// The identifier of the plugin being deleted. public let pluginId: String @@ -2347,7 +2920,7 @@ extension QBusiness { } public struct DeleteRetrieverRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application using the retriever. + /// The identifier of the Amazon Q Business application using the retriever. public let applicationId: String /// The identifier of the retriever being deleted. public let retrieverId: String @@ -2414,9 +2987,9 @@ extension QBusiness { } public struct DeleteWebExperienceRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application linked to the Amazon Q web experience. + /// The identifier of the Amazon Q Business application linked to the Amazon Q Business web experience. public let applicationId: String - /// The identifier of the Amazon Q web experience being deleted. + /// The identifier of the Amazon Q Business web experience being deleted. public let webExperienceId: String public init(applicationId: String, webExperienceId: String) { @@ -2450,7 +3023,7 @@ extension QBusiness { public struct Document: AWSEncodableShape { /// Configuration information for access permission to a document. public let accessConfiguration: AccessConfiguration? - /// Custom attributes to apply to the document for refining Amazon Q web experience responses. + /// Custom attributes to apply to the document for refining Amazon Q Business web experience responses. public let attributes: [DocumentAttribute]? /// The contents of the document. public let content: DocumentContent? @@ -2525,9 +3098,9 @@ extension QBusiness { } public struct DocumentAttributeCondition: AWSEncodableShape & AWSDecodableShape { - /// The identifier of the document attribute used for the condition. For example, 'Source_URI' could be an identifier for the attribute or metadata field that contains source URIs associated with the documents. Amazon Q currently doesn't support _document_body as an attribute key used for the condition. + /// The identifier of the document attribute used for the condition. For example, 'Source_URI' could be an identifier for the attribute or metadata field that contains source URIs associated with the documents. Amazon Q Business currently doesn't support _document_body as an attribute key used for the condition. public let key: String - /// The identifier of the document attribute used for the condition. For example, 'Source_URI' could be an identifier for the attribute or metadata field that contains source URIs associated with the documents. Amazon Kendra currently does not support _document_body as an attribute key used for the condition. + /// The identifier of the document attribute used for the condition. For example, 'Source_URI' could be an identifier for the attribute or metadata field that contains source URIs associated with the documents. Amazon Q Business currently does not support _document_body as an attribute key used for the condition. public let `operator`: DocumentEnrichmentConditionOperator public let value: DocumentAttributeValue? @@ -2566,8 +3139,9 @@ extension QBusiness { } public func validate(name: String) throws { - try self.validate(self.name, name: "name", parent: name, max: 2048) + try self.validate(self.name, name: "name", parent: name, max: 30) try self.validate(self.name, name: "name", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, pattern: "^[a-zA-Z0-9_][a-zA-Z0-9_-]*$") } private enum CodingKeys: String, CodingKey { @@ -2634,7 +3208,7 @@ extension QBusiness { } public struct DocumentEnrichmentConfiguration: AWSEncodableShape & AWSDecodableShape { - /// Configuration information to alter document attributes or metadata fields and content when ingesting documents into Amazon Q. + /// Configuration information to alter document attributes or metadata fields and content when ingesting documents into Amazon Q Business. public let inlineConfigurations: [InlineDocumentEnrichmentConfiguration]? public let postExtractionHookConfiguration: HookConfiguration? public let preExtractionHookConfiguration: HookConfiguration? @@ -2689,7 +3263,7 @@ extension QBusiness { } public struct EncryptionConfiguration: AWSEncodableShape & AWSDecodableShape { - /// The identifier of the KMS key. Amazon Q doesn't support asymmetric keys. + /// The identifier of the KMS key. Amazon Q Business doesn't support asymmetric keys. public let kmsKeyId: String? public init(kmsKeyId: String? = nil) { @@ -2706,6 +3280,10 @@ extension QBusiness { } } + public struct EndOfInputEvent: AWSEncodableShape { + public init() {} + } + public struct ErrorDetail: AWSDecodableShape { /// The code associated with the data source sync error. public let errorCode: ErrorCode? @@ -2723,12 +3301,36 @@ extension QBusiness { } } + public struct FailedAttachmentEvent: AWSDecodableShape { + public let attachment: AttachmentOutput? + /// The identifier of the conversation associated with the failed file upload. + public let conversationId: String? + /// The identifier of the AI-generated message associated with the file upload. + public let systemMessageId: String? + /// The identifier of the end user chat message associated with the file upload. + public let userMessageId: String? + + public init(attachment: AttachmentOutput? = nil, conversationId: String? = nil, systemMessageId: String? = nil, userMessageId: String? = nil) { + self.attachment = attachment + self.conversationId = conversationId + self.systemMessageId = systemMessageId + self.userMessageId = userMessageId + } + + private enum CodingKeys: String, CodingKey { + case attachment = "attachment" + case conversationId = "conversationId" + case systemMessageId = "systemMessageId" + case userMessageId = "userMessageId" + } + } + public struct FailedDocument: AWSDecodableShape { - /// The identifier of the Amazon Q data source connector that contains the failed document. + /// The identifier of the Amazon Q Business data source connector that contains the failed document. public let dataSourceId: String? /// An explanation for why the document couldn't be removed from the index. public let error: ErrorDetail? - /// The identifier of the document that couldn't be removed from the Amazon Q index. + /// The identifier of the document that couldn't be removed from the Amazon Q Business index. public let id: String? public init(dataSourceId: String? = nil, error: ErrorDetail? = nil, id: String? = nil) { @@ -2745,7 +3347,7 @@ extension QBusiness { } public struct GetApplicationRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application. + /// The identifier of the Amazon Q Business application. public let applicationId: String public init(applicationId: String) { @@ -2768,30 +3370,32 @@ extension QBusiness { } public struct GetApplicationResponse: AWSDecodableShape { - /// The Amazon Resource Name (ARN) of the Amazon Q application. + /// The Amazon Resource Name (ARN) of the Amazon Q Business application. public let applicationArn: String? - /// The identifier of the Amazon Q application. + /// The identifier of the Amazon Q Business application. public let applicationId: String? /// Settings for whether end users can upload files directly during chat. public let attachmentsConfiguration: AppliedAttachmentsConfiguration? - /// The Unix timestamp when the Amazon Q application was last updated. + /// The Unix timestamp when the Amazon Q Business application was last updated. public let createdAt: Date? - /// A description for the Amazon Q application. + /// A description for the Amazon Q Business application. public let description: String? - /// The name of the Amazon Q application. + /// The name of the Amazon Q Business application. public let displayName: String? - /// The identifier of the Amazon Web Services KMS key that is used to encrypt your data. Amazon Q doesn't support asymmetric keys. + /// The identifier of the Amazon Web Services KMS key that is used to encrypt your data. Amazon Q Business doesn't support asymmetric keys. public let encryptionConfiguration: EncryptionConfiguration? /// If the Status field is set to ERROR, the ErrorMessage field contains a description of the error that caused the synchronization to fail. public let error: ErrorDetail? + /// The Amazon Resource Name (ARN) of the AWS IAM Identity Center instance attached to your Amazon Q Business application. + public let identityCenterApplicationArn: String? /// The Amazon Resource Name (ARN) of the IAM with permissions to access your CloudWatch logs and metrics. public let roleArn: String? - /// The status of the Amazon Q application. + /// The status of the Amazon Q Business application. public let status: ApplicationStatus? - /// The Unix timestamp when the Amazon Q application was last updated. + /// The Unix timestamp when the Amazon Q Business application was last updated. public let updatedAt: Date? - public init(applicationArn: String? = nil, applicationId: String? = nil, attachmentsConfiguration: AppliedAttachmentsConfiguration? = nil, createdAt: Date? = nil, description: String? = nil, displayName: String? = nil, encryptionConfiguration: EncryptionConfiguration? = nil, error: ErrorDetail? = nil, roleArn: String? = nil, status: ApplicationStatus? = nil, updatedAt: Date? = nil) { + public init(applicationArn: String? = nil, applicationId: String? = nil, attachmentsConfiguration: AppliedAttachmentsConfiguration? = nil, createdAt: Date? = nil, description: String? = nil, displayName: String? = nil, encryptionConfiguration: EncryptionConfiguration? = nil, error: ErrorDetail? = nil, identityCenterApplicationArn: String? = nil, roleArn: String? = nil, status: ApplicationStatus? = nil, updatedAt: Date? = nil) { self.applicationArn = applicationArn self.applicationId = applicationId self.attachmentsConfiguration = attachmentsConfiguration @@ -2800,6 +3404,7 @@ extension QBusiness { self.displayName = displayName self.encryptionConfiguration = encryptionConfiguration self.error = error + self.identityCenterApplicationArn = identityCenterApplicationArn self.roleArn = roleArn self.status = status self.updatedAt = updatedAt @@ -2814,6 +3419,7 @@ extension QBusiness { case displayName = "displayName" case encryptionConfiguration = "encryptionConfiguration" case error = "error" + case identityCenterApplicationArn = "identityCenterApplicationArn" case roleArn = "roleArn" case status = "status" case updatedAt = "updatedAt" @@ -2825,7 +3431,7 @@ extension QBusiness { public let applicationId: String /// The maximum number of configured chat controls to return. public let maxResults: Int? - /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q chat controls configured. + /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q Business chat controls configured. public let nextToken: String? public init(applicationId: String, maxResults: Int? = nil, nextToken: String? = nil) { @@ -2858,15 +3464,18 @@ extension QBusiness { public struct GetChatControlsConfigurationResponse: AWSDecodableShape { /// The phrases blocked from chat by your chat control configuration. public let blockedPhrases: BlockedPhrasesConfiguration? - /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q chat controls configured. + /// The configuration details for CREATOR_MODE. + public let creatorModeConfiguration: AppliedCreatorModeConfiguration? + /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q Business chat controls configured. public let nextToken: String? - /// The response scope configured for a Amazon Q application. This determines whether your application uses its retrieval augmented generation (RAG) system to generate answers only from your enterprise data, or also uses the large language models (LLM) knowledge to respons to end user questions in chat. + /// The response scope configured for a Amazon Q Business application. This determines whether your application uses its retrieval augmented generation (RAG) system to generate answers only from your enterprise data, or also uses the large language models (LLM) knowledge to respons to end user questions in chat. public let responseScope: ResponseScope? - /// The topic specific controls configured for a Amazon Q application. + /// The topic specific controls configured for a Amazon Q Business application. public let topicConfigurations: [TopicConfiguration]? - public init(blockedPhrases: BlockedPhrasesConfiguration? = nil, nextToken: String? = nil, responseScope: ResponseScope? = nil, topicConfigurations: [TopicConfiguration]? = nil) { + public init(blockedPhrases: BlockedPhrasesConfiguration? = nil, creatorModeConfiguration: AppliedCreatorModeConfiguration? = nil, nextToken: String? = nil, responseScope: ResponseScope? = nil, topicConfigurations: [TopicConfiguration]? = nil) { self.blockedPhrases = blockedPhrases + self.creatorModeConfiguration = creatorModeConfiguration self.nextToken = nextToken self.responseScope = responseScope self.topicConfigurations = topicConfigurations @@ -2874,6 +3483,7 @@ extension QBusiness { private enum CodingKeys: String, CodingKey { case blockedPhrases = "blockedPhrases" + case creatorModeConfiguration = "creatorModeConfiguration" case nextToken = "nextToken" case responseScope = "responseScope" case topicConfigurations = "topicConfigurations" @@ -2881,7 +3491,7 @@ extension QBusiness { } public struct GetDataSourceRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application. + /// The identifier of the Amazon Q Business application. public let applicationId: String /// The identifier of the data source connector. public let dataSourceId: String @@ -2918,7 +3528,7 @@ extension QBusiness { } public struct GetDataSourceResponse: AWSDecodableShape { - /// The identifier of the Amazon Q application. + /// The identifier of the Amazon Q Business application. public let applicationId: String? /// The details of how the data source connector is configured. public let configuration: String? @@ -2941,7 +3551,7 @@ extension QBusiness { public let roleArn: String? /// The current status of the data source connector. When the Status field value is FAILED, the ErrorMessage field contains a description of the error that caused the data source connector to fail. public let status: DataSourceStatus? - /// The schedule for Amazon Q to update the index. + /// The schedule for Amazon Q Business to update the index. public let syncSchedule: String? /// The type of the data source connector. For example, S3. public let type: String? @@ -3051,9 +3661,9 @@ extension QBusiness { } public struct GetIndexRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application connected to the index. + /// The identifier of the Amazon Q Business application connected to the index. public let applicationId: String - /// The identifier of the Amazon Q index you want information on. + /// The identifier of the Amazon Q Business index you want information on. public let indexId: String public init(applicationId: String, indexId: String) { @@ -3081,32 +3691,34 @@ extension QBusiness { } public struct GetIndexResponse: AWSDecodableShape { - /// The identifier of the Amazon Q application associated with the index. + /// The identifier of the Amazon Q Business application associated with the index. public let applicationId: String? - /// The storage capacity units chosen for your Amazon Q index. + /// The storage capacity units chosen for your Amazon Q Business index. public let capacityConfiguration: IndexCapacityConfiguration? - /// The Unix timestamp when the Amazon Q index was created. + /// The Unix timestamp when the Amazon Q Business index was created. public let createdAt: Date? - /// The description for the Amazon Q index. + /// The description for the Amazon Q Business index. public let description: String? - /// The name of the Amazon Q index. + /// The name of the Amazon Q Business index. public let displayName: String? /// Configuration information for document attributes or metadata. Document metadata are fields associated with your documents. For example, the company department name associated with each document. For more information, see Understanding document attributes. public let documentAttributeConfigurations: [DocumentAttributeConfiguration]? /// When the Status field value is FAILED, the ErrorMessage field contains a message that explains why. public let error: ErrorDetail? - /// The Amazon Resource Name (ARN) of the Amazon Q index. + /// The Amazon Resource Name (ARN) of the Amazon Q Business index. public let indexArn: String? - /// The identifier of the Amazon Q index. + /// The identifier of the Amazon Q Business index. public let indexId: String? /// Provides information about the number of documents indexed. public let indexStatistics: IndexStatistics? /// The current status of the index. When the value is ACTIVE, the index is ready for use. If the Status field value is FAILED, the ErrorMessage field contains a message that explains why. public let status: IndexStatus? - /// The Unix timestamp when the Amazon Q index was last updated. + /// The type of index attached to your Amazon Q Business application. + public let type: IndexType? + /// The Unix timestamp when the Amazon Q Business index was last updated. public let updatedAt: Date? - public init(applicationId: String? = nil, capacityConfiguration: IndexCapacityConfiguration? = nil, createdAt: Date? = nil, description: String? = nil, displayName: String? = nil, documentAttributeConfigurations: [DocumentAttributeConfiguration]? = nil, error: ErrorDetail? = nil, indexArn: String? = nil, indexId: String? = nil, indexStatistics: IndexStatistics? = nil, status: IndexStatus? = nil, updatedAt: Date? = nil) { + public init(applicationId: String? = nil, capacityConfiguration: IndexCapacityConfiguration? = nil, createdAt: Date? = nil, description: String? = nil, displayName: String? = nil, documentAttributeConfigurations: [DocumentAttributeConfiguration]? = nil, error: ErrorDetail? = nil, indexArn: String? = nil, indexId: String? = nil, indexStatistics: IndexStatistics? = nil, status: IndexStatus? = nil, type: IndexType? = nil, updatedAt: Date? = nil) { self.applicationId = applicationId self.capacityConfiguration = capacityConfiguration self.createdAt = createdAt @@ -3118,6 +3730,7 @@ extension QBusiness { self.indexId = indexId self.indexStatistics = indexStatistics self.status = status + self.type = type self.updatedAt = updatedAt } @@ -3133,6 +3746,7 @@ extension QBusiness { case indexId = "indexId" case indexStatistics = "indexStatistics" case status = "status" + case type = "type" case updatedAt = "updatedAt" } } @@ -3171,8 +3785,12 @@ extension QBusiness { /// The identifier of the application which contains the plugin. public let applicationId: String? public let authConfiguration: PluginAuthConfiguration? + /// The current status of a plugin. A plugin is modified asynchronously. + public let buildStatus: PluginBuildStatus? /// The timestamp for when the plugin was created. public let createdAt: Date? + /// Configuration information required to create a custom plugin. + public let customPluginConfiguration: CustomPluginConfiguration? /// The name of the plugin. public let displayName: String? /// The Amazon Resource Name (ARN) of the role with permission to access resources needed to create the plugin. @@ -3188,10 +3806,12 @@ extension QBusiness { /// The timestamp for when the plugin was last updated. public let updatedAt: Date? - public init(applicationId: String? = nil, authConfiguration: PluginAuthConfiguration? = nil, createdAt: Date? = nil, displayName: String? = nil, pluginArn: String? = nil, pluginId: String? = nil, serverUrl: String? = nil, state: PluginState? = nil, type: PluginType? = nil, updatedAt: Date? = nil) { + public init(applicationId: String? = nil, authConfiguration: PluginAuthConfiguration? = nil, buildStatus: PluginBuildStatus? = nil, createdAt: Date? = nil, customPluginConfiguration: CustomPluginConfiguration? = nil, displayName: String? = nil, pluginArn: String? = nil, pluginId: String? = nil, serverUrl: String? = nil, state: PluginState? = nil, type: PluginType? = nil, updatedAt: Date? = nil) { self.applicationId = applicationId self.authConfiguration = authConfiguration + self.buildStatus = buildStatus self.createdAt = createdAt + self.customPluginConfiguration = customPluginConfiguration self.displayName = displayName self.pluginArn = pluginArn self.pluginId = pluginId @@ -3204,7 +3824,9 @@ extension QBusiness { private enum CodingKeys: String, CodingKey { case applicationId = "applicationId" case authConfiguration = "authConfiguration" + case buildStatus = "buildStatus" case createdAt = "createdAt" + case customPluginConfiguration = "customPluginConfiguration" case displayName = "displayName" case pluginArn = "pluginArn" case pluginId = "pluginId" @@ -3216,7 +3838,7 @@ extension QBusiness { } public struct GetRetrieverRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application using the retriever. + /// The identifier of the Amazon Q Business application using the retriever. public let applicationId: String /// The identifier of the retriever. public let retrieverId: String @@ -3246,7 +3868,7 @@ extension QBusiness { } public struct GetRetrieverResponse: AWSDecodableShape { - /// The identifier of the Amazon Q application using the retriever. + /// The identifier of the Amazon Q Business application using the retriever. public let applicationId: String? public let configuration: RetrieverConfiguration? /// The Unix timestamp when the retriever was created. @@ -3336,9 +3958,9 @@ extension QBusiness { } public struct GetWebExperienceRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application linked to the web experience. + /// The identifier of the Amazon Q Business application linked to the web experience. public let applicationId: String - /// The identifier of the Amazon Q web experience. + /// The identifier of the Amazon Q Business web experience. public let webExperienceId: String public init(applicationId: String, webExperienceId: String) { @@ -3366,39 +3988,60 @@ extension QBusiness { } public struct GetWebExperienceResponse: AWSDecodableShape { - /// The identifier of the Amazon Q application linked to the web experience. + /// The identifier of the Amazon Q Business application linked to the web experience. public let applicationId: String? - /// The authentication configuration information for your Amazon Q web experience. + /// The authentication configuration information for your Amazon Q Business web experience. public let authenticationConfiguration: WebExperienceAuthConfiguration? - /// The Unix timestamp when the retriever was created. + /// The Unix timestamp when the Amazon Q Business web experience was last created. public let createdAt: Date? - /// The endpoint of your Amazon Q web experience. + /// The endpoint of your Amazon Q Business web experience. public let defaultEndpoint: String? /// When the Status field value is FAILED, the ErrorMessage field contains a description of the error that caused the data source connector to fail. public let error: ErrorDetail? + /// The Amazon Resource Name (ARN) of the service role attached to your web experience. + public let roleArn: String? /// Determines whether sample prompts are enabled in the web experience for an end user. public let samplePromptsControlMode: WebExperienceSamplePromptsControlMode? - /// The current status of the Amazon Q web experience. When the Status field value is FAILED, the ErrorMessage field contains a description of the error that caused the data source connector to fail. + /// The current status of the Amazon Q Business web experience. When the Status field value is FAILED, the ErrorMessage field contains a description of the error that caused the data source connector to fail. public let status: WebExperienceStatus? - /// The subtitle for your Amazon Q web experience. + /// The subtitle for your Amazon Q Business web experience. public let subtitle: String? - /// The title for your Amazon Q web experience. + /// The title for your Amazon Q Business web experience. public let title: String? - /// The Unix timestamp when the data source connector was last updated. + /// The Unix timestamp when the Amazon Q Business web experience was last updated. public let updatedAt: Date? - /// The Amazon Resource Name (ARN) of the role with the permission to access the Amazon Q web experience and required resources. + /// The Amazon Resource Name (ARN) of the role with the permission to access the Amazon Q Business web experience and required resources. public let webExperienceArn: String? - /// The identifier of the Amazon Q web experience. + /// The identifier of the Amazon Q Business web experience. public let webExperienceId: String? - /// The customized welcome message for end users of an Amazon Q web experience. + /// The customized welcome message for end users of an Amazon Q Business web experience. public let welcomeMessage: String? - public init(applicationId: String? = nil, authenticationConfiguration: WebExperienceAuthConfiguration? = nil, createdAt: Date? = nil, defaultEndpoint: String? = nil, error: ErrorDetail? = nil, samplePromptsControlMode: WebExperienceSamplePromptsControlMode? = nil, status: WebExperienceStatus? = nil, subtitle: String? = nil, title: String? = nil, updatedAt: Date? = nil, webExperienceArn: String? = nil, webExperienceId: String? = nil, welcomeMessage: String? = nil) { + public init(applicationId: String? = nil, createdAt: Date? = nil, defaultEndpoint: String? = nil, error: ErrorDetail? = nil, roleArn: String? = nil, samplePromptsControlMode: WebExperienceSamplePromptsControlMode? = nil, status: WebExperienceStatus? = nil, subtitle: String? = nil, title: String? = nil, updatedAt: Date? = nil, webExperienceArn: String? = nil, webExperienceId: String? = nil, welcomeMessage: String? = nil) { + self.applicationId = applicationId + self.authenticationConfiguration = nil + self.createdAt = createdAt + self.defaultEndpoint = defaultEndpoint + self.error = error + self.roleArn = roleArn + self.samplePromptsControlMode = samplePromptsControlMode + self.status = status + self.subtitle = subtitle + self.title = title + self.updatedAt = updatedAt + self.webExperienceArn = webExperienceArn + self.webExperienceId = webExperienceId + self.welcomeMessage = welcomeMessage + } + + @available(*, deprecated, message: "Members authenticationConfiguration have been deprecated") + public init(applicationId: String? = nil, authenticationConfiguration: WebExperienceAuthConfiguration? = nil, createdAt: Date? = nil, defaultEndpoint: String? = nil, error: ErrorDetail? = nil, roleArn: String? = nil, samplePromptsControlMode: WebExperienceSamplePromptsControlMode? = nil, status: WebExperienceStatus? = nil, subtitle: String? = nil, title: String? = nil, updatedAt: Date? = nil, webExperienceArn: String? = nil, webExperienceId: String? = nil, welcomeMessage: String? = nil) { self.applicationId = applicationId self.authenticationConfiguration = authenticationConfiguration self.createdAt = createdAt self.defaultEndpoint = defaultEndpoint self.error = error + self.roleArn = roleArn self.samplePromptsControlMode = samplePromptsControlMode self.status = status self.subtitle = subtitle @@ -3415,6 +4058,7 @@ extension QBusiness { case createdAt = "createdAt" case defaultEndpoint = "defaultEndpoint" case error = "error" + case roleArn = "roleArn" case samplePromptsControlMode = "samplePromptsControlMode" case status = "status" case subtitle = "subtitle" @@ -3459,7 +4103,7 @@ extension QBusiness { public struct GroupStatusDetail: AWSDecodableShape { /// The details of an error associated a group status. public let errorDetail: ErrorDetail? - /// The Unix timestamp when the Amazon Q application was last updated. + /// The Unix timestamp when the Amazon Q Business application was last updated. public let lastUpdatedAt: Date? /// The status of a group. public let status: GroupStatus? @@ -3491,7 +4135,7 @@ extension QBusiness { } public struct HookConfiguration: AWSEncodableShape & AWSDecodableShape { - /// The condition used for when a Lambda function should be invoked. For example, you can specify a condition that if there are empty date-time values, then Amazon Q should invoke a function that inserts the current date-time. + /// The condition used for when a Lambda function should be invoked. For example, you can specify a condition that if there are empty date-time values, then Amazon Q Business should invoke a function that inserts the current date-time. public let invocationCondition: DocumentAttributeCondition? /// The Amazon Resource Name (ARN) of a role with permission to run a Lambda function during ingestion. For more information, see IAM roles for Custom Document Enrichment (CDE). public let lambdaArn: String? @@ -3557,7 +4201,7 @@ extension QBusiness { } public struct IndexCapacityConfiguration: AWSEncodableShape & AWSDecodableShape { - /// The number of storage units configured for an Amazon Q index. + /// The number of storage units configured for an Amazon Q Business index. public let units: Int? public init(units: Int? = nil) { @@ -3630,9 +4274,9 @@ extension QBusiness { } public struct ListApplicationsRequest: AWSEncodableShape { - /// The maximum number of Amazon Q applications to return. + /// The maximum number of Amazon Q Business applications to return. public let maxResults: Int? - /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q applications. + /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q Business applications. public let nextToken: String? public init(maxResults: Int? = nil, nextToken: String? = nil) { @@ -3658,9 +4302,9 @@ extension QBusiness { } public struct ListApplicationsResponse: AWSDecodableShape { - /// An array of summary information on the configuration of one or more Amazon Q applications. + /// An array of summary information on the configuration of one or more Amazon Q Business applications. public let applications: [Application]? - /// If the response is truncated, Amazon Q returns this token. You can use this token in a subsequent request to retrieve the next set of applications. + /// If the response is truncated, Amazon Q Business returns this token. You can use this token in a subsequent request to retrieve the next set of applications. public let nextToken: String? public init(applications: [Application]? = nil, nextToken: String? = nil) { @@ -3675,16 +4319,16 @@ extension QBusiness { } public struct ListConversationsRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application. + /// The identifier of the Amazon Q Business application. public let applicationId: String - /// The maximum number of Amazon Q conversations to return. + /// The maximum number of Amazon Q Business conversations to return. public let maxResults: Int? - /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q conversations. + /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q Business conversations. public let nextToken: String? - /// The identifier of the user involved in the Amazon Q web experience conversation. - public let userId: String + /// The identifier of the user involved in the Amazon Q Business web experience conversation. + public let userId: String? - public init(applicationId: String, maxResults: Int? = nil, nextToken: String? = nil, userId: String) { + public init(applicationId: String, maxResults: Int? = nil, nextToken: String? = nil, userId: String? = nil) { self.applicationId = applicationId self.maxResults = maxResults self.nextToken = nextToken @@ -3717,9 +4361,9 @@ extension QBusiness { } public struct ListConversationsResponse: AWSDecodableShape { - /// An array of summary information on the configuration of one or more Amazon Q web experiences. + /// An array of summary information on the configuration of one or more Amazon Q Business web experiences. public let conversations: [Conversation]? - /// If the response is truncated, Amazon Q returns this token, which you can use in a later request to list the next set of messages. + /// If the response is truncated, Amazon Q Business returns this token, which you can use in a later request to list the next set of messages. public let nextToken: String? public init(conversations: [Conversation]? = nil, nextToken: String? = nil) { @@ -3734,17 +4378,17 @@ extension QBusiness { } public struct ListDataSourceSyncJobsRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application connected to the data source. + /// The identifier of the Amazon Q Business application connected to the data source. public let applicationId: String /// The identifier of the data source connector. public let dataSourceId: String /// The end time of the data source connector sync. public let endTime: Date? - /// The identifier of the index used with the Amazon Q data source connector. + /// The identifier of the index used with the Amazon Q Business data source connector. public let indexId: String /// The maximum number of synchronization jobs to return in the response. public let maxResults: Int? - /// If the maxResults response was incpmplete because there is more data to retriever, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of responses. + /// If the maxResults response was incpmplete because there is more data to retriever, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next set of responses. public let nextToken: String? /// The start time of the data source connector sync. public let startTime: Date? @@ -3797,7 +4441,7 @@ extension QBusiness { public struct ListDataSourceSyncJobsResponse: AWSDecodableShape { /// A history of synchronization jobs for the data source connector. public let history: [DataSourceSyncJob]? - /// If the response is truncated, Amazon Q returns this token. You can use this token in any subsequent request to retrieve the next set of jobs. + /// If the response is truncated, Amazon Q Business returns this token. You can use this token in any subsequent request to retrieve the next set of jobs. public let nextToken: String? public init(history: [DataSourceSyncJob]? = nil, nextToken: String? = nil) { @@ -3812,13 +4456,13 @@ extension QBusiness { } public struct ListDataSourcesRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application linked to the data source connectors. + /// The identifier of the Amazon Q Business application linked to the data source connectors. public let applicationId: String /// The identifier of the index used with one or more data source connectors. public let indexId: String /// The maximum number of data source connectors to return. public let maxResults: Int? - /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q data source connectors. + /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q Business data source connectors. public let nextToken: String? public init(applicationId: String, indexId: String, maxResults: Int? = nil, nextToken: String? = nil) { @@ -3856,7 +4500,7 @@ extension QBusiness { public struct ListDataSourcesResponse: AWSDecodableShape { /// An array of summary information for one or more data source connector. public let dataSources: [DataSource]? - /// If the response is truncated, Amazon Q returns this token. You can use this token in a subsequent request to retrieve the next set of data source connectors. + /// If the response is truncated, Amazon Q Business returns this token. You can use this token in a subsequent request to retrieve the next set of data source connectors. public let nextToken: String? public init(dataSources: [DataSource]? = nil, nextToken: String? = nil) { @@ -3879,7 +4523,7 @@ extension QBusiness { public let indexId: String /// The maximum number of documents to return. public let maxResults: Int? - /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of documents. + /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next set of documents. public let nextToken: String? public init(applicationId: String, dataSourceIds: [String]? = nil, indexId: String, maxResults: Int? = nil, nextToken: String? = nil) { @@ -3926,7 +4570,7 @@ extension QBusiness { public struct ListDocumentsResponse: AWSDecodableShape { /// A list of document details. public let documentDetailList: [DocumentDetails]? - /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of documents. + /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next set of documents. public let nextToken: String? public init(documentDetailList: [DocumentDetails]? = nil, nextToken: String? = nil) { @@ -3949,7 +4593,7 @@ extension QBusiness { public let indexId: String /// The maximum number of returned groups that are mapped to users. public let maxResults: Int? - /// If the previous response was incomplete (because there is more data to retrieve), Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of groups that are mapped to users. + /// If the previous response was incomplete (because there is more data to retrieve), Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next set of groups that are mapped to users. public let nextToken: String? /// The timestamp identifier used for the latest PUT or DELETE action for mapping users to their groups. public let updatedEarlierThan: Date @@ -3996,7 +4640,7 @@ extension QBusiness { public struct ListGroupsResponse: AWSDecodableShape { /// Summary information for list of groups that are mapped to users. public let items: [GroupSummary]? - /// If the response is truncated, Amazon Q returns this token that you can use in the subsequent request to retrieve the next set of groups that are mapped to users. + /// If the response is truncated, Amazon Q Business returns this token that you can use in the subsequent request to retrieve the next set of groups that are mapped to users. public let nextToken: String? public init(items: [GroupSummary]? = nil, nextToken: String? = nil) { @@ -4011,11 +4655,11 @@ extension QBusiness { } public struct ListIndicesRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application connected to the index. + /// The identifier of the Amazon Q Business application connected to the index. public let applicationId: String /// The maximum number of indices to return. public let maxResults: Int? - /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q indices. + /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q Business indices. public let nextToken: String? public init(applicationId: String, maxResults: Int? = nil, nextToken: String? = nil) { @@ -4048,7 +4692,7 @@ extension QBusiness { public struct ListIndicesResponse: AWSDecodableShape { /// An array of information on the items in one or more indexes. public let indices: [Index]? - /// If the response is truncated, Amazon Q returns this token that you can use in the subsequent request to retrieve the next set of indexes. + /// If the response is truncated, Amazon Q Business returns this token that you can use in the subsequent request to retrieve the next set of indexes. public let nextToken: String? public init(indices: [Index]? = nil, nextToken: String? = nil) { @@ -4063,18 +4707,18 @@ extension QBusiness { } public struct ListMessagesRequest: AWSEncodableShape { - /// The identifier for the Amazon Q application. + /// The identifier for the Amazon Q Business application. public let applicationId: String - /// The identifier of the Amazon Q web experience conversation. + /// The identifier of the Amazon Q Business web experience conversation. public let conversationId: String /// The maximum number of messages to return. public let maxResults: Int? - /// If the number of retrievers returned exceeds maxResults, Amazon Q returns a next token as a pagination token to retrieve the next set of messages. + /// If the number of retrievers returned exceeds maxResults, Amazon Q Business returns a next token as a pagination token to retrieve the next set of messages. public let nextToken: String? - /// The identifier of the user involved in the Amazon Q web experience conversation. - public let userId: String + /// The identifier of the user involved in the Amazon Q Business web experience conversation. + public let userId: String? - public init(applicationId: String, conversationId: String, maxResults: Int? = nil, nextToken: String? = nil, userId: String) { + public init(applicationId: String, conversationId: String, maxResults: Int? = nil, nextToken: String? = nil, userId: String? = nil) { self.applicationId = applicationId self.conversationId = conversationId self.maxResults = maxResults @@ -4114,7 +4758,7 @@ extension QBusiness { public struct ListMessagesResponse: AWSDecodableShape { /// An array of information on one or more messages. public let messages: [Message]? - /// If the response is truncated, Amazon Q returns this token, which you can use in a later request to list the next set of messages. + /// If the response is truncated, Amazon Q Business returns this token, which you can use in a later request to list the next set of messages. public let nextToken: String? public init(messages: [Message]? = nil, nextToken: String? = nil) { @@ -4133,7 +4777,7 @@ extension QBusiness { public let applicationId: String /// The maximum number of documents to return. public let maxResults: Int? - /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of plugins. + /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next set of plugins. public let nextToken: String? public init(applicationId: String, maxResults: Int? = nil, nextToken: String? = nil) { @@ -4164,7 +4808,7 @@ extension QBusiness { } public struct ListPluginsResponse: AWSDecodableShape { - /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of plugins. + /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next set of plugins. public let nextToken: String? /// Information about a configured plugin. public let plugins: [Plugin]? @@ -4181,11 +4825,11 @@ extension QBusiness { } public struct ListRetrieversRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application using the retriever. + /// The identifier of the Amazon Q Business application using the retriever. public let applicationId: String /// The maximum number of retrievers returned. public let maxResults: Int? - /// If the number of retrievers returned exceeds maxResults, Amazon Q returns a next token as a pagination token to retrieve the next set of retrievers. + /// If the number of retrievers returned exceeds maxResults, Amazon Q Business returns a next token as a pagination token to retrieve the next set of retrievers. public let nextToken: String? public init(applicationId: String, maxResults: Int? = nil, nextToken: String? = nil) { @@ -4216,7 +4860,7 @@ extension QBusiness { } public struct ListRetrieversResponse: AWSDecodableShape { - /// If the response is truncated, Amazon Q returns this token, which you can use in a later request to list the next set of retrievers. + /// If the response is truncated, Amazon Q Business returns this token, which you can use in a later request to list the next set of retrievers. public let nextToken: String? /// An array of summary information for one or more retrievers. public let retrievers: [Retriever]? @@ -4233,7 +4877,7 @@ extension QBusiness { } public struct ListTagsForResourceRequest: AWSEncodableShape { - /// The Amazon Resource Name (ARN) of the Amazon Q application or data source to get a list of tags for. + /// The Amazon Resource Name (ARN) of the Amazon Q Business application or data source to get a list of tags for. public let resourceARN: String public init(resourceARN: String) { @@ -4255,7 +4899,7 @@ extension QBusiness { } public struct ListTagsForResourceResponse: AWSDecodableShape { - /// A list of tags associated with the Amazon Q application or data source. + /// A list of tags associated with the Amazon Q Business application or data source. public let tags: [Tag]? public init(tags: [Tag]? = nil) { @@ -4268,11 +4912,11 @@ extension QBusiness { } public struct ListWebExperiencesRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application linked to the listed web experiences. + /// The identifier of the Amazon Q Business application linked to the listed web experiences. public let applicationId: String - /// The maximum number of Amazon Q Web Experiences to return. + /// The maximum number of Amazon Q Business Web Experiences to return. public let maxResults: Int? - /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q conversations. + /// If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q Business conversations. public let nextToken: String? public init(applicationId: String, maxResults: Int? = nil, nextToken: String? = nil) { @@ -4303,9 +4947,9 @@ extension QBusiness { } public struct ListWebExperiencesResponse: AWSDecodableShape { - /// If the response is truncated, Amazon Q returns this token, which you can use in a later request to list the next set of messages. + /// If the response is truncated, Amazon Q Business returns this token, which you can use in a later request to list the next set of messages. public let nextToken: String? - /// An array of summary information for one or more Amazon Q experiences. + /// An array of summary information for one or more Amazon Q Business experiences. public let webExperiences: [WebExperience]? public init(nextToken: String? = nil, webExperiences: [WebExperience]? = nil) { @@ -4368,17 +5012,17 @@ extension QBusiness { public struct Message: AWSDecodableShape { public let actionExecution: ActionExecution? public let actionReview: ActionReview? - /// A file directly uploaded into an Amazon Q web experience chat. + /// A file directly uploaded into an Amazon Q Business web experience chat. public let attachments: [AttachmentOutput]? - /// The content of the Amazon Q web experience message. + /// The content of the Amazon Q Business web experience message. public let body: String? - /// The identifier of the Amazon Q web experience message. + /// The identifier of the Amazon Q Business web experience message. public let messageId: String? - /// The source documents used to generate Amazon Q web experience message. + /// The source documents used to generate Amazon Q Business web experience message. public let sourceAttribution: [SourceAttribution]? - /// The timestamp of the first Amazon Q web experience message. + /// The timestamp of the first Amazon Q Business web experience message. public let time: Date? - /// The type of Amazon Q message, whether HUMAN or AI generated. + /// The type of Amazon Q Business message, whether HUMAN or AI generated. public let type: MessageType? public init(actionExecution: ActionExecution? = nil, actionReview: ActionReview? = nil, attachments: [AttachmentOutput]? = nil, body: String? = nil, messageId: String? = nil, sourceAttribution: [SourceAttribution]? = nil, time: Date? = nil, type: MessageType? = nil) { @@ -4434,10 +5078,39 @@ extension QBusiness { } } + public struct MetadataEvent: AWSDecodableShape { + /// The identifier of the conversation with which the generated metadata is associated. + public let conversationId: String? + /// The final text output message generated by the system. + public let finalTextMessage: String? + /// The source documents used to generate the conversation response. + public let sourceAttributions: [SourceAttribution]? + /// The identifier of an Amazon Q Business AI generated message within the conversation. + public let systemMessageId: String? + /// The identifier of an Amazon Q Business end user text input message within the conversation. + public let userMessageId: String? + + public init(conversationId: String? = nil, finalTextMessage: String? = nil, sourceAttributions: [SourceAttribution]? = nil, systemMessageId: String? = nil, userMessageId: String? = nil) { + self.conversationId = conversationId + self.finalTextMessage = finalTextMessage + self.sourceAttributions = sourceAttributions + self.systemMessageId = systemMessageId + self.userMessageId = userMessageId + } + + private enum CodingKeys: String, CodingKey { + case conversationId = "conversationId" + case finalTextMessage = "finalTextMessage" + case sourceAttributions = "sourceAttributions" + case systemMessageId = "systemMessageId" + case userMessageId = "userMessageId" + } + } + public struct NativeIndexConfiguration: AWSEncodableShape & AWSDecodableShape { - /// Overrides the default boosts applied by Amazon Q to supported document attribute data types. + /// Overrides the default boosts applied by Amazon Q Business to supported document attribute data types. public let boostingOverride: [String: DocumentAttributeBoostingConfiguration]? - /// The identifier for the Amazon Q index. + /// The identifier for the Amazon Q Business index. public let indexId: String public init(boostingOverride: [String: DocumentAttributeBoostingConfiguration]? = nil, indexId: String) { @@ -4464,6 +5137,10 @@ extension QBusiness { } } + public struct NoAuthConfiguration: AWSEncodableShape & AWSDecodableShape { + public init() {} + } + public struct NumberAttributeBoostingConfiguration: AWSEncodableShape & AWSDecodableShape { /// Specifies the duration, in seconds, of a boost applies to a NUMBER type document attribute. public let boostingLevel: DocumentAttributeBoostingLevel @@ -4482,7 +5159,7 @@ extension QBusiness { } public struct OAuth2ClientCredentialConfiguration: AWSEncodableShape & AWSDecodableShape { - /// The ARN of an IAM role used by Amazon Q to access the OAuth 2.0 authentication credentials stored in a Secrets Manager secret. + /// The ARN of an IAM role used by Amazon Q Business to access the OAuth 2.0 authentication credentials stored in a Secrets Manager secret. public let roleArn: String /// The ARN of the Secrets Manager secret that stores the OAuth 2.0 credentials/token used for plugin configuration. public let secretArn: String @@ -4506,6 +5183,8 @@ extension QBusiness { } public struct Plugin: AWSDecodableShape { + /// The status of the plugin. + public let buildStatus: PluginBuildStatus? /// The timestamp for when the plugin was created. public let createdAt: Date? /// The name of the plugin. @@ -4521,7 +5200,8 @@ extension QBusiness { /// The timestamp for when the plugin was last updated. public let updatedAt: Date? - public init(createdAt: Date? = nil, displayName: String? = nil, pluginId: String? = nil, serverUrl: String? = nil, state: PluginState? = nil, type: PluginType? = nil, updatedAt: Date? = nil) { + public init(buildStatus: PluginBuildStatus? = nil, createdAt: Date? = nil, displayName: String? = nil, pluginId: String? = nil, serverUrl: String? = nil, state: PluginState? = nil, type: PluginType? = nil, updatedAt: Date? = nil) { + self.buildStatus = buildStatus self.createdAt = createdAt self.displayName = displayName self.pluginId = pluginId @@ -4532,6 +5212,7 @@ extension QBusiness { } private enum CodingKeys: String, CodingKey { + case buildStatus = "buildStatus" case createdAt = "createdAt" case displayName = "displayName" case pluginId = "pluginId" @@ -4542,6 +5223,25 @@ extension QBusiness { } } + public struct PluginConfiguration: AWSEncodableShape { + /// The identifier of the plugin you want to use. + public let pluginId: String + + public init(pluginId: String) { + self.pluginId = pluginId + } + + public func validate(name: String) throws { + try self.validate(self.pluginId, name: "pluginId", parent: name, max: 36) + try self.validate(self.pluginId, name: "pluginId", parent: name, min: 36) + try self.validate(self.pluginId, name: "pluginId", parent: name, pattern: "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$") + } + + private enum CodingKeys: String, CodingKey { + case pluginId = "pluginId" + } + } + public struct PrincipalGroup: AWSEncodableShape { /// Provides information about whether to allow or deny access to the principal. public let access: ReadAccessType @@ -4608,9 +5308,9 @@ extension QBusiness { /// The feedback usefulness value given by the user to the chat message. public let messageUsefulness: MessageUsefulnessFeedback? /// The identifier of the user giving the feedback. - public let userId: String + public let userId: String? - public init(applicationId: String, conversationId: String, messageCopiedAt: Date? = nil, messageId: String, messageUsefulness: MessageUsefulnessFeedback? = nil, userId: String) { + public init(applicationId: String, conversationId: String, messageCopiedAt: Date? = nil, messageId: String, messageUsefulness: MessageUsefulnessFeedback? = nil, userId: String? = nil) { self.applicationId = applicationId self.conversationId = conversationId self.messageCopiedAt = messageCopiedAt @@ -4714,11 +5414,11 @@ extension QBusiness { } public struct Retriever: AWSDecodableShape { - /// The identifier of the Amazon Q application using the retriever. + /// The identifier of the Amazon Q Business application using the retriever. public let applicationId: String? /// The name of your retriever. public let displayName: String? - /// The identifier of the retriever used by your Amazon Q application. + /// The identifier of the retriever used by your Amazon Q Business application. public let retrieverId: String? /// The status of your retriever. public let status: RetrieverStatus? @@ -4773,7 +5473,7 @@ extension QBusiness { } } - public struct S3: AWSEncodableShape { + public struct S3: AWSEncodableShape & AWSDecodableShape { /// The name of the S3 bucket that contains the file. public let bucket: String /// The name of the file. @@ -4801,7 +5501,7 @@ extension QBusiness { public struct SamlConfiguration: AWSEncodableShape & AWSDecodableShape { /// The metadata XML that your IdP generated. public let metadataXML: String - /// The Amazon Resource Name (ARN) of an IAM role assumed by users when they authenticate into their Amazon Q web experience, containing the relevant Amazon Q permissions for conversing with Amazon Q. + /// The Amazon Resource Name (ARN) of an IAM role assumed by users when they authenticate into their Amazon Q Business web experience, containing the relevant Amazon Q Business permissions for conversing with Amazon Q Business. public let roleArn: String /// The group attribute name in your IdP that maps to user groups. public let userGroupAttribute: String? @@ -4835,18 +5535,31 @@ extension QBusiness { } } + public struct SnippetExcerpt: AWSDecodableShape { + /// The relevant text excerpt from a source that was used to generate a citation text segment in an Amazon Q chat response. + public let text: String? + + public init(text: String? = nil) { + self.text = text + } + + private enum CodingKeys: String, CodingKey { + case text = "text" + } + } + public struct SourceAttribution: AWSDecodableShape { - /// The number attached to a citation in an Amazon Q generated response. + /// The number attached to a citation in an Amazon Q Business generated response. public let citationNumber: Int? /// The content extract from the document on which the generated response is based. public let snippet: String? /// A text extract from a source document that is used for source attribution. public let textMessageSegments: [TextSegment]? - /// The title of the document which is the source for the Amazon Q generated response. + /// The title of the document which is the source for the Amazon Q Business generated response. public let title: String? - /// The Unix timestamp when the Amazon Q application was last updated. + /// The Unix timestamp when the Amazon Q Business application was last updated. public let updatedAt: Date? - /// The URL of the document which is the source for the Amazon Q generated response. + /// The URL of the document which is the source for the Amazon Q Business generated response. public let url: String? public init(citationNumber: Int? = nil, snippet: String? = nil, textMessageSegments: [TextSegment]? = nil, title: String? = nil, updatedAt: Date? = nil, url: String? = nil) { @@ -4869,7 +5582,7 @@ extension QBusiness { } public struct StartDataSourceSyncJobRequest: AWSEncodableShape { - /// The identifier of Amazon Q application the data source is connected to. + /// The identifier of Amazon Q Business application the data source is connected to. public let applicationId: String /// The identifier of the data source connector. public let dataSourceId: String @@ -4919,11 +5632,11 @@ extension QBusiness { } public struct StopDataSourceSyncJobRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application that the data source is connected to. + /// The identifier of the Amazon Q Business application that the data source is connected to. public let applicationId: String /// The identifier of the data source connector. public let dataSourceId: String - /// The identifier of the index used with the Amazon Q data source connector. + /// The identifier of the index used with the Amazon Q Business data source connector. public let indexId: String public init(applicationId: String, dataSourceId: String, indexId: String) { @@ -4999,7 +5712,7 @@ extension QBusiness { } public struct Tag: AWSEncodableShape & AWSDecodableShape { - /// The key for the tag. Keys are not case sensitive and must be unique for the Amazon Q application or data source. + /// The key for the tag. Keys are not case sensitive and must be unique for the Amazon Q Business application or data source. public let key: String /// The value associated with the tag. The value may be an empty string but it can't be null. public let value: String @@ -5022,9 +5735,9 @@ extension QBusiness { } public struct TagResourceRequest: AWSEncodableShape { - /// The Amazon Resource Name (ARN) of the Amazon Q application or data source to tag. + /// The Amazon Resource Name (ARN) of the Amazon Q Business application or data source to tag. public let resourceARN: String - /// A list of tag keys to add to the Amazon Q application or data source. If a tag already exists, the existing value is replaced with the new value. + /// A list of tag keys to add to the Amazon Q Business application or data source. If a tag already exists, the existing value is replaced with the new value. public let tags: [Tag] public init(resourceARN: String, tags: [Tag]) { @@ -5074,20 +5787,67 @@ extension QBusiness { } } + public struct TextInputEvent: AWSEncodableShape { + /// A user message in a text message input event. + public let userMessage: String + + public init(userMessage: String) { + self.userMessage = userMessage + } + + public func validate(name: String) throws { + try self.validate(self.userMessage, name: "userMessage", parent: name, max: 7000) + try self.validate(self.userMessage, name: "userMessage", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case userMessage = "userMessage" + } + } + + public struct TextOutputEvent: AWSDecodableShape { + /// The identifier of the conversation with which the text output event is associated. + public let conversationId: String? + /// An AI-generated message in a TextOutputEvent. + public let systemMessage: String? + /// The identifier of an AI-generated message in a TextOutputEvent. + public let systemMessageId: String? + /// The identifier of an end user message in a TextOutputEvent. + public let userMessageId: String? + + public init(conversationId: String? = nil, systemMessage: String? = nil, systemMessageId: String? = nil, userMessageId: String? = nil) { + self.conversationId = conversationId + self.systemMessage = systemMessage + self.systemMessageId = systemMessageId + self.userMessageId = userMessageId + } + + private enum CodingKeys: String, CodingKey { + case conversationId = "conversationId" + case systemMessage = "systemMessage" + case systemMessageId = "systemMessageId" + case userMessageId = "userMessageId" + } + } + public struct TextSegment: AWSDecodableShape { /// The zero-based location in the response string where the source attribution starts. public let beginOffset: Int? /// The zero-based location in the response string where the source attribution ends. public let endOffset: Int? + /// The relevant text excerpt from a source that was used to generate a citation text segment in an Amazon Q Business chat response. + public let snippetExcerpt: SnippetExcerpt? - public init(beginOffset: Int? = nil, endOffset: Int? = nil) { + public init(beginOffset: Int? = nil, endOffset: Int? = nil, snippetExcerpt: SnippetExcerpt? = nil) { self.beginOffset = beginOffset self.endOffset = endOffset + self.snippetExcerpt = snippetExcerpt } private enum CodingKeys: String, CodingKey { case beginOffset = "beginOffset" case endOffset = "endOffset" + case snippetExcerpt = "snippetExcerpt" } } @@ -5134,9 +5894,9 @@ extension QBusiness { } public struct UntagResourceRequest: AWSEncodableShape { - /// The Amazon Resource Name (ARN) of the Amazon Q application, or data source to remove the tag from. + /// The Amazon Resource Name (ARN) of the Amazon Q Business application, or data source to remove the tag from. public let resourceARN: String - /// A list of tag keys to remove from the Amazon Q application or data source. If a tag key does not exist on the resource, it is ignored. + /// A list of tag keys to remove from the Amazon Q Business application or data source. If a tag key does not exist on the resource, it is ignored. public let tagKeys: [String] public init(resourceARN: String, tagKeys: [String]) { @@ -5169,22 +5929,25 @@ extension QBusiness { } public struct UpdateApplicationRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application. + /// The identifier of the Amazon Q Business application. public let applicationId: String /// An option to allow end users to upload files directly during chat. public let attachmentsConfiguration: AttachmentsConfiguration? - /// A description for the Amazon Q application. + /// A description for the Amazon Q Business application. public let description: String? - /// A name for the Amazon Q application. + /// A name for the Amazon Q Business application. public let displayName: String? - /// An Amazon Web Services Identity and Access Management (IAM) role that gives Amazon Q permission to access Amazon CloudWatch logs and metrics. + /// The Amazon Resource Name (ARN) of the IAM Identity Center instance you are either creating for—or connecting to—your Amazon Q Business application. + public let identityCenterInstanceArn: String? + /// An Amazon Web Services Identity and Access Management (IAM) role that gives Amazon Q Business permission to access Amazon CloudWatch logs and metrics. public let roleArn: String? - public init(applicationId: String, attachmentsConfiguration: AttachmentsConfiguration? = nil, description: String? = nil, displayName: String? = nil, roleArn: String? = nil) { + public init(applicationId: String, attachmentsConfiguration: AttachmentsConfiguration? = nil, description: String? = nil, displayName: String? = nil, identityCenterInstanceArn: String? = nil, roleArn: String? = nil) { self.applicationId = applicationId self.attachmentsConfiguration = attachmentsConfiguration self.description = description self.displayName = displayName + self.identityCenterInstanceArn = identityCenterInstanceArn self.roleArn = roleArn } @@ -5195,6 +5958,7 @@ extension QBusiness { try container.encodeIfPresent(self.attachmentsConfiguration, forKey: .attachmentsConfiguration) try container.encodeIfPresent(self.description, forKey: .description) try container.encodeIfPresent(self.displayName, forKey: .displayName) + try container.encodeIfPresent(self.identityCenterInstanceArn, forKey: .identityCenterInstanceArn) try container.encodeIfPresent(self.roleArn, forKey: .roleArn) } @@ -5207,6 +5971,9 @@ extension QBusiness { try self.validate(self.displayName, name: "displayName", parent: name, max: 1000) try self.validate(self.displayName, name: "displayName", parent: name, min: 1) try self.validate(self.displayName, name: "displayName", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$") + try self.validate(self.identityCenterInstanceArn, name: "identityCenterInstanceArn", parent: name, max: 1224) + try self.validate(self.identityCenterInstanceArn, name: "identityCenterInstanceArn", parent: name, min: 10) + try self.validate(self.identityCenterInstanceArn, name: "identityCenterInstanceArn", parent: name, pattern: "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$") try self.validate(self.roleArn, name: "roleArn", parent: name, max: 1284) try self.validate(self.roleArn, name: "roleArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") } @@ -5215,6 +5982,7 @@ extension QBusiness { case attachmentsConfiguration = "attachmentsConfiguration" case description = "description" case displayName = "displayName" + case identityCenterInstanceArn = "identityCenterInstanceArn" case roleArn = "roleArn" } } @@ -5228,8 +5996,10 @@ extension QBusiness { public let applicationId: String /// The phrases blocked from chat by your chat control configuration. public let blockedPhrasesConfigurationUpdate: BlockedPhrasesConfigurationUpdate? - /// A token that you provide to identify the request to update a Amazon Q application chat configuration. + /// A token that you provide to identify the request to update a Amazon Q Business application chat configuration. public let clientToken: String? + /// The configuration details for CREATOR_MODE. + public let creatorModeConfiguration: CreatorModeConfiguration? /// The response scope configured for your application. This determines whether your application uses its retrieval augmented generation (RAG) system to generate answers only from your enterprise data, or also uses the large language models (LLM) knowledge to respons to end user questions in chat. public let responseScope: ResponseScope? /// The configured topic specific chat controls you want to update. @@ -5237,10 +6007,11 @@ extension QBusiness { /// The configured topic specific chat controls you want to delete. public let topicConfigurationsToDelete: [TopicConfiguration]? - public init(applicationId: String, blockedPhrasesConfigurationUpdate: BlockedPhrasesConfigurationUpdate? = nil, clientToken: String? = UpdateChatControlsConfigurationRequest.idempotencyToken(), responseScope: ResponseScope? = nil, topicConfigurationsToCreateOrUpdate: [TopicConfiguration]? = nil, topicConfigurationsToDelete: [TopicConfiguration]? = nil) { + public init(applicationId: String, blockedPhrasesConfigurationUpdate: BlockedPhrasesConfigurationUpdate? = nil, clientToken: String? = UpdateChatControlsConfigurationRequest.idempotencyToken(), creatorModeConfiguration: CreatorModeConfiguration? = nil, responseScope: ResponseScope? = nil, topicConfigurationsToCreateOrUpdate: [TopicConfiguration]? = nil, topicConfigurationsToDelete: [TopicConfiguration]? = nil) { self.applicationId = applicationId self.blockedPhrasesConfigurationUpdate = blockedPhrasesConfigurationUpdate self.clientToken = clientToken + self.creatorModeConfiguration = creatorModeConfiguration self.responseScope = responseScope self.topicConfigurationsToCreateOrUpdate = topicConfigurationsToCreateOrUpdate self.topicConfigurationsToDelete = topicConfigurationsToDelete @@ -5252,6 +6023,7 @@ extension QBusiness { request.encodePath(self.applicationId, key: "applicationId") try container.encodeIfPresent(self.blockedPhrasesConfigurationUpdate, forKey: .blockedPhrasesConfigurationUpdate) try container.encodeIfPresent(self.clientToken, forKey: .clientToken) + try container.encodeIfPresent(self.creatorModeConfiguration, forKey: .creatorModeConfiguration) try container.encodeIfPresent(self.responseScope, forKey: .responseScope) try container.encodeIfPresent(self.topicConfigurationsToCreateOrUpdate, forKey: .topicConfigurationsToCreateOrUpdate) try container.encodeIfPresent(self.topicConfigurationsToDelete, forKey: .topicConfigurationsToDelete) @@ -5277,6 +6049,7 @@ extension QBusiness { private enum CodingKeys: String, CodingKey { case blockedPhrasesConfigurationUpdate = "blockedPhrasesConfigurationUpdate" case clientToken = "clientToken" + case creatorModeConfiguration = "creatorModeConfiguration" case responseScope = "responseScope" case topicConfigurationsToCreateOrUpdate = "topicConfigurationsToCreateOrUpdate" case topicConfigurationsToDelete = "topicConfigurationsToDelete" @@ -5288,7 +6061,7 @@ extension QBusiness { } public struct UpdateDataSourceRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application the data source is attached to. + /// The identifier of the Amazon Q Business application the data source is attached to. public let applicationId: String public let configuration: String? /// The identifier of the data source connector. @@ -5373,17 +6146,17 @@ extension QBusiness { } public struct UpdateIndexRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application connected to the index. + /// The identifier of the Amazon Q Business application connected to the index. public let applicationId: String - /// The storage capacity units you want to provision for your Amazon Q index. You can add and remove capacity to fit your usage needs. + /// The storage capacity units you want to provision for your Amazon Q Business index. You can add and remove capacity to fit your usage needs. public let capacityConfiguration: IndexCapacityConfiguration? - /// The description of the Amazon Q index. + /// The description of the Amazon Q Business index. public let description: String? - /// The name of the Amazon Q index. + /// The name of the Amazon Q Business index. public let displayName: String? /// Configuration information for document metadata or fields. Document metadata are fields or attributes associated with your documents. For example, the company department name associated with each document. For more information, see Understanding document attributes. public let documentAttributeConfigurations: [DocumentAttributeConfiguration]? - /// The identifier of the Amazon Q index. + /// The identifier of the Amazon Q Business index. public let indexId: String public init(applicationId: String, capacityConfiguration: IndexCapacityConfiguration? = nil, description: String? = nil, displayName: String? = nil, documentAttributeConfigurations: [DocumentAttributeConfiguration]? = nil, indexId: String) { @@ -5443,6 +6216,8 @@ extension QBusiness { public let applicationId: String /// The authentication configuration the plugin is using. public let authConfiguration: PluginAuthConfiguration? + /// The configuration for a custom plugin. + public let customPluginConfiguration: CustomPluginConfiguration? /// The name of the plugin. public let displayName: String? /// The identifier of the plugin. @@ -5452,9 +6227,10 @@ extension QBusiness { /// The status of the plugin. public let state: PluginState? - public init(applicationId: String, authConfiguration: PluginAuthConfiguration? = nil, displayName: String? = nil, pluginId: String, serverUrl: String? = nil, state: PluginState? = nil) { + public init(applicationId: String, authConfiguration: PluginAuthConfiguration? = nil, customPluginConfiguration: CustomPluginConfiguration? = nil, displayName: String? = nil, pluginId: String, serverUrl: String? = nil, state: PluginState? = nil) { self.applicationId = applicationId self.authConfiguration = authConfiguration + self.customPluginConfiguration = customPluginConfiguration self.displayName = displayName self.pluginId = pluginId self.serverUrl = serverUrl @@ -5466,6 +6242,7 @@ extension QBusiness { var container = encoder.container(keyedBy: CodingKeys.self) request.encodePath(self.applicationId, key: "applicationId") try container.encodeIfPresent(self.authConfiguration, forKey: .authConfiguration) + try container.encodeIfPresent(self.customPluginConfiguration, forKey: .customPluginConfiguration) try container.encodeIfPresent(self.displayName, forKey: .displayName) request.encodePath(self.pluginId, key: "pluginId") try container.encodeIfPresent(self.serverUrl, forKey: .serverUrl) @@ -5477,6 +6254,7 @@ extension QBusiness { try self.validate(self.applicationId, name: "applicationId", parent: name, min: 36) try self.validate(self.applicationId, name: "applicationId", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$") try self.authConfiguration?.validate(name: "\(name).authConfiguration") + try self.customPluginConfiguration?.validate(name: "\(name).customPluginConfiguration") try self.validate(self.displayName, name: "displayName", parent: name, max: 100) try self.validate(self.displayName, name: "displayName", parent: name, min: 1) try self.validate(self.displayName, name: "displayName", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$") @@ -5490,6 +6268,7 @@ extension QBusiness { private enum CodingKeys: String, CodingKey { case authConfiguration = "authConfiguration" + case customPluginConfiguration = "customPluginConfiguration" case displayName = "displayName" case serverUrl = "serverUrl" case state = "state" @@ -5501,7 +6280,7 @@ extension QBusiness { } public struct UpdateRetrieverRequest: AWSEncodableShape { - /// The identifier of your Amazon Q application. + /// The identifier of your Amazon Q Business application. public let applicationId: String public let configuration: RetrieverConfiguration? /// The name of your retriever. @@ -5623,24 +6402,39 @@ extension QBusiness { } public struct UpdateWebExperienceRequest: AWSEncodableShape { - /// The identifier of the Amazon Q application attached to the web experience. + /// The identifier of the Amazon Q Business application attached to the web experience. public let applicationId: String - /// The authentication configuration of the Amazon Q web experience. + /// The authentication configuration of the Amazon Q Business web experience. public let authenticationConfiguration: WebExperienceAuthConfiguration? + /// The Amazon Resource Name (ARN) of the role with permission to access the Amazon Q Business web experience and required resources. + public let roleArn: String? /// Determines whether sample prompts are enabled in the web experience for an end user. public let samplePromptsControlMode: WebExperienceSamplePromptsControlMode? - /// The subtitle of the Amazon Q web experience. + /// The subtitle of the Amazon Q Business web experience. public let subtitle: String? - /// The title of the Amazon Q web experience. + /// The title of the Amazon Q Business web experience. public let title: String? - /// The identifier of the Amazon Q web experience. + /// The identifier of the Amazon Q Business web experience. public let webExperienceId: String - /// A customized welcome message for an end user in an Amazon Q web experience. + /// A customized welcome message for an end user in an Amazon Q Business web experience. public let welcomeMessage: String? - public init(applicationId: String, authenticationConfiguration: WebExperienceAuthConfiguration? = nil, samplePromptsControlMode: WebExperienceSamplePromptsControlMode? = nil, subtitle: String? = nil, title: String? = nil, webExperienceId: String, welcomeMessage: String? = nil) { + public init(applicationId: String, roleArn: String? = nil, samplePromptsControlMode: WebExperienceSamplePromptsControlMode? = nil, subtitle: String? = nil, title: String? = nil, webExperienceId: String, welcomeMessage: String? = nil) { + self.applicationId = applicationId + self.authenticationConfiguration = nil + self.roleArn = roleArn + self.samplePromptsControlMode = samplePromptsControlMode + self.subtitle = subtitle + self.title = title + self.webExperienceId = webExperienceId + self.welcomeMessage = welcomeMessage + } + + @available(*, deprecated, message: "Members authenticationConfiguration have been deprecated") + public init(applicationId: String, authenticationConfiguration: WebExperienceAuthConfiguration? = nil, roleArn: String? = nil, samplePromptsControlMode: WebExperienceSamplePromptsControlMode? = nil, subtitle: String? = nil, title: String? = nil, webExperienceId: String, welcomeMessage: String? = nil) { self.applicationId = applicationId self.authenticationConfiguration = authenticationConfiguration + self.roleArn = roleArn self.samplePromptsControlMode = samplePromptsControlMode self.subtitle = subtitle self.title = title @@ -5653,6 +6447,7 @@ extension QBusiness { var container = encoder.container(keyedBy: CodingKeys.self) request.encodePath(self.applicationId, key: "applicationId") try container.encodeIfPresent(self.authenticationConfiguration, forKey: .authenticationConfiguration) + try container.encodeIfPresent(self.roleArn, forKey: .roleArn) try container.encodeIfPresent(self.samplePromptsControlMode, forKey: .samplePromptsControlMode) try container.encodeIfPresent(self.subtitle, forKey: .subtitle) try container.encodeIfPresent(self.title, forKey: .title) @@ -5665,6 +6460,8 @@ extension QBusiness { try self.validate(self.applicationId, name: "applicationId", parent: name, min: 36) try self.validate(self.applicationId, name: "applicationId", parent: name, pattern: "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$") try self.authenticationConfiguration?.validate(name: "\(name).authenticationConfiguration") + try self.validate(self.roleArn, name: "roleArn", parent: name, max: 1284) + try self.validate(self.roleArn, name: "roleArn", parent: name, pattern: "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$") try self.validate(self.subtitle, name: "subtitle", parent: name, max: 500) try self.validate(self.subtitle, name: "subtitle", parent: name, pattern: "^\\P{C}*$") try self.validate(self.title, name: "title", parent: name, max: 500) @@ -5677,6 +6474,7 @@ extension QBusiness { private enum CodingKeys: String, CodingKey { case authenticationConfiguration = "authenticationConfiguration" + case roleArn = "roleArn" case samplePromptsControlMode = "samplePromptsControlMode" case subtitle = "subtitle" case title = "title" @@ -5749,15 +6547,15 @@ extension QBusiness { } public struct WebExperience: AWSDecodableShape { - /// The Unix timestamp when the Amazon Q application was last updated. + /// The Unix timestamp when the Amazon Q Business application was last updated. public let createdAt: Date? - /// The endpoint URLs for your Amazon Q web experience. The URLs are unique and fully hosted by Amazon Web Services. + /// The endpoint URLs for your Amazon Q Business web experience. The URLs are unique and fully hosted by Amazon Web Services. public let defaultEndpoint: String? - /// The status of your Amazon Q web experience. + /// The status of your Amazon Q Business web experience. public let status: WebExperienceStatus? - /// The Unix timestamp when your Amazon Q web experience was updated. + /// The Unix timestamp when your Amazon Q Business web experience was updated. public let updatedAt: Date? - /// The identifier of your Amazon Q web experience. + /// The identifier of your Amazon Q Business web experience. public let webExperienceId: String? public init(createdAt: Date? = nil, defaultEndpoint: String? = nil, status: WebExperienceStatus? = nil, updatedAt: Date? = nil, webExperienceId: String? = nil) { @@ -5777,6 +6575,23 @@ extension QBusiness { } } + public struct ChatModeConfiguration: AWSEncodableShape { + /// Configuration information required to invoke chat in PLUGIN_MODE. + public let pluginConfiguration: PluginConfiguration? + + public init(pluginConfiguration: PluginConfiguration? = nil) { + self.pluginConfiguration = pluginConfiguration + } + + public func validate(name: String) throws { + try self.pluginConfiguration?.validate(name: "\(name).pluginConfiguration") + } + + private enum CodingKeys: String, CodingKey { + case pluginConfiguration = "pluginConfiguration" + } + } + public struct WebExperienceAuthConfiguration: AWSEncodableShape & AWSDecodableShape { public let samlConfiguration: SamlConfiguration? @@ -5831,17 +6646,17 @@ public struct QBusinessErrorType: AWSErrorType { public static var accessDeniedException: Self { .init(.accessDeniedException) } /// You are trying to perform an action that conflicts with the current status of your resource. Fix any inconsistences with your resources and try again. public static var conflictException: Self { .init(.conflictException) } - /// An issue occurred with the internal server used for your Amazon Q service. Wait some minutes and try again, or contact Support for help. + /// An issue occurred with the internal server used for your Amazon Q Business service. Wait some minutes and try again, or contact Support for help. public static var internalServerException: Self { .init(.internalServerException) } /// You don't have permissions to perform the action because your license is inactive. Ask your admin to activate your license and try again after your licence is active. public static var licenseNotFoundException: Self { .init(.licenseNotFoundException) } /// The resource you want to use doesn’t exist. Make sure you have provided the correct resource and try again. public static var resourceNotFoundException: Self { .init(.resourceNotFoundException) } - /// You have exceeded the set limits for your Amazon Q service. + /// You have exceeded the set limits for your Amazon Q Business service. public static var serviceQuotaExceededException: Self { .init(.serviceQuotaExceededException) } /// The request was denied due to throttling. Reduce the number of requests and try again. public static var throttlingException: Self { .init(.throttlingException) } - /// The input doesn't meet the constraints set by the Amazon Q service. Provide the correct input and try again. + /// The input doesn't meet the constraints set by the Amazon Q Business service. Provide the correct input and try again. public static var validationException: Self { .init(.validationException) } } diff --git a/Sources/Soto/Services/QConnect/QConnect_api.swift b/Sources/Soto/Services/QConnect/QConnect_api.swift index 9d9e86b2eb..5818d9af3c 100644 --- a/Sources/Soto/Services/QConnect/QConnect_api.swift +++ b/Sources/Soto/Services/QConnect/QConnect_api.swift @@ -19,7 +19,7 @@ /// Service object for interacting with AWS QConnect service. /// -/// Powered by Amazon Bedrock: Amazon Web Services implements automated abuse detection. Because Amazon Q in Connect is built on Amazon Bedrock, users can take full advantage of the controls implemented in Amazon Bedrock to enforce safety, security, and the responsible use of artificial intelligence (AI). Amazon Q in Connect is a generative AI customer service assistant. It is an LLM-enhanced evolution of Amazon Connect Wisdom that delivers real-time recommendations to help contact center agents resolve customer issues quickly and accurately. Amazon Q automatically detects customer intent during calls and chats using conversational analytics and natural language understanding (NLU). It then provides agents with immediate, real-time generative responses and suggested actions, and links to relevant documents and articles. Agents can also query Amazon Q directly using natural language or keywords to answer customer requests. Use the Amazon Q in Connect APIs to create an assistant and a knowledge base, for example, or manage content by uploading custom files. For more information, see Use Amazon Q in Connect for generative AI powered agent assistance in real-time in the Amazon Connect Administrator Guide. +/// Powered by Amazon Bedrock: Amazon Web Services implements automated abuse detection. Because Amazon Q in Connect is built on Amazon Bedrock, users can take full advantage of the controls implemented in Amazon Bedrock to enforce safety, security, and the responsible use of artificial intelligence (AI). Amazon Q in Connect is a generative AI customer service assistant. It is an LLM-enhanced evolution of Amazon Connect Wisdom that delivers real-time recommendations to help contact center agents resolve customer issues quickly and accurately. Amazon Q in Connect automatically detects customer intent during calls and chats using conversational analytics and natural language understanding (NLU). It then provides agents with immediate, real-time generative responses and suggested actions, and links to relevant documents and articles. Agents can also query Amazon Q in Connect directly using natural language or keywords to answer customer requests. Use the Amazon Q in Connect APIs to create an assistant and a knowledge base, for example, or manage content by uploading custom files. For more information, see Use Amazon Q in Connect for generative AI powered agent assistance in real-time in the Amazon Connect Administrator Guide. public struct QConnect: AWSService { // MARK: Member variables @@ -107,7 +107,7 @@ public struct QConnect: AWSService { ) } - /// Creates Amazon Q content. Before to calling this API, use StartContentUpload to upload an asset. + /// Creates Amazon Q in Connect content. Before to calling this API, use StartContentUpload to upload an asset. @Sendable public func createContent(_ input: CreateContentRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateContentResponse { return try await self.client.execute( @@ -133,7 +133,7 @@ public struct QConnect: AWSService { ) } - /// Creates an Amazon Q quick response. + /// Creates an Amazon Q in Connect quick response. @Sendable public func createQuickResponse(_ input: CreateQuickResponseRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateQuickResponseResponse { return try await self.client.execute( @@ -146,7 +146,7 @@ public struct QConnect: AWSService { ) } - /// Creates a session. A session is a contextual container used for generating recommendations. Amazon Connect creates a new Amazon Q session for each contact on which Amazon Q is enabled. + /// Creates a session. A session is a contextual container used for generating recommendations. Amazon Connect creates a new Amazon Q in Connect session for each contact on which Amazon Q in Connect is enabled. @Sendable public func createSession(_ input: CreateSessionRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateSessionResponse { return try await self.client.execute( @@ -328,7 +328,7 @@ public struct QConnect: AWSService { ) } - /// Retrieves recommendations for the specified session. To avoid retrieving the same recommendations in subsequent calls, use NotifyRecommendationsReceived. This API supports long-polling behavior with the waitTimeSeconds parameter. Short poll is the default behavior and only returns recommendations already available. To perform a manual query against an assistant, use QueryAssistant. + /// This API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024, you will need to create a new Assistant in the Amazon Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications. Retrieves recommendations for the specified session. To avoid retrieving the same recommendations in subsequent calls, use NotifyRecommendationsReceived. This API supports long-polling behavior with the waitTimeSeconds parameter. Short poll is the default behavior and only returns recommendations already available. To perform a manual query against an assistant, use QueryAssistant. @available(*, deprecated, message: "GetRecommendations API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications.") @Sendable public func getRecommendations(_ input: GetRecommendationsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetRecommendationsResponse { @@ -472,7 +472,7 @@ public struct QConnect: AWSService { ) } - /// Performs a manual search against the specified assistant. To retrieve recommendations for an assistant, use GetRecommendations. + /// This API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024, you will need to create a new Assistant in the Amazon Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications. Performs a manual search against the specified assistant. To retrieve recommendations for an assistant, use GetRecommendations. @available(*, deprecated, message: "QueryAssistant API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications.") @Sendable public func queryAssistant(_ input: QueryAssistantRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> QueryAssistantResponse { @@ -512,7 +512,7 @@ public struct QConnect: AWSService { ) } - /// Searches existing Amazon Q quick responses in an Amazon Q knowledge base. + /// Searches existing Amazon Q in Connect quick responses in an Amazon Q in Connect knowledge base. @Sendable public func searchQuickResponses(_ input: SearchQuickResponsesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SearchQuickResponsesResponse { return try await self.client.execute( @@ -551,7 +551,7 @@ public struct QConnect: AWSService { ) } - /// Start an asynchronous job to import Amazon Q resources from an uploaded source file. Before calling this API, use StartContentUpload to upload an asset that contains the resource data. For importing Amazon Q quick responses, you need to upload a csv file including the quick responses. For information about how to format the csv file for importing quick responses, see Import quick responses. + /// Start an asynchronous job to import Amazon Q in Connect resources from an uploaded source file. Before calling this API, use StartContentUpload to upload an asset that contains the resource data. For importing Amazon Q in Connect quick responses, you need to upload a csv file including the quick responses. For information about how to format the csv file for importing quick responses, see Import quick responses. @Sendable public func startImportJob(_ input: StartImportJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartImportJobResponse { return try await self.client.execute( @@ -603,7 +603,7 @@ public struct QConnect: AWSService { ) } - /// Updates the template URI of a knowledge base. This is only supported for knowledge bases of type EXTERNAL. Include a single variable in ${variable} format; this interpolated by Amazon Q using ingested content. For example, if you ingest a Salesforce article, it has an Id value, and you can set the template URI to https://myInstanceName.lightning.force.com/lightning/r/Knowledge__kav/*${Id}*/view. + /// Updates the template URI of a knowledge base. This is only supported for knowledge bases of type EXTERNAL. Include a single variable in ${variable} format; this interpolated by Amazon Q in Connect using ingested content. For example, if you ingest a Salesforce article, it has an Id value, and you can set the template URI to https://myInstanceName.lightning.force.com/lightning/r/Knowledge__kav/*${Id}*/view. @Sendable public func updateKnowledgeBaseTemplateUri(_ input: UpdateKnowledgeBaseTemplateUriRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateKnowledgeBaseTemplateUriResponse { return try await self.client.execute( @@ -616,7 +616,7 @@ public struct QConnect: AWSService { ) } - /// Updates an existing Amazon Q quick response. + /// Updates an existing Amazon Q in Connect quick response. @Sendable public func updateQuickResponse(_ input: UpdateQuickResponseRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateQuickResponseResponse { return try await self.client.execute( @@ -628,6 +628,19 @@ public struct QConnect: AWSService { logger: logger ) } + + /// Updates a session. A session is a contextual container used for generating recommendations. Amazon Connect updates the existing Amazon Q in Connect session for each contact on which Amazon Q in Connect is enabled. + @Sendable + public func updateSession(_ input: UpdateSessionRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateSessionResponse { + return try await self.client.execute( + operation: "UpdateSession", + path: "/assistants/{assistantId}/sessions/{sessionId}", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } } extension QConnect { @@ -757,7 +770,7 @@ extension QConnect { ) } - /// Performs a manual search against the specified assistant. To retrieve recommendations for an assistant, use GetRecommendations. + /// This API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024, you will need to create a new Assistant in the Amazon Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications. Performs a manual search against the specified assistant. To retrieve recommendations for an assistant, use GetRecommendations. /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -796,7 +809,7 @@ extension QConnect { ) } - /// Searches existing Amazon Q quick responses in an Amazon Q knowledge base. + /// Searches existing Amazon Q in Connect quick responses in an Amazon Q in Connect knowledge base. /// Return PaginatorSequence for operation. /// /// - Parameters: diff --git a/Sources/Soto/Services/QConnect/QConnect_shapes.swift b/Sources/Soto/Services/QConnect/QConnect_shapes.swift index 6b1a7258e9..9f2ca2208b 100644 --- a/Sources/Soto/Services/QConnect/QConnect_shapes.swift +++ b/Sources/Soto/Services/QConnect/QConnect_shapes.swift @@ -274,12 +274,128 @@ extension QConnect { } } + public enum OrCondition: AWSEncodableShape & AWSDecodableShape, Sendable { + /// A list of conditions which would be applied together with an AND condition. + case andConditions([TagCondition]) + /// A leaf node condition which can be used to specify a tag condition. + case tagCondition(TagCondition) + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + guard container.allKeys.count == 1, let key = container.allKeys.first else { + let context = DecodingError.Context( + codingPath: container.codingPath, + debugDescription: "Expected exactly one key, but got \(container.allKeys.count)" + ) + throw DecodingError.dataCorrupted(context) + } + switch key { + case .andConditions: + let value = try container.decode([TagCondition].self, forKey: .andConditions) + self = .andConditions(value) + case .tagCondition: + let value = try container.decode(TagCondition.self, forKey: .tagCondition) + self = .tagCondition(value) + } + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case .andConditions(let value): + try container.encode(value, forKey: .andConditions) + case .tagCondition(let value): + try container.encode(value, forKey: .tagCondition) + } + } + + public func validate(name: String) throws { + switch self { + case .andConditions(let value): + try value.forEach { + try $0.validate(name: "\(name).andConditions[]") + } + case .tagCondition(let value): + try value.validate(name: "\(name).tagCondition") + } + } + + private enum CodingKeys: String, CodingKey { + case andConditions = "andConditions" + case tagCondition = "tagCondition" + } + } + + public enum TagFilter: AWSEncodableShape & AWSDecodableShape, Sendable { + /// A list of conditions which would be applied together with an AND condition. + case andConditions([TagCondition]) + /// A list of conditions which would be applied together with an OR condition. + case orConditions([OrCondition]) + /// A leaf node condition which can be used to specify a tag condition. + case tagCondition(TagCondition) + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + guard container.allKeys.count == 1, let key = container.allKeys.first else { + let context = DecodingError.Context( + codingPath: container.codingPath, + debugDescription: "Expected exactly one key, but got \(container.allKeys.count)" + ) + throw DecodingError.dataCorrupted(context) + } + switch key { + case .andConditions: + let value = try container.decode([TagCondition].self, forKey: .andConditions) + self = .andConditions(value) + case .orConditions: + let value = try container.decode([OrCondition].self, forKey: .orConditions) + self = .orConditions(value) + case .tagCondition: + let value = try container.decode(TagCondition.self, forKey: .tagCondition) + self = .tagCondition(value) + } + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case .andConditions(let value): + try container.encode(value, forKey: .andConditions) + case .orConditions(let value): + try container.encode(value, forKey: .orConditions) + case .tagCondition(let value): + try container.encode(value, forKey: .tagCondition) + } + } + + public func validate(name: String) throws { + switch self { + case .andConditions(let value): + try value.forEach { + try $0.validate(name: "\(name).andConditions[]") + } + case .orConditions(let value): + try value.forEach { + try $0.validate(name: "\(name).orConditions[]") + } + case .tagCondition(let value): + try value.validate(name: "\(name).tagCondition") + } + } + + private enum CodingKeys: String, CodingKey { + case andConditions = "andConditions" + case orConditions = "orConditions" + case tagCondition = "tagCondition" + } + } + // MARK: Shapes public struct AppIntegrationsConfiguration: AWSEncodableShape & AWSDecodableShape { /// The Amazon Resource Name (ARN) of the AppIntegrations DataIntegration to use for ingesting content. For Salesforce, your AppIntegrations DataIntegration must have an ObjectConfiguration if objectFields is not provided, including at least Id, ArticleNumber, VersionNumber, Title, PublishStatus, and IsDeleted as source fields. For ServiceNow, your AppIntegrations DataIntegration must have an ObjectConfiguration if objectFields is not provided, including at least number, short_description, sys_mod_count, workflow_state, and active as source fields. For Zendesk, your AppIntegrations DataIntegration must have an ObjectConfiguration if objectFields is not provided, including at least id, title, updated_at, and draft as source fields. For SharePoint, your AppIntegrations DataIntegration must have a FileConfiguration, including only file extensions that are among docx, pdf, html, htm, and txt. For Amazon S3, the ObjectConfiguration and FileConfiguration of your AppIntegrations DataIntegration must be null. The SourceURI of your DataIntegration must use the following format: s3://your_s3_bucket_name. The bucket policy of the corresponding S3 bucket must allow the Amazon Web Services principal app-integrations.amazonaws.com to perform s3:ListBucket, s3:GetObject, and s3:GetBucketLocation against the bucket. public let appIntegrationArn: String - /// The fields from the source that are made available to your agents in Amazon Q. Optional if ObjectConfiguration is included in the provided DataIntegration. For Salesforce, you must include at least Id, ArticleNumber, VersionNumber, Title, PublishStatus, and IsDeleted. For ServiceNow, you must include at least number, short_description, sys_mod_count, workflow_state, and active. For Zendesk, you must include at least id, title, updated_at, and draft. Make sure to include additional fields. These fields are indexed and used to source recommendations. + /// The fields from the source that are made available to your agents in Amazon Q in Connect. Optional if ObjectConfiguration is included in the provided DataIntegration. For Salesforce, you must include at least Id, ArticleNumber, VersionNumber, Title, PublishStatus, and IsDeleted. For ServiceNow, you must include at least number, short_description, sys_mod_count, workflow_state, and active. For Zendesk, you must include at least id, title, updated_at, and draft. Make sure to include additional fields. These fields are indexed and used to source recommendations. public let objectFields: [String]? public init(appIntegrationArn: String, objectFields: [String]? = nil) { @@ -306,13 +422,13 @@ extension QConnect { } public struct AssistantAssociationData: AWSDecodableShape { - /// The Amazon Resource Name (ARN) of the Amazon Q assistant. + /// The Amazon Resource Name (ARN) of the Amazon Q in Connect assistant. public let assistantArn: String /// The Amazon Resource Name (ARN) of the assistant association. public let assistantAssociationArn: String /// The identifier of the assistant association. public let assistantAssociationId: String - /// The identifier of the Amazon Q assistant. + /// The identifier of the Amazon Q in Connect assistant. public let assistantId: String /// A union type that currently has a single argument, the knowledge base ID. public let associationData: AssistantAssociationOutputData @@ -343,13 +459,13 @@ extension QConnect { } public struct AssistantAssociationSummary: AWSDecodableShape { - /// The Amazon Resource Name (ARN) of the Amazon Q assistant. + /// The Amazon Resource Name (ARN) of the Amazon Q in Connect assistant. public let assistantArn: String /// The Amazon Resource Name (ARN) of the assistant association. public let assistantAssociationArn: String /// The identifier of the assistant association. public let assistantAssociationId: String - /// The identifier of the Amazon Q assistant. + /// The identifier of the Amazon Q in Connect assistant. public let assistantId: String /// The association data. public let associationData: AssistantAssociationOutputData @@ -380,7 +496,7 @@ extension QConnect { } public struct AssistantCapabilityConfiguration: AWSDecodableShape { - /// The type of Amazon Q assistant capability. + /// The type of Amazon Q in Connect assistant capability. public let type: AssistantCapabilityType? public init(type: AssistantCapabilityType? = nil) { @@ -393,19 +509,19 @@ extension QConnect { } public struct AssistantData: AWSDecodableShape { - /// The Amazon Resource Name (ARN) of the Amazon Q assistant. + /// The Amazon Resource Name (ARN) of the Amazon Q in Connect assistant. public let assistantArn: String - /// The identifier of the Amazon Q assistant. + /// The identifier of the Amazon Q in Connect assistant. public let assistantId: String - /// The configuration information for the Amazon Q assistant capability. + /// The configuration information for the Amazon Q in Connect assistant capability. public let capabilityConfiguration: AssistantCapabilityConfiguration? /// The description. public let description: String? - /// The configuration information for the Amazon Q assistant integration. + /// The configuration information for the Amazon Q in Connect assistant integration. public let integrationConfiguration: AssistantIntegrationConfiguration? /// The name. public let name: String - /// The configuration information for the customer managed key used for encryption. This KMS key must have a policy that allows kms:CreateGrant, kms:DescribeKey, kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using the key to invoke Amazon Q. To use Amazon Q with chat, the key policy must also allow kms:Decrypt, kms:GenerateDataKey*, and kms:DescribeKey permissions to the connect.amazonaws.com service principal. For more information about setting up a customer managed key for Amazon Q, see Enable Amazon Q in Connect for your instance. + /// The configuration information for the customer managed key used for encryption. This KMS key must have a policy that allows kms:CreateGrant, kms:DescribeKey, kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using the key to invoke Amazon Q in Connect. To use Amazon Q in Connect with chat, the key policy must also allow kms:Decrypt, kms:GenerateDataKey*, and kms:DescribeKey permissions to the connect.amazonaws.com service principal. For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for your instance. public let serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration? /// The status of the assistant. public let status: AssistantStatus @@ -455,19 +571,19 @@ extension QConnect { } public struct AssistantSummary: AWSDecodableShape { - /// The Amazon Resource Name (ARN) of the Amazon Q assistant. + /// The Amazon Resource Name (ARN) of the Amazon Q in Connect assistant. public let assistantArn: String - /// The identifier of the Amazon Q assistant. + /// The identifier of the Amazon Q in Connect assistant. public let assistantId: String - /// The configuration information for the Amazon Q assistant capability. + /// The configuration information for the Amazon Q in Connect assistant capability. public let capabilityConfiguration: AssistantCapabilityConfiguration? /// The description of the assistant. public let description: String? - /// The configuration information for the Amazon Q assistant integration. + /// The configuration information for the Amazon Q in Connect assistant integration. public let integrationConfiguration: AssistantIntegrationConfiguration? /// The name of the assistant. public let name: String - /// The configuration information for the customer managed key used for encryption. This KMS key must have a policy that allows kms:CreateGrant, kms:DescribeKey, kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using the key to invoke Amazon Q. To use Amazon Q with chat, the key policy must also allow kms:Decrypt, kms:GenerateDataKey*, and kms:DescribeKey permissions to the connect.amazonaws.com service principal. For more information about setting up a customer managed key for Amazon Q, see Enable Amazon Q in Connect for your instance. + /// The configuration information for the customer managed key used for encryption. This KMS key must have a policy that allows kms:CreateGrant, kms:DescribeKey, kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using the key to invoke Amazon Q in Connect. To use Amazon Q in Connect with chat, the key policy must also allow kms:Decrypt, kms:GenerateDataKey*, and kms:DescribeKey permissions to the connect.amazonaws.com service principal. For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for your instance. public let serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration? /// The status of the assistant. public let status: AssistantStatus @@ -530,13 +646,12 @@ extension QConnect { public let contentType: String /// The Amazon Resource Name (ARN) of the knowledge base. public let knowledgeBaseArn: String - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. + /// The identifier of the knowledge base. public let knowledgeBaseId: String /// The URI of the content. public let linkOutUri: String? /// A key/value map to store attributes without affecting tagging or recommendations. - /// For example, when synchronizing data between an external system and Amazon Q, you can store an external version identifier as metadata to utilize for determining drift. + /// For example, when synchronizing data between an external system and Amazon Q in Connect, you can store an external version identifier as metadata to utilize for determining drift. public let metadata: [String: String] /// The name of the content. public let name: String @@ -612,8 +727,7 @@ extension QConnect { public let contentId: String? /// The Amazon Resource Name (ARN) of the knowledge base. public let knowledgeBaseArn: String? - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. + /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base. public let knowledgeBaseId: String? public init(contentArn: String? = nil, contentId: String? = nil, knowledgeBaseArn: String? = nil, knowledgeBaseId: String? = nil) { @@ -640,11 +754,10 @@ extension QConnect { public let contentType: String /// The Amazon Resource Name (ARN) of the knowledge base. public let knowledgeBaseArn: String - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. + /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base. public let knowledgeBaseId: String /// A key/value map to store attributes without affecting tagging or recommendations. - /// For example, when synchronizing data between an external system and Amazon Q, you can store an external version identifier as metadata to utilize for determining drift. + /// For example, when synchronizing data between an external system and Amazon Q in Connect, you can store an external version identifier as metadata to utilize for determining drift. public let metadata: [String: String] /// The name of the content. public let name: String @@ -687,7 +800,7 @@ extension QConnect { } public struct CreateAssistantAssociationRequest: AWSEncodableShape { - /// The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. public let assistantId: String /// The identifier of the associated resource. public let association: AssistantAssociationInputData @@ -758,7 +871,7 @@ extension QConnect { public let description: String? /// The name of the assistant. public let name: String - /// The configuration information for the customer managed key used for encryption. The customer managed key must have a policy that allows kms:CreateGrant, kms:DescribeKey, kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using the key to invoke Amazon Q. To use Amazon Q with chat, the key policy must also allow kms:Decrypt, kms:GenerateDataKey*, and kms:DescribeKey permissions to the connect.amazonaws.com service principal. For more information about setting up a customer managed key for Amazon Q, see Enable Amazon Q in Connect for your instance. + /// The configuration information for the customer managed key used for encryption. The customer managed key must have a policy that allows kms:CreateGrant, kms:DescribeKey, kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using the key to invoke Amazon Q in Connect. To use Amazon Q in Connect with chat, the key policy must also allow kms:Decrypt, kms:GenerateDataKey*, and kms:DescribeKey permissions to the connect.amazonaws.com service principal. For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for your instance. public let serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration? /// The tags used to organize, track, or control access for this resource. public let tags: [String: String]? @@ -819,11 +932,10 @@ extension QConnect { public struct CreateContentRequest: AWSEncodableShape { /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs. public let clientToken: String? - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String /// A key/value map to store attributes without affecting tagging or recommendations. - /// For example, when synchronizing data between an external system and Amazon Q, you can store an external version identifier as metadata to utilize for determining drift. + /// For example, when synchronizing data between an external system and Amazon Q in Connect, you can store an external version identifier as metadata to utilize for determining drift. public let metadata: [String: String]? /// The name of the content. Each piece of content in a knowledge base must have a unique name. You can retrieve a piece of content using only its knowledge base and its name with the SearchContent API. public let name: String @@ -924,7 +1036,7 @@ extension QConnect { public let name: String /// Information about how to render the content. public let renderingConfiguration: RenderingConfiguration? - /// The configuration information for the customer managed key used for encryption. This KMS key must have a policy that allows kms:CreateGrant, kms:DescribeKey, kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using the key to invoke Amazon Q. For more information about setting up a customer managed key for Amazon Q, see Enable Amazon Q in Connect for your instance. + /// The configuration information for the customer managed key used for encryption. This KMS key must have a policy that allows kms:CreateGrant, kms:DescribeKey, kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using the key to invoke Amazon Q in Connect. For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for your instance. public let serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration? /// The source of the knowledge base content. Only set this argument for EXTERNAL knowledge bases. public let sourceConfiguration: SourceConfiguration? @@ -1003,10 +1115,9 @@ extension QConnect { public let groupingConfiguration: GroupingConfiguration? /// Whether the quick response is active. public let isActive: Bool? - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String - /// The language code value for the language in which the quick response is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + /// The language code value for the language in which the quick response is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW public let language: String? /// The name of the quick response. public let name: String @@ -1104,7 +1215,7 @@ extension QConnect { } public struct CreateSessionRequest: AWSEncodableShape { - /// The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. public let assistantId: String /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs. public let clientToken: String? @@ -1112,14 +1223,17 @@ extension QConnect { public let description: String? /// The name of the session. public let name: String + /// An object that can be used to specify Tag conditions. + public let tagFilter: TagFilter? /// The tags used to organize, track, or control access for this resource. public let tags: [String: String]? - public init(assistantId: String, clientToken: String? = CreateSessionRequest.idempotencyToken(), description: String? = nil, name: String, tags: [String: String]? = nil) { + public init(assistantId: String, clientToken: String? = CreateSessionRequest.idempotencyToken(), description: String? = nil, name: String, tagFilter: TagFilter? = nil, tags: [String: String]? = nil) { self.assistantId = assistantId self.clientToken = clientToken self.description = description self.name = name + self.tagFilter = tagFilter self.tags = tags } @@ -1130,6 +1244,7 @@ extension QConnect { try container.encodeIfPresent(self.clientToken, forKey: .clientToken) try container.encodeIfPresent(self.description, forKey: .description) try container.encode(self.name, forKey: .name) + try container.encodeIfPresent(self.tagFilter, forKey: .tagFilter) try container.encodeIfPresent(self.tags, forKey: .tags) } @@ -1143,6 +1258,7 @@ extension QConnect { try self.validate(self.name, name: "name", parent: name, max: 255) try self.validate(self.name, name: "name", parent: name, min: 1) try self.validate(self.name, name: "name", parent: name, pattern: "^[a-zA-Z0-9\\s_.,-]+") + try self.tagFilter?.validate(name: "\(name).tagFilter") try self.tags?.forEach { try validate($0.key, name: "tags.key", parent: name, max: 128) try validate($0.key, name: "tags.key", parent: name, min: 1) @@ -1156,6 +1272,7 @@ extension QConnect { case clientToken = "clientToken" case description = "description" case name = "name" + case tagFilter = "tagFilter" case tags = "tags" } } @@ -1193,7 +1310,7 @@ extension QConnect { public struct DeleteAssistantAssociationRequest: AWSEncodableShape { /// The identifier of the assistant association. Can be either the ID or the ARN. URLs cannot contain the ARN. public let assistantAssociationId: String - /// The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. public let assistantId: String public init(assistantAssociationId: String, assistantId: String) { @@ -1221,7 +1338,7 @@ extension QConnect { } public struct DeleteAssistantRequest: AWSEncodableShape { - /// The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. public let assistantId: String public init(assistantId: String) { @@ -1248,8 +1365,7 @@ extension QConnect { public struct DeleteContentRequest: AWSEncodableShape { /// The identifier of the content. Can be either the ID or the ARN. URLs cannot contain the ARN. public let contentId: String - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String public init(contentId: String, knowledgeBaseId: String) { @@ -1279,8 +1395,7 @@ extension QConnect { public struct DeleteImportJobRequest: AWSEncodableShape { /// The identifier of the import job to be deleted. public let importJobId: String - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. + /// The identifier of the knowledge base. public let knowledgeBaseId: String public init(importJobId: String, knowledgeBaseId: String) { @@ -1333,8 +1448,7 @@ extension QConnect { } public struct DeleteQuickResponseRequest: AWSEncodableShape { - /// The knowledge base from which the quick response is deleted. The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. + /// The knowledge base from which the quick response is deleted. The identifier of the knowledge base. public let knowledgeBaseId: String /// The identifier of the quick response to delete. public let quickResponseId: String @@ -1502,7 +1616,7 @@ extension QConnect { public struct GetAssistantAssociationRequest: AWSEncodableShape { /// The identifier of the assistant association. Can be either the ID or the ARN. URLs cannot contain the ARN. public let assistantAssociationId: String - /// The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. public let assistantId: String public init(assistantAssociationId: String, assistantId: String) { @@ -1539,7 +1653,7 @@ extension QConnect { } public struct GetAssistantRequest: AWSEncodableShape { - /// The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. public let assistantId: String public init(assistantId: String) { @@ -1575,8 +1689,7 @@ extension QConnect { public struct GetContentRequest: AWSEncodableShape { /// The identifier of the content. Can be either the ID or the ARN. URLs cannot contain the ARN. public let contentId: String - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String public init(contentId: String, knowledgeBaseId: String) { @@ -1615,8 +1728,7 @@ extension QConnect { public struct GetContentSummaryRequest: AWSEncodableShape { /// The identifier of the content. Can be either the ID or the ARN. URLs cannot contain the ARN. public let contentId: String - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String public init(contentId: String, knowledgeBaseId: String) { @@ -1692,8 +1804,7 @@ extension QConnect { } public struct GetKnowledgeBaseRequest: AWSEncodableShape { - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String public init(knowledgeBaseId: String) { @@ -1766,7 +1877,7 @@ extension QConnect { } public struct GetRecommendationsRequest: AWSEncodableShape { - /// The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. public let assistantId: String /// The maximum number of results to return per page. public let maxResults: Int? @@ -1821,7 +1932,7 @@ extension QConnect { } public struct GetSessionRequest: AWSEncodableShape { - /// The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. public let assistantId: String /// The identifier of the session. Can be either the ID or the ARN. URLs cannot contain the ARN. public let sessionId: String @@ -1860,9 +1971,9 @@ extension QConnect { } public struct GroupingConfiguration: AWSEncodableShape & AWSDecodableShape { - /// The criteria used for grouping Amazon Q users. The following is the list of supported criteria values. RoutingProfileArn: Grouping the users by their Amazon Connect routing profile ARN. User should have SearchRoutingProfile and DescribeRoutingProfile permissions when setting criteria to this value. + /// The criteria used for grouping Amazon Q in Connect users. The following is the list of supported criteria values. RoutingProfileArn: Grouping the users by their Amazon Connect routing profile ARN. User should have SearchRoutingProfile and DescribeRoutingProfile permissions when setting criteria to this value. public let criteria: String? - /// The list of values that define different groups of Amazon Q users. When setting criteria to RoutingProfileArn, you need to provide a list of ARNs of Amazon Connect routing profiles as values of this parameter. + /// The list of values that define different groups of Amazon Q in Connect users. When setting criteria to RoutingProfileArn, you need to provide a list of ARNs of Amazon Connect routing profiles as values of this parameter. public let values: [String]? public init(criteria: String? = nil, values: [String]? = nil) { @@ -1914,12 +2025,11 @@ extension QConnect { public let importJobType: ImportJobType /// The Amazon Resource Name (ARN) of the knowledge base. public let knowledgeBaseArn: String - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. + /// The identifier of the knowledge base. public let knowledgeBaseId: String /// The timestamp when the import job data was last modified. public let lastModifiedTime: Date - /// The metadata fields of the imported Amazon Q resources. + /// The metadata fields of the imported Amazon Q in Connect resources. public let metadata: [String: String]? /// The status of the import job. public let status: ImportJobStatus @@ -1974,12 +2084,11 @@ extension QConnect { public let importJobType: ImportJobType /// The Amazon Resource Name (ARN) of the knowledge base. public let knowledgeBaseArn: String - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. + /// The identifier of the knowledge base. public let knowledgeBaseId: String /// The timestamp when the import job was last modified. public let lastModifiedTime: Date - /// The metadata fields of the imported Amazon Q resources. + /// The metadata fields of the imported Amazon Q in Connect resources. public let metadata: [String: String]? /// The status of the import job. public let status: ImportJobStatus @@ -2016,8 +2125,7 @@ extension QConnect { public struct KnowledgeBaseAssociationData: AWSDecodableShape { /// The Amazon Resource Name (ARN) of the knowledge base. public let knowledgeBaseArn: String? - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. + /// The identifier of the knowledge base. public let knowledgeBaseId: String? public init(knowledgeBaseArn: String? = nil, knowledgeBaseId: String? = nil) { @@ -2036,8 +2144,7 @@ extension QConnect { public let description: String? /// The Amazon Resource Name (ARN) of the knowledge base. public let knowledgeBaseArn: String - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. + /// The identifier of the knowledge base. public let knowledgeBaseId: String /// The type of knowledge base. public let knowledgeBaseType: KnowledgeBaseType @@ -2047,7 +2154,7 @@ extension QConnect { public let name: String /// Information about how to render the content. public let renderingConfiguration: RenderingConfiguration? - /// The configuration information for the customer managed key used for encryption. This KMS key must have a policy that allows kms:CreateGrant, kms:DescribeKey, kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using the key to invoke Amazon Q. For more information about setting up a customer managed key for Amazon Q, see Enable Amazon Q in Connect for your instance. + /// The configuration information for the customer managed key used for encryption. This KMS key must have a policy that allows kms:CreateGrant, kms:DescribeKey, kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using the key to invoke Amazon Q in Connect. For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for your instance. public let serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration? /// Source configuration information about the knowledge base. public let sourceConfiguration: SourceConfiguration? @@ -2090,8 +2197,7 @@ extension QConnect { public let description: String? /// The Amazon Resource Name (ARN) of the knowledge base. public let knowledgeBaseArn: String - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. + /// The identifier of the knowledge base. public let knowledgeBaseId: String /// The type of knowledge base. public let knowledgeBaseType: KnowledgeBaseType @@ -2099,7 +2205,7 @@ extension QConnect { public let name: String /// Information about how to render the content. public let renderingConfiguration: RenderingConfiguration? - /// The configuration information for the customer managed key used for encryption. This KMS key must have a policy that allows kms:CreateGrant, kms:DescribeKey, kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using the key to invoke Amazon Q. For more information about setting up a customer managed key for Amazon Q, see Enable Amazon Q in Connect for your instance. + /// The configuration information for the customer managed key used for encryption. This KMS key must have a policy that allows kms:CreateGrant, kms:DescribeKey, kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using the key to invoke Amazon Q in Connect. For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for your instance. public let serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration? /// Configuration information about the external data source. public let sourceConfiguration: SourceConfiguration? @@ -2136,7 +2242,7 @@ extension QConnect { } public struct ListAssistantAssociationsRequest: AWSEncodableShape { - /// The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. public let assistantId: String /// The maximum number of results to return per page. public let maxResults: Int? @@ -2233,8 +2339,7 @@ extension QConnect { } public struct ListContentsRequest: AWSEncodableShape { - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String /// The maximum number of results to return per page. public let maxResults: Int? @@ -2285,8 +2390,7 @@ extension QConnect { } public struct ListImportJobsRequest: AWSEncodableShape { - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String /// The maximum number of results to return per page. public let maxResults: Int? @@ -2384,8 +2488,7 @@ extension QConnect { } public struct ListQuickResponsesRequest: AWSEncodableShape { - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String /// The maximum number of results to return per page. public let maxResults: Int? @@ -2488,7 +2591,7 @@ extension QConnect { } public struct NotifyRecommendationsReceivedRequest: AWSEncodableShape { - /// The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. public let assistantId: String /// The identifiers of the recommendations. public let recommendationIds: [String] @@ -2542,7 +2645,7 @@ extension QConnect { } public struct PutFeedbackRequest: AWSEncodableShape { - /// The identifier of the Amazon Q assistant. + /// The identifier of the Amazon Q in Connect assistant. public let assistantId: String /// Information about the feedback provided. public let contentFeedback: ContentFeedbackData @@ -2580,9 +2683,9 @@ extension QConnect { } public struct PutFeedbackResponse: AWSDecodableShape { - /// The Amazon Resource Name (ARN) of the Amazon Q assistant. + /// The Amazon Resource Name (ARN) of the Amazon Q in Connect assistant. public let assistantArn: String - /// The identifier of the Amazon Q assistant. + /// The identifier of the Amazon Q in Connect assistant. public let assistantId: String /// Information about the feedback provided. public let contentFeedback: ContentFeedbackData @@ -2609,7 +2712,7 @@ extension QConnect { } public struct QueryAssistantRequest: AWSEncodableShape { - /// The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. public let assistantId: String /// The maximum number of results to return per page. public let maxResults: Int? @@ -2620,7 +2723,7 @@ extension QConnect { public let queryCondition: [QueryCondition]? /// The text to search for. public let queryText: String - /// The identifier of the Amazon Q session. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the Amazon Q in Connect session. Can be either the ID or the ARN. URLs cannot contain the ARN. public let sessionId: String? public init(assistantId: String, maxResults: Int? = nil, nextToken: String? = nil, queryCondition: [QueryCondition]? = nil, queryText: String, sessionId: String? = nil) { @@ -2754,8 +2857,7 @@ extension QConnect { public let isActive: Bool? /// The Amazon Resource Name (ARN) of the knowledge base. public let knowledgeBaseArn: String - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String /// The language code value for the language in which the quick response is written. public let language: String? @@ -2971,8 +3073,7 @@ extension QConnect { public let isActive: Bool /// The Amazon Resource Name (ARN) of the knowledge base. public let knowledgeBaseArn: String - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String /// The language code value for the language in which the quick response is written. public let language: String? @@ -3053,8 +3154,7 @@ extension QConnect { public let isActive: Bool? /// The Amazon Resource Name (ARN) of the knowledge base. public let knowledgeBaseArn: String - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. + /// The identifier of the knowledge base. public let knowledgeBaseId: String /// The Amazon Resource Name (ARN) of the user who last updated the quick response data. public let lastModifiedBy: String? @@ -3186,8 +3286,7 @@ extension QConnect { } public struct RemoveKnowledgeBaseTemplateUriRequest: AWSEncodableShape { - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String public init(knowledgeBaseId: String) { @@ -3259,8 +3358,7 @@ extension QConnect { } public struct SearchContentRequest: AWSEncodableShape { - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String /// The maximum number of results to return per page. public let maxResults: Int? @@ -3401,7 +3499,7 @@ extension QConnect { } public struct SearchSessionsRequest: AWSEncodableShape { - /// The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. public let assistantId: String /// The maximum number of results to return per page. public let maxResults: Int? @@ -3459,7 +3557,7 @@ extension QConnect { } public struct ServerSideEncryptionConfiguration: AWSEncodableShape & AWSDecodableShape { - /// The customer managed key used for encryption. For more information about setting up a customer managed key for Amazon Q, see Enable Amazon Q in Connect for your instance. For information about valid ID values, see Key identifiers (KeyId). + /// The customer managed key used for encryption. For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for your instance. For information about valid ID values, see Key identifiers (KeyId). public let kmsKeyId: String? public init(kmsKeyId: String? = nil) { @@ -3487,15 +3585,18 @@ extension QConnect { public let sessionArn: String /// The identifier of the session. public let sessionId: String + /// An object that can be used to specify Tag conditions. + public let tagFilter: TagFilter? /// The tags used to organize, track, or control access for this resource. public let tags: [String: String]? - public init(description: String? = nil, integrationConfiguration: SessionIntegrationConfiguration? = nil, name: String, sessionArn: String, sessionId: String, tags: [String: String]? = nil) { + public init(description: String? = nil, integrationConfiguration: SessionIntegrationConfiguration? = nil, name: String, sessionArn: String, sessionId: String, tagFilter: TagFilter? = nil, tags: [String: String]? = nil) { self.description = description self.integrationConfiguration = integrationConfiguration self.name = name self.sessionArn = sessionArn self.sessionId = sessionId + self.tagFilter = tagFilter self.tags = tags } @@ -3505,6 +3606,7 @@ extension QConnect { case name = "name" case sessionArn = "sessionArn" case sessionId = "sessionId" + case tagFilter = "tagFilter" case tags = "tags" } } @@ -3523,9 +3625,9 @@ extension QConnect { } public struct SessionSummary: AWSDecodableShape { - /// The Amazon Resource Name (ARN) of the Amazon Q assistant. + /// The Amazon Resource Name (ARN) of the Amazon Q in Connect assistant. public let assistantArn: String - /// The identifier of the Amazon Q assistant. + /// The identifier of the Amazon Q in Connect assistant. public let assistantId: String /// The Amazon Resource Name (ARN) of the session. public let sessionArn: String @@ -3575,8 +3677,7 @@ extension QConnect { public struct StartContentUploadRequest: AWSEncodableShape { /// The type of content to upload. public let contentType: String - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String /// The expected expiration time of the generated presigned URL, specified in minutes. public let presignedUrlTimeToLive: Int? @@ -3640,10 +3741,9 @@ extension QConnect { public let externalSourceConfiguration: ExternalSourceConfiguration? /// The type of the import job. For importing quick response resource, set the value to QUICK_RESPONSES. public let importJobType: ImportJobType - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. For importing Amazon Q quick responses, this should be a QUICK_RESPONSES type knowledge base. + /// The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. For importing Amazon Q in Connect quick responses, this should be a QUICK_RESPONSES type knowledge base. public let knowledgeBaseId: String - /// The metadata fields of the imported Amazon Q resources. + /// The metadata fields of the imported Amazon Q in Connect resources. public let metadata: [String: String]? /// A pointer to the uploaded asset. This value is returned by StartContentUpload. public let uploadId: String @@ -3706,6 +3806,31 @@ extension QConnect { } } + public struct TagCondition: AWSEncodableShape & AWSDecodableShape { + /// The tag key in the tag condition. + public let key: String + /// The tag value in the tag condition. + public let value: String? + + public init(key: String, value: String? = nil) { + self.key = key + self.value = value + } + + public func validate(name: String) throws { + try self.validate(self.key, name: "key", parent: name, max: 128) + try self.validate(self.key, name: "key", parent: name, min: 1) + try self.validate(self.key, name: "key", parent: name, pattern: "^(?!aws:)[a-zA-Z+-=._:/]+$") + try self.validate(self.value, name: "value", parent: name, max: 256) + try self.validate(self.value, name: "value", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case key = "key" + case value = "value" + } + } + public struct TagResourceRequest: AWSEncodableShape { /// The Amazon Resource Name (ARN) of the resource. public let resourceArn: String @@ -3798,10 +3923,9 @@ extension QConnect { public struct UpdateContentRequest: AWSEncodableShape { /// The identifier of the content. Can be either the ID or the ARN. URLs cannot contain the ARN. public let contentId: String - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN + /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base. Can be either the ID or the ARN public let knowledgeBaseId: String - /// A key/value map to store attributes without affecting tagging or recommendations. For example, when synchronizing data between an external system and Amazon Q, you can store an external version identifier as metadata to utilize for determining drift. + /// A key/value map to store attributes without affecting tagging or recommendations. For example, when synchronizing data between an external system and Amazon Q in Connect, you can store an external version identifier as metadata to utilize for determining drift. public let metadata: [String: String]? /// The URI for the article. If the knowledge base has a templateUri, setting this argument overrides it for this piece of content. To remove an existing overrideLinkOurUri, exclude this argument and set removeOverrideLinkOutUri to true. public let overrideLinkOutUri: String? @@ -3882,8 +4006,7 @@ extension QConnect { } public struct UpdateKnowledgeBaseTemplateUriRequest: AWSEncodableShape { - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String /// The template URI to update. public let templateUri: String @@ -3937,8 +4060,7 @@ extension QConnect { public let groupingConfiguration: GroupingConfiguration? /// Whether the quick response is active. public let isActive: Bool? - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN. + /// The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN. public let knowledgeBaseId: String /// The language code value for the language in which the quick response is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW public let language: String? @@ -4040,9 +4162,61 @@ extension QConnect { } } + public struct UpdateSessionRequest: AWSEncodableShape { + /// The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN. + public let assistantId: String + /// The description. + public let description: String? + /// The identifier of the session. Can be either the ID or the ARN. URLs cannot contain the ARN. + public let sessionId: String + /// An object that can be used to specify Tag conditions. + public let tagFilter: TagFilter? + + public init(assistantId: String, description: String? = nil, sessionId: String, tagFilter: TagFilter? = nil) { + self.assistantId = assistantId + self.description = description + self.sessionId = sessionId + self.tagFilter = tagFilter + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.assistantId, key: "assistantId") + try container.encodeIfPresent(self.description, forKey: .description) + request.encodePath(self.sessionId, key: "sessionId") + try container.encodeIfPresent(self.tagFilter, forKey: .tagFilter) + } + + public func validate(name: String) throws { + try self.validate(self.assistantId, name: "assistantId", parent: name, pattern: "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$") + try self.validate(self.description, name: "description", parent: name, max: 255) + try self.validate(self.description, name: "description", parent: name, min: 1) + try self.validate(self.description, name: "description", parent: name, pattern: "^[a-zA-Z0-9\\s_.,-]+") + try self.validate(self.sessionId, name: "sessionId", parent: name, pattern: "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$") + try self.tagFilter?.validate(name: "\(name).tagFilter") + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case tagFilter = "tagFilter" + } + } + + public struct UpdateSessionResponse: AWSDecodableShape { + public let session: SessionData? + + public init(session: SessionData? = nil) { + self.session = session + } + + private enum CodingKeys: String, CodingKey { + case session = "session" + } + } + public struct AssistantAssociationInputData: AWSEncodableShape { - /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge - /// base if you're storing Amazon Q Content resource to it. + /// The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base. public let knowledgeBaseId: String? public init(knowledgeBaseId: String? = nil) { diff --git a/Sources/Soto/Services/QuickSight/QuickSight_api.swift b/Sources/Soto/Services/QuickSight/QuickSight_api.swift index e447a5414a..4a53860cb1 100644 --- a/Sources/Soto/Services/QuickSight/QuickSight_api.swift +++ b/Sources/Soto/Services/QuickSight/QuickSight_api.swift @@ -1880,7 +1880,7 @@ public struct QuickSight: AWSService { ) } - /// Starts an asynchronous job that generates a dashboard snapshot. You can request one of the following format configurations per API call. 1 paginated PDF 1 Excel workbook 5 CSVs Poll job descriptions with a DescribeDashboardSnapshotJob API call. Once the job succeeds, use the DescribeDashboardSnapshotJobResult API to obtain the download URIs that the job generates. + /// Starts an asynchronous job that generates a snapshot of a dashboard's output. You can request one or several of the following format configurations in each API call. 1 Paginated PDF 1 Excel workbook that includes up to 5 table or pivot table visuals 5 CSVs from table or pivot table visuals The status of a submitted job can be polled with the DescribeDashboardSnapshotJob API. When you call the DescribeDashboardSnapshotJob API, check the JobStatus field in the response. Once the job reaches a COMPLETED or FAILED status, use the DescribeDashboardSnapshotJobResult API to obtain the URLs for the generated files. If the job fails, the DescribeDashboardSnapshotJobResult API returns detailed information about the error that occurred. StartDashboardSnapshotJob API throttling Amazon QuickSight utilizes API throttling to create a more consistent user experience within a time span for customers when they call the StartDashboardSnapshotJob. By default, 12 jobs can run simlutaneously in one Amazon Web Services account and users can submit up 10 API requests per second before an account is throttled. If an overwhelming number of API requests are made by the same user in a short period of time, Amazon QuickSight throttles the API calls to maintin an optimal experience and reliability for all Amazon QuickSight users. Common throttling scenarios The following list provides information about the most commin throttling scenarios that can occur. A large number of SnapshotExport API jobs are running simultaneously on an Amazon Web Services account. When a new StartDashboardSnapshotJob is created and there are already 12 jobs with the RUNNING status, the new job request fails and returns a LimitExceededException error. Wait for a current job to comlpete before you resubmit the new job. A large number of API requests are submitted on an Amazon Web Services account. When a user makes more than 10 API calls to the Amazon QuickSight API in one second, a ThrottlingException is returned. If your use case requires a higher throttling limit, contact your account admin or Amazon Web ServicesSupport to explore options to tailor a more optimal expereince for your account. Best practices to handle throttling If your use case projects high levels of API traffic, try to reduce the degree of frequency and parallelism of API calls as much as you can to avoid throttling. You can also perform a timing test to calculate an estimate for the total processing time of your projected load that stays within the throttling limits of the Amazon QuickSight APIs. For example, if your projected traffic is 100 snapshot jobs before 12:00 PM per day, start 12 jobs in parallel and measure the amount of time it takes to proccess all 12 jobs. Once you obtain the result, multiply the duration by 9, for example (12 minutes * 9 = 108 minutes). Use the new result to determine the latest time at which the jobs need to be started to meet your target deadline. The time that it takes to process a job can be impacted by the following factors: The dataset type (Direct Query or SPICE). The size of the dataset. The complexity of the calculated fields that are used in the dashboard. The number of visuals that are on a sheet. The types of visuals that are on the sheet. The number of formats and snapshots that are requested in the job configuration. The size of the generated snapshots. @Sendable public func startDashboardSnapshotJob(_ input: StartDashboardSnapshotJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartDashboardSnapshotJobResponse { return try await self.client.execute( @@ -2202,6 +2202,19 @@ public struct QuickSight: AWSService { ) } + /// Updates the SPICE capacity configuration for a Amazon QuickSight account. + @Sendable + public func updateSPICECapacityConfiguration(_ input: UpdateSPICECapacityConfigurationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateSPICECapacityConfigurationResponse { + return try await self.client.execute( + operation: "UpdateSPICECapacityConfiguration", + path: "/accounts/{AwsAccountId}/spice-capacity-configuration", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Updates a template from an existing Amazon QuickSight analysis or another template. @Sendable public func updateTemplate(_ input: UpdateTemplateRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateTemplateResponse { diff --git a/Sources/Soto/Services/QuickSight/QuickSight_shapes.swift b/Sources/Soto/Services/QuickSight/QuickSight_shapes.swift index 805bc1b653..1a0a94f73d 100644 --- a/Sources/Soto/Services/QuickSight/QuickSight_shapes.swift +++ b/Sources/Soto/Services/QuickSight/QuickSight_shapes.swift @@ -105,6 +105,7 @@ extension QuickSight { case name = "Name" case password = "Password" case port = "Port" + case productType = "ProductType" case roleArn = "RoleArn" case secretArn = "SecretArn" case username = "Username" @@ -1127,6 +1128,12 @@ extension QuickSight { public var description: String { return self.rawValue } } + public enum PurchaseMode: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case autoPurchase = "AUTO_PURCHASE" + case manual = "MANUAL" + public var description: String { return self.rawValue } + } + public enum RadarChartAxesRangeScale: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case auto = "AUTO" case independent = "INDEPENDENT" @@ -1219,8 +1226,11 @@ extension QuickSight { public enum Role: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case admin = "ADMIN" + case adminPro = "ADMIN_PRO" case author = "AUTHOR" + case authorPro = "AUTHOR_PRO" case reader = "READER" + case readerPro = "READER_PRO" public var description: String { return self.rawValue } } @@ -1570,8 +1580,11 @@ extension QuickSight { public enum UserRole: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case admin = "ADMIN" + case adminPro = "ADMIN_PRO" case author = "AUTHOR" + case authorPro = "AUTHOR_PRO" case reader = "READER" + case readerPro = "READER_PRO" case restrictedAuthor = "RESTRICTED_AUTHOR" case restrictedReader = "RESTRICTED_READER" public var description: String { return self.rawValue } @@ -2645,30 +2658,54 @@ extension QuickSight { public let dashboard: AnonymousUserDashboardEmbeddingConfiguration? /// The type of embedding experience. In this case, Amazon QuickSight visuals. public let dashboardVisual: AnonymousUserDashboardVisualEmbeddingConfiguration? + /// The Generative Q&A experience that you want to use for anonymous user embedding. + public let generativeQnA: AnonymousUserGenerativeQnAEmbeddingConfiguration? /// The Q search bar that you want to use for anonymous user embedding. public let qSearchBar: AnonymousUserQSearchBarEmbeddingConfiguration? - public init(dashboard: AnonymousUserDashboardEmbeddingConfiguration? = nil, dashboardVisual: AnonymousUserDashboardVisualEmbeddingConfiguration? = nil, qSearchBar: AnonymousUserQSearchBarEmbeddingConfiguration? = nil) { + public init(dashboard: AnonymousUserDashboardEmbeddingConfiguration? = nil, dashboardVisual: AnonymousUserDashboardVisualEmbeddingConfiguration? = nil, generativeQnA: AnonymousUserGenerativeQnAEmbeddingConfiguration? = nil, qSearchBar: AnonymousUserQSearchBarEmbeddingConfiguration? = nil) { self.dashboard = dashboard self.dashboardVisual = dashboardVisual + self.generativeQnA = generativeQnA self.qSearchBar = qSearchBar } public func validate(name: String) throws { try self.dashboard?.validate(name: "\(name).dashboard") try self.dashboardVisual?.validate(name: "\(name).dashboardVisual") + try self.generativeQnA?.validate(name: "\(name).generativeQnA") try self.qSearchBar?.validate(name: "\(name).qSearchBar") } private enum CodingKeys: String, CodingKey { case dashboard = "Dashboard" case dashboardVisual = "DashboardVisual" + case generativeQnA = "GenerativeQnA" case qSearchBar = "QSearchBar" } } + public struct AnonymousUserGenerativeQnAEmbeddingConfiguration: AWSEncodableShape { + /// The Amazon QuickSight Q topic ID of the new reader experience topic that you want the anonymous user to see first. This ID is included in the output URL. When the URL in response is accessed, Amazon QuickSight renders the Generative Q&A experience with this new reader experience topic pre selected. The Amazon Resource Name (ARN) of this Q new reader experience topic must be included in the AuthorizedResourceArns parameter. Otherwise, the request fails with an InvalidParameterValueException error. + public let initialTopicId: String + + public init(initialTopicId: String) { + self.initialTopicId = initialTopicId + } + + public func validate(name: String) throws { + try self.validate(self.initialTopicId, name: "initialTopicId", parent: name, max: 2048) + try self.validate(self.initialTopicId, name: "initialTopicId", parent: name, min: 1) + try self.validate(self.initialTopicId, name: "initialTopicId", parent: name, pattern: "^[\\w\\-]+$") + } + + private enum CodingKeys: String, CodingKey { + case initialTopicId = "InitialTopicId" + } + } + public struct AnonymousUserQSearchBarEmbeddingConfiguration: AWSEncodableShape { - /// The QuickSight Q topic ID of the topic that you want the anonymous user to see first. This ID is included in the output URL. When the URL in response is accessed, Amazon QuickSight renders the Q search bar with this topic pre-selected. The Amazon Resource Name (ARN) of this Q topic must be included in the AuthorizedResourceArns parameter. Otherwise, the request will fail with InvalidParameterValueException. + /// The Amazon QuickSight Q topic ID of the legacy topic that you want the anonymous user to see first. This ID is included in the output URL. When the URL in response is accessed, Amazon QuickSight renders the Q search bar with this legacy topic pre-selected. The Amazon Resource Name (ARN) of this Q legacy topic must be included in the AuthorizedResourceArns parameter. Otherwise, the request fails with an InvalidParameterValueException error. public let initialTopicId: String public init(initialTopicId: String) { @@ -3946,6 +3983,23 @@ extension QuickSight { } } + public struct AssetBundleImportJobWarning: AWSDecodableShape { + /// The ARN of the resource that the warning occurred for. + public let arn: String? + /// A description of the warning that occurred during an Asset Bundle import job. + public let message: String? + + public init(arn: String? = nil, message: String? = nil) { + self.arn = arn + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case message = "Message" + } + } + public struct AssetBundleImportSource: AWSEncodableShape { /// The bytes of the base64 encoded asset bundle import zip file. This file can't exceed 20 MB. If you are calling the API operations from the Amazon Web Services SDK for Java, JavaScript, Python, or PHP, the SDK encodes base64 automatically to allow the direct setting of the zip file's bytes. If you are using an SDK for a different language or receiving related errors, try to base64 encode your data. public let body: AWSBase64Data? @@ -5337,18 +5391,22 @@ extension QuickSight { public let column: ColumnIdentifier /// The configuration for a CategoryFilter. public let configuration: CategoryFilterConfiguration + /// The default configurations for the associated controls. This applies only for filters that are scoped to multiple sheets. + public let defaultFilterControlConfiguration: DefaultFilterControlConfiguration? /// An identifier that uniquely identifies a filter within a dashboard, analysis, or template. public let filterId: String - public init(column: ColumnIdentifier, configuration: CategoryFilterConfiguration, filterId: String) { + public init(column: ColumnIdentifier, configuration: CategoryFilterConfiguration, defaultFilterControlConfiguration: DefaultFilterControlConfiguration? = nil, filterId: String) { self.column = column self.configuration = configuration + self.defaultFilterControlConfiguration = defaultFilterControlConfiguration self.filterId = filterId } public func validate(name: String) throws { try self.column.validate(name: "\(name).column") try self.configuration.validate(name: "\(name).configuration") + try self.defaultFilterControlConfiguration?.validate(name: "\(name).defaultFilterControlConfiguration") try self.validate(self.filterId, name: "filterId", parent: name, max: 512) try self.validate(self.filterId, name: "filterId", parent: name, min: 1) try self.validate(self.filterId, name: "filterId", parent: name, pattern: "^[\\w\\-]+$") @@ -5357,6 +5415,7 @@ extension QuickSight { private enum CodingKeys: String, CodingKey { case column = "Column" case configuration = "Configuration" + case defaultFilterControlConfiguration = "DefaultFilterControlConfiguration" case filterId = "FilterId" } } @@ -6493,12 +6552,16 @@ extension QuickSight { public let accountName: String /// The name of your Active Directory. This field is required if ACTIVE_DIRECTORY is the selected authentication method of the new Amazon QuickSight account. public let activeDirectoryName: String? - /// The admin group associated with your Active Directory or IAM Identity Center account. This field is required if ACTIVE_DIRECTORY or IAM_IDENTITY_CENTER is the selected authentication method of the new Amazon QuickSight account. For more information about using IAM Identity Center in Amazon QuickSight, see Using IAM Identity Center with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. + /// The admin group associated with your Active Directory or IAM Identity Center account. Either this field or the AdminProGroup field is required if ACTIVE_DIRECTORY or IAM_IDENTITY_CENTER is the selected authentication method of the new Amazon QuickSight account. For more information about using IAM Identity Center in Amazon QuickSight, see Using IAM Identity Center with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. public let adminGroup: [String]? + /// The admin pro group associated with your Active Directory or IAM Identity Center account. Either this field or the AdminGroup field is required if ACTIVE_DIRECTORY or IAM_IDENTITY_CENTER is the selected authentication method of the new Amazon QuickSight account. For more information about using IAM Identity Center in Amazon QuickSight, see Using IAM Identity Center with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. + public let adminProGroup: [String]? /// The method that you want to use to authenticate your Amazon QuickSight account. If you choose ACTIVE_DIRECTORY, provide an ActiveDirectoryName and an AdminGroup associated with your Active Directory. If you choose IAM_IDENTITY_CENTER, provide an AdminGroup associated with your IAM Identity Center account. public let authenticationMethod: AuthenticationMethodOption /// The author group associated with your Active Directory or IAM Identity Center account. For more information about using IAM Identity Center in Amazon QuickSight, see Using IAM Identity Center with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. public let authorGroup: [String]? + /// The author pro group associated with your Active Directory or IAM Identity Center account. For more information about using IAM Identity Center in Amazon QuickSight, see Using IAM Identity Center with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. + public let authorProGroup: [String]? /// The Amazon Web Services account ID of the account that you're using to create your Amazon QuickSight account. public let awsAccountId: String /// A 10-digit phone number for the author of the Amazon QuickSight account to use for future communications. This field is required if ENTERPPRISE_AND_Q is the selected edition of the new Amazon QuickSight account. @@ -6506,7 +6569,7 @@ extension QuickSight { /// The ID of the Active Directory that is associated with your Amazon QuickSight account. public let directoryId: String? /// The edition of Amazon QuickSight that you want your account to have. Currently, you can choose from ENTERPRISE or ENTERPRISE_AND_Q. If you choose ENTERPRISE_AND_Q, the following parameters are required: FirstName LastName EmailAddress ContactNumber - public let edition: Edition + public let edition: Edition? /// The email address of the author of the Amazon QuickSight account to use for future communications. This field is required if ENTERPPRISE_AND_Q is the selected edition of the new Amazon QuickSight account. public let emailAddress: String? /// The first name of the author of the Amazon QuickSight account to use for future communications. This field is required if ENTERPPRISE_AND_Q is the selected edition of the new Amazon QuickSight account. @@ -6519,15 +6582,19 @@ extension QuickSight { public let notificationEmail: String /// The reader group associated with your Active Directory or IAM Identity Center account. For more information about using IAM Identity Center in Amazon QuickSight, see Using IAM Identity Center with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. public let readerGroup: [String]? + /// The reader pro group associated with your Active Directory or IAM Identity Center account. For more information about using IAM Identity Center in Amazon QuickSight, see Using IAM Identity Center with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. + public let readerProGroup: [String]? /// The realm of the Active Directory that is associated with your Amazon QuickSight account. This field is required if ACTIVE_DIRECTORY is the selected authentication method of the new Amazon QuickSight account. public let realm: String? - public init(accountName: String, activeDirectoryName: String? = nil, adminGroup: [String]? = nil, authenticationMethod: AuthenticationMethodOption, authorGroup: [String]? = nil, awsAccountId: String, contactNumber: String? = nil, directoryId: String? = nil, edition: Edition, emailAddress: String? = nil, firstName: String? = nil, iamIdentityCenterInstanceArn: String? = nil, lastName: String? = nil, notificationEmail: String, readerGroup: [String]? = nil, realm: String? = nil) { + public init(accountName: String, activeDirectoryName: String? = nil, adminGroup: [String]? = nil, adminProGroup: [String]? = nil, authenticationMethod: AuthenticationMethodOption, authorGroup: [String]? = nil, authorProGroup: [String]? = nil, awsAccountId: String, contactNumber: String? = nil, directoryId: String? = nil, edition: Edition? = nil, emailAddress: String? = nil, firstName: String? = nil, iamIdentityCenterInstanceArn: String? = nil, lastName: String? = nil, notificationEmail: String, readerGroup: [String]? = nil, readerProGroup: [String]? = nil, realm: String? = nil) { self.accountName = accountName self.activeDirectoryName = activeDirectoryName self.adminGroup = adminGroup + self.adminProGroup = adminProGroup self.authenticationMethod = authenticationMethod self.authorGroup = authorGroup + self.authorProGroup = authorProGroup self.awsAccountId = awsAccountId self.contactNumber = contactNumber self.directoryId = directoryId @@ -6538,6 +6605,7 @@ extension QuickSight { self.lastName = lastName self.notificationEmail = notificationEmail self.readerGroup = readerGroup + self.readerProGroup = readerProGroup self.realm = realm } @@ -6547,18 +6615,21 @@ extension QuickSight { try container.encode(self.accountName, forKey: .accountName) try container.encodeIfPresent(self.activeDirectoryName, forKey: .activeDirectoryName) try container.encodeIfPresent(self.adminGroup, forKey: .adminGroup) + try container.encodeIfPresent(self.adminProGroup, forKey: .adminProGroup) try container.encode(self.authenticationMethod, forKey: .authenticationMethod) try container.encodeIfPresent(self.authorGroup, forKey: .authorGroup) + try container.encodeIfPresent(self.authorProGroup, forKey: .authorProGroup) request.encodePath(self.awsAccountId, key: "AwsAccountId") try container.encodeIfPresent(self.contactNumber, forKey: .contactNumber) try container.encodeIfPresent(self.directoryId, forKey: .directoryId) - try container.encode(self.edition, forKey: .edition) + try container.encodeIfPresent(self.edition, forKey: .edition) try container.encodeIfPresent(self.emailAddress, forKey: .emailAddress) try container.encodeIfPresent(self.firstName, forKey: .firstName) try container.encodeIfPresent(self.iamIdentityCenterInstanceArn, forKey: .iamIdentityCenterInstanceArn) try container.encodeIfPresent(self.lastName, forKey: .lastName) try container.encode(self.notificationEmail, forKey: .notificationEmail) try container.encodeIfPresent(self.readerGroup, forKey: .readerGroup) + try container.encodeIfPresent(self.readerProGroup, forKey: .readerProGroup) try container.encodeIfPresent(self.realm, forKey: .realm) } @@ -6575,8 +6646,10 @@ extension QuickSight { case accountName = "AccountName" case activeDirectoryName = "ActiveDirectoryName" case adminGroup = "AdminGroup" + case adminProGroup = "AdminProGroup" case authenticationMethod = "AuthenticationMethod" case authorGroup = "AuthorGroup" + case authorProGroup = "AuthorProGroup" case contactNumber = "ContactNumber" case directoryId = "DirectoryId" case edition = "Edition" @@ -6586,6 +6659,7 @@ extension QuickSight { case lastName = "LastName" case notificationEmail = "NotificationEmail" case readerGroup = "ReaderGroup" + case readerProGroup = "ReaderProGroup" case realm = "Realm" } } @@ -11006,6 +11080,149 @@ extension QuickSight { } } + public struct DefaultDateTimePickerControlOptions: AWSEncodableShape & AWSDecodableShape { + /// The display options of a control. + public let displayOptions: DateTimePickerControlDisplayOptions? + /// The date time picker type of the DefaultDateTimePickerControlOptions. Choose one of the following options: SINGLE_VALUED: The filter condition is a fixed date. DATE_RANGE: The filter condition is a date time range. + public let type: SheetControlDateTimePickerType? + + public init(displayOptions: DateTimePickerControlDisplayOptions? = nil, type: SheetControlDateTimePickerType? = nil) { + self.displayOptions = displayOptions + self.type = type + } + + public func validate(name: String) throws { + try self.displayOptions?.validate(name: "\(name).displayOptions") + } + + private enum CodingKeys: String, CodingKey { + case displayOptions = "DisplayOptions" + case type = "Type" + } + } + + public struct DefaultFilterControlConfiguration: AWSEncodableShape & AWSDecodableShape { + /// The control option for the DefaultFilterControlConfiguration. + public let controlOptions: DefaultFilterControlOptions + /// The title of the DefaultFilterControlConfiguration. This title is shared by all controls that are tied to this filter. + public let title: String + + public init(controlOptions: DefaultFilterControlOptions, title: String) { + self.controlOptions = controlOptions + self.title = title + } + + public func validate(name: String) throws { + try self.controlOptions.validate(name: "\(name).controlOptions") + try self.validate(self.title, name: "title", parent: name, max: 2048) + try self.validate(self.title, name: "title", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case controlOptions = "ControlOptions" + case title = "Title" + } + } + + public struct DefaultFilterControlOptions: AWSEncodableShape & AWSDecodableShape { + /// The default options that correspond to the filter control type of a DateTimePicker. + public let defaultDateTimePickerOptions: DefaultDateTimePickerControlOptions? + /// The default options that correspond to the Dropdown filter control type. + public let defaultDropdownOptions: DefaultFilterDropDownControlOptions? + /// The default options that correspond to the List filter control type. + public let defaultListOptions: DefaultFilterListControlOptions? + /// The default options that correspond to the RelativeDateTime filter control type. + public let defaultRelativeDateTimeOptions: DefaultRelativeDateTimeControlOptions? + /// The default options that correspond to the Slider filter control type. + public let defaultSliderOptions: DefaultSliderControlOptions? + /// The default options that correspond to the TextArea filter control type. + public let defaultTextAreaOptions: DefaultTextAreaControlOptions? + /// The default options that correspond to the TextField filter control type. + public let defaultTextFieldOptions: DefaultTextFieldControlOptions? + + public init(defaultDateTimePickerOptions: DefaultDateTimePickerControlOptions? = nil, defaultDropdownOptions: DefaultFilterDropDownControlOptions? = nil, defaultListOptions: DefaultFilterListControlOptions? = nil, defaultRelativeDateTimeOptions: DefaultRelativeDateTimeControlOptions? = nil, defaultSliderOptions: DefaultSliderControlOptions? = nil, defaultTextAreaOptions: DefaultTextAreaControlOptions? = nil, defaultTextFieldOptions: DefaultTextFieldControlOptions? = nil) { + self.defaultDateTimePickerOptions = defaultDateTimePickerOptions + self.defaultDropdownOptions = defaultDropdownOptions + self.defaultListOptions = defaultListOptions + self.defaultRelativeDateTimeOptions = defaultRelativeDateTimeOptions + self.defaultSliderOptions = defaultSliderOptions + self.defaultTextAreaOptions = defaultTextAreaOptions + self.defaultTextFieldOptions = defaultTextFieldOptions + } + + public func validate(name: String) throws { + try self.defaultDateTimePickerOptions?.validate(name: "\(name).defaultDateTimePickerOptions") + try self.defaultDropdownOptions?.validate(name: "\(name).defaultDropdownOptions") + try self.defaultListOptions?.validate(name: "\(name).defaultListOptions") + try self.defaultRelativeDateTimeOptions?.validate(name: "\(name).defaultRelativeDateTimeOptions") + try self.defaultSliderOptions?.validate(name: "\(name).defaultSliderOptions") + try self.defaultTextAreaOptions?.validate(name: "\(name).defaultTextAreaOptions") + try self.defaultTextFieldOptions?.validate(name: "\(name).defaultTextFieldOptions") + } + + private enum CodingKeys: String, CodingKey { + case defaultDateTimePickerOptions = "DefaultDateTimePickerOptions" + case defaultDropdownOptions = "DefaultDropdownOptions" + case defaultListOptions = "DefaultListOptions" + case defaultRelativeDateTimeOptions = "DefaultRelativeDateTimeOptions" + case defaultSliderOptions = "DefaultSliderOptions" + case defaultTextAreaOptions = "DefaultTextAreaOptions" + case defaultTextFieldOptions = "DefaultTextFieldOptions" + } + } + + public struct DefaultFilterDropDownControlOptions: AWSEncodableShape & AWSDecodableShape { + /// The display options of a control. + public let displayOptions: DropDownControlDisplayOptions? + /// A list of selectable values that are used in a control. + public let selectableValues: FilterSelectableValues? + /// The type of the FilterDropDownControl. Choose one of the following options: MULTI_SELECT: The user can select multiple entries from a dropdown menu. SINGLE_SELECT: The user can select a single entry from a dropdown menu. + public let type: SheetControlListType? + + public init(displayOptions: DropDownControlDisplayOptions? = nil, selectableValues: FilterSelectableValues? = nil, type: SheetControlListType? = nil) { + self.displayOptions = displayOptions + self.selectableValues = selectableValues + self.type = type + } + + public func validate(name: String) throws { + try self.displayOptions?.validate(name: "\(name).displayOptions") + try self.selectableValues?.validate(name: "\(name).selectableValues") + } + + private enum CodingKeys: String, CodingKey { + case displayOptions = "DisplayOptions" + case selectableValues = "SelectableValues" + case type = "Type" + } + } + + public struct DefaultFilterListControlOptions: AWSEncodableShape & AWSDecodableShape { + /// The display options of a control. + public let displayOptions: ListControlDisplayOptions? + /// A list of selectable values that are used in a control. + public let selectableValues: FilterSelectableValues? + /// The type of the DefaultFilterListControlOptions. Choose one of the following options: MULTI_SELECT: The user can select multiple entries from the list. SINGLE_SELECT: The user can select a single entry from the list. + public let type: SheetControlListType? + + public init(displayOptions: ListControlDisplayOptions? = nil, selectableValues: FilterSelectableValues? = nil, type: SheetControlListType? = nil) { + self.displayOptions = displayOptions + self.selectableValues = selectableValues + self.type = type + } + + public func validate(name: String) throws { + try self.displayOptions?.validate(name: "\(name).displayOptions") + try self.selectableValues?.validate(name: "\(name).selectableValues") + } + + private enum CodingKeys: String, CodingKey { + case displayOptions = "DisplayOptions" + case selectableValues = "SelectableValues" + case type = "Type" + } + } + public struct DefaultFormatting: AWSEncodableShape & AWSDecodableShape { /// The display format. Valid values for this structure are AUTO, PERCENT, CURRENCY, NUMBER, DATE, and STRING. public let displayFormat: DisplayFormat? @@ -11104,6 +11321,23 @@ extension QuickSight { } } + public struct DefaultRelativeDateTimeControlOptions: AWSEncodableShape & AWSDecodableShape { + /// The display options of a control. + public let displayOptions: RelativeDateTimeControlDisplayOptions? + + public init(displayOptions: RelativeDateTimeControlDisplayOptions? = nil) { + self.displayOptions = displayOptions + } + + public func validate(name: String) throws { + try self.displayOptions?.validate(name: "\(name).displayOptions") + } + + private enum CodingKeys: String, CodingKey { + case displayOptions = "DisplayOptions" + } + } + public struct DefaultSectionBasedLayoutConfiguration: AWSEncodableShape & AWSDecodableShape { /// Determines the screen canvas size options for a section-based layout. public let canvasSizeOptions: SectionBasedLayoutCanvasSizeOptions @@ -11117,6 +11351,79 @@ extension QuickSight { } } + public struct DefaultSliderControlOptions: AWSEncodableShape & AWSDecodableShape { + /// The display options of a control. + public let displayOptions: SliderControlDisplayOptions? + /// The larger value that is displayed at the right of the slider. + public let maximumValue: Double + /// The smaller value that is displayed at the left of the slider. + public let minimumValue: Double + /// The number of increments that the slider bar is divided into. + public let stepSize: Double + /// The type of the DefaultSliderControlOptions. Choose one of the following options: SINGLE_POINT: Filter against(equals) a single data point. RANGE: Filter data that is in a specified range. + public let type: SheetControlSliderType? + + public init(displayOptions: SliderControlDisplayOptions? = nil, maximumValue: Double, minimumValue: Double, stepSize: Double, type: SheetControlSliderType? = nil) { + self.displayOptions = displayOptions + self.maximumValue = maximumValue + self.minimumValue = minimumValue + self.stepSize = stepSize + self.type = type + } + + public func validate(name: String) throws { + try self.displayOptions?.validate(name: "\(name).displayOptions") + } + + private enum CodingKeys: String, CodingKey { + case displayOptions = "DisplayOptions" + case maximumValue = "MaximumValue" + case minimumValue = "MinimumValue" + case stepSize = "StepSize" + case type = "Type" + } + } + + public struct DefaultTextAreaControlOptions: AWSEncodableShape & AWSDecodableShape { + /// The delimiter that is used to separate the lines in text. + public let delimiter: String? + /// The display options of a control. + public let displayOptions: TextAreaControlDisplayOptions? + + public init(delimiter: String? = nil, displayOptions: TextAreaControlDisplayOptions? = nil) { + self.delimiter = delimiter + self.displayOptions = displayOptions + } + + public func validate(name: String) throws { + try self.validate(self.delimiter, name: "delimiter", parent: name, max: 2048) + try self.validate(self.delimiter, name: "delimiter", parent: name, min: 1) + try self.displayOptions?.validate(name: "\(name).displayOptions") + } + + private enum CodingKeys: String, CodingKey { + case delimiter = "Delimiter" + case displayOptions = "DisplayOptions" + } + } + + public struct DefaultTextFieldControlOptions: AWSEncodableShape & AWSDecodableShape { + /// The display options of a control. + public let displayOptions: TextFieldControlDisplayOptions? + + public init(displayOptions: TextFieldControlDisplayOptions? = nil) { + self.displayOptions = displayOptions + } + + public func validate(name: String) throws { + try self.displayOptions?.validate(name: "\(name).displayOptions") + } + + private enum CodingKeys: String, CodingKey { + case displayOptions = "DisplayOptions" + } + } + public struct DeleteAccountCustomizationRequest: AWSEncodableShape { /// The ID for the Amazon Web Services account that you want to delete Amazon QuickSight customizations from in this Amazon Web Services Region. public let awsAccountId: String @@ -13312,8 +13619,10 @@ extension QuickSight { public let rollbackErrors: [AssetBundleImportJobError]? /// The HTTP status of the response. public let status: Int? + /// An array of warning records that describe all permitted errors that are encountered during the import job. + public let warnings: [AssetBundleImportJobWarning]? - public init(arn: String? = nil, assetBundleImportJobId: String? = nil, assetBundleImportSource: AssetBundleImportSourceDescription? = nil, awsAccountId: String? = nil, createdTime: Date? = nil, errors: [AssetBundleImportJobError]? = nil, failureAction: AssetBundleImportFailureAction? = nil, jobStatus: AssetBundleImportJobStatus? = nil, overrideParameters: AssetBundleImportJobOverrideParameters? = nil, overridePermissions: AssetBundleImportJobOverridePermissions? = nil, overrideTags: AssetBundleImportJobOverrideTags? = nil, overrideValidationStrategy: AssetBundleImportJobOverrideValidationStrategy? = nil, requestId: String? = nil, rollbackErrors: [AssetBundleImportJobError]? = nil, status: Int? = nil) { + public init(arn: String? = nil, assetBundleImportJobId: String? = nil, assetBundleImportSource: AssetBundleImportSourceDescription? = nil, awsAccountId: String? = nil, createdTime: Date? = nil, errors: [AssetBundleImportJobError]? = nil, failureAction: AssetBundleImportFailureAction? = nil, jobStatus: AssetBundleImportJobStatus? = nil, overrideParameters: AssetBundleImportJobOverrideParameters? = nil, overridePermissions: AssetBundleImportJobOverridePermissions? = nil, overrideTags: AssetBundleImportJobOverrideTags? = nil, overrideValidationStrategy: AssetBundleImportJobOverrideValidationStrategy? = nil, requestId: String? = nil, rollbackErrors: [AssetBundleImportJobError]? = nil, status: Int? = nil, warnings: [AssetBundleImportJobWarning]? = nil) { self.arn = arn self.assetBundleImportJobId = assetBundleImportJobId self.assetBundleImportSource = assetBundleImportSource @@ -13329,6 +13638,7 @@ extension QuickSight { self.requestId = requestId self.rollbackErrors = rollbackErrors self.status = status + self.warnings = warnings } public init(from decoder: Decoder) throws { @@ -13349,6 +13659,7 @@ extension QuickSight { self.requestId = try container.decodeIfPresent(String.self, forKey: .requestId) self.rollbackErrors = try container.decodeIfPresent([AssetBundleImportJobError].self, forKey: .rollbackErrors) self.status = response.decodeStatus() + self.warnings = try container.decodeIfPresent([AssetBundleImportJobWarning].self, forKey: .warnings) } private enum CodingKeys: String, CodingKey { @@ -13366,6 +13677,7 @@ extension QuickSight { case overrideValidationStrategy = "OverrideValidationStrategy" case requestId = "RequestId" case rollbackErrors = "RollbackErrors" + case warnings = "Warnings" } } @@ -16599,6 +16911,8 @@ extension QuickSight { } public struct FilterControl: AWSEncodableShape & AWSDecodableShape { + /// A control from a filter that is scoped across more than one sheet. This represents your filter control on a sheet + public let crossSheet: FilterCrossSheetControl? /// A control from a date filter that is used to specify date and time. public let dateTimePicker: FilterDateTimePickerControl? /// A control to display a dropdown list with buttons that are used to select a single value. @@ -16614,7 +16928,8 @@ extension QuickSight { /// A control to display a text box that is used to enter a single entry. public let textField: FilterTextFieldControl? - public init(dateTimePicker: FilterDateTimePickerControl? = nil, dropdown: FilterDropDownControl? = nil, list: FilterListControl? = nil, relativeDateTime: FilterRelativeDateTimeControl? = nil, slider: FilterSliderControl? = nil, textArea: FilterTextAreaControl? = nil, textField: FilterTextFieldControl? = nil) { + public init(crossSheet: FilterCrossSheetControl? = nil, dateTimePicker: FilterDateTimePickerControl? = nil, dropdown: FilterDropDownControl? = nil, list: FilterListControl? = nil, relativeDateTime: FilterRelativeDateTimeControl? = nil, slider: FilterSliderControl? = nil, textArea: FilterTextAreaControl? = nil, textField: FilterTextFieldControl? = nil) { + self.crossSheet = crossSheet self.dateTimePicker = dateTimePicker self.dropdown = dropdown self.list = list @@ -16625,6 +16940,7 @@ extension QuickSight { } public func validate(name: String) throws { + try self.crossSheet?.validate(name: "\(name).crossSheet") try self.dateTimePicker?.validate(name: "\(name).dateTimePicker") try self.dropdown?.validate(name: "\(name).dropdown") try self.list?.validate(name: "\(name).list") @@ -16635,6 +16951,7 @@ extension QuickSight { } private enum CodingKeys: String, CodingKey { + case crossSheet = "CrossSheet" case dateTimePicker = "DateTimePicker" case dropdown = "Dropdown" case list = "List" @@ -16645,6 +16962,37 @@ extension QuickSight { } } + public struct FilterCrossSheetControl: AWSEncodableShape & AWSDecodableShape { + /// The values that are displayed in a control can be configured to only show values that are valid based on what's selected in other controls. + public let cascadingControlConfiguration: CascadingControlConfiguration? + /// The ID of the FilterCrossSheetControl. + public let filterControlId: String + /// The source filter ID of the FilterCrossSheetControl. + public let sourceFilterId: String + + public init(cascadingControlConfiguration: CascadingControlConfiguration? = nil, filterControlId: String, sourceFilterId: String) { + self.cascadingControlConfiguration = cascadingControlConfiguration + self.filterControlId = filterControlId + self.sourceFilterId = sourceFilterId + } + + public func validate(name: String) throws { + try self.cascadingControlConfiguration?.validate(name: "\(name).cascadingControlConfiguration") + try self.validate(self.filterControlId, name: "filterControlId", parent: name, max: 512) + try self.validate(self.filterControlId, name: "filterControlId", parent: name, min: 1) + try self.validate(self.filterControlId, name: "filterControlId", parent: name, pattern: "^[\\w\\-]+$") + try self.validate(self.sourceFilterId, name: "sourceFilterId", parent: name, max: 512) + try self.validate(self.sourceFilterId, name: "sourceFilterId", parent: name, min: 1) + try self.validate(self.sourceFilterId, name: "sourceFilterId", parent: name, pattern: "^[\\w\\-]+$") + } + + private enum CodingKeys: String, CodingKey { + case cascadingControlConfiguration = "CascadingControlConfiguration" + case filterControlId = "FilterControlId" + case sourceFilterId = "SourceFilterId" + } + } + public struct FilterDateTimePickerControl: AWSEncodableShape & AWSDecodableShape { /// The display options of a control. public let displayOptions: DateTimePickerControlDisplayOptions? @@ -16654,7 +17002,7 @@ extension QuickSight { public let sourceFilterId: String /// The title of the FilterDateTimePickerControl. public let title: String - /// The date time picker type of a FilterDateTimePickerControl. Choose one of the following options: SINGLE_VALUED: The filter condition is a fixed date. DATE_RANGE: The filter condition is a date time range. + /// The type of the FilterDropDownControl. Choose one of the following options: MULTI_SELECT: The user can select multiple entries from a dropdown menu. SINGLE_SELECT: The user can select a single entry from a dropdown menu. public let type: SheetControlDateTimePickerType? public init(displayOptions: DateTimePickerControlDisplayOptions? = nil, filterControlId: String, sourceFilterId: String, title: String, type: SheetControlDateTimePickerType? = nil) { @@ -16822,7 +17170,7 @@ extension QuickSight { public let sourceFilterId: String /// The title of the FilterListControl. public let title: String - /// The type of FilterListControl. Choose one of the following options: MULTI_SELECT: The user can select multiple entries from the list. SINGLE_SELECT: The user can select a single entry from the list. + /// The type of the FilterListControl. Choose one of the following options: MULTI_SELECT: The user can select multiple entries from the list. SINGLE_SELECT: The user can select a single entry from the list. public let type: SheetControlListType? public init(cascadingControlConfiguration: CascadingControlConfiguration? = nil, displayOptions: ListControlDisplayOptions? = nil, filterControlId: String, selectableValues: FilterSelectableValues? = nil, sourceFilterId: String, title: String, type: SheetControlListType? = nil) { @@ -17009,9 +17357,9 @@ extension QuickSight { public let displayOptions: SliderControlDisplayOptions? /// The ID of the FilterSliderControl. public let filterControlId: String - /// The smaller value that is displayed at the left of the slider. - public let maximumValue: Double /// The larger value that is displayed at the right of the slider. + public let maximumValue: Double + /// The smaller value that is displayed at the left of the slider. public let minimumValue: Double /// The source filter ID of the FilterSliderControl. public let sourceFilterId: String @@ -17019,7 +17367,7 @@ extension QuickSight { public let stepSize: Double /// The title of the FilterSliderControl. public let title: String - /// The type of FilterSliderControl. Choose one of the following options: SINGLE_POINT: Filter against(equals) a single data point. RANGE: Filter data that is in a specified range. + /// The type of the FilterSliderControl. Choose one of the following options: SINGLE_POINT: Filter against(equals) a single data point. RANGE: Filter data that is in a specified range. public let type: SheetControlSliderType? public init(displayOptions: SliderControlDisplayOptions? = nil, filterControlId: String, maximumValue: Double, minimumValue: Double, sourceFilterId: String, stepSize: Double, title: String, type: SheetControlSliderType? = nil) { @@ -17869,6 +18217,28 @@ extension QuickSight { } } + public struct GaugeChartColorConfiguration: AWSEncodableShape & AWSDecodableShape { + /// The background color configuration of a GaugeChartVisual. + public let backgroundColor: String? + /// The foreground color configuration of a GaugeChartVisual. + public let foregroundColor: String? + + public init(backgroundColor: String? = nil, foregroundColor: String? = nil) { + self.backgroundColor = backgroundColor + self.foregroundColor = foregroundColor + } + + public func validate(name: String) throws { + try self.validate(self.backgroundColor, name: "backgroundColor", parent: name, pattern: "^#[A-F0-9]{6}$") + try self.validate(self.foregroundColor, name: "foregroundColor", parent: name, pattern: "^#[A-F0-9]{6}$") + } + + private enum CodingKeys: String, CodingKey { + case backgroundColor = "BackgroundColor" + case foregroundColor = "ForegroundColor" + } + } + public struct GaugeChartConditionalFormatting: AWSEncodableShape & AWSDecodableShape { /// Conditional formatting options of a GaugeChartVisual. public let conditionalFormattingOptions: [GaugeChartConditionalFormattingOption]? @@ -17912,6 +18282,8 @@ extension QuickSight { } public struct GaugeChartConfiguration: AWSEncodableShape & AWSDecodableShape { + /// The color configuration of a GaugeChartVisual. + public let colorConfiguration: GaugeChartColorConfiguration? /// The data label configuration of a GaugeChartVisual. public let dataLabels: DataLabelOptions? /// The field well configuration of a GaugeChartVisual. @@ -17925,7 +18297,8 @@ extension QuickSight { /// The visual palette configuration of a GaugeChartVisual. public let visualPalette: VisualPalette? - public init(dataLabels: DataLabelOptions? = nil, fieldWells: GaugeChartFieldWells? = nil, gaugeChartOptions: GaugeChartOptions? = nil, interactions: VisualInteractionOptions? = nil, tooltipOptions: TooltipOptions? = nil, visualPalette: VisualPalette? = nil) { + public init(colorConfiguration: GaugeChartColorConfiguration? = nil, dataLabels: DataLabelOptions? = nil, fieldWells: GaugeChartFieldWells? = nil, gaugeChartOptions: GaugeChartOptions? = nil, interactions: VisualInteractionOptions? = nil, tooltipOptions: TooltipOptions? = nil, visualPalette: VisualPalette? = nil) { + self.colorConfiguration = colorConfiguration self.dataLabels = dataLabels self.fieldWells = fieldWells self.gaugeChartOptions = gaugeChartOptions @@ -17935,6 +18308,7 @@ extension QuickSight { } public func validate(name: String) throws { + try self.colorConfiguration?.validate(name: "\(name).colorConfiguration") try self.dataLabels?.validate(name: "\(name).dataLabels") try self.fieldWells?.validate(name: "\(name).fieldWells") try self.gaugeChartOptions?.validate(name: "\(name).gaugeChartOptions") @@ -17943,6 +18317,7 @@ extension QuickSight { } private enum CodingKeys: String, CodingKey { + case colorConfiguration = "ColorConfiguration" case dataLabels = "DataLabels" case fieldWells = "FieldWells" case gaugeChartOptions = "GaugeChartOptions" @@ -18185,7 +18560,7 @@ extension QuickSight { public let allowedDomains: [String]? /// The ID for the Amazon Web Services account that contains the dashboard that you're embedding. public let awsAccountId: String - /// The experience you are embedding. For registered users, you can embed Amazon QuickSight dashboards, Amazon QuickSight visuals, the Amazon QuickSight Q search bar, or the entire Amazon QuickSight console. + /// The experience that you want to embed. For registered users, you can embed Amazon QuickSight dashboards, Amazon QuickSight visuals, the Amazon QuickSight Q search bar, the Amazon QuickSight Generative Q&A experience, or the entire Amazon QuickSight console. public let experienceConfiguration: RegisteredUserEmbeddingExperienceConfiguration /// How many minutes the session is valid. The session lifetime must be in [15-600] minutes range. public let sessionLifetimeInMinutes: Int64? @@ -18228,7 +18603,7 @@ extension QuickSight { } public struct GenerateEmbedUrlForRegisteredUserResponse: AWSDecodableShape { - /// The embed URL for the Amazon QuickSight dashboard, visual, Q search bar, or console. + /// The embed URL for the Amazon QuickSight dashboard, visual, Q search bar, Generative Q&A experience, or console. public let embedUrl: String /// The Amazon Web Services request ID for this operation. public let requestId: String @@ -20541,7 +20916,7 @@ extension QuickSight { try self.series?.forEach { try $0.validate(name: "\(name).series[]") } - try self.validate(self.series, name: "series", parent: name, max: 10) + try self.validate(self.series, name: "series", parent: name, max: 2000) try self.smallMultiplesOptions?.validate(name: "\(name).smallMultiplesOptions") try self.sortConfiguration?.validate(name: "\(name).sortConfiguration") try self.tooltip?.validate(name: "\(name).tooltip") @@ -23719,6 +24094,8 @@ extension QuickSight { public let aggregationFunction: AggregationFunction? /// The column that the filter is applied to. public let column: ColumnIdentifier + /// The default configurations for the associated controls. This applies only for filters that are scoped to multiple sheets. + public let defaultFilterControlConfiguration: DefaultFilterControlConfiguration? /// An identifier that uniquely identifies a filter within a dashboard, analysis, or template. public let filterId: String /// The match operator that is used to determine if a filter should be applied. @@ -23732,9 +24109,10 @@ extension QuickSight { /// The input value. public let value: Double? - public init(aggregationFunction: AggregationFunction? = nil, column: ColumnIdentifier, filterId: String, matchOperator: NumericEqualityMatchOperator, nullOption: FilterNullOption, parameterName: String? = nil, selectAllOptions: NumericFilterSelectAllOptions? = nil, value: Double? = nil) { + public init(aggregationFunction: AggregationFunction? = nil, column: ColumnIdentifier, defaultFilterControlConfiguration: DefaultFilterControlConfiguration? = nil, filterId: String, matchOperator: NumericEqualityMatchOperator, nullOption: FilterNullOption, parameterName: String? = nil, selectAllOptions: NumericFilterSelectAllOptions? = nil, value: Double? = nil) { self.aggregationFunction = aggregationFunction self.column = column + self.defaultFilterControlConfiguration = defaultFilterControlConfiguration self.filterId = filterId self.matchOperator = matchOperator self.nullOption = nullOption @@ -23746,6 +24124,7 @@ extension QuickSight { public func validate(name: String) throws { try self.aggregationFunction?.validate(name: "\(name).aggregationFunction") try self.column.validate(name: "\(name).column") + try self.defaultFilterControlConfiguration?.validate(name: "\(name).defaultFilterControlConfiguration") try self.validate(self.filterId, name: "filterId", parent: name, max: 512) try self.validate(self.filterId, name: "filterId", parent: name, min: 1) try self.validate(self.filterId, name: "filterId", parent: name, pattern: "^[\\w\\-]+$") @@ -23757,6 +24136,7 @@ extension QuickSight { private enum CodingKeys: String, CodingKey { case aggregationFunction = "AggregationFunction" case column = "Column" + case defaultFilterControlConfiguration = "DefaultFilterControlConfiguration" case filterId = "FilterId" case matchOperator = "MatchOperator" case nullOption = "NullOption" @@ -23798,6 +24178,8 @@ extension QuickSight { public let aggregationFunction: AggregationFunction? /// The column that the filter is applied to. public let column: ColumnIdentifier + /// The default configurations for the associated controls. This applies only for filters that are scoped to multiple sheets. + public let defaultFilterControlConfiguration: DefaultFilterControlConfiguration? /// An identifier that uniquely identifies a filter within a dashboard, analysis, or template. public let filterId: String /// Determines whether the maximum value in the filter value range should be included in the filtered results. @@ -23813,9 +24195,10 @@ extension QuickSight { /// Select all of the values. Null is not the assigned value of select all. FILTER_ALL_VALUES public let selectAllOptions: NumericFilterSelectAllOptions? - public init(aggregationFunction: AggregationFunction? = nil, column: ColumnIdentifier, filterId: String, includeMaximum: Bool? = nil, includeMinimum: Bool? = nil, nullOption: FilterNullOption, rangeMaximum: NumericRangeFilterValue? = nil, rangeMinimum: NumericRangeFilterValue? = nil, selectAllOptions: NumericFilterSelectAllOptions? = nil) { + public init(aggregationFunction: AggregationFunction? = nil, column: ColumnIdentifier, defaultFilterControlConfiguration: DefaultFilterControlConfiguration? = nil, filterId: String, includeMaximum: Bool? = nil, includeMinimum: Bool? = nil, nullOption: FilterNullOption, rangeMaximum: NumericRangeFilterValue? = nil, rangeMinimum: NumericRangeFilterValue? = nil, selectAllOptions: NumericFilterSelectAllOptions? = nil) { self.aggregationFunction = aggregationFunction self.column = column + self.defaultFilterControlConfiguration = defaultFilterControlConfiguration self.filterId = filterId self.includeMaximum = includeMaximum self.includeMinimum = includeMinimum @@ -23828,6 +24211,7 @@ extension QuickSight { public func validate(name: String) throws { try self.aggregationFunction?.validate(name: "\(name).aggregationFunction") try self.column.validate(name: "\(name).column") + try self.defaultFilterControlConfiguration?.validate(name: "\(name).defaultFilterControlConfiguration") try self.validate(self.filterId, name: "filterId", parent: name, max: 512) try self.validate(self.filterId, name: "filterId", parent: name, min: 1) try self.validate(self.filterId, name: "filterId", parent: name, pattern: "^[\\w\\-]+$") @@ -23838,6 +24222,7 @@ extension QuickSight { private enum CodingKeys: String, CodingKey { case aggregationFunction = "AggregationFunction" case column = "Column" + case defaultFilterControlConfiguration = "DefaultFilterControlConfiguration" case filterId = "FilterId" case includeMaximum = "IncludeMaximum" case includeMinimum = "IncludeMinimum" @@ -24396,9 +24781,9 @@ extension QuickSight { public struct ParameterSliderControl: AWSEncodableShape & AWSDecodableShape { /// The display options of a control. public let displayOptions: SliderControlDisplayOptions? - /// The smaller value that is displayed at the left of the slider. - public let maximumValue: Double /// The larger value that is displayed at the right of the slider. + public let maximumValue: Double + /// The smaller value that is displayed at the left of the slider. public let minimumValue: Double /// The ID of the ParameterSliderControl. public let parameterControlId: String @@ -25036,7 +25421,7 @@ extension QuickSight { try self.conditionalFormattingOptions?.forEach { try $0.validate(name: "\(name).conditionalFormattingOptions[]") } - try self.validate(self.conditionalFormattingOptions, name: "conditionalFormattingOptions", parent: name, max: 100) + try self.validate(self.conditionalFormattingOptions, name: "conditionalFormattingOptions", parent: name, max: 500) } private enum CodingKeys: String, CodingKey { @@ -26450,7 +26835,7 @@ extension QuickSight { public let awsAccountId: String /// The URL of the custom OpenID Connect (OIDC) provider that provides identity to let a user federate into Amazon QuickSight with an associated Identity and Access Management(IAM) role. This parameter should only be used when ExternalLoginFederationProviderType parameter is set to CUSTOM_OIDC. public let customFederationProviderUrl: String? - /// (Enterprise edition only) The name of the custom permissions profile that you want to assign to this user. Customized permissions allows you to control a user's access by restricting access the following operations: Create and update data sources Create and update datasets Create and update email reports Subscribe to email reports To add custom permissions to an existing user, use UpdateUser instead. A set of custom permissions includes any combination of these restrictions. Currently, you need to create the profile names for custom permission sets by using the Amazon QuickSight console. Then, you use the RegisterUser API operation to assign the named set of permissions to a Amazon QuickSight user. Amazon QuickSight custom permissions are applied through IAM policies. Therefore, they override the permissions typically granted by assigning Amazon QuickSight users to one of the default security cohorts in Amazon QuickSight (admin, author, reader). This feature is available only to Amazon QuickSight Enterprise edition subscriptions. + /// (Enterprise edition only) The name of the custom permissions profile that you want to assign to this user. Customized permissions allows you to control a user's access by restricting access the following operations: Create and update data sources Create and update datasets Create and update email reports Subscribe to email reports To add custom permissions to an existing user, use UpdateUser instead. A set of custom permissions includes any combination of these restrictions. Currently, you need to create the profile names for custom permission sets by using the Amazon QuickSight console. Then, you use the RegisterUser API operation to assign the named set of permissions to a Amazon QuickSight user. Amazon QuickSight custom permissions are applied through IAM policies. Therefore, they override the permissions typically granted by assigning Amazon QuickSight users to one of the default security cohorts in Amazon QuickSight (admin, author, reader, admin pro, author pro, reader pro). This feature is available only to Amazon QuickSight Enterprise edition subscriptions. public let customPermissionsName: String? /// The email address of the user that you want to register. public let email: String @@ -26460,10 +26845,7 @@ extension QuickSight { public let externalLoginId: String? /// The ARN of the IAM user or role that you are registering with Amazon QuickSight. public let iamArn: String? - /// Amazon QuickSight supports several ways of managing the identity of users. This - /// parameter accepts two values: IAM: A user whose identity maps to an existing IAM user or role. - /// QUICKSIGHT: A user whose identity is owned and managed internally by - /// Amazon QuickSight. + /// The identity type that your Amazon QuickSight account uses to manage the identity of users. public let identityType: IdentityType /// The namespace. Currently, you should set this to default. public let namespace: String @@ -26665,14 +27047,17 @@ extension QuickSight { public let dashboard: RegisteredUserDashboardEmbeddingConfiguration? /// The type of embedding experience. In this case, Amazon QuickSight visuals. public let dashboardVisual: RegisteredUserDashboardVisualEmbeddingConfiguration? + /// The configuration details for embedding the Generative Q&A experience. For more information about embedding the Generative Q&A experience, see Embedding Overview in the Amazon QuickSight User Guide. + public let generativeQnA: RegisteredUserGenerativeQnAEmbeddingConfiguration? /// The configuration details for embedding the Q search bar. For more information about embedding the Q search bar, see Embedding Overview in the Amazon QuickSight User Guide. public let qSearchBar: RegisteredUserQSearchBarEmbeddingConfiguration? /// The configuration details for providing each Amazon QuickSight console embedding experience. This can be used along with custom permissions to restrict access to certain features. For more information, see Customizing Access to the Amazon QuickSight Console in the Amazon QuickSight User Guide. Use GenerateEmbedUrlForRegisteredUser where you want to provide an authoring portal that allows users to create data sources, datasets, analyses, and dashboards. The users who accesses an embedded Amazon QuickSight console needs to belong to the author or admin security cohort. If you want to restrict permissions to some of these features, add a custom permissions profile to the user with the UpdateUser API operation. Use the RegisterUser API operation to add a new user with a custom permission profile attached. For more information, see the following sections in the Amazon QuickSight User Guide: Embedding the Full Functionality of the Amazon QuickSight Console for Authenticated Users Customizing Access to the Amazon QuickSight Console For more information about the high-level steps for embedding and for an interactive demo of the ways you can customize embedding, visit the Amazon QuickSight Developer Portal. public let quickSightConsole: RegisteredUserQuickSightConsoleEmbeddingConfiguration? - public init(dashboard: RegisteredUserDashboardEmbeddingConfiguration? = nil, dashboardVisual: RegisteredUserDashboardVisualEmbeddingConfiguration? = nil, qSearchBar: RegisteredUserQSearchBarEmbeddingConfiguration? = nil, quickSightConsole: RegisteredUserQuickSightConsoleEmbeddingConfiguration? = nil) { + public init(dashboard: RegisteredUserDashboardEmbeddingConfiguration? = nil, dashboardVisual: RegisteredUserDashboardVisualEmbeddingConfiguration? = nil, generativeQnA: RegisteredUserGenerativeQnAEmbeddingConfiguration? = nil, qSearchBar: RegisteredUserQSearchBarEmbeddingConfiguration? = nil, quickSightConsole: RegisteredUserQuickSightConsoleEmbeddingConfiguration? = nil) { self.dashboard = dashboard self.dashboardVisual = dashboardVisual + self.generativeQnA = generativeQnA self.qSearchBar = qSearchBar self.quickSightConsole = quickSightConsole } @@ -26680,6 +27065,7 @@ extension QuickSight { public func validate(name: String) throws { try self.dashboard?.validate(name: "\(name).dashboard") try self.dashboardVisual?.validate(name: "\(name).dashboardVisual") + try self.generativeQnA?.validate(name: "\(name).generativeQnA") try self.qSearchBar?.validate(name: "\(name).qSearchBar") try self.quickSightConsole?.validate(name: "\(name).quickSightConsole") } @@ -26687,13 +27073,33 @@ extension QuickSight { private enum CodingKeys: String, CodingKey { case dashboard = "Dashboard" case dashboardVisual = "DashboardVisual" + case generativeQnA = "GenerativeQnA" case qSearchBar = "QSearchBar" case quickSightConsole = "QuickSightConsole" } } + public struct RegisteredUserGenerativeQnAEmbeddingConfiguration: AWSEncodableShape { + /// The ID of the new Q reader experience topic that you want to make the starting topic in the Generative Q&A experience. You can find a topic ID by navigating to the Topics pane in the Amazon QuickSight application and opening a topic. The ID is in the URL for the topic that you open. If you don't specify an initial topic or you specify a legacy topic, a list of all shared new reader experience topics is shown in the Generative Q&A experience for your readers. When you select an initial new reader experience topic, you can specify whether or not readers are allowed to select other new reader experience topics from the available ones in the list. + public let initialTopicId: String? + + public init(initialTopicId: String? = nil) { + self.initialTopicId = initialTopicId + } + + public func validate(name: String) throws { + try self.validate(self.initialTopicId, name: "initialTopicId", parent: name, max: 2048) + try self.validate(self.initialTopicId, name: "initialTopicId", parent: name, min: 1) + try self.validate(self.initialTopicId, name: "initialTopicId", parent: name, pattern: "^[\\w\\-]+$") + } + + private enum CodingKeys: String, CodingKey { + case initialTopicId = "InitialTopicId" + } + } + public struct RegisteredUserQSearchBarEmbeddingConfiguration: AWSEncodableShape { - /// The ID of the Q topic that you want to make the starting topic in the Q search bar. You can find a topic ID by navigating to the Topics pane in the Amazon QuickSight application and opening a topic. The ID is in the URL for the topic that you open. If you don't specify an initial topic, a list of all shared topics is shown in the Q bar for your readers. When you select an initial topic, you can specify whether or not readers are allowed to select other topics from the available ones in the list. + /// The ID of the legacy Q topic that you want to use as the starting topic in the Q search bar. To locate the topic ID of the topic that you want to use, open the Amazon QuickSight console, navigate to the Topics pane, and choose thre topic that you want to use. The TopicID is located in the URL of the topic that opens. When you select an initial topic, you can specify whether or not readers are allowed to select other topics from the list of available topics. If you don't specify an initial topic or if you specify a new reader experience topic, a list of all shared legacy topics is shown in the Q bar. public let initialTopicId: String? public init(initialTopicId: String? = nil) { @@ -26807,6 +27213,8 @@ extension QuickSight { public let anchorDateConfiguration: AnchorDateConfiguration /// The column that the filter is applied to. public let column: ColumnIdentifier + /// The default configurations for the associated controls. This applies only for filters that are scoped to multiple sheets. + public let defaultFilterControlConfiguration: DefaultFilterControlConfiguration? /// The configuration for the exclude period of the filter. public let excludePeriodConfiguration: ExcludePeriodConfiguration? /// An identifier that uniquely identifies a filter within a dashboard, analysis, or template. @@ -26824,9 +27232,10 @@ extension QuickSight { /// The level of time precision that is used to aggregate DateTime values. public let timeGranularity: TimeGranularity - public init(anchorDateConfiguration: AnchorDateConfiguration, column: ColumnIdentifier, excludePeriodConfiguration: ExcludePeriodConfiguration? = nil, filterId: String, minimumGranularity: TimeGranularity? = nil, nullOption: FilterNullOption, parameterName: String? = nil, relativeDateType: RelativeDateType, relativeDateValue: Int? = nil, timeGranularity: TimeGranularity) { + public init(anchorDateConfiguration: AnchorDateConfiguration, column: ColumnIdentifier, defaultFilterControlConfiguration: DefaultFilterControlConfiguration? = nil, excludePeriodConfiguration: ExcludePeriodConfiguration? = nil, filterId: String, minimumGranularity: TimeGranularity? = nil, nullOption: FilterNullOption, parameterName: String? = nil, relativeDateType: RelativeDateType, relativeDateValue: Int? = nil, timeGranularity: TimeGranularity) { self.anchorDateConfiguration = anchorDateConfiguration self.column = column + self.defaultFilterControlConfiguration = defaultFilterControlConfiguration self.excludePeriodConfiguration = excludePeriodConfiguration self.filterId = filterId self.minimumGranularity = minimumGranularity @@ -26840,6 +27249,7 @@ extension QuickSight { public func validate(name: String) throws { try self.anchorDateConfiguration.validate(name: "\(name).anchorDateConfiguration") try self.column.validate(name: "\(name).column") + try self.defaultFilterControlConfiguration?.validate(name: "\(name).defaultFilterControlConfiguration") try self.validate(self.filterId, name: "filterId", parent: name, max: 512) try self.validate(self.filterId, name: "filterId", parent: name, min: 1) try self.validate(self.filterId, name: "filterId", parent: name, pattern: "^[\\w\\-]+$") @@ -26851,6 +27261,7 @@ extension QuickSight { private enum CodingKeys: String, CodingKey { case anchorDateConfiguration = "AnchorDateConfiguration" case column = "Column" + case defaultFilterControlConfiguration = "DefaultFilterControlConfiguration" case excludePeriodConfiguration = "ExcludePeriodConfiguration" case filterId = "FilterId" case minimumGranularity = "MinimumGranularity" @@ -30101,7 +30512,7 @@ extension QuickSight { try self.conditionalFormattingOptions?.forEach { try $0.validate(name: "\(name).conditionalFormattingOptions[]") } - try self.validate(self.conditionalFormattingOptions, name: "conditionalFormattingOptions", parent: name, max: 100) + try self.validate(self.conditionalFormattingOptions, name: "conditionalFormattingOptions", parent: name, max: 500) } private enum CodingKeys: String, CodingKey { @@ -31477,6 +31888,8 @@ extension QuickSight { public struct TimeEqualityFilter: AWSEncodableShape & AWSDecodableShape { /// The column that the filter is applied to. public let column: ColumnIdentifier + /// The default configurations for the associated controls. This applies only for filters that are scoped to multiple sheets. + public let defaultFilterControlConfiguration: DefaultFilterControlConfiguration? /// An identifier that uniquely identifies a filter within a dashboard, analysis, or template. public let filterId: String /// The parameter whose value should be used for the filter value. This field is mutually exclusive to Value and RollingDate. @@ -31488,8 +31901,9 @@ extension QuickSight { /// The value of a TimeEquality filter. This field is mutually exclusive to RollingDate and ParameterName. public let value: Date? - public init(column: ColumnIdentifier, filterId: String, parameterName: String? = nil, rollingDate: RollingDateConfiguration? = nil, timeGranularity: TimeGranularity? = nil, value: Date? = nil) { + public init(column: ColumnIdentifier, defaultFilterControlConfiguration: DefaultFilterControlConfiguration? = nil, filterId: String, parameterName: String? = nil, rollingDate: RollingDateConfiguration? = nil, timeGranularity: TimeGranularity? = nil, value: Date? = nil) { self.column = column + self.defaultFilterControlConfiguration = defaultFilterControlConfiguration self.filterId = filterId self.parameterName = parameterName self.rollingDate = rollingDate @@ -31499,6 +31913,7 @@ extension QuickSight { public func validate(name: String) throws { try self.column.validate(name: "\(name).column") + try self.defaultFilterControlConfiguration?.validate(name: "\(name).defaultFilterControlConfiguration") try self.validate(self.filterId, name: "filterId", parent: name, max: 512) try self.validate(self.filterId, name: "filterId", parent: name, min: 1) try self.validate(self.filterId, name: "filterId", parent: name, pattern: "^[\\w\\-]+$") @@ -31510,6 +31925,7 @@ extension QuickSight { private enum CodingKeys: String, CodingKey { case column = "Column" + case defaultFilterControlConfiguration = "DefaultFilterControlConfiguration" case filterId = "FilterId" case parameterName = "ParameterName" case rollingDate = "RollingDate" @@ -31550,6 +31966,8 @@ extension QuickSight { public struct TimeRangeFilter: AWSEncodableShape & AWSDecodableShape { /// The column that the filter is applied to. public let column: ColumnIdentifier + /// The default configurations for the associated controls. This applies only for filters that are scoped to multiple sheets. + public let defaultFilterControlConfiguration: DefaultFilterControlConfiguration? /// The exclude period of the time range filter. public let excludePeriodConfiguration: ExcludePeriodConfiguration? /// An identifier that uniquely identifies a filter within a dashboard, analysis, or template. @@ -31567,8 +31985,9 @@ extension QuickSight { /// The level of time precision that is used to aggregate DateTime values. public let timeGranularity: TimeGranularity? - public init(column: ColumnIdentifier, excludePeriodConfiguration: ExcludePeriodConfiguration? = nil, filterId: String, includeMaximum: Bool? = nil, includeMinimum: Bool? = nil, nullOption: FilterNullOption, rangeMaximumValue: TimeRangeFilterValue? = nil, rangeMinimumValue: TimeRangeFilterValue? = nil, timeGranularity: TimeGranularity? = nil) { + public init(column: ColumnIdentifier, defaultFilterControlConfiguration: DefaultFilterControlConfiguration? = nil, excludePeriodConfiguration: ExcludePeriodConfiguration? = nil, filterId: String, includeMaximum: Bool? = nil, includeMinimum: Bool? = nil, nullOption: FilterNullOption, rangeMaximumValue: TimeRangeFilterValue? = nil, rangeMinimumValue: TimeRangeFilterValue? = nil, timeGranularity: TimeGranularity? = nil) { self.column = column + self.defaultFilterControlConfiguration = defaultFilterControlConfiguration self.excludePeriodConfiguration = excludePeriodConfiguration self.filterId = filterId self.includeMaximum = includeMaximum @@ -31581,6 +32000,7 @@ extension QuickSight { public func validate(name: String) throws { try self.column.validate(name: "\(name).column") + try self.defaultFilterControlConfiguration?.validate(name: "\(name).defaultFilterControlConfiguration") try self.validate(self.filterId, name: "filterId", parent: name, max: 512) try self.validate(self.filterId, name: "filterId", parent: name, min: 1) try self.validate(self.filterId, name: "filterId", parent: name, pattern: "^[\\w\\-]+$") @@ -31590,6 +32010,7 @@ extension QuickSight { private enum CodingKeys: String, CodingKey { case column = "Column" + case defaultFilterControlConfiguration = "DefaultFilterControlConfiguration" case excludePeriodConfiguration = "ExcludePeriodConfiguration" case filterId = "FilterId" case includeMaximum = "IncludeMaximum" @@ -31681,6 +32102,8 @@ extension QuickSight { public let aggregationSortConfigurations: [AggregationSortConfiguration] /// The column that the filter is applied to. public let column: ColumnIdentifier + /// The default configurations for the associated controls. This applies only for filters that are scoped to multiple sheets. + public let defaultFilterControlConfiguration: DefaultFilterControlConfiguration? /// An identifier that uniquely identifies a filter within a dashboard, analysis, or template. public let filterId: String /// The number of items to include in the top bottom filter results. @@ -31690,9 +32113,10 @@ extension QuickSight { /// The level of time precision that is used to aggregate DateTime values. public let timeGranularity: TimeGranularity? - public init(aggregationSortConfigurations: [AggregationSortConfiguration], column: ColumnIdentifier, filterId: String, limit: Int? = nil, parameterName: String? = nil, timeGranularity: TimeGranularity? = nil) { + public init(aggregationSortConfigurations: [AggregationSortConfiguration], column: ColumnIdentifier, defaultFilterControlConfiguration: DefaultFilterControlConfiguration? = nil, filterId: String, limit: Int? = nil, parameterName: String? = nil, timeGranularity: TimeGranularity? = nil) { self.aggregationSortConfigurations = aggregationSortConfigurations self.column = column + self.defaultFilterControlConfiguration = defaultFilterControlConfiguration self.filterId = filterId self.limit = limit self.parameterName = parameterName @@ -31705,6 +32129,7 @@ extension QuickSight { } try self.validate(self.aggregationSortConfigurations, name: "aggregationSortConfigurations", parent: name, max: 100) try self.column.validate(name: "\(name).column") + try self.defaultFilterControlConfiguration?.validate(name: "\(name).defaultFilterControlConfiguration") try self.validate(self.filterId, name: "filterId", parent: name, max: 512) try self.validate(self.filterId, name: "filterId", parent: name, min: 1) try self.validate(self.filterId, name: "filterId", parent: name, pattern: "^[\\w\\-]+$") @@ -31716,6 +32141,7 @@ extension QuickSight { private enum CodingKeys: String, CodingKey { case aggregationSortConfigurations = "AggregationSortConfigurations" case column = "Column" + case defaultFilterControlConfiguration = "DefaultFilterControlConfiguration" case filterId = "FilterId" case limit = "Limit" case parameterName = "ParameterName" @@ -32422,17 +32848,21 @@ extension QuickSight { public let name: String? /// The ID for the topic. This ID is unique per Amazon Web Services Region for each Amazon Web Services account. public let topicId: String? + /// The user experience version of the topic. + public let userExperienceVersion: TopicUserExperienceVersion? - public init(arn: String? = nil, name: String? = nil, topicId: String? = nil) { + public init(arn: String? = nil, name: String? = nil, topicId: String? = nil, userExperienceVersion: TopicUserExperienceVersion? = nil) { self.arn = arn self.name = name self.topicId = topicId + self.userExperienceVersion = userExperienceVersion } private enum CodingKeys: String, CodingKey { case arn = "Arn" case name = "Name" case topicId = "TopicId" + case userExperienceVersion = "UserExperienceVersion" } } @@ -34816,6 +35246,58 @@ extension QuickSight { } } + public struct UpdateSPICECapacityConfigurationRequest: AWSEncodableShape { + /// The ID of the Amazon Web Services account that contains the SPICE configuration that you want to update. + public let awsAccountId: String + /// Determines how SPICE capacity can be purchased. The following options are available. MANUAL: SPICE capacity can only be purchased manually. AUTO_PURCHASE: Extra SPICE capacity is automatically purchased on your behalf as needed. SPICE capacity can also be purchased manually with this option. + public let purchaseMode: PurchaseMode + + public init(awsAccountId: String, purchaseMode: PurchaseMode) { + self.awsAccountId = awsAccountId + self.purchaseMode = purchaseMode + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.awsAccountId, key: "AwsAccountId") + try container.encode(self.purchaseMode, forKey: .purchaseMode) + } + + public func validate(name: String) throws { + try self.validate(self.awsAccountId, name: "awsAccountId", parent: name, max: 12) + try self.validate(self.awsAccountId, name: "awsAccountId", parent: name, min: 12) + try self.validate(self.awsAccountId, name: "awsAccountId", parent: name, pattern: "^[0-9]{12}$") + } + + private enum CodingKeys: String, CodingKey { + case purchaseMode = "PurchaseMode" + } + } + + public struct UpdateSPICECapacityConfigurationResponse: AWSDecodableShape { + /// The Amazon Web Services request ID for this operation. + public let requestId: String? + /// The HTTP status of the request. + public let status: Int? + + public init(requestId: String? = nil, status: Int? = nil) { + self.requestId = requestId + self.status = status + } + + public init(from decoder: Decoder) throws { + let response = decoder.userInfo[.awsResponse]! as! ResponseDecodingContainer + let container = try decoder.container(keyedBy: CodingKeys.self) + self.requestId = try container.decodeIfPresent(String.self, forKey: .requestId) + self.status = response.decodeStatus() + } + + private enum CodingKeys: String, CodingKey { + case requestId = "RequestId" + } + } + public struct UpdateTemplateAliasRequest: AWSEncodableShape { /// The alias of the template that you want to update. If you name a specific alias, you update /// the version that the alias points to. You can specify the latest version of the template @@ -35615,7 +36097,7 @@ extension QuickSight { /// The Amazon QuickSight role of the user. The role can be one of the /// following default security cohorts: READER: A user who has read-only access to dashboards. AUTHOR: A user who can create data sources, datasets, analyses, and /// dashboards. ADMIN: A user who is an author, who can also manage Amazon QuickSight - /// settings. The name of the Amazon QuickSight role is invisible to the user except for the console + /// settings. READER_PRO: Reader Pro adds Generative BI capabilities to the Reader role. Reader Pros have access to Amazon Q Business, can build stories with Amazon Q, and can generate executive summaries from dashboards. AUTHOR_PRO: Author Pro adds Generative BI capabilities to the Author role. Author Pros can author dashboards with natural language with Amazon Q, build stories with Amazon Q, create Topics for Q&A, and generate executive summaries from dashboards. ADMIN_PRO: Admin Pros are Author Pros who can also manage Amazon QuickSight administrative settings. Admin Pro users are billed at Author Pro pricing. The name of the Amazon QuickSight role is invisible to the user except for the console /// screens dealing with permissions. public let role: UserRole /// A flag that you use to indicate that you want to remove all custom permissions from this user. Using this parameter resets the user to the state it was in before a custom permissions profile was applied. This parameter defaults to NULL and it doesn't accept any other value. @@ -35881,7 +36363,7 @@ extension QuickSight { public let identityType: IdentityType? /// The principal ID of the user. public let principalId: String? - /// The Amazon QuickSight role for the user. The user role can be one of the following:. READER: A user who has read-only access to dashboards. AUTHOR: A user who can create data sources, datasets, analyses, and dashboards. ADMIN: A user who is an author, who can also manage Amazon Amazon QuickSight settings. RESTRICTED_READER: This role isn't currently available for use. RESTRICTED_AUTHOR: This role isn't currently available for use. + /// The Amazon QuickSight role for the user. The user role can be one of the following:. READER: A user who has read-only access to dashboards. AUTHOR: A user who can create data sources, datasets, analyses, and dashboards. ADMIN: A user who is an author, who can also manage Amazon Amazon QuickSight settings. READER_PRO: Reader Pro adds Generative BI capabilities to the Reader role. Reader Pros have access to Amazon Q Business, can build stories with Amazon Q, and can generate executive summaries from dashboards. AUTHOR_PRO: Author Pro adds Generative BI capabilities to the Author role. Author Pros can author dashboards with natural language with Amazon Q, build stories with Amazon Q, create Topics for Q&A, and generate executive summaries from dashboards. ADMIN_PRO: Admin Pros are Author Pros who can also manage Amazon QuickSight administrative settings. Admin Pro users are billed at Author Pro pricing. RESTRICTED_READER: This role isn't currently available for use. RESTRICTED_AUTHOR: This role isn't currently available for use. public let role: UserRole? /// The user's user name. This value is required if you are registering a user that will be managed in Amazon QuickSight. In the output, the value for UserName is N/A when the value for IdentityType is IAM and the corresponding IAM user is deleted. public let userName: String? diff --git a/Sources/Soto/Services/RDS/RDS_shapes.swift b/Sources/Soto/Services/RDS/RDS_shapes.swift index fe5eb6c9a9..b7de510522 100644 --- a/Sources/Soto/Services/RDS/RDS_shapes.swift +++ b/Sources/Soto/Services/RDS/RDS_shapes.swift @@ -1143,7 +1143,7 @@ extension RDS { public let databaseInstallationFilesS3Prefix: String? /// An optional description of your CEV. public let description: String? - /// The database engine to use for your custom engine version (CEV). The only supported value is custom-oracle-ee. + /// The database engine. RDS Custom for Oracle supports the following values: custom-oracle-ee custom-oracle-ee-cdb custom-oracle-se2 custom-oracle-se2-cdb public let engine: String? /// The name of your CEV. The name format is 19.customized_string. For example, a valid CEV name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region. public let engineVersion: String? @@ -1314,7 +1314,7 @@ extension RDS { public let enablePerformanceInsights: Bool? /// The database engine to use for this DB cluster. Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters Valid Values: aurora-mysql | aurora-postgresql | mysql | postgres public let engine: String? - /// The DB engine mode of the DB cluster, either provisioned or serverless. The serverless engine mode only applies for Aurora Serverless v1 DB clusters. For information about limitations and requirements for Serverless DB clusters, see the following sections in the Amazon Aurora User Guide: Limitations of Aurora Serverless v1 Requirements for Aurora Serverless v2 Valid for Cluster Type: Aurora DB clusters only + /// The DB engine mode of the DB cluster, either provisioned or serverless. The serverless engine mode only applies for Aurora Serverless v1 DB clusters. Aurora Serverless v2 DB clusters use the provisioned engine mode. For information about limitations and requirements for Serverless DB clusters, see the following sections in the Amazon Aurora User Guide: Limitations of Aurora Serverless v1 Requirements for Aurora Serverless v2 Valid for Cluster Type: Aurora DB clusters only public let engineMode: String? /// The version number of the database engine to use. To list all of the available engine versions for Aurora MySQL version 2 (5.7-compatible) and version 3 (MySQL 8.0-compatible), use the following command: aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions[].EngineVersion" You can supply either 5.7 or 8.0 to use the default engine version for Aurora MySQL version 2 or version 3, respectively. To list all of the available engine versions for Aurora PostgreSQL, use the following command: aws rds describe-db-engine-versions --engine aurora-postgresql --query "DBEngineVersions[].EngineVersion" To list all of the available engine versions for RDS for MySQL, use the following command: aws rds describe-db-engine-versions --engine mysql --query "DBEngineVersions[].EngineVersion" To list all of the available engine versions for RDS for PostgreSQL, use the following command: aws rds describe-db-engine-versions --engine postgres --query "DBEngineVersions[].EngineVersion" For information about a specific engine, see the following topics: Aurora MySQL - see Database engine updates for Amazon Aurora MySQL in the Amazon Aurora User Guide. Aurora PostgreSQL - see Amazon Aurora PostgreSQL releases and engine versions in the Amazon Aurora User Guide. RDS for MySQL - see Amazon RDS for MySQL in the Amazon RDS User Guide. RDS for PostgreSQL - see Amazon RDS for PostgreSQL in the Amazon RDS User Guide. Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters public let engineVersion: String? @@ -1640,7 +1640,7 @@ extension RDS { public let enableIAMDatabaseAuthentication: Bool? /// Specifies whether to enable Performance Insights for the DB instance. For more information, see Using Amazon Performance Insights in the Amazon RDS User Guide. This setting doesn't apply to RDS Custom DB instances. public let enablePerformanceInsights: Bool? - /// The database engine to use for this DB instance. Not every database engine is available in every Amazon Web Services Region. Valid Values: aurora-mysql (for Aurora MySQL DB instances) aurora-postgresql (for Aurora PostgreSQL DB instances) custom-oracle-ee (for RDS Custom for Oracle DB instances) custom-oracle-ee-cdb (for RDS Custom for Oracle DB instances) custom-sqlserver-ee (for RDS Custom for SQL Server DB instances) custom-sqlserver-se (for RDS Custom for SQL Server DB instances) custom-sqlserver-web (for RDS Custom for SQL Server DB instances) db2-ae db2-se mariadb mysql oracle-ee oracle-ee-cdb oracle-se2 oracle-se2-cdb postgres sqlserver-ee sqlserver-se sqlserver-ex sqlserver-web + /// The database engine to use for this DB instance. Not every database engine is available in every Amazon Web Services Region. Valid Values: aurora-mysql (for Aurora MySQL DB instances) aurora-postgresql (for Aurora PostgreSQL DB instances) custom-oracle-ee (for RDS Custom for Oracle DB instances) custom-oracle-ee-cdb (for RDS Custom for Oracle DB instances) custom-oracle-se2 (for RDS Custom for Oracle DB instances) custom-oracle-se2-cdb (for RDS Custom for Oracle DB instances) custom-sqlserver-ee (for RDS Custom for SQL Server DB instances) custom-sqlserver-se (for RDS Custom for SQL Server DB instances) custom-sqlserver-web (for RDS Custom for SQL Server DB instances) db2-ae db2-se mariadb mysql oracle-ee oracle-ee-cdb oracle-se2 oracle-se2-cdb postgres sqlserver-ee sqlserver-se sqlserver-ex sqlserver-web public let engine: String? /// The version number of the database engine to use. This setting doesn't apply to Amazon Aurora DB instances. The version number of the database engine the DB instance uses is managed by the DB cluster. For a list of valid engine versions, use the DescribeDBEngineVersions operation. The following are the database engines and links to information about the major and minor versions that are available with Amazon RDS. Not every database engine is available for every Amazon Web Services Region. Amazon RDS Custom for Oracle A custom engine version (CEV) that you have previously created. This setting is required for RDS Custom for Oracle. The CEV name has the following format: 19.customized_string. A valid CEV name is 19.my_cev1. For more information, see Creating an RDS Custom for Oracle DB instance in the Amazon RDS User Guide. Amazon RDS Custom for SQL Server See RDS Custom for SQL Server general requirements in the Amazon RDS User Guide. RDS for Db2 For information, see Db2 on Amazon RDS versions in the Amazon RDS User Guide. RDS for MariaDB For information, see MariaDB on Amazon RDS versions in the Amazon RDS User Guide. RDS for Microsoft SQL Server For information, see Microsoft SQL Server versions on Amazon RDS in the Amazon RDS User Guide. RDS for MySQL For information, see MySQL on Amazon RDS versions in the Amazon RDS User Guide. RDS for Oracle For information, see Oracle Database Engine release notes in the Amazon RDS User Guide. RDS for PostgreSQL For information, see Amazon RDS for PostgreSQL versions and extensions in the Amazon RDS User Guide. public let engineVersion: String? @@ -1704,7 +1704,7 @@ extension RDS { public let tdeCredentialArn: String? /// The password for the given ARN from the key store in order to access the device. This setting doesn't apply to RDS Custom DB instances. public let tdeCredentialPassword: String? - /// The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server. + /// The time zone of the DB instance. The time zone parameter is currently supported only by RDS for Db2 and RDS for SQL Server. public let timezone: String? /// A list of Amazon EC2 VPC security groups to associate with this DB instance. This setting doesn't apply to Amazon Aurora DB instances. The associated list of EC2 VPC security groups is managed by the DB cluster. Default: The default EC2 VPC security group for the DB subnet group's VPC. @OptionalCustomCoding> @@ -1852,6 +1852,8 @@ extension RDS { public let autoMinorVersionUpgrade: Bool? /// The Availability Zone (AZ) where the read replica will be created. Default: A random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region. Example: us-east-1d public let availabilityZone: String? + /// The CA certificate identifier to use for the read replica's server certificate. This setting doesn't apply to RDS Custom DB instances. For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide. + public let caCertificateIdentifier: String? /// Specifies whether to copy all tags from the read replica to snapshots of the read replica. By default, tags aren't copied. public let copyTagsToSnapshot: Bool? /// The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements: The profile must exist in your account. The profile must have an IAM role that Amazon EC2 has permissions to assume. The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom. For the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide. This setting is required for RDS Custom DB instances. @@ -1939,10 +1941,11 @@ extension RDS { @OptionalCustomCoding> public var vpcSecurityGroupIds: [String]? - public init(allocatedStorage: Int? = nil, autoMinorVersionUpgrade: Bool? = nil, availabilityZone: String? = nil, copyTagsToSnapshot: Bool? = nil, customIamInstanceProfile: String? = nil, dbInstanceClass: String? = nil, dbInstanceIdentifier: String? = nil, dbParameterGroupName: String? = nil, dbSubnetGroupName: String? = nil, dedicatedLogVolume: Bool? = nil, deletionProtection: Bool? = nil, domain: String? = nil, domainAuthSecretArn: String? = nil, domainDnsIps: [String]? = nil, domainFqdn: String? = nil, domainIAMRoleName: String? = nil, domainOu: String? = nil, enableCloudwatchLogsExports: [String]? = nil, enableCustomerOwnedIp: Bool? = nil, enableIAMDatabaseAuthentication: Bool? = nil, enablePerformanceInsights: Bool? = nil, iops: Int? = nil, kmsKeyId: String? = nil, maxAllocatedStorage: Int? = nil, monitoringInterval: Int? = nil, monitoringRoleArn: String? = nil, multiAZ: Bool? = nil, networkType: String? = nil, optionGroupName: String? = nil, performanceInsightsKMSKeyId: String? = nil, performanceInsightsRetentionPeriod: Int? = nil, port: Int? = nil, preSignedUrl: String? = nil, processorFeatures: [ProcessorFeature]? = nil, publiclyAccessible: Bool? = nil, replicaMode: ReplicaMode? = nil, sourceDBClusterIdentifier: String? = nil, sourceDBInstanceIdentifier: String? = nil, storageThroughput: Int? = nil, storageType: String? = nil, tags: [Tag]? = nil, upgradeStorageConfig: Bool? = nil, useDefaultProcessorFeatures: Bool? = nil, vpcSecurityGroupIds: [String]? = nil) { + public init(allocatedStorage: Int? = nil, autoMinorVersionUpgrade: Bool? = nil, availabilityZone: String? = nil, caCertificateIdentifier: String? = nil, copyTagsToSnapshot: Bool? = nil, customIamInstanceProfile: String? = nil, dbInstanceClass: String? = nil, dbInstanceIdentifier: String? = nil, dbParameterGroupName: String? = nil, dbSubnetGroupName: String? = nil, dedicatedLogVolume: Bool? = nil, deletionProtection: Bool? = nil, domain: String? = nil, domainAuthSecretArn: String? = nil, domainDnsIps: [String]? = nil, domainFqdn: String? = nil, domainIAMRoleName: String? = nil, domainOu: String? = nil, enableCloudwatchLogsExports: [String]? = nil, enableCustomerOwnedIp: Bool? = nil, enableIAMDatabaseAuthentication: Bool? = nil, enablePerformanceInsights: Bool? = nil, iops: Int? = nil, kmsKeyId: String? = nil, maxAllocatedStorage: Int? = nil, monitoringInterval: Int? = nil, monitoringRoleArn: String? = nil, multiAZ: Bool? = nil, networkType: String? = nil, optionGroupName: String? = nil, performanceInsightsKMSKeyId: String? = nil, performanceInsightsRetentionPeriod: Int? = nil, port: Int? = nil, preSignedUrl: String? = nil, processorFeatures: [ProcessorFeature]? = nil, publiclyAccessible: Bool? = nil, replicaMode: ReplicaMode? = nil, sourceDBClusterIdentifier: String? = nil, sourceDBInstanceIdentifier: String? = nil, storageThroughput: Int? = nil, storageType: String? = nil, tags: [Tag]? = nil, upgradeStorageConfig: Bool? = nil, useDefaultProcessorFeatures: Bool? = nil, vpcSecurityGroupIds: [String]? = nil) { self.allocatedStorage = allocatedStorage self.autoMinorVersionUpgrade = autoMinorVersionUpgrade self.availabilityZone = availabilityZone + self.caCertificateIdentifier = caCertificateIdentifier self.copyTagsToSnapshot = copyTagsToSnapshot self.customIamInstanceProfile = customIamInstanceProfile self.dbInstanceClass = dbInstanceClass @@ -1990,6 +1993,7 @@ extension RDS { case allocatedStorage = "AllocatedStorage" case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" case availabilityZone = "AvailabilityZone" + case caCertificateIdentifier = "CACertificateIdentifier" case copyTagsToSnapshot = "CopyTagsToSnapshot" case customIamInstanceProfile = "CustomIamInstanceProfile" case dbInstanceClass = "DBInstanceClass" @@ -3700,6 +3704,8 @@ extension RDS { public let supportsGlobalDatabases: Bool? /// Indicates whether the DB engine version supports zero-ETL integrations with Amazon Redshift. public let supportsIntegrations: Bool? + /// Indicates whether the DB engine version supports Aurora Limitless Database. + public let supportsLimitlessDatabase: Bool? /// Indicates whether the DB engine version supports forwarding write operations from reader DB instances to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances. Valid for: Aurora DB clusters only public let supportsLocalWriteForwarding: Bool? /// Indicates whether the engine version supports exporting the log types specified by ExportableLogTypes to CloudWatch Logs. @@ -3714,7 +3720,7 @@ extension RDS { @OptionalCustomCoding> public var validUpgradeTarget: [UpgradeTarget]? - public init(createTime: Date? = nil, customDBEngineVersionManifest: String? = nil, databaseInstallationFilesS3BucketName: String? = nil, databaseInstallationFilesS3Prefix: String? = nil, dbEngineDescription: String? = nil, dbEngineMediaType: String? = nil, dbEngineVersionArn: String? = nil, dbEngineVersionDescription: String? = nil, dbParameterGroupFamily: String? = nil, defaultCharacterSet: CharacterSet? = nil, engine: String? = nil, engineVersion: String? = nil, exportableLogTypes: [String]? = nil, image: CustomDBEngineVersionAMI? = nil, kmsKeyId: String? = nil, majorEngineVersion: String? = nil, status: String? = nil, supportedCACertificateIdentifiers: [String]? = nil, supportedCharacterSets: [CharacterSet]? = nil, supportedEngineModes: [String]? = nil, supportedFeatureNames: [String]? = nil, supportedNcharCharacterSets: [CharacterSet]? = nil, supportedTimezones: [Timezone]? = nil, supportsBabelfish: Bool? = nil, supportsCertificateRotationWithoutRestart: Bool? = nil, supportsGlobalDatabases: Bool? = nil, supportsIntegrations: Bool? = nil, supportsLocalWriteForwarding: Bool? = nil, supportsLogExportsToCloudwatchLogs: Bool? = nil, supportsParallelQuery: Bool? = nil, supportsReadReplica: Bool? = nil, tagList: [Tag]? = nil, validUpgradeTarget: [UpgradeTarget]? = nil) { + public init(createTime: Date? = nil, customDBEngineVersionManifest: String? = nil, databaseInstallationFilesS3BucketName: String? = nil, databaseInstallationFilesS3Prefix: String? = nil, dbEngineDescription: String? = nil, dbEngineMediaType: String? = nil, dbEngineVersionArn: String? = nil, dbEngineVersionDescription: String? = nil, dbParameterGroupFamily: String? = nil, defaultCharacterSet: CharacterSet? = nil, engine: String? = nil, engineVersion: String? = nil, exportableLogTypes: [String]? = nil, image: CustomDBEngineVersionAMI? = nil, kmsKeyId: String? = nil, majorEngineVersion: String? = nil, status: String? = nil, supportedCACertificateIdentifiers: [String]? = nil, supportedCharacterSets: [CharacterSet]? = nil, supportedEngineModes: [String]? = nil, supportedFeatureNames: [String]? = nil, supportedNcharCharacterSets: [CharacterSet]? = nil, supportedTimezones: [Timezone]? = nil, supportsBabelfish: Bool? = nil, supportsCertificateRotationWithoutRestart: Bool? = nil, supportsGlobalDatabases: Bool? = nil, supportsIntegrations: Bool? = nil, supportsLimitlessDatabase: Bool? = nil, supportsLocalWriteForwarding: Bool? = nil, supportsLogExportsToCloudwatchLogs: Bool? = nil, supportsParallelQuery: Bool? = nil, supportsReadReplica: Bool? = nil, tagList: [Tag]? = nil, validUpgradeTarget: [UpgradeTarget]? = nil) { self.createTime = createTime self.customDBEngineVersionManifest = customDBEngineVersionManifest self.databaseInstallationFilesS3BucketName = databaseInstallationFilesS3BucketName @@ -3742,6 +3748,7 @@ extension RDS { self.supportsCertificateRotationWithoutRestart = supportsCertificateRotationWithoutRestart self.supportsGlobalDatabases = supportsGlobalDatabases self.supportsIntegrations = supportsIntegrations + self.supportsLimitlessDatabase = supportsLimitlessDatabase self.supportsLocalWriteForwarding = supportsLocalWriteForwarding self.supportsLogExportsToCloudwatchLogs = supportsLogExportsToCloudwatchLogs self.supportsParallelQuery = supportsParallelQuery @@ -3778,6 +3785,7 @@ extension RDS { case supportsCertificateRotationWithoutRestart = "SupportsCertificateRotationWithoutRestart" case supportsGlobalDatabases = "SupportsGlobalDatabases" case supportsIntegrations = "SupportsIntegrations" + case supportsLimitlessDatabase = "SupportsLimitlessDatabase" case supportsLocalWriteForwarding = "SupportsLocalWriteForwarding" case supportsLogExportsToCloudwatchLogs = "SupportsLogExportsToCloudwatchLogs" case supportsParallelQuery = "SupportsParallelQuery" @@ -3998,7 +4006,7 @@ extension RDS { public var tagList: [Tag]? /// The ARN from the key store with which the instance is associated for TDE encryption. public let tdeCredentialArn: 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. + /// The time zone of the DB instance. In most cases, the Timezone element is empty. Timezone content appears only for RDS for Db2 and RDS for SQL Server DB instances that were created with a time zone specified. public let timezone: String? /// The list of Amazon EC2 VPC security groups that the DB instance belongs to. @OptionalCustomCoding> @@ -5358,7 +5366,7 @@ extension RDS { } public struct DeleteCustomDBEngineVersionMessage: AWSEncodableShape { - /// The database engine. The only supported engines are custom-oracle-ee and custom-oracle-ee-cdb. + /// The database engine. RDS Custom for Oracle supports the following values: custom-oracle-ee custom-oracle-ee-cdb custom-oracle-se2 custom-oracle-se2-cdb public let engine: String? /// The custom engine version (CEV) for your DB instance. This option is required for RDS Custom, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Amazon Web Services Region. public let engineVersion: String? @@ -6207,7 +6215,7 @@ extension RDS { public let dbParameterGroupFamily: String? /// Specifies whether to return only the default version of the specified engine or the engine and major version combination. public let defaultOnly: Bool? - /// The database engine to return version details for. Valid Values: aurora-mysql aurora-postgresql custom-oracle-ee db2-ae db2-se mariadb mysql oracle-ee oracle-ee-cdb oracle-se2 oracle-se2-cdb postgres sqlserver-ee sqlserver-se sqlserver-ex sqlserver-web + /// The database engine to return version details for. Valid Values: aurora-mysql aurora-postgresql custom-oracle-ee custom-oracle-ee-cdb custom-oracle-se2 custom-oracle-se2-cdb db2-ae db2-se mariadb mysql oracle-ee oracle-ee-cdb oracle-se2 oracle-se2-cdb postgres sqlserver-ee sqlserver-se sqlserver-ex sqlserver-web public let engine: String? /// A specific database engine version to return details for. Example: 5.1.49 public let engineVersion: String? @@ -6983,7 +6991,7 @@ extension RDS { public struct DescribeEngineDefaultParametersMessage: AWSEncodableShape { public struct _FiltersEncoding: ArrayCoderProperties { public static let member = "Filter" } - /// The name of the DB parameter group family. Valid Values: aurora-mysql5.7 aurora-mysql8.0 aurora-postgresql10 aurora-postgresql11 aurora-postgresql12 aurora-postgresql13 aurora-postgresql14 custom-oracle-ee-19 db2-ae db2-se mariadb10.2 mariadb10.3 mariadb10.4 mariadb10.5 mariadb10.6 mysql5.7 mysql8.0 oracle-ee-19 oracle-ee-cdb-19 oracle-ee-cdb-21 oracle-se2-19 oracle-se2-cdb-19 oracle-se2-cdb-21 postgres10 postgres11 postgres12 postgres13 postgres14 sqlserver-ee-11.0 sqlserver-ee-12.0 sqlserver-ee-13.0 sqlserver-ee-14.0 sqlserver-ee-15.0 sqlserver-ex-11.0 sqlserver-ex-12.0 sqlserver-ex-13.0 sqlserver-ex-14.0 sqlserver-ex-15.0 sqlserver-se-11.0 sqlserver-se-12.0 sqlserver-se-13.0 sqlserver-se-14.0 sqlserver-se-15.0 sqlserver-web-11.0 sqlserver-web-12.0 sqlserver-web-13.0 sqlserver-web-14.0 sqlserver-web-15.0 + /// The name of the DB parameter group family. Valid Values: aurora-mysql5.7 aurora-mysql8.0 aurora-postgresql10 aurora-postgresql11 aurora-postgresql12 aurora-postgresql13 aurora-postgresql14 custom-oracle-ee-19 custom-oracle-ee-cdb-19 db2-ae db2-se mariadb10.2 mariadb10.3 mariadb10.4 mariadb10.5 mariadb10.6 mysql5.7 mysql8.0 oracle-ee-19 oracle-ee-cdb-19 oracle-ee-cdb-21 oracle-se2-19 oracle-se2-cdb-19 oracle-se2-cdb-21 postgres10 postgres11 postgres12 postgres13 postgres14 sqlserver-ee-11.0 sqlserver-ee-12.0 sqlserver-ee-13.0 sqlserver-ee-14.0 sqlserver-ee-15.0 sqlserver-ex-11.0 sqlserver-ex-12.0 sqlserver-ex-13.0 sqlserver-ex-14.0 sqlserver-ex-15.0 sqlserver-se-11.0 sqlserver-se-12.0 sqlserver-se-13.0 sqlserver-se-14.0 sqlserver-se-15.0 sqlserver-web-11.0 sqlserver-web-12.0 sqlserver-web-13.0 sqlserver-web-14.0 sqlserver-web-15.0 public let dbParameterGroupFamily: String? /// This parameter isn't currently supported. @OptionalCustomCoding> @@ -7318,7 +7326,7 @@ extension RDS { public let availabilityZoneGroup: String? /// A filter to include only the available options for the specified DB instance class. public let dbInstanceClass: String? - /// The name of the engine to describe DB instance options for. Valid Values: aurora-mysql aurora-postgresql custom-oracle-ee db2-ae db2-se mariadb mysql oracle-ee oracle-ee-cdb oracle-se2 oracle-se2-cdb postgres sqlserver-ee sqlserver-se sqlserver-ex sqlserver-web + /// The name of the database engine to describe DB instance options for. Valid Values: aurora-mysql aurora-postgresql custom-oracle-ee custom-oracle-ee-cdb custom-oracle-se2 custom-oracle-se2-cdb db2-ae db2-se mariadb mysql oracle-ee oracle-ee-cdb oracle-se2 oracle-se2-cdb postgres sqlserver-ee sqlserver-se sqlserver-ex sqlserver-web public let engine: String? /// A filter to include only the available options for the specified engine version. public let engineVersion: String? @@ -7329,7 +7337,7 @@ extension RDS { public let licenseModel: 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? - /// 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 you can retrieve the remaining results. Default: 100 Constraints: Minimum 20, maximum 10000. + /// 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 you can retrieve the remaining results. Default: 100 Constraints: Minimum 20, maximum 1000. public let maxRecords: Int? /// Specifies whether to show only VPC or non-VPC offerings. RDS Custom supports only VPC offerings. RDS Custom supports only VPC offerings. If you describe non-VPC offerings for RDS Custom, the output shows VPC offerings. public let vpc: Bool? @@ -8553,7 +8561,7 @@ extension RDS { public struct ModifyActivityStreamRequest: AWSEncodableShape { /// The audit policy state. When a policy is unlocked, it is read/write. When it is locked, it is read-only. You can edit your audit policy only when the activity stream is unlocked or stopped. public let auditPolicyState: AuditPolicyState? - /// The Amazon Resource Name (ARN) of the RDS for Oracle or Microsoft SQL Server DB instance. For example, arn:aws:rds:us-east-1:12345667890:instance:my-orcl-db. + /// The Amazon Resource Name (ARN) of the RDS for Oracle or Microsoft SQL Server DB instance. For example, arn:aws:rds:us-east-1:12345667890:db:my-orcl-db. public let resourceArn: String? public init(auditPolicyState: AuditPolicyState? = nil, resourceArn: String? = nil) { @@ -8657,7 +8665,7 @@ extension RDS { public struct ModifyCustomDBEngineVersionMessage: AWSEncodableShape { /// An optional description of your CEV. public let description: String? - /// The DB engine. The only supported values are custom-oracle-ee and custom-oracle-ee-cdb. + /// The database engine. RDS Custom for Oracle supports the following values: custom-oracle-ee custom-oracle-ee-cdb custom-oracle-se2 custom-oracle-se2-cdb public let engine: String? /// The custom engine version (CEV) that you want to modify. This option is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Amazon Web Services Region. public let engineVersion: String? @@ -8994,7 +9002,7 @@ extension RDS { public struct _ProcessorFeaturesEncoding: ArrayCoderProperties { public static let member = "ProcessorFeature" } public struct _VpcSecurityGroupIdsEncoding: ArrayCoderProperties { public static let member = "VpcSecurityGroupId" } - /// The new amount of storage in gibibytes (GiB) to allocate for the DB instance. For RDS for Db2, MariaDB, RDS for MySQL, RDS for Oracle, and RDS for PostgreSQL, the 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. For the valid values for allocated storage for each engine, see CreateDBInstance. + /// The new amount of storage in gibibytes (GiB) to allocate for the DB instance. For RDS for Db2, MariaDB, RDS for MySQL, RDS for Oracle, and RDS for PostgreSQL, the 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. For the valid values for allocated storage for each engine, see CreateDBInstance. Constraints: When you increase the allocated storage for a DB instance that uses Provisioned IOPS (gp3, io1, or io2 storage type), you must also specify the Iops parameter. You can use the current value for Iops. public let allocatedStorage: Int? /// Specifies whether major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible. This setting doesn't apply to RDS Custom DB instances. Constraints: Major version upgrades must be allowed when specifying a value for the EngineVersion parameter that's a different major version than the DB instance's current version. public let allowMajorVersionUpgrade: Bool? @@ -9027,11 +9035,11 @@ extension RDS { /// A list of DB security groups to authorize on this DB instance. Changing this setting doesn't result in an outage and the change is asynchronously applied as soon as possible. This setting doesn't apply to RDS Custom DB instances. Constraints: If supplied, must match existing DB security groups. @OptionalCustomCoding> public var dbSecurityGroups: [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 isn't in a VPC, you can also use this parameter to move your DB instance into a VPC. For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide. Changing the subnet group causes an outage during the change. The change is applied during the next maintenance window, unless you enable ApplyImmediately. This parameter doesn't apply to RDS Custom DB instances. Constraints: If supplied, must match existing DB subnet group. Example: mydbsubnetgroup + /// 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 isn't in a VPC, you can also use this parameter to move your DB instance into a VPC. For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide. Changing the subnet group causes an outage during the change. The change is applied during the next maintenance window, unless you enable ApplyImmediately. This setting doesn't apply to RDS Custom DB instances. Constraints: If supplied, must match existing DB subnet group. Example: mydbsubnetgroup public let dbSubnetGroupName: String? /// Indicates whether the DB instance has a dedicated log volume (DLV) enabled. public let dedicatedLogVolume: Bool? - /// Specifies whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see Deleting a DB Instance. + /// Specifies whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see Deleting a DB Instance. This setting doesn't apply to Amazon Aurora DB instances. You can enable or disable deletion protection for the DB cluster. For more information, see ModifyDBCluster. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster. public let deletionProtection: Bool? /// Specifies whether to remove the DB instance from the Active Directory domain. public let disableDomain: Bool? @@ -9058,7 +9066,7 @@ extension RDS { public let engine: 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 enabled 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. If you specify only a major version, Amazon RDS updates the DB instance to the default minor version if the current minor version is lower. For information about valid engine versions, see CreateDBInstance, or call DescribeDBEngineVersions. If the instance that you're modifying is acting as a read replica, the engine version that you specify must be the same or higher than the version that the source DB instance or cluster is running. In RDS Custom for Oracle, this parameter is supported for read replicas only if they are in the PATCH_DB_FAILURE lifecycle. Constraints: If you are upgrading the engine version and modifying the DB instance class at the same time, the currently running engine version must be supported on the specified DB instance class. Otherwise, the operation returns an error. In this case, first run the operation to upgrade the engine version, and then run it again to modify the DB instance class. public let engineVersion: String? - /// The new Provisioned IOPS (I/O operations per second) value for the RDS instance. Changing this setting doesn't result in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is enabled for this request. 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. 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. Constraints: For RDS for MariaDB, RDS for MySQL, RDS for Oracle, and RDS for PostgreSQL - The 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. Default: Uses existing setting + /// The new Provisioned IOPS (I/O operations per second) value for the RDS instance. Changing this setting doesn't result in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is enabled for this request. 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. 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. Constraints: For RDS for MariaDB, RDS for MySQL, RDS for Oracle, and RDS for PostgreSQL - The 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. When you increase the Provisioned IOPS, you must also specify the AllocatedStorage parameter. You can use the current value for AllocatedStorage. Default: Uses existing setting public let iops: Int? /// The license model for the DB instance. This setting doesn't apply to Amazon Aurora or RDS Custom DB instances. Valid Values: RDS for Db2 - bring-your-own-license RDS for MariaDB - general-public-license RDS for Microsoft SQL Server - license-included RDS for MySQL - general-public-license RDS for Oracle - bring-your-own-license | license-included RDS for PostgreSQL - postgresql-license public let licenseModel: String? @@ -11869,6 +11877,8 @@ extension RDS { public let availabilityZone: String? /// Specifies where automated backups and manual snapshots are stored for the restored DB instance. Possible values are outposts (Amazon Web Services Outposts) and region (Amazon Web Services Region). The default is region. For more information, see Working with Amazon RDS on Amazon Web Services Outposts in the Amazon RDS User Guide. public let backupTarget: String? + /// The CA certificate identifier to use for the DB instance's server certificate. This setting doesn't apply to RDS Custom DB instances. For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide. + public let caCertificateIdentifier: String? /// Specifies whether to copy all tags from the restored DB instance to snapshots of the DB instance. In most cases, tags aren't copied by default. However, when you restore a DB instance from a DB snapshot, RDS checks whether you specify new tags. If yes, the new tags are added to the restored DB instance. If there are no new tags, RDS looks for the tags from the source DB instance for the DB snapshot, and then adds those tags to the restored DB instance. For more information, see Copying tags to DB instance snapshots in the Amazon RDS User Guide. public let copyTagsToSnapshot: Bool? /// The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements: The profile must exist in your account. The profile must have an IAM role that Amazon EC2 has permissions to assume. The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom. For the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide. This setting is required for RDS Custom. @@ -11946,11 +11956,12 @@ extension RDS { @OptionalCustomCoding> public var vpcSecurityGroupIds: [String]? - public init(allocatedStorage: Int? = nil, autoMinorVersionUpgrade: Bool? = nil, availabilityZone: String? = nil, backupTarget: String? = nil, copyTagsToSnapshot: Bool? = nil, customIamInstanceProfile: String? = nil, dbClusterSnapshotIdentifier: String? = nil, dbInstanceClass: String? = nil, dbInstanceIdentifier: String? = nil, dbName: String? = nil, dbParameterGroupName: String? = nil, dbSnapshotIdentifier: String? = nil, dbSubnetGroupName: String? = nil, dedicatedLogVolume: Bool? = nil, deletionProtection: Bool? = nil, domain: String? = nil, domainAuthSecretArn: String? = nil, domainDnsIps: [String]? = nil, domainFqdn: String? = nil, domainIAMRoleName: String? = nil, domainOu: String? = nil, enableCloudwatchLogsExports: [String]? = nil, enableCustomerOwnedIp: Bool? = nil, enableIAMDatabaseAuthentication: Bool? = nil, engine: String? = nil, iops: Int? = nil, licenseModel: String? = nil, multiAZ: Bool? = nil, networkType: String? = nil, optionGroupName: String? = nil, port: Int? = nil, processorFeatures: [ProcessorFeature]? = nil, publiclyAccessible: Bool? = nil, storageThroughput: Int? = nil, storageType: String? = nil, tags: [Tag]? = nil, tdeCredentialArn: String? = nil, tdeCredentialPassword: String? = nil, useDefaultProcessorFeatures: Bool? = nil, vpcSecurityGroupIds: [String]? = nil) { + public init(allocatedStorage: Int? = nil, autoMinorVersionUpgrade: Bool? = nil, availabilityZone: String? = nil, backupTarget: String? = nil, caCertificateIdentifier: String? = nil, copyTagsToSnapshot: Bool? = nil, customIamInstanceProfile: String? = nil, dbClusterSnapshotIdentifier: String? = nil, dbInstanceClass: String? = nil, dbInstanceIdentifier: String? = nil, dbName: String? = nil, dbParameterGroupName: String? = nil, dbSnapshotIdentifier: String? = nil, dbSubnetGroupName: String? = nil, dedicatedLogVolume: Bool? = nil, deletionProtection: Bool? = nil, domain: String? = nil, domainAuthSecretArn: String? = nil, domainDnsIps: [String]? = nil, domainFqdn: String? = nil, domainIAMRoleName: String? = nil, domainOu: String? = nil, enableCloudwatchLogsExports: [String]? = nil, enableCustomerOwnedIp: Bool? = nil, enableIAMDatabaseAuthentication: Bool? = nil, engine: String? = nil, iops: Int? = nil, licenseModel: String? = nil, multiAZ: Bool? = nil, networkType: String? = nil, optionGroupName: String? = nil, port: Int? = nil, processorFeatures: [ProcessorFeature]? = nil, publiclyAccessible: Bool? = nil, storageThroughput: Int? = nil, storageType: String? = nil, tags: [Tag]? = nil, tdeCredentialArn: String? = nil, tdeCredentialPassword: String? = nil, useDefaultProcessorFeatures: Bool? = nil, vpcSecurityGroupIds: [String]? = nil) { self.allocatedStorage = allocatedStorage self.autoMinorVersionUpgrade = autoMinorVersionUpgrade self.availabilityZone = availabilityZone self.backupTarget = backupTarget + self.caCertificateIdentifier = caCertificateIdentifier self.copyTagsToSnapshot = copyTagsToSnapshot self.customIamInstanceProfile = customIamInstanceProfile self.dbClusterSnapshotIdentifier = dbClusterSnapshotIdentifier @@ -11994,6 +12005,7 @@ extension RDS { case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" case availabilityZone = "AvailabilityZone" case backupTarget = "BackupTarget" + case caCertificateIdentifier = "CACertificateIdentifier" case copyTagsToSnapshot = "CopyTagsToSnapshot" case customIamInstanceProfile = "CustomIamInstanceProfile" case dbClusterSnapshotIdentifier = "DBClusterSnapshotIdentifier" @@ -12059,6 +12071,8 @@ extension RDS { public let availabilityZone: 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: Int? + /// The CA certificate identifier to use for the DB instance's server certificate. This setting doesn't apply to RDS Custom DB instances. For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide. + public let caCertificateIdentifier: String? /// Specifies whether to copy all tags from the DB instance to snapshots of the DB instance. By default, tags are not copied. 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 Amazon Web Services 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 isn't supported on the db.t2.micro DB instance class. @@ -12155,11 +12169,12 @@ extension RDS { @OptionalCustomCoding> public var vpcSecurityGroupIds: [String]? - public init(allocatedStorage: Int? = nil, autoMinorVersionUpgrade: Bool? = nil, availabilityZone: String? = nil, backupRetentionPeriod: Int? = nil, copyTagsToSnapshot: Bool? = nil, dbInstanceClass: String? = nil, dbInstanceIdentifier: String? = nil, dbName: String? = nil, dbParameterGroupName: String? = nil, dbSecurityGroups: [String]? = nil, dbSubnetGroupName: String? = nil, dedicatedLogVolume: Bool? = nil, deletionProtection: Bool? = nil, enableCloudwatchLogsExports: [String]? = nil, enableIAMDatabaseAuthentication: Bool? = nil, enablePerformanceInsights: Bool? = nil, engine: String? = nil, engineVersion: String? = nil, iops: Int? = nil, kmsKeyId: String? = nil, licenseModel: String? = nil, manageMasterUserPassword: Bool? = nil, masterUsername: String? = nil, masterUserPassword: String? = nil, masterUserSecretKmsKeyId: String? = nil, maxAllocatedStorage: Int? = nil, monitoringInterval: Int? = nil, monitoringRoleArn: String? = nil, multiAZ: Bool? = nil, networkType: String? = nil, optionGroupName: String? = nil, performanceInsightsKMSKeyId: String? = nil, performanceInsightsRetentionPeriod: Int? = nil, port: Int? = nil, preferredBackupWindow: String? = nil, preferredMaintenanceWindow: String? = nil, processorFeatures: [ProcessorFeature]? = nil, publiclyAccessible: Bool? = nil, s3BucketName: String? = nil, s3IngestionRoleArn: String? = nil, s3Prefix: String? = nil, sourceEngine: String? = nil, sourceEngineVersion: String? = nil, storageEncrypted: Bool? = nil, storageThroughput: Int? = nil, storageType: String? = nil, tags: [Tag]? = nil, useDefaultProcessorFeatures: Bool? = nil, vpcSecurityGroupIds: [String]? = nil) { + public init(allocatedStorage: Int? = nil, autoMinorVersionUpgrade: Bool? = nil, availabilityZone: String? = nil, backupRetentionPeriod: Int? = nil, caCertificateIdentifier: String? = nil, copyTagsToSnapshot: Bool? = nil, dbInstanceClass: String? = nil, dbInstanceIdentifier: String? = nil, dbName: String? = nil, dbParameterGroupName: String? = nil, dbSecurityGroups: [String]? = nil, dbSubnetGroupName: String? = nil, dedicatedLogVolume: Bool? = nil, deletionProtection: Bool? = nil, enableCloudwatchLogsExports: [String]? = nil, enableIAMDatabaseAuthentication: Bool? = nil, enablePerformanceInsights: Bool? = nil, engine: String? = nil, engineVersion: String? = nil, iops: Int? = nil, kmsKeyId: String? = nil, licenseModel: String? = nil, manageMasterUserPassword: Bool? = nil, masterUsername: String? = nil, masterUserPassword: String? = nil, masterUserSecretKmsKeyId: String? = nil, maxAllocatedStorage: Int? = nil, monitoringInterval: Int? = nil, monitoringRoleArn: String? = nil, multiAZ: Bool? = nil, networkType: String? = nil, optionGroupName: String? = nil, performanceInsightsKMSKeyId: String? = nil, performanceInsightsRetentionPeriod: Int? = nil, port: Int? = nil, preferredBackupWindow: String? = nil, preferredMaintenanceWindow: String? = nil, processorFeatures: [ProcessorFeature]? = nil, publiclyAccessible: Bool? = nil, s3BucketName: String? = nil, s3IngestionRoleArn: String? = nil, s3Prefix: String? = nil, sourceEngine: String? = nil, sourceEngineVersion: String? = nil, storageEncrypted: Bool? = nil, storageThroughput: Int? = nil, storageType: String? = nil, tags: [Tag]? = nil, useDefaultProcessorFeatures: Bool? = nil, vpcSecurityGroupIds: [String]? = nil) { self.allocatedStorage = allocatedStorage self.autoMinorVersionUpgrade = autoMinorVersionUpgrade self.availabilityZone = availabilityZone self.backupRetentionPeriod = backupRetentionPeriod + self.caCertificateIdentifier = caCertificateIdentifier self.copyTagsToSnapshot = copyTagsToSnapshot self.dbInstanceClass = dbInstanceClass self.dbInstanceIdentifier = dbInstanceIdentifier @@ -12212,6 +12227,7 @@ extension RDS { case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" case availabilityZone = "AvailabilityZone" case backupRetentionPeriod = "BackupRetentionPeriod" + case caCertificateIdentifier = "CACertificateIdentifier" case copyTagsToSnapshot = "CopyTagsToSnapshot" case dbInstanceClass = "DBInstanceClass" case dbInstanceIdentifier = "DBInstanceIdentifier" @@ -12285,6 +12301,8 @@ extension RDS { public let availabilityZone: String? /// The location for storing automated backups and manual snapshots for the restored DB instance. Valid Values: outposts (Amazon Web Services Outposts) region (Amazon Web Services Region) Default: region For more information, see Working with Amazon RDS on Amazon Web Services Outposts in the Amazon RDS User Guide. public let backupTarget: String? + /// The CA certificate identifier to use for the DB instance's server certificate. This setting doesn't apply to RDS Custom DB instances. For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide. + public let caCertificateIdentifier: String? /// Specifies whether to copy all tags from the restored DB instance to snapshots of the DB instance. By default, tags are not copied. public let copyTagsToSnapshot: Bool? /// The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements: The profile must exist in your account. The profile must have an IAM role that Amazon EC2 has permissions to assume. The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom. For the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide. This setting is required for RDS Custom. @@ -12370,11 +12388,12 @@ extension RDS { @OptionalCustomCoding> public var vpcSecurityGroupIds: [String]? - public init(allocatedStorage: Int? = nil, autoMinorVersionUpgrade: Bool? = nil, availabilityZone: String? = nil, backupTarget: String? = nil, copyTagsToSnapshot: Bool? = nil, customIamInstanceProfile: String? = nil, dbInstanceClass: String? = nil, dbName: String? = nil, dbParameterGroupName: String? = nil, dbSubnetGroupName: String? = nil, dedicatedLogVolume: Bool? = nil, deletionProtection: Bool? = nil, domain: String? = nil, domainAuthSecretArn: String? = nil, domainDnsIps: [String]? = nil, domainFqdn: String? = nil, domainIAMRoleName: String? = nil, domainOu: String? = nil, enableCloudwatchLogsExports: [String]? = nil, enableCustomerOwnedIp: Bool? = nil, enableIAMDatabaseAuthentication: Bool? = nil, engine: String? = nil, iops: Int? = nil, licenseModel: String? = nil, maxAllocatedStorage: Int? = nil, multiAZ: Bool? = nil, networkType: String? = nil, optionGroupName: String? = nil, port: Int? = nil, processorFeatures: [ProcessorFeature]? = nil, publiclyAccessible: Bool? = nil, restoreTime: Date? = nil, sourceDBInstanceAutomatedBackupsArn: String? = nil, sourceDBInstanceIdentifier: String? = nil, sourceDbiResourceId: String? = nil, storageThroughput: Int? = nil, storageType: String? = nil, tags: [Tag]? = nil, targetDBInstanceIdentifier: String? = nil, tdeCredentialArn: String? = nil, tdeCredentialPassword: String? = nil, useDefaultProcessorFeatures: Bool? = nil, useLatestRestorableTime: Bool? = nil, vpcSecurityGroupIds: [String]? = nil) { + public init(allocatedStorage: Int? = nil, autoMinorVersionUpgrade: Bool? = nil, availabilityZone: String? = nil, backupTarget: String? = nil, caCertificateIdentifier: String? = nil, copyTagsToSnapshot: Bool? = nil, customIamInstanceProfile: String? = nil, dbInstanceClass: String? = nil, dbName: String? = nil, dbParameterGroupName: String? = nil, dbSubnetGroupName: String? = nil, dedicatedLogVolume: Bool? = nil, deletionProtection: Bool? = nil, domain: String? = nil, domainAuthSecretArn: String? = nil, domainDnsIps: [String]? = nil, domainFqdn: String? = nil, domainIAMRoleName: String? = nil, domainOu: String? = nil, enableCloudwatchLogsExports: [String]? = nil, enableCustomerOwnedIp: Bool? = nil, enableIAMDatabaseAuthentication: Bool? = nil, engine: String? = nil, iops: Int? = nil, licenseModel: String? = nil, maxAllocatedStorage: Int? = nil, multiAZ: Bool? = nil, networkType: String? = nil, optionGroupName: String? = nil, port: Int? = nil, processorFeatures: [ProcessorFeature]? = nil, publiclyAccessible: Bool? = nil, restoreTime: Date? = nil, sourceDBInstanceAutomatedBackupsArn: String? = nil, sourceDBInstanceIdentifier: String? = nil, sourceDbiResourceId: String? = nil, storageThroughput: Int? = nil, storageType: String? = nil, tags: [Tag]? = nil, targetDBInstanceIdentifier: String? = nil, tdeCredentialArn: String? = nil, tdeCredentialPassword: String? = nil, useDefaultProcessorFeatures: Bool? = nil, useLatestRestorableTime: Bool? = nil, vpcSecurityGroupIds: [String]? = nil) { self.allocatedStorage = allocatedStorage self.autoMinorVersionUpgrade = autoMinorVersionUpgrade self.availabilityZone = availabilityZone self.backupTarget = backupTarget + self.caCertificateIdentifier = caCertificateIdentifier self.copyTagsToSnapshot = copyTagsToSnapshot self.customIamInstanceProfile = customIamInstanceProfile self.dbInstanceClass = dbInstanceClass @@ -12422,6 +12441,7 @@ extension RDS { case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" case availabilityZone = "AvailabilityZone" case backupTarget = "BackupTarget" + case caCertificateIdentifier = "CACertificateIdentifier" case copyTagsToSnapshot = "CopyTagsToSnapshot" case customIamInstanceProfile = "CustomIamInstanceProfile" case dbInstanceClass = "DBInstanceClass" @@ -13328,12 +13348,14 @@ extension RDS { public let supportsGlobalDatabases: Bool? /// Indicates whether the DB engine version supports zero-ETL integrations with Amazon Redshift. public let supportsIntegrations: Bool? + /// Indicates whether the DB engine version supports Aurora Limitless Database. + public let supportsLimitlessDatabase: Bool? /// Indicates whether the target engine version supports forwarding write operations from reader DB instances to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances. Valid for: Aurora DB clusters only public let supportsLocalWriteForwarding: Bool? /// Indicates whether you can use Aurora parallel query with the target engine version. public let supportsParallelQuery: Bool? - public init(autoUpgrade: Bool? = nil, description: String? = nil, engine: String? = nil, engineVersion: String? = nil, isMajorVersionUpgrade: Bool? = nil, supportedEngineModes: [String]? = nil, supportsBabelfish: Bool? = nil, supportsGlobalDatabases: Bool? = nil, supportsIntegrations: Bool? = nil, supportsLocalWriteForwarding: Bool? = nil, supportsParallelQuery: Bool? = nil) { + public init(autoUpgrade: Bool? = nil, description: String? = nil, engine: String? = nil, engineVersion: String? = nil, isMajorVersionUpgrade: Bool? = nil, supportedEngineModes: [String]? = nil, supportsBabelfish: Bool? = nil, supportsGlobalDatabases: Bool? = nil, supportsIntegrations: Bool? = nil, supportsLimitlessDatabase: Bool? = nil, supportsLocalWriteForwarding: Bool? = nil, supportsParallelQuery: Bool? = nil) { self.autoUpgrade = autoUpgrade self.description = description self.engine = engine @@ -13343,6 +13365,7 @@ extension RDS { self.supportsBabelfish = supportsBabelfish self.supportsGlobalDatabases = supportsGlobalDatabases self.supportsIntegrations = supportsIntegrations + self.supportsLimitlessDatabase = supportsLimitlessDatabase self.supportsLocalWriteForwarding = supportsLocalWriteForwarding self.supportsParallelQuery = supportsParallelQuery } @@ -13357,6 +13380,7 @@ extension RDS { case supportsBabelfish = "SupportsBabelfish" case supportsGlobalDatabases = "SupportsGlobalDatabases" case supportsIntegrations = "SupportsIntegrations" + case supportsLimitlessDatabase = "SupportsLimitlessDatabase" case supportsLocalWriteForwarding = "SupportsLocalWriteForwarding" case supportsParallelQuery = "SupportsParallelQuery" } diff --git a/Sources/Soto/Services/Redshift/Redshift_shapes.swift b/Sources/Soto/Services/Redshift/Redshift_shapes.swift index cc92f78088..8ec83ea084 100644 --- a/Sources/Soto/Services/Redshift/Redshift_shapes.swift +++ b/Sources/Soto/Services/Redshift/Redshift_shapes.swift @@ -8565,6 +8565,8 @@ extension Redshift { /// The list of node types that this cluster snapshot is able to restore into. @OptionalCustomCoding> public var restorableNodeTypes: [String]? + /// The Amazon Resource Name (ARN) of the snapshot. + public let snapshotArn: String? /// The time (in UTC format) when Amazon Redshift began the snapshot. A snapshot contains a copy of the cluster data as of this exact time. public let snapshotCreateTime: Date? /// The snapshot identifier that is provided in the request. @@ -8585,7 +8587,7 @@ extension Redshift { /// The VPC identifier of the cluster if the snapshot is from a cluster in a VPC. Otherwise, this field is not in the output. public let vpcId: String? - public init(accountsWithRestoreAccess: [AccountWithRestoreAccess]? = nil, actualIncrementalBackupSizeInMegaBytes: Double? = nil, availabilityZone: String? = nil, backupProgressInMegaBytes: Double? = nil, clusterCreateTime: Date? = nil, clusterIdentifier: String? = nil, clusterVersion: String? = nil, currentBackupRateInMegaBytesPerSecond: Double? = nil, dbName: String? = nil, elapsedTimeInSeconds: Int64? = nil, encrypted: Bool? = nil, encryptedWithHSM: Bool? = nil, engineFullVersion: String? = nil, enhancedVpcRouting: Bool? = nil, estimatedSecondsToCompletion: Int64? = nil, kmsKeyId: String? = nil, maintenanceTrackName: String? = nil, manualSnapshotRemainingDays: Int? = nil, manualSnapshotRetentionPeriod: Int? = nil, masterPasswordSecretArn: String? = nil, masterPasswordSecretKmsKeyId: String? = nil, masterUsername: String? = nil, nodeType: String? = nil, numberOfNodes: Int? = nil, ownerAccount: String? = nil, port: Int? = nil, restorableNodeTypes: [String]? = nil, snapshotCreateTime: Date? = nil, snapshotIdentifier: String? = nil, snapshotRetentionStartTime: Date? = nil, snapshotType: String? = nil, sourceRegion: String? = nil, status: String? = nil, tags: [Tag]? = nil, totalBackupSizeInMegaBytes: Double? = nil, vpcId: String? = nil) { + public init(accountsWithRestoreAccess: [AccountWithRestoreAccess]? = nil, actualIncrementalBackupSizeInMegaBytes: Double? = nil, availabilityZone: String? = nil, backupProgressInMegaBytes: Double? = nil, clusterCreateTime: Date? = nil, clusterIdentifier: String? = nil, clusterVersion: String? = nil, currentBackupRateInMegaBytesPerSecond: Double? = nil, dbName: String? = nil, elapsedTimeInSeconds: Int64? = nil, encrypted: Bool? = nil, encryptedWithHSM: Bool? = nil, engineFullVersion: String? = nil, enhancedVpcRouting: Bool? = nil, estimatedSecondsToCompletion: Int64? = nil, kmsKeyId: String? = nil, maintenanceTrackName: String? = nil, manualSnapshotRemainingDays: Int? = nil, manualSnapshotRetentionPeriod: Int? = nil, masterPasswordSecretArn: String? = nil, masterPasswordSecretKmsKeyId: String? = nil, masterUsername: String? = nil, nodeType: String? = nil, numberOfNodes: Int? = nil, ownerAccount: String? = nil, port: Int? = nil, restorableNodeTypes: [String]? = nil, snapshotArn: String? = nil, snapshotCreateTime: Date? = nil, snapshotIdentifier: String? = nil, snapshotRetentionStartTime: Date? = nil, snapshotType: String? = nil, sourceRegion: String? = nil, status: String? = nil, tags: [Tag]? = nil, totalBackupSizeInMegaBytes: Double? = nil, vpcId: String? = nil) { self.accountsWithRestoreAccess = accountsWithRestoreAccess self.actualIncrementalBackupSizeInMegaBytes = actualIncrementalBackupSizeInMegaBytes self.availabilityZone = availabilityZone @@ -8613,6 +8615,7 @@ extension Redshift { self.ownerAccount = ownerAccount self.port = port self.restorableNodeTypes = restorableNodeTypes + self.snapshotArn = snapshotArn self.snapshotCreateTime = snapshotCreateTime self.snapshotIdentifier = snapshotIdentifier self.snapshotRetentionStartTime = snapshotRetentionStartTime @@ -8652,6 +8655,7 @@ extension Redshift { case ownerAccount = "OwnerAccount" case port = "Port" case restorableNodeTypes = "RestorableNodeTypes" + case snapshotArn = "SnapshotArn" case snapshotCreateTime = "SnapshotCreateTime" case snapshotIdentifier = "SnapshotIdentifier" case snapshotRetentionStartTime = "SnapshotRetentionStartTime" diff --git a/Sources/Soto/Services/RedshiftServerless/RedshiftServerless_shapes.swift b/Sources/Soto/Services/RedshiftServerless/RedshiftServerless_shapes.swift index 683c1633c0..c782f53688 100644 --- a/Sources/Soto/Services/RedshiftServerless/RedshiftServerless_shapes.swift +++ b/Sources/Soto/Services/RedshiftServerless/RedshiftServerless_shapes.swift @@ -85,9 +85,9 @@ extension RedshiftServerless { } public enum Schedule: AWSEncodableShape & AWSDecodableShape, Sendable { - /// The timestamp of when Amazon Redshift Serverless should run the scheduled action. Format of at expressions is "at(yyyy-mm-ddThh:mm:ss)". For example, "at(2016-03-04T17:27:00)". + /// The timestamp of when Amazon Redshift Serverless should run the scheduled action. Timestamp is in UTC. Format of at expression is yyyy-mm-ddThh:mm:ss. For example, 2016-03-04T17:27:00. case at(Date) - /// The cron expression to use to schedule a recurring scheduled action. Schedule invocations must be separated by at least one hour. Format of cron expressions is "cron(Minutes Hours Day-of-month Month Day-of-week Year)". For example, "cron(0 10 ? * MON *)". For more information, see Cron Expressions in the Amazon CloudWatch Events User Guide. + /// The cron expression to use to schedule a recurring scheduled action. Schedule invocations must be separated by at least one hour. Times are in UTC. Format of cron expressions is (Minutes Hours Day-of-month Month Day-of-week Year). For example, "(0 10 ? * MON *)". For more information, see Cron Expressions in the Amazon CloudWatch Events User Guide. case cron(String) public init(from decoder: Decoder) throws { @@ -153,7 +153,7 @@ extension RedshiftServerless { } public struct ConfigParameter: AWSEncodableShape & AWSDecodableShape { - /// The key of the parameter. The options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging, query_group, search_path, require_ssl, and query monitoring metrics that let you define performance boundaries. For more information about query monitoring rules and available metrics, see Query monitoring metrics for Amazon Redshift Serverless. + /// The key of the parameter. The options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging, query_group, search_path, require_ssl, use_fips_ssl, and query monitoring metrics that let you define performance boundaries. For more information about query monitoring rules and available metrics, see Query monitoring metrics for Amazon Redshift Serverless. public let parameterKey: String? /// The value of the parameter to set. public let parameterValue: String? @@ -412,7 +412,7 @@ extension RedshiftServerless { public let namespaceName: String /// The ARN of the IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift Serverless API operation in the scheduled action. This IAM role must allow the Amazon Redshift scheduler to schedule creating snapshots. (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf. For more information about the IAM role to use with the Amazon Redshift scheduler, see Using Identity-Based Policies for Amazon Redshift in the Amazon Redshift Cluster Management Guide public let roleArn: String - /// The schedule for a one-time (at format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour. Format of at expressions is "at(yyyy-mm-ddThh:mm:ss)". For example, "at(2016-03-04T17:27:00)". Format of cron expressions is "cron(Minutes Hours Day-of-month Month Day-of-week Year)". For example, "cron(0 10 ? * MON *)". For more information, see Cron Expressions in the Amazon CloudWatch Events User Guide. + /// The schedule for a one-time (at timestamp format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour. Times are in UTC. Format of at timestamp is yyyy-mm-ddThh:mm:ss. For example, 2016-03-04T17:27:00. Format of cron expression is (Minutes Hours Day-of-month Month Day-of-week Year). For example, "(0 10 ? * MON *)". For more information, see Cron Expressions in the Amazon CloudWatch Events User Guide. public let schedule: Schedule /// The description of the scheduled action. public let scheduledActionDescription: String? @@ -641,7 +641,7 @@ extension RedshiftServerless { public struct CreateWorkgroupRequest: AWSEncodableShape { /// The base data warehouse capacity of the workgroup in Redshift Processing Units (RPUs). public let baseCapacity: Int? - /// An array of parameters to set for advanced control over a database. The options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging, query_group, search_path, require_ssl, and query monitoring metrics that let you define performance boundaries. For more information about query monitoring rules and available metrics, see Query monitoring metrics for Amazon Redshift Serverless. + /// An array of parameters to set for advanced control over a database. The options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging, query_group, search_path, require_ssl, use_fips_ssl, and query monitoring metrics that let you define performance boundaries. For more information about query monitoring rules and available metrics, see Query monitoring metrics for Amazon Redshift Serverless. public let configParameters: [ConfigParameter]? /// The value that specifies whether to turn on enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC instead of over the internet. public let enhancedVpcRouting: Bool? @@ -1673,10 +1673,10 @@ extension RedshiftServerless { public struct ListScheduledActionsResponse: AWSDecodableShape { /// If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. public let nextToken: String? - /// All of the returned scheduled action objects. - public let scheduledActions: [String]? + /// All of the returned scheduled action association objects. + public let scheduledActions: [ScheduledActionAssociation]? - public init(nextToken: String? = nil, scheduledActions: [String]? = nil) { + public init(nextToken: String? = nil, scheduledActions: [ScheduledActionAssociation]? = nil) { self.nextToken = nextToken self.scheduledActions = scheduledActions } @@ -2394,6 +2394,23 @@ extension RedshiftServerless { } } + public struct ScheduledActionAssociation: AWSDecodableShape { + /// Name of associated Amazon Redshift Serverless namespace. + public let namespaceName: String? + /// Name of associated scheduled action. + public let scheduledActionName: String? + + public init(namespaceName: String? = nil, scheduledActionName: String? = nil) { + self.namespaceName = namespaceName + self.scheduledActionName = scheduledActionName + } + + private enum CodingKeys: String, CodingKey { + case namespaceName = "namespaceName" + case scheduledActionName = "scheduledActionName" + } + } + public struct ScheduledActionResponse: AWSDecodableShape { /// The end time of public let endTime: Date? @@ -2403,7 +2420,7 @@ extension RedshiftServerless { public let nextInvocations: [Date]? /// The ARN of the IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift Serverless API operation in the scheduled action. This IAM role must allow the Amazon Redshift scheduler to schedule creating snapshots. (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf. For more information about the IAM role to use with the Amazon Redshift scheduler, see Using Identity-Based Policies for Amazon Redshift in the Amazon Redshift Cluster Management Guide public let roleArn: String? - /// The schedule for a one-time (at format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour. Format of at expressions is "at(yyyy-mm-ddThh:mm:ss)". For example, "at(2016-03-04T17:27:00)". Format of cron expressions is "cron(Minutes Hours Day-of-month Month Day-of-week Year)". For example, "cron(0 10 ? * MON *)". For more information, see Cron Expressions in the Amazon CloudWatch Events User Guide. + /// The schedule for a one-time (at timestamp format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour. Times are in UTC. Format of at timestamp is yyyy-mm-ddThh:mm:ss. For example, 2016-03-04T17:27:00. Format of cron expression is (Minutes Hours Day-of-month Month Day-of-week Year). For example, "(0 10 ? * MON *)". For more information, see Cron Expressions in the Amazon CloudWatch Events User Guide. public let schedule: Schedule? /// The description of the scheduled action. public let scheduledActionDescription: String? @@ -2893,7 +2910,7 @@ extension RedshiftServerless { public let endTime: Date? /// The ARN of the IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift Serverless API operation in the scheduled action. This IAM role must allow the Amazon Redshift scheduler to schedule creating snapshots (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf. For more information about the IAM role to use with the Amazon Redshift scheduler, see Using Identity-Based Policies for Amazon Redshift in the Amazon Redshift Cluster Management Guide public let roleArn: String? - /// The schedule for a one-time (at format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour. Format of at expressions is "at(yyyy-mm-ddThh:mm:ss)". For example, "at(2016-03-04T17:27:00)". Format of cron expressions is "cron(Minutes Hours Day-of-month Month Day-of-week Year)". For example, "cron(0 10 ? * MON *)". For more information, see Cron Expressions in the Amazon CloudWatch Events User Guide. + /// The schedule for a one-time (at timestamp format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour. Times are in UTC. Format of at timestamp is yyyy-mm-ddThh:mm:ss. For example, 2016-03-04T17:27:00. Format of cron expression is (Minutes Hours Day-of-month Month Day-of-week Year). For example, "(0 10 ? * MON *)". For more information, see Cron Expressions in the Amazon CloudWatch Events User Guide. public let schedule: Schedule? /// The descripion of the scheduled action to update to. public let scheduledActionDescription: String? @@ -3043,7 +3060,7 @@ extension RedshiftServerless { public struct UpdateWorkgroupRequest: AWSEncodableShape { /// The new base data warehouse capacity in Redshift Processing Units (RPUs). public let baseCapacity: Int? - /// An array of parameters to set for advanced control over a database. The options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging, query_group, search_path, require_ssl, and query monitoring metrics that let you define performance boundaries. For more information about query monitoring rules and available metrics, see Query monitoring metrics for Amazon Redshift Serverless. + /// An array of parameters to set for advanced control over a database. The options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging, query_group, search_path, require_ssl, use_fips_ssl, and query monitoring metrics that let you define performance boundaries. For more information about query monitoring rules and available metrics, see Query monitoring metrics for Amazon Redshift Serverless. public let configParameters: [ConfigParameter]? /// The value that specifies whether to turn on enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC. public let enhancedVpcRouting: Bool? @@ -3182,7 +3199,7 @@ extension RedshiftServerless { public struct Workgroup: AWSDecodableShape { /// The base data warehouse capacity of the workgroup in Redshift Processing Units (RPUs). public let baseCapacity: Int? - /// An array of parameters to set for advanced control over a database. The options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging, query_group, search_path, require_ssl, and query monitoring metrics that let you define performance boundaries. For more information about query monitoring rules and available metrics, see Query monitoring metrics for Amazon Redshift Serverless. + /// An array of parameters to set for advanced control over a database. The options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging, query_group, search_path, require_ssl, use_fips_ssl, and query monitoring metrics that let you define performance boundaries. For more information about query monitoring rules and available metrics, see Query monitoring metrics for Amazon Redshift Serverless. public let configParameters: [ConfigParameter]? /// The creation date of the workgroup. public let creationDate: Date? @@ -3206,7 +3223,7 @@ extension RedshiftServerless { public let patchVersion: String? /// The custom port to use when connecting to a workgroup. Valid port ranges are 5431-5455 and 8191-8215. The default is 5439. public let port: Int? - /// A value that specifies whether the workgroup can be accessible from a public network + /// A value that specifies whether the workgroup can be accessible from a public network. public let publiclyAccessible: Bool? /// An array of security group IDs to associate with the workgroup. public let securityGroupIds: [String]? diff --git a/Sources/Soto/Services/Rekognition/Rekognition_shapes.swift b/Sources/Soto/Services/Rekognition/Rekognition_shapes.swift index 9095a33755..875c5b29d5 100644 --- a/Sources/Soto/Services/Rekognition/Rekognition_shapes.swift +++ b/Sources/Soto/Services/Rekognition/Rekognition_shapes.swift @@ -890,6 +890,8 @@ extension Rekognition { } public struct ContentModerationDetection: AWSDecodableShape { + /// A list of predicted results for the type of content an image contains. For example, the image content might be from animation, sports, or a video game. + public let contentTypes: [ContentType]? /// The time duration of a segment in milliseconds, I.e. time elapsed from StartTimestampMillis to EndTimestampMillis. public let durationMillis: Int64? /// The time in milliseconds defining the end of the timeline segment containing a continuously detected moderation label. @@ -901,7 +903,8 @@ extension Rekognition { /// Time, in milliseconds from the beginning of the video, that the content moderation label was detected. Note that Timestamp is not guaranteed to be accurate to the individual frame where the moderated content first appears. public let timestamp: Int64? - public init(durationMillis: Int64? = nil, endTimestampMillis: Int64? = nil, moderationLabel: ModerationLabel? = nil, startTimestampMillis: Int64? = nil, timestamp: Int64? = nil) { + public init(contentTypes: [ContentType]? = nil, durationMillis: Int64? = nil, endTimestampMillis: Int64? = nil, moderationLabel: ModerationLabel? = nil, startTimestampMillis: Int64? = nil, timestamp: Int64? = nil) { + self.contentTypes = contentTypes self.durationMillis = durationMillis self.endTimestampMillis = endTimestampMillis self.moderationLabel = moderationLabel @@ -910,6 +913,7 @@ extension Rekognition { } private enum CodingKeys: String, CodingKey { + case contentTypes = "ContentTypes" case durationMillis = "DurationMillis" case endTimestampMillis = "EndTimestampMillis" case moderationLabel = "ModerationLabel" @@ -1178,7 +1182,7 @@ extension Rekognition { } public struct CreateFaceLivenessSessionResponse: AWSDecodableShape { - /// A unique 128-bit UUID identifying a Face Liveness session. + /// A unique 128-bit UUID identifying a Face Liveness session. A new sessionID must be used for every Face Liveness check. If a given sessionID is used for subsequent Face Liveness checks, the checks will fail. Additionally, a SessionId expires 3 minutes after it's sent, making all Liveness data associated with the session (e.g., sessionID, reference image, audit images, etc.) unavailable. public let sessionId: String public init(sessionId: String) { diff --git a/Sources/Soto/Services/RolesAnywhere/RolesAnywhere_api.swift b/Sources/Soto/Services/RolesAnywhere/RolesAnywhere_api.swift index 53c960835a..6952dba036 100644 --- a/Sources/Soto/Services/RolesAnywhere/RolesAnywhere_api.swift +++ b/Sources/Soto/Services/RolesAnywhere/RolesAnywhere_api.swift @@ -111,6 +111,19 @@ public struct RolesAnywhere: AWSService { ) } + /// Delete an entry from the attribute mapping rules enforced by a given profile. + @Sendable + public func deleteAttributeMapping(_ input: DeleteAttributeMappingRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteAttributeMappingResponse { + return try await self.client.execute( + operation: "DeleteAttributeMapping", + path: "/profiles/{profileId}/mappings", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Deletes a certificate revocation list (CRL). Required permissions: rolesanywhere:DeleteCrl. @Sendable public func deleteCrl(_ input: ScalarCrlRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CrlDetailResponse { @@ -358,6 +371,19 @@ public struct RolesAnywhere: AWSService { ) } + /// Put an entry in the attribute mapping rules that will be enforced by a given profile. A mapping specifies a certificate field and one or more specifiers that have contextual meanings. + @Sendable + public func putAttributeMapping(_ input: PutAttributeMappingRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> PutAttributeMappingResponse { + return try await self.client.execute( + operation: "PutAttributeMapping", + path: "/profiles/{profileId}/mappings", + httpMethod: .PUT, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Attaches a list of notification settings to a trust anchor. A notification setting includes information such as event name, threshold, status of the notification setting, and the channel to notify. Required permissions: rolesanywhere:PutNotificationSettings. @Sendable public func putNotificationSettings(_ input: PutNotificationSettingsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> PutNotificationSettingsResponse { diff --git a/Sources/Soto/Services/RolesAnywhere/RolesAnywhere_shapes.swift b/Sources/Soto/Services/RolesAnywhere/RolesAnywhere_shapes.swift index 6ca45738bc..3d0c2a07d8 100644 --- a/Sources/Soto/Services/RolesAnywhere/RolesAnywhere_shapes.swift +++ b/Sources/Soto/Services/RolesAnywhere/RolesAnywhere_shapes.swift @@ -26,6 +26,13 @@ import Foundation extension RolesAnywhere { // MARK: Enums + public enum CertificateField: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case x509Issuer = "x509Issuer" + case x509SAN = "x509SAN" + case x509Subject = "x509Subject" + public var description: String { return self.rawValue } + } + public enum NotificationChannel: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case all = "ALL" public var description: String { return self.rawValue } @@ -87,6 +94,23 @@ extension RolesAnywhere { // MARK: Shapes + public struct AttributeMapping: AWSDecodableShape { + /// Fields (x509Subject, x509Issuer and x509SAN) within X.509 certificates. + public let certificateField: CertificateField? + /// A list of mapping entries for every supported specifier or sub-field. + public let mappingRules: [MappingRule]? + + public init(certificateField: CertificateField? = nil, mappingRules: [MappingRule]? = nil) { + self.certificateField = certificateField + self.mappingRules = mappingRules + } + + private enum CodingKeys: String, CodingKey { + case certificateField = "certificateField" + case mappingRules = "mappingRules" + } + } + public struct CreateProfileRequest: AWSEncodableShape { /// Used to determine how long sessions vended using this profile are valid for. See the Expiration section of the /// CreateSession API documentation @@ -274,6 +298,50 @@ extension RolesAnywhere { } } + public struct DeleteAttributeMappingRequest: AWSEncodableShape { + /// Fields (x509Subject, x509Issuer and x509SAN) within X.509 certificates. + public let certificateField: CertificateField + /// The unique identifier of the profile. + public let profileId: String + /// A list of specifiers of a certificate field; for example, CN, OU, UID from a Subject. + public let specifiers: [String]? + + public init(certificateField: CertificateField, profileId: String, specifiers: [String]? = nil) { + self.certificateField = certificateField + self.profileId = profileId + self.specifiers = specifiers + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.certificateField, key: "certificateField") + request.encodePath(self.profileId, key: "profileId") + request.encodeQuery(self.specifiers, key: "specifiers") + } + + public func validate(name: String) throws { + try self.validate(self.profileId, name: "profileId", parent: name, max: 36) + try self.validate(self.profileId, name: "profileId", parent: name, min: 36) + try self.validate(self.profileId, name: "profileId", parent: name, pattern: "[a-f0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}") + } + + private enum CodingKeys: CodingKey {} + } + + public struct DeleteAttributeMappingResponse: AWSDecodableShape { + /// The state of the profile after a read or write operation. + public let profile: ProfileDetail + + public init(profile: ProfileDetail) { + self.profile = profile + } + + private enum CodingKeys: String, CodingKey { + case profile = "profile" + } + } + public struct ImportCrlRequest: AWSEncodableShape { /// The x509 v3 specified certificate revocation list (CRL). public let crlData: AWSBase64Data @@ -461,6 +529,19 @@ extension RolesAnywhere { } } + public struct MappingRule: AWSEncodableShape & AWSDecodableShape { + /// Specifier within a certificate field, such as CN, OU, or UID from the Subject field. + public let specifier: String + + public init(specifier: String) { + self.specifier = specifier + } + + private enum CodingKeys: String, CodingKey { + case specifier = "specifier" + } + } + public struct NotificationSetting: AWSEncodableShape { /// The specified channel of notification. IAM Roles Anywhere uses CloudWatch metrics, EventBridge, and Health Dashboard to notify for an event. In the absence of a specific channel, IAM Roles Anywhere applies this setting to 'ALL' channels. public let channel: NotificationChannel? @@ -533,6 +614,8 @@ extension RolesAnywhere { } public struct ProfileDetail: AWSDecodableShape { + /// A mapping applied to the authenticating end-entity certificate. + public let attributeMappings: [AttributeMapping]? /// The ISO-8601 timestamp when the profile was created. public let createdAt: Date? /// The Amazon Web Services account that created the profile. @@ -560,7 +643,8 @@ extension RolesAnywhere { /// The ISO-8601 timestamp when the profile was last updated. public let updatedAt: Date? - public init(createdAt: Date? = nil, createdBy: String? = nil, durationSeconds: Int? = nil, enabled: Bool? = nil, managedPolicyArns: [String]? = nil, name: String? = nil, profileArn: String? = nil, profileId: String? = nil, requireInstanceProperties: Bool? = nil, roleArns: [String]? = nil, sessionPolicy: String? = nil, updatedAt: Date? = nil) { + public init(attributeMappings: [AttributeMapping]? = nil, createdAt: Date? = nil, createdBy: String? = nil, durationSeconds: Int? = nil, enabled: Bool? = nil, managedPolicyArns: [String]? = nil, name: String? = nil, profileArn: String? = nil, profileId: String? = nil, requireInstanceProperties: Bool? = nil, roleArns: [String]? = nil, sessionPolicy: String? = nil, updatedAt: Date? = nil) { + self.attributeMappings = attributeMappings self.createdAt = createdAt self.createdBy = createdBy self.durationSeconds = durationSeconds @@ -576,6 +660,7 @@ extension RolesAnywhere { } private enum CodingKeys: String, CodingKey { + case attributeMappings = "attributeMappings" case createdAt = "createdAt" case createdBy = "createdBy" case durationSeconds = "durationSeconds" @@ -604,6 +689,53 @@ extension RolesAnywhere { } } + public struct PutAttributeMappingRequest: AWSEncodableShape { + /// Fields (x509Subject, x509Issuer and x509SAN) within X.509 certificates. + public let certificateField: CertificateField + /// A list of mapping entries for every supported specifier or sub-field. + public let mappingRules: [MappingRule] + /// The unique identifier of the profile. + public let profileId: String + + public init(certificateField: CertificateField, mappingRules: [MappingRule], profileId: String) { + self.certificateField = certificateField + self.mappingRules = mappingRules + self.profileId = profileId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(self.certificateField, forKey: .certificateField) + try container.encode(self.mappingRules, forKey: .mappingRules) + request.encodePath(self.profileId, key: "profileId") + } + + public func validate(name: String) throws { + try self.validate(self.profileId, name: "profileId", parent: name, max: 36) + try self.validate(self.profileId, name: "profileId", parent: name, min: 36) + try self.validate(self.profileId, name: "profileId", parent: name, pattern: "[a-f0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}") + } + + private enum CodingKeys: String, CodingKey { + case certificateField = "certificateField" + case mappingRules = "mappingRules" + } + } + + public struct PutAttributeMappingResponse: AWSDecodableShape { + /// The state of the profile after a read or write operation. + public let profile: ProfileDetail + + public init(profile: ProfileDetail) { + self.profile = profile + } + + private enum CodingKeys: String, CodingKey { + case profile = "profile" + } + } + public struct PutNotificationSettingsRequest: AWSEncodableShape { /// A list of notification settings to be associated to the trust anchor. public let notificationSettings: [NotificationSetting] diff --git a/Sources/Soto/Services/Route53Profiles/Route53Profiles_api.swift b/Sources/Soto/Services/Route53Profiles/Route53Profiles_api.swift new file mode 100644 index 0000000000..876e872681 --- /dev/null +++ b/Sources/Soto/Services/Route53Profiles/Route53Profiles_api.swift @@ -0,0 +1,385 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Soto for AWS open source project +// +// Copyright (c) 2017-2023 the Soto project authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// See CONTRIBUTORS.txt for the list of Soto project authors +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// + +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/soto-project/soto-codegenerator. +// DO NOT EDIT. + +@_exported import SotoCore + +/// Service object for interacting with AWS Route53Profiles service. +/// +/// With Amazon Route 53 Profiles you can share Route 53 configurations with VPCs and AWS accounts +public struct Route53Profiles: AWSService { + // MARK: Member variables + + /// Client used for communication with AWS + public let client: AWSClient + /// Service configuration + public let config: AWSServiceConfig + + // MARK: Initialization + + /// Initialize the Route53Profiles client + /// - parameters: + /// - client: AWSClient used to process requests + /// - region: Region of server you want to communicate with. This will override the partition parameter. + /// - partition: AWS partition where service resides, standard (.aws), china (.awscn), government (.awsusgov). + /// - endpoint: Custom endpoint URL to use instead of standard AWS servers + /// - middleware: Middleware chain used to edit requests before they are sent and responses before they are decoded + /// - timeout: Timeout value for HTTP requests + /// - byteBufferAllocator: Allocator for ByteBuffers + /// - options: Service options + public init( + client: AWSClient, + region: SotoCore.Region? = nil, + partition: AWSPartition = .aws, + endpoint: String? = nil, + middleware: AWSMiddlewareProtocol? = nil, + timeout: TimeAmount? = nil, + byteBufferAllocator: ByteBufferAllocator = ByteBufferAllocator(), + options: AWSServiceConfig.Options = [] + ) { + self.client = client + self.config = AWSServiceConfig( + region: region, + partition: region?.partition ?? partition, + serviceName: "Route53Profiles", + serviceIdentifier: "route53profiles", + serviceProtocol: .restjson, + apiVersion: "2018-05-10", + endpoint: endpoint, + errorType: Route53ProfilesErrorType.self, + middleware: middleware, + timeout: timeout, + byteBufferAllocator: byteBufferAllocator, + options: options + ) + } + + + + + + // MARK: API Calls + + /// Associates a Route 53 Profiles profile with a VPC. A VPC can have only one Profile associated with it, but a Profile can be associated with up to 5000 VPCs. + @Sendable + public func associateProfile(_ input: AssociateProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> AssociateProfileResponse { + return try await self.client.execute( + operation: "AssociateProfile", + path: "/profileassociation", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Associates a DNS reource configuration to a Route 53 Profile. + @Sendable + public func associateResourceToProfile(_ input: AssociateResourceToProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> AssociateResourceToProfileResponse { + return try await self.client.execute( + operation: "AssociateResourceToProfile", + path: "/profileresourceassociation", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Creates an empty Route 53 Profile. + @Sendable + public func createProfile(_ input: CreateProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateProfileResponse { + return try await self.client.execute( + operation: "CreateProfile", + path: "/profile", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Deletes the specified Route 53 Profile. Before you can delete a profile, you must first disassociate it from all VPCs. + @Sendable + public func deleteProfile(_ input: DeleteProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteProfileResponse { + return try await self.client.execute( + operation: "DeleteProfile", + path: "/profile/{ProfileId}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Dissociates a specified Route 53 Profile from the specified VPC. + @Sendable + public func disassociateProfile(_ input: DisassociateProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DisassociateProfileResponse { + return try await self.client.execute( + operation: "DisassociateProfile", + path: "/profileassociation/Profileid/{ProfileId}/resourceid/{ResourceId}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Dissoaciated a specified resource, from the Route 53 Profile. + @Sendable + public func disassociateResourceFromProfile(_ input: DisassociateResourceFromProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DisassociateResourceFromProfileResponse { + return try await self.client.execute( + operation: "DisassociateResourceFromProfile", + path: "/profileresourceassociation/profileid/{ProfileId}/resourcearn/{ResourceArn}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Returns information about a specified Route 53 Profile, such as whether whether the Profile is shared, and the current status of the Profile. + @Sendable + public func getProfile(_ input: GetProfileRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetProfileResponse { + return try await self.client.execute( + operation: "GetProfile", + path: "/profile/{ProfileId}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Retrieves a Route 53 Profile association for a VPC. A VPC can have only one Profile association, but a Profile can be associated with up to 5000 VPCs. + @Sendable + public func getProfileAssociation(_ input: GetProfileAssociationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetProfileAssociationResponse { + return try await self.client.execute( + operation: "GetProfileAssociation", + path: "/profileassociation/{ProfileAssociationId}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Returns information about a specified Route 53 Profile resource association. + @Sendable + public func getProfileResourceAssociation(_ input: GetProfileResourceAssociationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetProfileResourceAssociationResponse { + return try await self.client.execute( + operation: "GetProfileResourceAssociation", + path: "/profileresourceassociation/{ProfileResourceAssociationId}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Lists all the VPCs that the specified Route 53 Profile is associated with. + @Sendable + public func listProfileAssociations(_ input: ListProfileAssociationsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListProfileAssociationsResponse { + return try await self.client.execute( + operation: "ListProfileAssociations", + path: "/profileassociations", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Lists all the resource associations for the specified Route 53 Profile. + @Sendable + public func listProfileResourceAssociations(_ input: ListProfileResourceAssociationsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListProfileResourceAssociationsResponse { + return try await self.client.execute( + operation: "ListProfileResourceAssociations", + path: "/profileresourceassociations/profileid/{ProfileId}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Lists all the Route 53 Profiles associated with your Amazon Web Services account. + @Sendable + public func listProfiles(_ input: ListProfilesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListProfilesResponse { + return try await self.client.execute( + operation: "ListProfiles", + path: "/profiles", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Lists the tags that you associated with the specified resource. + @Sendable + public func listTagsForResource(_ input: ListTagsForResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListTagsForResourceResponse { + return try await self.client.execute( + operation: "ListTagsForResource", + path: "/tags/{ResourceArn}", + httpMethod: .GET, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Adds one or more tags to a specified resource. + @Sendable + public func tagResource(_ input: TagResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> TagResourceResponse { + return try await self.client.execute( + operation: "TagResource", + path: "/tags/{ResourceArn}", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Removes one or more tags from a specified resource. + @Sendable + public func untagResource(_ input: UntagResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UntagResourceResponse { + return try await self.client.execute( + operation: "UntagResource", + path: "/tags/{ResourceArn}", + httpMethod: .DELETE, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Updates the specified Route 53 Profile resourse association. + @Sendable + public func updateProfileResourceAssociation(_ input: UpdateProfileResourceAssociationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateProfileResourceAssociationResponse { + return try await self.client.execute( + operation: "UpdateProfileResourceAssociation", + path: "/profileresourceassociation/{ProfileResourceAssociationId}", + httpMethod: .PATCH, + serviceConfig: self.config, + input: input, + logger: logger + ) + } +} + +extension Route53Profiles { + /// Initializer required by `AWSService.with(middlewares:timeout:byteBufferAllocator:options)`. You are not able to use this initializer directly as there are not public + /// initializers for `AWSServiceConfig.Patch`. Please use `AWSService.with(middlewares:timeout:byteBufferAllocator:options)` instead. + public init(from: Route53Profiles, patch: AWSServiceConfig.Patch) { + self.client = from.client + self.config = from.config.with(patch: patch) + } +} + +// MARK: Paginators + +@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) +extension Route53Profiles { + /// Lists all the VPCs that the specified Route 53 Profile is associated with. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listProfileAssociationsPaginator( + _ input: ListProfileAssociationsRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listProfileAssociations, + inputKey: \ListProfileAssociationsRequest.nextToken, + outputKey: \ListProfileAssociationsResponse.nextToken, + logger: logger + ) + } + + /// Lists all the resource associations for the specified Route 53 Profile. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listProfileResourceAssociationsPaginator( + _ input: ListProfileResourceAssociationsRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listProfileResourceAssociations, + inputKey: \ListProfileResourceAssociationsRequest.nextToken, + outputKey: \ListProfileResourceAssociationsResponse.nextToken, + logger: logger + ) + } + + /// Lists all the Route 53 Profiles associated with your Amazon Web Services account. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listProfilesPaginator( + _ input: ListProfilesRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listProfiles, + inputKey: \ListProfilesRequest.nextToken, + outputKey: \ListProfilesResponse.nextToken, + logger: logger + ) + } +} + +extension Route53Profiles.ListProfileAssociationsRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> Route53Profiles.ListProfileAssociationsRequest { + return .init( + maxResults: self.maxResults, + nextToken: token, + profileId: self.profileId, + resourceId: self.resourceId + ) + } +} + +extension Route53Profiles.ListProfileResourceAssociationsRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> Route53Profiles.ListProfileResourceAssociationsRequest { + return .init( + maxResults: self.maxResults, + nextToken: token, + profileId: self.profileId, + resourceType: self.resourceType + ) + } +} + +extension Route53Profiles.ListProfilesRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> Route53Profiles.ListProfilesRequest { + return .init( + maxResults: self.maxResults, + nextToken: token + ) + } +} diff --git a/Sources/Soto/Services/Route53Profiles/Route53Profiles_shapes.swift b/Sources/Soto/Services/Route53Profiles/Route53Profiles_shapes.swift new file mode 100644 index 0000000000..30f4e0693d --- /dev/null +++ b/Sources/Soto/Services/Route53Profiles/Route53Profiles_shapes.swift @@ -0,0 +1,985 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Soto for AWS open source project +// +// Copyright (c) 2017-2023 the Soto project authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// See CONTRIBUTORS.txt for the list of Soto project authors +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// + +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/soto-project/soto-codegenerator. +// DO NOT EDIT. + +#if os(Linux) && compiler(<5.10) +// swift-corelibs-foundation hasn't been updated with Sendable conformances +@preconcurrency import Foundation +#else +import Foundation +#endif +@_spi(SotoInternal) import SotoCore + +extension Route53Profiles { + // MARK: Enums + + public enum ProfileStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case complete = "COMPLETE" + case creating = "CREATING" + case deleted = "DELETED" + case deleting = "DELETING" + case failed = "FAILED" + case updating = "UPDATING" + public var description: String { return self.rawValue } + } + + public enum ShareStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case notShared = "NOT_SHARED" + case sharedByMe = "SHARED_BY_ME" + case sharedWithMe = "SHARED_WITH_ME" + public var description: String { return self.rawValue } + } + + // MARK: Shapes + + public struct AssociateProfileRequest: AWSEncodableShape { + /// A name for the association. + public let name: String + /// ID of the Profile. + public let profileId: String + /// The ID of the VPC. + public let resourceId: String + /// A list of the tag keys and values that you want to identify the Profile association. + public let tags: [Tag]? + + public init(name: String, profileId: String, resourceId: String, tags: [Tag]? = nil) { + self.name = name + self.profileId = profileId + self.resourceId = resourceId + self.tags = tags + } + + public func validate(name: String) throws { + try self.validate(self.name, name: "name", parent: name, max: 64) + try self.validate(self.name, name: "name", parent: name, pattern: "^(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)$") + try self.validate(self.profileId, name: "profileId", parent: name, max: 64) + try self.validate(self.profileId, name: "profileId", parent: name, min: 1) + try self.validate(self.resourceId, name: "resourceId", parent: name, max: 64) + try self.validate(self.resourceId, name: "resourceId", parent: name, min: 1) + try self.tags?.forEach { + try $0.validate(name: "\(name).tags[]") + } + try self.validate(self.tags, name: "tags", parent: name, max: 200) + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case profileId = "ProfileId" + case resourceId = "ResourceId" + case tags = "Tags" + } + } + + public struct AssociateProfileResponse: AWSDecodableShape { + /// The association that you just created. The association has an ID that you can use to identify it in other requests, like update and delete. + public let profileAssociation: ProfileAssociation? + + public init(profileAssociation: ProfileAssociation? = nil) { + self.profileAssociation = profileAssociation + } + + private enum CodingKeys: String, CodingKey { + case profileAssociation = "ProfileAssociation" + } + } + + public struct AssociateResourceToProfileRequest: AWSEncodableShape { + /// Name for the resource association. + public let name: String + /// ID of the Profile. + public let profileId: String + /// Amazon resource number, ARN, of the DNS resource. + public let resourceArn: String + /// If you are adding a DNS Firewall rule group, include also a priority in this format: + /// Key=FirewallRuleGroupPriority,Value=100 + public let resourceProperties: String? + + public init(name: String, profileId: String, resourceArn: String, resourceProperties: String? = nil) { + self.name = name + self.profileId = profileId + self.resourceArn = resourceArn + self.resourceProperties = resourceProperties + } + + public func validate(name: String) throws { + try self.validate(self.name, name: "name", parent: name, max: 64) + try self.validate(self.name, name: "name", parent: name, pattern: "^(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)$") + try self.validate(self.profileId, name: "profileId", parent: name, max: 64) + try self.validate(self.profileId, name: "profileId", parent: name, min: 1) + try self.validate(self.resourceArn, name: "resourceArn", parent: name, max: 255) + try self.validate(self.resourceArn, name: "resourceArn", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case profileId = "ProfileId" + case resourceArn = "ResourceArn" + case resourceProperties = "ResourceProperties" + } + } + + public struct AssociateResourceToProfileResponse: AWSDecodableShape { + /// Infromation about the AssociateResourceToProfile, including a status message. + public let profileResourceAssociation: ProfileResourceAssociation? + + public init(profileResourceAssociation: ProfileResourceAssociation? = nil) { + self.profileResourceAssociation = profileResourceAssociation + } + + private enum CodingKeys: String, CodingKey { + case profileResourceAssociation = "ProfileResourceAssociation" + } + } + + public struct CreateProfileRequest: AWSEncodableShape { + /// ClientToken is an idempotency token that ensures a call to CreateProfile completes only once. You choose the value to pass. For example, an issue might prevent you from getting a response from CreateProfile. In this case, safely retry your call to CreateProfile by using the same CreateProfile parameter value. + public let clientToken: String + /// A name for the Profile. + public let name: String + /// A list of the tag keys and values that you want to associate with the Route 53 Profile. + public let tags: [Tag]? + + public init(clientToken: String = CreateProfileRequest.idempotencyToken(), name: String, tags: [Tag]? = nil) { + self.clientToken = clientToken + self.name = name + self.tags = tags + } + + public func validate(name: String) throws { + try self.validate(self.clientToken, name: "clientToken", parent: name, max: 255) + try self.validate(self.clientToken, name: "clientToken", parent: name, min: 1) + try self.validate(self.name, name: "name", parent: name, max: 64) + try self.validate(self.name, name: "name", parent: name, pattern: "^(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)$") + try self.tags?.forEach { + try $0.validate(name: "\(name).tags[]") + } + try self.validate(self.tags, name: "tags", parent: name, max: 200) + } + + private enum CodingKeys: String, CodingKey { + case clientToken = "ClientToken" + case name = "Name" + case tags = "Tags" + } + } + + public struct CreateProfileResponse: AWSDecodableShape { + /// The Profile that you just created. + public let profile: Profile? + + public init(profile: Profile? = nil) { + self.profile = profile + } + + private enum CodingKeys: String, CodingKey { + case profile = "Profile" + } + } + + public struct DeleteProfileRequest: AWSEncodableShape { + /// The ID of the Profile that you want to delete. + public let profileId: String + + public init(profileId: String) { + self.profileId = profileId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.profileId, key: "ProfileId") + } + + public func validate(name: String) throws { + try self.validate(self.profileId, name: "profileId", parent: name, max: 64) + try self.validate(self.profileId, name: "profileId", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct DeleteProfileResponse: AWSDecodableShape { + /// Information about the DeleteProfile request, including the status of the request. + public let profile: Profile? + + public init(profile: Profile? = nil) { + self.profile = profile + } + + private enum CodingKeys: String, CodingKey { + case profile = "Profile" + } + } + + public struct DisassociateProfileRequest: AWSEncodableShape { + /// ID of the Profile. + public let profileId: String + /// The ID of the VPC. + public let resourceId: String + + public init(profileId: String, resourceId: String) { + self.profileId = profileId + self.resourceId = resourceId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.profileId, key: "ProfileId") + request.encodePath(self.resourceId, key: "ResourceId") + } + + public func validate(name: String) throws { + try self.validate(self.profileId, name: "profileId", parent: name, max: 64) + try self.validate(self.profileId, name: "profileId", parent: name, min: 1) + try self.validate(self.resourceId, name: "resourceId", parent: name, max: 64) + try self.validate(self.resourceId, name: "resourceId", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct DisassociateProfileResponse: AWSDecodableShape { + /// Information about the DisassociateProfile request. + public let profileAssociation: ProfileAssociation? + + public init(profileAssociation: ProfileAssociation? = nil) { + self.profileAssociation = profileAssociation + } + + private enum CodingKeys: String, CodingKey { + case profileAssociation = "ProfileAssociation" + } + } + + public struct DisassociateResourceFromProfileRequest: AWSEncodableShape { + /// The ID of the Profile. + public let profileId: String + /// The Amazon Resource Name (ARN) of the resource. + public let resourceArn: String + + public init(profileId: String, resourceArn: String) { + self.profileId = profileId + self.resourceArn = resourceArn + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.profileId, key: "ProfileId") + request.encodePath(self.resourceArn, key: "ResourceArn") + } + + public func validate(name: String) throws { + try self.validate(self.profileId, name: "profileId", parent: name, max: 64) + try self.validate(self.profileId, name: "profileId", parent: name, min: 1) + try self.validate(self.resourceArn, name: "resourceArn", parent: name, max: 255) + try self.validate(self.resourceArn, name: "resourceArn", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct DisassociateResourceFromProfileResponse: AWSDecodableShape { + /// Information about the DisassociateResourceFromProfile request, including the status of the request. + public let profileResourceAssociation: ProfileResourceAssociation? + + public init(profileResourceAssociation: ProfileResourceAssociation? = nil) { + self.profileResourceAssociation = profileResourceAssociation + } + + private enum CodingKeys: String, CodingKey { + case profileResourceAssociation = "ProfileResourceAssociation" + } + } + + public struct GetProfileAssociationRequest: AWSEncodableShape { + /// The identifier of the association you want to get information about. + public let profileAssociationId: String + + public init(profileAssociationId: String) { + self.profileAssociationId = profileAssociationId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.profileAssociationId, key: "ProfileAssociationId") + } + + public func validate(name: String) throws { + try self.validate(self.profileAssociationId, name: "profileAssociationId", parent: name, max: 64) + try self.validate(self.profileAssociationId, name: "profileAssociationId", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct GetProfileAssociationResponse: AWSDecodableShape { + /// Information about the Profile association that you specified in a GetProfileAssociation request. + public let profileAssociation: ProfileAssociation? + + public init(profileAssociation: ProfileAssociation? = nil) { + self.profileAssociation = profileAssociation + } + + private enum CodingKeys: String, CodingKey { + case profileAssociation = "ProfileAssociation" + } + } + + public struct GetProfileRequest: AWSEncodableShape { + /// ID of the Profile. + public let profileId: String + + public init(profileId: String) { + self.profileId = profileId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.profileId, key: "ProfileId") + } + + public func validate(name: String) throws { + try self.validate(self.profileId, name: "profileId", parent: name, max: 64) + try self.validate(self.profileId, name: "profileId", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct GetProfileResourceAssociationRequest: AWSEncodableShape { + /// The ID of the profile resource association that you want to get information about. + public let profileResourceAssociationId: String + + public init(profileResourceAssociationId: String) { + self.profileResourceAssociationId = profileResourceAssociationId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.profileResourceAssociationId, key: "ProfileResourceAssociationId") + } + + public func validate(name: String) throws { + try self.validate(self.profileResourceAssociationId, name: "profileResourceAssociationId", parent: name, max: 64) + try self.validate(self.profileResourceAssociationId, name: "profileResourceAssociationId", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct GetProfileResourceAssociationResponse: AWSDecodableShape { + /// Information about the Profile resource association that you specified in a GetProfileResourceAssociation request. + public let profileResourceAssociation: ProfileResourceAssociation? + + public init(profileResourceAssociation: ProfileResourceAssociation? = nil) { + self.profileResourceAssociation = profileResourceAssociation + } + + private enum CodingKeys: String, CodingKey { + case profileResourceAssociation = "ProfileResourceAssociation" + } + } + + public struct GetProfileResponse: AWSDecodableShape { + /// Information about the Profile, including the status of the Profile. + public let profile: Profile? + + public init(profile: Profile? = nil) { + self.profile = profile + } + + private enum CodingKeys: String, CodingKey { + case profile = "Profile" + } + } + + public struct ListProfileAssociationsRequest: AWSEncodableShape { + /// The maximum number of objects that you want to return for this request. If more objects are available, in the response, a NextToken value, which you can use in a subsequent call to get the next batch of objects, is provided. If you don't specify a value for MaxResults, up to 100 objects are returned. + public let maxResults: Int? + /// For the first call to this list request, omit this value. + /// When you request a list of objects, at most the number of objects specified by MaxResults is returned. If more objects are available for retrieval, a NextToken value is returned in the response. To retrieve the next batch of objects, use the token that was returned for the prior request in your next request. + public let nextToken: String? + /// ID of the Profile. + public let profileId: String? + /// ID of the VPC. + public let resourceId: String? + + public init(maxResults: Int? = nil, nextToken: String? = nil, profileId: String? = nil, resourceId: String? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + self.profileId = profileId + self.resourceId = resourceId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.maxResults, key: "maxResults") + request.encodeQuery(self.nextToken, key: "nextToken") + request.encodeQuery(self.profileId, key: "profileId") + request.encodeQuery(self.resourceId, key: "resourceId") + } + + public func validate(name: String) throws { + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + try self.validate(self.profileId, name: "profileId", parent: name, max: 64) + try self.validate(self.profileId, name: "profileId", parent: name, min: 1) + try self.validate(self.resourceId, name: "resourceId", parent: name, max: 64) + try self.validate(self.resourceId, name: "resourceId", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListProfileAssociationsResponse: AWSDecodableShape { + /// If more than MaxResults profile associations match the specified criteria, you can submit another ListProfileAssociations request to get the next group of results. In the next request, specify the value of NextToken from the previous response. + public let nextToken: String? + /// A complex type that containts settings information about the profile's VPC associations. + public let profileAssociations: [ProfileAssociation]? + + public init(nextToken: String? = nil, profileAssociations: [ProfileAssociation]? = nil) { + self.nextToken = nextToken + self.profileAssociations = profileAssociations + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case profileAssociations = "ProfileAssociations" + } + } + + public struct ListProfileResourceAssociationsRequest: AWSEncodableShape { + /// The maximum number of objects that you want to return for this request. If more objects are available, in the response, a NextToken value, which you can use in a subsequent call to get the next batch of objects, is provided. If you don't specify a value for MaxResults, up to 100 objects are returned. + public let maxResults: Int? + /// For the first call to this list request, omit this value. When you request a list of objects, at most the number of objects specified by MaxResults is returned. If more objects are available for retrieval, a NextToken value is returned in the response. To retrieve the next batch of objects, use the token that was returned for the prior request in your next request. + public let nextToken: String? + /// The ID of the Profile. + public let profileId: String + /// ID of a resource if you want information on only one type. + public let resourceType: String? + + public init(maxResults: Int? = nil, nextToken: String? = nil, profileId: String, resourceType: String? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + self.profileId = profileId + self.resourceType = resourceType + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.maxResults, key: "maxResults") + request.encodeQuery(self.nextToken, key: "nextToken") + request.encodePath(self.profileId, key: "ProfileId") + request.encodeQuery(self.resourceType, key: "resourceType") + } + + public func validate(name: String) throws { + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + try self.validate(self.profileId, name: "profileId", parent: name, max: 64) + try self.validate(self.profileId, name: "profileId", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListProfileResourceAssociationsResponse: AWSDecodableShape { + /// If more than MaxResults resource associations match the specified criteria, you can submit another ListProfileResourceAssociations request to get the next group of results. In the next request, specify the value of NextToken from the previous response. + public let nextToken: String? + /// Information about the profile resource association that you specified in a GetProfileResourceAssociation request. + public let profileResourceAssociations: [ProfileResourceAssociation]? + + public init(nextToken: String? = nil, profileResourceAssociations: [ProfileResourceAssociation]? = nil) { + self.nextToken = nextToken + self.profileResourceAssociations = profileResourceAssociations + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case profileResourceAssociations = "ProfileResourceAssociations" + } + } + + public struct ListProfilesRequest: AWSEncodableShape { + /// The maximum number of objects that you want to return for this request. If more objects are available, in the response, a NextToken value, which you can use in a subsequent call to get the next batch of objects, is provided. If you don't specify a value for MaxResults, up to 100 objects are returned. + public let maxResults: Int? + /// For the first call to this list request, omit this value. When you request a list of objects, at most the number of objects specified by MaxResults is returned. If more objects are available for retrieval, a NextToken value is returned in the response. To retrieve the next batch of objects, use the token that was returned for the prior request in your next request. + public let nextToken: String? + + public init(maxResults: Int? = nil, nextToken: String? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.maxResults, key: "maxResults") + request.encodeQuery(self.nextToken, key: "nextToken") + } + + public func validate(name: String) throws { + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 100) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListProfilesResponse: AWSDecodableShape { + /// If more than MaxResults resource associations match the specified criteria, you can submit another ListProfiles request to get the next group of results. In the next request, specify the value of NextToken from the previous response. + public let nextToken: String? + /// Summary information about the Profiles. + public let profileSummaries: [ProfileSummary]? + + public init(nextToken: String? = nil, profileSummaries: [ProfileSummary]? = nil) { + self.nextToken = nextToken + self.profileSummaries = profileSummaries + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case profileSummaries = "ProfileSummaries" + } + } + + public struct ListTagsForResourceRequest: AWSEncodableShape { + /// The Amazon Resource Name (ARN) for the resource that you want to list the tags for. + public let resourceArn: String + + public init(resourceArn: String) { + self.resourceArn = resourceArn + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.resourceArn, key: "ResourceArn") + } + + public func validate(name: String) throws { + try self.validate(self.resourceArn, name: "resourceArn", parent: name, max: 255) + try self.validate(self.resourceArn, name: "resourceArn", parent: name, min: 1) + } + + private enum CodingKeys: CodingKey {} + } + + public struct ListTagsForResourceResponse: AWSDecodableShape { + /// The tags that are associated with the resource that you specified in the ListTagsForResource request. + public let tags: [String: String] + + public init(tags: [String: String]) { + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case tags = "Tags" + } + } + + public struct Profile: AWSDecodableShape { + /// The Amazon Resource Name (ARN) of the Profile. + public let arn: String? + /// The ClientToken value that was assigned when the Profile was created. + public let clientToken: String? + /// The date and time that the Profile was created, in Unix time format and Coordinated Universal Time (UTC). + public let creationTime: Date? + /// ID of the Profile. + public let id: String? + /// The date and time that the Profile was modified, in Unix time format and Coordinated Universal Time (UTC). + public let modificationTime: Date? + /// Name of the Profile. + public let name: String? + /// Amazon Web Services account ID of the Profile owner. + public let ownerId: String? + /// Sharing status for the Profile. + public let shareStatus: ShareStatus? + /// The status for the Profile. + public let status: ProfileStatus? + /// Status message that includes additiona information about the Profile. + public let statusMessage: String? + + public init(arn: String? = nil, clientToken: String? = nil, creationTime: Date? = nil, id: String? = nil, modificationTime: Date? = nil, name: String? = nil, ownerId: String? = nil, shareStatus: ShareStatus? = nil, status: ProfileStatus? = nil, statusMessage: String? = nil) { + self.arn = arn + self.clientToken = clientToken + self.creationTime = creationTime + self.id = id + self.modificationTime = modificationTime + self.name = name + self.ownerId = ownerId + self.shareStatus = shareStatus + self.status = status + self.statusMessage = statusMessage + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case clientToken = "ClientToken" + case creationTime = "CreationTime" + case id = "Id" + case modificationTime = "ModificationTime" + case name = "Name" + case ownerId = "OwnerId" + case shareStatus = "ShareStatus" + case status = "Status" + case statusMessage = "StatusMessage" + } + } + + public struct ProfileAssociation: AWSDecodableShape { + /// The date and time that the Profile association was created, in Unix time format and Coordinated Universal Time (UTC). + public let creationTime: Date? + /// ID of the Profile association. + public let id: String? + /// The date and time that the Profile association was modified, in Unix time format and Coordinated Universal Time (UTC). + public let modificationTime: Date? + /// Name of the Profile association. + public let name: String? + /// Amazon Web Services account ID of the Profile association owner. + public let ownerId: String? + /// ID of the Profile. + public let profileId: String? + /// The Amazon Resource Name (ARN) of the VPC. + public let resourceId: String? + /// Status of the Profile association. + public let status: ProfileStatus? + /// Additional information about the Profile association. + public let statusMessage: String? + + public init(creationTime: Date? = nil, id: String? = nil, modificationTime: Date? = nil, name: String? = nil, ownerId: String? = nil, profileId: String? = nil, resourceId: String? = nil, status: ProfileStatus? = nil, statusMessage: String? = nil) { + self.creationTime = creationTime + self.id = id + self.modificationTime = modificationTime + self.name = name + self.ownerId = ownerId + self.profileId = profileId + self.resourceId = resourceId + self.status = status + self.statusMessage = statusMessage + } + + private enum CodingKeys: String, CodingKey { + case creationTime = "CreationTime" + case id = "Id" + case modificationTime = "ModificationTime" + case name = "Name" + case ownerId = "OwnerId" + case profileId = "ProfileId" + case resourceId = "ResourceId" + case status = "Status" + case statusMessage = "StatusMessage" + } + } + + public struct ProfileResourceAssociation: AWSDecodableShape { + /// The date and time that the Profile resource association was created, in Unix time format and Coordinated Universal Time (UTC). + public let creationTime: Date? + /// ID of the Profile resource association. + public let id: String? + /// The date and time that the Profile resource association was modified, in Unix time format and Coordinated Universal Time (UTC). + public let modificationTime: Date? + /// Name of the Profile resource association. + public let name: String? + /// Amazon Web Services account ID of the Profile resource association owner. + public let ownerId: String? + /// Profile ID of the Profile that the resources are associated with. + public let profileId: String? + /// The Amazon Resource Name (ARN) of the resource association. + public let resourceArn: String? + /// If the DNS resource is a DNS Firewall rule group, this indicates the priority. + public let resourceProperties: String? + /// Resource type, such as a private hosted zone, or DNS Firewall rule group. + public let resourceType: String? + /// Status of the Profile resource association. + public let status: ProfileStatus? + /// Additional information about the Profile resource association. + public let statusMessage: String? + + public init(creationTime: Date? = nil, id: String? = nil, modificationTime: Date? = nil, name: String? = nil, ownerId: String? = nil, profileId: String? = nil, resourceArn: String? = nil, resourceProperties: String? = nil, resourceType: String? = nil, status: ProfileStatus? = nil, statusMessage: String? = nil) { + self.creationTime = creationTime + self.id = id + self.modificationTime = modificationTime + self.name = name + self.ownerId = ownerId + self.profileId = profileId + self.resourceArn = resourceArn + self.resourceProperties = resourceProperties + self.resourceType = resourceType + self.status = status + self.statusMessage = statusMessage + } + + private enum CodingKeys: String, CodingKey { + case creationTime = "CreationTime" + case id = "Id" + case modificationTime = "ModificationTime" + case name = "Name" + case ownerId = "OwnerId" + case profileId = "ProfileId" + case resourceArn = "ResourceArn" + case resourceProperties = "ResourceProperties" + case resourceType = "ResourceType" + case status = "Status" + case statusMessage = "StatusMessage" + } + } + + public struct ProfileSummary: AWSDecodableShape { + /// The Amazon Resource Name (ARN) of the Profile. + public let arn: String? + /// ID of the Profile. + public let id: String? + /// Name of the Profile. + public let name: String? + /// Share status of the Profile. + public let shareStatus: ShareStatus? + + public init(arn: String? = nil, id: String? = nil, name: String? = nil, shareStatus: ShareStatus? = nil) { + self.arn = arn + self.id = id + self.name = name + self.shareStatus = shareStatus + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case id = "Id" + case name = "Name" + case shareStatus = "ShareStatus" + } + } + + public struct Tag: AWSEncodableShape { + /// Key associated with the Tag. + public let key: String + /// Value for the Tag. + public let value: String + + public init(key: String, value: String) { + self.key = key + self.value = value + } + + public func validate(name: String) throws { + try self.validate(self.key, name: "key", parent: name, max: 128) + try self.validate(self.key, name: "key", parent: name, min: 1) + try self.validate(self.value, name: "value", parent: name, max: 256) + } + + private enum CodingKeys: String, CodingKey { + case key = "Key" + case value = "Value" + } + } + + public struct TagResourceRequest: AWSEncodableShape { + /// The Amazon Resource Name (ARN) for the resource that you want to add tags to. + public let resourceArn: String + /// The tags that you want to add to the specified resource. + public let tags: [String: String] + + public init(resourceArn: String, tags: [String: String]) { + self.resourceArn = resourceArn + self.tags = tags + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.resourceArn, key: "ResourceArn") + try container.encode(self.tags, forKey: .tags) + } + + public func validate(name: String) throws { + try self.validate(self.resourceArn, name: "resourceArn", parent: name, max: 255) + try self.validate(self.resourceArn, name: "resourceArn", parent: name, min: 1) + try self.tags.forEach { + try validate($0.key, name: "tags.key", parent: name, max: 128) + try validate($0.key, name: "tags.key", parent: name, min: 1) + try validate($0.value, name: "tags[\"\($0.key)\"]", parent: name, max: 256) + } + try self.validate(self.tags, name: "tags", parent: name, max: 200) + } + + private enum CodingKeys: String, CodingKey { + case tags = "Tags" + } + } + + public struct TagResourceResponse: AWSDecodableShape { + public init() {} + } + + public struct UntagResourceRequest: AWSEncodableShape { + /// The Amazon Resource Name (ARN) for the resource that you want to remove tags from. + public let resourceArn: String + /// The tags that you want to remove to the specified resource. + public let tagKeys: [String] + + public init(resourceArn: String, tagKeys: [String]) { + self.resourceArn = resourceArn + self.tagKeys = tagKeys + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + _ = encoder.container(keyedBy: CodingKeys.self) + request.encodePath(self.resourceArn, key: "ResourceArn") + request.encodeQuery(self.tagKeys, key: "tagKeys") + } + + public func validate(name: String) throws { + try self.validate(self.resourceArn, name: "resourceArn", parent: name, max: 255) + try self.validate(self.resourceArn, name: "resourceArn", parent: name, min: 1) + try self.tagKeys.forEach { + try validate($0, name: "tagKeys[]", parent: name, max: 128) + try validate($0, name: "tagKeys[]", parent: name, min: 1) + } + try self.validate(self.tagKeys, name: "tagKeys", parent: name, max: 200) + } + + private enum CodingKeys: CodingKey {} + } + + public struct UntagResourceResponse: AWSDecodableShape { + public init() {} + } + + public struct UpdateProfileResourceAssociationRequest: AWSEncodableShape { + /// Name of the resource association. + public let name: String? + /// ID of the resource association. + public let profileResourceAssociationId: String + /// If you are adding a DNS Firewall rule group, include also a priority in this format: Key=FirewallRuleGroupPriority,Value=100. + public let resourceProperties: String? + + public init(name: String? = nil, profileResourceAssociationId: String, resourceProperties: String? = nil) { + self.name = name + self.profileResourceAssociationId = profileResourceAssociationId + self.resourceProperties = resourceProperties + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.name, forKey: .name) + request.encodePath(self.profileResourceAssociationId, key: "ProfileResourceAssociationId") + try container.encodeIfPresent(self.resourceProperties, forKey: .resourceProperties) + } + + public func validate(name: String) throws { + try self.validate(self.name, name: "name", parent: name, max: 64) + try self.validate(self.name, name: "name", parent: name, pattern: "^(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)$") + try self.validate(self.profileResourceAssociationId, name: "profileResourceAssociationId", parent: name, max: 64) + try self.validate(self.profileResourceAssociationId, name: "profileResourceAssociationId", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case resourceProperties = "ResourceProperties" + } + } + + public struct UpdateProfileResourceAssociationResponse: AWSDecodableShape { + /// Information about the UpdateProfileResourceAssociation request, including a status message. + public let profileResourceAssociation: ProfileResourceAssociation? + + public init(profileResourceAssociation: ProfileResourceAssociation? = nil) { + self.profileResourceAssociation = profileResourceAssociation + } + + private enum CodingKeys: String, CodingKey { + case profileResourceAssociation = "ProfileResourceAssociation" + } + } +} + +// MARK: - Errors + +/// Error enum for Route53Profiles +public struct Route53ProfilesErrorType: AWSErrorType { + enum Code: String { + case accessDeniedException = "AccessDeniedException" + case conflictException = "ConflictException" + case internalServiceErrorException = "InternalServiceErrorException" + case invalidNextTokenException = "InvalidNextTokenException" + case invalidParameterException = "InvalidParameterException" + case limitExceededException = "LimitExceededException" + case resourceExistsException = "ResourceExistsException" + case resourceNotFoundException = "ResourceNotFoundException" + case throttlingException = "ThrottlingException" + case validationException = "ValidationException" + } + + private let error: Code + public let context: AWSErrorContext? + + /// initialize Route53Profiles + public init?(errorCode: String, context: AWSErrorContext) { + guard let error = Code(rawValue: errorCode) else { return nil } + self.error = error + self.context = context + } + + internal init(_ error: Code) { + self.error = error + self.context = nil + } + + /// return error code string + public var errorCode: String { self.error.rawValue } + + /// The current account doesn't have the IAM permissions required to perform the specified operation. + public static var accessDeniedException: Self { .init(.accessDeniedException) } + /// The request you submitted conflicts with an existing request. + public static var conflictException: Self { .init(.conflictException) } + /// An internal server error occured. Retry your request. + public static var internalServiceErrorException: Self { .init(.internalServiceErrorException) } + /// The NextToken you provided isn;t valid. + public static var invalidNextTokenException: Self { .init(.invalidNextTokenException) } + /// One or more parameters in this request are not valid. + public static var invalidParameterException: Self { .init(.invalidParameterException) } + /// The request caused one or more limits to be exceeded. + public static var limitExceededException: Self { .init(.limitExceededException) } + /// The resource you are trying to associate, has already been associated. + public static var resourceExistsException: Self { .init(.resourceExistsException) } + /// The resource you are associating is not found. + public static var resourceNotFoundException: Self { .init(.resourceNotFoundException) } + /// The request was throttled. Try again in a few minutes. + public static var throttlingException: Self { .init(.throttlingException) } + /// You have provided an invalid command. + public static var validationException: Self { .init(.validationException) } +} + +extension Route53ProfilesErrorType: Equatable { + public static func == (lhs: Route53ProfilesErrorType, rhs: Route53ProfilesErrorType) -> Bool { + lhs.error == rhs.error + } +} + +extension Route53ProfilesErrorType: CustomStringConvertible { + public var description: String { + return "\(self.error.rawValue): \(self.message ?? "")" + } +} diff --git a/Sources/Soto/Services/Route53Resolver/Route53Resolver_shapes.swift b/Sources/Soto/Services/Route53Resolver/Route53Resolver_shapes.swift index 615635f563..b718b3601c 100644 --- a/Sources/Soto/Services/Route53Resolver/Route53Resolver_shapes.swift +++ b/Sources/Soto/Services/Route53Resolver/Route53Resolver_shapes.swift @@ -66,6 +66,12 @@ extension Route53Resolver { public var description: String { return self.rawValue } } + public enum FirewallDomainRedirectionAction: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case inspectRedirectionDomain = "INSPECT_REDIRECTION_DOMAIN" + case trustRedirectionDomain = "TRUST_REDIRECTION_DOMAIN" + public var description: String { return self.rawValue } + } + public enum FirewallDomainUpdateOperation: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case add = "ADD" case remove = "REMOVE" @@ -548,6 +554,11 @@ extension Route53Resolver { public let creatorRequestId: String /// The ID of the domain list that you want to use in the rule. public let firewallDomainListId: String + /// How you want the the rule to evaluate DNS redirection in the DNS redirection chain, such as CNAME, DNAME, ot ALIAS. + /// Inspect_Redirection_Domain (Default) inspects all domains in the redirection chain. The individual domains in the redirection chain must be + /// added to the allow domain list. Trust_Redirection_Domain inspects only the first domain in the redirection chain. You don't need to add the subsequent domains in the redirection list to + /// the domain alloww list. + public let firewallDomainRedirectionAction: FirewallDomainRedirectionAction? /// The unique identifier of the firewall rule group where you want to create the rule. public let firewallRuleGroupId: String /// A name that lets you identify the rule in the rule group. @@ -556,10 +567,14 @@ extension Route53Resolver { public let priority: Int /// The DNS query type you want the rule to evaluate. Allowed values are; /// - /// A: Returns an IPv4 address. AAAA: Returns an Ipv6 address. CAA: Restricts CAs that can create SSL/TLS certifications for the domain. CNAME: Returns another domain name. DS: Record that identifies the DNSSEC signing key of a delegated zone. MX: Specifies mail servers. NAPTR: Regular-expression-based rewriting of domain names. NS: Authoritative name servers. PTR: Maps an IP address to a domain name. SOA: Start of authority record for the zone. SPF: Lists the servers authorized to send emails from a domain. SRV: Application specific values that identify servers. TXT: Verifies email senders and application-specific values. + /// A: Returns an IPv4 address. AAAA: Returns an Ipv6 address. CAA: Restricts CAs that can create SSL/TLS certifications for the domain. CNAME: Returns another domain name. DS: Record that identifies the DNSSEC signing key of a delegated zone. MX: Specifies mail servers. NAPTR: Regular-expression-based rewriting of domain names. NS: Authoritative name servers. PTR: Maps an IP address to a domain name. SOA: Start of authority record for the zone. SPF: Lists the servers authorized to send emails from a domain. SRV: Application specific values that identify servers. TXT: Verifies email senders and application-specific values. A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be + /// defined as TYPENUMBER, where the + /// NUMBER can be 1-65334, for + /// example, TYPE28. For more information, see + /// List of DNS record types. public let qtype: String? - public init(action: Action, blockOverrideDnsType: BlockOverrideDnsType? = nil, blockOverrideDomain: String? = nil, blockOverrideTtl: Int? = nil, blockResponse: BlockResponse? = nil, creatorRequestId: String = CreateFirewallRuleRequest.idempotencyToken(), firewallDomainListId: String, firewallRuleGroupId: String, name: String, priority: Int, qtype: String? = nil) { + public init(action: Action, blockOverrideDnsType: BlockOverrideDnsType? = nil, blockOverrideDomain: String? = nil, blockOverrideTtl: Int? = nil, blockResponse: BlockResponse? = nil, creatorRequestId: String = CreateFirewallRuleRequest.idempotencyToken(), firewallDomainListId: String, firewallDomainRedirectionAction: FirewallDomainRedirectionAction? = nil, firewallRuleGroupId: String, name: String, priority: Int, qtype: String? = nil) { self.action = action self.blockOverrideDnsType = blockOverrideDnsType self.blockOverrideDomain = blockOverrideDomain @@ -567,6 +582,7 @@ extension Route53Resolver { self.blockResponse = blockResponse self.creatorRequestId = creatorRequestId self.firewallDomainListId = firewallDomainListId + self.firewallDomainRedirectionAction = firewallDomainRedirectionAction self.firewallRuleGroupId = firewallRuleGroupId self.name = name self.priority = priority @@ -598,6 +614,7 @@ extension Route53Resolver { case blockResponse = "BlockResponse" case creatorRequestId = "CreatorRequestId" case firewallDomainListId = "FirewallDomainListId" + case firewallDomainRedirectionAction = "FirewallDomainRedirectionAction" case firewallRuleGroupId = "FirewallRuleGroupId" case name = "Name" case priority = "Priority" @@ -716,7 +733,10 @@ extension Route53Resolver { /// The ID of one or more security groups that you want to use to control access to this VPC. The security group that you specify /// must include one or more inbound rules (for inbound Resolver endpoints) or outbound rules (for outbound Resolver endpoints). /// Inbound and outbound rules must allow TCP and UDP access. For inbound access, open port 53. For outbound access, open the port - /// that you're using for DNS queries on your network. + /// that you're using for DNS queries on your network. Some security group rules will cause your connection to be tracked. For outbound resolver endpoint, it can potentially impact the + /// maximum queries per second from outbound endpoint to your target name server. For inbound resolver endpoint, it can bring down the overall maximum queries per second per IP address to as low as 1500. + /// To avoid connection tracking caused by security group, see + /// Untracked connections. public let securityGroupIds: [String] /// A list of the tag keys and values that you want to associate with the endpoint. public let tags: [Tag]? @@ -989,7 +1009,11 @@ extension Route53Resolver { public let firewallRuleGroupId: String /// The DNS query type that the rule you are deleting evaluates. Allowed values are; /// - /// A: Returns an IPv4 address. AAAA: Returns an Ipv6 address. CAA: Restricts CAs that can create SSL/TLS certifications for the domain. CNAME: Returns another domain name. DS: Record that identifies the DNSSEC signing key of a delegated zone. MX: Specifies mail servers. NAPTR: Regular-expression-based rewriting of domain names. NS: Authoritative name servers. PTR: Maps an IP address to a domain name. SOA: Start of authority record for the zone. SPF: Lists the servers authorized to send emails from a domain. SRV: Application specific values that identify servers. TXT: Verifies email senders and application-specific values. + /// A: Returns an IPv4 address. AAAA: Returns an Ipv6 address. CAA: Restricts CAs that can create SSL/TLS certifications for the domain. CNAME: Returns another domain name. DS: Record that identifies the DNSSEC signing key of a delegated zone. MX: Specifies mail servers. NAPTR: Regular-expression-based rewriting of domain names. NS: Authoritative name servers. PTR: Maps an IP address to a domain name. SOA: Start of authority record for the zone. SPF: Lists the servers authorized to send emails from a domain. SRV: Application specific values that identify servers. TXT: Verifies email senders and application-specific values. A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be + /// defined as TYPENUMBER, where the + /// NUMBER can be 1-65334, for + /// example, TYPE28. For more information, see + /// List of DNS record types. public let qtype: String? public init(firewallDomainListId: String, firewallRuleGroupId: String, qtype: String? = nil) { @@ -1485,6 +1509,11 @@ extension Route53Resolver { public let creatorRequestId: String? /// The ID of the domain list that's used in the rule. public let firewallDomainListId: String? + /// How you want the the rule to evaluate DNS redirection in the DNS redirection chain, such as CNAME, DNAME, ot ALIAS. + /// Inspect_Redirection_Domain (Default) inspects all domains in the redirection chain. The individual domains in the redirection chain must be + /// added to the allow domain list. Trust_Redirection_Domain inspects only the first domain in the redirection chain. You don't need to add the subsequent domains in the domain in the redirection list to + /// the domain alloww list. + public let firewallDomainRedirectionAction: FirewallDomainRedirectionAction? /// The unique identifier of the firewall rule group of the rule. public let firewallRuleGroupId: String? /// The date and time that the rule was last modified, in Unix time format and Coordinated Universal Time (UTC). @@ -1495,10 +1524,14 @@ extension Route53Resolver { public let priority: Int? /// The DNS query type you want the rule to evaluate. Allowed values are; /// - /// A: Returns an IPv4 address. AAAA: Returns an Ipv6 address. CAA: Restricts CAs that can create SSL/TLS certifications for the domain. CNAME: Returns another domain name. DS: Record that identifies the DNSSEC signing key of a delegated zone. MX: Specifies mail servers. NAPTR: Regular-expression-based rewriting of domain names. NS: Authoritative name servers. PTR: Maps an IP address to a domain name. SOA: Start of authority record for the zone. SPF: Lists the servers authorized to send emails from a domain. SRV: Application specific values that identify servers. TXT: Verifies email senders and application-specific values. + /// A: Returns an IPv4 address. AAAA: Returns an Ipv6 address. CAA: Restricts CAs that can create SSL/TLS certifications for the domain. CNAME: Returns another domain name. DS: Record that identifies the DNSSEC signing key of a delegated zone. MX: Specifies mail servers. NAPTR: Regular-expression-based rewriting of domain names. NS: Authoritative name servers. PTR: Maps an IP address to a domain name. SOA: Start of authority record for the zone. SPF: Lists the servers authorized to send emails from a domain. SRV: Application specific values that identify servers. TXT: Verifies email senders and application-specific values. A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be + /// defined as TYPENUMBER, where the + /// NUMBER can be 1-65334, for + /// example, TYPE28. For more information, see + /// List of DNS record types. public let qtype: String? - public init(action: Action? = nil, blockOverrideDnsType: BlockOverrideDnsType? = nil, blockOverrideDomain: String? = nil, blockOverrideTtl: Int? = nil, blockResponse: BlockResponse? = nil, creationTime: String? = nil, creatorRequestId: String? = nil, firewallDomainListId: String? = nil, firewallRuleGroupId: String? = nil, modificationTime: String? = nil, name: String? = nil, priority: Int? = nil, qtype: String? = nil) { + public init(action: Action? = nil, blockOverrideDnsType: BlockOverrideDnsType? = nil, blockOverrideDomain: String? = nil, blockOverrideTtl: Int? = nil, blockResponse: BlockResponse? = nil, creationTime: String? = nil, creatorRequestId: String? = nil, firewallDomainListId: String? = nil, firewallDomainRedirectionAction: FirewallDomainRedirectionAction? = nil, firewallRuleGroupId: String? = nil, modificationTime: String? = nil, name: String? = nil, priority: Int? = nil, qtype: String? = nil) { self.action = action self.blockOverrideDnsType = blockOverrideDnsType self.blockOverrideDomain = blockOverrideDomain @@ -1507,6 +1540,7 @@ extension Route53Resolver { self.creationTime = creationTime self.creatorRequestId = creatorRequestId self.firewallDomainListId = firewallDomainListId + self.firewallDomainRedirectionAction = firewallDomainRedirectionAction self.firewallRuleGroupId = firewallRuleGroupId self.modificationTime = modificationTime self.name = name @@ -1523,6 +1557,7 @@ extension Route53Resolver { case creationTime = "CreationTime" case creatorRequestId = "CreatorRequestId" case firewallDomainListId = "FirewallDomainListId" + case firewallDomainRedirectionAction = "FirewallDomainRedirectionAction" case firewallRuleGroupId = "FirewallRuleGroupId" case modificationTime = "ModificationTime" case name = "Name" @@ -4009,6 +4044,11 @@ extension Route53Resolver { public let blockResponse: BlockResponse? /// The ID of the domain list to use in the rule. public let firewallDomainListId: String + /// How you want the the rule to evaluate DNS redirection in the DNS redirection chain, such as CNAME, DNAME, ot ALIAS. + /// Inspect_Redirection_Domain (Default) inspects all domains in the redirection chain. The individual domains in the redirection chain must be + /// added to the allow domain list. Trust_Redirection_Domain inspects only the first domain in the redirection chain. You don't need to add the subsequent domains in the domain in the redirection list to + /// the domain alloww list. + public let firewallDomainRedirectionAction: FirewallDomainRedirectionAction? /// The unique identifier of the firewall rule group for the rule. public let firewallRuleGroupId: String /// The name of the rule. @@ -4017,16 +4057,21 @@ extension Route53Resolver { public let priority: Int? /// The DNS query type you want the rule to evaluate. Allowed values are; /// - /// A: Returns an IPv4 address. AAAA: Returns an Ipv6 address. CAA: Restricts CAs that can create SSL/TLS certifications for the domain. CNAME: Returns another domain name. DS: Record that identifies the DNSSEC signing key of a delegated zone. MX: Specifies mail servers. NAPTR: Regular-expression-based rewriting of domain names. NS: Authoritative name servers. PTR: Maps an IP address to a domain name. SOA: Start of authority record for the zone. SPF: Lists the servers authorized to send emails from a domain. SRV: Application specific values that identify servers. TXT: Verifies email senders and application-specific values. + /// A: Returns an IPv4 address. AAAA: Returns an Ipv6 address. CAA: Restricts CAs that can create SSL/TLS certifications for the domain. CNAME: Returns another domain name. DS: Record that identifies the DNSSEC signing key of a delegated zone. MX: Specifies mail servers. NAPTR: Regular-expression-based rewriting of domain names. NS: Authoritative name servers. PTR: Maps an IP address to a domain name. SOA: Start of authority record for the zone. SPF: Lists the servers authorized to send emails from a domain. SRV: Application specific values that identify servers. TXT: Verifies email senders and application-specific values. A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be + /// defined as TYPENUMBER, where the + /// NUMBER can be 1-65334, for + /// example, TYPE28. For more information, see + /// List of DNS record types. public let qtype: String? - public init(action: Action? = nil, blockOverrideDnsType: BlockOverrideDnsType? = nil, blockOverrideDomain: String? = nil, blockOverrideTtl: Int? = nil, blockResponse: BlockResponse? = nil, firewallDomainListId: String, firewallRuleGroupId: String, name: String? = nil, priority: Int? = nil, qtype: String? = nil) { + public init(action: Action? = nil, blockOverrideDnsType: BlockOverrideDnsType? = nil, blockOverrideDomain: String? = nil, blockOverrideTtl: Int? = nil, blockResponse: BlockResponse? = nil, firewallDomainListId: String, firewallDomainRedirectionAction: FirewallDomainRedirectionAction? = nil, firewallRuleGroupId: String, name: String? = nil, priority: Int? = nil, qtype: String? = nil) { self.action = action self.blockOverrideDnsType = blockOverrideDnsType self.blockOverrideDomain = blockOverrideDomain self.blockOverrideTtl = blockOverrideTtl self.blockResponse = blockResponse self.firewallDomainListId = firewallDomainListId + self.firewallDomainRedirectionAction = firewallDomainRedirectionAction self.firewallRuleGroupId = firewallRuleGroupId self.name = name self.priority = priority @@ -4055,6 +4100,7 @@ extension Route53Resolver { case blockOverrideTtl = "BlockOverrideTtl" case blockResponse = "BlockResponse" case firewallDomainListId = "FirewallDomainListId" + case firewallDomainRedirectionAction = "FirewallDomainRedirectionAction" case firewallRuleGroupId = "FirewallRuleGroupId" case name = "Name" case priority = "Priority" @@ -4366,7 +4412,8 @@ public struct Route53ResolverErrorType: AWSErrorType { /// return error code string public var errorCode: String { self.error.rawValue } - /// The current account doesn't have the IAM permissions required to perform the specified Resolver operation. + /// The current account doesn't have the IAM permissions required to perform the specified Resolver operation. This error can also be thrown when a customer has reached the 5120 character limit for a + /// resource policy for CloudWatch Logs. public static var accessDeniedException: Self { .init(.accessDeniedException) } /// The requested state transition isn't valid. For example, you can't delete a firewall /// domain list if it is in the process of being deleted, or you can't import domains into a diff --git a/Sources/Soto/Services/S3Control/S3Control_api.swift b/Sources/Soto/Services/S3Control/S3Control_api.swift index 093b933cc8..4024b32ef1 100644 --- a/Sources/Soto/Services/S3Control/S3Control_api.swift +++ b/Sources/Soto/Services/S3Control/S3Control_api.swift @@ -74,25 +74,39 @@ public struct S3Control: AWSService { /// custom endpoints for regions static var serviceEndpoints: [String: String] {[ + "af-south-1": "s3-control.af-south-1.amazonaws.com", + "ap-east-1": "s3-control.ap-east-1.amazonaws.com", "ap-northeast-1": "s3-control.ap-northeast-1.amazonaws.com", "ap-northeast-2": "s3-control.ap-northeast-2.amazonaws.com", "ap-northeast-3": "s3-control.ap-northeast-3.amazonaws.com", "ap-south-1": "s3-control.ap-south-1.amazonaws.com", + "ap-south-2": "s3-control.ap-south-2.amazonaws.com", "ap-southeast-1": "s3-control.ap-southeast-1.amazonaws.com", "ap-southeast-2": "s3-control.ap-southeast-2.amazonaws.com", + "ap-southeast-3": "s3-control.ap-southeast-3.amazonaws.com", + "ap-southeast-4": "s3-control.ap-southeast-4.amazonaws.com", "ca-central-1": "s3-control.ca-central-1.amazonaws.com", "cn-north-1": "s3-control.cn-north-1.amazonaws.com.cn", "cn-northwest-1": "s3-control.cn-northwest-1.amazonaws.com.cn", "eu-central-1": "s3-control.eu-central-1.amazonaws.com", + "eu-central-2": "s3-control.eu-central-2.amazonaws.com", "eu-north-1": "s3-control.eu-north-1.amazonaws.com", + "eu-south-1": "s3-control.eu-south-1.amazonaws.com", + "eu-south-2": "s3-control.eu-south-2.amazonaws.com", "eu-west-1": "s3-control.eu-west-1.amazonaws.com", "eu-west-2": "s3-control.eu-west-2.amazonaws.com", "eu-west-3": "s3-control.eu-west-3.amazonaws.com", + "il-central-1": "s3-control.il-central-1.amazonaws.com", + "me-central-1": "s3-control.me-central-1.amazonaws.com", + "me-south-1": "s3-control.me-south-1.amazonaws.com", "sa-east-1": "s3-control.sa-east-1.amazonaws.com", "us-east-1": "s3-control.us-east-1.amazonaws.com", "us-east-2": "s3-control.us-east-2.amazonaws.com", "us-gov-east-1": "s3-control.us-gov-east-1.amazonaws.com", "us-gov-west-1": "s3-control.us-gov-west-1.amazonaws.com", + "us-iso-east-1": "s3-control.us-iso-east-1.c2s.ic.gov", + "us-iso-west-1": "s3-control.us-iso-west-1.c2s.ic.gov", + "us-isob-east-1": "s3-control.us-isob-east-1.sc2s.sgov.gov", "us-west-1": "s3-control.us-west-1.amazonaws.com", "us-west-2": "s3-control.us-west-2.amazonaws.com" ]} @@ -101,20 +115,31 @@ public struct S3Control: AWSService { /// FIPS and dualstack endpoints static var variantEndpoints: [EndpointVariantType: AWSServiceConfig.EndpointVariant] {[ [.dualstack]: .init(endpoints: [ + "af-south-1": "s3-control.dualstack.af-south-1.amazonaws.com", + "ap-east-1": "s3-control.dualstack.ap-east-1.amazonaws.com", "ap-northeast-1": "s3-control.dualstack.ap-northeast-1.amazonaws.com", "ap-northeast-2": "s3-control.dualstack.ap-northeast-2.amazonaws.com", "ap-northeast-3": "s3-control.dualstack.ap-northeast-3.amazonaws.com", "ap-south-1": "s3-control.dualstack.ap-south-1.amazonaws.com", + "ap-south-2": "s3-control.dualstack.ap-south-2.amazonaws.com", "ap-southeast-1": "s3-control.dualstack.ap-southeast-1.amazonaws.com", "ap-southeast-2": "s3-control.dualstack.ap-southeast-2.amazonaws.com", + "ap-southeast-3": "s3-control.dualstack.ap-southeast-3.amazonaws.com", + "ap-southeast-4": "s3-control.dualstack.ap-southeast-4.amazonaws.com", "ca-central-1": "s3-control.dualstack.ca-central-1.amazonaws.com", "cn-north-1": "s3-control.dualstack.cn-north-1.amazonaws.com.cn", "cn-northwest-1": "s3-control.dualstack.cn-northwest-1.amazonaws.com.cn", "eu-central-1": "s3-control.dualstack.eu-central-1.amazonaws.com", + "eu-central-2": "s3-control.dualstack.eu-central-2.amazonaws.com", "eu-north-1": "s3-control.dualstack.eu-north-1.amazonaws.com", + "eu-south-1": "s3-control.dualstack.eu-south-1.amazonaws.com", + "eu-south-2": "s3-control.dualstack.eu-south-2.amazonaws.com", "eu-west-1": "s3-control.dualstack.eu-west-1.amazonaws.com", "eu-west-2": "s3-control.dualstack.eu-west-2.amazonaws.com", "eu-west-3": "s3-control.dualstack.eu-west-3.amazonaws.com", + "il-central-1": "s3-control.dualstack.il-central-1.amazonaws.com", + "me-central-1": "s3-control.dualstack.me-central-1.amazonaws.com", + "me-south-1": "s3-control.dualstack.me-south-1.amazonaws.com", "sa-east-1": "s3-control.dualstack.sa-east-1.amazonaws.com", "us-east-1": "s3-control.dualstack.us-east-1.amazonaws.com", "us-east-2": "s3-control.dualstack.us-east-2.amazonaws.com", @@ -138,6 +163,9 @@ public struct S3Control: AWSService { "us-east-2": "s3-control-fips.us-east-2.amazonaws.com", "us-gov-east-1": "s3-control-fips.us-gov-east-1.amazonaws.com", "us-gov-west-1": "s3-control-fips.us-gov-west-1.amazonaws.com", + "us-iso-east-1": "s3-control-fips.us-iso-east-1.c2s.ic.gov", + "us-iso-west-1": "s3-control-fips.us-iso-west-1.c2s.ic.gov", + "us-isob-east-1": "s3-control-fips.us-isob-east-1.sc2s.sgov.gov", "us-west-1": "s3-control-fips.us-west-1.amazonaws.com", "us-west-2": "s3-control-fips.us-west-2.amazonaws.com" ]) @@ -256,7 +284,7 @@ public struct S3Control: AWSService { ) } - /// This operation is not supported by directory buckets. Creates a Multi-Region Access Point and associates it with the specified buckets. For more information about creating Multi-Region Access Points, see Creating Multi-Region Access Points in the Amazon S3 User Guide. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide. This request is asynchronous, meaning that you might receive a response before the command has completed. When this request provides a response, it provides a token that you can use to monitor the status of the request with DescribeMultiRegionAccessPointOperation. The following actions are related to CreateMultiRegionAccessPoint: DeleteMultiRegionAccessPoint DescribeMultiRegionAccessPointOperation GetMultiRegionAccessPoint ListMultiRegionAccessPoints + /// This operation is not supported by directory buckets. Creates a Multi-Region Access Point and associates it with the specified buckets. For more information about creating Multi-Region Access Points, see Creating Multi-Region Access Points in the Amazon S3 User Guide. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around working with Multi-Region Access Points, see Multi-Region Access Point restrictions and limitations in the Amazon S3 User Guide. This request is asynchronous, meaning that you might receive a response before the command has completed. When this request provides a response, it provides a token that you can use to monitor the status of the request with DescribeMultiRegionAccessPointOperation. The following actions are related to CreateMultiRegionAccessPoint: DeleteMultiRegionAccessPoint DescribeMultiRegionAccessPointOperation GetMultiRegionAccessPoint ListMultiRegionAccessPoints @Sendable public func createMultiRegionAccessPoint(_ input: CreateMultiRegionAccessPointRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateMultiRegionAccessPointResult { return try await self.client.execute( @@ -480,7 +508,7 @@ public struct S3Control: AWSService { ) } - /// This operation is not supported by directory buckets. Deletes a Multi-Region Access Point. This action does not delete the buckets associated with the Multi-Region Access Point, only the Multi-Region Access Point itself. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide. This request is asynchronous, meaning that you might receive a response before the command has completed. When this request provides a response, it provides a token that you can use to monitor the status of the request with DescribeMultiRegionAccessPointOperation. The following actions are related to DeleteMultiRegionAccessPoint: CreateMultiRegionAccessPoint DescribeMultiRegionAccessPointOperation GetMultiRegionAccessPoint ListMultiRegionAccessPoints + /// This operation is not supported by directory buckets. Deletes a Multi-Region Access Point. This action does not delete the buckets associated with the Multi-Region Access Point, only the Multi-Region Access Point itself. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around working with Multi-Region Access Points, see Multi-Region Access Point restrictions and limitations in the Amazon S3 User Guide. This request is asynchronous, meaning that you might receive a response before the command has completed. When this request provides a response, it provides a token that you can use to monitor the status of the request with DescribeMultiRegionAccessPointOperation. The following actions are related to DeleteMultiRegionAccessPoint: CreateMultiRegionAccessPoint DescribeMultiRegionAccessPointOperation GetMultiRegionAccessPoint ListMultiRegionAccessPoints @Sendable public func deleteMultiRegionAccessPoint(_ input: DeleteMultiRegionAccessPointRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteMultiRegionAccessPointResult { return try await self.client.execute( @@ -564,7 +592,7 @@ public struct S3Control: AWSService { ) } - /// This operation is not supported by directory buckets. Retrieves the status of an asynchronous request to manage a Multi-Region Access Point. For more information about managing Multi-Region Access Points and how asynchronous requests work, see Managing Multi-Region Access Points in the Amazon S3 User Guide. The following actions are related to GetMultiRegionAccessPoint: CreateMultiRegionAccessPoint DeleteMultiRegionAccessPoint GetMultiRegionAccessPoint ListMultiRegionAccessPoints + /// This operation is not supported by directory buckets. Retrieves the status of an asynchronous request to manage a Multi-Region Access Point. For more information about managing Multi-Region Access Points and how asynchronous requests work, see Using Multi-Region Access Points in the Amazon S3 User Guide. The following actions are related to GetMultiRegionAccessPoint: CreateMultiRegionAccessPoint DeleteMultiRegionAccessPoint GetMultiRegionAccessPoint ListMultiRegionAccessPoints @Sendable public func describeMultiRegionAccessPointOperation(_ input: DescribeMultiRegionAccessPointOperationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeMultiRegionAccessPointOperationResult { return try await self.client.execute( @@ -760,7 +788,7 @@ public struct S3Control: AWSService { ) } - /// Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide. If you are using an identity other than the root user of the Amazon Web Services account that owns the Outposts bucket, the calling identity must have the s3-outposts:GetBucket permissions on the specified Outposts bucket and belong to the Outposts bucket owner's account in order to use this action. Only users from Outposts bucket owner account with the right permissions can perform actions on an Outposts bucket. If you don't have s3-outposts:GetBucket permissions or you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 403 Access Denied error. The following actions are related to GetBucket for Amazon S3 on Outposts: All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section. PutObject CreateBucket DeleteBucket + /// Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide. If you are using an identity other than the root user of the Amazon Web Services account that owns the Outposts bucket, the calling identity must have the s3-outposts:GetBucket permissions on the specified Outposts bucket and belong to the Outposts bucket owner's account in order to use this action. Only users from Outposts bucket owner account with the right permissions can perform actions on an Outposts bucket. If you don't have s3-outposts:GetBucket permissions or you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 403 Access Denied error. The following actions are related to GetBucket for Amazon S3 on Outposts: All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section. PutObject CreateBucket DeleteBucket @Sendable public func getBucket(_ input: GetBucketRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetBucketResult { return try await self.client.execute( @@ -844,7 +872,7 @@ public struct S3Control: AWSService { ) } - /// Returns a temporary access credential from S3 Access Grants to the grantee or client application. The temporary credential is an Amazon Web Services STS token that grants them access to the S3 data. Permissions You must have the s3:GetDataAccess permission to use this operation. Additional Permissions The IAM role that S3 Access Grants assumes must have the following permissions specified in the trust policy when registering the location: sts:AssumeRole, for directory users or groups sts:SetContext, and for IAM users or roles sts:SourceIdentity. + /// Returns a temporary access credential from S3 Access Grants to the grantee or client application. The temporary credential is an Amazon Web Services STS token that grants them access to the S3 data. Permissions You must have the s3:GetDataAccess permission to use this operation. Additional Permissions The IAM role that S3 Access Grants assumes must have the following permissions specified in the trust policy when registering the location: sts:AssumeRole, for directory users or groups sts:SetContext, and for IAM users or roles sts:SetSourceIdentity. @Sendable public func getDataAccess(_ input: GetDataAccessRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetDataAccessResult { return try await self.client.execute( @@ -872,7 +900,7 @@ public struct S3Control: AWSService { ) } - /// This operation is not supported by directory buckets. Returns configuration information about the specified Multi-Region Access Point. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide. The following actions are related to GetMultiRegionAccessPoint: CreateMultiRegionAccessPoint DeleteMultiRegionAccessPoint DescribeMultiRegionAccessPointOperation ListMultiRegionAccessPoints + /// This operation is not supported by directory buckets. Returns configuration information about the specified Multi-Region Access Point. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around working with Multi-Region Access Points, see Multi-Region Access Point restrictions and limitations in the Amazon S3 User Guide. The following actions are related to GetMultiRegionAccessPoint: CreateMultiRegionAccessPoint DeleteMultiRegionAccessPoint DescribeMultiRegionAccessPointOperation ListMultiRegionAccessPoints @Sendable public func getMultiRegionAccessPoint(_ input: GetMultiRegionAccessPointRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetMultiRegionAccessPointResult { return try await self.client.execute( @@ -886,7 +914,7 @@ public struct S3Control: AWSService { ) } - /// This operation is not supported by directory buckets. Returns the access control policy of the specified Multi-Region Access Point. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide. The following actions are related to GetMultiRegionAccessPointPolicy: GetMultiRegionAccessPointPolicyStatus PutMultiRegionAccessPointPolicy + /// This operation is not supported by directory buckets. Returns the access control policy of the specified Multi-Region Access Point. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around working with Multi-Region Access Points, see Multi-Region Access Point restrictions and limitations in the Amazon S3 User Guide. The following actions are related to GetMultiRegionAccessPointPolicy: GetMultiRegionAccessPointPolicyStatus PutMultiRegionAccessPointPolicy @Sendable public func getMultiRegionAccessPointPolicy(_ input: GetMultiRegionAccessPointPolicyRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetMultiRegionAccessPointPolicyResult { return try await self.client.execute( @@ -900,7 +928,7 @@ public struct S3Control: AWSService { ) } - /// This operation is not supported by directory buckets. Indicates whether the specified Multi-Region Access Point has an access control policy that allows public access. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide. The following actions are related to GetMultiRegionAccessPointPolicyStatus: GetMultiRegionAccessPointPolicy PutMultiRegionAccessPointPolicy + /// This operation is not supported by directory buckets. Indicates whether the specified Multi-Region Access Point has an access control policy that allows public access. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around working with Multi-Region Access Points, see Multi-Region Access Point restrictions and limitations in the Amazon S3 User Guide. The following actions are related to GetMultiRegionAccessPointPolicyStatus: GetMultiRegionAccessPointPolicy PutMultiRegionAccessPointPolicy @Sendable public func getMultiRegionAccessPointPolicyStatus(_ input: GetMultiRegionAccessPointPolicyStatusRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetMultiRegionAccessPointPolicyStatusResult { return try await self.client.execute( @@ -914,7 +942,7 @@ public struct S3Control: AWSService { ) } - /// This operation is not supported by directory buckets. Returns the routing configuration for a Multi-Region Access Point, indicating which Regions are active or passive. To obtain routing control changes and failover requests, use the Amazon S3 failover control infrastructure endpoints in these five Amazon Web Services Regions: us-east-1 us-west-2 ap-southeast-2 ap-northeast-1 eu-west-1 Your Amazon S3 bucket does not need to be in these five Regions. + /// This operation is not supported by directory buckets. Returns the routing configuration for a Multi-Region Access Point, indicating which Regions are active or passive. To obtain routing control changes and failover requests, use the Amazon S3 failover control infrastructure endpoints in these five Amazon Web Services Regions: us-east-1 us-west-2 ap-southeast-2 ap-northeast-1 eu-west-1 @Sendable public func getMultiRegionAccessPointRoutes(_ input: GetMultiRegionAccessPointRoutesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetMultiRegionAccessPointRoutesResult { return try await self.client.execute( @@ -1054,7 +1082,7 @@ public struct S3Control: AWSService { ) } - /// Lists current S3 Batch Operations jobs as well as the jobs that have ended within the last 30 days for the Amazon Web Services account making the request. For more information, see S3 Batch Operations in the Amazon S3 User Guide. Permissions To use the ListJobs operation, you must have permission to perform the s3:ListJobs action. Related actions include: CreateJob DescribeJob UpdateJobPriority UpdateJobStatus + /// Lists current S3 Batch Operations jobs as well as the jobs that have ended within the last 90 days for the Amazon Web Services account making the request. For more information, see S3 Batch Operations in the Amazon S3 User Guide. Permissions To use the ListJobs operation, you must have permission to perform the s3:ListJobs action. Related actions include: CreateJob DescribeJob UpdateJobPriority UpdateJobStatus @Sendable public func listJobs(_ input: ListJobsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListJobsResult { return try await self.client.execute( @@ -1068,7 +1096,7 @@ public struct S3Control: AWSService { ) } - /// This operation is not supported by directory buckets. Returns a list of the Multi-Region Access Points currently associated with the specified Amazon Web Services account. Each call can return up to 100 Multi-Region Access Points, the maximum number of Multi-Region Access Points that can be associated with a single account. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide. The following actions are related to ListMultiRegionAccessPoint: CreateMultiRegionAccessPoint DeleteMultiRegionAccessPoint DescribeMultiRegionAccessPointOperation GetMultiRegionAccessPoint + /// This operation is not supported by directory buckets. Returns a list of the Multi-Region Access Points currently associated with the specified Amazon Web Services account. Each call can return up to 100 Multi-Region Access Points, the maximum number of Multi-Region Access Points that can be associated with a single account. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around working with Multi-Region Access Points, see Multi-Region Access Point restrictions and limitations in the Amazon S3 User Guide. The following actions are related to ListMultiRegionAccessPoint: CreateMultiRegionAccessPoint DeleteMultiRegionAccessPoint DescribeMultiRegionAccessPointOperation GetMultiRegionAccessPoint @Sendable public func listMultiRegionAccessPoints(_ input: ListMultiRegionAccessPointsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListMultiRegionAccessPointsResult { return try await self.client.execute( @@ -1279,7 +1307,7 @@ public struct S3Control: AWSService { ) } - /// This operation is not supported by directory buckets. Associates an access control policy with the specified Multi-Region Access Point. Each Multi-Region Access Point can have only one policy, so a request made to this action replaces any existing policy that is associated with the specified Multi-Region Access Point. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide. The following actions are related to PutMultiRegionAccessPointPolicy: GetMultiRegionAccessPointPolicy GetMultiRegionAccessPointPolicyStatus + /// This operation is not supported by directory buckets. Associates an access control policy with the specified Multi-Region Access Point. Each Multi-Region Access Point can have only one policy, so a request made to this action replaces any existing policy that is associated with the specified Multi-Region Access Point. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around working with Multi-Region Access Points, see Multi-Region Access Point restrictions and limitations in the Amazon S3 User Guide. The following actions are related to PutMultiRegionAccessPointPolicy: GetMultiRegionAccessPointPolicy GetMultiRegionAccessPointPolicyStatus @Sendable public func putMultiRegionAccessPointPolicy(_ input: PutMultiRegionAccessPointPolicyRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> PutMultiRegionAccessPointPolicyResult { return try await self.client.execute( @@ -1335,7 +1363,7 @@ public struct S3Control: AWSService { ) } - /// This operation is not supported by directory buckets. Submits an updated route configuration for a Multi-Region Access Point. This API operation updates the routing status for the specified Regions from active to passive, or from passive to active. A value of 0 indicates a passive status, which means that traffic won't be routed to the specified Region. A value of 100 indicates an active status, which means that traffic will be routed to the specified Region. At least one Region must be active at all times. When the routing configuration is changed, any in-progress operations (uploads, copies, deletes, and so on) to formerly active Regions will continue to run to their final completion state (success or failure). The routing configurations of any Regions that aren’t specified remain unchanged. Updated routing configurations might not be immediately applied. It can take up to 2 minutes for your changes to take effect. To submit routing control changes and failover requests, use the Amazon S3 failover control infrastructure endpoints in these five Amazon Web Services Regions: us-east-1 us-west-2 ap-southeast-2 ap-northeast-1 eu-west-1 Your Amazon S3 bucket does not need to be in these five Regions. + /// This operation is not supported by directory buckets. Submits an updated route configuration for a Multi-Region Access Point. This API operation updates the routing status for the specified Regions from active to passive, or from passive to active. A value of 0 indicates a passive status, which means that traffic won't be routed to the specified Region. A value of 100 indicates an active status, which means that traffic will be routed to the specified Region. At least one Region must be active at all times. When the routing configuration is changed, any in-progress operations (uploads, copies, deletes, and so on) to formerly active Regions will continue to run to their final completion state (success or failure). The routing configurations of any Regions that aren’t specified remain unchanged. Updated routing configurations might not be immediately applied. It can take up to 2 minutes for your changes to take effect. To submit routing control changes and failover requests, use the Amazon S3 failover control infrastructure endpoints in these five Amazon Web Services Regions: us-east-1 us-west-2 ap-southeast-2 ap-northeast-1 eu-west-1 @Sendable public func submitMultiRegionAccessPointRoutes(_ input: SubmitMultiRegionAccessPointRoutesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SubmitMultiRegionAccessPointRoutesResult { return try await self.client.execute( @@ -1542,7 +1570,7 @@ extension S3Control { ) } - /// Lists current S3 Batch Operations jobs as well as the jobs that have ended within the last 30 days for the Amazon Web Services account making the request. For more information, see S3 Batch Operations in the Amazon S3 User Guide. Permissions To use the ListJobs operation, you must have permission to perform the s3:ListJobs action. Related actions include: CreateJob DescribeJob UpdateJobPriority UpdateJobStatus + /// Lists current S3 Batch Operations jobs as well as the jobs that have ended within the last 90 days for the Amazon Web Services account making the request. For more information, see S3 Batch Operations in the Amazon S3 User Guide. Permissions To use the ListJobs operation, you must have permission to perform the s3:ListJobs action. Related actions include: CreateJob DescribeJob UpdateJobPriority UpdateJobStatus /// Return PaginatorSequence for operation. /// /// - Parameters: @@ -1561,7 +1589,7 @@ extension S3Control { ) } - /// This operation is not supported by directory buckets. Returns a list of the Multi-Region Access Points currently associated with the specified Amazon Web Services account. Each call can return up to 100 Multi-Region Access Points, the maximum number of Multi-Region Access Points that can be associated with a single account. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide. The following actions are related to ListMultiRegionAccessPoint: CreateMultiRegionAccessPoint DeleteMultiRegionAccessPoint DescribeMultiRegionAccessPointOperation GetMultiRegionAccessPoint + /// This operation is not supported by directory buckets. Returns a list of the Multi-Region Access Points currently associated with the specified Amazon Web Services account. Each call can return up to 100 Multi-Region Access Points, the maximum number of Multi-Region Access Points that can be associated with a single account. This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around working with Multi-Region Access Points, see Multi-Region Access Point restrictions and limitations in the Amazon S3 User Guide. The following actions are related to ListMultiRegionAccessPoint: CreateMultiRegionAccessPoint DeleteMultiRegionAccessPoint DescribeMultiRegionAccessPointOperation GetMultiRegionAccessPoint /// Return PaginatorSequence for operation. /// /// - Parameters: diff --git a/Sources/Soto/Services/S3Control/S3Control_shapes.swift b/Sources/Soto/Services/S3Control/S3Control_shapes.swift index 9d2c5953a9..05f9dcc0c3 100644 --- a/Sources/Soto/Services/S3Control/S3Control_shapes.swift +++ b/Sources/Soto/Services/S3Control/S3Control_shapes.swift @@ -1074,7 +1074,7 @@ extension S3Control { public let accountId: String /// The name of the bucket that you want to associate this access point with. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:::outpost//bucket/. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded. public let bucket: String - /// The Amazon Web Services account ID associated with the S3 bucket associated with this access point. + /// The Amazon Web Services account ID associated with the S3 bucket associated with this access point. For same account access point when your bucket and access point belong to the same account owner, the BucketAccountId is not required. For cross-account access point when your bucket and access point are not in the same account, the BucketAccountId is required. public let bucketAccountId: String? /// The name you want to assign to this access point. public let name: String @@ -3363,7 +3363,7 @@ extension S3Control { public static let _options: AWSShapeOptions = [.checksumRequired] /// The Amazon Web Services account ID for the owner of the Multi-Region Access Point. public let accountId: String - /// Specifies the Multi-Region Access Point. The name of the Multi-Region Access Point is different from the alias. For more information about the distinction between the name and the alias of an Multi-Region Access Point, see Managing Multi-Region Access Points in the Amazon S3 User Guide. + /// Specifies the Multi-Region Access Point. The name of the Multi-Region Access Point is different from the alias. For more information about the distinction between the name and the alias of an Multi-Region Access Point, see Rules for naming Amazon S3 Multi-Region Access Points in the Amazon S3 User Guide. public let name: String public init(accountId: String, name: String) { @@ -3406,7 +3406,7 @@ extension S3Control { public static let _options: AWSShapeOptions = [.checksumRequired] /// The Amazon Web Services account ID for the owner of the Multi-Region Access Point. public let accountId: String - /// Specifies the Multi-Region Access Point. The name of the Multi-Region Access Point is different from the alias. For more information about the distinction between the name and the alias of an Multi-Region Access Point, see Managing Multi-Region Access Points in the Amazon S3 User Guide. + /// Specifies the Multi-Region Access Point. The name of the Multi-Region Access Point is different from the alias. For more information about the distinction between the name and the alias of an Multi-Region Access Point, see Rules for naming Amazon S3 Multi-Region Access Points in the Amazon S3 User Guide. public let name: String public init(accountId: String, name: String) { @@ -3448,7 +3448,7 @@ extension S3Control { public static let _options: AWSShapeOptions = [.checksumRequired] /// The Amazon Web Services account ID for the owner of the Multi-Region Access Point. public let accountId: String - /// The name of the Multi-Region Access Point whose configuration information you want to receive. The name of the Multi-Region Access Point is different from the alias. For more information about the distinction between the name and the alias of an Multi-Region Access Point, see Managing Multi-Region Access Points in the Amazon S3 User Guide. + /// The name of the Multi-Region Access Point whose configuration information you want to receive. The name of the Multi-Region Access Point is different from the alias. For more information about the distinction between the name and the alias of an Multi-Region Access Point, see Rules for naming Amazon S3 Multi-Region Access Points in the Amazon S3 User Guide. public let name: String public init(accountId: String, name: String) { @@ -4194,9 +4194,9 @@ extension S3Control { public struct LambdaInvokeOperation: AWSEncodableShape & AWSDecodableShape { /// The Amazon Resource Name (ARN) for the Lambda function that the specified job will invoke on every object in the manifest. public let functionArn: String? - /// Specifies the schema version for the payload that Batch Operations sends when invoking an Lambda function. Version 1.0 is the default. Version 2.0 is required when you use Batch Operations to invoke Lambda functions that act on directory buckets, or if you need to specify UserArguments. For more information, see Using Lambda with Amazon S3 Batch Operations and Amazon S3 Express One Zone in the Amazon Web Services Storage Blog. Ensure that your Lambda function code expects InvocationSchemaVersion 2.0 and uses bucket name rather than bucket ARN. If the InvocationSchemaVersion does not match what your Lambda function expects, your function might not work as expected. Directory buckets - To initiate Amazon Web Services Lambda function to perform custom actions on objects in directory buckets, you must specify 2.0. + /// Specifies the schema version for the payload that Batch Operations sends when invoking an Lambda function. Version 1.0 is the default. Version 2.0 is required when you use Batch Operations to invoke Lambda functions that act on directory buckets, or if you need to specify UserArguments. For more information, see Automate object processing in Amazon S3 directory buckets with S3 Batch Operations and Lambda in the Amazon Web Services Storage Blog. Ensure that your Lambda function code expects InvocationSchemaVersion 2.0 and uses bucket name rather than bucket ARN. If the InvocationSchemaVersion does not match what your Lambda function expects, your function might not work as expected. Directory buckets - To initiate Amazon Web Services Lambda function to perform custom actions on objects in directory buckets, you must specify 2.0. public let invocationSchemaVersion: String? - /// Key-value pairs that are passed in the payload that Batch Operations sends when invoking an Lambda function. You must specify InvocationSchemaVersion 2.0 for LambdaInvoke operations that include UserArguments. For more information, see Using Lambda with Amazon S3 Batch Operations and Amazon S3 Express One Zone in the Amazon Web Services Storage Blog. + /// Key-value pairs that are passed in the payload that Batch Operations sends when invoking an Lambda function. You must specify InvocationSchemaVersion 2.0 for LambdaInvoke operations that include UserArguments. For more information, see Automate object processing in Amazon S3 directory buckets with S3 Batch Operations and Lambda in the Amazon Web Services Storage Blog. @OptionalCustomCoding> public var userArguments: [String: String]? @@ -4322,9 +4322,9 @@ extension S3Control { } public struct LifecycleRuleAndOperator: AWSEncodableShape & AWSDecodableShape { - /// Minimum object size to which the rule applies. + /// The non-inclusive minimum object size for the lifecycle rule. Setting this property to 7 means the rule applies to objects with a size that is greater than 7. public let objectSizeGreaterThan: Int64? - /// Maximum object size to which the rule applies. + /// The non-inclusive maximum object size for the lifecycle rule. Setting this property to 77 means the rule applies to objects with a size that is less than 77. public let objectSizeLessThan: Int64? /// Prefix identifying one or more objects to which the rule applies. public let prefix: String? @@ -5237,7 +5237,7 @@ extension S3Control { public struct MultiRegionAccessPointReport: AWSDecodableShape { public struct _RegionsEncoding: ArrayCoderProperties { public static let member = "Region" } - /// The alias for the Multi-Region Access Point. For more information about the distinction between the name and the alias of an Multi-Region Access Point, see Managing Multi-Region Access Points. + /// The alias for the Multi-Region Access Point. For more information about the distinction between the name and the alias of an Multi-Region Access Point, see Rules for naming Amazon S3 Multi-Region Access Points. public let alias: String? /// When the Multi-Region Access Point create request was received. public let createdAt: Date? @@ -6507,7 +6507,7 @@ extension S3Control { public let storageClass: S3StorageClass? /// Specifies the folder prefix that you want the objects to be copied into. For example, to copy objects into a folder named Folder1 in the destination bucket, set the TargetKeyPrefix property to Folder1. public let targetKeyPrefix: String? - /// Specifies the destination bucket Amazon Resource Name (ARN) for the batch copy operation. General purpose buckets - For example, to copy objects to a general purpose bucket named destinationBucket, set the TargetResource property to arn:aws:s3:::destinationBucket. Directory buckets - For example, to copy objects to a directory bucket named destinationBucket in the Availability Zone; identified by the AZ ID usw2-az2, set the TargetResource property to arn:aws:s3express:region:account_id:/bucket/destination_bucket_base_name--usw2-az2--x-s3. + /// Specifies the destination bucket Amazon Resource Name (ARN) for the batch copy operation. General purpose buckets - For example, to copy objects to a general purpose bucket named destinationBucket, set the TargetResource property to arn:aws:s3:::destinationBucket. Directory buckets - For example, to copy objects to a directory bucket named destinationBucket in the Availability Zone; identified by the AZ ID usw2-az1, set the TargetResource property to arn:aws:s3express:region:account_id:/bucket/destination_bucket_base_name--usw2-az1--x-s3. public let targetResource: String? public let unModifiedSinceConstraint: Date? diff --git a/Sources/Soto/Services/SES/SES_api.swift b/Sources/Soto/Services/SES/SES_api.swift index 6e4ae7f182..1c95aec170 100644 --- a/Sources/Soto/Services/SES/SES_api.swift +++ b/Sources/Soto/Services/SES/SES_api.swift @@ -79,6 +79,7 @@ public struct SES: AWSService { "ca-central-1": "email-fips.ca-central-1.amazonaws.com", "us-east-1": "email-fips.us-east-1.amazonaws.com", "us-east-2": "email-fips.us-east-2.amazonaws.com", + "us-gov-east-1": "email-fips.us-gov-east-1.amazonaws.com", "us-gov-west-1": "email-fips.us-gov-west-1.amazonaws.com", "us-west-1": "email-fips.us-west-1.amazonaws.com", "us-west-2": "email-fips.us-west-2.amazonaws.com" diff --git a/Sources/Soto/Services/SESv2/SESv2_api.swift b/Sources/Soto/Services/SESv2/SESv2_api.swift index 50692c98e7..343601eb53 100644 --- a/Sources/Soto/Services/SESv2/SESv2_api.swift +++ b/Sources/Soto/Services/SESv2/SESv2_api.swift @@ -78,6 +78,7 @@ public struct SESv2: AWSService { "ca-central-1": "email-fips.ca-central-1.amazonaws.com", "us-east-1": "email-fips.us-east-1.amazonaws.com", "us-east-2": "email-fips.us-east-2.amazonaws.com", + "us-gov-east-1": "email-fips.us-gov-east-1.amazonaws.com", "us-gov-west-1": "email-fips.us-gov-west-1.amazonaws.com", "us-west-1": "email-fips.us-west-1.amazonaws.com", "us-west-2": "email-fips.us-west-2.amazonaws.com" @@ -702,8 +703,8 @@ public struct SESv2: AWSService { public func listContacts(_ input: ListContactsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListContactsResponse { return try await self.client.execute( operation: "ListContacts", - path: "/v2/email/contact-lists/{ContactListName}/contacts", - httpMethod: .GET, + path: "/v2/email/contact-lists/{ContactListName}/contacts/list", + httpMethod: .POST, serviceConfig: self.config, input: input, logger: logger @@ -806,8 +807,8 @@ public struct SESv2: AWSService { public func listImportJobs(_ input: ListImportJobsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListImportJobsResponse { return try await self.client.execute( operation: "ListImportJobs", - path: "/v2/email/import-jobs", - httpMethod: .GET, + path: "/v2/email/import-jobs/list", + httpMethod: .POST, serviceConfig: self.config, input: input, logger: logger diff --git a/Sources/Soto/Services/SESv2/SESv2_shapes.swift b/Sources/Soto/Services/SESv2/SESv2_shapes.swift index 3e315d8403..e77e1bee8e 100644 --- a/Sources/Soto/Services/SESv2/SESv2_shapes.swift +++ b/Sources/Soto/Services/SESv2/SESv2_shapes.swift @@ -516,22 +516,30 @@ extension SESv2 { public let destination: Destination /// The ReplacementEmailContent associated with a BulkEmailEntry. public let replacementEmailContent: ReplacementEmailContent? + /// The list of message headers associated with the BulkEmailEntry data type. Headers Not Present in BulkEmailEntry: If a header is specified in Template but not in BulkEmailEntry, the header from Template will be added to the outgoing email. Headers Present in BulkEmailEntry: If a header is specified in BulkEmailEntry, it takes precedence over any header of the same name specified in Template : If the header is also defined within Template, the value from BulkEmailEntry will replace the header's value in the email. If the header is not defined within Template, it will simply be added to the email as specified in BulkEmailEntry. + public let replacementHeaders: [MessageHeader]? /// A list of tags, in the form of name/value pairs, to apply to an email that you send using the SendBulkTemplatedEmail operation. Tags correspond to characteristics of the email that you define, so that you can publish email sending events. public let replacementTags: [MessageTag]? - public init(destination: Destination, replacementEmailContent: ReplacementEmailContent? = nil, replacementTags: [MessageTag]? = nil) { + public init(destination: Destination, replacementEmailContent: ReplacementEmailContent? = nil, replacementHeaders: [MessageHeader]? = nil, replacementTags: [MessageTag]? = nil) { self.destination = destination self.replacementEmailContent = replacementEmailContent + self.replacementHeaders = replacementHeaders self.replacementTags = replacementTags } public func validate(name: String) throws { try self.replacementEmailContent?.validate(name: "\(name).replacementEmailContent") + try self.replacementHeaders?.forEach { + try $0.validate(name: "\(name).replacementHeaders[]") + } + try self.validate(self.replacementHeaders, name: "replacementHeaders", parent: name, max: 15) } private enum CodingKeys: String, CodingKey { case destination = "Destination" case replacementEmailContent = "ReplacementEmailContent" + case replacementHeaders = "ReplacementHeaders" case replacementTags = "ReplacementTags" } } @@ -3299,12 +3307,14 @@ extension SESv2 { var container = encoder.container(keyedBy: CodingKeys.self) request.encodePath(self.contactListName, key: "ContactListName") try container.encodeIfPresent(self.filter, forKey: .filter) - request.encodeQuery(self.nextToken, key: "NextToken") - request.encodeQuery(self.pageSize, key: "PageSize") + try container.encodeIfPresent(self.nextToken, forKey: .nextToken) + try container.encodeIfPresent(self.pageSize, forKey: .pageSize) } private enum CodingKeys: String, CodingKey { case filter = "Filter" + case nextToken = "NextToken" + case pageSize = "PageSize" } } @@ -3621,16 +3631,10 @@ extension SESv2 { self.pageSize = pageSize } - public func encode(to encoder: Encoder) throws { - let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer - var container = encoder.container(keyedBy: CodingKeys.self) - try container.encodeIfPresent(self.importDestinationType, forKey: .importDestinationType) - request.encodeQuery(self.nextToken, key: "NextToken") - request.encodeQuery(self.pageSize, key: "PageSize") - } - private enum CodingKeys: String, CodingKey { case importDestinationType = "ImportDestinationType" + case nextToken = "NextToken" + case pageSize = "PageSize" } } diff --git a/Sources/Soto/Services/SFN/SFN_api.swift b/Sources/Soto/Services/SFN/SFN_api.swift index f8f756c30d..c807152e23 100644 --- a/Sources/Soto/Services/SFN/SFN_api.swift +++ b/Sources/Soto/Services/SFN/SFN_api.swift @@ -561,6 +561,19 @@ public struct SFN: AWSService { logger: logger ) } + + /// Validates the syntax of a state machine definition. You can validate that a state machine definition is correct without creating a state machine resource. Step Functions will implicitly perform the same syntax check when you invoke CreateStateMachine and UpdateStateMachine. State machine definitions are specified using a JSON-based, structured language. For more information on Amazon States Language see Amazon States Language (ASL). Suggested uses for ValidateStateMachineDefinition: Integrate automated checks into your code review or Continuous Integration (CI) process to validate state machine definitions before starting deployments. Run the validation from a Git pre-commit hook to check your state machine definitions before committing them to your source repository. Errors found in the state machine definition will be returned in the response as a list of diagnostic elements, rather than raise an exception. + @Sendable + public func validateStateMachineDefinition(_ input: ValidateStateMachineDefinitionInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ValidateStateMachineDefinitionOutput { + return try await self.client.execute( + operation: "ValidateStateMachineDefinition", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } } extension SFN { diff --git a/Sources/Soto/Services/SFN/SFN_shapes.swift b/Sources/Soto/Services/SFN/SFN_shapes.swift index 50e2a6f38c..317cbbc904 100644 --- a/Sources/Soto/Services/SFN/SFN_shapes.swift +++ b/Sources/Soto/Services/SFN/SFN_shapes.swift @@ -164,6 +164,17 @@ extension SFN { public var description: String { return self.rawValue } } + public enum ValidateStateMachineDefinitionResultCode: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case fail = "FAIL" + case ok = "OK" + public var description: String { return self.rawValue } + } + + public enum ValidateStateMachineDefinitionSeverity: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case error = "ERROR" + public var description: String { return self.rawValue } + } + // MARK: Shapes public struct ActivityFailedEventDetails: AWSDecodableShape { @@ -3230,6 +3241,70 @@ extension SFN { case updateDate = "updateDate" } } + + public struct ValidateStateMachineDefinitionDiagnostic: AWSDecodableShape { + /// Identifying code for the diagnostic. + public let code: String + /// Location of the issue in the state machine, if available. For errors specific to a field, the location could be in the format: /States//, for example: /States/FailState/ErrorPath. + public let location: String? + /// Message describing the diagnostic condition. + public let message: String + /// A value of ERROR means that you cannot create or update a state machine with this definition. + public let severity: ValidateStateMachineDefinitionSeverity + + public init(code: String, location: String? = nil, message: String, severity: ValidateStateMachineDefinitionSeverity) { + self.code = code + self.location = location + self.message = message + self.severity = severity + } + + private enum CodingKeys: String, CodingKey { + case code = "code" + case location = "location" + case message = "message" + case severity = "severity" + } + } + + public struct ValidateStateMachineDefinitionInput: AWSEncodableShape { + /// The Amazon States Language definition of the state machine. For more information, see Amazon States Language (ASL). + public let definition: String + /// The target type of state machine for this definition. The default is STANDARD. + public let type: StateMachineType? + + public init(definition: String, type: StateMachineType? = nil) { + self.definition = definition + self.type = type + } + + public func validate(name: String) throws { + try self.validate(self.definition, name: "definition", parent: name, max: 1048576) + try self.validate(self.definition, name: "definition", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case definition = "definition" + case type = "type" + } + } + + public struct ValidateStateMachineDefinitionOutput: AWSDecodableShape { + /// If the result is OK, this field will be empty. When there are errors, this field will contain an array of Diagnostic objects to help you troubleshoot. + public let diagnostics: [ValidateStateMachineDefinitionDiagnostic] + /// The result value will be OK when no syntax errors are found, or FAIL if the workflow definition does not pass verification. + public let result: ValidateStateMachineDefinitionResultCode + + public init(diagnostics: [ValidateStateMachineDefinitionDiagnostic], result: ValidateStateMachineDefinitionResultCode) { + self.diagnostics = diagnostics + self.result = result + } + + private enum CodingKeys: String, CodingKey { + case diagnostics = "diagnostics" + case result = "result" + } + } } // MARK: - Errors diff --git a/Sources/Soto/Services/SSM/SSM_api.swift b/Sources/Soto/Services/SSM/SSM_api.swift index 958604b5a6..ff4ae5160b 100644 --- a/Sources/Soto/Services/SSM/SSM_api.swift +++ b/Sources/Soto/Services/SSM/SSM_api.swift @@ -674,6 +674,19 @@ public struct SSM: AWSService { ) } + /// An API operation used by the Systems Manager console to display information about Systems Manager managed nodes. + @Sendable + public func describeInstanceProperties(_ input: DescribeInstancePropertiesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeInstancePropertiesResult { + return try await self.client.execute( + operation: "DescribeInstanceProperties", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Describes a specific delete inventory operation. @Sendable public func describeInventoryDeletions(_ input: DescribeInventoryDeletionsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeInventoryDeletionsResult { @@ -2157,6 +2170,25 @@ extension SSM { ) } + /// An API operation used by the Systems Manager console to display information about Systems Manager managed nodes. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func describeInstancePropertiesPaginator( + _ input: DescribeInstancePropertiesRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.describeInstanceProperties, + inputKey: \DescribeInstancePropertiesRequest.nextToken, + outputKey: \DescribeInstancePropertiesResult.nextToken, + logger: logger + ) + } + /// Describes a specific delete inventory operation. /// Return PaginatorSequence for operation. /// @@ -2942,6 +2974,17 @@ extension SSM.DescribeInstancePatchesRequest: AWSPaginateToken { } } +extension SSM.DescribeInstancePropertiesRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> SSM.DescribeInstancePropertiesRequest { + return .init( + filtersWithOperator: self.filtersWithOperator, + instancePropertyFilterList: self.instancePropertyFilterList, + maxResults: self.maxResults, + nextToken: token + ) + } +} + extension SSM.DescribeInventoryDeletionsRequest: AWSPaginateToken { public func usingPaginationToken(_ token: String) -> SSM.DescribeInventoryDeletionsRequest { return .init( diff --git a/Sources/Soto/Services/SSM/SSM_shapes.swift b/Sources/Soto/Services/SSM/SSM_shapes.swift index d4a891d94c..87cc52aee8 100644 --- a/Sources/Soto/Services/SSM/SSM_shapes.swift +++ b/Sources/Soto/Services/SSM/SSM_shapes.swift @@ -352,6 +352,28 @@ extension SSM { public var description: String { return self.rawValue } } + public enum InstancePropertyFilterKey: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case activationIds = "ActivationIds" + case agentVersion = "AgentVersion" + case associationStatus = "AssociationStatus" + case documentName = "DocumentName" + case iamRole = "IamRole" + case instanceIds = "InstanceIds" + case pingStatus = "PingStatus" + case platformTypes = "PlatformTypes" + case resourceType = "ResourceType" + public var description: String { return self.rawValue } + } + + public enum InstancePropertyFilterOperator: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case beginWith = "BeginWith" + case equal = "Equal" + case greaterThan = "GreaterThan" + case lessThan = "LessThan" + case notEqual = "NotEqual" + public var description: String { return self.rawValue } + } + public enum InventoryAttributeDataType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case number = "number" case string = "string" @@ -2806,7 +2828,7 @@ extension SSM { public let documentFormat: DocumentFormat? /// The type of document to create. The DeploymentStrategy document type is an internal-use-only document type reserved for AppConfig. public let documentType: DocumentType? - /// A name for the SSM document. You can't use the following strings as document name prefixes. These are reserved by Amazon Web Services for use as document name prefixes: aws amazon amzn + /// A name for the SSM document. You can't use the following strings as document name prefixes. These are reserved by Amazon Web Services for use as document name prefixes: aws amazon amzn AWSEC2 AWSConfigRemediation AWSSupport public let name: String /// A list of SSM documents required by a document. This parameter is used exclusively by AppConfig. When a user creates an AppConfig configuration in an SSM document, the user must also specify a required document for validation purposes. In this case, an ApplicationConfiguration document requires an ApplicationConfigurationSchema document for validation purposes. For more information, see What is AppConfig? in the AppConfig User Guide. public let requires: [DocumentRequires]? @@ -2900,7 +2922,7 @@ extension SSM { public let scheduleOffset: Int? /// The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the Time Zone Database on the IANA website. public let scheduleTimezone: String? - /// The date and time, in ISO-8601 Extended format, for when you want the maintenance window to become active. StartDate allows you to delay activation of the maintenance window until the specified future date. + /// The date and time, in ISO-8601 Extended format, for when you want the maintenance window to become active. StartDate allows you to delay activation of the maintenance window until the specified future date. When using a rate schedule, if you provide a start date that occurs in the past, the current date and time are used as the start date. public let startDate: String? /// Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a maintenance window to identify the type of tasks it will run, the types of targets, and the environment it will run in. In this case, you could specify the following key-value pairs: Key=TaskType,Value=AgentUpdate Key=OS,Value=Windows Key=Environment,Value=Production To add tags to an existing maintenance window, use the AddTagsToResource operation. public let tags: [Tag]? @@ -4608,6 +4630,63 @@ extension SSM { } } + public struct DescribeInstancePropertiesRequest: AWSEncodableShape { + /// The request filters to use with the operator. + public let filtersWithOperator: [InstancePropertyStringFilter]? + /// An array of instance property filters. + public let instancePropertyFilterList: [InstancePropertyFilter]? + /// The maximum number of items to return for the 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: Int? + /// The token provided by a previous request to use to return the next set of properties. + public let nextToken: String? + + public init(filtersWithOperator: [InstancePropertyStringFilter]? = nil, instancePropertyFilterList: [InstancePropertyFilter]? = nil, maxResults: Int? = nil, nextToken: String? = nil) { + self.filtersWithOperator = filtersWithOperator + self.instancePropertyFilterList = instancePropertyFilterList + self.maxResults = maxResults + self.nextToken = nextToken + } + + public func validate(name: String) throws { + try self.filtersWithOperator?.forEach { + try $0.validate(name: "\(name).filtersWithOperator[]") + } + try self.validate(self.filtersWithOperator, name: "filtersWithOperator", parent: name, max: 40) + try self.validate(self.filtersWithOperator, name: "filtersWithOperator", parent: name, min: 1) + try self.instancePropertyFilterList?.forEach { + try $0.validate(name: "\(name).instancePropertyFilterList[]") + } + try self.validate(self.instancePropertyFilterList, name: "instancePropertyFilterList", parent: name, max: 40) + try self.validate(self.instancePropertyFilterList, name: "instancePropertyFilterList", parent: name, min: 1) + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 1000) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 5) + } + + private enum CodingKeys: String, CodingKey { + case filtersWithOperator = "FiltersWithOperator" + case instancePropertyFilterList = "InstancePropertyFilterList" + case maxResults = "MaxResults" + case nextToken = "NextToken" + } + } + + public struct DescribeInstancePropertiesResult: AWSDecodableShape { + /// Properties for the managed instances. + public let instanceProperties: [InstanceProperty]? + /// The token for the next set of properties to return. Use this token to get the next set of results. + public let nextToken: String? + + public init(instanceProperties: [InstanceProperty]? = nil, nextToken: String? = nil) { + self.instanceProperties = instanceProperties + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case instanceProperties = "InstanceProperties" + case nextToken = "NextToken" + } + } + public struct DescribeInventoryDeletionsRequest: AWSEncodableShape { /// Specify the delete inventory ID for which you want information. This ID was returned by the DeleteInventory operation. public let deletionId: String? @@ -7241,7 +7320,7 @@ extension SSM { } public struct GetParametersRequest: AWSEncodableShape { - /// The names or Amazon Resource Names (ARNs) of the parameters that you want to query. For parameters shared with you from another account, you must use the full ARNs. To query by parameter label, use "Name": "name:label". To query by parameter version, use "Name": "name:version". For more information about shared parameters, see Working with shared parameters in the Amazon Web Services Systems Manager User Guide. + /// The names or Amazon Resource Names (ARNs) of the parameters that you want to query. For parameters shared with you from another account, you must use the full ARNs. To query by parameter label, use "Name": "name:label". To query by parameter version, use "Name": "name:version". The results for GetParameters requests are listed in alphabetical order in query responses. For information about shared parameters, see Working with shared parameters in the Amazon Web Services Systems Manager User Guide. public let names: [String] /// Return decrypted secure string value. Return decrypted values for secure string parameters. This flag is ignored for String and StringList parameter types. public let withDecryption: Bool? @@ -7910,6 +7989,179 @@ extension SSM { } } + public struct InstanceProperty: AWSDecodableShape { + /// The activation ID created by Systems Manager when the server or virtual machine (VM) was registered + public let activationId: String? + /// The version of SSM Agent running on your managed node. + public let agentVersion: String? + /// The CPU architecture of the node. For example, x86_64. + public let architecture: String? + public let associationOverview: InstanceAggregatedAssociationOverview? + /// The status of the State Manager association applied to the managed node. + public let associationStatus: String? + /// The fully qualified host name of the managed node. + public let computerName: String? + /// The IAM role used in the hybrid activation to register the node with Systems Manager. + public let iamRole: String? + /// The ID of the managed node. + public let instanceId: String? + /// The instance profile attached to the node. If an instance profile isn't attached to the node, this value is blank. + public let instanceRole: String? + /// The current state of the node. + public let instanceState: String? + /// The instance type of the managed node. For example, t3.large. + public let instanceType: String? + /// The public IPv4 address assigned to the node. If a public IPv4 address isn't assigned to the node, this value is blank. + public let ipAddress: String? + /// The name of the key pair associated with the node. If a key pair isnt't associated with the node, this value is blank. + public let keyName: String? + /// The date the association was last run. + public let lastAssociationExecutionDate: Date? + /// The date and time when the SSM Agent last pinged the Systems Manager service. + public let lastPingDateTime: Date? + /// The last date the association was successfully run. + public let lastSuccessfulAssociationExecutionDate: Date? + /// The timestamp for when the node was launched. + public let launchTime: Date? + /// The value of the EC2 Name tag associated with the node. If a Name tag hasn't been applied to the node, this value is blank. + public let name: String? + /// Connection status of the SSM Agent on the managed node. + public let pingStatus: PingStatus? + /// The name of the operating system platform running on your managed node. + public let platformName: String? + /// The operating system platform type of the managed node. For example, Windows. + public let platformType: PlatformType? + /// The version of the OS platform running on your managed node. + public let platformVersion: String? + /// The date the node was registered with Systems Manager. + public let registrationDate: Date? + /// The type of managed node. + public let resourceType: String? + /// The ID of the source resource. + public let sourceId: String? + /// The type of the source resource. + public let sourceType: SourceType? + + public init(activationId: String? = nil, agentVersion: String? = nil, architecture: String? = nil, associationOverview: InstanceAggregatedAssociationOverview? = nil, associationStatus: String? = nil, computerName: String? = nil, iamRole: String? = nil, instanceId: String? = nil, instanceRole: String? = nil, instanceState: String? = nil, instanceType: String? = nil, ipAddress: String? = nil, keyName: String? = nil, lastAssociationExecutionDate: Date? = nil, lastPingDateTime: Date? = nil, lastSuccessfulAssociationExecutionDate: Date? = nil, launchTime: Date? = nil, name: String? = nil, pingStatus: PingStatus? = nil, platformName: String? = nil, platformType: PlatformType? = nil, platformVersion: String? = nil, registrationDate: Date? = nil, resourceType: String? = nil, sourceId: String? = nil, sourceType: SourceType? = nil) { + self.activationId = activationId + self.agentVersion = agentVersion + self.architecture = architecture + self.associationOverview = associationOverview + self.associationStatus = associationStatus + self.computerName = computerName + self.iamRole = iamRole + self.instanceId = instanceId + self.instanceRole = instanceRole + self.instanceState = instanceState + self.instanceType = instanceType + self.ipAddress = ipAddress + self.keyName = keyName + self.lastAssociationExecutionDate = lastAssociationExecutionDate + self.lastPingDateTime = lastPingDateTime + self.lastSuccessfulAssociationExecutionDate = lastSuccessfulAssociationExecutionDate + self.launchTime = launchTime + self.name = name + self.pingStatus = pingStatus + self.platformName = platformName + self.platformType = platformType + self.platformVersion = platformVersion + self.registrationDate = registrationDate + self.resourceType = resourceType + self.sourceId = sourceId + self.sourceType = sourceType + } + + private enum CodingKeys: String, CodingKey { + case activationId = "ActivationId" + case agentVersion = "AgentVersion" + case architecture = "Architecture" + case associationOverview = "AssociationOverview" + case associationStatus = "AssociationStatus" + case computerName = "ComputerName" + case iamRole = "IamRole" + case instanceId = "InstanceId" + case instanceRole = "InstanceRole" + case instanceState = "InstanceState" + case instanceType = "InstanceType" + case ipAddress = "IPAddress" + case keyName = "KeyName" + case lastAssociationExecutionDate = "LastAssociationExecutionDate" + case lastPingDateTime = "LastPingDateTime" + case lastSuccessfulAssociationExecutionDate = "LastSuccessfulAssociationExecutionDate" + case launchTime = "LaunchTime" + case name = "Name" + case pingStatus = "PingStatus" + case platformName = "PlatformName" + case platformType = "PlatformType" + case platformVersion = "PlatformVersion" + case registrationDate = "RegistrationDate" + case resourceType = "ResourceType" + case sourceId = "SourceId" + case sourceType = "SourceType" + } + } + + public struct InstancePropertyFilter: AWSEncodableShape { + /// The name of the filter. + public let key: InstancePropertyFilterKey + /// The filter values. + public let valueSet: [String] + + public init(key: InstancePropertyFilterKey, valueSet: [String]) { + self.key = key + self.valueSet = valueSet + } + + public func validate(name: String) throws { + try self.valueSet.forEach { + try validate($0, name: "valueSet[]", parent: name, max: 100000) + try validate($0, name: "valueSet[]", parent: name, min: 1) + try validate($0, name: "valueSet[]", parent: name, pattern: "^.{1,100000}$") + } + try self.validate(self.valueSet, name: "valueSet", parent: name, max: 40) + try self.validate(self.valueSet, name: "valueSet", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case key = "key" + case valueSet = "valueSet" + } + } + + public struct InstancePropertyStringFilter: AWSEncodableShape { + /// The filter key name to describe your managed nodes. + public let key: String + /// The operator used by the filter call. + public let `operator`: InstancePropertyFilterOperator? + /// The filter key name to describe your managed nodes. + public let values: [String] + + public init(key: String, operator: InstancePropertyFilterOperator? = nil, values: [String]) { + self.key = key + self.`operator` = `operator` + self.values = values + } + + public func validate(name: String) throws { + try self.validate(self.key, name: "key", parent: name, max: 100000) + try self.validate(self.key, name: "key", parent: name, min: 1) + try self.validate(self.key, name: "key", parent: name, pattern: "^.{1,100000}$") + try self.values.forEach { + try validate($0, name: "values[]", parent: name, max: 100000) + try validate($0, name: "values[]", parent: name, min: 1) + try validate($0, name: "values[]", parent: name, pattern: "^.{1,100000}$") + } + try self.validate(self.values, name: "values", parent: name, max: 40) + try self.validate(self.values, name: "values", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case key = "Key" + case `operator` = "Operator" + case values = "Values" + } + } + public struct InventoryAggregator: AWSEncodableShape { /// Nested aggregators to further refine aggregation for an inventory type. public let aggregators: [InventoryAggregator]? @@ -11424,7 +11676,7 @@ extension SSM { public let name: String? /// 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: Int? - /// The Amazon Resource Name (ARN) of the IAM service role for Amazon Web Services Systems Manager to assume when running a maintenance window task. If you do not specify a service role ARN, Systems Manager uses your account's service-linked role. If no service-linked role for Systems Manager exists in your account, it is created when you run RegisterTaskWithMaintenanceWindow. For more information, see Using service-linked roles for Systems Manager in the in the Amazon Web Services Systems Manager User Guide: + /// The Amazon Resource Name (ARN) of the IAM service role for Amazon Web Services Systems Manager to assume when running a maintenance window task. If you do not specify a service role ARN, Systems Manager uses a service-linked role in your account. If no appropriate service-linked role for Systems Manager exists in your account, it is created when you run RegisterTaskWithMaintenanceWindow. However, for an improved security posture, we strongly recommend creating a custom policy and custom service role for running your maintenance window tasks. The policy can be crafted to provide only the permissions needed for your particular maintenance window tasks. For more information, see Setting up maintenance windows in the in the Amazon Web Services Systems Manager User Guide. public let serviceRoleArn: String? /// The targets (either managed nodes or maintenance window targets). One or more targets must be specified for maintenance window Run Command-type tasks. Depending on the task, targets are optional for other maintenance window task types (Automation, Lambda, and Step Functions). For more information about running tasks that don't specify targets, see Registering maintenance window tasks without targets in the Amazon Web Services Systems Manager User Guide. Specify managed nodes using the following format: Key=InstanceIds,Values=, Specify maintenance window targets using the following format: Key=WindowTargetIds,Values=, public let targets: [Target]? @@ -13431,7 +13683,7 @@ extension SSM { public let scheduleOffset: Int? /// The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the Time Zone Database on the IANA website. public let scheduleTimezone: String? - /// The date and time, in ISO-8601 Extended format, for when you want the maintenance window to become active. StartDate allows you to delay activation of the maintenance window until the specified future date. + /// The date and time, in ISO-8601 Extended format, for when you want the maintenance window to become active. StartDate allows you to delay activation of the maintenance window until the specified future date. When using a rate schedule, if you provide a start date that occurs in the past, the current date and time are used as the start date. public let startDate: String? /// The ID of the maintenance window to update. public let windowId: String @@ -13654,7 +13906,7 @@ extension SSM { public let priority: Int? /// If True, then all fields that are required by the RegisterTaskWithMaintenanceWindow operation are also required for this API request. Optional fields that aren't specified are set to null. public let replace: Bool? - /// The Amazon Resource Name (ARN) of the IAM service role for Amazon Web Services Systems Manager to assume when running a maintenance window task. If you do not specify a service role ARN, Systems Manager uses your account's service-linked role. If no service-linked role for Systems Manager exists in your account, it is created when you run RegisterTaskWithMaintenanceWindow. For more information, see Using service-linked roles for Systems Manager in the in the Amazon Web Services Systems Manager User Guide: + /// The Amazon Resource Name (ARN) of the IAM service role for Amazon Web Services Systems Manager to assume when running a maintenance window task. If you do not specify a service role ARN, Systems Manager uses a service-linked role in your account. If no appropriate service-linked role for Systems Manager exists in your account, it is created when you run RegisterTaskWithMaintenanceWindow. However, for an improved security posture, we strongly recommend creating a custom policy and custom service role for running your maintenance window tasks. The policy can be crafted to provide only the permissions needed for your particular maintenance window tasks. For more information, see Setting up maintenance windows in the in the Amazon Web Services Systems Manager User Guide. public let serviceRoleArn: String? /// The targets (either managed nodes or tags) to modify. Managed nodes are specified using the format Key=instanceids,Values=instanceID_1,instanceID_2. Tags are specified using the format Key=tag_name,Values=tag_value. One or more targets must be specified for maintenance window Run Command-type tasks. Depending on the task, targets are optional for other maintenance window task types (Automation, Lambda, and Step Functions). For more information about running tasks that don't specify targets, see Registering maintenance window tasks without targets in the Amazon Web Services Systems Manager User Guide. public let targets: [Target]? @@ -14269,6 +14521,7 @@ public struct SSMErrorType: AWSErrorType { case invalidFilterValue = "InvalidFilterValue" case invalidInstanceId = "InvalidInstanceId" case invalidInstanceInformationFilterValue = "InvalidInstanceInformationFilterValue" + case invalidInstancePropertyFilterValue = "InvalidInstancePropertyFilterValue" case invalidInventoryGroupException = "InvalidInventoryGroupException" case invalidInventoryItemContextException = "InvalidInventoryItemContextException" case invalidInventoryRequestException = "InvalidInventoryRequestException" @@ -14474,6 +14727,8 @@ public struct SSMErrorType: AWSErrorType { public static var invalidInstanceId: Self { .init(.invalidInstanceId) } /// The specified filter value isn't valid. public static var invalidInstanceInformationFilterValue: Self { .init(.invalidInstanceInformationFilterValue) } + /// The specified filter value isn't valid. + public static var invalidInstancePropertyFilterValue: Self { .init(.invalidInstancePropertyFilterValue) } /// The specified inventory group isn't valid. public static var invalidInventoryGroupException: Self { .init(.invalidInventoryGroupException) } /// You specified invalid keys or values in the Context attribute for InventoryItem. Verify the keys and values, and try again. diff --git a/Sources/Soto/Services/SageMaker/SageMaker_shapes.swift b/Sources/Soto/Services/SageMaker/SageMaker_shapes.swift index f33f9e7a38..ead0f72116 100644 --- a/Sources/Soto/Services/SageMaker/SageMaker_shapes.swift +++ b/Sources/Soto/Services/SageMaker/SageMaker_shapes.swift @@ -468,11 +468,8 @@ extension SageMaker { } public enum AwsManagedHumanLoopRequestSource: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { - case bedrockModelEvaluation = "AWS/Bedrock/ModelEvaluation" - case handshakeVerifyIdentity = "AWS/Handshake/VerifyIdentity" case rekognitionDetectModerationLabelsImageV3 = "AWS/Rekognition/DetectModerationLabels/Image/V3" case textractAnalyzeDocumentFormsV1 = "AWS/Textract/AnalyzeDocument/Forms/V1" - case textractAnalyzeExpense = "AWS/Textract/AnalyzeExpense" public var description: String { return self.rawValue } } @@ -1929,6 +1926,14 @@ extension SageMaker { case mlG54Xlarge = "ml.g5.4xlarge" case mlG58Xlarge = "ml.g5.8xlarge" case mlG5Xlarge = "ml.g5.xlarge" + case mlG612Xlarge = "ml.g6.12xlarge" + case mlG616Xlarge = "ml.g6.16xlarge" + case mlG624Xlarge = "ml.g6.24xlarge" + case mlG62Xlarge = "ml.g6.2xlarge" + case mlG648Xlarge = "ml.g6.48xlarge" + case mlG64Xlarge = "ml.g6.4xlarge" + case mlG68Xlarge = "ml.g6.8xlarge" + case mlG6Xlarge = "ml.g6.xlarge" case mlInf124Xlarge = "ml.inf1.24xlarge" case mlInf12Xlarge = "ml.inf1.2xlarge" case mlInf16Xlarge = "ml.inf1.6xlarge" @@ -2645,12 +2650,38 @@ extension SageMaker { case mlC54Xlarge = "ml.c5.4xlarge" case mlC59Xlarge = "ml.c5.9xlarge" case mlC5Xlarge = "ml.c5.xlarge" + case mlC6I12Xlarge = "ml.c6i.12xlarge" + case mlC6I16Xlarge = "ml.c6i.16xlarge" + case mlC6I24Xlarge = "ml.c6i.24xlarge" + case mlC6I2Xlarge = "ml.c6i.2xlarge" + case mlC6I32Xlarge = "ml.c6i.32xlarge" + case mlC6I4Xlarge = "ml.c6i.4xlarge" + case mlC6I8Xlarge = "ml.c6i.8xlarge" + case mlC6ILarge = "ml.c6i.large" + case mlC6IXlarge = "ml.c6i.xlarge" + case mlC7I12Xlarge = "ml.c7i.12xlarge" + case mlC7I16Xlarge = "ml.c7i.16xlarge" + case mlC7I24Xlarge = "ml.c7i.24xlarge" + case mlC7I2Xlarge = "ml.c7i.2xlarge" + case mlC7I48Xlarge = "ml.c7i.48xlarge" + case mlC7I4Xlarge = "ml.c7i.4xlarge" + case mlC7I8Xlarge = "ml.c7i.8xlarge" + case mlC7ILarge = "ml.c7i.large" + case mlC7IXlarge = "ml.c7i.xlarge" case mlG4Dn12Xlarge = "ml.g4dn.12xlarge" case mlG4Dn16Xlarge = "ml.g4dn.16xlarge" case mlG4Dn2Xlarge = "ml.g4dn.2xlarge" case mlG4Dn4Xlarge = "ml.g4dn.4xlarge" case mlG4Dn8Xlarge = "ml.g4dn.8xlarge" case mlG4DnXlarge = "ml.g4dn.xlarge" + case mlG512Xlarge = "ml.g5.12xlarge" + case mlG516Xlarge = "ml.g5.16xlarge" + case mlG524Xlarge = "ml.g5.24xlarge" + case mlG52Xlarge = "ml.g5.2xlarge" + case mlG548Xlarge = "ml.g5.48xlarge" + case mlG54Xlarge = "ml.g5.4xlarge" + case mlG58Xlarge = "ml.g5.8xlarge" + case mlG5Xlarge = "ml.g5.xlarge" case mlM410Xlarge = "ml.m4.10xlarge" case mlM416Xlarge = "ml.m4.16xlarge" case mlM42Xlarge = "ml.m4.2xlarge" @@ -2662,12 +2693,48 @@ extension SageMaker { case mlM54Xlarge = "ml.m5.4xlarge" case mlM5Large = "ml.m5.large" case mlM5Xlarge = "ml.m5.xlarge" + case mlM6I12Xlarge = "ml.m6i.12xlarge" + case mlM6I16Xlarge = "ml.m6i.16xlarge" + case mlM6I24Xlarge = "ml.m6i.24xlarge" + case mlM6I2Xlarge = "ml.m6i.2xlarge" + case mlM6I32Xlarge = "ml.m6i.32xlarge" + case mlM6I4Xlarge = "ml.m6i.4xlarge" + case mlM6I8Xlarge = "ml.m6i.8xlarge" + case mlM6ILarge = "ml.m6i.large" + case mlM6IXlarge = "ml.m6i.xlarge" + case mlM7I12Xlarge = "ml.m7i.12xlarge" + case mlM7I16Xlarge = "ml.m7i.16xlarge" + case mlM7I24Xlarge = "ml.m7i.24xlarge" + case mlM7I2Xlarge = "ml.m7i.2xlarge" + case mlM7I48Xlarge = "ml.m7i.48xlarge" + case mlM7I4Xlarge = "ml.m7i.4xlarge" + case mlM7I8Xlarge = "ml.m7i.8xlarge" + case mlM7ILarge = "ml.m7i.large" + case mlM7IXlarge = "ml.m7i.xlarge" case mlP216Xlarge = "ml.p2.16xlarge" case mlP28Xlarge = "ml.p2.8xlarge" case mlP2Xlarge = "ml.p2.xlarge" case mlP316Xlarge = "ml.p3.16xlarge" case mlP32Xlarge = "ml.p3.2xlarge" case mlP38Xlarge = "ml.p3.8xlarge" + case mlR6I12Xlarge = "ml.r6i.12xlarge" + case mlR6I16Xlarge = "ml.r6i.16xlarge" + case mlR6I24Xlarge = "ml.r6i.24xlarge" + case mlR6I2Xlarge = "ml.r6i.2xlarge" + case mlR6I32Xlarge = "ml.r6i.32xlarge" + case mlR6I4Xlarge = "ml.r6i.4xlarge" + case mlR6I8Xlarge = "ml.r6i.8xlarge" + case mlR6ILarge = "ml.r6i.large" + case mlR6IXlarge = "ml.r6i.xlarge" + case mlR7I12Xlarge = "ml.r7i.12xlarge" + case mlR7I16Xlarge = "ml.r7i.16xlarge" + case mlR7I24Xlarge = "ml.r7i.24xlarge" + case mlR7I2Xlarge = "ml.r7i.2xlarge" + case mlR7I48Xlarge = "ml.r7i.48xlarge" + case mlR7I4Xlarge = "ml.r7i.4xlarge" + case mlR7I8Xlarge = "ml.r7i.8xlarge" + case mlR7ILarge = "ml.r7i.large" + case mlR7IXlarge = "ml.r7i.xlarge" public var description: String { return self.rawValue } } @@ -5443,9 +5510,9 @@ extension SageMaker { } public struct ClusterLifeCycleConfig: AWSEncodableShape & AWSDecodableShape { - /// The directory of the LifeCycle script under SourceS3Uri. This LifeCycle script runs during cluster creation. + /// The file name of the entrypoint script of lifecycle scripts under SourceS3Uri. This entrypoint script runs during cluster creation. public let onCreate: String? - /// An Amazon S3 bucket path where your LifeCycle scripts are stored. + /// An Amazon S3 bucket path where your lifecycle scripts are stored. Make sure that the S3 bucket path starts with s3://sagemaker-. The IAM role for SageMaker HyperPod has the managed AmazonSageMakerClusterInstanceRolePolicy attached, which allows access to S3 buckets with the specific prefix sagemaker-. public let sourceS3Uri: String? public init(onCreate: String? = nil, sourceS3Uri: String? = nil) { @@ -7388,13 +7455,13 @@ extension SageMaker { public let eventTimeFeatureName: String? /// A list of Feature names and types. Name and Type is compulsory per Feature. Valid feature FeatureTypes are Integral, Fractional and String. FeatureNames cannot be any of the following: is_deleted, write_time, api_invocation_time You can create up to 2,500 FeatureDefinitions per FeatureGroup. public let featureDefinitions: [FeatureDefinition]? - /// The name of the FeatureGroup. The name must be unique within an Amazon Web Services Region in an Amazon Web Services account. The name: Must start and end with an alphanumeric character. Can only include alphanumeric characters, underscores, and hyphens. Spaces are not allowed. + /// The name of the FeatureGroup. The name must be unique within an Amazon Web Services Region in an Amazon Web Services account. The name: Must start with an alphanumeric character. Can only include alphanumeric characters, underscores, and hyphens. Spaces are not allowed. public let featureGroupName: String? /// Use this to configure an OfflineFeatureStore. This parameter allows you to specify: The Amazon Simple Storage Service (Amazon S3) location of an OfflineStore. A configuration for an Amazon Web Services Glue or Amazon Web Services Hive data catalog. An KMS encryption key to encrypt the Amazon S3 location used for OfflineStore. If KMS encryption key is not specified, by default we encrypt all data at rest using Amazon Web Services KMS key. By defining your bucket-level key for SSE, you can reduce Amazon Web Services KMS requests costs by up to 99 percent. Format for the offline store table. Supported formats are Glue (Default) and Apache Iceberg. To learn more about this parameter, see OfflineStoreConfig. public let offlineStoreConfig: OfflineStoreConfig? /// You can turn the OnlineStore on or off by specifying True for the EnableOnlineStore flag in OnlineStoreConfig. You can also include an Amazon Web Services KMS key ID (KMSKeyId) for at-rest encryption of the OnlineStore. The default value is False. public let onlineStoreConfig: OnlineStoreConfig? - /// The name of the Feature whose value uniquely identifies a Record defined in the FeatureStore. Only the latest record per identifier value will be stored in the OnlineStore. RecordIdentifierFeatureName must be one of feature definitions' names. You use the RecordIdentifierFeatureName to access data in a FeatureStore. This name: Must start and end with an alphanumeric character. Can only contains alphanumeric characters, hyphens, underscores. Spaces are not allowed. + /// The name of the Feature whose value uniquely identifies a Record defined in the FeatureStore. Only the latest record per identifier value will be stored in the OnlineStore. RecordIdentifierFeatureName must be one of feature definitions' names. You use the RecordIdentifierFeatureName to access data in a FeatureStore. This name: Must start with an alphanumeric character. Can only contains alphanumeric characters, hyphens, underscores. Spaces are not allowed. public let recordIdentifierFeatureName: String? /// The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the OfflineStore if an OfflineStoreConfig is provided. public let roleArn: String? @@ -9475,6 +9542,8 @@ extension SageMaker { public let retryStrategy: RetryStrategy? /// The Amazon Resource Name (ARN) of an IAM role that SageMaker can assume to perform tasks on your behalf. During model training, 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 SageMaker Roles. To be able to pass this role to SageMaker, the caller of this API must have the iam:PassRole permission. public let roleArn: String? + /// Contains information about attribute-based access control (ABAC) for the training job. + public let sessionChainingConfig: SessionChainingConfig? /// Specifies a limit to how long a model training job can run. It also specifies how long a managed Spot training job has to complete. When the job reaches the time limit, SageMaker ends the training job. Use this API to cap model training costs. To stop a job, SageMaker sends the algorithm the SIGTERM signal, which delays job termination for 120 seconds. Algorithms can use this 120-second window to save the model artifacts, so the results of training are not lost. public let stoppingCondition: StoppingCondition? /// An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see Tagging Amazon Web Services Resources. @@ -9485,7 +9554,7 @@ extension SageMaker { /// A VpcConfig object that specifies the VPC that you want your training job to connect to. Control access to and from your training container by configuring the VPC. For more information, see Protect Training Jobs by Using an Amazon Virtual Private Cloud. public let vpcConfig: VpcConfig? - public init(algorithmSpecification: AlgorithmSpecification? = nil, checkpointConfig: CheckpointConfig? = nil, debugHookConfig: DebugHookConfig? = nil, debugRuleConfigurations: [DebugRuleConfiguration]? = nil, enableInterContainerTrafficEncryption: Bool? = nil, enableManagedSpotTraining: Bool? = nil, enableNetworkIsolation: Bool? = nil, environment: [String: String]? = nil, experimentConfig: ExperimentConfig? = nil, hyperParameters: [String: String]? = nil, infraCheckConfig: InfraCheckConfig? = nil, inputDataConfig: [Channel]? = nil, outputDataConfig: OutputDataConfig? = nil, profilerConfig: ProfilerConfig? = nil, profilerRuleConfigurations: [ProfilerRuleConfiguration]? = nil, remoteDebugConfig: RemoteDebugConfig? = nil, resourceConfig: ResourceConfig? = nil, retryStrategy: RetryStrategy? = nil, roleArn: String? = nil, stoppingCondition: StoppingCondition? = nil, tags: [Tag]? = nil, tensorBoardOutputConfig: TensorBoardOutputConfig? = nil, trainingJobName: String? = nil, vpcConfig: VpcConfig? = nil) { + public init(algorithmSpecification: AlgorithmSpecification? = nil, checkpointConfig: CheckpointConfig? = nil, debugHookConfig: DebugHookConfig? = nil, debugRuleConfigurations: [DebugRuleConfiguration]? = nil, enableInterContainerTrafficEncryption: Bool? = nil, enableManagedSpotTraining: Bool? = nil, enableNetworkIsolation: Bool? = nil, environment: [String: String]? = nil, experimentConfig: ExperimentConfig? = nil, hyperParameters: [String: String]? = nil, infraCheckConfig: InfraCheckConfig? = nil, inputDataConfig: [Channel]? = nil, outputDataConfig: OutputDataConfig? = nil, profilerConfig: ProfilerConfig? = nil, profilerRuleConfigurations: [ProfilerRuleConfiguration]? = nil, remoteDebugConfig: RemoteDebugConfig? = nil, resourceConfig: ResourceConfig? = nil, retryStrategy: RetryStrategy? = nil, roleArn: String? = nil, sessionChainingConfig: SessionChainingConfig? = nil, stoppingCondition: StoppingCondition? = nil, tags: [Tag]? = nil, tensorBoardOutputConfig: TensorBoardOutputConfig? = nil, trainingJobName: String? = nil, vpcConfig: VpcConfig? = nil) { self.algorithmSpecification = algorithmSpecification self.checkpointConfig = checkpointConfig self.debugHookConfig = debugHookConfig @@ -9505,6 +9574,7 @@ extension SageMaker { self.resourceConfig = resourceConfig self.retryStrategy = retryStrategy self.roleArn = roleArn + self.sessionChainingConfig = sessionChainingConfig self.stoppingCondition = stoppingCondition self.tags = tags self.tensorBoardOutputConfig = tensorBoardOutputConfig @@ -9583,6 +9653,7 @@ extension SageMaker { case resourceConfig = "ResourceConfig" case retryStrategy = "RetryStrategy" case roleArn = "RoleArn" + case sessionChainingConfig = "SessionChainingConfig" case stoppingCondition = "StoppingCondition" case tags = "Tags" case tensorBoardOutputConfig = "TensorBoardOutputConfig" @@ -10553,9 +10624,9 @@ extension SageMaker { } public struct DefaultEbsStorageSettings: AWSEncodableShape & AWSDecodableShape { - /// The default size of the EBS storage volume for a private space. + /// The default size of the EBS storage volume for a space. public let defaultEbsVolumeSizeInGb: Int? - /// The maximum size of the EBS storage volume for a private space. + /// The maximum size of the EBS storage volume for a space. public let maximumEbsVolumeSizeInGb: Int? public init(defaultEbsVolumeSizeInGb: Int? = nil, maximumEbsVolumeSizeInGb: Int? = nil) { @@ -10577,24 +10648,39 @@ extension SageMaker { } public struct DefaultSpaceSettings: AWSEncodableShape & AWSDecodableShape { + /// The settings for assigning a custom file system to a domain. Permitted users can access this file system in Amazon SageMaker Studio. + public let customFileSystemConfigs: [CustomFileSystemConfig]? + public let customPosixUserConfig: CustomPosixUserConfig? /// The ARN of the execution role for the space. public let executionRole: String? + public let jupyterLabAppSettings: JupyterLabAppSettings? public let jupyterServerAppSettings: JupyterServerAppSettings? public let kernelGatewayAppSettings: KernelGatewayAppSettings? /// The security group IDs for the Amazon VPC that the space uses for communication. public let securityGroups: [String]? + public let spaceStorageSettings: DefaultSpaceStorageSettings? - public init(executionRole: String? = nil, jupyterServerAppSettings: JupyterServerAppSettings? = nil, kernelGatewayAppSettings: KernelGatewayAppSettings? = nil, securityGroups: [String]? = nil) { + public init(customFileSystemConfigs: [CustomFileSystemConfig]? = nil, customPosixUserConfig: CustomPosixUserConfig? = nil, executionRole: String? = nil, jupyterLabAppSettings: JupyterLabAppSettings? = nil, jupyterServerAppSettings: JupyterServerAppSettings? = nil, kernelGatewayAppSettings: KernelGatewayAppSettings? = nil, securityGroups: [String]? = nil, spaceStorageSettings: DefaultSpaceStorageSettings? = nil) { + self.customFileSystemConfigs = customFileSystemConfigs + self.customPosixUserConfig = customPosixUserConfig self.executionRole = executionRole + self.jupyterLabAppSettings = jupyterLabAppSettings self.jupyterServerAppSettings = jupyterServerAppSettings self.kernelGatewayAppSettings = kernelGatewayAppSettings self.securityGroups = securityGroups + self.spaceStorageSettings = spaceStorageSettings } public func validate(name: String) throws { + try self.customFileSystemConfigs?.forEach { + try $0.validate(name: "\(name).customFileSystemConfigs[]") + } + try self.validate(self.customFileSystemConfigs, name: "customFileSystemConfigs", parent: name, max: 2) + try self.customPosixUserConfig?.validate(name: "\(name).customPosixUserConfig") try self.validate(self.executionRole, name: "executionRole", parent: name, max: 2048) try self.validate(self.executionRole, name: "executionRole", parent: name, min: 20) try self.validate(self.executionRole, name: "executionRole", parent: name, pattern: "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$") + try self.jupyterLabAppSettings?.validate(name: "\(name).jupyterLabAppSettings") try self.jupyterServerAppSettings?.validate(name: "\(name).jupyterServerAppSettings") try self.kernelGatewayAppSettings?.validate(name: "\(name).kernelGatewayAppSettings") try self.securityGroups?.forEach { @@ -10602,18 +10688,23 @@ extension SageMaker { try validate($0, name: "securityGroups[]", parent: name, pattern: "^[-0-9a-zA-Z]+$") } try self.validate(self.securityGroups, name: "securityGroups", parent: name, max: 5) + try self.spaceStorageSettings?.validate(name: "\(name).spaceStorageSettings") } private enum CodingKeys: String, CodingKey { + case customFileSystemConfigs = "CustomFileSystemConfigs" + case customPosixUserConfig = "CustomPosixUserConfig" case executionRole = "ExecutionRole" + case jupyterLabAppSettings = "JupyterLabAppSettings" case jupyterServerAppSettings = "JupyterServerAppSettings" case kernelGatewayAppSettings = "KernelGatewayAppSettings" case securityGroups = "SecurityGroups" + case spaceStorageSettings = "SpaceStorageSettings" } } public struct DefaultSpaceStorageSettings: AWSEncodableShape & AWSDecodableShape { - /// The default EBS storage settings for a private space. + /// The default EBS storage settings for a space. public let defaultEbsStorageSettings: DefaultEbsStorageSettings? public init(defaultEbsStorageSettings: DefaultEbsStorageSettings? = nil) { @@ -17406,7 +17497,7 @@ extension SageMaker { } public struct EbsStorageSettings: AWSEncodableShape & AWSDecodableShape { - /// The size of an EBS storage volume for a private space. + /// The size of an EBS storage volume for a space. public let ebsVolumeSizeInGb: Int? public init(ebsVolumeSizeInGb: Int? = nil) { @@ -18260,7 +18351,7 @@ extension SageMaker { public let collectionConfig: CollectionConfig? /// A grouping of elements where each element within the collection must have the same feature type (String, Integral, or Fractional). List: An ordered collection of elements. Set: An unordered collection of unique elements. Vector: A specialized list that represents a fixed-size array of elements. The vector dimension is determined by you. Must have elements with fractional feature types. public let collectionType: CollectionType? - /// The name of a feature. The type must be a string. FeatureName cannot be any of the following: is_deleted, write_time, api_invocation_time. The name: Must start and end with an alphanumeric character. Can only include alphanumeric characters, underscores, and hyphens. Spaces are not allowed. + /// The name of a feature. The type must be a string. FeatureName cannot be any of the following: is_deleted, write_time, api_invocation_time. The name: Must start with an alphanumeric character. Can only include alphanumeric characters, underscores, and hyphens. Spaces are not allowed. public let featureName: String? /// The value type of a feature. Valid values are Integral, Fractional, or String. public let featureType: FeatureType? @@ -29647,7 +29738,7 @@ extension SageMaker { } public struct OwnershipSettings: AWSEncodableShape & AWSDecodableShape { - /// The user profile who is the owner of the private space. + /// The user profile who is the owner of the space. public let ownerUserProfileName: String? public init(ownerUserProfileName: String? = nil) { @@ -29665,7 +29756,7 @@ extension SageMaker { } public struct OwnershipSettingsSummary: AWSDecodableShape { - /// The user profile who is the owner of the private space. + /// The user profile who is the owner of the space. public let ownerUserProfileName: String? public init(ownerUserProfileName: String? = nil) { @@ -33131,6 +33222,19 @@ extension SageMaker { } } + public struct SessionChainingConfig: AWSEncodableShape { + /// Set to True to allow SageMaker to extract session tags from a training job creation role and reuse these tags when assuming the training job execution role. + public let enableSessionTagChaining: Bool? + + public init(enableSessionTagChaining: Bool? = nil) { + self.enableSessionTagChaining = enableSessionTagChaining + } + + private enum CodingKeys: String, CodingKey { + case enableSessionTagChaining = "EnableSessionTagChaining" + } + } + public struct ShadowModeConfig: AWSEncodableShape & AWSDecodableShape { /// List of shadow variant configurations. public let shadowModelVariants: [ShadowModelVariantConfig]? @@ -33390,7 +33494,7 @@ extension SageMaker { public let jupyterLabAppSettings: SpaceJupyterLabAppSettings? public let jupyterServerAppSettings: JupyterServerAppSettings? public let kernelGatewayAppSettings: KernelGatewayAppSettings? - /// The storage settings for a private space. + /// The storage settings for a space. public let spaceStorageSettings: SpaceStorageSettings? public init(appType: AppType? = nil, codeEditorAppSettings: SpaceCodeEditorAppSettings? = nil, customFileSystems: [CustomFileSystem]? = nil, jupyterLabAppSettings: SpaceJupyterLabAppSettings? = nil, jupyterServerAppSettings: JupyterServerAppSettings? = nil, kernelGatewayAppSettings: KernelGatewayAppSettings? = nil, spaceStorageSettings: SpaceStorageSettings? = nil) { @@ -33429,7 +33533,7 @@ extension SageMaker { public struct SpaceSettingsSummary: AWSDecodableShape { /// The type of app created within the space. public let appType: AppType? - /// The storage settings for a private space. + /// The storage settings for a space. public let spaceStorageSettings: SpaceStorageSettings? public init(appType: AppType? = nil, spaceStorageSettings: SpaceStorageSettings? = nil) { @@ -33470,7 +33574,7 @@ extension SageMaker { } public struct SpaceStorageSettings: AWSEncodableShape & AWSDecodableShape { - /// A collection of EBS storage settings for a private space. + /// A collection of EBS storage settings for a space. public let ebsStorageSettings: EbsStorageSettings? public init(ebsStorageSettings: EbsStorageSettings? = nil) { @@ -37972,7 +38076,7 @@ extension SageMaker { public let securityGroups: [String]? /// Specifies options for sharing Amazon SageMaker Studio notebooks. public let sharingSettings: SharingSettings? - /// The storage settings for a private space. + /// The storage settings for a space. public let spaceStorageSettings: DefaultSpaceStorageSettings? /// Whether the user can access Studio. If this value is set to DISABLED, the user cannot access Studio, even if that is the default experience for the domain. public let studioWebPortal: StudioWebPortal? diff --git a/Sources/Soto/Services/SecurityHub/SecurityHub_api.swift b/Sources/Soto/Services/SecurityHub/SecurityHub_api.swift index bc94224105..50fddf45d9 100644 --- a/Sources/Soto/Services/SecurityHub/SecurityHub_api.swift +++ b/Sources/Soto/Services/SecurityHub/SecurityHub_api.swift @@ -1040,7 +1040,7 @@ public struct SecurityHub: AWSService { ) } - /// UpdateFindings is deprecated. Instead of UpdateFindings, use BatchUpdateFindings. Updates the Note and RecordState of the Security Hub-aggregated findings that the filter attributes specify. Any member account that can view the finding also sees the update to the finding. + /// UpdateFindings is a deprecated operation. Instead of UpdateFindings, use the BatchUpdateFindings operation. Updates the Note and RecordState of the Security Hub-aggregated findings that the filter attributes specify. Any member account that can view the finding also sees the update to the finding. Finding updates made with UpdateFindings might not be persisted if the same finding is later updated by the finding provider through the BatchImportFindings operation. @Sendable public func updateFindings(_ input: UpdateFindingsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateFindingsResponse { return try await self.client.execute( diff --git a/Sources/Soto/Services/SecurityHub/SecurityHub_shapes.swift b/Sources/Soto/Services/SecurityHub/SecurityHub_shapes.swift index 60181f98ed..2c5c3ccf4d 100644 --- a/Sources/Soto/Services/SecurityHub/SecurityHub_shapes.swift +++ b/Sources/Soto/Services/SecurityHub/SecurityHub_shapes.swift @@ -21208,6 +21208,8 @@ extension SecurityHub { try self.accountDetails?.forEach { try $0.validate(name: "\(name).accountDetails[]") } + try self.validate(self.accountDetails, name: "accountDetails", parent: name, max: 50) + try self.validate(self.accountDetails, name: "accountDetails", parent: name, min: 1) } private enum CodingKeys: String, CodingKey { @@ -26509,7 +26511,7 @@ extension SecurityHub { } public struct StartConfigurationPolicyAssociationRequest: AWSEncodableShape { - /// The Amazon Resource Name (ARN) or universally unique identifier (UUID) of the configuration policy. + /// The Amazon Resource Name (ARN) of a configuration policy, the universally unique identifier (UUID) of a configuration policy, or a value of SELF_MANAGED_SECURITY_HUB for a self-managed configuration. public let configurationPolicyIdentifier: String? /// The identifier of the target account, organizational unit, or the root to associate with the specified configuration. public let target: Target? @@ -26569,7 +26571,7 @@ extension SecurityHub { } public struct StartConfigurationPolicyDisassociationRequest: AWSEncodableShape { - /// The Amazon Resource Name (ARN) or universally unique identifier (UUID) of the configuration policy. + /// The Amazon Resource Name (ARN) of a configuration policy, the universally unique identifier (UUID) of a configuration policy, or a value of SELF_MANAGED_SECURITY_HUB for a self-managed configuration. public let configurationPolicyIdentifier: String? /// The identifier of the target account, organizational unit, or the root to disassociate from the specified configuration. public let target: Target? diff --git a/Sources/Soto/Services/ServerlessApplicationRepository/ServerlessApplicationRepository_api.swift b/Sources/Soto/Services/ServerlessApplicationRepository/ServerlessApplicationRepository_api.swift index e5d35c2b22..b9b67659df 100644 --- a/Sources/Soto/Services/ServerlessApplicationRepository/ServerlessApplicationRepository_api.swift +++ b/Sources/Soto/Services/ServerlessApplicationRepository/ServerlessApplicationRepository_api.swift @@ -74,8 +74,12 @@ public struct ServerlessApplicationRepository: AWSService { /// FIPS and dualstack endpoints static var variantEndpoints: [EndpointVariantType: AWSServiceConfig.EndpointVariant] {[ [.fips]: .init(endpoints: [ + "us-east-1": "serverlessrepo-fips.us-east-1.amazonaws.com", + "us-east-2": "serverlessrepo-fips.us-east-2.amazonaws.com", "us-gov-east-1": "serverlessrepo.us-gov-east-1.amazonaws.com", - "us-gov-west-1": "serverlessrepo.us-gov-west-1.amazonaws.com" + "us-gov-west-1": "serverlessrepo.us-gov-west-1.amazonaws.com", + "us-west-1": "serverlessrepo-fips.us-west-1.amazonaws.com", + "us-west-2": "serverlessrepo-fips.us-west-2.amazonaws.com" ]) ]} diff --git a/Sources/Soto/Services/ServiceDiscovery/ServiceDiscovery_api.swift b/Sources/Soto/Services/ServiceDiscovery/ServiceDiscovery_api.swift index 0df218d191..1a3e7d4095 100644 --- a/Sources/Soto/Services/ServiceDiscovery/ServiceDiscovery_api.swift +++ b/Sources/Soto/Services/ServiceDiscovery/ServiceDiscovery_api.swift @@ -356,7 +356,7 @@ public struct ServiceDiscovery: AWSService { ) } - /// Lists summary information for all the services that are associated with one or more specified namespaces. + /// Lists summary information for all the services that are associated with one or more namespaces. @Sendable public func listServices(_ input: ListServicesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListServicesResponse { return try await self.client.execute( @@ -576,7 +576,7 @@ extension ServiceDiscovery { ) } - /// Lists summary information for all the services that are associated with one or more specified namespaces. + /// Lists summary information for all the services that are associated with one or more namespaces. /// Return PaginatorSequence for operation. /// /// - Parameters: diff --git a/Sources/Soto/Services/ServiceDiscovery/ServiceDiscovery_shapes.swift b/Sources/Soto/Services/ServiceDiscovery/ServiceDiscovery_shapes.swift index 7d4db7c927..089a69fdfb 100644 --- a/Sources/Soto/Services/ServiceDiscovery/ServiceDiscovery_shapes.swift +++ b/Sources/Soto/Services/ServiceDiscovery/ServiceDiscovery_shapes.swift @@ -468,7 +468,7 @@ extension ServiceDiscovery { public let healthStatus: HealthStatusFilter? /// The maximum number of instances that you want Cloud Map to return in the response to a DiscoverInstances request. If you don't specify a value for MaxResults, Cloud Map returns up to 100 instances. public let maxResults: Int? - /// The HttpName name of the namespace. It's found in the HttpProperties member of the Properties member of the namespace. + /// The HttpName name of the namespace. It's found in the HttpProperties member of the Properties member of the namespace. In most cases, Name and HttpName match. However, if you reuse Name for namespace creation, a generated hash is added to HttpName to distinguish the two. public let namespaceName: String /// Opportunistic filters to scope the results based on custom attributes. If there are instances that match both the filters specified in both the QueryParameters parameter and this parameter, all of these instances are returned. Otherwise, the filters are ignored, and only instances that match the filters that are specified in the QueryParameters parameter are returned. public let optionalParameters: [String: String]? @@ -1600,7 +1600,7 @@ extension ServiceDiscovery { } public struct RegisterInstanceRequest: AWSEncodableShape { - /// A string map that contains the following information for the service that you specify in ServiceId: The attributes that apply to the records that are defined in the service. For each attribute, the applicable value. Do not include sensitive information in the attributes if the namespace is discoverable by public DNS queries. Supported attribute keys include the following: AWS_ALIAS_DNS_NAME If you want Cloud Map to create an Amazon Route 53 alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that's associated with the load balancer. For information about how to get the DNS name, see "DNSName" in the topic AliasTarget in the Route 53 API Reference. Note the following: The configuration for the service that's specified by ServiceId must include settings for an A record, an AAAA record, or both. In the service that's specified by ServiceId, the value of RoutingPolicy must be WEIGHTED. If the service that's specified by ServiceId includes HealthCheckConfig settings, Cloud Map will create the Route 53 health check, but it doesn't associate the health check with the alias record. Cloud Map currently doesn't support creating alias records that route traffic to Amazon Web Services resources other than Elastic Load Balancing load balancers. If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for any of the AWS_INSTANCE attributes. AWS_EC2_INSTANCE_ID HTTP namespaces only. The Amazon EC2 instance ID for the instance. If the AWS_EC2_INSTANCE_ID attribute is specified, then the only other attribute that can be specified is AWS_INIT_HEALTH_STATUS. When the AWS_EC2_INSTANCE_ID attribute is specified, then the AWS_INSTANCE_IPV4 attribute will be filled out with the primary private IPv4 address. AWS_INIT_HEALTH_STATUS If the service configuration includes HealthCheckCustomConfig, you can optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, HEALTHY or UNHEALTHY. If you don't specify a value for AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY. AWS_INSTANCE_CNAME If the service configuration includes a CNAME record, the domain name that you want Route 53 to return in response to DNS queries (for example, example.com). This value is required if the service specified by ServiceId includes settings for an CNAME record. AWS_INSTANCE_IPV4 If the service configuration includes an A record, the IPv4 address that you want Route 53 to return in response to DNS queries (for example, 192.0.2.44). This value is required if the service specified by ServiceId includes settings for an A record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both. AWS_INSTANCE_IPV6 If the service configuration includes an AAAA record, the IPv6 address that you want Route 53 to return in response to DNS queries (for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345). This value is required if the service specified by ServiceId includes settings for an AAAA record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both. AWS_INSTANCE_PORT If the service includes an SRV record, the value that you want Route 53 to return for the port. If the service includes HealthCheckConfig, the port on the endpoint that you want Route 53 to send requests to. This value is required if you specified settings for an SRV record or a Route 53 health check when you created the service. Custom attributes You can add up to 30 custom attributes. For each key-value pair, the maximum length of the attribute name is 255 characters, and the maximum length of the attribute value is 1,024 characters. The total size of all provided attributes (sum of all keys and values) must not exceed 5,000 characters. + /// A string map that contains the following information for the service that you specify in ServiceId: The attributes that apply to the records that are defined in the service. For each attribute, the applicable value. Do not include sensitive information in the attributes if the namespace is discoverable by public DNS queries. The following are the supported attribute keys. AWS_ALIAS_DNS_NAME If you want Cloud Map to create an Amazon Route 53 alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that's associated with the load balancer. For information about how to get the DNS name, see "DNSName" in the topic AliasTarget in the Route 53 API Reference. Note the following: The configuration for the service that's specified by ServiceId must include settings for an A record, an AAAA record, or both. In the service that's specified by ServiceId, the value of RoutingPolicy must be WEIGHTED. If the service that's specified by ServiceId includes HealthCheckConfig settings, Cloud Map will create the Route 53 health check, but it doesn't associate the health check with the alias record. Cloud Map currently doesn't support creating alias records that route traffic to Amazon Web Services resources other than Elastic Load Balancing load balancers. If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for any of the AWS_INSTANCE attributes. The AWS_ALIAS_DNS_NAME is not supported in the GovCloud (US) Regions. AWS_EC2_INSTANCE_ID HTTP namespaces only. The Amazon EC2 instance ID for the instance. If the AWS_EC2_INSTANCE_ID attribute is specified, then the only other attribute that can be specified is AWS_INIT_HEALTH_STATUS. When the AWS_EC2_INSTANCE_ID attribute is specified, then the AWS_INSTANCE_IPV4 attribute will be filled out with the primary private IPv4 address. AWS_INIT_HEALTH_STATUS If the service configuration includes HealthCheckCustomConfig, you can optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, HEALTHY or UNHEALTHY. If you don't specify a value for AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY. AWS_INSTANCE_CNAME If the service configuration includes a CNAME record, the domain name that you want Route 53 to return in response to DNS queries (for example, example.com). This value is required if the service specified by ServiceId includes settings for an CNAME record. AWS_INSTANCE_IPV4 If the service configuration includes an A record, the IPv4 address that you want Route 53 to return in response to DNS queries (for example, 192.0.2.44). This value is required if the service specified by ServiceId includes settings for an A record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both. AWS_INSTANCE_IPV6 If the service configuration includes an AAAA record, the IPv6 address that you want Route 53 to return in response to DNS queries (for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345). This value is required if the service specified by ServiceId includes settings for an AAAA record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both. AWS_INSTANCE_PORT If the service includes an SRV record, the value that you want Route 53 to return for the port. If the service includes HealthCheckConfig, the port on the endpoint that you want Route 53 to send requests to. This value is required if you specified settings for an SRV record or a Route 53 health check when you created the service. Custom attributes You can add up to 30 custom attributes. For each key-value pair, the maximum length of the attribute name is 255 characters, and the maximum length of the attribute value is 1,024 characters. The total size of all provided attributes (sum of all keys and values) must not exceed 5,000 characters. public let attributes: [String: String] /// A unique string that identifies the request and that allows failed RegisterInstance requests to be retried without the risk of executing the operation twice. You must use a unique CreatorRequestId string every time you submit a RegisterInstance request if you're registering additional instances for the same namespace and service. CreatorRequestId can be any unique string (for example, a date/time stamp). public let creatorRequestId: String? diff --git a/Sources/Soto/Services/Signer/Signer_api.swift b/Sources/Soto/Services/Signer/Signer_api.swift index 345e329120..bf14e816fc 100644 --- a/Sources/Soto/Services/Signer/Signer_api.swift +++ b/Sources/Soto/Services/Signer/Signer_api.swift @@ -390,6 +390,8 @@ public struct Signer: AWSService { /// You specify the name of the source and destination buckets when calling the /// StartSigningJob operation. /// + /// You must ensure the S3 buckets are from the same Region as the signing profile. Cross-Region signing isn't supported. + /// /// You must also specify a request token that identifies your request to Signer. /// /// You can call the DescribeSigningJob and the ListSigningJobs actions after you call diff --git a/Sources/Soto/Services/Signer/Signer_shapes.swift b/Sources/Soto/Services/Signer/Signer_shapes.swift index 6f913ec70c..b205a88f83 100644 --- a/Sources/Soto/Services/Signer/Signer_shapes.swift +++ b/Sources/Soto/Services/Signer/Signer_shapes.swift @@ -74,7 +74,9 @@ extension Signer { // MARK: Shapes public struct AddProfilePermissionRequest: AWSEncodableShape { - /// The AWS Signer action permitted as part of cross-account permissions. + /// For cross-account signing. Grant a designated account permission to perform one or more of the following actions. Each action is associated with a specific API's operations. For more information about cross-account signing, see Using cross-account signing with signing profiles in the AWS Signer Developer Guide. + /// You can designate the following actions to an account. + /// signer:StartSigningJob. This action isn't supported for container image workflows. For details, see StartSigningJob. signer:SignPayload. This action isn't supported for AWS Lambda workflows. For details, see SignPayload signer:GetSigningProfile. For details, see GetSigningProfile. signer:RevokeSignature. For details, see RevokeSignature. public let action: String /// The AWS principal receiving cross-account permissions. This may be an IAM role or another /// AWS account ID. diff --git a/Sources/Soto/Services/SupplyChain/SupplyChain_api.swift b/Sources/Soto/Services/SupplyChain/SupplyChain_api.swift index dc36a88a27..b450f48375 100644 --- a/Sources/Soto/Services/SupplyChain/SupplyChain_api.swift +++ b/Sources/Soto/Services/SupplyChain/SupplyChain_api.swift @@ -98,6 +98,19 @@ public struct SupplyChain: AWSService { logger: logger ) } + + /// Send transactional data events with real-time data for analysis or monitoring. + @Sendable + public func sendDataIntegrationEvent(_ input: SendDataIntegrationEventRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SendDataIntegrationEventResponse { + return try await self.client.execute( + operation: "SendDataIntegrationEvent", + path: "/api-data/data-integration/instance/{instanceId}/data-integration-events", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } } extension SupplyChain { diff --git a/Sources/Soto/Services/SupplyChain/SupplyChain_shapes.swift b/Sources/Soto/Services/SupplyChain/SupplyChain_shapes.swift index b5101df32a..d9c840d673 100644 --- a/Sources/Soto/Services/SupplyChain/SupplyChain_shapes.swift +++ b/Sources/Soto/Services/SupplyChain/SupplyChain_shapes.swift @@ -35,6 +35,25 @@ extension SupplyChain { public var description: String { return self.rawValue } } + public enum DataIntegrationEventType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case forecast = "scn.data.forecast" + case inboundOrder = "scn.data.inboundorder" + case inboundOrderLine = "scn.data.inboundorderline" + case inboundOrderLineSchedule = "scn.data.inboundorderlineschedule" + case inventoryLevel = "scn.data.inventorylevel" + case outboundOrderLine = "scn.data.outboundorderline" + case outboundShipment = "scn.data.outboundshipment" + case processHeader = "scn.data.processheader" + case processOperation = "scn.data.processoperation" + case processProduct = "scn.data.processproduct" + case reservation = "scn.data.reservation" + case shipment = "scn.data.shipment" + case shipmentStop = "scn.data.shipmentstop" + case shipmentStopOrder = "scn.data.shipmentstoporder" + case supplyPlan = "scn.data.supplyplan" + public var description: String { return self.rawValue } + } + // MARK: Shapes public struct BillOfMaterialsImportJob: AWSDecodableShape { @@ -159,6 +178,74 @@ extension SupplyChain { case job = "job" } } + + public struct SendDataIntegrationEventRequest: AWSEncodableShape { + /// The idempotent client token. + public let clientToken: String? + /// The data payload of the event. + public let data: String + /// Event identifier (for example, orderId for InboundOrder) used for data sharing or partitioning. + public let eventGroupId: String + /// The event timestamp (in epoch seconds). + public let eventTimestamp: Date? + /// The data event type. + public let eventType: DataIntegrationEventType + /// The AWS Supply Chain instance identifier. + public let instanceId: String + + public init(clientToken: String? = SendDataIntegrationEventRequest.idempotencyToken(), data: String, eventGroupId: String, eventTimestamp: Date? = nil, eventType: DataIntegrationEventType, instanceId: String) { + self.clientToken = clientToken + self.data = data + self.eventGroupId = eventGroupId + self.eventTimestamp = eventTimestamp + self.eventType = eventType + self.instanceId = instanceId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.clientToken, forKey: .clientToken) + try container.encode(self.data, forKey: .data) + try container.encode(self.eventGroupId, forKey: .eventGroupId) + try container.encodeIfPresent(self.eventTimestamp, forKey: .eventTimestamp) + try container.encode(self.eventType, forKey: .eventType) + request.encodePath(self.instanceId, key: "instanceId") + } + + public func validate(name: String) throws { + try self.validate(self.clientToken, name: "clientToken", parent: name, max: 126) + try self.validate(self.clientToken, name: "clientToken", parent: name, min: 33) + try self.validate(self.data, name: "data", parent: name, max: 1048576) + try self.validate(self.data, name: "data", parent: name, min: 1) + try self.validate(self.eventGroupId, name: "eventGroupId", parent: name, max: 255) + try self.validate(self.eventGroupId, name: "eventGroupId", parent: name, min: 1) + try self.validate(self.instanceId, name: "instanceId", parent: name, max: 36) + try self.validate(self.instanceId, name: "instanceId", parent: name, min: 36) + try self.validate(self.instanceId, name: "instanceId", parent: name, pattern: "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$") + } + + private enum CodingKeys: String, CodingKey { + case clientToken = "clientToken" + case data = "data" + case eventGroupId = "eventGroupId" + case eventTimestamp = "eventTimestamp" + case eventType = "eventType" + } + } + + public struct SendDataIntegrationEventResponse: AWSDecodableShape { + /// The unique event identifier. + public let eventId: String + + public init(eventId: String) { + self.eventId = eventId + } + + private enum CodingKeys: String, CodingKey { + case eventId = "eventId" + } + } } // MARK: - Errors diff --git a/Sources/Soto/Services/TimestreamQuery/TimestreamQuery_api.swift b/Sources/Soto/Services/TimestreamQuery/TimestreamQuery_api.swift index de13bd64b0..4817c095a3 100644 --- a/Sources/Soto/Services/TimestreamQuery/TimestreamQuery_api.swift +++ b/Sources/Soto/Services/TimestreamQuery/TimestreamQuery_api.swift @@ -123,6 +123,21 @@ public struct TimestreamQuery: AWSService { ) } + /// Describes the settings for your account that include the query pricing model and the configured maximum TCUs the service can use for your query workload. You're charged only for the duration of compute units used for your workloads. + @Sendable + public func describeAccountSettings(_ input: DescribeAccountSettingsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeAccountSettingsResponse { + return try await self.client.execute( + operation: "DescribeAccountSettings", + path: "/", + httpMethod: .POST, + serviceConfig: self.config + .with(middleware: EndpointDiscoveryMiddleware(storage: self.endpointStorage, discover: self.getEndpoint, required: true) + ), + input: input, + logger: logger + ) + } + /// DescribeEndpoints returns a list of available endpoints to make Timestream API calls against. This API is available through both Write and Query. Because the Timestream SDKs are designed to transparently work with the service’s architecture, including the management and mapping of the service endpoints, it is not recommended that you use this API unless: You are using VPC endpoints (Amazon Web Services PrivateLink) with Timestream Your application uses a programming language that does not yet have SDK support You require better control over the client-side implementation For detailed information on how and when to use and implement DescribeEndpoints, see The Endpoint Discovery Pattern. @Sendable public func describeEndpoints(_ input: DescribeEndpointsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeEndpointsResponse { @@ -256,6 +271,21 @@ public struct TimestreamQuery: AWSService { ) } + /// Transitions your account to use TCUs for query pricing and modifies the maximum query compute units that you've configured. If you reduce the value of MaxQueryTCU to a desired configuration, the new value can take up to 24 hours to be effective. After you've transitioned your account to use TCUs for query pricing, you can't transition to using bytes scanned for query pricing. + @Sendable + public func updateAccountSettings(_ input: UpdateAccountSettingsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateAccountSettingsResponse { + return try await self.client.execute( + operation: "UpdateAccountSettings", + path: "/", + httpMethod: .POST, + serviceConfig: self.config + .with(middleware: EndpointDiscoveryMiddleware(storage: self.endpointStorage, discover: self.getEndpoint, required: true) + ), + input: input, + logger: logger + ) + } + /// Update a scheduled query. @Sendable public func updateScheduledQuery(_ input: UpdateScheduledQueryRequest, logger: Logger = AWSClient.loggingDisabled) async throws { diff --git a/Sources/Soto/Services/TimestreamQuery/TimestreamQuery_shapes.swift b/Sources/Soto/Services/TimestreamQuery/TimestreamQuery_shapes.swift index 7a6e8eb08a..cd63b2aec6 100644 --- a/Sources/Soto/Services/TimestreamQuery/TimestreamQuery_shapes.swift +++ b/Sources/Soto/Services/TimestreamQuery/TimestreamQuery_shapes.swift @@ -40,6 +40,12 @@ extension TimestreamQuery { public var description: String { return self.rawValue } } + public enum QueryPricingModel: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case bytesScanned = "BYTES_SCANNED" + case computeUnits = "COMPUTE_UNITS" + public var description: String { return self.rawValue } + } + public enum S3EncryptionOption: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case sseKms = "SSE_KMS" case sseS3 = "SSE_S3" @@ -178,7 +184,7 @@ extension TimestreamQuery { try self.validate(self.kmsKeyId, name: "kmsKeyId", parent: name, min: 1) try self.validate(self.name, name: "name", parent: name, max: 64) try self.validate(self.name, name: "name", parent: name, min: 1) - try self.validate(self.name, name: "name", parent: name, pattern: "^[a-zA-Z0-9_.-]+$") + try self.validate(self.name, name: "name", parent: name, pattern: "^[a-zA-Z0-9|!\\-_*'\\(\\)]([a-zA-Z0-9]|[!\\-_*'\\(\\)\\/.])+$") try self.notificationConfiguration.validate(name: "\(name).notificationConfiguration") try self.validate(self.queryString, name: "queryString", parent: name, max: 262144) try self.validate(self.queryString, name: "queryString", parent: name, min: 1) @@ -266,6 +272,27 @@ extension TimestreamQuery { } } + public struct DescribeAccountSettingsRequest: AWSEncodableShape { + public init() {} + } + + public struct DescribeAccountSettingsResponse: AWSDecodableShape { + /// The maximum number of Timestream compute units (TCUs) the service will use at any point in time to serve your queries. + public let maxQueryTCU: Int? + /// The pricing model for queries in your account. + public let queryPricingModel: QueryPricingModel? + + public init(maxQueryTCU: Int? = nil, queryPricingModel: QueryPricingModel? = nil) { + self.maxQueryTCU = maxQueryTCU + self.queryPricingModel = queryPricingModel + } + + private enum CodingKeys: String, CodingKey { + case maxQueryTCU = "MaxQueryTCU" + case queryPricingModel = "QueryPricingModel" + } + } + public struct DescribeEndpointsRequest: AWSEncodableShape { public init() {} } @@ -409,6 +436,8 @@ extension TimestreamQuery { public struct ExecutionStats: AWSDecodableShape { /// Bytes metered for a single scheduled query run. public let bytesMetered: Int64? + /// Bytes scanned for a single scheduled query run. + public let cumulativeBytesScanned: Int64? /// Data writes metered for records ingested in a single scheduled query run. public let dataWrites: Int64? /// Total time, measured in milliseconds, that was needed for the scheduled query run to complete. @@ -418,8 +447,9 @@ extension TimestreamQuery { /// The number of records ingested for a single scheduled query run. public let recordsIngested: Int64? - public init(bytesMetered: Int64? = nil, dataWrites: Int64? = nil, executionTimeInMillis: Int64? = nil, queryResultRows: Int64? = nil, recordsIngested: Int64? = nil) { + public init(bytesMetered: Int64? = nil, cumulativeBytesScanned: Int64? = nil, dataWrites: Int64? = nil, executionTimeInMillis: Int64? = nil, queryResultRows: Int64? = nil, recordsIngested: Int64? = nil) { self.bytesMetered = bytesMetered + self.cumulativeBytesScanned = cumulativeBytesScanned self.dataWrites = dataWrites self.executionTimeInMillis = executionTimeInMillis self.queryResultRows = queryResultRows @@ -428,6 +458,7 @@ extension TimestreamQuery { private enum CodingKeys: String, CodingKey { case bytesMetered = "BytesMetered" + case cumulativeBytesScanned = "CumulativeBytesScanned" case dataWrites = "DataWrites" case executionTimeInMillis = "ExecutionTimeInMillis" case queryResultRows = "QueryResultRows" @@ -1245,6 +1276,40 @@ extension TimestreamQuery { public init() {} } + public struct UpdateAccountSettingsRequest: AWSEncodableShape { + /// The maximum number of compute units the service will use at any point in time to serve your queries. To run queries, you must set a minimum capacity of 4 TCU. You can set the maximum number of TCU in multiples of 4, for example, 4, 8, 16, 32, and so on. The maximum value supported for MaxQueryTCU is 1000. To request an increase to this soft limit, contact Amazon Web Services Support. For information about the default quota for maxQueryTCU, see Default quotas. + public let maxQueryTCU: Int? + /// The pricing model for queries in an account. + public let queryPricingModel: QueryPricingModel? + + public init(maxQueryTCU: Int? = nil, queryPricingModel: QueryPricingModel? = nil) { + self.maxQueryTCU = maxQueryTCU + self.queryPricingModel = queryPricingModel + } + + private enum CodingKeys: String, CodingKey { + case maxQueryTCU = "MaxQueryTCU" + case queryPricingModel = "QueryPricingModel" + } + } + + public struct UpdateAccountSettingsResponse: AWSDecodableShape { + /// The configured maximum number of compute units the service will use at any point in time to serve your queries. + public let maxQueryTCU: Int? + /// The pricing model for an account. + public let queryPricingModel: QueryPricingModel? + + public init(maxQueryTCU: Int? = nil, queryPricingModel: QueryPricingModel? = nil) { + self.maxQueryTCU = maxQueryTCU + self.queryPricingModel = queryPricingModel + } + + private enum CodingKeys: String, CodingKey { + case maxQueryTCU = "MaxQueryTCU" + case queryPricingModel = "QueryPricingModel" + } + } + public struct UpdateScheduledQueryRequest: AWSEncodableShape { /// ARN of the scheuled query. public let scheduledQueryArn: String @@ -1306,7 +1371,7 @@ public struct TimestreamQueryErrorType: AWSErrorType { public static var accessDeniedException: Self { .init(.accessDeniedException) } /// Unable to poll results for a cancelled query. public static var conflictException: Self { .init(.conflictException) } - /// Timestream was unable to fully process this request because of an internal server error. + /// The service was unable to fully process this request because of an internal server error. public static var internalServerException: Self { .init(.internalServerException) } /// The requested endpoint was not valid. public static var invalidEndpointException: Self { .init(.invalidEndpointException) } diff --git a/Sources/Soto/Services/Transcribe/Transcribe_shapes.swift b/Sources/Soto/Services/Transcribe/Transcribe_shapes.swift index c2815178b3..635153a834 100644 --- a/Sources/Soto/Services/Transcribe/Transcribe_shapes.swift +++ b/Sources/Soto/Services/Transcribe/Transcribe_shapes.swift @@ -43,6 +43,11 @@ extension Transcribe { public var description: String { return self.rawValue } } + public enum CallAnalyticsFeature: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case generativeSummarization = "GENERATIVE_SUMMARIZATION" + public var description: String { return self.rawValue } + } + public enum CallAnalyticsJobStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case completed = "COMPLETED" case failed = "FAILED" @@ -51,6 +56,12 @@ extension Transcribe { public var description: String { return self.rawValue } } + public enum CallAnalyticsSkippedReasonCode: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case failedSafetyGuidelines = "FAILED_SAFETY_GUIDELINES" + case insufficientConversationContent = "INSUFFICIENT_CONVERSATION_CONTENT" + public var description: String { return self.rawValue } + } + public enum InputType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case postCall = "POST_CALL" case realTime = "REAL_TIME" @@ -412,6 +423,8 @@ extension Transcribe { } public struct CallAnalyticsJob: AWSDecodableShape { + /// Provides detailed information about a call analytics job, including information about skipped analytics features. + public let callAnalyticsJobDetails: CallAnalyticsJobDetails? /// The name of the Call Analytics job. Job names are case sensitive and must be unique within an Amazon Web Services account. public let callAnalyticsJobName: String? /// Provides the status of the specified Call Analytics job. If the status is COMPLETED, the job is finished and you can find the results at the location specified in TranscriptFileUri (or RedactedTranscriptFileUri, if you requested transcript redaction). If the status is FAILED, FailureReason provides details on why your transcription job failed. @@ -442,7 +455,8 @@ extension Transcribe { public let startTime: Date? public let transcript: Transcript? - public init(callAnalyticsJobName: String? = nil, callAnalyticsJobStatus: CallAnalyticsJobStatus? = nil, channelDefinitions: [ChannelDefinition]? = nil, completionTime: Date? = nil, creationTime: Date? = nil, dataAccessRoleArn: String? = nil, failureReason: String? = nil, identifiedLanguageScore: Float? = nil, languageCode: LanguageCode? = nil, media: Media? = nil, mediaFormat: MediaFormat? = nil, mediaSampleRateHertz: Int? = nil, settings: CallAnalyticsJobSettings? = nil, startTime: Date? = nil, transcript: Transcript? = nil) { + public init(callAnalyticsJobDetails: CallAnalyticsJobDetails? = nil, callAnalyticsJobName: String? = nil, callAnalyticsJobStatus: CallAnalyticsJobStatus? = nil, channelDefinitions: [ChannelDefinition]? = nil, completionTime: Date? = nil, creationTime: Date? = nil, dataAccessRoleArn: String? = nil, failureReason: String? = nil, identifiedLanguageScore: Float? = nil, languageCode: LanguageCode? = nil, media: Media? = nil, mediaFormat: MediaFormat? = nil, mediaSampleRateHertz: Int? = nil, settings: CallAnalyticsJobSettings? = nil, startTime: Date? = nil, transcript: Transcript? = nil) { + self.callAnalyticsJobDetails = callAnalyticsJobDetails self.callAnalyticsJobName = callAnalyticsJobName self.callAnalyticsJobStatus = callAnalyticsJobStatus self.channelDefinitions = channelDefinitions @@ -461,6 +475,7 @@ extension Transcribe { } private enum CodingKeys: String, CodingKey { + case callAnalyticsJobDetails = "CallAnalyticsJobDetails" case callAnalyticsJobName = "CallAnalyticsJobName" case callAnalyticsJobStatus = "CallAnalyticsJobStatus" case channelDefinitions = "ChannelDefinitions" @@ -479,6 +494,19 @@ extension Transcribe { } } + public struct CallAnalyticsJobDetails: AWSDecodableShape { + /// Contains information about any skipped analytics features during the analysis of a call analytics job. This array lists all the analytics features that were skipped, along with their corresponding reason code and message. + public let skipped: [CallAnalyticsSkippedFeature]? + + public init(skipped: [CallAnalyticsSkippedFeature]? = nil) { + self.skipped = skipped + } + + private enum CodingKeys: String, CodingKey { + case skipped = "Skipped" + } + } + public struct CallAnalyticsJobSettings: AWSEncodableShape & AWSDecodableShape { public let contentRedaction: ContentRedaction? /// If using automatic language identification in your request and you want to apply a custom language model, a custom vocabulary, or a custom vocabulary filter, include LanguageIdSettings with the relevant sub-parameters (VocabularyName, LanguageModelName, and VocabularyFilterName). LanguageIdSettings supports two to five language codes. Each language code you include can have an associated custom language model, custom vocabulary, and custom vocabulary filter. The language codes that you specify must match the languages of the associated custom language models, custom vocabularies, and custom vocabulary filters. It's recommended that you include LanguageOptions when using LanguageIdSettings to ensure that the correct language dialect is identified. For example, if you specify a custom vocabulary that is in en-US but Amazon Transcribe determines that the language spoken in your media is en-AU, your custom vocabulary is not applied to your transcription. If you include LanguageOptions and include en-US as the only English language dialect, your custom vocabulary is applied to your transcription. If you want to include a custom language model, custom vocabulary, or custom vocabulary filter with your request but do not want to use automatic language identification, use instead the parameter with the LanguageModelName, VocabularyName, or VocabularyFilterName sub-parameters. For a list of languages supported with Call Analytics, refer to Supported languages and language-specific features. @@ -540,6 +568,8 @@ extension Transcribe { } public struct CallAnalyticsJobSummary: AWSDecodableShape { + /// Provides detailed information about a call analytics job, including information about skipped analytics features. + public let callAnalyticsJobDetails: CallAnalyticsJobDetails? /// The name of the Call Analytics job. Job names are case sensitive and must be unique within an Amazon Web Services account. public let callAnalyticsJobName: String? /// Provides the status of your Call Analytics job. If the status is COMPLETED, the job is finished and you can find the results at the location specified in TranscriptFileUri (or RedactedTranscriptFileUri, if you requested transcript redaction). If the status is FAILED, FailureReason provides details on why your transcription job failed. @@ -555,7 +585,8 @@ extension Transcribe { /// The date and time your Call Analytics job began processing. Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.789000-07:00 represents a transcription job that started processing at 12:32 PM UTC-7 on May 4, 2022. public let startTime: Date? - public init(callAnalyticsJobName: String? = nil, callAnalyticsJobStatus: CallAnalyticsJobStatus? = nil, completionTime: Date? = nil, creationTime: Date? = nil, failureReason: String? = nil, languageCode: LanguageCode? = nil, startTime: Date? = nil) { + public init(callAnalyticsJobDetails: CallAnalyticsJobDetails? = nil, callAnalyticsJobName: String? = nil, callAnalyticsJobStatus: CallAnalyticsJobStatus? = nil, completionTime: Date? = nil, creationTime: Date? = nil, failureReason: String? = nil, languageCode: LanguageCode? = nil, startTime: Date? = nil) { + self.callAnalyticsJobDetails = callAnalyticsJobDetails self.callAnalyticsJobName = callAnalyticsJobName self.callAnalyticsJobStatus = callAnalyticsJobStatus self.completionTime = completionTime @@ -566,6 +597,7 @@ extension Transcribe { } private enum CodingKeys: String, CodingKey { + case callAnalyticsJobDetails = "CallAnalyticsJobDetails" case callAnalyticsJobName = "CallAnalyticsJobName" case callAnalyticsJobStatus = "CallAnalyticsJobStatus" case completionTime = "CompletionTime" @@ -576,6 +608,27 @@ extension Transcribe { } } + public struct CallAnalyticsSkippedFeature: AWSDecodableShape { + /// Indicates the type of analytics feature that was skipped during the analysis of a call analytics job. + public let feature: CallAnalyticsFeature? + /// Contains additional information or a message explaining why a specific analytics feature was skipped during the analysis of a call analytics job. + public let message: String? + /// Provides a code indicating the reason why a specific analytics feature was skipped during the analysis of a call analytics job. + public let reasonCode: CallAnalyticsSkippedReasonCode? + + public init(feature: CallAnalyticsFeature? = nil, message: String? = nil, reasonCode: CallAnalyticsSkippedReasonCode? = nil) { + self.feature = feature + self.message = message + self.reasonCode = reasonCode + } + + private enum CodingKeys: String, CodingKey { + case feature = "Feature" + case message = "Message" + case reasonCode = "ReasonCode" + } + } + public struct CategoryProperties: AWSDecodableShape { /// The name of the Call Analytics category. Category names are case sensitive and must be unique within an Amazon Web Services account. public let categoryName: String? @@ -2555,7 +2608,7 @@ extension Transcribe { } public func validate(name: String) throws { - try self.validate(self.maxSpeakerLabels, name: "maxSpeakerLabels", parent: name, max: 10) + try self.validate(self.maxSpeakerLabels, name: "maxSpeakerLabels", parent: name, max: 30) try self.validate(self.maxSpeakerLabels, name: "maxSpeakerLabels", parent: name, min: 2) try self.validate(self.vocabularyFilterName, name: "vocabularyFilterName", parent: name, max: 200) try self.validate(self.vocabularyFilterName, name: "vocabularyFilterName", parent: name, min: 1) @@ -2739,7 +2792,7 @@ extension Transcribe { public func validate(name: String) throws { try self.validate(self.maxAlternatives, name: "maxAlternatives", parent: name, max: 10) try self.validate(self.maxAlternatives, name: "maxAlternatives", parent: name, min: 2) - try self.validate(self.maxSpeakerLabels, name: "maxSpeakerLabels", parent: name, max: 10) + try self.validate(self.maxSpeakerLabels, name: "maxSpeakerLabels", parent: name, max: 30) try self.validate(self.maxSpeakerLabels, name: "maxSpeakerLabels", parent: name, min: 2) try self.validate(self.vocabularyName, name: "vocabularyName", parent: name, max: 200) try self.validate(self.vocabularyName, name: "vocabularyName", parent: name, min: 1) @@ -2911,7 +2964,7 @@ extension Transcribe { public func validate(name: String) throws { try self.validate(self.maxAlternatives, name: "maxAlternatives", parent: name, max: 10) try self.validate(self.maxAlternatives, name: "maxAlternatives", parent: name, min: 2) - try self.validate(self.maxSpeakerLabels, name: "maxSpeakerLabels", parent: name, max: 10) + try self.validate(self.maxSpeakerLabels, name: "maxSpeakerLabels", parent: name, max: 30) try self.validate(self.maxSpeakerLabels, name: "maxSpeakerLabels", parent: name, min: 2) try self.validate(self.vocabularyFilterName, name: "vocabularyFilterName", parent: name, max: 200) try self.validate(self.vocabularyFilterName, name: "vocabularyFilterName", parent: name, min: 1) diff --git a/Sources/Soto/Services/Transfer/Transfer_api.swift b/Sources/Soto/Services/Transfer/Transfer_api.swift index 3d578019d8..49a1ecfae3 100644 --- a/Sources/Soto/Services/Transfer/Transfer_api.swift +++ b/Sources/Soto/Services/Transfer/Transfer_api.swift @@ -659,7 +659,20 @@ public struct Transfer: AWSService { ) } - /// Begins a file transfer between local Amazon Web Services storage and a remote AS2 or SFTP server. For an AS2 connector, you specify the ConnectorId and one or more SendFilePaths to identify the files you want to transfer. For an SFTP connector, the file transfer can be either outbound or inbound. In both cases, you specify the ConnectorId. Depending on the direction of the transfer, you also specify the following items: If you are transferring file from a partner's SFTP server to Amazon Web Services storage, you specify one or more RetreiveFilePaths to identify the files you want to transfer, and a LocalDirectoryPath to specify the destination folder. If you are transferring file to a partner's SFTP server from Amazon Web Services storage, you specify one or more SendFilePaths to identify the files you want to transfer, and a RemoteDirectoryPath to specify the destination folder. + /// Retrieves a list of the contents of a directory from a remote SFTP server. You specify the connector ID, the output path, and the remote directory path. You can also specify the optional MaxItems value to control the maximum number of items that are listed from the remote directory. This API returns a list of all files and directories in the remote directory (up to the maximum value), but does not return files or folders in sub-directories. That is, it only returns a list of files and directories one-level deep. After you receive the listing file, you can provide the files that you want to transfer to the RetrieveFilePaths parameter of the StartFileTransfer API call. The naming convention for the output file is connector-ID-listing-ID.json. The output file contains the following information: filePath: the complete path of a remote file, relative to the directory of the listing request for your SFTP connector on the remote server. modifiedTimestamp: the last time the file was modified, in UTC time format. This field is optional. If the remote file attributes don't contain a timestamp, it is omitted from the file listing. size: the size of the file, in bytes. This field is optional. If the remote file attributes don't contain a file size, it is omitted from the file listing. path: the complete path of a remote directory, relative to the directory of the listing request for your SFTP connector on the remote server. truncated: a flag indicating whether the list output contains all of the items contained in the remote directory or not. If your Truncated output value is true, you can increase the value provided in the optional max-items input attribute to be able to list more items (up to the maximum allowed list size of 10,000 items). + @Sendable + public func startDirectoryListing(_ input: StartDirectoryListingRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartDirectoryListingResponse { + return try await self.client.execute( + operation: "StartDirectoryListing", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + + /// Begins a file transfer between local Amazon Web Services storage and a remote AS2 or SFTP server. For an AS2 connector, you specify the ConnectorId and one or more SendFilePaths to identify the files you want to transfer. For an SFTP connector, the file transfer can be either outbound or inbound. In both cases, you specify the ConnectorId. Depending on the direction of the transfer, you also specify the following items: If you are transferring file from a partner's SFTP server to Amazon Web Services storage, you specify one or more RetrieveFilePaths to identify the files you want to transfer, and a LocalDirectoryPath to specify the destination folder. If you are transferring file to a partner's SFTP server from Amazon Web Services storage, you specify one or more SendFilePaths to identify the files you want to transfer, and a RemoteDirectoryPath to specify the destination folder. @Sendable public func startFileTransfer(_ input: StartFileTransferRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartFileTransferResponse { return try await self.client.execute( diff --git a/Sources/Soto/Services/Transfer/Transfer_shapes.swift b/Sources/Soto/Services/Transfer/Transfer_shapes.swift index 74efd86691..d066dfe451 100644 --- a/Sources/Soto/Services/Transfer/Transfer_shapes.swift +++ b/Sources/Soto/Services/Transfer/Transfer_shapes.swift @@ -53,6 +53,7 @@ extension Transfer { public enum CertificateUsageType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case encryption = "ENCRYPTION" case signing = "SIGNING" + case tls = "TLS" public var description: String { return self.rawValue } } @@ -3683,6 +3684,62 @@ extension Transfer { } } + public struct StartDirectoryListingRequest: AWSEncodableShape { + /// The unique identifier for the connector. + public let connectorId: String + /// An optional parameter where you can specify the maximum number of file/directory names to retrieve. The default value is 1,000. + public let maxItems: Int? + /// Specifies the path (bucket and prefix) in Amazon S3 storage to store the results of the directory listing. + public let outputDirectoryPath: String + /// Specifies the directory on the remote SFTP server for which you want to list its contents. + public let remoteDirectoryPath: String + + public init(connectorId: String, maxItems: Int? = nil, outputDirectoryPath: String, remoteDirectoryPath: String) { + self.connectorId = connectorId + self.maxItems = maxItems + self.outputDirectoryPath = outputDirectoryPath + self.remoteDirectoryPath = remoteDirectoryPath + } + + public func validate(name: String) throws { + try self.validate(self.connectorId, name: "connectorId", parent: name, max: 19) + try self.validate(self.connectorId, name: "connectorId", parent: name, min: 19) + try self.validate(self.connectorId, name: "connectorId", parent: name, pattern: "^c-([0-9a-f]{17})$") + try self.validate(self.maxItems, name: "maxItems", parent: name, max: 10000) + try self.validate(self.maxItems, name: "maxItems", parent: name, min: 1) + try self.validate(self.outputDirectoryPath, name: "outputDirectoryPath", parent: name, max: 1024) + try self.validate(self.outputDirectoryPath, name: "outputDirectoryPath", parent: name, min: 1) + try self.validate(self.outputDirectoryPath, name: "outputDirectoryPath", parent: name, pattern: "^(.)+$") + try self.validate(self.remoteDirectoryPath, name: "remoteDirectoryPath", parent: name, max: 1024) + try self.validate(self.remoteDirectoryPath, name: "remoteDirectoryPath", parent: name, min: 1) + try self.validate(self.remoteDirectoryPath, name: "remoteDirectoryPath", parent: name, pattern: "^(.)+$") + } + + private enum CodingKeys: String, CodingKey { + case connectorId = "ConnectorId" + case maxItems = "MaxItems" + case outputDirectoryPath = "OutputDirectoryPath" + case remoteDirectoryPath = "RemoteDirectoryPath" + } + } + + public struct StartDirectoryListingResponse: AWSDecodableShape { + /// Returns a unique identifier for the directory listing call. + public let listingId: String + /// Returns the file name where the results are stored. This is a combination of the connector ID and the listing ID: <connector-id>-<listing-id>.json. + public let outputFileName: String + + public init(listingId: String, outputFileName: String) { + self.listingId = listingId + self.outputFileName = outputFileName + } + + private enum CodingKeys: String, CodingKey { + case listingId = "ListingId" + case outputFileName = "OutputFileName" + } + } + public struct StartFileTransferRequest: AWSEncodableShape { /// The unique identifier for the connector. public let connectorId: String diff --git a/Sources/Soto/Services/TrustedAdvisor/TrustedAdvisor_api.swift b/Sources/Soto/Services/TrustedAdvisor/TrustedAdvisor_api.swift index 5da4862ba4..54c6cd69e5 100644 --- a/Sources/Soto/Services/TrustedAdvisor/TrustedAdvisor_api.swift +++ b/Sources/Soto/Services/TrustedAdvisor/TrustedAdvisor_api.swift @@ -73,6 +73,19 @@ public struct TrustedAdvisor: AWSService { // MARK: API Calls + /// Update one or more exclusion status for a list of recommendation resources + @Sendable + public func batchUpdateRecommendationResourceExclusion(_ input: BatchUpdateRecommendationResourceExclusionRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> BatchUpdateRecommendationResourceExclusionResponse { + return try await self.client.execute( + operation: "BatchUpdateRecommendationResourceExclusion", + path: "/v1/batch-update-recommendation-resource-exclusion", + httpMethod: .PUT, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Get a specific recommendation within an AWS Organizations organization. This API supports only prioritized recommendations. @Sendable public func getOrganizationRecommendation(_ input: GetOrganizationRecommendationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetOrganizationRecommendationResponse { @@ -177,7 +190,7 @@ public struct TrustedAdvisor: AWSService { ) } - /// Update the lifecyle of a Recommendation within an Organization. This API only supports prioritized recommendations. + /// Update the lifecycle of a Recommendation within an Organization. This API only supports prioritized recommendations. @Sendable public func updateOrganizationRecommendationLifecycle(_ input: UpdateOrganizationRecommendationLifecycleRequest, logger: Logger = AWSClient.loggingDisabled) async throws { return try await self.client.execute( @@ -360,6 +373,7 @@ extension TrustedAdvisor.ListOrganizationRecommendationResourcesRequest: AWSPagi public func usingPaginationToken(_ token: String) -> TrustedAdvisor.ListOrganizationRecommendationResourcesRequest { return .init( affectedAccountId: self.affectedAccountId, + exclusionStatus: self.exclusionStatus, maxResults: self.maxResults, nextToken: token, organizationRecommendationIdentifier: self.organizationRecommendationIdentifier, @@ -389,6 +403,7 @@ extension TrustedAdvisor.ListOrganizationRecommendationsRequest: AWSPaginateToke extension TrustedAdvisor.ListRecommendationResourcesRequest: AWSPaginateToken { public func usingPaginationToken(_ token: String) -> TrustedAdvisor.ListRecommendationResourcesRequest { return .init( + exclusionStatus: self.exclusionStatus, maxResults: self.maxResults, nextToken: token, recommendationIdentifier: self.recommendationIdentifier, diff --git a/Sources/Soto/Services/TrustedAdvisor/TrustedAdvisor_shapes.swift b/Sources/Soto/Services/TrustedAdvisor/TrustedAdvisor_shapes.swift index 6069acd081..e30e4b3d1b 100644 --- a/Sources/Soto/Services/TrustedAdvisor/TrustedAdvisor_shapes.swift +++ b/Sources/Soto/Services/TrustedAdvisor/TrustedAdvisor_shapes.swift @@ -26,6 +26,12 @@ import Foundation extension TrustedAdvisor { // MARK: Enums + public enum ExclusionStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case excluded = "excluded" + case included = "included" + public var description: String { return self.rawValue } + } + public enum RecommendationLanguage: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case bahasaIndonesia = "id" case brazilianPortuguese = "pt_BR" @@ -158,6 +164,40 @@ extension TrustedAdvisor { } } + public struct BatchUpdateRecommendationResourceExclusionRequest: AWSEncodableShape { + /// A list of recommendation resource ARNs and exclusion status to update + public let recommendationResourceExclusions: [RecommendationResourceExclusion] + + public init(recommendationResourceExclusions: [RecommendationResourceExclusion]) { + self.recommendationResourceExclusions = recommendationResourceExclusions + } + + public func validate(name: String) throws { + try self.recommendationResourceExclusions.forEach { + try $0.validate(name: "\(name).recommendationResourceExclusions[]") + } + try self.validate(self.recommendationResourceExclusions, name: "recommendationResourceExclusions", parent: name, max: 100) + try self.validate(self.recommendationResourceExclusions, name: "recommendationResourceExclusions", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case recommendationResourceExclusions = "recommendationResourceExclusions" + } + } + + public struct BatchUpdateRecommendationResourceExclusionResponse: AWSDecodableShape { + /// A list of recommendation resource ARNs whose exclusion status failed to update, if any + public let batchUpdateRecommendationResourceExclusionErrors: [UpdateRecommendationResourceExclusionError] + + public init(batchUpdateRecommendationResourceExclusionErrors: [UpdateRecommendationResourceExclusionError]) { + self.batchUpdateRecommendationResourceExclusionErrors = batchUpdateRecommendationResourceExclusionErrors + } + + private enum CodingKeys: String, CodingKey { + case batchUpdateRecommendationResourceExclusionErrors = "batchUpdateRecommendationResourceExclusionErrors" + } + } + public struct CheckSummary: AWSDecodableShape { /// The ARN of the AWS Trusted Advisor Check public let arn: String @@ -388,6 +428,8 @@ extension TrustedAdvisor { public struct ListOrganizationRecommendationResourcesRequest: AWSEncodableShape { /// An account affected by this organization recommendation public let affectedAccountId: String? + /// The exclusion status of the resource + public let exclusionStatus: ExclusionStatus? /// The maximum number of results to return per page. public let maxResults: Int? /// The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. @@ -399,8 +441,9 @@ extension TrustedAdvisor { /// The status of the resource public let status: ResourceStatus? - public init(affectedAccountId: String? = nil, maxResults: Int? = nil, nextToken: String? = nil, organizationRecommendationIdentifier: String, regionCode: String? = nil, status: ResourceStatus? = nil) { + public init(affectedAccountId: String? = nil, exclusionStatus: ExclusionStatus? = nil, maxResults: Int? = nil, nextToken: String? = nil, organizationRecommendationIdentifier: String, regionCode: String? = nil, status: ResourceStatus? = nil) { self.affectedAccountId = affectedAccountId + self.exclusionStatus = exclusionStatus self.maxResults = maxResults self.nextToken = nextToken self.organizationRecommendationIdentifier = organizationRecommendationIdentifier @@ -412,6 +455,7 @@ extension TrustedAdvisor { let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer _ = encoder.container(keyedBy: CodingKeys.self) request.encodeQuery(self.affectedAccountId, key: "affectedAccountId") + request.encodeQuery(self.exclusionStatus, key: "exclusionStatus") request.encodeQuery(self.maxResults, key: "maxResults") request.encodeQuery(self.nextToken, key: "nextToken") request.encodePath(self.organizationRecommendationIdentifier, key: "organizationRecommendationIdentifier") @@ -527,6 +571,8 @@ extension TrustedAdvisor { } public struct ListRecommendationResourcesRequest: AWSEncodableShape { + /// The exclusion status of the resource + public let exclusionStatus: ExclusionStatus? /// The maximum number of results to return per page. public let maxResults: Int? /// The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. @@ -538,7 +584,8 @@ extension TrustedAdvisor { /// The status of the resource public let status: ResourceStatus? - public init(maxResults: Int? = nil, nextToken: String? = nil, recommendationIdentifier: String, regionCode: String? = nil, status: ResourceStatus? = nil) { + public init(exclusionStatus: ExclusionStatus? = nil, maxResults: Int? = nil, nextToken: String? = nil, recommendationIdentifier: String, regionCode: String? = nil, status: ResourceStatus? = nil) { + self.exclusionStatus = exclusionStatus self.maxResults = maxResults self.nextToken = nextToken self.recommendationIdentifier = recommendationIdentifier @@ -549,6 +596,7 @@ extension TrustedAdvisor { public func encode(to encoder: Encoder) throws { let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer _ = encoder.container(keyedBy: CodingKeys.self) + request.encodeQuery(self.exclusionStatus, key: "exclusionStatus") request.encodeQuery(self.maxResults, key: "maxResults") request.encodeQuery(self.nextToken, key: "nextToken") request.encodePath(self.recommendationIdentifier, key: "recommendationIdentifier") @@ -760,6 +808,8 @@ extension TrustedAdvisor { public let arn: String /// The AWS resource identifier public let awsResourceId: String + /// The exclusion status of the Recommendation Resource + public let exclusionStatus: ExclusionStatus? /// The ID of the Recommendation Resource public let id: String /// When the Recommendation Resource was last updated @@ -773,10 +823,11 @@ extension TrustedAdvisor { /// The current status of the Recommendation Resource public let status: ResourceStatus - public init(accountId: String? = nil, arn: String, awsResourceId: String, id: String, lastUpdatedAt: Date, metadata: [String: String], recommendationArn: String, regionCode: String, status: ResourceStatus) { + public init(accountId: String? = nil, arn: String, awsResourceId: String, exclusionStatus: ExclusionStatus? = nil, id: String, lastUpdatedAt: Date, metadata: [String: String], recommendationArn: String, regionCode: String, status: ResourceStatus) { self.accountId = accountId self.arn = arn self.awsResourceId = awsResourceId + self.exclusionStatus = exclusionStatus self.id = id self.lastUpdatedAt = lastUpdatedAt self.metadata = metadata @@ -789,6 +840,7 @@ extension TrustedAdvisor { case accountId = "accountId" case arn = "arn" case awsResourceId = "awsResourceId" + case exclusionStatus = "exclusionStatus" case id = "id" case lastUpdatedAt = "lastUpdatedAt" case metadata = "metadata" @@ -986,11 +1038,36 @@ extension TrustedAdvisor { } } + public struct RecommendationResourceExclusion: AWSEncodableShape { + /// The ARN of the Recommendation Resource + public let arn: String + /// The exclusion status + public let isExcluded: Bool + + public init(arn: String, isExcluded: Bool) { + self.arn = arn + self.isExcluded = isExcluded + } + + public func validate(name: String) throws { + try self.validate(self.arn, name: "arn", parent: name, max: 2048) + try self.validate(self.arn, name: "arn", parent: name, min: 20) + try self.validate(self.arn, name: "arn", parent: name, pattern: "^arn:[\\w-]+:trustedadvisor::\\d{12}:recommendation-resource\\/[\\w-]+\\/[\\w-]+$") + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case isExcluded = "isExcluded" + } + } + public struct RecommendationResourceSummary: AWSDecodableShape { /// The ARN of the Recommendation Resource public let arn: String /// The AWS resource identifier public let awsResourceId: String + /// The exclusion status of the Recommendation Resource + public let exclusionStatus: ExclusionStatus? /// The ID of the Recommendation Resource public let id: String /// When the Recommendation Resource was last updated @@ -1004,9 +1081,10 @@ extension TrustedAdvisor { /// The current status of the Recommendation Resource public let status: ResourceStatus - public init(arn: String, awsResourceId: String, id: String, lastUpdatedAt: Date, metadata: [String: String], recommendationArn: String, regionCode: String, status: ResourceStatus) { + public init(arn: String, awsResourceId: String, exclusionStatus: ExclusionStatus? = nil, id: String, lastUpdatedAt: Date, metadata: [String: String], recommendationArn: String, regionCode: String, status: ResourceStatus) { self.arn = arn self.awsResourceId = awsResourceId + self.exclusionStatus = exclusionStatus self.id = id self.lastUpdatedAt = lastUpdatedAt self.metadata = metadata @@ -1018,6 +1096,7 @@ extension TrustedAdvisor { private enum CodingKeys: String, CodingKey { case arn = "arn" case awsResourceId = "awsResourceId" + case exclusionStatus = "exclusionStatus" case id = "id" case lastUpdatedAt = "lastUpdatedAt" case metadata = "metadata" @@ -1196,6 +1275,27 @@ extension TrustedAdvisor { case updateReasonCode = "updateReasonCode" } } + + public struct UpdateRecommendationResourceExclusionError: AWSDecodableShape { + /// The ARN of the Recommendation Resource + public let arn: String? + /// The error code + public let errorCode: String? + /// The error message + public let errorMessage: String? + + public init(arn: String? = nil, errorCode: String? = nil, errorMessage: String? = nil) { + self.arn = arn + self.errorCode = errorCode + self.errorMessage = errorMessage + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case errorCode = "errorCode" + case errorMessage = "errorMessage" + } + } } // MARK: - Errors diff --git a/Sources/Soto/Services/VerifiedPermissions/VerifiedPermissions_api.swift b/Sources/Soto/Services/VerifiedPermissions/VerifiedPermissions_api.swift index 34e11ec215..682a3eebfa 100644 --- a/Sources/Soto/Services/VerifiedPermissions/VerifiedPermissions_api.swift +++ b/Sources/Soto/Services/VerifiedPermissions/VerifiedPermissions_api.swift @@ -76,8 +76,11 @@ public struct VerifiedPermissions: AWSService { static var variantEndpoints: [EndpointVariantType: AWSServiceConfig.EndpointVariant] {[ [.fips]: .init(endpoints: [ "ca-central-1": "verifiedpermissions-fips.ca-central-1.amazonaws.com", + "ca-west-1": "verifiedpermissions-fips.ca-west-1.amazonaws.com", "us-east-1": "verifiedpermissions-fips.us-east-1.amazonaws.com", "us-east-2": "verifiedpermissions-fips.us-east-2.amazonaws.com", + "us-gov-east-1": "verifiedpermissions-fips.us-gov-east-1.amazonaws.com", + "us-gov-west-1": "verifiedpermissions-fips.us-gov-west-1.amazonaws.com", "us-west-1": "verifiedpermissions-fips.us-west-1.amazonaws.com", "us-west-2": "verifiedpermissions-fips.us-west-2.amazonaws.com" ]) diff --git a/Sources/Soto/Services/WAFV2/WAFV2_api.swift b/Sources/Soto/Services/WAFV2/WAFV2_api.swift index ba78efc0bc..416fd0e69f 100644 --- a/Sources/Soto/Services/WAFV2/WAFV2_api.swift +++ b/Sources/Soto/Services/WAFV2/WAFV2_api.swift @@ -86,6 +86,7 @@ public struct WAFV2: AWSService { "ap-southeast-3": "wafv2.ap-southeast-3.amazonaws.com", "ap-southeast-4": "wafv2.ap-southeast-4.amazonaws.com", "ca-central-1": "wafv2.ca-central-1.amazonaws.com", + "ca-west-1": "wafv2.ca-west-1.amazonaws.com", "cn-north-1": "wafv2.cn-north-1.amazonaws.com.cn", "cn-northwest-1": "wafv2.cn-northwest-1.amazonaws.com.cn", "eu-central-1": "wafv2.eu-central-1.amazonaws.com", @@ -124,6 +125,7 @@ public struct WAFV2: AWSService { "ap-southeast-3": "wafv2-fips.ap-southeast-3.amazonaws.com", "ap-southeast-4": "wafv2-fips.ap-southeast-4.amazonaws.com", "ca-central-1": "wafv2-fips.ca-central-1.amazonaws.com", + "ca-west-1": "wafv2-fips.ca-west-1.amazonaws.com", "cn-north-1": "wafv2-fips.cn-north-1.amazonaws.com.cn", "cn-northwest-1": "wafv2-fips.cn-northwest-1.amazonaws.com.cn", "eu-central-1": "wafv2-fips.eu-central-1.amazonaws.com", diff --git a/Sources/Soto/Services/WellArchitected/WellArchitected_api.swift b/Sources/Soto/Services/WellArchitected/WellArchitected_api.swift index db5a32e3a9..b5d452b5d6 100644 --- a/Sources/Soto/Services/WellArchitected/WellArchitected_api.swift +++ b/Sources/Soto/Services/WellArchitected/WellArchitected_api.swift @@ -385,6 +385,18 @@ public struct WellArchitected: AWSService { ) } + /// Global settings for all workloads. + @Sendable + public func getGlobalSettings(logger: Logger = AWSClient.loggingDisabled) async throws -> GetGlobalSettingsOutput { + return try await self.client.execute( + operation: "GetGlobalSettings", + path: "/global-settings", + httpMethod: .GET, + serviceConfig: self.config, + logger: logger + ) + } + /// Get an existing lens. @Sendable public func getLens(_ input: GetLensInput, logger: Logger = AWSClient.loggingDisabled) async throws -> GetLensOutput { @@ -580,7 +592,7 @@ public struct WellArchitected: AWSService { ) } - /// List lens review improvements. + /// List the improvements of a particular lens review. @Sendable public func listLensReviewImprovements(_ input: ListLensReviewImprovementsInput, logger: Logger = AWSClient.loggingDisabled) async throws -> ListLensReviewImprovementsOutput { return try await self.client.execute( @@ -827,7 +839,7 @@ public struct WellArchitected: AWSService { ) } - /// Updates whether the Amazon Web Services account is opted into organization sharing and discovery integration features. + /// Update whether the Amazon Web Services account is opted into organization sharing and discovery integration features. @Sendable public func updateGlobalSettings(_ input: UpdateGlobalSettingsInput, logger: Logger = AWSClient.loggingDisabled) async throws { return try await self.client.execute( @@ -840,6 +852,19 @@ public struct WellArchitected: AWSService { ) } + /// Update integration features. + @Sendable + public func updateIntegration(_ input: UpdateIntegrationInput, logger: Logger = AWSClient.loggingDisabled) async throws { + return try await self.client.execute( + operation: "UpdateIntegration", + path: "/workloads/{WorkloadId}/updateIntegration", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Update lens review for a particular workload. @Sendable public func updateLensReview(_ input: UpdateLensReviewInput, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateLensReviewOutput { @@ -1073,7 +1098,7 @@ extension WellArchitected { ) } - /// List lens review improvements. + /// List the improvements of a particular lens review. /// Return PaginatorSequence for operation. /// /// - Parameters: diff --git a/Sources/Soto/Services/WellArchitected/WellArchitected_shapes.swift b/Sources/Soto/Services/WellArchitected/WellArchitected_shapes.swift index 318d6f57ab..0fc1890aa8 100644 --- a/Sources/Soto/Services/WellArchitected/WellArchitected_shapes.swift +++ b/Sources/Soto/Services/WellArchitected/WellArchitected_shapes.swift @@ -26,6 +26,12 @@ import Foundation extension WellArchitected { // MARK: Enums + public enum AccountJiraIssueManagementStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + public enum AdditionalResourceType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case helpfulResource = "HELPFUL_RESOURCE" case improvementPlan = "IMPROVEMENT_PLAN" @@ -105,6 +111,28 @@ extension WellArchitected { public var description: String { return self.rawValue } } + public enum IntegratingService: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case jira = "JIRA" + public var description: String { return self.rawValue } + } + + public enum IntegrationStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case configured = "CONFIGURED" + case notConfigured = "NOT_CONFIGURED" + public var description: String { return self.rawValue } + } + + public enum IntegrationStatusInput: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case notConfigured = "NOT_CONFIGURED" + public var description: String { return self.rawValue } + } + + public enum IssueManagementType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case auto = "AUTO" + case manual = "MANUAL" + public var description: String { return self.rawValue } + } + public enum LensStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case current = "CURRENT" case deleted = "DELETED" @@ -255,8 +283,79 @@ extension WellArchitected { public var description: String { return self.rawValue } } + public enum WorkloadIssueManagementStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case disabled = "DISABLED" + case enabled = "ENABLED" + case inherit = "INHERIT" + public var description: String { return self.rawValue } + } + // MARK: Shapes + public struct AccountJiraConfigurationInput: AWSEncodableShape { + /// Account-level: Configuration status of the Jira integration. + public let integrationStatus: IntegrationStatusInput? + /// Account-level: Jira issue management status. + public let issueManagementStatus: AccountJiraIssueManagementStatus? + /// Account-level: Jira issue management type. + public let issueManagementType: IssueManagementType? + /// Account-level: Jira project key to sync workloads to. + public let jiraProjectKey: String? + + public init(integrationStatus: IntegrationStatusInput? = nil, issueManagementStatus: AccountJiraIssueManagementStatus? = nil, issueManagementType: IssueManagementType? = nil, jiraProjectKey: String? = nil) { + self.integrationStatus = integrationStatus + self.issueManagementStatus = issueManagementStatus + self.issueManagementType = issueManagementType + self.jiraProjectKey = jiraProjectKey + } + + public func validate(name: String) throws { + try self.validate(self.jiraProjectKey, name: "jiraProjectKey", parent: name, max: 100) + try self.validate(self.jiraProjectKey, name: "jiraProjectKey", parent: name, min: 1) + try self.validate(self.jiraProjectKey, name: "jiraProjectKey", parent: name, pattern: "^[A-Z][A-Z0-9_]*$") + } + + private enum CodingKeys: String, CodingKey { + case integrationStatus = "IntegrationStatus" + case issueManagementStatus = "IssueManagementStatus" + case issueManagementType = "IssueManagementType" + case jiraProjectKey = "JiraProjectKey" + } + } + + public struct AccountJiraConfigurationOutput: AWSDecodableShape { + /// Account-level: Configuration status of the Jira integration. + public let integrationStatus: IntegrationStatus? + /// Account-level: Jira issue management status. + public let issueManagementStatus: AccountJiraIssueManagementStatus? + /// Account-level: Jira issue management type. + public let issueManagementType: IssueManagementType? + /// Account-level: Jira project key to sync workloads to. + public let jiraProjectKey: String? + /// Account-level: Status message on configuration of the Jira integration. + public let statusMessage: String? + /// Account-level: Jira subdomain URL. + public let subdomain: String? + + public init(integrationStatus: IntegrationStatus? = nil, issueManagementStatus: AccountJiraIssueManagementStatus? = nil, issueManagementType: IssueManagementType? = nil, jiraProjectKey: String? = nil, statusMessage: String? = nil, subdomain: String? = nil) { + self.integrationStatus = integrationStatus + self.issueManagementStatus = issueManagementStatus + self.issueManagementType = issueManagementType + self.jiraProjectKey = jiraProjectKey + self.statusMessage = statusMessage + self.subdomain = subdomain + } + + private enum CodingKeys: String, CodingKey { + case integrationStatus = "IntegrationStatus" + case issueManagementStatus = "IssueManagementStatus" + case issueManagementType = "IssueManagementType" + case jiraProjectKey = "JiraProjectKey" + case statusMessage = "StatusMessage" + case subdomain = "Subdomain" + } + } + public struct AdditionalResources: AWSDecodableShape { /// The URLs for additional resources, either helpful resources or improvement plans, for a custom lens. Up to five additional URLs can be specified. public let content: [ChoiceContent]? @@ -283,6 +382,8 @@ extension WellArchitected { public let helpfulResourceUrl: String? public let improvementPlanUrl: String? public let isApplicable: Bool? + /// Configuration of the Jira integration. + public let jiraConfiguration: JiraConfiguration? public let notes: String? public let pillarId: String? public let questionDescription: String? @@ -293,13 +394,14 @@ extension WellArchitected { public let risk: Risk? public let selectedChoices: [String]? - public init(choiceAnswers: [ChoiceAnswer]? = nil, choices: [Choice]? = nil, helpfulResourceDisplayText: String? = nil, helpfulResourceUrl: String? = nil, improvementPlanUrl: String? = nil, isApplicable: Bool? = nil, notes: String? = nil, pillarId: String? = nil, questionDescription: String? = nil, questionId: String? = nil, questionTitle: String? = nil, reason: AnswerReason? = nil, risk: Risk? = nil, selectedChoices: [String]? = nil) { + public init(choiceAnswers: [ChoiceAnswer]? = nil, choices: [Choice]? = nil, helpfulResourceDisplayText: String? = nil, helpfulResourceUrl: String? = nil, improvementPlanUrl: String? = nil, isApplicable: Bool? = nil, jiraConfiguration: JiraConfiguration? = nil, notes: String? = nil, pillarId: String? = nil, questionDescription: String? = nil, questionId: String? = nil, questionTitle: String? = nil, reason: AnswerReason? = nil, risk: Risk? = nil, selectedChoices: [String]? = nil) { self.choiceAnswers = choiceAnswers self.choices = choices self.helpfulResourceDisplayText = helpfulResourceDisplayText self.helpfulResourceUrl = helpfulResourceUrl self.improvementPlanUrl = improvementPlanUrl self.isApplicable = isApplicable + self.jiraConfiguration = jiraConfiguration self.notes = notes self.pillarId = pillarId self.questionDescription = questionDescription @@ -317,6 +419,7 @@ extension WellArchitected { case helpfulResourceUrl = "HelpfulResourceUrl" case improvementPlanUrl = "ImprovementPlanUrl" case isApplicable = "IsApplicable" + case jiraConfiguration = "JiraConfiguration" case notes = "Notes" case pillarId = "PillarId" case questionDescription = "QuestionDescription" @@ -333,6 +436,8 @@ extension WellArchitected { public let choiceAnswerSummaries: [ChoiceAnswerSummary]? public let choices: [Choice]? public let isApplicable: Bool? + /// Configuration of the Jira integration. + public let jiraConfiguration: JiraConfiguration? public let pillarId: String? public let questionId: String? public let questionTitle: String? @@ -343,10 +448,11 @@ extension WellArchitected { public let risk: Risk? public let selectedChoices: [String]? - public init(choiceAnswerSummaries: [ChoiceAnswerSummary]? = nil, choices: [Choice]? = nil, isApplicable: Bool? = nil, pillarId: String? = nil, questionId: String? = nil, questionTitle: String? = nil, questionType: QuestionType? = nil, reason: AnswerReason? = nil, risk: Risk? = nil, selectedChoices: [String]? = nil) { + public init(choiceAnswerSummaries: [ChoiceAnswerSummary]? = nil, choices: [Choice]? = nil, isApplicable: Bool? = nil, jiraConfiguration: JiraConfiguration? = nil, pillarId: String? = nil, questionId: String? = nil, questionTitle: String? = nil, questionType: QuestionType? = nil, reason: AnswerReason? = nil, risk: Risk? = nil, selectedChoices: [String]? = nil) { self.choiceAnswerSummaries = choiceAnswerSummaries self.choices = choices self.isApplicable = isApplicable + self.jiraConfiguration = jiraConfiguration self.pillarId = pillarId self.questionId = questionId self.questionTitle = questionTitle @@ -360,6 +466,7 @@ extension WellArchitected { case choiceAnswerSummaries = "ChoiceAnswerSummaries" case choices = "Choices" case isApplicable = "IsApplicable" + case jiraConfiguration = "JiraConfiguration" case pillarId = "PillarId" case questionId = "QuestionId" case questionTitle = "QuestionTitle" @@ -903,10 +1010,8 @@ extension WellArchitected { try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 1) try self.validate(self.profileDescription, name: "profileDescription", parent: name, max: 100) try self.validate(self.profileDescription, name: "profileDescription", parent: name, min: 3) - try self.validate(self.profileDescription, name: "profileDescription", parent: name, pattern: "^[A-Za-z0-9-_.,:/()@!&?#+'’\\s]+$") try self.validate(self.profileName, name: "profileName", parent: name, max: 100) try self.validate(self.profileName, name: "profileName", parent: name, min: 3) - try self.validate(self.profileName, name: "profileName", parent: name, pattern: "^[A-Za-z0-9-_.,:/()@!&?#+'’\\s]+$") try self.profileQuestions?.forEach { try $0.validate(name: "\(name).profileQuestions[]") } @@ -1128,6 +1233,8 @@ extension WellArchitected { public let environment: WorkloadEnvironment? public let industry: String? public let industryType: String? + /// Jira configuration settings when creating a workload. + public let jiraConfiguration: WorkloadJiraConfigurationInput? public let lenses: [String]? public let nonAwsRegions: [String]? public let notes: String? @@ -1141,7 +1248,7 @@ extension WellArchitected { public let tags: [String: String]? public let workloadName: String? - public init(accountIds: [String]? = nil, applications: [String]? = nil, architecturalDesign: String? = nil, awsRegions: [String]? = nil, clientRequestToken: String? = nil, description: String? = nil, discoveryConfig: WorkloadDiscoveryConfig? = nil, environment: WorkloadEnvironment? = nil, industry: String? = nil, industryType: String? = nil, lenses: [String]? = nil, nonAwsRegions: [String]? = nil, notes: String? = nil, pillarPriorities: [String]? = nil, profileArns: [String]? = nil, reviewOwner: String? = nil, reviewTemplateArns: [String]? = nil, tags: [String: String]? = nil, workloadName: String? = nil) { + public init(accountIds: [String]? = nil, applications: [String]? = nil, architecturalDesign: String? = nil, awsRegions: [String]? = nil, clientRequestToken: String? = nil, description: String? = nil, discoveryConfig: WorkloadDiscoveryConfig? = nil, environment: WorkloadEnvironment? = nil, industry: String? = nil, industryType: String? = nil, jiraConfiguration: WorkloadJiraConfigurationInput? = nil, lenses: [String]? = nil, nonAwsRegions: [String]? = nil, notes: String? = nil, pillarPriorities: [String]? = nil, profileArns: [String]? = nil, reviewOwner: String? = nil, reviewTemplateArns: [String]? = nil, tags: [String: String]? = nil, workloadName: String? = nil) { self.accountIds = accountIds self.applications = applications self.architecturalDesign = architecturalDesign @@ -1152,6 +1259,7 @@ extension WellArchitected { self.environment = environment self.industry = industry self.industryType = industryType + self.jiraConfiguration = jiraConfiguration self.lenses = lenses self.nonAwsRegions = nonAwsRegions self.notes = notes @@ -1187,6 +1295,7 @@ extension WellArchitected { try self.validate(self.description, name: "description", parent: name, min: 3) try self.validate(self.industry, name: "industry", parent: name, max: 100) try self.validate(self.industryType, name: "industryType", parent: name, max: 100) + try self.jiraConfiguration?.validate(name: "\(name).jiraConfiguration") try self.lenses?.forEach { try validate($0, name: "lenses[]", parent: name, max: 128) try validate($0, name: "lenses[]", parent: name, min: 1) @@ -1236,6 +1345,7 @@ extension WellArchitected { case environment = "Environment" case industry = "Industry" case industryType = "IndustryType" + case jiraConfiguration = "JiraConfiguration" case lenses = "Lenses" case nonAwsRegions = "NonAwsRegions" case notes = "Notes" @@ -1772,6 +1882,27 @@ extension WellArchitected { } } + public struct GetGlobalSettingsOutput: AWSDecodableShape { + /// Discovery integration status. + public let discoveryIntegrationStatus: DiscoveryIntegrationStatus? + /// Jira configuration status. + public let jiraConfiguration: AccountJiraConfigurationOutput? + /// Amazon Web Services Organizations sharing status. + public let organizationSharingStatus: OrganizationSharingStatus? + + public init(discoveryIntegrationStatus: DiscoveryIntegrationStatus? = nil, jiraConfiguration: AccountJiraConfigurationOutput? = nil, organizationSharingStatus: OrganizationSharingStatus? = nil) { + self.discoveryIntegrationStatus = discoveryIntegrationStatus + self.jiraConfiguration = jiraConfiguration + self.organizationSharingStatus = organizationSharingStatus + } + + private enum CodingKeys: String, CodingKey { + case discoveryIntegrationStatus = "DiscoveryIntegrationStatus" + case jiraConfiguration = "JiraConfiguration" + case organizationSharingStatus = "OrganizationSharingStatus" + } + } + public struct GetLensInput: AWSEncodableShape { public let lensAlias: String /// The lens version to be retrieved. @@ -2305,14 +2436,17 @@ extension WellArchitected { /// The improvement plan details. public let improvementPlans: [ChoiceImprovementPlan]? public let improvementPlanUrl: String? + /// Configuration of the Jira integration. + public let jiraConfiguration: JiraConfiguration? public let pillarId: String? public let questionId: String? public let questionTitle: String? public let risk: Risk? - public init(improvementPlans: [ChoiceImprovementPlan]? = nil, improvementPlanUrl: String? = nil, pillarId: String? = nil, questionId: String? = nil, questionTitle: String? = nil, risk: Risk? = nil) { + public init(improvementPlans: [ChoiceImprovementPlan]? = nil, improvementPlanUrl: String? = nil, jiraConfiguration: JiraConfiguration? = nil, pillarId: String? = nil, questionId: String? = nil, questionTitle: String? = nil, risk: Risk? = nil) { self.improvementPlans = improvementPlans self.improvementPlanUrl = improvementPlanUrl + self.jiraConfiguration = jiraConfiguration self.pillarId = pillarId self.questionId = questionId self.questionTitle = questionTitle @@ -2322,6 +2456,7 @@ extension WellArchitected { private enum CodingKeys: String, CodingKey { case improvementPlans = "ImprovementPlans" case improvementPlanUrl = "ImprovementPlanUrl" + case jiraConfiguration = "JiraConfiguration" case pillarId = "PillarId" case questionId = "QuestionId" case questionTitle = "QuestionTitle" @@ -2329,6 +2464,41 @@ extension WellArchitected { } } + public struct JiraConfiguration: AWSDecodableShape { + /// The URL of the associated Jira issue. + public let jiraIssueUrl: String? + public let lastSyncedTime: Date? + + public init(jiraIssueUrl: String? = nil, lastSyncedTime: Date? = nil) { + self.jiraIssueUrl = jiraIssueUrl + self.lastSyncedTime = lastSyncedTime + } + + private enum CodingKeys: String, CodingKey { + case jiraIssueUrl = "JiraIssueUrl" + case lastSyncedTime = "LastSyncedTime" + } + } + + public struct JiraSelectedQuestionConfiguration: AWSEncodableShape & AWSDecodableShape { + /// Selected pillars in the workload. + public let selectedPillars: [SelectedPillar]? + + public init(selectedPillars: [SelectedPillar]? = nil) { + self.selectedPillars = selectedPillars + } + + public func validate(name: String) throws { + try self.selectedPillars?.forEach { + try $0.validate(name: "\(name).selectedPillars[]") + } + } + + private enum CodingKeys: String, CodingKey { + case selectedPillars = "SelectedPillars" + } + } + public struct Lens: AWSDecodableShape { public let description: String? /// The ARN of a lens. @@ -2385,6 +2555,8 @@ extension WellArchitected { } public struct LensReview: AWSDecodableShape { + /// Jira configuration status of the Lens review. + public let jiraConfiguration: JiraSelectedQuestionConfiguration? public let lensAlias: String? /// The ARN for the lens. public let lensArn: String? @@ -2402,7 +2574,8 @@ extension WellArchitected { public let riskCounts: [Risk: Int]? public let updatedAt: Date? - public init(lensAlias: String? = nil, lensArn: String? = nil, lensName: String? = nil, lensStatus: LensStatus? = nil, lensVersion: String? = nil, nextToken: String? = nil, notes: String? = nil, pillarReviewSummaries: [PillarReviewSummary]? = nil, prioritizedRiskCounts: [Risk: Int]? = nil, profiles: [WorkloadProfile]? = nil, riskCounts: [Risk: Int]? = nil, updatedAt: Date? = nil) { + public init(jiraConfiguration: JiraSelectedQuestionConfiguration? = nil, lensAlias: String? = nil, lensArn: String? = nil, lensName: String? = nil, lensStatus: LensStatus? = nil, lensVersion: String? = nil, nextToken: String? = nil, notes: String? = nil, pillarReviewSummaries: [PillarReviewSummary]? = nil, prioritizedRiskCounts: [Risk: Int]? = nil, profiles: [WorkloadProfile]? = nil, riskCounts: [Risk: Int]? = nil, updatedAt: Date? = nil) { + self.jiraConfiguration = jiraConfiguration self.lensAlias = lensAlias self.lensArn = lensArn self.lensName = lensName @@ -2418,6 +2591,7 @@ extension WellArchitected { } private enum CodingKeys: String, CodingKey { + case jiraConfiguration = "JiraConfiguration" case lensAlias = "LensAlias" case lensArn = "LensArn" case lensName = "LensName" @@ -3286,7 +3460,6 @@ extension WellArchitected { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.profileNamePrefix, name: "profileNamePrefix", parent: name, max: 100) - try self.validate(self.profileNamePrefix, name: "profileNamePrefix", parent: name, pattern: "^[A-Za-z0-9-_.,:/()@!&?#+'’\\s]+$") } private enum CodingKeys: CodingKey {} @@ -3454,7 +3627,6 @@ extension WellArchitected { try self.validate(self.maxResults, name: "maxResults", parent: name, max: 50) try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) try self.validate(self.profileNamePrefix, name: "profileNamePrefix", parent: name, max: 100) - try self.validate(self.profileNamePrefix, name: "profileNamePrefix", parent: name, pattern: "^[A-Za-z0-9-_.,:/()@!&?#+'’\\s]+$") try self.validate(self.templateNamePrefix, name: "templateNamePrefix", parent: name, max: 100) try self.validate(self.templateNamePrefix, name: "templateNamePrefix", parent: name, pattern: "^[A-Za-z0-9-_.,:/()@!&?#+'’\\s]+$") try self.validate(self.workloadNamePrefix, name: "workloadNamePrefix", parent: name, max: 100) @@ -4362,6 +4534,27 @@ extension WellArchitected { } } + public struct SelectedPillar: AWSEncodableShape & AWSDecodableShape { + public let pillarId: String? + /// Selected question IDs in the selected pillar. + public let selectedQuestionIds: [String]? + + public init(pillarId: String? = nil, selectedQuestionIds: [String]? = nil) { + self.pillarId = pillarId + self.selectedQuestionIds = selectedQuestionIds + } + + public func validate(name: String) throws { + try self.validate(self.pillarId, name: "pillarId", parent: name, max: 64) + try self.validate(self.pillarId, name: "pillarId", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case pillarId = "PillarId" + case selectedQuestionIds = "SelectedQuestionIds" + } + } + public struct ShareInvitation: AWSDecodableShape { public let lensAlias: String? /// The ARN for the lens. @@ -4633,27 +4826,72 @@ extension WellArchitected { public struct UpdateGlobalSettingsInput: AWSEncodableShape { /// The status of discovery support settings. public let discoveryIntegrationStatus: DiscoveryIntegrationStatus? + /// The status of Jira integration settings. + public let jiraConfiguration: AccountJiraConfigurationInput? /// The status of organization sharing settings. public let organizationSharingStatus: OrganizationSharingStatus? - public init(discoveryIntegrationStatus: DiscoveryIntegrationStatus? = nil, organizationSharingStatus: OrganizationSharingStatus? = nil) { + public init(discoveryIntegrationStatus: DiscoveryIntegrationStatus? = nil, jiraConfiguration: AccountJiraConfigurationInput? = nil, organizationSharingStatus: OrganizationSharingStatus? = nil) { self.discoveryIntegrationStatus = discoveryIntegrationStatus + self.jiraConfiguration = jiraConfiguration self.organizationSharingStatus = organizationSharingStatus } + public func validate(name: String) throws { + try self.jiraConfiguration?.validate(name: "\(name).jiraConfiguration") + } + private enum CodingKeys: String, CodingKey { case discoveryIntegrationStatus = "DiscoveryIntegrationStatus" + case jiraConfiguration = "JiraConfiguration" case organizationSharingStatus = "OrganizationSharingStatus" } } + public struct UpdateIntegrationInput: AWSEncodableShape { + public let clientRequestToken: String? + /// Which integrated service to update. + public let integratingService: IntegratingService? + public let workloadId: String + + public init(clientRequestToken: String? = nil, integratingService: IntegratingService? = nil, workloadId: String) { + self.clientRequestToken = clientRequestToken + self.integratingService = integratingService + self.workloadId = workloadId + } + + public func encode(to encoder: Encoder) throws { + let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.clientRequestToken, forKey: .clientRequestToken) + try container.encodeIfPresent(self.integratingService, forKey: .integratingService) + request.encodePath(self.workloadId, key: "WorkloadId") + } + + public func validate(name: String) throws { + try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, max: 2048) + try self.validate(self.clientRequestToken, name: "clientRequestToken", parent: name, min: 1) + try self.validate(self.workloadId, name: "workloadId", parent: name, max: 32) + try self.validate(self.workloadId, name: "workloadId", parent: name, min: 32) + try self.validate(self.workloadId, name: "workloadId", parent: name, pattern: "^[0-9a-f]{32}$") + } + + private enum CodingKeys: String, CodingKey { + case clientRequestToken = "ClientRequestToken" + case integratingService = "IntegratingService" + } + } + public struct UpdateLensReviewInput: AWSEncodableShape { + /// Configuration of the Jira integration. + public let jiraConfiguration: JiraSelectedQuestionConfiguration? public let lensAlias: String public let lensNotes: String? public let pillarNotes: [String: String]? public let workloadId: String - public init(lensAlias: String, lensNotes: String? = nil, pillarNotes: [String: String]? = nil, workloadId: String) { + public init(jiraConfiguration: JiraSelectedQuestionConfiguration? = nil, lensAlias: String, lensNotes: String? = nil, pillarNotes: [String: String]? = nil, workloadId: String) { + self.jiraConfiguration = jiraConfiguration self.lensAlias = lensAlias self.lensNotes = lensNotes self.pillarNotes = pillarNotes @@ -4663,6 +4901,7 @@ extension WellArchitected { public func encode(to encoder: Encoder) throws { let request = encoder.userInfo[.awsRequest]! as! RequestEncodingContainer var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.jiraConfiguration, forKey: .jiraConfiguration) request.encodePath(self.lensAlias, key: "LensAlias") try container.encodeIfPresent(self.lensNotes, forKey: .lensNotes) try container.encodeIfPresent(self.pillarNotes, forKey: .pillarNotes) @@ -4670,6 +4909,7 @@ extension WellArchitected { } public func validate(name: String) throws { + try self.jiraConfiguration?.validate(name: "\(name).jiraConfiguration") try self.validate(self.lensAlias, name: "lensAlias", parent: name, max: 128) try self.validate(self.lensAlias, name: "lensAlias", parent: name, min: 1) try self.validate(self.lensNotes, name: "lensNotes", parent: name, max: 2084) @@ -4684,6 +4924,7 @@ extension WellArchitected { } private enum CodingKeys: String, CodingKey { + case jiraConfiguration = "JiraConfiguration" case lensNotes = "LensNotes" case pillarNotes = "PillarNotes" } @@ -4731,7 +4972,6 @@ extension WellArchitected { try self.validate(self.profileArn, name: "profileArn", parent: name, pattern: "^arn:aws[-a-z]*:wellarchitected:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:profile/[a-z0-9]+$") try self.validate(self.profileDescription, name: "profileDescription", parent: name, max: 100) try self.validate(self.profileDescription, name: "profileDescription", parent: name, min: 3) - try self.validate(self.profileDescription, name: "profileDescription", parent: name, pattern: "^[A-Za-z0-9-_.,:/()@!&?#+'’\\s]+$") try self.profileQuestions?.forEach { try $0.validate(name: "\(name).profileQuestions[]") } @@ -5036,6 +5276,8 @@ extension WellArchitected { public let industryType: String? /// Flag indicating whether the workload owner has acknowledged that the Review owner field is required. If a Review owner is not added to the workload within 60 days of acknowledgement, access to the workload is restricted until an owner is added. public let isReviewOwnerUpdateAcknowledged: Bool? + /// Configuration of the Jira integration. + public let jiraConfiguration: WorkloadJiraConfigurationInput? public let nonAwsRegions: [String]? public let notes: String? public let pillarPriorities: [String]? @@ -5043,7 +5285,7 @@ extension WellArchitected { public let workloadId: String public let workloadName: String? - public init(accountIds: [String]? = nil, applications: [String]? = nil, architecturalDesign: String? = nil, awsRegions: [String]? = nil, description: String? = nil, discoveryConfig: WorkloadDiscoveryConfig? = nil, environment: WorkloadEnvironment? = nil, improvementStatus: WorkloadImprovementStatus? = nil, industry: String? = nil, industryType: String? = nil, isReviewOwnerUpdateAcknowledged: Bool? = nil, nonAwsRegions: [String]? = nil, notes: String? = nil, pillarPriorities: [String]? = nil, reviewOwner: String? = nil, workloadId: String, workloadName: String? = nil) { + public init(accountIds: [String]? = nil, applications: [String]? = nil, architecturalDesign: String? = nil, awsRegions: [String]? = nil, description: String? = nil, discoveryConfig: WorkloadDiscoveryConfig? = nil, environment: WorkloadEnvironment? = nil, improvementStatus: WorkloadImprovementStatus? = nil, industry: String? = nil, industryType: String? = nil, isReviewOwnerUpdateAcknowledged: Bool? = nil, jiraConfiguration: WorkloadJiraConfigurationInput? = nil, nonAwsRegions: [String]? = nil, notes: String? = nil, pillarPriorities: [String]? = nil, reviewOwner: String? = nil, workloadId: String, workloadName: String? = nil) { self.accountIds = accountIds self.applications = applications self.architecturalDesign = architecturalDesign @@ -5055,6 +5297,7 @@ extension WellArchitected { self.industry = industry self.industryType = industryType self.isReviewOwnerUpdateAcknowledged = isReviewOwnerUpdateAcknowledged + self.jiraConfiguration = jiraConfiguration self.nonAwsRegions = nonAwsRegions self.notes = notes self.pillarPriorities = pillarPriorities @@ -5077,6 +5320,7 @@ extension WellArchitected { try container.encodeIfPresent(self.industry, forKey: .industry) try container.encodeIfPresent(self.industryType, forKey: .industryType) try container.encodeIfPresent(self.isReviewOwnerUpdateAcknowledged, forKey: .isReviewOwnerUpdateAcknowledged) + try container.encodeIfPresent(self.jiraConfiguration, forKey: .jiraConfiguration) try container.encodeIfPresent(self.nonAwsRegions, forKey: .nonAwsRegions) try container.encodeIfPresent(self.notes, forKey: .notes) try container.encodeIfPresent(self.pillarPriorities, forKey: .pillarPriorities) @@ -5107,6 +5351,7 @@ extension WellArchitected { try self.validate(self.description, name: "description", parent: name, min: 3) try self.validate(self.industry, name: "industry", parent: name, max: 100) try self.validate(self.industryType, name: "industryType", parent: name, max: 100) + try self.jiraConfiguration?.validate(name: "\(name).jiraConfiguration") try self.nonAwsRegions?.forEach { try validate($0, name: "nonAwsRegions[]", parent: name, max: 25) try validate($0, name: "nonAwsRegions[]", parent: name, min: 3) @@ -5138,6 +5383,7 @@ extension WellArchitected { case industry = "Industry" case industryType = "IndustryType" case isReviewOwnerUpdateAcknowledged = "IsReviewOwnerUpdateAcknowledged" + case jiraConfiguration = "JiraConfiguration" case nonAwsRegions = "NonAwsRegions" case notes = "Notes" case pillarPriorities = "PillarPriorities" @@ -5348,6 +5594,8 @@ extension WellArchitected { public let industryType: String? /// Flag indicating whether the workload owner has acknowledged that the Review owner field is required. If a Review owner is not added to the workload within 60 days of acknowledgement, access to the workload is restricted until an owner is added. public let isReviewOwnerUpdateAcknowledged: Bool? + /// Jira configuration for a specific workload. + public let jiraConfiguration: WorkloadJiraConfigurationOutput? public let lenses: [String]? public let nonAwsRegions: [String]? public let notes: String? @@ -5368,7 +5616,7 @@ extension WellArchitected { public let workloadId: String? public let workloadName: String? - public init(accountIds: [String]? = nil, applications: [String]? = nil, architecturalDesign: String? = nil, awsRegions: [String]? = nil, description: String? = nil, discoveryConfig: WorkloadDiscoveryConfig? = nil, environment: WorkloadEnvironment? = nil, improvementStatus: WorkloadImprovementStatus? = nil, industry: String? = nil, industryType: String? = nil, isReviewOwnerUpdateAcknowledged: Bool? = nil, lenses: [String]? = nil, nonAwsRegions: [String]? = nil, notes: String? = nil, owner: String? = nil, pillarPriorities: [String]? = nil, prioritizedRiskCounts: [Risk: Int]? = nil, profiles: [WorkloadProfile]? = nil, reviewOwner: String? = nil, reviewRestrictionDate: Date? = nil, riskCounts: [Risk: Int]? = nil, shareInvitationId: String? = nil, tags: [String: String]? = nil, updatedAt: Date? = nil, workloadArn: String? = nil, workloadId: String? = nil, workloadName: String? = nil) { + public init(accountIds: [String]? = nil, applications: [String]? = nil, architecturalDesign: String? = nil, awsRegions: [String]? = nil, description: String? = nil, discoveryConfig: WorkloadDiscoveryConfig? = nil, environment: WorkloadEnvironment? = nil, improvementStatus: WorkloadImprovementStatus? = nil, industry: String? = nil, industryType: String? = nil, isReviewOwnerUpdateAcknowledged: Bool? = nil, jiraConfiguration: WorkloadJiraConfigurationOutput? = nil, lenses: [String]? = nil, nonAwsRegions: [String]? = nil, notes: String? = nil, owner: String? = nil, pillarPriorities: [String]? = nil, prioritizedRiskCounts: [Risk: Int]? = nil, profiles: [WorkloadProfile]? = nil, reviewOwner: String? = nil, reviewRestrictionDate: Date? = nil, riskCounts: [Risk: Int]? = nil, shareInvitationId: String? = nil, tags: [String: String]? = nil, updatedAt: Date? = nil, workloadArn: String? = nil, workloadId: String? = nil, workloadName: String? = nil) { self.accountIds = accountIds self.applications = applications self.architecturalDesign = architecturalDesign @@ -5380,6 +5628,7 @@ extension WellArchitected { self.industry = industry self.industryType = industryType self.isReviewOwnerUpdateAcknowledged = isReviewOwnerUpdateAcknowledged + self.jiraConfiguration = jiraConfiguration self.lenses = lenses self.nonAwsRegions = nonAwsRegions self.notes = notes @@ -5410,6 +5659,7 @@ extension WellArchitected { case industry = "Industry" case industryType = "IndustryType" case isReviewOwnerUpdateAcknowledged = "IsReviewOwnerUpdateAcknowledged" + case jiraConfiguration = "JiraConfiguration" case lenses = "Lenses" case nonAwsRegions = "NonAwsRegions" case notes = "Notes" @@ -5446,6 +5696,58 @@ extension WellArchitected { } } + public struct WorkloadJiraConfigurationInput: AWSEncodableShape { + /// Workload-level: Jira issue management status. + public let issueManagementStatus: WorkloadIssueManagementStatus? + /// Workload-level: Jira issue management type. + public let issueManagementType: IssueManagementType? + /// Workload-level: Jira project key to sync workloads to. + public let jiraProjectKey: String? + + public init(issueManagementStatus: WorkloadIssueManagementStatus? = nil, issueManagementType: IssueManagementType? = nil, jiraProjectKey: String? = nil) { + self.issueManagementStatus = issueManagementStatus + self.issueManagementType = issueManagementType + self.jiraProjectKey = jiraProjectKey + } + + public func validate(name: String) throws { + try self.validate(self.jiraProjectKey, name: "jiraProjectKey", parent: name, max: 100) + try self.validate(self.jiraProjectKey, name: "jiraProjectKey", parent: name, min: 1) + try self.validate(self.jiraProjectKey, name: "jiraProjectKey", parent: name, pattern: "^[A-Z][A-Z0-9_]*$") + } + + private enum CodingKeys: String, CodingKey { + case issueManagementStatus = "IssueManagementStatus" + case issueManagementType = "IssueManagementType" + case jiraProjectKey = "JiraProjectKey" + } + } + + public struct WorkloadJiraConfigurationOutput: AWSDecodableShape { + /// Workload-level: Jira issue management status. + public let issueManagementStatus: WorkloadIssueManagementStatus? + /// Workload-level: Jira issue management type. + public let issueManagementType: IssueManagementType? + /// Workload-level: Jira project key to sync workloads to. + public let jiraProjectKey: String? + /// Workload-level: Status message on configuration of the Jira integration. + public let statusMessage: String? + + public init(issueManagementStatus: WorkloadIssueManagementStatus? = nil, issueManagementType: IssueManagementType? = nil, jiraProjectKey: String? = nil, statusMessage: String? = nil) { + self.issueManagementStatus = issueManagementStatus + self.issueManagementType = issueManagementType + self.jiraProjectKey = jiraProjectKey + self.statusMessage = statusMessage + } + + private enum CodingKeys: String, CodingKey { + case issueManagementStatus = "IssueManagementStatus" + case issueManagementType = "IssueManagementType" + case jiraProjectKey = "JiraProjectKey" + case statusMessage = "StatusMessage" + } + } + public struct WorkloadProfile: AWSDecodableShape { /// The profile ARN. public let profileArn: String? diff --git a/Sources/Soto/Services/WorkSpaces/WorkSpaces_api.swift b/Sources/Soto/Services/WorkSpaces/WorkSpaces_api.swift index 1e5626f67c..3c8d9c2cbd 100644 --- a/Sources/Soto/Services/WorkSpaces/WorkSpaces_api.swift +++ b/Sources/Soto/Services/WorkSpaces/WorkSpaces_api.swift @@ -85,6 +85,19 @@ public struct WorkSpaces: AWSService { // MARK: API Calls + /// Accepts the account link invitation. There's currently no unlinking capability after you accept the account linking invitation. + @Sendable + public func acceptAccountLinkInvitation(_ input: AcceptAccountLinkInvitationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> AcceptAccountLinkInvitationResult { + return try await self.client.execute( + operation: "AcceptAccountLinkInvitation", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Associates the specified connection alias with the specified directory to enable cross-Region redirection. For more information, see Cross-Region Redirection for Amazon WorkSpaces. Before performing this operation, call DescribeConnectionAliases to make sure that the current state of the connection alias is CREATED. @Sendable public func associateConnectionAlias(_ input: AssociateConnectionAliasRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> AssociateConnectionAliasResult { @@ -150,6 +163,19 @@ public struct WorkSpaces: AWSService { ) } + /// Creates the account link invitation. + @Sendable + public func createAccountLinkInvitation(_ input: CreateAccountLinkInvitationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateAccountLinkInvitationResult { + return try await self.client.execute( + operation: "CreateAccountLinkInvitation", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Creates a client-add-in for Amazon Connect within a directory. You can create only one Amazon Connect client add-in within a directory. This client add-in allows WorkSpaces users to seamlessly connect to Amazon Connect. @Sendable public func createConnectClientAddIn(_ input: CreateConnectClientAddInRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateConnectClientAddInResult { @@ -267,6 +293,19 @@ public struct WorkSpaces: AWSService { ) } + /// Deletes the account link invitation. + @Sendable + public func deleteAccountLinkInvitation(_ input: DeleteAccountLinkInvitationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteAccountLinkInvitationResult { + return try await self.client.execute( + operation: "DeleteAccountLinkInvitation", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Deletes customized client branding. Client branding allows you to customize your WorkSpace's client login portal. You can tailor your login portal company logo, the support email address, support link, link to reset password, and a custom message for users trying to sign in. After you delete your customized client branding, your login portal reverts to the default client branding. @Sendable public func deleteClientBranding(_ input: DeleteClientBrandingRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteClientBrandingResult { @@ -696,6 +735,19 @@ public struct WorkSpaces: AWSService { ) } + /// Retrieves account link information. + @Sendable + public func getAccountLink(_ input: GetAccountLinkRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetAccountLinkResult { + return try await self.client.execute( + operation: "GetAccountLink", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Imports client branding. Client branding allows you to customize your WorkSpace's client login portal. You can tailor your login portal company logo, the support email address, support link, link to reset password, and a custom message for users trying to sign in. After you import client branding, the default branding experience for the specified platform type is replaced with the imported experience You must specify at least one platform type when importing client branding. You can import up to 6 MB of data with each request. If your request exceeds this limit, you can import client branding for different platform types using separate requests. In each platform type, the SupportEmail and SupportLink parameters are mutually exclusive. You can specify only one parameter for each platform type, but not both. Imported data can take up to a minute to appear in the WorkSpaces client. @Sendable public func importClientBranding(_ input: ImportClientBrandingRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ImportClientBrandingResult { @@ -722,6 +774,19 @@ public struct WorkSpaces: AWSService { ) } + /// Lists all account links. + @Sendable + public func listAccountLinks(_ input: ListAccountLinksRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListAccountLinksResult { + return try await self.client.execute( + operation: "ListAccountLinks", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Retrieves a list of IP address ranges, specified as IPv4 CIDR blocks, that you can use for the network management interface when you enable Bring Your Own License (BYOL). This operation can be run only by Amazon Web Services accounts that are enabled for BYOL. If your account isn't enabled for BYOL, you'll receive an AccessDeniedException error. The management network interface is connected to a secure Amazon WorkSpaces management network. It is used for interactive streaming of the WorkSpace desktop to Amazon WorkSpaces clients, and to allow Amazon WorkSpaces to manage the WorkSpace. @Sendable public func listAvailableManagementCidrRanges(_ input: ListAvailableManagementCidrRangesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListAvailableManagementCidrRangesResult { @@ -904,6 +969,19 @@ public struct WorkSpaces: AWSService { ) } + /// Rejects the account link invitation. + @Sendable + public func rejectAccountLinkInvitation(_ input: RejectAccountLinkInvitationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> RejectAccountLinkInvitationResult { + return try await self.client.execute( + operation: "RejectAccountLinkInvitation", + path: "/", + httpMethod: .POST, + serviceConfig: self.config, + input: input, + logger: logger + ) + } + /// Restores the specified WorkSpace to its last known healthy state. You cannot restore a WorkSpace unless its state is AVAILABLE, ERROR, UNHEALTHY, or STOPPED. Restoring a WorkSpace is a potentially destructive action that can result in the loss of data. For more information, see Restore a WorkSpace. This operation is asynchronous and returns before the WorkSpace is completely restored. @Sendable public func restoreWorkspace(_ input: RestoreWorkspaceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> RestoreWorkspaceResult { @@ -1142,6 +1220,25 @@ extension WorkSpaces { logger: logger ) } + + /// Lists all account links. + /// Return PaginatorSequence for operation. + /// + /// - Parameters: + /// - input: Input for request + /// - logger: Logger used flot logging + public func listAccountLinksPaginator( + _ input: ListAccountLinksRequest, + logger: Logger = AWSClient.loggingDisabled + ) -> AWSClient.PaginatorSequence { + return .init( + input: input, + command: self.listAccountLinks, + inputKey: \ListAccountLinksRequest.nextToken, + outputKey: \ListAccountLinksResult.nextToken, + logger: logger + ) + } } extension WorkSpaces.DescribeApplicationAssociationsRequest: AWSPaginateToken { @@ -1202,3 +1299,13 @@ extension WorkSpaces.DescribeWorkspacesRequest: AWSPaginateToken { ) } } + +extension WorkSpaces.ListAccountLinksRequest: AWSPaginateToken { + public func usingPaginationToken(_ token: String) -> WorkSpaces.ListAccountLinksRequest { + return .init( + linkStatusFilter: self.linkStatusFilter, + maxResults: self.maxResults, + nextToken: token + ) + } +} diff --git a/Sources/Soto/Services/WorkSpaces/WorkSpaces_shapes.swift b/Sources/Soto/Services/WorkSpaces/WorkSpaces_shapes.swift index df67f3a287..3772ca4b43 100644 --- a/Sources/Soto/Services/WorkSpaces/WorkSpaces_shapes.swift +++ b/Sources/Soto/Services/WorkSpaces/WorkSpaces_shapes.swift @@ -32,6 +32,15 @@ extension WorkSpaces { public var description: String { return self.rawValue } } + public enum AccountLinkStatusEnum: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case linkNotFound = "LINK_NOT_FOUND" + case linked = "LINKED" + case linkingFailed = "LINKING_FAILED" + case pendingAcceptanceByTargetAccount = "PENDING_ACCEPTANCE_BY_TARGET_ACCOUNT" + case rejected = "REJECTED" + public var description: String { return self.rawValue } + } + public enum Application: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case microsoftOffice2016 = "Microsoft_Office_2016" case microsoftOffice2019 = "Microsoft_Office_2019" @@ -136,6 +145,12 @@ extension WorkSpaces { public var description: String { return self.rawValue } } + public enum DedicatedTenancyAccountType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case sourceAccount = "SOURCE_ACCOUNT" + case targetAccount = "TARGET_ACCOUNT" + public var description: String { return self.rawValue } + } + public enum DedicatedTenancyModificationStateEnum: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case completed = "COMPLETED" case failed = "FAILED" @@ -378,6 +393,66 @@ extension WorkSpaces { // MARK: Shapes + public struct AcceptAccountLinkInvitationRequest: AWSEncodableShape { + /// A string of up to 64 ASCII characters that Amazon EFS uses to ensure idempotent creation. + public let clientToken: String? + /// The identifier of the account link. + public let linkId: String + + public init(clientToken: String? = nil, linkId: String) { + self.clientToken = clientToken + self.linkId = linkId + } + + public func validate(name: String) throws { + try self.validate(self.clientToken, name: "clientToken", parent: name, pattern: "^.{1,64}$") + try self.validate(self.linkId, name: "linkId", parent: name, pattern: "^link-.{8,24}$") + } + + private enum CodingKeys: String, CodingKey { + case clientToken = "ClientToken" + case linkId = "LinkId" + } + } + + public struct AcceptAccountLinkInvitationResult: AWSDecodableShape { + /// Information about the account link. + public let accountLink: AccountLink? + + public init(accountLink: AccountLink? = nil) { + self.accountLink = accountLink + } + + private enum CodingKeys: String, CodingKey { + case accountLink = "AccountLink" + } + } + + public struct AccountLink: AWSDecodableShape { + /// The identifier of the account link. + public let accountLinkId: String? + /// The status of the account link. + public let accountLinkStatus: AccountLinkStatusEnum? + /// The identifier of the source account. + public let sourceAccountId: String? + /// The identifier of the target account. + public let targetAccountId: String? + + public init(accountLinkId: String? = nil, accountLinkStatus: AccountLinkStatusEnum? = nil, sourceAccountId: String? = nil, targetAccountId: String? = nil) { + self.accountLinkId = accountLinkId + self.accountLinkStatus = accountLinkStatus + self.sourceAccountId = sourceAccountId + self.targetAccountId = targetAccountId + } + + private enum CodingKeys: String, CodingKey { + case accountLinkId = "AccountLinkId" + case accountLinkStatus = "AccountLinkStatus" + case sourceAccountId = "SourceAccountId" + case targetAccountId = "TargetAccountId" + } + } + public struct AccountModification: AWSDecodableShape { /// The IP address range, specified as an IPv4 CIDR block, for the management network interface used for the account. public let dedicatedTenancyManagementCidrRange: String? @@ -857,6 +932,41 @@ extension WorkSpaces { } } + public struct CreateAccountLinkInvitationRequest: AWSEncodableShape { + /// A string of up to 64 ASCII characters that Amazon EFS uses to ensure idempotent creation. + public let clientToken: String? + /// The identifier of the target account. + public let targetAccountId: String + + public init(clientToken: String? = nil, targetAccountId: String) { + self.clientToken = clientToken + self.targetAccountId = targetAccountId + } + + public func validate(name: String) throws { + try self.validate(self.clientToken, name: "clientToken", parent: name, pattern: "^.{1,64}$") + try self.validate(self.targetAccountId, name: "targetAccountId", parent: name, pattern: "^\\d{12}$") + } + + private enum CodingKeys: String, CodingKey { + case clientToken = "ClientToken" + case targetAccountId = "TargetAccountId" + } + } + + public struct CreateAccountLinkInvitationResult: AWSDecodableShape { + /// Information about the account link. + public let accountLink: AccountLink? + + public init(accountLink: AccountLink? = nil) { + self.accountLink = accountLink + } + + private enum CodingKeys: String, CodingKey { + case accountLink = "AccountLink" + } + } + public struct CreateConnectClientAddInRequest: AWSEncodableShape { /// The name of the client add-in. public let name: String @@ -1415,6 +1525,41 @@ extension WorkSpaces { } } + public struct DeleteAccountLinkInvitationRequest: AWSEncodableShape { + /// A string of up to 64 ASCII characters that Amazon EFS uses to ensure idempotent creation. + public let clientToken: String? + /// The identifier of the account link. + public let linkId: String + + public init(clientToken: String? = nil, linkId: String) { + self.clientToken = clientToken + self.linkId = linkId + } + + public func validate(name: String) throws { + try self.validate(self.clientToken, name: "clientToken", parent: name, pattern: "^.{1,64}$") + try self.validate(self.linkId, name: "linkId", parent: name, pattern: "^link-.{8,24}$") + } + + private enum CodingKeys: String, CodingKey { + case clientToken = "ClientToken" + case linkId = "LinkId" + } + } + + public struct DeleteAccountLinkInvitationResult: AWSDecodableShape { + /// Information about the account link. + public let accountLink: AccountLink? + + public init(accountLink: AccountLink? = nil) { + self.accountLink = accountLink + } + + private enum CodingKeys: String, CodingKey { + case accountLink = "AccountLink" + } + } + public struct DeleteClientBrandingRequest: AWSEncodableShape { /// The device type for which you want to delete client branding. public let platforms: [ClientDeviceType] @@ -1685,17 +1830,21 @@ extension WorkSpaces { } public struct DescribeAccountResult: AWSDecodableShape { + /// The type of linked account. + public let dedicatedTenancyAccountType: DedicatedTenancyAccountType? /// The IP address range, specified as an IPv4 CIDR block, used for the management network interface. The management network interface is connected to a secure Amazon WorkSpaces management network. It is used for interactive streaming of the WorkSpace desktop to Amazon WorkSpaces clients, and to allow Amazon WorkSpaces to manage the WorkSpace. public let dedicatedTenancyManagementCidrRange: String? /// The status of BYOL (whether BYOL is enabled or disabled). public let dedicatedTenancySupport: DedicatedTenancySupportResultEnum? - public init(dedicatedTenancyManagementCidrRange: String? = nil, dedicatedTenancySupport: DedicatedTenancySupportResultEnum? = nil) { + public init(dedicatedTenancyAccountType: DedicatedTenancyAccountType? = nil, dedicatedTenancyManagementCidrRange: String? = nil, dedicatedTenancySupport: DedicatedTenancySupportResultEnum? = nil) { + self.dedicatedTenancyAccountType = dedicatedTenancyAccountType self.dedicatedTenancyManagementCidrRange = dedicatedTenancyManagementCidrRange self.dedicatedTenancySupport = dedicatedTenancySupport } private enum CodingKeys: String, CodingKey { + case dedicatedTenancyAccountType = "DedicatedTenancyAccountType" case dedicatedTenancyManagementCidrRange = "DedicatedTenancyManagementCidrRange" case dedicatedTenancySupport = "DedicatedTenancySupport" } @@ -2764,6 +2913,41 @@ extension WorkSpaces { } } + public struct GetAccountLinkRequest: AWSEncodableShape { + /// The identifier of the account link + public let linkedAccountId: String? + /// The identifier of the account to link. + public let linkId: String? + + public init(linkedAccountId: String? = nil, linkId: String? = nil) { + self.linkedAccountId = linkedAccountId + self.linkId = linkId + } + + public func validate(name: String) throws { + try self.validate(self.linkedAccountId, name: "linkedAccountId", parent: name, pattern: "^\\d{12}$") + try self.validate(self.linkId, name: "linkId", parent: name, pattern: "^link-.{8,24}$") + } + + private enum CodingKeys: String, CodingKey { + case linkedAccountId = "LinkedAccountId" + case linkId = "LinkId" + } + } + + public struct GetAccountLinkResult: AWSDecodableShape { + /// The account link of the account link to retrieve. + public let accountLink: AccountLink? + + public init(accountLink: AccountLink? = nil) { + self.accountLink = accountLink + } + + private enum CodingKeys: String, CodingKey { + case accountLink = "AccountLink" + } + } + public struct ImagePermission: AWSDecodableShape { /// The identifier of the Amazon Web Services account that an image has been shared with. public let sharedAccountId: String? @@ -3073,6 +3257,51 @@ extension WorkSpaces { } } + public struct ListAccountLinksRequest: AWSEncodableShape { + /// Filters the account based on their link status. + public let linkStatusFilter: [AccountLinkStatusEnum]? + /// The maximum number of accounts to return. + public let maxResults: Int? + /// 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(linkStatusFilter: [AccountLinkStatusEnum]? = nil, maxResults: Int? = nil, nextToken: String? = nil) { + self.linkStatusFilter = linkStatusFilter + self.maxResults = maxResults + self.nextToken = nextToken + } + + public func validate(name: String) throws { + try self.validate(self.maxResults, name: "maxResults", parent: name, max: 25) + try self.validate(self.maxResults, name: "maxResults", parent: name, min: 1) + try self.validate(self.nextToken, name: "nextToken", parent: name, max: 2048) + try self.validate(self.nextToken, name: "nextToken", parent: name, min: 1) + } + + private enum CodingKeys: String, CodingKey { + case linkStatusFilter = "LinkStatusFilter" + case maxResults = "MaxResults" + case nextToken = "NextToken" + } + } + + public struct ListAccountLinksResult: AWSDecodableShape { + /// Information about the account links. + public let accountLinks: [AccountLink]? + /// 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(accountLinks: [AccountLink]? = nil, nextToken: String? = nil) { + self.accountLinks = accountLinks + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case accountLinks = "AccountLinks" + case nextToken = "NextToken" + } + } + public struct ListAvailableManagementCidrRangesRequest: AWSEncodableShape { /// The IP address range to search. Specify an IP address range that is compatible with your network and in CIDR notation (that is, specify the range as an IPv4 CIDR block). public let managementCidrRangeConstraint: String @@ -3617,6 +3846,41 @@ extension WorkSpaces { public init() {} } + public struct RejectAccountLinkInvitationRequest: AWSEncodableShape { + /// The client token of the account link invitation to reject. + public let clientToken: String? + /// The identifier of the account link + public let linkId: String + + public init(clientToken: String? = nil, linkId: String) { + self.clientToken = clientToken + self.linkId = linkId + } + + public func validate(name: String) throws { + try self.validate(self.clientToken, name: "clientToken", parent: name, pattern: "^.{1,64}$") + try self.validate(self.linkId, name: "linkId", parent: name, pattern: "^link-.{8,24}$") + } + + private enum CodingKeys: String, CodingKey { + case clientToken = "ClientToken" + case linkId = "LinkId" + } + } + + public struct RejectAccountLinkInvitationResult: AWSDecodableShape { + /// Information about the account link. + public let accountLink: AccountLink? + + public init(accountLink: AccountLink? = nil) { + self.accountLink = accountLink + } + + private enum CodingKeys: String, CodingKey { + case accountLink = "AccountLink" + } + } + public struct RelatedWorkspaceProperties: AWSDecodableShape { /// The Region of the related WorkSpace. public let region: String? @@ -4807,7 +5071,9 @@ public struct WorkSpacesErrorType: AWSErrorType { case accessDeniedException = "AccessDeniedException" case applicationNotSupportedException = "ApplicationNotSupportedException" case computeNotCompatibleException = "ComputeNotCompatibleException" + case conflictException = "ConflictException" case incompatibleApplicationsException = "IncompatibleApplicationsException" + case internalServerException = "InternalServerException" case invalidParameterValuesException = "InvalidParameterValuesException" case invalidResourceStateException = "InvalidResourceStateException" case operatingSystemNotCompatibleException = "OperatingSystemNotCompatibleException" @@ -4822,6 +5088,7 @@ public struct WorkSpacesErrorType: AWSErrorType { case resourceUnavailableException = "ResourceUnavailableException" case unsupportedNetworkConfigurationException = "UnsupportedNetworkConfigurationException" case unsupportedWorkspaceConfigurationException = "UnsupportedWorkspaceConfigurationException" + case validationException = "ValidationException" case workspacesDefaultRoleNotFoundException = "WorkspacesDefaultRoleNotFoundException" } @@ -4849,8 +5116,12 @@ public struct WorkSpacesErrorType: AWSErrorType { public static var applicationNotSupportedException: Self { .init(.applicationNotSupportedException) } /// The compute type of the WorkSpace is not compatible with the application. public static var computeNotCompatibleException: Self { .init(.computeNotCompatibleException) } + /// The TargetAccountId is already linked or invited. + public static var conflictException: Self { .init(.conflictException) } /// The specified application is not compatible with the resource. public static var incompatibleApplicationsException: Self { .init(.incompatibleApplicationsException) } + /// Unexpected server error occured. + public static var internalServerException: Self { .init(.internalServerException) } /// One or more parameter values are not valid. public static var invalidParameterValuesException: Self { .init(.invalidParameterValuesException) } /// The state of the resource is not valid for this operation. @@ -4879,6 +5150,8 @@ public struct WorkSpacesErrorType: AWSErrorType { public static var unsupportedNetworkConfigurationException: Self { .init(.unsupportedNetworkConfigurationException) } /// The configuration of this WorkSpace is not supported for this operation. For more information, see Required Configuration and Service Components for WorkSpaces . public static var unsupportedWorkspaceConfigurationException: Self { .init(.unsupportedWorkspaceConfigurationException) } + /// You either haven't provided a TargetAccountId or are using the same value for TargetAccountId and SourceAccountId. + public static var validationException: Self { .init(.validationException) } /// The workspaces_DefaultRole role could not be found. If this is the first time you are registering a directory, you will need to create the workspaces_DefaultRole role before you can register a directory. For more information, see Creating the workspaces_DefaultRole Role. public static var workspacesDefaultRoleNotFoundException: Self { .init(.workspacesDefaultRoleNotFoundException) } } diff --git a/Sources/Soto/Services/WorkSpacesThinClient/WorkSpacesThinClient_shapes.swift b/Sources/Soto/Services/WorkSpacesThinClient/WorkSpacesThinClient_shapes.swift index 3eef81c007..dcbd3a3474 100644 --- a/Sources/Soto/Services/WorkSpacesThinClient/WorkSpacesThinClient_shapes.swift +++ b/Sources/Soto/Services/WorkSpacesThinClient/WorkSpacesThinClient_shapes.swift @@ -330,11 +330,11 @@ extension WorkSpacesThinClient { /// The status of the device. public let status: DeviceStatus? /// The tag keys and optional values for the resource. - public let tags: EmbeddedTag? + public let tags: [String: String]? /// The timestamp of when the device was updated. public let updatedAt: Date? - public init(arn: String? = nil, createdAt: Date? = nil, currentSoftwareSetId: String? = nil, currentSoftwareSetVersion: String? = nil, desiredSoftwareSetId: String? = nil, environmentId: String? = nil, id: String? = nil, kmsKeyArn: String? = nil, lastConnectedAt: Date? = nil, lastPostureAt: Date? = nil, model: String? = nil, name: String? = nil, pendingSoftwareSetId: String? = nil, pendingSoftwareSetVersion: String? = nil, serialNumber: String? = nil, softwareSetComplianceStatus: DeviceSoftwareSetComplianceStatus? = nil, softwareSetUpdateSchedule: SoftwareSetUpdateSchedule? = nil, softwareSetUpdateStatus: SoftwareSetUpdateStatus? = nil, status: DeviceStatus? = nil, tags: EmbeddedTag? = nil, updatedAt: Date? = nil) { + public init(arn: String? = nil, createdAt: Date? = nil, currentSoftwareSetId: String? = nil, currentSoftwareSetVersion: String? = nil, desiredSoftwareSetId: String? = nil, environmentId: String? = nil, id: String? = nil, kmsKeyArn: String? = nil, lastConnectedAt: Date? = nil, lastPostureAt: Date? = nil, model: String? = nil, name: String? = nil, pendingSoftwareSetId: String? = nil, pendingSoftwareSetVersion: String? = nil, serialNumber: String? = nil, softwareSetComplianceStatus: DeviceSoftwareSetComplianceStatus? = nil, softwareSetUpdateSchedule: SoftwareSetUpdateSchedule? = nil, softwareSetUpdateStatus: SoftwareSetUpdateStatus? = nil, status: DeviceStatus? = nil, tags: [String: String]? = nil, updatedAt: Date? = nil) { self.arn = arn self.createdAt = createdAt self.currentSoftwareSetId = currentSoftwareSetId @@ -412,12 +412,10 @@ extension WorkSpacesThinClient { public let softwareSetUpdateSchedule: SoftwareSetUpdateSchedule? /// The status of the device. public let status: DeviceStatus? - /// The tag keys and optional values for the resource. - public let tags: EmbeddedTag? /// The timestamp of when the device was updated. public let updatedAt: Date? - public init(arn: String? = nil, createdAt: Date? = nil, currentSoftwareSetId: String? = nil, desiredSoftwareSetId: String? = nil, environmentId: String? = nil, id: String? = nil, lastConnectedAt: Date? = nil, lastPostureAt: Date? = nil, model: String? = nil, name: String? = nil, pendingSoftwareSetId: String? = nil, serialNumber: String? = nil, softwareSetUpdateSchedule: SoftwareSetUpdateSchedule? = nil, status: DeviceStatus? = nil, tags: EmbeddedTag? = nil, updatedAt: Date? = nil) { + public init(arn: String? = nil, createdAt: Date? = nil, currentSoftwareSetId: String? = nil, desiredSoftwareSetId: String? = nil, environmentId: String? = nil, id: String? = nil, lastConnectedAt: Date? = nil, lastPostureAt: Date? = nil, model: String? = nil, name: String? = nil, pendingSoftwareSetId: String? = nil, serialNumber: String? = nil, softwareSetUpdateSchedule: SoftwareSetUpdateSchedule? = nil, status: DeviceStatus? = nil, updatedAt: Date? = nil) { self.arn = arn self.createdAt = createdAt self.currentSoftwareSetId = currentSoftwareSetId @@ -432,7 +430,6 @@ extension WorkSpacesThinClient { self.serialNumber = serialNumber self.softwareSetUpdateSchedule = softwareSetUpdateSchedule self.status = status - self.tags = tags self.updatedAt = updatedAt } @@ -451,28 +448,10 @@ extension WorkSpacesThinClient { case serialNumber = "serialNumber" case softwareSetUpdateSchedule = "softwareSetUpdateSchedule" case status = "status" - case tags = "tags" case updatedAt = "updatedAt" } } - public struct EmbeddedTag: AWSDecodableShape { - /// The internal ID of a resource to tag. - public let internalId: String? - /// The Amazon Resource Name (ARN) of a resource to tag. - public let resourceArn: String? - - public init(internalId: String? = nil, resourceArn: String? = nil) { - self.internalId = internalId - self.resourceArn = resourceArn - } - - private enum CodingKeys: String, CodingKey { - case internalId = "internalId" - case resourceArn = "resourceArn" - } - } - public struct Environment: AWSDecodableShape { /// The activation code to register a device to the environment. public let activationCode: String? @@ -509,11 +488,11 @@ extension WorkSpacesThinClient { /// An option to define if software updates should be applied within a maintenance window. public let softwareSetUpdateSchedule: SoftwareSetUpdateSchedule? /// The tag keys and optional values for the resource. - public let tags: EmbeddedTag? + public let tags: [String: String]? /// The timestamp of when the device was updated. public let updatedAt: Date? - public init(activationCode: String? = nil, arn: String? = nil, createdAt: Date? = nil, desiredSoftwareSetId: String? = nil, desktopArn: String? = nil, desktopEndpoint: String? = nil, desktopType: DesktopType? = nil, id: String? = nil, kmsKeyArn: String? = nil, maintenanceWindow: MaintenanceWindow? = nil, name: String? = nil, pendingSoftwareSetId: String? = nil, pendingSoftwareSetVersion: String? = nil, registeredDevicesCount: Int? = nil, softwareSetComplianceStatus: EnvironmentSoftwareSetComplianceStatus? = nil, softwareSetUpdateMode: SoftwareSetUpdateMode? = nil, softwareSetUpdateSchedule: SoftwareSetUpdateSchedule? = nil, tags: EmbeddedTag? = nil, updatedAt: Date? = nil) { + public init(activationCode: String? = nil, arn: String? = nil, createdAt: Date? = nil, desiredSoftwareSetId: String? = nil, desktopArn: String? = nil, desktopEndpoint: String? = nil, desktopType: DesktopType? = nil, id: String? = nil, kmsKeyArn: String? = nil, maintenanceWindow: MaintenanceWindow? = nil, name: String? = nil, pendingSoftwareSetId: String? = nil, pendingSoftwareSetVersion: String? = nil, registeredDevicesCount: Int? = nil, softwareSetComplianceStatus: EnvironmentSoftwareSetComplianceStatus? = nil, softwareSetUpdateMode: SoftwareSetUpdateMode? = nil, softwareSetUpdateSchedule: SoftwareSetUpdateSchedule? = nil, tags: [String: String]? = nil, updatedAt: Date? = nil) { self.activationCode = activationCode self.arn = arn self.createdAt = createdAt @@ -585,12 +564,10 @@ extension WorkSpacesThinClient { public let softwareSetUpdateMode: SoftwareSetUpdateMode? /// An option to define if software updates should be applied within a maintenance window. public let softwareSetUpdateSchedule: SoftwareSetUpdateSchedule? - /// The tag keys and optional values for the resource. - public let tags: EmbeddedTag? /// The timestamp of when the device was updated. public let updatedAt: Date? - public init(activationCode: String? = nil, arn: String? = nil, createdAt: Date? = nil, desiredSoftwareSetId: String? = nil, desktopArn: String? = nil, desktopEndpoint: String? = nil, desktopType: DesktopType? = nil, id: String? = nil, maintenanceWindow: MaintenanceWindow? = nil, name: String? = nil, pendingSoftwareSetId: String? = nil, softwareSetUpdateMode: SoftwareSetUpdateMode? = nil, softwareSetUpdateSchedule: SoftwareSetUpdateSchedule? = nil, tags: EmbeddedTag? = nil, updatedAt: Date? = nil) { + public init(activationCode: String? = nil, arn: String? = nil, createdAt: Date? = nil, desiredSoftwareSetId: String? = nil, desktopArn: String? = nil, desktopEndpoint: String? = nil, desktopType: DesktopType? = nil, id: String? = nil, maintenanceWindow: MaintenanceWindow? = nil, name: String? = nil, pendingSoftwareSetId: String? = nil, softwareSetUpdateMode: SoftwareSetUpdateMode? = nil, softwareSetUpdateSchedule: SoftwareSetUpdateSchedule? = nil, updatedAt: Date? = nil) { self.activationCode = activationCode self.arn = arn self.createdAt = createdAt @@ -604,7 +581,6 @@ extension WorkSpacesThinClient { self.pendingSoftwareSetId = pendingSoftwareSetId self.softwareSetUpdateMode = softwareSetUpdateMode self.softwareSetUpdateSchedule = softwareSetUpdateSchedule - self.tags = tags self.updatedAt = updatedAt } @@ -622,7 +598,6 @@ extension WorkSpacesThinClient { case pendingSoftwareSetId = "pendingSoftwareSetId" case softwareSetUpdateMode = "softwareSetUpdateMode" case softwareSetUpdateSchedule = "softwareSetUpdateSchedule" - case tags = "tags" case updatedAt = "updatedAt" } } @@ -972,17 +947,20 @@ extension WorkSpacesThinClient { public let software: [Software]? /// The timestamp of the end of support for the software set. public let supportedUntil: Date? + /// The tag keys and optional values for the resource. + public let tags: [String: String]? /// An option to define if the software set has been validated. public let validationStatus: SoftwareSetValidationStatus? /// The version of the software set. public let version: String? - public init(arn: String? = nil, id: String? = nil, releasedAt: Date? = nil, software: [Software]? = nil, supportedUntil: Date? = nil, validationStatus: SoftwareSetValidationStatus? = nil, version: String? = nil) { + public init(arn: String? = nil, id: String? = nil, releasedAt: Date? = nil, software: [Software]? = nil, supportedUntil: Date? = nil, tags: [String: String]? = nil, validationStatus: SoftwareSetValidationStatus? = nil, version: String? = nil) { self.arn = arn self.id = id self.releasedAt = releasedAt self.software = software self.supportedUntil = supportedUntil + self.tags = tags self.validationStatus = validationStatus self.version = version } @@ -993,6 +971,7 @@ extension WorkSpacesThinClient { case releasedAt = "releasedAt" case software = "software" case supportedUntil = "supportedUntil" + case tags = "tags" case validationStatus = "validationStatus" case version = "version" } @@ -1254,7 +1233,6 @@ public struct WorkSpacesThinClientErrorType: AWSErrorType { case accessDeniedException = "AccessDeniedException" case conflictException = "ConflictException" case internalServerException = "InternalServerException" - case internalServiceException = "InternalServiceException" case resourceNotFoundException = "ResourceNotFoundException" case serviceQuotaExceededException = "ServiceQuotaExceededException" case throttlingException = "ThrottlingException" @@ -1285,8 +1263,6 @@ public struct WorkSpacesThinClientErrorType: AWSErrorType { public static var conflictException: Self { .init(.conflictException) } /// The server encountered an internal error and is unable to complete the request. public static var internalServerException: Self { .init(.internalServerException) } - /// Request processing failed due to some unknown error, exception, or failure. - public static var internalServiceException: Self { .init(.internalServiceException) } /// The resource specified in the request was not found. public static var resourceNotFoundException: Self { .init(.resourceNotFoundException) } /// Your request exceeds a service quota. diff --git a/Sources/Soto/Services/WorkSpacesWeb/WorkSpacesWeb_shapes.swift b/Sources/Soto/Services/WorkSpacesWeb/WorkSpacesWeb_shapes.swift index afff2a6db6..f6bbbaec2b 100644 --- a/Sources/Soto/Services/WorkSpacesWeb/WorkSpacesWeb_shapes.swift +++ b/Sources/Soto/Services/WorkSpacesWeb/WorkSpacesWeb_shapes.swift @@ -53,6 +53,13 @@ extension WorkSpacesWeb { public var description: String { return self.rawValue } } + public enum InstanceType: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { + case standardLarge = "standard.large" + case standardRegular = "standard.regular" + case standardXlarge = "standard.xlarge" + public var description: String { return self.rawValue } + } + public enum PortalStatus: String, CustomStringConvertible, Codable, Sendable, CodingKeyRepresentable { case active = "Active" case incomplete = "Incomplete" @@ -350,23 +357,31 @@ extension WorkSpacesWeb { } public struct BrowserSettings: AWSDecodableShape { + /// The additional encryption context of the browser settings. + public let additionalEncryptionContext: [String: String]? /// A list of web portal ARNs that this browser settings is associated with. public let associatedPortalArns: [String]? /// A JSON string containing Chrome Enterprise policies that will be applied to all streaming sessions. public let browserPolicy: String? /// The ARN of the browser settings. public let browserSettingsArn: String + /// The customer managed key used to encrypt sensitive information in the browser settings. + public let customerManagedKey: String? - public init(associatedPortalArns: [String]? = nil, browserPolicy: String? = nil, browserSettingsArn: String) { + public init(additionalEncryptionContext: [String: String]? = nil, associatedPortalArns: [String]? = nil, browserPolicy: String? = nil, browserSettingsArn: String, customerManagedKey: String? = nil) { + self.additionalEncryptionContext = additionalEncryptionContext self.associatedPortalArns = associatedPortalArns self.browserPolicy = browserPolicy self.browserSettingsArn = browserSettingsArn + self.customerManagedKey = customerManagedKey } private enum CodingKeys: String, CodingKey { + case additionalEncryptionContext = "additionalEncryptionContext" case associatedPortalArns = "associatedPortalArns" case browserPolicy = "browserPolicy" case browserSettingsArn = "browserSettingsArn" + case customerManagedKey = "customerManagedKey" } } @@ -507,7 +522,7 @@ extension WorkSpacesWeb { public let additionalEncryptionContext: [String: String]? /// A JSON string containing Chrome Enterprise policies that will be applied to all streaming sessions. public let browserPolicy: String - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? /// The custom managed key of the browser settings. public let customerManagedKey: String? @@ -566,9 +581,9 @@ extension WorkSpacesWeb { } public struct CreateIdentityProviderRequest: AWSEncodableShape { - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? - /// The identity provider details. The following list describes the provider detail keys for each identity provider type. For Google and Login with Amazon: client_id client_secret authorize_scopes For Facebook: client_id client_secret authorize_scopes api_version For Sign in with Apple: client_id team_id key_id private_key authorize_scopes For OIDC providers: client_id client_secret attributes_request_method oidc_issuer authorize_scopes authorize_url if not available from discovery URL specified by oidc_issuer key token_url if not available from discovery URL specified by oidc_issuer key attributes_url if not available from discovery URL specified by oidc_issuer key jwks_uri if not available from discovery URL specified by oidc_issuer key For SAML providers: MetadataFile OR MetadataURL IDPSignout (boolean) optional + /// The identity provider details. The following list describes the provider detail keys for each identity provider type. For Google and Login with Amazon: client_id client_secret authorize_scopes For Facebook: client_id client_secret authorize_scopes api_version For Sign in with Apple: client_id team_id key_id private_key authorize_scopes For OIDC providers: client_id client_secret attributes_request_method oidc_issuer authorize_scopes authorize_url if not available from discovery URL specified by oidc_issuer key token_url if not available from discovery URL specified by oidc_issuer key attributes_url if not available from discovery URL specified by oidc_issuer key jwks_uri if not available from discovery URL specified by oidc_issuer key For SAML providers: MetadataFile OR MetadataURL IDPSignout (boolean) optional IDPInit (boolean) optional RequestSigningAlgorithm (string) optional - Only accepts rsa-sha256 EncryptedResponses (boolean) optional public let identityProviderDetails: [String: String] /// The identity provider name. public let identityProviderName: String @@ -627,7 +642,7 @@ extension WorkSpacesWeb { public struct CreateIpAccessSettingsRequest: AWSEncodableShape { /// Additional encryption context of the IP access settings. public let additionalEncryptionContext: [String: String]? - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? /// The custom managed key of the IP access settings. public let customerManagedKey: String? @@ -704,7 +719,7 @@ extension WorkSpacesWeb { } public struct CreateNetworkSettingsRequest: AWSEncodableShape { - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? /// One or more security groups used to control access from streaming instances to your VPC. public let securityGroupIds: [String] @@ -774,23 +789,29 @@ extension WorkSpacesWeb { public struct CreatePortalRequest: AWSEncodableShape { /// The additional encryption context of the portal. public let additionalEncryptionContext: [String: String]? - /// The type of authentication integration points used when signing into the web portal. Defaults to Standard. Standard web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider. IAM_Identity_Center web portals are authenticated through AWS IAM Identity Center (successor to AWS Single Sign-On). They provide additional features, such as IdP-initiated authentication. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center. + /// The type of authentication integration points used when signing into the web portal. Defaults to Standard. Standard web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider. IAM Identity Center web portals are authenticated through IAM Identity Center (successor to Single Sign-On). Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center. public let authenticationType: AuthenticationType? - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? /// The customer managed key of the web portal. public let customerManagedKey: String? /// The name of the web portal. This is not visible to users who log into the web portal. public let displayName: String? + /// The type and resources of the underlying instance. + public let instanceType: InstanceType? + /// The maximum number of concurrent sessions for the portal. + public let maxConcurrentSessions: Int? /// The tags to add to the web portal. A tag is a key-value pair. public let tags: [Tag]? - public init(additionalEncryptionContext: [String: String]? = nil, authenticationType: AuthenticationType? = nil, clientToken: String? = CreatePortalRequest.idempotencyToken(), customerManagedKey: String? = nil, displayName: String? = nil, tags: [Tag]? = nil) { + public init(additionalEncryptionContext: [String: String]? = nil, authenticationType: AuthenticationType? = nil, clientToken: String? = CreatePortalRequest.idempotencyToken(), customerManagedKey: String? = nil, displayName: String? = nil, instanceType: InstanceType? = nil, maxConcurrentSessions: Int? = nil, tags: [Tag]? = nil) { self.additionalEncryptionContext = additionalEncryptionContext self.authenticationType = authenticationType self.clientToken = clientToken self.customerManagedKey = customerManagedKey self.displayName = displayName + self.instanceType = instanceType + self.maxConcurrentSessions = maxConcurrentSessions self.tags = tags } @@ -809,6 +830,8 @@ extension WorkSpacesWeb { try self.validate(self.displayName, name: "displayName", parent: name, max: 64) try self.validate(self.displayName, name: "displayName", parent: name, min: 1) try self.validate(self.displayName, name: "displayName", parent: name, pattern: "^.+$") + try self.validate(self.maxConcurrentSessions, name: "maxConcurrentSessions", parent: name, max: 5000) + try self.validate(self.maxConcurrentSessions, name: "maxConcurrentSessions", parent: name, min: 1) try self.tags?.forEach { try $0.validate(name: "\(name).tags[]") } @@ -821,6 +844,8 @@ extension WorkSpacesWeb { case clientToken = "clientToken" case customerManagedKey = "customerManagedKey" case displayName = "displayName" + case instanceType = "instanceType" + case maxConcurrentSessions = "maxConcurrentSessions" case tags = "tags" } } @@ -845,7 +870,7 @@ extension WorkSpacesWeb { public struct CreateTrustStoreRequest: AWSEncodableShape { /// A list of CA certificates to be added to the trust store. public let certificateList: [AWSBase64Data] - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? /// The tags to add to the trust store. A tag is a key-value pair. public let tags: [Tag]? @@ -886,7 +911,7 @@ extension WorkSpacesWeb { } public struct CreateUserAccessLoggingSettingsRequest: AWSEncodableShape { - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? /// The ARN of the Kinesis stream. public let kinesisStreamArn: String @@ -934,7 +959,7 @@ extension WorkSpacesWeb { public struct CreateUserSettingsRequest: AWSEncodableShape { /// The additional encryption context of the user settings. public let additionalEncryptionContext: [String: String]? - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? /// The configuration that specifies which cookies should be synchronized from the end user's local browser to the remote browser. public let cookieSynchronizationConfiguration: CookieSynchronizationConfiguration? @@ -1780,7 +1805,7 @@ extension WorkSpacesWeb { public struct IdentityProvider: AWSDecodableShape { /// The ARN of the identity provider. public let identityProviderArn: String - /// The identity provider details. The following list describes the provider detail keys for each identity provider type. For Google and Login with Amazon: client_id client_secret authorize_scopes For Facebook: client_id client_secret authorize_scopes api_version For Sign in with Apple: client_id team_id key_id private_key authorize_scopes For OIDC providers: client_id client_secret attributes_request_method oidc_issuer authorize_scopes authorize_url if not available from discovery URL specified by oidc_issuer key token_url if not available from discovery URL specified by oidc_issuer key attributes_url if not available from discovery URL specified by oidc_issuer key jwks_uri if not available from discovery URL specified by oidc_issuer key For SAML providers: MetadataFile OR MetadataURL IDPSignout optional + /// The identity provider details. The following list describes the provider detail keys for each identity provider type. For Google and Login with Amazon: client_id client_secret authorize_scopes For Facebook: client_id client_secret authorize_scopes api_version For Sign in with Apple: client_id team_id key_id private_key authorize_scopes For OIDC providers: client_id client_secret attributes_request_method oidc_issuer authorize_scopes authorize_url if not available from discovery URL specified by oidc_issuer key token_url if not available from discovery URL specified by oidc_issuer key attributes_url if not available from discovery URL specified by oidc_issuer key jwks_uri if not available from discovery URL specified by oidc_issuer key For SAML providers: MetadataFile OR MetadataURL IDPSignout (boolean) optional IDPInit (boolean) optional RequestSigningAlgorithm (string) optional - Only accepts rsa-sha256 EncryptedResponses (boolean) optional public let identityProviderDetails: [String: String]? /// The identity provider name. public let identityProviderName: String? @@ -1824,10 +1849,14 @@ extension WorkSpacesWeb { } public struct IpAccessSettings: AWSDecodableShape { + /// The additional encryption context of the IP access settings. + public let additionalEncryptionContext: [String: String]? /// A list of web portal ARNs that this IP access settings resource is associated with. public let associatedPortalArns: [String]? /// The creation date timestamp of the IP access settings. public let creationDate: Date? + /// The customer managed key used to encrypt sensitive information in the IP access settings. + public let customerManagedKey: String? /// The description of the IP access settings. public let description: String? /// The display name of the IP access settings. @@ -1837,9 +1866,11 @@ extension WorkSpacesWeb { /// The IP rules of the IP access settings. public let ipRules: [IpRule]? - public init(associatedPortalArns: [String]? = nil, creationDate: Date? = nil, description: String? = nil, displayName: String? = nil, ipAccessSettingsArn: String, ipRules: [IpRule]? = nil) { + public init(additionalEncryptionContext: [String: String]? = nil, associatedPortalArns: [String]? = nil, creationDate: Date? = nil, customerManagedKey: String? = nil, description: String? = nil, displayName: String? = nil, ipAccessSettingsArn: String, ipRules: [IpRule]? = nil) { + self.additionalEncryptionContext = additionalEncryptionContext self.associatedPortalArns = associatedPortalArns self.creationDate = creationDate + self.customerManagedKey = customerManagedKey self.description = description self.displayName = displayName self.ipAccessSettingsArn = ipAccessSettingsArn @@ -1847,8 +1878,10 @@ extension WorkSpacesWeb { } private enum CodingKeys: String, CodingKey { + case additionalEncryptionContext = "additionalEncryptionContext" case associatedPortalArns = "associatedPortalArns" case creationDate = "creationDate" + case customerManagedKey = "customerManagedKey" case description = "description" case displayName = "displayName" case ipAccessSettingsArn = "ipAccessSettingsArn" @@ -2411,7 +2444,9 @@ extension WorkSpacesWeb { } public struct Portal: AWSDecodableShape { - /// The type of authentication integration points used when signing into the web portal. Defaults to Standard. Standard web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider. IAM_Identity_Center web portals are authenticated through AWS IAM Identity Center (successor to AWS Single Sign-On). They provide additional features, such as IdP-initiated authentication. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center. + /// The additional encryption context of the portal. + public let additionalEncryptionContext: [String: String]? + /// The type of authentication integration points used when signing into the web portal. Defaults to Standard. Standard web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider. IAM Identity Center web portals are authenticated through IAM Identity Center (successor to Single Sign-On). Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center. public let authenticationType: AuthenticationType? /// The ARN of the browser settings that is associated with this web portal. public let browserSettingsArn: String? @@ -2419,10 +2454,16 @@ extension WorkSpacesWeb { public let browserType: BrowserType? /// The creation date of the web portal. public let creationDate: Date? + /// The customer managed key used to encrypt sensitive information in the portal. + public let customerManagedKey: String? /// The name of the web portal. public let displayName: String? + /// The type and resources of the underlying instance. + public let instanceType: InstanceType? /// The ARN of the IP access settings. public let ipAccessSettingsArn: String? + /// The maximum number of concurrent sessions for the portal. + public let maxConcurrentSessions: Int? /// The ARN of the network settings that is associated with the web portal. public let networkSettingsArn: String? /// The ARN of the web portal. @@ -2442,13 +2483,17 @@ extension WorkSpacesWeb { /// The ARN of the user settings that is associated with the web portal. public let userSettingsArn: String? - public init(authenticationType: AuthenticationType? = nil, browserSettingsArn: String? = nil, browserType: BrowserType? = nil, creationDate: Date? = nil, displayName: String? = nil, ipAccessSettingsArn: String? = nil, networkSettingsArn: String? = nil, portalArn: String, portalEndpoint: String? = nil, portalStatus: PortalStatus? = nil, rendererType: RendererType? = nil, statusReason: String? = nil, trustStoreArn: String? = nil, userAccessLoggingSettingsArn: String? = nil, userSettingsArn: String? = nil) { + public init(additionalEncryptionContext: [String: String]? = nil, authenticationType: AuthenticationType? = nil, browserSettingsArn: String? = nil, browserType: BrowserType? = nil, creationDate: Date? = nil, customerManagedKey: String? = nil, displayName: String? = nil, instanceType: InstanceType? = nil, ipAccessSettingsArn: String? = nil, maxConcurrentSessions: Int? = nil, networkSettingsArn: String? = nil, portalArn: String, portalEndpoint: String? = nil, portalStatus: PortalStatus? = nil, rendererType: RendererType? = nil, statusReason: String? = nil, trustStoreArn: String? = nil, userAccessLoggingSettingsArn: String? = nil, userSettingsArn: String? = nil) { + self.additionalEncryptionContext = additionalEncryptionContext self.authenticationType = authenticationType self.browserSettingsArn = browserSettingsArn self.browserType = browserType self.creationDate = creationDate + self.customerManagedKey = customerManagedKey self.displayName = displayName + self.instanceType = instanceType self.ipAccessSettingsArn = ipAccessSettingsArn + self.maxConcurrentSessions = maxConcurrentSessions self.networkSettingsArn = networkSettingsArn self.portalArn = portalArn self.portalEndpoint = portalEndpoint @@ -2461,12 +2506,16 @@ extension WorkSpacesWeb { } private enum CodingKeys: String, CodingKey { + case additionalEncryptionContext = "additionalEncryptionContext" case authenticationType = "authenticationType" case browserSettingsArn = "browserSettingsArn" case browserType = "browserType" case creationDate = "creationDate" + case customerManagedKey = "customerManagedKey" case displayName = "displayName" + case instanceType = "instanceType" case ipAccessSettingsArn = "ipAccessSettingsArn" + case maxConcurrentSessions = "maxConcurrentSessions" case networkSettingsArn = "networkSettingsArn" case portalArn = "portalArn" case portalEndpoint = "portalEndpoint" @@ -2480,7 +2529,7 @@ extension WorkSpacesWeb { } public struct PortalSummary: AWSDecodableShape { - /// The type of authentication integration points used when signing into the web portal. Defaults to Standard. Standard web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider. IAM_Identity_Center web portals are authenticated through AWS IAM Identity Center (successor to AWS Single Sign-On). They provide additional features, such as IdP-initiated authentication. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center. + /// The type of authentication integration points used when signing into the web portal. Defaults to Standard. Standard web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider. IAM Identity Center web portals are authenticated through IAM Identity Center (successor to Single Sign-On). Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center. public let authenticationType: AuthenticationType? /// The ARN of the browser settings that is associated with the web portal. public let browserSettingsArn: String? @@ -2490,8 +2539,12 @@ extension WorkSpacesWeb { public let creationDate: Date? /// The name of the web portal. public let displayName: String? + /// The type and resources of the underlying instance. + public let instanceType: InstanceType? /// The ARN of the IP access settings. public let ipAccessSettingsArn: String? + /// The maximum number of concurrent sessions for the portal. + public let maxConcurrentSessions: Int? /// The ARN of the network settings that is associated with the web portal. public let networkSettingsArn: String? /// The ARN of the web portal. @@ -2509,13 +2562,15 @@ extension WorkSpacesWeb { /// The ARN of the user settings that is associated with the web portal. public let userSettingsArn: String? - public init(authenticationType: AuthenticationType? = nil, browserSettingsArn: String? = nil, browserType: BrowserType? = nil, creationDate: Date? = nil, displayName: String? = nil, ipAccessSettingsArn: String? = nil, networkSettingsArn: String? = nil, portalArn: String, portalEndpoint: String? = nil, portalStatus: PortalStatus? = nil, rendererType: RendererType? = nil, trustStoreArn: String? = nil, userAccessLoggingSettingsArn: String? = nil, userSettingsArn: String? = nil) { + public init(authenticationType: AuthenticationType? = nil, browserSettingsArn: String? = nil, browserType: BrowserType? = nil, creationDate: Date? = nil, displayName: String? = nil, instanceType: InstanceType? = nil, ipAccessSettingsArn: String? = nil, maxConcurrentSessions: Int? = nil, networkSettingsArn: String? = nil, portalArn: String, portalEndpoint: String? = nil, portalStatus: PortalStatus? = nil, rendererType: RendererType? = nil, trustStoreArn: String? = nil, userAccessLoggingSettingsArn: String? = nil, userSettingsArn: String? = nil) { self.authenticationType = authenticationType self.browserSettingsArn = browserSettingsArn self.browserType = browserType self.creationDate = creationDate self.displayName = displayName + self.instanceType = instanceType self.ipAccessSettingsArn = ipAccessSettingsArn + self.maxConcurrentSessions = maxConcurrentSessions self.networkSettingsArn = networkSettingsArn self.portalArn = portalArn self.portalEndpoint = portalEndpoint @@ -2532,7 +2587,9 @@ extension WorkSpacesWeb { case browserType = "browserType" case creationDate = "creationDate" case displayName = "displayName" + case instanceType = "instanceType" case ipAccessSettingsArn = "ipAccessSettingsArn" + case maxConcurrentSessions = "maxConcurrentSessions" case networkSettingsArn = "networkSettingsArn" case portalArn = "portalArn" case portalEndpoint = "portalEndpoint" @@ -2570,7 +2627,7 @@ extension WorkSpacesWeb { } public struct TagResourceRequest: AWSEncodableShape { - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? /// The ARN of the resource. public let resourceArn: String @@ -2685,7 +2742,7 @@ extension WorkSpacesWeb { public let browserPolicy: String? /// The ARN of the browser settings. public let browserSettingsArn: String - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? public init(browserPolicy: String? = nil, browserSettingsArn: String, clientToken: String? = UpdateBrowserSettingsRequest.idempotencyToken()) { @@ -2733,11 +2790,11 @@ extension WorkSpacesWeb { } public struct UpdateIdentityProviderRequest: AWSEncodableShape { - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? /// The ARN of the identity provider. public let identityProviderArn: String - /// The details of the identity provider. The following list describes the provider detail keys for each identity provider type. For Google and Login with Amazon: client_id client_secret authorize_scopes For Facebook: client_id client_secret authorize_scopes api_version For Sign in with Apple: client_id team_id key_id private_key authorize_scopes For OIDC providers: client_id client_secret attributes_request_method oidc_issuer authorize_scopes authorize_url if not available from discovery URL specified by oidc_issuer key token_url if not available from discovery URL specified by oidc_issuer key attributes_url if not available from discovery URL specified by oidc_issuer key jwks_uri if not available from discovery URL specified by oidc_issuer key For SAML providers: MetadataFile OR MetadataURL IDPSignout (boolean) optional + /// The details of the identity provider. The following list describes the provider detail keys for each identity provider type. For Google and Login with Amazon: client_id client_secret authorize_scopes For Facebook: client_id client_secret authorize_scopes api_version For Sign in with Apple: client_id team_id key_id private_key authorize_scopes For OIDC providers: client_id client_secret attributes_request_method oidc_issuer authorize_scopes authorize_url if not available from discovery URL specified by oidc_issuer key token_url if not available from discovery URL specified by oidc_issuer key attributes_url if not available from discovery URL specified by oidc_issuer key jwks_uri if not available from discovery URL specified by oidc_issuer key For SAML providers: MetadataFile OR MetadataURL IDPSignout (boolean) optional IDPInit (boolean) optional RequestSigningAlgorithm (string) optional - Only accepts rsa-sha256 EncryptedResponses (boolean) optional public let identityProviderDetails: [String: String]? /// The name of the identity provider. public let identityProviderName: String? @@ -2801,7 +2858,7 @@ extension WorkSpacesWeb { } public struct UpdateIpAccessSettingsRequest: AWSEncodableShape { - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? /// The description of the IP access settings. public let description: String? @@ -2871,7 +2928,7 @@ extension WorkSpacesWeb { } public struct UpdateNetworkSettingsRequest: AWSEncodableShape { - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? /// The ARN of the network settings. public let networkSettingsArn: String @@ -2947,16 +3004,22 @@ extension WorkSpacesWeb { } public struct UpdatePortalRequest: AWSEncodableShape { - /// The type of authentication integration points used when signing into the web portal. Defaults to Standard. Standard web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider. IAM_Identity_Center web portals are authenticated through AWS IAM Identity Center (successor to AWS Single Sign-On). They provide additional features, such as IdP-initiated authentication. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center. + /// The type of authentication integration points used when signing into the web portal. Defaults to Standard. Standard web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider. IAM Identity Center web portals are authenticated through IAM Identity Center (successor to Single Sign-On). Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center. public let authenticationType: AuthenticationType? /// The name of the web portal. This is not visible to users who log into the web portal. public let displayName: String? + /// The type and resources of the underlying instance. + public let instanceType: InstanceType? + /// The maximum number of concurrent sessions for the portal. + public let maxConcurrentSessions: Int? /// The ARN of the web portal. public let portalArn: String - public init(authenticationType: AuthenticationType? = nil, displayName: String? = nil, portalArn: String) { + public init(authenticationType: AuthenticationType? = nil, displayName: String? = nil, instanceType: InstanceType? = nil, maxConcurrentSessions: Int? = nil, portalArn: String) { self.authenticationType = authenticationType self.displayName = displayName + self.instanceType = instanceType + self.maxConcurrentSessions = maxConcurrentSessions self.portalArn = portalArn } @@ -2965,6 +3028,8 @@ extension WorkSpacesWeb { var container = encoder.container(keyedBy: CodingKeys.self) try container.encodeIfPresent(self.authenticationType, forKey: .authenticationType) try container.encodeIfPresent(self.displayName, forKey: .displayName) + try container.encodeIfPresent(self.instanceType, forKey: .instanceType) + try container.encodeIfPresent(self.maxConcurrentSessions, forKey: .maxConcurrentSessions) request.encodePath(self.portalArn, key: "portalArn") } @@ -2972,6 +3037,8 @@ extension WorkSpacesWeb { try self.validate(self.displayName, name: "displayName", parent: name, max: 64) try self.validate(self.displayName, name: "displayName", parent: name, min: 1) try self.validate(self.displayName, name: "displayName", parent: name, pattern: "^.+$") + try self.validate(self.maxConcurrentSessions, name: "maxConcurrentSessions", parent: name, max: 5000) + try self.validate(self.maxConcurrentSessions, name: "maxConcurrentSessions", parent: name, min: 1) try self.validate(self.portalArn, name: "portalArn", parent: name, max: 2048) try self.validate(self.portalArn, name: "portalArn", parent: name, min: 20) try self.validate(self.portalArn, name: "portalArn", parent: name, pattern: "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$") @@ -2980,6 +3047,8 @@ extension WorkSpacesWeb { private enum CodingKeys: String, CodingKey { case authenticationType = "authenticationType" case displayName = "displayName" + case instanceType = "instanceType" + case maxConcurrentSessions = "maxConcurrentSessions" } } @@ -3001,7 +3070,7 @@ extension WorkSpacesWeb { public let certificatesToAdd: [AWSBase64Data]? /// A list of CA certificates to delete from a trust store. public let certificatesToDelete: [String]? - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? /// The ARN of the trust store. public let trustStoreArn: String @@ -3056,7 +3125,7 @@ extension WorkSpacesWeb { } public struct UpdateUserAccessLoggingSettingsRequest: AWSEncodableShape { - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? /// The ARN of the Kinesis stream. public let kinesisStreamArn: String? @@ -3108,7 +3177,7 @@ extension WorkSpacesWeb { } public struct UpdateUserSettingsRequest: AWSEncodableShape { - /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. + /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. public let clientToken: String? /// The configuration that specifies which cookies should be synchronized from the end user's local browser to the remote browser. If the allowlist and blocklist are empty, the configuration becomes null. public let cookieSynchronizationConfiguration: CookieSynchronizationConfiguration? @@ -3235,12 +3304,16 @@ extension WorkSpacesWeb { } public struct UserSettings: AWSDecodableShape { + /// The additional encryption context of the user settings. + public let additionalEncryptionContext: [String: String]? /// A list of web portal ARNs that this user settings is associated with. public let associatedPortalArns: [String]? /// The configuration that specifies which cookies should be synchronized from the end user's local browser to the remote browser. public let cookieSynchronizationConfiguration: CookieSynchronizationConfiguration? /// Specifies whether the user can copy text from the streaming session to the local device. public let copyAllowed: EnabledType? + /// The customer managed key used to encrypt sensitive information in the user settings. + public let customerManagedKey: String? /// The amount of time that a streaming session remains active after users disconnect. public let disconnectTimeoutInMinutes: Int? /// Specifies whether the user can download files from the streaming session to the local device. @@ -3256,10 +3329,12 @@ extension WorkSpacesWeb { /// The ARN of the user settings. public let userSettingsArn: String - public init(associatedPortalArns: [String]? = nil, cookieSynchronizationConfiguration: CookieSynchronizationConfiguration? = nil, copyAllowed: EnabledType? = nil, disconnectTimeoutInMinutes: Int? = nil, downloadAllowed: EnabledType? = nil, idleDisconnectTimeoutInMinutes: Int? = nil, pasteAllowed: EnabledType? = nil, printAllowed: EnabledType? = nil, uploadAllowed: EnabledType? = nil, userSettingsArn: String) { + public init(additionalEncryptionContext: [String: String]? = nil, associatedPortalArns: [String]? = nil, cookieSynchronizationConfiguration: CookieSynchronizationConfiguration? = nil, copyAllowed: EnabledType? = nil, customerManagedKey: String? = nil, disconnectTimeoutInMinutes: Int? = nil, downloadAllowed: EnabledType? = nil, idleDisconnectTimeoutInMinutes: Int? = nil, pasteAllowed: EnabledType? = nil, printAllowed: EnabledType? = nil, uploadAllowed: EnabledType? = nil, userSettingsArn: String) { + self.additionalEncryptionContext = additionalEncryptionContext self.associatedPortalArns = associatedPortalArns self.cookieSynchronizationConfiguration = cookieSynchronizationConfiguration self.copyAllowed = copyAllowed + self.customerManagedKey = customerManagedKey self.disconnectTimeoutInMinutes = disconnectTimeoutInMinutes self.downloadAllowed = downloadAllowed self.idleDisconnectTimeoutInMinutes = idleDisconnectTimeoutInMinutes @@ -3270,9 +3345,11 @@ extension WorkSpacesWeb { } private enum CodingKeys: String, CodingKey { + case additionalEncryptionContext = "additionalEncryptionContext" case associatedPortalArns = "associatedPortalArns" case cookieSynchronizationConfiguration = "cookieSynchronizationConfiguration" case copyAllowed = "copyAllowed" + case customerManagedKey = "customerManagedKey" case disconnectTimeoutInMinutes = "disconnectTimeoutInMinutes" case downloadAllowed = "downloadAllowed" case idleDisconnectTimeoutInMinutes = "idleDisconnectTimeoutInMinutes" diff --git a/models/alexa-for-business.json b/models/alexa-for-business.json deleted file mode 100644 index f5a63dd43d..0000000000 --- a/models/alexa-for-business.json +++ /dev/null @@ -1,10761 +0,0 @@ -{ - "smithy": "2.0", - "metadata": { - "suppressions": [ - { - "id": "HttpMethodSemantics", - "namespace": "*" - }, - { - "id": "HttpResponseCodeSemantics", - "namespace": "*" - }, - { - "id": "PaginatedTrait", - "namespace": "*" - }, - { - "id": "HttpHeaderTrait", - "namespace": "*" - }, - { - "id": "HttpUriConflict", - "namespace": "*" - }, - { - "id": "Service", - "namespace": "*" - } - ] - }, - "shapes": { - "com.amazonaws.alexaforbusiness#Address": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 500 - } - } - }, - "com.amazonaws.alexaforbusiness#AddressBook": { - "type": "structure", - "members": { - "AddressBookArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the address book.

" - } - }, - "Name": { - "target": "com.amazonaws.alexaforbusiness#AddressBookName", - "traits": { - "smithy.api#documentation": "

The name of the address book.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#AddressBookDescription", - "traits": { - "smithy.api#documentation": "

The description of the address book.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

An address book with attributes.

" - } - }, - "com.amazonaws.alexaforbusiness#AddressBookData": { - "type": "structure", - "members": { - "AddressBookArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the address book.

" - } - }, - "Name": { - "target": "com.amazonaws.alexaforbusiness#AddressBookName", - "traits": { - "smithy.api#documentation": "

The name of the address book.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#AddressBookDescription", - "traits": { - "smithy.api#documentation": "

The description of the address book.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Information related to an address book.

" - } - }, - "com.amazonaws.alexaforbusiness#AddressBookDataList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#AddressBookData" - } - }, - "com.amazonaws.alexaforbusiness#AddressBookDescription": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 200 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#AddressBookName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 100 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#AlexaForBusiness": { - "type": "service", - "version": "2017-11-09", - "operations": [ - { - "target": "com.amazonaws.alexaforbusiness#ApproveSkill" - }, - { - "target": "com.amazonaws.alexaforbusiness#AssociateContactWithAddressBook" - }, - { - "target": "com.amazonaws.alexaforbusiness#AssociateDeviceWithNetworkProfile" - }, - { - "target": "com.amazonaws.alexaforbusiness#AssociateDeviceWithRoom" - }, - { - "target": "com.amazonaws.alexaforbusiness#AssociateSkillGroupWithRoom" - }, - { - "target": "com.amazonaws.alexaforbusiness#AssociateSkillWithSkillGroup" - }, - { - "target": "com.amazonaws.alexaforbusiness#AssociateSkillWithUsers" - }, - { - "target": "com.amazonaws.alexaforbusiness#CreateAddressBook" - }, - { - "target": "com.amazonaws.alexaforbusiness#CreateBusinessReportSchedule" - }, - { - "target": "com.amazonaws.alexaforbusiness#CreateConferenceProvider" - }, - { - "target": "com.amazonaws.alexaforbusiness#CreateContact" - }, - { - "target": "com.amazonaws.alexaforbusiness#CreateGatewayGroup" - }, - { - "target": "com.amazonaws.alexaforbusiness#CreateNetworkProfile" - }, - { - "target": "com.amazonaws.alexaforbusiness#CreateProfile" - }, - { - "target": "com.amazonaws.alexaforbusiness#CreateRoom" - }, - { - "target": "com.amazonaws.alexaforbusiness#CreateSkillGroup" - }, - { - "target": "com.amazonaws.alexaforbusiness#CreateUser" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeleteAddressBook" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeleteBusinessReportSchedule" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeleteConferenceProvider" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeleteContact" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeleteDevice" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeleteDeviceUsageData" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeleteGatewayGroup" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeleteNetworkProfile" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeleteProfile" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeleteRoom" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeleteRoomSkillParameter" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeleteSkillAuthorization" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeleteSkillGroup" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeleteUser" - }, - { - "target": "com.amazonaws.alexaforbusiness#DisassociateContactFromAddressBook" - }, - { - "target": "com.amazonaws.alexaforbusiness#DisassociateDeviceFromRoom" - }, - { - "target": "com.amazonaws.alexaforbusiness#DisassociateSkillFromSkillGroup" - }, - { - "target": "com.amazonaws.alexaforbusiness#DisassociateSkillFromUsers" - }, - { - "target": "com.amazonaws.alexaforbusiness#DisassociateSkillGroupFromRoom" - }, - { - "target": "com.amazonaws.alexaforbusiness#ForgetSmartHomeAppliances" - }, - { - "target": "com.amazonaws.alexaforbusiness#GetAddressBook" - }, - { - "target": "com.amazonaws.alexaforbusiness#GetConferencePreference" - }, - { - "target": "com.amazonaws.alexaforbusiness#GetConferenceProvider" - }, - { - "target": "com.amazonaws.alexaforbusiness#GetContact" - }, - { - "target": "com.amazonaws.alexaforbusiness#GetDevice" - }, - { - "target": "com.amazonaws.alexaforbusiness#GetGateway" - }, - { - "target": "com.amazonaws.alexaforbusiness#GetGatewayGroup" - }, - { - "target": "com.amazonaws.alexaforbusiness#GetInvitationConfiguration" - }, - { - "target": "com.amazonaws.alexaforbusiness#GetNetworkProfile" - }, - { - "target": "com.amazonaws.alexaforbusiness#GetProfile" - }, - { - "target": "com.amazonaws.alexaforbusiness#GetRoom" - }, - { - "target": "com.amazonaws.alexaforbusiness#GetRoomSkillParameter" - }, - { - "target": "com.amazonaws.alexaforbusiness#GetSkillGroup" - }, - { - "target": "com.amazonaws.alexaforbusiness#ListBusinessReportSchedules" - }, - { - "target": "com.amazonaws.alexaforbusiness#ListConferenceProviders" - }, - { - "target": "com.amazonaws.alexaforbusiness#ListDeviceEvents" - }, - { - "target": "com.amazonaws.alexaforbusiness#ListGatewayGroups" - }, - { - "target": "com.amazonaws.alexaforbusiness#ListGateways" - }, - { - "target": "com.amazonaws.alexaforbusiness#ListSkills" - }, - { - "target": "com.amazonaws.alexaforbusiness#ListSkillsStoreCategories" - }, - { - "target": "com.amazonaws.alexaforbusiness#ListSkillsStoreSkillsByCategory" - }, - { - "target": "com.amazonaws.alexaforbusiness#ListSmartHomeAppliances" - }, - { - "target": "com.amazonaws.alexaforbusiness#ListTags" - }, - { - "target": "com.amazonaws.alexaforbusiness#PutConferencePreference" - }, - { - "target": "com.amazonaws.alexaforbusiness#PutInvitationConfiguration" - }, - { - "target": "com.amazonaws.alexaforbusiness#PutRoomSkillParameter" - }, - { - "target": "com.amazonaws.alexaforbusiness#PutSkillAuthorization" - }, - { - "target": "com.amazonaws.alexaforbusiness#RegisterAVSDevice" - }, - { - "target": "com.amazonaws.alexaforbusiness#RejectSkill" - }, - { - "target": "com.amazonaws.alexaforbusiness#ResolveRoom" - }, - { - "target": "com.amazonaws.alexaforbusiness#RevokeInvitation" - }, - { - "target": "com.amazonaws.alexaforbusiness#SearchAddressBooks" - }, - { - "target": "com.amazonaws.alexaforbusiness#SearchContacts" - }, - { - "target": "com.amazonaws.alexaforbusiness#SearchDevices" - }, - { - "target": "com.amazonaws.alexaforbusiness#SearchNetworkProfiles" - }, - { - "target": "com.amazonaws.alexaforbusiness#SearchProfiles" - }, - { - "target": "com.amazonaws.alexaforbusiness#SearchRooms" - }, - { - "target": "com.amazonaws.alexaforbusiness#SearchSkillGroups" - }, - { - "target": "com.amazonaws.alexaforbusiness#SearchUsers" - }, - { - "target": "com.amazonaws.alexaforbusiness#SendAnnouncement" - }, - { - "target": "com.amazonaws.alexaforbusiness#SendInvitation" - }, - { - "target": "com.amazonaws.alexaforbusiness#StartDeviceSync" - }, - { - "target": "com.amazonaws.alexaforbusiness#StartSmartHomeApplianceDiscovery" - }, - { - "target": "com.amazonaws.alexaforbusiness#TagResource" - }, - { - "target": "com.amazonaws.alexaforbusiness#UntagResource" - }, - { - "target": "com.amazonaws.alexaforbusiness#UpdateAddressBook" - }, - { - "target": "com.amazonaws.alexaforbusiness#UpdateBusinessReportSchedule" - }, - { - "target": "com.amazonaws.alexaforbusiness#UpdateConferenceProvider" - }, - { - "target": "com.amazonaws.alexaforbusiness#UpdateContact" - }, - { - "target": "com.amazonaws.alexaforbusiness#UpdateDevice" - }, - { - "target": "com.amazonaws.alexaforbusiness#UpdateGateway" - }, - { - "target": "com.amazonaws.alexaforbusiness#UpdateGatewayGroup" - }, - { - "target": "com.amazonaws.alexaforbusiness#UpdateNetworkProfile" - }, - { - "target": "com.amazonaws.alexaforbusiness#UpdateProfile" - }, - { - "target": "com.amazonaws.alexaforbusiness#UpdateRoom" - }, - { - "target": "com.amazonaws.alexaforbusiness#UpdateSkillGroup" - } - ], - "traits": { - "aws.api#service": { - "sdkId": "Alexa For Business", - "arnNamespace": "a4b", - "cloudFormationName": "AlexaForBusiness", - "cloudTrailEventSource": "alexaforbusiness.amazonaws.com", - "docId": "alexaforbusiness-2017-11-09", - "endpointPrefix": "a4b" - }, - "aws.auth#sigv4": { - "name": "a4b" - }, - "aws.protocols#awsJson1_1": {}, - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Alexa for Business has been retired and is no longer supported.

", - "smithy.api#title": "Alexa For Business", - "smithy.rules#endpointRuleSet": { - "version": "1.0", - "parameters": { - "Region": { - "builtIn": "AWS::Region", - "required": false, - "documentation": "The AWS region used to dispatch the request.", - "type": "String" - }, - "UseDualStack": { - "builtIn": "AWS::UseDualStack", - "required": true, - "default": false, - "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", - "type": "Boolean" - }, - "UseFIPS": { - "builtIn": "AWS::UseFIPS", - "required": true, - "default": false, - "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", - "type": "Boolean" - }, - "Endpoint": { - "builtIn": "SDK::Endpoint", - "required": false, - "documentation": "Override the endpoint used to send this request", - "type": "String" - } - }, - "rules": [ - { - "conditions": [ - { - "fn": "isSet", - "argv": [ - { - "ref": "Endpoint" - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "isSet", - "argv": [ - { - "ref": "Region" - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "aws.partition", - "argv": [ - { - "ref": "Region" - } - ], - "assign": "PartitionResult" - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://a4b-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://a4b-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://a4b.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://a4b.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - } - ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" - } - ] - }, - "smithy.rules#endpointTests": { - "testCases": [ - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://a4b.us-east-1.amazonaws.com" - } - }, - "params": { - "Region": "us-east-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://a4b-fips.us-east-1.api.aws" - } - }, - "params": { - "Region": "us-east-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://a4b-fips.us-east-1.amazonaws.com" - } - }, - "params": { - "Region": "us-east-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://a4b.us-east-1.api.aws" - } - }, - "params": { - "Region": "us-east-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://a4b-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "Region": "cn-north-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://a4b-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "Region": "cn-north-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://a4b.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "Region": "cn-north-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://a4b.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "Region": "cn-north-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://a4b-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "Region": "us-gov-east-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://a4b-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "Region": "us-gov-east-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://a4b.us-gov-east-1.api.aws" - } - }, - "params": { - "Region": "us-gov-east-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://a4b.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "Region": "us-gov-east-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "Region": "us-iso-east-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://a4b-fips.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "Region": "us-iso-east-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "Region": "us-iso-east-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://a4b.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "Region": "us-iso-east-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "Region": "us-isob-east-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://a4b-fips.us-isob-east-1.sc2s.sgov.gov" - } - }, - "params": { - "Region": "us-isob-east-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "Region": "us-isob-east-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://a4b.us-isob-east-1.sc2s.sgov.gov" - } - }, - "params": { - "Region": "us-isob-east-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "params": { - "Region": "us-east-1", - "UseFIPS": false, - "UseDualStack": false, - "Endpoint": "https://example.com" - } - }, - { - "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Endpoint": "https://example.com" - } - }, - { - "documentation": "For custom endpoint with fips enabled and dualstack disabled", - "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, - "params": { - "Region": "us-east-1", - "UseFIPS": true, - "UseDualStack": false, - "Endpoint": "https://example.com" - } - }, - { - "documentation": "For custom endpoint with fips disabled and dualstack enabled", - "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - "params": { - "Region": "us-east-1", - "UseFIPS": false, - "UseDualStack": true, - "Endpoint": "https://example.com" - } - }, - { - "documentation": "Missing region", - "expect": { - "error": "Invalid Configuration: Missing Region" - } - } - ], - "version": "1.0" - } - } - }, - "com.amazonaws.alexaforbusiness#AlreadyExistsException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.alexaforbusiness#ErrorMessage" - } - }, - "traits": { - "smithy.api#documentation": "

The resource being created already exists.

", - "smithy.api#error": "client" - } - }, - "com.amazonaws.alexaforbusiness#AmazonId": { - "type": "string", - "traits": { - "smithy.api#pattern": "^[a-zA-Z0-9]{1,18}$" - } - }, - "com.amazonaws.alexaforbusiness#ApplianceDescription": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#ApplianceFriendlyName": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#ApplianceManufacturerName": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#ApproveSkill": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#ApproveSkillRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#ApproveSkillResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#LimitExceededException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Associates a skill with the organization under the customer's AWS account. If a skill\n is private, the user implicitly accepts access to this skill during enablement.

" - } - }, - "com.amazonaws.alexaforbusiness#ApproveSkillRequest": { - "type": "structure", - "members": { - "SkillId": { - "target": "com.amazonaws.alexaforbusiness#SkillId", - "traits": { - "smithy.api#documentation": "

The unique identifier of the skill.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#ApproveSkillResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#Arn": { - "type": "string", - "traits": { - "smithy.api#pattern": "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$" - } - }, - "com.amazonaws.alexaforbusiness#AssociateContactWithAddressBook": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#AssociateContactWithAddressBookRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#AssociateContactWithAddressBookResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#LimitExceededException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Associates a contact with a given address book.

" - } - }, - "com.amazonaws.alexaforbusiness#AssociateContactWithAddressBookRequest": { - "type": "structure", - "members": { - "ContactArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the contact to associate with an address book.

", - "smithy.api#required": {} - } - }, - "AddressBookArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the address book with which to associate the contact.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#AssociateContactWithAddressBookResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#AssociateDeviceWithNetworkProfile": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#AssociateDeviceWithNetworkProfileRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#AssociateDeviceWithNetworkProfileResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeviceNotRegisteredException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Associates a device with the specified network profile.

" - } - }, - "com.amazonaws.alexaforbusiness#AssociateDeviceWithNetworkProfileRequest": { - "type": "structure", - "members": { - "DeviceArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The device ARN.

", - "smithy.api#required": {} - } - }, - "NetworkProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the network profile to associate with a device.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#AssociateDeviceWithNetworkProfileResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#AssociateDeviceWithRoom": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#AssociateDeviceWithRoomRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#AssociateDeviceWithRoomResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeviceNotRegisteredException" - }, - { - "target": "com.amazonaws.alexaforbusiness#LimitExceededException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

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

" - } - }, - "com.amazonaws.alexaforbusiness#AssociateDeviceWithRoomRequest": { - "type": "structure", - "members": { - "DeviceArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#AssociateDeviceWithRoomResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#AssociateSkillGroupWithRoom": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#AssociateSkillGroupWithRoomRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#AssociateSkillGroupWithRoomResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

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

" - } - }, - "com.amazonaws.alexaforbusiness#AssociateSkillGroupWithRoomRequest": { - "type": "structure", - "members": { - "SkillGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#AssociateSkillGroupWithRoomResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#AssociateSkillWithSkillGroup": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#AssociateSkillWithSkillGroupRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#AssociateSkillWithSkillGroupResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - }, - { - "target": "com.amazonaws.alexaforbusiness#SkillNotLinkedException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Associates a skill with a skill group.

" - } - }, - "com.amazonaws.alexaforbusiness#AssociateSkillWithSkillGroupRequest": { - "type": "structure", - "members": { - "SkillGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the skill group to associate the skill to. Required.

" - } - }, - "SkillId": { - "target": "com.amazonaws.alexaforbusiness#SkillId", - "traits": { - "smithy.api#documentation": "

The unique identifier of the skill.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#AssociateSkillWithSkillGroupResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#AssociateSkillWithUsers": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#AssociateSkillWithUsersRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#AssociateSkillWithUsersResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Makes a private skill available for enrolled users to enable on their devices.

" - } - }, - "com.amazonaws.alexaforbusiness#AssociateSkillWithUsersRequest": { - "type": "structure", - "members": { - "SkillId": { - "target": "com.amazonaws.alexaforbusiness#SkillId", - "traits": { - "smithy.api#documentation": "

The private skill ID you want to make available to enrolled users.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#AssociateSkillWithUsersResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#Audio": { - "type": "structure", - "members": { - "Locale": { - "target": "com.amazonaws.alexaforbusiness#Locale", - "traits": { - "smithy.api#documentation": "

The locale of the audio message. Currently, en-US is supported.

", - "smithy.api#required": {} - } - }, - "Location": { - "target": "com.amazonaws.alexaforbusiness#AudioLocation", - "traits": { - "smithy.api#documentation": "

The location of the audio file. Currently, S3 URLs are supported. Only S3 locations\n comprised of safe characters are valid. For more information, see Safe Characters.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

The audio message. There is a 1 MB limit on the audio file input and the only supported\n format is MP3. To convert your MP3 audio files to an Alexa-friendly,

\n

required codec version (MPEG version 2) and bit rate (48 kbps), you might use converter\n software. One option for this is a command-line tool, FFmpeg. For more information, see\n FFmpeg. The following command converts the\n provided to an MP3 file that is played in the announcement:

\n

\n ffmpeg -i -ac 2 -codec:a libmp3lame -b:a 48k -ar 16000\n \n

" - } - }, - "com.amazonaws.alexaforbusiness#AudioList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#Audio" - }, - "traits": { - "smithy.api#length": { - "min": 0, - "max": 1 - } - } - }, - "com.amazonaws.alexaforbusiness#AudioLocation": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 1200 - }, - "smithy.api#pattern": "^https://([A-Za-z0-9_.-]+)?(s3-[A-Za-z0-9-]+|s3\\.([A-Za-z0-9-])+|s3|s3.dualstack\\.([A-Za-z0-9-])+)+.amazonaws.com/" - } - }, - "com.amazonaws.alexaforbusiness#AuthorizationResult": { - "type": "map", - "key": { - "target": "com.amazonaws.alexaforbusiness#Key" - }, - "value": { - "target": "com.amazonaws.alexaforbusiness#Value" - }, - "traits": { - "smithy.api#sensitive": {} - } - }, - "com.amazonaws.alexaforbusiness#Boolean": { - "type": "boolean" - }, - "com.amazonaws.alexaforbusiness#Boolean2": { - "type": "boolean", - "traits": { - "smithy.api#default": false - } - }, - "com.amazonaws.alexaforbusiness#BulletPoint": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#BulletPoints": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#BulletPoint" - } - }, - "com.amazonaws.alexaforbusiness#BusinessReport": { - "type": "structure", - "members": { - "Status": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportStatus", - "traits": { - "smithy.api#documentation": "

The status of the report generation execution (RUNNING, SUCCEEDED, or\n FAILED).

" - } - }, - "FailureCode": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportFailureCode", - "traits": { - "smithy.api#documentation": "

The failure code.

" - } - }, - "S3Location": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportS3Location", - "traits": { - "smithy.api#documentation": "

The S3 location of the output reports.

" - } - }, - "DeliveryTime": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportDeliveryTime", - "traits": { - "smithy.api#documentation": "

The time of report delivery.

" - } - }, - "DownloadUrl": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportDownloadUrl", - "traits": { - "smithy.api#documentation": "

The download link where a user can download the report.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Usage report with specified parameters.

" - } - }, - "com.amazonaws.alexaforbusiness#BusinessReportContentRange": { - "type": "structure", - "members": { - "Interval": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportInterval", - "traits": { - "smithy.api#documentation": "

The interval of the content range.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

The content range of the report.

" - } - }, - "com.amazonaws.alexaforbusiness#BusinessReportDeliveryTime": { - "type": "timestamp" - }, - "com.amazonaws.alexaforbusiness#BusinessReportDownloadUrl": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#BusinessReportFailureCode": { - "type": "enum", - "members": { - "ACCESS_DENIED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ACCESS_DENIED" - } - }, - "NO_SUCH_BUCKET": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "NO_SUCH_BUCKET" - } - }, - "INTERNAL_FAILURE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "INTERNAL_FAILURE" - } - } - } - }, - "com.amazonaws.alexaforbusiness#BusinessReportFormat": { - "type": "enum", - "members": { - "CSV": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CSV" - } - }, - "CSV_ZIP": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CSV_ZIP" - } - } - } - }, - "com.amazonaws.alexaforbusiness#BusinessReportInterval": { - "type": "enum", - "members": { - "ONE_DAY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ONE_DAY" - } - }, - "ONE_WEEK": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ONE_WEEK" - } - }, - "THIRTY_DAYS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "THIRTY_DAYS" - } - } - } - }, - "com.amazonaws.alexaforbusiness#BusinessReportRecurrence": { - "type": "structure", - "members": { - "StartDate": { - "target": "com.amazonaws.alexaforbusiness#Date", - "traits": { - "smithy.api#documentation": "

The start date.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The recurrence of the reports.

" - } - }, - "com.amazonaws.alexaforbusiness#BusinessReportS3Location": { - "type": "structure", - "members": { - "Path": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportS3Path", - "traits": { - "smithy.api#documentation": "

The path of the business report.

" - } - }, - "BucketName": { - "target": "com.amazonaws.alexaforbusiness#CustomerS3BucketName", - "traits": { - "smithy.api#documentation": "

The S3 bucket name of the output reports.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The S3 location of the output reports.

" - } - }, - "com.amazonaws.alexaforbusiness#BusinessReportS3Path": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#BusinessReportSchedule": { - "type": "structure", - "members": { - "ScheduleArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the business report schedule.

" - } - }, - "ScheduleName": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportScheduleName", - "traits": { - "smithy.api#documentation": "

The name identifier of the schedule.

" - } - }, - "S3BucketName": { - "target": "com.amazonaws.alexaforbusiness#CustomerS3BucketName", - "traits": { - "smithy.api#documentation": "

The S3 bucket name of the output reports.

" - } - }, - "S3KeyPrefix": { - "target": "com.amazonaws.alexaforbusiness#S3KeyPrefix", - "traits": { - "smithy.api#documentation": "

The S3 key where the report is delivered.

" - } - }, - "Format": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportFormat", - "traits": { - "smithy.api#documentation": "

The format of the generated report (individual CSV files or zipped files of\n individual files).

" - } - }, - "ContentRange": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportContentRange", - "traits": { - "smithy.api#documentation": "

The content range of the reports.

" - } - }, - "Recurrence": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportRecurrence", - "traits": { - "smithy.api#documentation": "

The recurrence of the reports.

" - } - }, - "LastBusinessReport": { - "target": "com.amazonaws.alexaforbusiness#BusinessReport", - "traits": { - "smithy.api#documentation": "

The details of the last business report delivery for a specified time\n interval.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The schedule of the usage report.

" - } - }, - "com.amazonaws.alexaforbusiness#BusinessReportScheduleList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportSchedule" - } - }, - "com.amazonaws.alexaforbusiness#BusinessReportScheduleName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 64 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#BusinessReportStatus": { - "type": "enum", - "members": { - "RUNNING": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "RUNNING" - } - }, - "SUCCEEDED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SUCCEEDED" - } - }, - "FAILED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "FAILED" - } - } - } - }, - "com.amazonaws.alexaforbusiness#Category": { - "type": "structure", - "members": { - "CategoryId": { - "target": "com.amazonaws.alexaforbusiness#CategoryId", - "traits": { - "smithy.api#documentation": "

The ID of the skill store category.

" - } - }, - "CategoryName": { - "target": "com.amazonaws.alexaforbusiness#CategoryName", - "traits": { - "smithy.api#documentation": "

The name of the skill store category.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The skill store category that is shown. Alexa skills are assigned a specific skill\n category during creation, such as News, Social, and Sports.

" - } - }, - "com.amazonaws.alexaforbusiness#CategoryId": { - "type": "long", - "traits": { - "smithy.api#range": { - "min": 1 - } - } - }, - "com.amazonaws.alexaforbusiness#CategoryList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#Category" - } - }, - "com.amazonaws.alexaforbusiness#CategoryName": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#CertificateTime": { - "type": "timestamp" - }, - "com.amazonaws.alexaforbusiness#ClientId": { - "type": "string", - "traits": { - "smithy.api#pattern": "^\\S+{1,256}$" - } - }, - "com.amazonaws.alexaforbusiness#ClientRequestToken": { - "type": "string", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#length": { - "min": 10, - "max": 150 - }, - "smithy.api#pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*$" - } - }, - "com.amazonaws.alexaforbusiness#CommsProtocol": { - "type": "enum", - "members": { - "SIP": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SIP" - } - }, - "SIPS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SIPS" - } - }, - "H323": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "H323" - } - } - } - }, - "com.amazonaws.alexaforbusiness#ConcurrentModificationException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.alexaforbusiness#ErrorMessage" - } - }, - "traits": { - "smithy.api#documentation": "

There is a concurrent modification of resources.

", - "smithy.api#error": "client" - } - }, - "com.amazonaws.alexaforbusiness#ConferencePreference": { - "type": "structure", - "members": { - "DefaultConferenceProviderArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the default conference provider.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The default conference provider that is used if no other scheduled meetings are\n detected.

" - } - }, - "com.amazonaws.alexaforbusiness#ConferenceProvider": { - "type": "structure", - "members": { - "Arn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the newly created conference provider.

" - } - }, - "Name": { - "target": "com.amazonaws.alexaforbusiness#ConferenceProviderName", - "traits": { - "smithy.api#documentation": "

The name of the conference provider.

" - } - }, - "Type": { - "target": "com.amazonaws.alexaforbusiness#ConferenceProviderType", - "traits": { - "smithy.api#documentation": "

The type of conference providers.

" - } - }, - "IPDialIn": { - "target": "com.amazonaws.alexaforbusiness#IPDialIn", - "traits": { - "smithy.api#documentation": "

The IP endpoint and protocol for calling.

" - } - }, - "PSTNDialIn": { - "target": "com.amazonaws.alexaforbusiness#PSTNDialIn", - "traits": { - "smithy.api#documentation": "

The information for PSTN conferencing.

" - } - }, - "MeetingSetting": { - "target": "com.amazonaws.alexaforbusiness#MeetingSetting", - "traits": { - "smithy.api#documentation": "

The meeting settings for the conference provider.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

An entity that provides a conferencing solution. Alexa for Business acts as the voice interface and mediator that connects users to their preferred conference provider. Examples of conference providers include Amazon Chime, Zoom, Cisco, and Polycom.

" - } - }, - "com.amazonaws.alexaforbusiness#ConferenceProviderName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 50 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#ConferenceProviderType": { - "type": "enum", - "members": { - "CHIME": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CHIME" - } - }, - "BLUEJEANS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "BLUEJEANS" - } - }, - "FUZE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "FUZE" - } - }, - "GOOGLE_HANGOUTS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "GOOGLE_HANGOUTS" - } - }, - "POLYCOM": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "POLYCOM" - } - }, - "RINGCENTRAL": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "RINGCENTRAL" - } - }, - "SKYPE_FOR_BUSINESS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SKYPE_FOR_BUSINESS" - } - }, - "WEBEX": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "WEBEX" - } - }, - "ZOOM": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ZOOM" - } - }, - "CUSTOM": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CUSTOM" - } - } - } - }, - "com.amazonaws.alexaforbusiness#ConferenceProvidersList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#ConferenceProvider" - } - }, - "com.amazonaws.alexaforbusiness#ConnectionStatus": { - "type": "enum", - "members": { - "ONLINE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ONLINE" - } - }, - "OFFLINE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "OFFLINE" - } - } - } - }, - "com.amazonaws.alexaforbusiness#ConnectionStatusUpdatedTime": { - "type": "timestamp" - }, - "com.amazonaws.alexaforbusiness#Contact": { - "type": "structure", - "members": { - "ContactArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the contact.

" - } - }, - "DisplayName": { - "target": "com.amazonaws.alexaforbusiness#ContactName", - "traits": { - "smithy.api#documentation": "

The name of the contact to display on the console.

" - } - }, - "FirstName": { - "target": "com.amazonaws.alexaforbusiness#ContactName", - "traits": { - "smithy.api#documentation": "

The first name of the contact, used to call the contact on the device.

" - } - }, - "LastName": { - "target": "com.amazonaws.alexaforbusiness#ContactName", - "traits": { - "smithy.api#documentation": "

The last name of the contact, used to call the contact on the device.

" - } - }, - "PhoneNumber": { - "target": "com.amazonaws.alexaforbusiness#RawPhoneNumber", - "traits": { - "smithy.api#documentation": "

The phone number of the contact. The phone number type defaults to WORK. You can\n either specify PhoneNumber or PhoneNumbers. We recommend that you use PhoneNumbers, which\n lets you specify the phone number type and multiple numbers.

" - } - }, - "PhoneNumbers": { - "target": "com.amazonaws.alexaforbusiness#PhoneNumberList", - "traits": { - "smithy.api#documentation": "

The list of phone numbers for the contact.

" - } - }, - "SipAddresses": { - "target": "com.amazonaws.alexaforbusiness#SipAddressList", - "traits": { - "smithy.api#documentation": "

The list of SIP addresses for the contact.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

A contact with attributes.

" - } - }, - "com.amazonaws.alexaforbusiness#ContactData": { - "type": "structure", - "members": { - "ContactArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the contact.

" - } - }, - "DisplayName": { - "target": "com.amazonaws.alexaforbusiness#ContactName", - "traits": { - "smithy.api#documentation": "

The name of the contact to display on the console.

" - } - }, - "FirstName": { - "target": "com.amazonaws.alexaforbusiness#ContactName", - "traits": { - "smithy.api#documentation": "

The first name of the contact, used to call the contact on the device.

" - } - }, - "LastName": { - "target": "com.amazonaws.alexaforbusiness#ContactName", - "traits": { - "smithy.api#documentation": "

The last name of the contact, used to call the contact on the device.

" - } - }, - "PhoneNumber": { - "target": "com.amazonaws.alexaforbusiness#RawPhoneNumber", - "traits": { - "smithy.api#documentation": "

The phone number of the contact. The phone number type defaults to WORK. You can\n specify PhoneNumber or PhoneNumbers. We recommend that you use PhoneNumbers, which lets you\n specify the phone number type and multiple numbers.

" - } - }, - "PhoneNumbers": { - "target": "com.amazonaws.alexaforbusiness#PhoneNumberList", - "traits": { - "smithy.api#documentation": "

The list of phone numbers for the contact.

" - } - }, - "SipAddresses": { - "target": "com.amazonaws.alexaforbusiness#SipAddressList", - "traits": { - "smithy.api#documentation": "

The list of SIP addresses for the contact.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Information related to a contact.

" - } - }, - "com.amazonaws.alexaforbusiness#ContactDataList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#ContactData" - } - }, - "com.amazonaws.alexaforbusiness#ContactName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 100 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#Content": { - "type": "structure", - "members": { - "TextList": { - "target": "com.amazonaws.alexaforbusiness#TextList", - "traits": { - "smithy.api#documentation": "

The list of text messages.

" - } - }, - "SsmlList": { - "target": "com.amazonaws.alexaforbusiness#SsmlList", - "traits": { - "smithy.api#documentation": "

The list of SSML messages.

" - } - }, - "AudioList": { - "target": "com.amazonaws.alexaforbusiness#AudioList", - "traits": { - "smithy.api#documentation": "

The list of audio messages.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The content definition. This can contain only one text, SSML, or audio list\n object.

" - } - }, - "com.amazonaws.alexaforbusiness#CountryCode": { - "type": "string", - "traits": { - "smithy.api#pattern": "^\\d{1,3}$" - } - }, - "com.amazonaws.alexaforbusiness#CreateAddressBook": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#CreateAddressBookRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#CreateAddressBookResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#AlreadyExistsException" - }, - { - "target": "com.amazonaws.alexaforbusiness#LimitExceededException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Creates an address book with the specified details.

" - } - }, - "com.amazonaws.alexaforbusiness#CreateAddressBookRequest": { - "type": "structure", - "members": { - "Name": { - "target": "com.amazonaws.alexaforbusiness#AddressBookName", - "traits": { - "smithy.api#documentation": "

The name of the address book.

", - "smithy.api#required": {} - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#AddressBookDescription", - "traits": { - "smithy.api#documentation": "

The description of the address book.

" - } - }, - "ClientRequestToken": { - "target": "com.amazonaws.alexaforbusiness#ClientRequestToken", - "traits": { - "smithy.api#documentation": "

A unique, user-specified identifier for the request that ensures\n idempotency.

", - "smithy.api#idempotencyToken": {} - } - }, - "Tags": { - "target": "com.amazonaws.alexaforbusiness#TagList", - "traits": { - "smithy.api#documentation": "

The tags to be added to the specified resource. Do not provide system tags.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateAddressBookResponse": { - "type": "structure", - "members": { - "AddressBookArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the newly created address book.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateBusinessReportSchedule": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#CreateBusinessReportScheduleRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#CreateBusinessReportScheduleResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#AlreadyExistsException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Creates a recurring schedule for usage reports to deliver to the specified S3\n location with a specified daily or weekly interval.

" - } - }, - "com.amazonaws.alexaforbusiness#CreateBusinessReportScheduleRequest": { - "type": "structure", - "members": { - "ScheduleName": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportScheduleName", - "traits": { - "smithy.api#documentation": "

The name identifier of the schedule.

" - } - }, - "S3BucketName": { - "target": "com.amazonaws.alexaforbusiness#CustomerS3BucketName", - "traits": { - "smithy.api#documentation": "

The S3 bucket name of the output reports. If this isn't specified, the report can be\n retrieved from a download link by calling ListBusinessReportSchedule.

" - } - }, - "S3KeyPrefix": { - "target": "com.amazonaws.alexaforbusiness#S3KeyPrefix", - "traits": { - "smithy.api#documentation": "

The S3 key where the report is delivered.

" - } - }, - "Format": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportFormat", - "traits": { - "smithy.api#documentation": "

The format of the generated report (individual CSV files or zipped files of\n individual files).

", - "smithy.api#required": {} - } - }, - "ContentRange": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportContentRange", - "traits": { - "smithy.api#documentation": "

The content range of the reports.

", - "smithy.api#required": {} - } - }, - "Recurrence": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportRecurrence", - "traits": { - "smithy.api#documentation": "

The recurrence of the reports. If this isn't specified, the report will only be\n delivered one time when the API is called.

" - } - }, - "ClientRequestToken": { - "target": "com.amazonaws.alexaforbusiness#ClientRequestToken", - "traits": { - "smithy.api#documentation": "

The client request token.

", - "smithy.api#idempotencyToken": {} - } - }, - "Tags": { - "target": "com.amazonaws.alexaforbusiness#TagList", - "traits": { - "smithy.api#documentation": "

The tags for the business report schedule.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateBusinessReportScheduleResponse": { - "type": "structure", - "members": { - "ScheduleArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the business report schedule.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateConferenceProvider": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#CreateConferenceProviderRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#CreateConferenceProviderResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#AlreadyExistsException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Adds a new conference provider under the user's AWS account.

" - } - }, - "com.amazonaws.alexaforbusiness#CreateConferenceProviderRequest": { - "type": "structure", - "members": { - "ConferenceProviderName": { - "target": "com.amazonaws.alexaforbusiness#ConferenceProviderName", - "traits": { - "smithy.api#documentation": "

The name of the conference provider.

", - "smithy.api#required": {} - } - }, - "ConferenceProviderType": { - "target": "com.amazonaws.alexaforbusiness#ConferenceProviderType", - "traits": { - "smithy.api#documentation": "

Represents a type within a list of predefined types.

", - "smithy.api#required": {} - } - }, - "IPDialIn": { - "target": "com.amazonaws.alexaforbusiness#IPDialIn", - "traits": { - "smithy.api#documentation": "

The IP endpoint and protocol for calling.

" - } - }, - "PSTNDialIn": { - "target": "com.amazonaws.alexaforbusiness#PSTNDialIn", - "traits": { - "smithy.api#documentation": "

The information for PSTN conferencing.

" - } - }, - "MeetingSetting": { - "target": "com.amazonaws.alexaforbusiness#MeetingSetting", - "traits": { - "smithy.api#documentation": "

The meeting settings for the conference provider.

", - "smithy.api#required": {} - } - }, - "ClientRequestToken": { - "target": "com.amazonaws.alexaforbusiness#ClientRequestToken", - "traits": { - "smithy.api#documentation": "

The request token of the client.

", - "smithy.api#idempotencyToken": {} - } - }, - "Tags": { - "target": "com.amazonaws.alexaforbusiness#TagList", - "traits": { - "smithy.api#documentation": "

The tags to be added to the specified resource. Do not provide system tags.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateConferenceProviderResponse": { - "type": "structure", - "members": { - "ConferenceProviderArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the newly-created conference provider.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateContact": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#CreateContactRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#CreateContactResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#AlreadyExistsException" - }, - { - "target": "com.amazonaws.alexaforbusiness#LimitExceededException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Creates a contact with the specified details.

" - } - }, - "com.amazonaws.alexaforbusiness#CreateContactRequest": { - "type": "structure", - "members": { - "DisplayName": { - "target": "com.amazonaws.alexaforbusiness#ContactName", - "traits": { - "smithy.api#documentation": "

The name of the contact to display on the console.

" - } - }, - "FirstName": { - "target": "com.amazonaws.alexaforbusiness#ContactName", - "traits": { - "smithy.api#documentation": "

The first name of the contact that is used to call the contact on the\n device.

", - "smithy.api#required": {} - } - }, - "LastName": { - "target": "com.amazonaws.alexaforbusiness#ContactName", - "traits": { - "smithy.api#documentation": "

The last name of the contact that is used to call the contact on the\n device.

" - } - }, - "PhoneNumber": { - "target": "com.amazonaws.alexaforbusiness#RawPhoneNumber", - "traits": { - "smithy.api#documentation": "

The phone number of the contact in E.164 format. The phone number type defaults to\n WORK. You can specify PhoneNumber or PhoneNumbers. We recommend that you use PhoneNumbers,\n which lets you specify the phone number type and multiple numbers.

" - } - }, - "PhoneNumbers": { - "target": "com.amazonaws.alexaforbusiness#PhoneNumberList", - "traits": { - "smithy.api#documentation": "

The list of phone numbers for the contact.

" - } - }, - "SipAddresses": { - "target": "com.amazonaws.alexaforbusiness#SipAddressList", - "traits": { - "smithy.api#documentation": "

The list of SIP addresses for the contact.

" - } - }, - "ClientRequestToken": { - "target": "com.amazonaws.alexaforbusiness#ClientRequestToken", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#idempotencyToken": {} - } - }, - "Tags": { - "target": "com.amazonaws.alexaforbusiness#TagList", - "traits": { - "smithy.api#documentation": "

The tags to be added to the specified resource. Do not provide system tags.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateContactResponse": { - "type": "structure", - "members": { - "ContactArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the newly created address book.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateEndOfMeetingReminder": { - "type": "structure", - "members": { - "ReminderAtMinutes": { - "target": "com.amazonaws.alexaforbusiness#EndOfMeetingReminderMinutesList", - "traits": { - "smithy.api#documentation": "

A range of 3 to 15 minutes that determines when the reminder begins.

", - "smithy.api#required": {} - } - }, - "ReminderType": { - "target": "com.amazonaws.alexaforbusiness#EndOfMeetingReminderType", - "traits": { - "smithy.api#documentation": "

The type of sound that users hear during the end of meeting reminder.

", - "smithy.api#required": {} - } - }, - "Enabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether an end of meeting reminder is enabled or not.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

Creates settings for the end of meeting reminder feature that are applied to a room\n profile. The end of meeting reminder enables Alexa to remind users when a meeting is\n ending.

" - } - }, - "com.amazonaws.alexaforbusiness#CreateGatewayGroup": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#CreateGatewayGroupRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#CreateGatewayGroupResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#AlreadyExistsException" - }, - { - "target": "com.amazonaws.alexaforbusiness#LimitExceededException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Creates a gateway group with the specified details.

" - } - }, - "com.amazonaws.alexaforbusiness#CreateGatewayGroupRequest": { - "type": "structure", - "members": { - "Name": { - "target": "com.amazonaws.alexaforbusiness#GatewayGroupName", - "traits": { - "smithy.api#documentation": "

The name of the gateway group.

", - "smithy.api#required": {} - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#GatewayGroupDescription", - "traits": { - "smithy.api#documentation": "

The description of the gateway group.

" - } - }, - "ClientRequestToken": { - "target": "com.amazonaws.alexaforbusiness#ClientRequestToken", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#idempotencyToken": {}, - "smithy.api#required": {} - } - }, - "Tags": { - "target": "com.amazonaws.alexaforbusiness#TagList", - "traits": { - "smithy.api#documentation": "

The tags to be added to the specified resource. Do not provide system tags.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateGatewayGroupResponse": { - "type": "structure", - "members": { - "GatewayGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the created gateway group.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateInstantBooking": { - "type": "structure", - "members": { - "DurationInMinutes": { - "target": "com.amazonaws.alexaforbusiness#Minutes", - "traits": { - "smithy.api#documentation": "

Duration between 15 and 240 minutes at increments of 15 that determines how long to book\n an available room when a meeting is started with Alexa.

", - "smithy.api#required": {} - } - }, - "Enabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether instant booking is enabled or not.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

Creates settings for the instant booking feature that are applied to a room profile.\n When users start their meeting with Alexa, Alexa automatically books the room for the\n configured duration if the room is available.

" - } - }, - "com.amazonaws.alexaforbusiness#CreateMeetingRoomConfiguration": { - "type": "structure", - "members": { - "RoomUtilizationMetricsEnabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether room utilization metrics are enabled or not.

" - } - }, - "EndOfMeetingReminder": { - "target": "com.amazonaws.alexaforbusiness#CreateEndOfMeetingReminder" - }, - "InstantBooking": { - "target": "com.amazonaws.alexaforbusiness#CreateInstantBooking", - "traits": { - "smithy.api#documentation": "

Settings to automatically book a room for a configured duration if it's free when joining a meeting with Alexa.

" - } - }, - "RequireCheckIn": { - "target": "com.amazonaws.alexaforbusiness#CreateRequireCheckIn", - "traits": { - "smithy.api#documentation": "

Settings for requiring a check in when a room is reserved. Alexa can cancel a room reservation if it's not checked into to make the room available for others. Users can check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check in.”

" - } - }, - "ProactiveJoin": { - "target": "com.amazonaws.alexaforbusiness#CreateProactiveJoin" - } - }, - "traits": { - "smithy.api#documentation": "

Creates meeting room settings of a room profile.

" - } - }, - "com.amazonaws.alexaforbusiness#CreateNetworkProfile": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#CreateNetworkProfileRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#CreateNetworkProfileResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#AlreadyExistsException" - }, - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#InvalidCertificateAuthorityException" - }, - { - "target": "com.amazonaws.alexaforbusiness#InvalidServiceLinkedRoleStateException" - }, - { - "target": "com.amazonaws.alexaforbusiness#LimitExceededException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Creates a network profile with the specified details.

" - } - }, - "com.amazonaws.alexaforbusiness#CreateNetworkProfileRequest": { - "type": "structure", - "members": { - "NetworkProfileName": { - "target": "com.amazonaws.alexaforbusiness#NetworkProfileName", - "traits": { - "smithy.api#documentation": "

The name of the network profile associated with a device.

", - "smithy.api#required": {} - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#NetworkProfileDescription", - "traits": { - "smithy.api#documentation": "

Detailed information about a device's network profile.

" - } - }, - "Ssid": { - "target": "com.amazonaws.alexaforbusiness#NetworkSsid", - "traits": { - "smithy.api#documentation": "

The SSID of the Wi-Fi network.

", - "smithy.api#required": {} - } - }, - "SecurityType": { - "target": "com.amazonaws.alexaforbusiness#NetworkSecurityType", - "traits": { - "smithy.api#documentation": "

The security type of the Wi-Fi network. This can be WPA2_ENTERPRISE, WPA2_PSK, WPA_PSK,\n WEP, or OPEN.

", - "smithy.api#required": {} - } - }, - "EapMethod": { - "target": "com.amazonaws.alexaforbusiness#NetworkEapMethod", - "traits": { - "smithy.api#documentation": "

The authentication standard that is used in the EAP framework. Currently, EAP_TLS is\n supported.

" - } - }, - "CurrentPassword": { - "target": "com.amazonaws.alexaforbusiness#CurrentWiFiPassword", - "traits": { - "smithy.api#documentation": "

The current password of the Wi-Fi network.

" - } - }, - "NextPassword": { - "target": "com.amazonaws.alexaforbusiness#NextWiFiPassword", - "traits": { - "smithy.api#documentation": "

The next, or subsequent, password of the Wi-Fi network. This password is asynchronously\n transmitted to the device and is used when the password of the network changes to\n NextPassword.

" - } - }, - "CertificateAuthorityArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the Private Certificate Authority (PCA) created in AWS Certificate Manager\n (ACM). This is used to issue certificates to the devices.

" - } - }, - "TrustAnchors": { - "target": "com.amazonaws.alexaforbusiness#TrustAnchorList", - "traits": { - "smithy.api#documentation": "

The root certificates of your authentication server that is installed on your devices\n and used to trust your authentication server during EAP negotiation.

" - } - }, - "ClientRequestToken": { - "target": "com.amazonaws.alexaforbusiness#ClientRequestToken", - "traits": { - "smithy.api#idempotencyToken": {}, - "smithy.api#required": {} - } - }, - "Tags": { - "target": "com.amazonaws.alexaforbusiness#TagList", - "traits": { - "smithy.api#documentation": "

The tags to be added to the specified resource. Do not provide system tags.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateNetworkProfileResponse": { - "type": "structure", - "members": { - "NetworkProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the network profile associated with a device.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateProactiveJoin": { - "type": "structure", - "members": { - "EnabledByMotion": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#required": {} - } - } - } - }, - "com.amazonaws.alexaforbusiness#CreateProfile": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#CreateProfileRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#CreateProfileResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#AlreadyExistsException" - }, - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#LimitExceededException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Creates a new room profile with the specified details.

" - } - }, - "com.amazonaws.alexaforbusiness#CreateProfileRequest": { - "type": "structure", - "members": { - "ProfileName": { - "target": "com.amazonaws.alexaforbusiness#ProfileName", - "traits": { - "smithy.api#documentation": "

The name of a room profile.

", - "smithy.api#required": {} - } - }, - "Timezone": { - "target": "com.amazonaws.alexaforbusiness#Timezone", - "traits": { - "smithy.api#documentation": "

The time zone used by a room profile.

", - "smithy.api#required": {} - } - }, - "Address": { - "target": "com.amazonaws.alexaforbusiness#Address", - "traits": { - "smithy.api#documentation": "

The valid address for the room.

", - "smithy.api#required": {} - } - }, - "DistanceUnit": { - "target": "com.amazonaws.alexaforbusiness#DistanceUnit", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#required": {} - } - }, - "TemperatureUnit": { - "target": "com.amazonaws.alexaforbusiness#TemperatureUnit", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#required": {} - } - }, - "WakeWord": { - "target": "com.amazonaws.alexaforbusiness#WakeWord", - "traits": { - "smithy.api#documentation": "

A wake word for Alexa, Echo, Amazon, or a computer.

", - "smithy.api#required": {} - } - }, - "Locale": { - "target": "com.amazonaws.alexaforbusiness#DeviceLocale", - "traits": { - "smithy.api#documentation": "

The locale of the room profile. (This is currently only available to a limited preview audience.)

" - } - }, - "ClientRequestToken": { - "target": "com.amazonaws.alexaforbusiness#ClientRequestToken", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#idempotencyToken": {} - } - }, - "SetupModeDisabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether room profile setup is enabled.

" - } - }, - "MaxVolumeLimit": { - "target": "com.amazonaws.alexaforbusiness#MaxVolumeLimit", - "traits": { - "smithy.api#documentation": "

The maximum volume limit for a room profile.

" - } - }, - "PSTNEnabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether PSTN calling is enabled.

" - } - }, - "DataRetentionOptIn": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether data retention of the profile is enabled.

" - } - }, - "MeetingRoomConfiguration": { - "target": "com.amazonaws.alexaforbusiness#CreateMeetingRoomConfiguration", - "traits": { - "smithy.api#documentation": "

The meeting room settings of a room profile.

" - } - }, - "Tags": { - "target": "com.amazonaws.alexaforbusiness#TagList", - "traits": { - "smithy.api#documentation": "

The tags for the profile.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateProfileResponse": { - "type": "structure", - "members": { - "ProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateRequireCheckIn": { - "type": "structure", - "members": { - "ReleaseAfterMinutes": { - "target": "com.amazonaws.alexaforbusiness#Minutes", - "traits": { - "smithy.api#documentation": "

Duration between 5 and 20 minutes to determine when to release the room if it's not checked into.

", - "smithy.api#required": {} - } - }, - "Enabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether require check in is enabled or not.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

Creates settings for the require check in feature that are applied to a room profile. Require check in allows a meeting room’s Alexa or AVS device to prompt the user to check in; otherwise, the room will be released.

" - } - }, - "com.amazonaws.alexaforbusiness#CreateRoom": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#CreateRoomRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#CreateRoomResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#AlreadyExistsException" - }, - { - "target": "com.amazonaws.alexaforbusiness#LimitExceededException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Creates a room with the specified details.

" - } - }, - "com.amazonaws.alexaforbusiness#CreateRoomRequest": { - "type": "structure", - "members": { - "RoomName": { - "target": "com.amazonaws.alexaforbusiness#RoomName", - "traits": { - "smithy.api#documentation": "

The name for the room.

", - "smithy.api#required": {} - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#RoomDescription", - "traits": { - "smithy.api#documentation": "

The description for the room.

" - } - }, - "ProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The profile ARN for the room. This is required.

" - } - }, - "ProviderCalendarId": { - "target": "com.amazonaws.alexaforbusiness#ProviderCalendarId", - "traits": { - "smithy.api#documentation": "

The calendar ARN for the room.

" - } - }, - "ClientRequestToken": { - "target": "com.amazonaws.alexaforbusiness#ClientRequestToken", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#idempotencyToken": {} - } - }, - "Tags": { - "target": "com.amazonaws.alexaforbusiness#TagList", - "traits": { - "smithy.api#documentation": "

The tags for the room.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateRoomResponse": { - "type": "structure", - "members": { - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the newly created room in the response.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateSkillGroup": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#CreateSkillGroupRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#CreateSkillGroupResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#AlreadyExistsException" - }, - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#LimitExceededException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Creates a skill group with a specified name and description.

" - } - }, - "com.amazonaws.alexaforbusiness#CreateSkillGroupRequest": { - "type": "structure", - "members": { - "SkillGroupName": { - "target": "com.amazonaws.alexaforbusiness#SkillGroupName", - "traits": { - "smithy.api#documentation": "

The name for the skill group.

", - "smithy.api#required": {} - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#SkillGroupDescription", - "traits": { - "smithy.api#documentation": "

The description for the skill group.

" - } - }, - "ClientRequestToken": { - "target": "com.amazonaws.alexaforbusiness#ClientRequestToken", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#idempotencyToken": {} - } - }, - "Tags": { - "target": "com.amazonaws.alexaforbusiness#TagList", - "traits": { - "smithy.api#documentation": "

The tags for the skill group.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateSkillGroupResponse": { - "type": "structure", - "members": { - "SkillGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateUser": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#CreateUserRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#CreateUserResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#LimitExceededException" - }, - { - "target": "com.amazonaws.alexaforbusiness#ResourceInUseException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Creates a user.

" - } - }, - "com.amazonaws.alexaforbusiness#CreateUserRequest": { - "type": "structure", - "members": { - "UserId": { - "target": "com.amazonaws.alexaforbusiness#user_UserId", - "traits": { - "smithy.api#documentation": "

The ARN for the user.

", - "smithy.api#required": {} - } - }, - "FirstName": { - "target": "com.amazonaws.alexaforbusiness#user_FirstName", - "traits": { - "smithy.api#documentation": "

The first name for the user.

" - } - }, - "LastName": { - "target": "com.amazonaws.alexaforbusiness#user_LastName", - "traits": { - "smithy.api#documentation": "

The last name for the user.

" - } - }, - "Email": { - "target": "com.amazonaws.alexaforbusiness#Email", - "traits": { - "smithy.api#documentation": "

The email address for the user.

" - } - }, - "ClientRequestToken": { - "target": "com.amazonaws.alexaforbusiness#ClientRequestToken", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#idempotencyToken": {} - } - }, - "Tags": { - "target": "com.amazonaws.alexaforbusiness#TagList", - "traits": { - "smithy.api#documentation": "

The tags for the user.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#CreateUserResponse": { - "type": "structure", - "members": { - "UserArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the newly created user in the response.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#CurrentWiFiPassword": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 5, - "max": 128 - }, - "smithy.api#pattern": "^[\\x00-\\x7F]*$", - "smithy.api#sensitive": {} - } - }, - "com.amazonaws.alexaforbusiness#CustomerS3BucketName": { - "type": "string", - "traits": { - "smithy.api#pattern": "^[a-z0-9-\\.]{3,63}$" - } - }, - "com.amazonaws.alexaforbusiness#Date": { - "type": "string", - "traits": { - "smithy.api#pattern": "^\\d{4}\\-(0?[1-9]|1[012])\\-(0?[1-9]|[12][0-9]|3[01])$" - } - }, - "com.amazonaws.alexaforbusiness#DeleteAddressBook": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DeleteAddressBookRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DeleteAddressBookResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Deletes an address book by the address book ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#DeleteAddressBookRequest": { - "type": "structure", - "members": { - "AddressBookArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the address book to delete.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteAddressBookResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteBusinessReportSchedule": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DeleteBusinessReportScheduleRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DeleteBusinessReportScheduleResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Deletes the recurring report delivery schedule with the specified schedule\n ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#DeleteBusinessReportScheduleRequest": { - "type": "structure", - "members": { - "ScheduleArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the business report schedule.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteBusinessReportScheduleResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteConferenceProvider": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DeleteConferenceProviderRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DeleteConferenceProviderResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Deletes a conference provider.

" - } - }, - "com.amazonaws.alexaforbusiness#DeleteConferenceProviderRequest": { - "type": "structure", - "members": { - "ConferenceProviderArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the conference provider.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteConferenceProviderResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteContact": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DeleteContactRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DeleteContactResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Deletes a contact by the contact ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#DeleteContactRequest": { - "type": "structure", - "members": { - "ContactArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the contact to delete.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteContactResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteDevice": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DeleteDeviceRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DeleteDeviceResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#InvalidCertificateAuthorityException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Removes a device from Alexa For Business.

" - } - }, - "com.amazonaws.alexaforbusiness#DeleteDeviceRequest": { - "type": "structure", - "members": { - "DeviceArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the device for which to request details.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteDeviceResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteDeviceUsageData": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DeleteDeviceUsageDataRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DeleteDeviceUsageDataResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#DeviceNotRegisteredException" - }, - { - "target": "com.amazonaws.alexaforbusiness#LimitExceededException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

When this action is called for a specified shared device, it allows authorized users to\n delete the device's entire previous history of voice input data and associated response\n data. This action can be called once every 24 hours for a specific shared device.

" - } - }, - "com.amazonaws.alexaforbusiness#DeleteDeviceUsageDataRequest": { - "type": "structure", - "members": { - "DeviceArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the device.

", - "smithy.api#required": {} - } - }, - "DeviceUsageType": { - "target": "com.amazonaws.alexaforbusiness#DeviceUsageType", - "traits": { - "smithy.api#documentation": "

The type of usage data to delete.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteDeviceUsageDataResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteGatewayGroup": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DeleteGatewayGroupRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DeleteGatewayGroupResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ResourceAssociatedException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Deletes a gateway group.

" - } - }, - "com.amazonaws.alexaforbusiness#DeleteGatewayGroupRequest": { - "type": "structure", - "members": { - "GatewayGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the gateway group to delete.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteGatewayGroupResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteNetworkProfile": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DeleteNetworkProfileRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DeleteNetworkProfileResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - }, - { - "target": "com.amazonaws.alexaforbusiness#ResourceInUseException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Deletes a network profile by the network profile ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#DeleteNetworkProfileRequest": { - "type": "structure", - "members": { - "NetworkProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the network profile associated with a device.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteNetworkProfileResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteProfile": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DeleteProfileRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DeleteProfileResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Deletes a room profile by the profile ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#DeleteProfileRequest": { - "type": "structure", - "members": { - "ProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the room profile to delete. Required.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteProfileResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteRoom": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DeleteRoomRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DeleteRoomResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Deletes a room by the room ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#DeleteRoomRequest": { - "type": "structure", - "members": { - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the room to delete. Required.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteRoomResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteRoomSkillParameter": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DeleteRoomSkillParameterRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DeleteRoomSkillParameterResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

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

" - } - }, - "com.amazonaws.alexaforbusiness#DeleteRoomSkillParameterRequest": { - "type": "structure", - "members": { - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "SkillId": { - "target": "com.amazonaws.alexaforbusiness#SkillId", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#required": {} - } - }, - "ParameterKey": { - "target": "com.amazonaws.alexaforbusiness#RoomSkillParameterKey", - "traits": { - "smithy.api#documentation": "

The room skill parameter key for which to remove details.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteRoomSkillParameterResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteSkillAuthorization": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DeleteSkillAuthorizationRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DeleteSkillAuthorizationResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Unlinks a third-party account from a skill.

" - } - }, - "com.amazonaws.alexaforbusiness#DeleteSkillAuthorizationRequest": { - "type": "structure", - "members": { - "SkillId": { - "target": "com.amazonaws.alexaforbusiness#SkillId", - "traits": { - "smithy.api#documentation": "

The unique identifier of a skill.

", - "smithy.api#required": {} - } - }, - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The room that the skill is authorized for.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteSkillAuthorizationResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteSkillGroup": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DeleteSkillGroupRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DeleteSkillGroupResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Deletes a skill group by skill group ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#DeleteSkillGroupRequest": { - "type": "structure", - "members": { - "SkillGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the skill group to delete. Required.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteSkillGroupResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteUser": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DeleteUserRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DeleteUserResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Deletes a specified user by user ARN and enrollment ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#DeleteUserRequest": { - "type": "structure", - "members": { - "UserArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "EnrollmentId": { - "target": "com.amazonaws.alexaforbusiness#EnrollmentId", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DeleteUserResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DeveloperInfo": { - "type": "structure", - "members": { - "DeveloperName": { - "target": "com.amazonaws.alexaforbusiness#DeveloperName", - "traits": { - "smithy.api#documentation": "

The name of the developer.

" - } - }, - "PrivacyPolicy": { - "target": "com.amazonaws.alexaforbusiness#PrivacyPolicy", - "traits": { - "smithy.api#documentation": "

The URL of the privacy policy.

" - } - }, - "Email": { - "target": "com.amazonaws.alexaforbusiness#Email", - "traits": { - "smithy.api#documentation": "

The email of the developer.

" - } - }, - "Url": { - "target": "com.amazonaws.alexaforbusiness#Url", - "traits": { - "smithy.api#documentation": "

The website of the developer.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The details about the developer that published the skill.

" - } - }, - "com.amazonaws.alexaforbusiness#DeveloperName": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#Device": { - "type": "structure", - "members": { - "DeviceArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of a device.

" - } - }, - "DeviceSerialNumber": { - "target": "com.amazonaws.alexaforbusiness#DeviceSerialNumber", - "traits": { - "smithy.api#documentation": "

The serial number of a device.

" - } - }, - "DeviceType": { - "target": "com.amazonaws.alexaforbusiness#DeviceType", - "traits": { - "smithy.api#documentation": "

The type of a device.

" - } - }, - "DeviceName": { - "target": "com.amazonaws.alexaforbusiness#DeviceName", - "traits": { - "smithy.api#documentation": "

The name of a device.

" - } - }, - "SoftwareVersion": { - "target": "com.amazonaws.alexaforbusiness#SoftwareVersion", - "traits": { - "smithy.api#documentation": "

The software version of a device.

" - } - }, - "MacAddress": { - "target": "com.amazonaws.alexaforbusiness#MacAddress", - "traits": { - "smithy.api#documentation": "

The MAC address of a device.

" - } - }, - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The room ARN of a device.

" - } - }, - "DeviceStatus": { - "target": "com.amazonaws.alexaforbusiness#DeviceStatus", - "traits": { - "smithy.api#documentation": "

The status of a device. If the status is not READY, check the DeviceStatusInfo value\n for details.

" - } - }, - "DeviceStatusInfo": { - "target": "com.amazonaws.alexaforbusiness#DeviceStatusInfo", - "traits": { - "smithy.api#documentation": "

Detailed information about a device's status.

" - } - }, - "NetworkProfileInfo": { - "target": "com.amazonaws.alexaforbusiness#DeviceNetworkProfileInfo", - "traits": { - "smithy.api#documentation": "

Detailed information about a device's network profile.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

A device with attributes.

" - } - }, - "com.amazonaws.alexaforbusiness#DeviceData": { - "type": "structure", - "members": { - "DeviceArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of a device.

" - } - }, - "DeviceSerialNumber": { - "target": "com.amazonaws.alexaforbusiness#DeviceSerialNumber", - "traits": { - "smithy.api#documentation": "

The serial number of a device.

" - } - }, - "DeviceType": { - "target": "com.amazonaws.alexaforbusiness#DeviceType", - "traits": { - "smithy.api#documentation": "

The type of a device.

" - } - }, - "DeviceName": { - "target": "com.amazonaws.alexaforbusiness#DeviceName", - "traits": { - "smithy.api#documentation": "

The name of a device.

" - } - }, - "SoftwareVersion": { - "target": "com.amazonaws.alexaforbusiness#SoftwareVersion", - "traits": { - "smithy.api#documentation": "

The software version of a device.

" - } - }, - "MacAddress": { - "target": "com.amazonaws.alexaforbusiness#MacAddress", - "traits": { - "smithy.api#documentation": "

The MAC address of a device.

" - } - }, - "DeviceStatus": { - "target": "com.amazonaws.alexaforbusiness#DeviceStatus", - "traits": { - "smithy.api#documentation": "

The status of a device.

" - } - }, - "NetworkProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the network profile associated with a device.

" - } - }, - "NetworkProfileName": { - "target": "com.amazonaws.alexaforbusiness#NetworkProfileName", - "traits": { - "smithy.api#documentation": "

The name of the network profile associated with a device.

" - } - }, - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The room ARN associated with a device.

" - } - }, - "RoomName": { - "target": "com.amazonaws.alexaforbusiness#DeviceRoomName", - "traits": { - "smithy.api#documentation": "

The name of the room associated with a device.

" - } - }, - "DeviceStatusInfo": { - "target": "com.amazonaws.alexaforbusiness#DeviceStatusInfo", - "traits": { - "smithy.api#documentation": "

Detailed information about a device's status.

" - } - }, - "CreatedTime": { - "target": "com.amazonaws.alexaforbusiness#DeviceDataCreatedTime", - "traits": { - "smithy.api#documentation": "

The time (in epoch) when the device data was created.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Device attributes.

" - } - }, - "com.amazonaws.alexaforbusiness#DeviceDataCreatedTime": { - "type": "timestamp" - }, - "com.amazonaws.alexaforbusiness#DeviceDataList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#DeviceData" - } - }, - "com.amazonaws.alexaforbusiness#DeviceEvent": { - "type": "structure", - "members": { - "Type": { - "target": "com.amazonaws.alexaforbusiness#DeviceEventType", - "traits": { - "smithy.api#documentation": "

The type of device event.

" - } - }, - "Value": { - "target": "com.amazonaws.alexaforbusiness#DeviceEventValue", - "traits": { - "smithy.api#documentation": "

The value of the event.

" - } - }, - "Timestamp": { - "target": "com.amazonaws.alexaforbusiness#DeviceEventTime", - "traits": { - "smithy.api#documentation": "

The time (in epoch) when the event occurred.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The list of device events.

" - } - }, - "com.amazonaws.alexaforbusiness#DeviceEventList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#DeviceEvent" - } - }, - "com.amazonaws.alexaforbusiness#DeviceEventTime": { - "type": "timestamp" - }, - "com.amazonaws.alexaforbusiness#DeviceEventType": { - "type": "enum", - "members": { - "CONNECTION_STATUS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CONNECTION_STATUS" - } - }, - "DEVICE_STATUS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DEVICE_STATUS" - } - } - } - }, - "com.amazonaws.alexaforbusiness#DeviceEventValue": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#DeviceLocale": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 256 - } - } - }, - "com.amazonaws.alexaforbusiness#DeviceName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 2, - "max": 100 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#DeviceNetworkProfileInfo": { - "type": "structure", - "members": { - "NetworkProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the network profile associated with a device.

" - } - }, - "CertificateArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the certificate associated with a device.

" - } - }, - "CertificateExpirationTime": { - "target": "com.amazonaws.alexaforbusiness#CertificateTime", - "traits": { - "smithy.api#documentation": "

The time (in epoch) when the certificate expires.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Detailed information about a device's network profile.

" - } - }, - "com.amazonaws.alexaforbusiness#DeviceNotRegisteredException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.alexaforbusiness#ErrorMessage" - } - }, - "traits": { - "smithy.api#documentation": "

The request failed because this device is no longer registered and therefore no longer managed by this account.

", - "smithy.api#error": "client" - } - }, - "com.amazonaws.alexaforbusiness#DeviceRoomName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 100 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#DeviceSerialNumber": { - "type": "string", - "traits": { - "smithy.api#pattern": "^[a-zA-Z0-9]{1,200}$" - } - }, - "com.amazonaws.alexaforbusiness#DeviceSerialNumberForAVS": { - "type": "string", - "traits": { - "smithy.api#pattern": "^[a-zA-Z0-9]{1,50}$" - } - }, - "com.amazonaws.alexaforbusiness#DeviceStatus": { - "type": "enum", - "members": { - "READY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "READY" - } - }, - "PENDING": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PENDING" - } - }, - "WAS_OFFLINE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "WAS_OFFLINE" - } - }, - "DEREGISTERED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DEREGISTERED" - } - }, - "FAILED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "FAILED" - } - } - } - }, - "com.amazonaws.alexaforbusiness#DeviceStatusDetail": { - "type": "structure", - "members": { - "Feature": { - "target": "com.amazonaws.alexaforbusiness#Feature", - "traits": { - "smithy.api#documentation": "

The list of available features on the device.

" - } - }, - "Code": { - "target": "com.amazonaws.alexaforbusiness#DeviceStatusDetailCode", - "traits": { - "smithy.api#documentation": "

The device status detail code.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Details of a device’s status.

" - } - }, - "com.amazonaws.alexaforbusiness#DeviceStatusDetailCode": { - "type": "enum", - "members": { - "DEVICE_SOFTWARE_UPDATE_NEEDED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DEVICE_SOFTWARE_UPDATE_NEEDED" - } - }, - "DEVICE_WAS_OFFLINE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DEVICE_WAS_OFFLINE" - } - }, - "CREDENTIALS_ACCESS_FAILURE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CREDENTIALS_ACCESS_FAILURE" - } - }, - "TLS_VERSION_MISMATCH": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "TLS_VERSION_MISMATCH" - } - }, - "ASSOCIATION_REJECTION": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ASSOCIATION_REJECTION" - } - }, - "AUTHENTICATION_FAILURE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AUTHENTICATION_FAILURE" - } - }, - "DHCP_FAILURE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DHCP_FAILURE" - } - }, - "INTERNET_UNAVAILABLE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "INTERNET_UNAVAILABLE" - } - }, - "DNS_FAILURE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DNS_FAILURE" - } - }, - "UNKNOWN_FAILURE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "UNKNOWN_FAILURE" - } - }, - "CERTIFICATE_ISSUING_LIMIT_EXCEEDED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CERTIFICATE_ISSUING_LIMIT_EXCEEDED" - } - }, - "INVALID_CERTIFICATE_AUTHORITY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "INVALID_CERTIFICATE_AUTHORITY" - } - }, - "NETWORK_PROFILE_NOT_FOUND": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "NETWORK_PROFILE_NOT_FOUND" - } - }, - "INVALID_PASSWORD_STATE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "INVALID_PASSWORD_STATE" - } - }, - "PASSWORD_NOT_FOUND": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PASSWORD_NOT_FOUND" - } - }, - "PASSWORD_MANAGER_ACCESS_DENIED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PASSWORD_MANAGER_ACCESS_DENIED" - } - }, - "CERTIFICATE_AUTHORITY_ACCESS_DENIED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CERTIFICATE_AUTHORITY_ACCESS_DENIED" - } - } - } - }, - "com.amazonaws.alexaforbusiness#DeviceStatusDetails": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#DeviceStatusDetail" - } - }, - "com.amazonaws.alexaforbusiness#DeviceStatusInfo": { - "type": "structure", - "members": { - "DeviceStatusDetails": { - "target": "com.amazonaws.alexaforbusiness#DeviceStatusDetails", - "traits": { - "smithy.api#documentation": "

One or more device status detail descriptions.

" - } - }, - "ConnectionStatus": { - "target": "com.amazonaws.alexaforbusiness#ConnectionStatus", - "traits": { - "smithy.api#documentation": "

The latest available information about the connection status of a device.

" - } - }, - "ConnectionStatusUpdatedTime": { - "target": "com.amazonaws.alexaforbusiness#ConnectionStatusUpdatedTime", - "traits": { - "smithy.api#documentation": "

The time (in epoch) when the device connection status changed.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Detailed information about a device's status.

" - } - }, - "com.amazonaws.alexaforbusiness#DeviceType": { - "type": "string", - "traits": { - "smithy.api#pattern": "^[a-zA-Z0-9]{1,200}$" - } - }, - "com.amazonaws.alexaforbusiness#DeviceUsageType": { - "type": "enum", - "members": { - "VOICE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "VOICE" - } - } - } - }, - "com.amazonaws.alexaforbusiness#DisassociateContactFromAddressBook": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DisassociateContactFromAddressBookRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DisassociateContactFromAddressBookResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Disassociates a contact from a given address book.

" - } - }, - "com.amazonaws.alexaforbusiness#DisassociateContactFromAddressBookRequest": { - "type": "structure", - "members": { - "ContactArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the contact to disassociate from an address book.

", - "smithy.api#required": {} - } - }, - "AddressBookArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the address from which to disassociate the contact.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DisassociateContactFromAddressBookResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DisassociateDeviceFromRoom": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DisassociateDeviceFromRoomRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DisassociateDeviceFromRoomResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeviceNotRegisteredException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

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

" - } - }, - "com.amazonaws.alexaforbusiness#DisassociateDeviceFromRoomRequest": { - "type": "structure", - "members": { - "DeviceArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DisassociateDeviceFromRoomResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DisassociateSkillFromSkillGroup": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DisassociateSkillFromSkillGroupRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DisassociateSkillFromSkillGroupResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Disassociates a skill from a skill group.

" - } - }, - "com.amazonaws.alexaforbusiness#DisassociateSkillFromSkillGroupRequest": { - "type": "structure", - "members": { - "SkillGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The unique identifier of a skill. Required.

" - } - }, - "SkillId": { - "target": "com.amazonaws.alexaforbusiness#SkillId", - "traits": { - "smithy.api#documentation": "

The ARN of a skill group to associate to a skill.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DisassociateSkillFromSkillGroupResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DisassociateSkillFromUsers": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DisassociateSkillFromUsersRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DisassociateSkillFromUsersResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Makes a private skill unavailable for enrolled users and prevents them from enabling it\n on their devices.

" - } - }, - "com.amazonaws.alexaforbusiness#DisassociateSkillFromUsersRequest": { - "type": "structure", - "members": { - "SkillId": { - "target": "com.amazonaws.alexaforbusiness#SkillId", - "traits": { - "smithy.api#documentation": "

The private skill ID you want to make unavailable for enrolled users.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DisassociateSkillFromUsersResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DisassociateSkillGroupFromRoom": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#DisassociateSkillGroupFromRoomRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#DisassociateSkillGroupFromRoomResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

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

" - } - }, - "com.amazonaws.alexaforbusiness#DisassociateSkillGroupFromRoomRequest": { - "type": "structure", - "members": { - "SkillGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#DisassociateSkillGroupFromRoomResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#DistanceUnit": { - "type": "enum", - "members": { - "METRIC": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "METRIC" - } - }, - "IMPERIAL": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "IMPERIAL" - } - } - } - }, - "com.amazonaws.alexaforbusiness#Email": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 128 - }, - "smithy.api#pattern": "^\\w[+-.\\w]*@\\w[\\w\\.\\-]+\\.[0-9a-zA-Z]{2,24}$" - } - }, - "com.amazonaws.alexaforbusiness#EnablementType": { - "type": "enum", - "members": { - "ENABLED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ENABLED" - } - }, - "PENDING": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PENDING" - } - } - } - }, - "com.amazonaws.alexaforbusiness#EnablementTypeFilter": { - "type": "enum", - "members": { - "ENABLED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ENABLED" - } - }, - "PENDING": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PENDING" - } - } - } - }, - "com.amazonaws.alexaforbusiness#EndOfMeetingReminder": { - "type": "structure", - "members": { - "ReminderAtMinutes": { - "target": "com.amazonaws.alexaforbusiness#EndOfMeetingReminderMinutesList", - "traits": { - "smithy.api#documentation": "

A range of 3 to 15 minutes that determines when the reminder begins.

" - } - }, - "ReminderType": { - "target": "com.amazonaws.alexaforbusiness#EndOfMeetingReminderType", - "traits": { - "smithy.api#documentation": "

The type of sound that users hear during the end of meeting reminder.

" - } - }, - "Enabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether an end of meeting reminder is enabled or not.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Settings for the end of meeting reminder feature that are applied to a room profile. The\n end of meeting reminder enables Alexa to remind users when a meeting is ending.

" - } - }, - "com.amazonaws.alexaforbusiness#EndOfMeetingReminderMinutesList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#Minutes" - }, - "traits": { - "smithy.api#length": { - "min": 1, - "max": 1 - } - } - }, - "com.amazonaws.alexaforbusiness#EndOfMeetingReminderType": { - "type": "enum", - "members": { - "ANNOUNCEMENT_TIME_CHECK": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ANNOUNCEMENT_TIME_CHECK" - } - }, - "ANNOUNCEMENT_VARIABLE_TIME_LEFT": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ANNOUNCEMENT_VARIABLE_TIME_LEFT" - } - }, - "CHIME": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CHIME" - } - }, - "KNOCK": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "KNOCK" - } - } - } - }, - "com.amazonaws.alexaforbusiness#EndUserLicenseAgreement": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#Endpoint": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 256 - } - } - }, - "com.amazonaws.alexaforbusiness#EnrollmentId": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 128 - } - } - }, - "com.amazonaws.alexaforbusiness#EnrollmentStatus": { - "type": "enum", - "members": { - "INITIALIZED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "INITIALIZED" - } - }, - "PENDING": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PENDING" - } - }, - "REGISTERED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "REGISTERED" - } - }, - "DISASSOCIATING": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DISASSOCIATING" - } - }, - "DEREGISTERING": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DEREGISTERING" - } - } - } - }, - "com.amazonaws.alexaforbusiness#ErrorMessage": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#Feature": { - "type": "enum", - "members": { - "BLUETOOTH": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "BLUETOOTH" - } - }, - "VOLUME": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "VOLUME" - } - }, - "NOTIFICATIONS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "NOTIFICATIONS" - } - }, - "LISTS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "LISTS" - } - }, - "SKILLS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SKILLS" - } - }, - "NETWORK_PROFILE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "NETWORK_PROFILE" - } - }, - "SETTINGS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SETTINGS" - } - }, - "ALL": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ALL" - } - } - } - }, - "com.amazonaws.alexaforbusiness#Features": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#Feature" - } - }, - "com.amazonaws.alexaforbusiness#Filter": { - "type": "structure", - "members": { - "Key": { - "target": "com.amazonaws.alexaforbusiness#FilterKey", - "traits": { - "smithy.api#documentation": "

The key of a filter.

", - "smithy.api#required": {} - } - }, - "Values": { - "target": "com.amazonaws.alexaforbusiness#FilterValueList", - "traits": { - "smithy.api#documentation": "

The values of a filter.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "com.amazonaws.alexaforbusiness#FilterKey": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 500 - } - } - }, - "com.amazonaws.alexaforbusiness#FilterList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#Filter" - }, - "traits": { - "smithy.api#length": { - "min": 0, - "max": 25 - } - } - }, - "com.amazonaws.alexaforbusiness#FilterValue": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 500 - } - } - }, - "com.amazonaws.alexaforbusiness#FilterValueList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#FilterValue" - }, - "traits": { - "smithy.api#length": { - "min": 0, - "max": 50 - } - } - }, - "com.amazonaws.alexaforbusiness#ForgetSmartHomeAppliances": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#ForgetSmartHomeAppliancesRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#ForgetSmartHomeAppliancesResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Forgets smart home appliances associated to a room.

" - } - }, - "com.amazonaws.alexaforbusiness#ForgetSmartHomeAppliancesRequest": { - "type": "structure", - "members": { - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The room that the appliances are associated with.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#ForgetSmartHomeAppliancesResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#Gateway": { - "type": "structure", - "members": { - "Arn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the gateway.

" - } - }, - "Name": { - "target": "com.amazonaws.alexaforbusiness#GatewayName", - "traits": { - "smithy.api#documentation": "

The name of the gateway.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#GatewayDescription", - "traits": { - "smithy.api#documentation": "

The description of the gateway.

" - } - }, - "GatewayGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the gateway group that the gateway is associated to.

" - } - }, - "SoftwareVersion": { - "target": "com.amazonaws.alexaforbusiness#GatewayVersion", - "traits": { - "smithy.api#documentation": "

The software version of the gateway. The gateway automatically updates its software\n version during normal operation.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The details of the gateway.

" - } - }, - "com.amazonaws.alexaforbusiness#GatewayDescription": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 200 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#GatewayGroup": { - "type": "structure", - "members": { - "Arn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the gateway group.

" - } - }, - "Name": { - "target": "com.amazonaws.alexaforbusiness#GatewayGroupName", - "traits": { - "smithy.api#documentation": "

The name of the gateway group.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#GatewayGroupDescription", - "traits": { - "smithy.api#documentation": "

The description of the gateway group.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The details of the gateway group.

" - } - }, - "com.amazonaws.alexaforbusiness#GatewayGroupDescription": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 200 - } - } - }, - "com.amazonaws.alexaforbusiness#GatewayGroupName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 100 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#GatewayGroupSummaries": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#GatewayGroupSummary" - } - }, - "com.amazonaws.alexaforbusiness#GatewayGroupSummary": { - "type": "structure", - "members": { - "Arn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the gateway group.

" - } - }, - "Name": { - "target": "com.amazonaws.alexaforbusiness#GatewayGroupName", - "traits": { - "smithy.api#documentation": "

The name of the gateway group.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#GatewayGroupDescription", - "traits": { - "smithy.api#documentation": "

The description of the gateway group.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The summary of a gateway group.

" - } - }, - "com.amazonaws.alexaforbusiness#GatewayName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 253 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#GatewaySummaries": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#GatewaySummary" - } - }, - "com.amazonaws.alexaforbusiness#GatewaySummary": { - "type": "structure", - "members": { - "Arn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the gateway.

" - } - }, - "Name": { - "target": "com.amazonaws.alexaforbusiness#GatewayName", - "traits": { - "smithy.api#documentation": "

The name of the gateway.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#GatewayDescription", - "traits": { - "smithy.api#documentation": "

The description of the gateway.

" - } - }, - "GatewayGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the gateway group that the gateway is associated to.

" - } - }, - "SoftwareVersion": { - "target": "com.amazonaws.alexaforbusiness#GatewayVersion", - "traits": { - "smithy.api#documentation": "

The software version of the gateway. The gateway automatically updates its software\n version during normal operation.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The summary of a gateway.

" - } - }, - "com.amazonaws.alexaforbusiness#GatewayVersion": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 50 - } - } - }, - "com.amazonaws.alexaforbusiness#GenericKeyword": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#GenericKeywords": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#GenericKeyword" - } - }, - "com.amazonaws.alexaforbusiness#GetAddressBook": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#GetAddressBookRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#GetAddressBookResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Gets address the book details by the address book ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#GetAddressBookRequest": { - "type": "structure", - "members": { - "AddressBookArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the address book for which to request details.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#GetAddressBookResponse": { - "type": "structure", - "members": { - "AddressBook": { - "target": "com.amazonaws.alexaforbusiness#AddressBook", - "traits": { - "smithy.api#documentation": "

The details of the requested address book.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#GetConferencePreference": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#GetConferencePreferenceRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#GetConferencePreferenceResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Retrieves the existing conference preferences.

" - } - }, - "com.amazonaws.alexaforbusiness#GetConferencePreferenceRequest": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#GetConferencePreferenceResponse": { - "type": "structure", - "members": { - "Preference": { - "target": "com.amazonaws.alexaforbusiness#ConferencePreference", - "traits": { - "smithy.api#documentation": "

The conference preference.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#GetConferenceProvider": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#GetConferenceProviderRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#GetConferenceProviderResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Gets details about a specific conference provider.

" - } - }, - "com.amazonaws.alexaforbusiness#GetConferenceProviderRequest": { - "type": "structure", - "members": { - "ConferenceProviderArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the newly created conference provider.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#GetConferenceProviderResponse": { - "type": "structure", - "members": { - "ConferenceProvider": { - "target": "com.amazonaws.alexaforbusiness#ConferenceProvider", - "traits": { - "smithy.api#documentation": "

The conference provider.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#GetContact": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#GetContactRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#GetContactResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Gets the contact details by the contact ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#GetContactRequest": { - "type": "structure", - "members": { - "ContactArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the contact for which to request details.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#GetContactResponse": { - "type": "structure", - "members": { - "Contact": { - "target": "com.amazonaws.alexaforbusiness#Contact", - "traits": { - "smithy.api#documentation": "

The details of the requested contact.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#GetDevice": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#GetDeviceRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#GetDeviceResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Gets the details of a device by device ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#GetDeviceRequest": { - "type": "structure", - "members": { - "DeviceArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#GetDeviceResponse": { - "type": "structure", - "members": { - "Device": { - "target": "com.amazonaws.alexaforbusiness#Device", - "traits": { - "smithy.api#documentation": "

The details of the device requested. Required.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#GetGateway": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#GetGatewayRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#GetGatewayResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Retrieves the details of a gateway.

" - } - }, - "com.amazonaws.alexaforbusiness#GetGatewayGroup": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#GetGatewayGroupRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#GetGatewayGroupResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Retrieves the details of a gateway group.

" - } - }, - "com.amazonaws.alexaforbusiness#GetGatewayGroupRequest": { - "type": "structure", - "members": { - "GatewayGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the gateway group to get.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#GetGatewayGroupResponse": { - "type": "structure", - "members": { - "GatewayGroup": { - "target": "com.amazonaws.alexaforbusiness#GatewayGroup" - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#GetGatewayRequest": { - "type": "structure", - "members": { - "GatewayArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the gateway to get.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#GetGatewayResponse": { - "type": "structure", - "members": { - "Gateway": { - "target": "com.amazonaws.alexaforbusiness#Gateway", - "traits": { - "smithy.api#documentation": "

The details of the gateway.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#GetInvitationConfiguration": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#GetInvitationConfigurationRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#GetInvitationConfigurationResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Retrieves the configured values for the user enrollment invitation email\n template.

" - } - }, - "com.amazonaws.alexaforbusiness#GetInvitationConfigurationRequest": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#GetInvitationConfigurationResponse": { - "type": "structure", - "members": { - "OrganizationName": { - "target": "com.amazonaws.alexaforbusiness#OrganizationName", - "traits": { - "smithy.api#documentation": "

The name of the organization sending the enrollment invite to a user.

" - } - }, - "ContactEmail": { - "target": "com.amazonaws.alexaforbusiness#Email", - "traits": { - "smithy.api#documentation": "

The email ID of the organization or individual contact that the enrolled user can use.\n

" - } - }, - "PrivateSkillIds": { - "target": "com.amazonaws.alexaforbusiness#ShortSkillIdList", - "traits": { - "smithy.api#documentation": "

The list of private skill IDs that you want to recommend to the user to enable in the\n invitation.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#GetNetworkProfile": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#GetNetworkProfileRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#GetNetworkProfileResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#InvalidSecretsManagerResourceException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Gets the network profile details by the network profile ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#GetNetworkProfileRequest": { - "type": "structure", - "members": { - "NetworkProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the network profile associated with a device.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#GetNetworkProfileResponse": { - "type": "structure", - "members": { - "NetworkProfile": { - "target": "com.amazonaws.alexaforbusiness#NetworkProfile", - "traits": { - "smithy.api#documentation": "

The network profile associated with a device.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#GetProfile": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#GetProfileRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#GetProfileResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Gets the details of a room profile by profile ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#GetProfileRequest": { - "type": "structure", - "members": { - "ProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#GetProfileResponse": { - "type": "structure", - "members": { - "Profile": { - "target": "com.amazonaws.alexaforbusiness#Profile", - "traits": { - "smithy.api#documentation": "

The details of the room profile requested. Required.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#GetRoom": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#GetRoomRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#GetRoomResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Gets room details by room ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#GetRoomRequest": { - "type": "structure", - "members": { - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#GetRoomResponse": { - "type": "structure", - "members": { - "Room": { - "target": "com.amazonaws.alexaforbusiness#Room", - "traits": { - "smithy.api#documentation": "

The details of the room requested.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#GetRoomSkillParameter": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#GetRoomSkillParameterRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#GetRoomSkillParameterResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

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

" - } - }, - "com.amazonaws.alexaforbusiness#GetRoomSkillParameterRequest": { - "type": "structure", - "members": { - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "SkillId": { - "target": "com.amazonaws.alexaforbusiness#SkillId", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#required": {} - } - }, - "ParameterKey": { - "target": "com.amazonaws.alexaforbusiness#RoomSkillParameterKey", - "traits": { - "smithy.api#documentation": "

The room skill parameter key for which to get details. Required.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#GetRoomSkillParameterResponse": { - "type": "structure", - "members": { - "RoomSkillParameter": { - "target": "com.amazonaws.alexaforbusiness#RoomSkillParameter", - "traits": { - "smithy.api#documentation": "

The details of the room skill parameter requested. Required.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#GetSkillGroup": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#GetSkillGroupRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#GetSkillGroupResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Gets skill group details by skill group ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#GetSkillGroupRequest": { - "type": "structure", - "members": { - "SkillGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#GetSkillGroupResponse": { - "type": "structure", - "members": { - "SkillGroup": { - "target": "com.amazonaws.alexaforbusiness#SkillGroup", - "traits": { - "smithy.api#documentation": "

The details of the skill group requested. Required.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#IPDialIn": { - "type": "structure", - "members": { - "Endpoint": { - "target": "com.amazonaws.alexaforbusiness#Endpoint", - "traits": { - "smithy.api#documentation": "

The IP address.

", - "smithy.api#required": {} - } - }, - "CommsProtocol": { - "target": "com.amazonaws.alexaforbusiness#CommsProtocol", - "traits": { - "smithy.api#documentation": "

The protocol, including SIP, SIPS, and H323.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

The IP endpoint and protocol for calling.

" - } - }, - "com.amazonaws.alexaforbusiness#IconUrl": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#InstantBooking": { - "type": "structure", - "members": { - "DurationInMinutes": { - "target": "com.amazonaws.alexaforbusiness#Minutes", - "traits": { - "smithy.api#documentation": "

Duration between 15 and 240 minutes at increments of 15 that determines how long to book\n an available room when a meeting is started with Alexa.

" - } - }, - "Enabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether instant booking is enabled or not.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Settings for the instant booking feature that are applied to a room profile. When users\n start their meeting with Alexa, Alexa automatically books the room for the configured\n duration if the room is available.

" - } - }, - "com.amazonaws.alexaforbusiness#InvalidCertificateAuthorityException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.alexaforbusiness#ErrorMessage" - } - }, - "traits": { - "smithy.api#documentation": "

The Certificate Authority can't issue or revoke a certificate.

", - "smithy.api#error": "client" - } - }, - "com.amazonaws.alexaforbusiness#InvalidDeviceException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.alexaforbusiness#ErrorMessage" - } - }, - "traits": { - "smithy.api#documentation": "

The device is in an invalid state.

", - "smithy.api#error": "client" - } - }, - "com.amazonaws.alexaforbusiness#InvalidSecretsManagerResourceException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.alexaforbusiness#ErrorMessage" - } - }, - "traits": { - "smithy.api#documentation": "

A password in SecretsManager is in an invalid state.

", - "smithy.api#error": "client" - } - }, - "com.amazonaws.alexaforbusiness#InvalidServiceLinkedRoleStateException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.alexaforbusiness#ErrorMessage" - } - }, - "traits": { - "smithy.api#documentation": "

The service linked role is locked for deletion.

", - "smithy.api#error": "client" - } - }, - "com.amazonaws.alexaforbusiness#InvalidUserStatusException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.alexaforbusiness#ErrorMessage" - } - }, - "traits": { - "smithy.api#documentation": "

The attempt to update a user is invalid due to the user's current status.

", - "smithy.api#error": "client" - } - }, - "com.amazonaws.alexaforbusiness#InvocationPhrase": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#Key": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1 - } - } - }, - "com.amazonaws.alexaforbusiness#LimitExceededException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.alexaforbusiness#ErrorMessage" - } - }, - "traits": { - "smithy.api#documentation": "

You are performing an action that would put you beyond your account's limits.

", - "smithy.api#error": "client" - } - }, - "com.amazonaws.alexaforbusiness#ListBusinessReportSchedules": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#ListBusinessReportSchedulesRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#ListBusinessReportSchedulesResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Lists the details of the schedules that a user configured. A download URL of the report associated with each schedule is returned every time this action is called. A new download URL is returned each time, and is valid for 24 hours.

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#ListBusinessReportSchedulesRequest": { - "type": "structure", - "members": { - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

The token used to list the remaining schedules from the previous API call.

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

The maximum number of schedules listed in the call.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#ListBusinessReportSchedulesResponse": { - "type": "structure", - "members": { - "BusinessReportSchedules": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportScheduleList", - "traits": { - "smithy.api#documentation": "

The schedule of the reports.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

The token used to list the remaining schedules from the previous API call.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#ListConferenceProviders": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#ListConferenceProvidersRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#ListConferenceProvidersResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Lists conference providers under a specific AWS account.

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#ListConferenceProvidersRequest": { - "type": "structure", - "members": { - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

The tokens used for pagination.

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

The maximum number of conference providers to be returned, per paginated\n calls.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#ListConferenceProvidersResponse": { - "type": "structure", - "members": { - "ConferenceProviders": { - "target": "com.amazonaws.alexaforbusiness#ConferenceProvidersList", - "traits": { - "smithy.api#documentation": "

The conference providers.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

The tokens used for pagination.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#ListDeviceEvents": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#ListDeviceEventsRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#ListDeviceEventsResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Lists the device event history, including device connection status, for up to 30\n days.

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#ListDeviceEventsRequest": { - "type": "structure", - "members": { - "DeviceArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of a device.

", - "smithy.api#required": {} - } - }, - "EventType": { - "target": "com.amazonaws.alexaforbusiness#DeviceEventType", - "traits": { - "smithy.api#documentation": "

The event type to filter device events. If EventType isn't specified, this returns a\n list of all device events in reverse chronological order. If EventType is specified, this\n returns a list of device events for that EventType in reverse chronological order.\n

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#ListDeviceEventsResponse": { - "type": "structure", - "members": { - "DeviceEvents": { - "target": "com.amazonaws.alexaforbusiness#DeviceEventList", - "traits": { - "smithy.api#documentation": "

The device events requested for the device ARN.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#ListGatewayGroups": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#ListGatewayGroupsRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#ListGatewayGroupsResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Retrieves a list of gateway group summaries. Use GetGatewayGroup to retrieve details of\n a specific gateway group.

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#ListGatewayGroupsRequest": { - "type": "structure", - "members": { - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

The token used to paginate though multiple pages of gateway group summaries.

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

The maximum number of gateway group summaries to return. The default is 50.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#ListGatewayGroupsResponse": { - "type": "structure", - "members": { - "GatewayGroups": { - "target": "com.amazonaws.alexaforbusiness#GatewayGroupSummaries", - "traits": { - "smithy.api#documentation": "

The gateway groups in the list.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

The token used to paginate though multiple pages of gateway group summaries.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#ListGateways": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#ListGatewaysRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#ListGatewaysResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Retrieves a list of gateway summaries. Use GetGateway to retrieve details of a specific\n gateway. An optional gateway group ARN can be provided to only retrieve gateway summaries\n of gateways that are associated with that gateway group ARN.

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#ListGatewaysRequest": { - "type": "structure", - "members": { - "GatewayGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The gateway group ARN for which to list gateways.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

The token used to paginate though multiple pages of gateway summaries.

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

The maximum number of gateway summaries to return. The default is 50.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#ListGatewaysResponse": { - "type": "structure", - "members": { - "Gateways": { - "target": "com.amazonaws.alexaforbusiness#GatewaySummaries", - "traits": { - "smithy.api#documentation": "

The gateways in the list.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

The token used to paginate though multiple pages of gateway summaries.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#ListSkills": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#ListSkillsRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#ListSkillsResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Lists all enabled skills in a specific skill group.

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#ListSkillsRequest": { - "type": "structure", - "members": { - "SkillGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "EnablementType": { - "target": "com.amazonaws.alexaforbusiness#EnablementTypeFilter", - "traits": { - "smithy.api#documentation": "

Whether the skill is enabled under the user's account.

" - } - }, - "SkillType": { - "target": "com.amazonaws.alexaforbusiness#SkillTypeFilter", - "traits": { - "smithy.api#documentation": "

Whether the skill is publicly available or is a private skill.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#SkillListMaxResults", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#ListSkillsResponse": { - "type": "structure", - "members": { - "SkillSummaries": { - "target": "com.amazonaws.alexaforbusiness#SkillSummaryList", - "traits": { - "smithy.api#documentation": "

The list of enabled skills requested. Required.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#ListSkillsStoreCategories": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#ListSkillsStoreCategoriesRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#ListSkillsStoreCategoriesResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Lists all categories in the Alexa skill store.

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#ListSkillsStoreCategoriesRequest": { - "type": "structure", - "members": { - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

The tokens used for pagination.

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

The maximum number of categories returned, per paginated calls.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#ListSkillsStoreCategoriesResponse": { - "type": "structure", - "members": { - "CategoryList": { - "target": "com.amazonaws.alexaforbusiness#CategoryList", - "traits": { - "smithy.api#documentation": "

The list of categories.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

The tokens used for pagination.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#ListSkillsStoreSkillsByCategory": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#ListSkillsStoreSkillsByCategoryRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#ListSkillsStoreSkillsByCategoryResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Lists all skills in the Alexa skill store by category.

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#ListSkillsStoreSkillsByCategoryRequest": { - "type": "structure", - "members": { - "CategoryId": { - "target": "com.amazonaws.alexaforbusiness#CategoryId", - "traits": { - "smithy.api#documentation": "

The category ID for which the skills are being retrieved from the skill\n store.

", - "smithy.api#required": {} - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

The tokens used for pagination.

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#SkillListMaxResults", - "traits": { - "smithy.api#documentation": "

The maximum number of skills returned per paginated calls.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#ListSkillsStoreSkillsByCategoryResponse": { - "type": "structure", - "members": { - "SkillsStoreSkills": { - "target": "com.amazonaws.alexaforbusiness#SkillsStoreSkillList", - "traits": { - "smithy.api#documentation": "

The skill store skills.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

The tokens used for pagination.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#ListSmartHomeAppliances": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#ListSmartHomeAppliancesRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#ListSmartHomeAppliancesResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Lists all of the smart home appliances associated with a room.

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#ListSmartHomeAppliancesRequest": { - "type": "structure", - "members": { - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The room that the appliances are associated with.

", - "smithy.api#required": {} - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

The maximum number of appliances to be returned, per paginated calls.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

The tokens used for pagination.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#ListSmartHomeAppliancesResponse": { - "type": "structure", - "members": { - "SmartHomeAppliances": { - "target": "com.amazonaws.alexaforbusiness#SmartHomeApplianceList", - "traits": { - "smithy.api#documentation": "

The smart home appliances.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

The tokens used for pagination.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#ListTags": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#ListTagsRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#ListTagsResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Lists all tags for the specified resource.

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#ListTagsRequest": { - "type": "structure", - "members": { - "Arn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the specified resource for which to list tags.

", - "smithy.api#required": {} - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#ListTagsResponse": { - "type": "structure", - "members": { - "Tags": { - "target": "com.amazonaws.alexaforbusiness#TagList", - "traits": { - "smithy.api#documentation": "

The tags requested for the specified resource.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#Locale": { - "type": "enum", - "members": { - "en_US": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "en-US" - } - } - } - }, - "com.amazonaws.alexaforbusiness#MacAddress": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#MaxResults": { - "type": "integer", - "traits": { - "smithy.api#range": { - "min": 1, - "max": 50 - } - } - }, - "com.amazonaws.alexaforbusiness#MaxVolumeLimit": { - "type": "integer" - }, - "com.amazonaws.alexaforbusiness#MeetingRoomConfiguration": { - "type": "structure", - "members": { - "RoomUtilizationMetricsEnabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether room utilization metrics are enabled or not.

" - } - }, - "EndOfMeetingReminder": { - "target": "com.amazonaws.alexaforbusiness#EndOfMeetingReminder", - "traits": { - "smithy.api#documentation": "

Settings for the end of meeting reminder feature that are applied to a room profile. The\n end of meeting reminder enables Alexa to remind users when a meeting is ending.

" - } - }, - "InstantBooking": { - "target": "com.amazonaws.alexaforbusiness#InstantBooking", - "traits": { - "smithy.api#documentation": "

Settings to automatically book the room if available for a configured duration when\n joining a meeting with Alexa.

" - } - }, - "RequireCheckIn": { - "target": "com.amazonaws.alexaforbusiness#RequireCheckIn", - "traits": { - "smithy.api#documentation": "

Settings for requiring a check in when a room is reserved. Alexa can cancel a room\n reservation if it's not checked into. This makes the room available for others. Users can\n check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check\n in.”

" - } - }, - "ProactiveJoin": { - "target": "com.amazonaws.alexaforbusiness#ProactiveJoin" - } - }, - "traits": { - "smithy.api#documentation": "

Meeting room settings of a room profile.

" - } - }, - "com.amazonaws.alexaforbusiness#MeetingSetting": { - "type": "structure", - "members": { - "RequirePin": { - "target": "com.amazonaws.alexaforbusiness#RequirePin", - "traits": { - "smithy.api#documentation": "

The values that indicate whether the pin is always required.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

The values that indicate whether a pin is always required (YES), never required (NO),\n or OPTIONAL.

\n
    \n
  • \n

    If YES, Alexa will always ask for a meeting pin.

    \n
  • \n
  • \n

    If NO, Alexa will never ask for a meeting pin.

    \n
  • \n
  • \n

    If OPTIONAL, Alexa will ask if you have a meeting pin and if the customer responds\n with yes, it will ask for the meeting pin.

    \n
  • \n
" - } - }, - "com.amazonaws.alexaforbusiness#Minutes": { - "type": "integer" - }, - "com.amazonaws.alexaforbusiness#NameInUseException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.alexaforbusiness#ErrorMessage" - } - }, - "traits": { - "smithy.api#documentation": "

The name sent in the request is already in use.

", - "smithy.api#error": "client" - } - }, - "com.amazonaws.alexaforbusiness#NetworkEapMethod": { - "type": "enum", - "members": { - "EAP_TLS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "EAP_TLS" - } - } - } - }, - "com.amazonaws.alexaforbusiness#NetworkProfile": { - "type": "structure", - "members": { - "NetworkProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the network profile associated with a device.

" - } - }, - "NetworkProfileName": { - "target": "com.amazonaws.alexaforbusiness#NetworkProfileName", - "traits": { - "smithy.api#documentation": "

The name of the network profile associated with a device.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#NetworkProfileDescription", - "traits": { - "smithy.api#documentation": "

Detailed information about a device's network profile.

" - } - }, - "Ssid": { - "target": "com.amazonaws.alexaforbusiness#NetworkSsid", - "traits": { - "smithy.api#documentation": "

The SSID of the Wi-Fi network.

" - } - }, - "SecurityType": { - "target": "com.amazonaws.alexaforbusiness#NetworkSecurityType", - "traits": { - "smithy.api#documentation": "

The security type of the Wi-Fi network. This can be WPA2_ENTERPRISE, WPA2_PSK, WPA_PSK,\n WEP, or OPEN.

" - } - }, - "EapMethod": { - "target": "com.amazonaws.alexaforbusiness#NetworkEapMethod", - "traits": { - "smithy.api#documentation": "

The authentication standard that is used in the EAP framework. Currently, EAP_TLS is\n supported.

" - } - }, - "CurrentPassword": { - "target": "com.amazonaws.alexaforbusiness#CurrentWiFiPassword", - "traits": { - "smithy.api#documentation": "

The current password of the Wi-Fi network.

" - } - }, - "NextPassword": { - "target": "com.amazonaws.alexaforbusiness#NextWiFiPassword", - "traits": { - "smithy.api#documentation": "

The next, or subsequent, password of the Wi-Fi network. This password is asynchronously\n transmitted to the device and is used when the password of the network changes to\n NextPassword.

" - } - }, - "CertificateAuthorityArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the Private Certificate Authority (PCA) created in AWS Certificate Manager\n (ACM). This is used to issue certificates to the devices.

" - } - }, - "TrustAnchors": { - "target": "com.amazonaws.alexaforbusiness#TrustAnchorList", - "traits": { - "smithy.api#documentation": "

The root certificates of your authentication server, which is installed on your devices\n and used to trust your authentication server during EAP negotiation.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The network profile associated with a device.

" - } - }, - "com.amazonaws.alexaforbusiness#NetworkProfileData": { - "type": "structure", - "members": { - "NetworkProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the network profile associated with a device.

" - } - }, - "NetworkProfileName": { - "target": "com.amazonaws.alexaforbusiness#NetworkProfileName", - "traits": { - "smithy.api#documentation": "

The name of the network profile associated with a device.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#NetworkProfileDescription", - "traits": { - "smithy.api#documentation": "

Detailed information about a device's network profile.

" - } - }, - "Ssid": { - "target": "com.amazonaws.alexaforbusiness#NetworkSsid", - "traits": { - "smithy.api#documentation": "

The SSID of the Wi-Fi network.

" - } - }, - "SecurityType": { - "target": "com.amazonaws.alexaforbusiness#NetworkSecurityType", - "traits": { - "smithy.api#documentation": "

The security type of the Wi-Fi network. This can be WPA2_ENTERPRISE, WPA2_PSK, WPA_PSK,\n WEP, or OPEN.

" - } - }, - "EapMethod": { - "target": "com.amazonaws.alexaforbusiness#NetworkEapMethod", - "traits": { - "smithy.api#documentation": "

The authentication standard that is used in the EAP framework. Currently, EAP_TLS is\n supported.

" - } - }, - "CertificateAuthorityArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the Private Certificate Authority (PCA) created in AWS Certificate Manager\n (ACM). This is used to issue certificates to the devices.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The data associated with a network profile.

" - } - }, - "com.amazonaws.alexaforbusiness#NetworkProfileDataList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#NetworkProfileData" - } - }, - "com.amazonaws.alexaforbusiness#NetworkProfileDescription": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 200 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#NetworkProfileName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 100 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#NetworkSecurityType": { - "type": "enum", - "members": { - "OPEN": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "OPEN" - } - }, - "WEP": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "WEP" - } - }, - "WPA_PSK": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "WPA_PSK" - } - }, - "WPA2_PSK": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "WPA2_PSK" - } - }, - "WPA2_ENTERPRISE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "WPA2_ENTERPRISE" - } - } - } - }, - "com.amazonaws.alexaforbusiness#NetworkSsid": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 32 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#NewInThisVersionBulletPoints": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#BulletPoint" - } - }, - "com.amazonaws.alexaforbusiness#NextToken": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 1100 - } - } - }, - "com.amazonaws.alexaforbusiness#NextWiFiPassword": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 128 - }, - "smithy.api#pattern": "^(^$)|([\\x00-\\x7F]{5,})$", - "smithy.api#sensitive": {} - } - }, - "com.amazonaws.alexaforbusiness#NotFoundException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.alexaforbusiness#ErrorMessage" - } - }, - "traits": { - "smithy.api#documentation": "

The resource is not found.

", - "smithy.api#error": "client" - } - }, - "com.amazonaws.alexaforbusiness#OneClickIdDelay": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 2 - } - } - }, - "com.amazonaws.alexaforbusiness#OneClickPinDelay": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 2 - } - } - }, - "com.amazonaws.alexaforbusiness#OrganizationName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 100 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#OutboundPhoneNumber": { - "type": "string", - "traits": { - "smithy.api#pattern": "^\\d{10}$" - } - }, - "com.amazonaws.alexaforbusiness#PSTNDialIn": { - "type": "structure", - "members": { - "CountryCode": { - "target": "com.amazonaws.alexaforbusiness#CountryCode", - "traits": { - "smithy.api#documentation": "

The zip code.

", - "smithy.api#required": {} - } - }, - "PhoneNumber": { - "target": "com.amazonaws.alexaforbusiness#OutboundPhoneNumber", - "traits": { - "smithy.api#documentation": "

The phone number to call to join the conference.

", - "smithy.api#required": {} - } - }, - "OneClickIdDelay": { - "target": "com.amazonaws.alexaforbusiness#OneClickIdDelay", - "traits": { - "smithy.api#documentation": "

The delay duration before Alexa enters the conference ID with dual-tone multi-frequency (DTMF). Each number on the dial pad corresponds to a DTMF tone, which is how we send data over the telephone network.

", - "smithy.api#required": {} - } - }, - "OneClickPinDelay": { - "target": "com.amazonaws.alexaforbusiness#OneClickPinDelay", - "traits": { - "smithy.api#documentation": "

The delay duration before Alexa enters the conference pin with dual-tone multi-frequency (DTMF). Each number on the dial pad corresponds to a DTMF tone, which is how we send data over the telephone network.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

The information for public switched telephone network (PSTN) conferencing.

" - } - }, - "com.amazonaws.alexaforbusiness#PhoneNumber": { - "type": "structure", - "members": { - "Number": { - "target": "com.amazonaws.alexaforbusiness#RawPhoneNumber", - "traits": { - "smithy.api#documentation": "

The raw value of the phone number.

", - "smithy.api#required": {} - } - }, - "Type": { - "target": "com.amazonaws.alexaforbusiness#PhoneNumberType", - "traits": { - "smithy.api#documentation": "

The type of the phone number.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

The phone number for the contact containing the raw number and phone number type.

" - } - }, - "com.amazonaws.alexaforbusiness#PhoneNumberList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#PhoneNumber" - }, - "traits": { - "smithy.api#length": { - "min": 0, - "max": 3 - } - } - }, - "com.amazonaws.alexaforbusiness#PhoneNumberType": { - "type": "enum", - "members": { - "MOBILE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "MOBILE" - } - }, - "WORK": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "WORK" - } - }, - "HOME": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "HOME" - } - } - }, - "traits": { - "smithy.api#sensitive": {} - } - }, - "com.amazonaws.alexaforbusiness#PrivacyPolicy": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#ProactiveJoin": { - "type": "structure", - "members": { - "EnabledByMotion": { - "target": "com.amazonaws.alexaforbusiness#Boolean" - } - } - }, - "com.amazonaws.alexaforbusiness#ProductDescription": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#ProductId": { - "type": "string", - "traits": { - "smithy.api#pattern": "^[a-zA-Z0-9_]{1,256}$" - } - }, - "com.amazonaws.alexaforbusiness#Profile": { - "type": "structure", - "members": { - "ProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of a room profile.

" - } - }, - "ProfileName": { - "target": "com.amazonaws.alexaforbusiness#ProfileName", - "traits": { - "smithy.api#documentation": "

The name of a room profile.

" - } - }, - "IsDefault": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Retrieves if the profile is default or not.

" - } - }, - "Address": { - "target": "com.amazonaws.alexaforbusiness#Address", - "traits": { - "smithy.api#documentation": "

The address of a room profile.

" - } - }, - "Timezone": { - "target": "com.amazonaws.alexaforbusiness#Timezone", - "traits": { - "smithy.api#documentation": "

The time zone of a room profile.

" - } - }, - "DistanceUnit": { - "target": "com.amazonaws.alexaforbusiness#DistanceUnit", - "traits": { - "smithy.api#documentation": "

The distance unit of a room profile.

" - } - }, - "TemperatureUnit": { - "target": "com.amazonaws.alexaforbusiness#TemperatureUnit", - "traits": { - "smithy.api#documentation": "

The temperature unit of a room profile.

" - } - }, - "WakeWord": { - "target": "com.amazonaws.alexaforbusiness#WakeWord", - "traits": { - "smithy.api#documentation": "

The wake word of a room profile.

" - } - }, - "Locale": { - "target": "com.amazonaws.alexaforbusiness#DeviceLocale", - "traits": { - "smithy.api#documentation": "

The locale of a room profile. (This is currently available only to a limited preview\n audience.)

" - } - }, - "SetupModeDisabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

The setup mode of a room profile.

" - } - }, - "MaxVolumeLimit": { - "target": "com.amazonaws.alexaforbusiness#MaxVolumeLimit", - "traits": { - "smithy.api#documentation": "

The max volume limit of a room profile.

" - } - }, - "PSTNEnabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

The PSTN setting of a room profile.

" - } - }, - "DataRetentionOptIn": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether data retention of the profile is enabled.

" - } - }, - "AddressBookArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the address book.

" - } - }, - "MeetingRoomConfiguration": { - "target": "com.amazonaws.alexaforbusiness#MeetingRoomConfiguration", - "traits": { - "smithy.api#documentation": "

Meeting room settings of a room profile.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

A room profile with attributes.

" - } - }, - "com.amazonaws.alexaforbusiness#ProfileData": { - "type": "structure", - "members": { - "ProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of a room profile.

" - } - }, - "ProfileName": { - "target": "com.amazonaws.alexaforbusiness#ProfileName", - "traits": { - "smithy.api#documentation": "

The name of a room profile.

" - } - }, - "IsDefault": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Retrieves if the profile data is default or not.

" - } - }, - "Address": { - "target": "com.amazonaws.alexaforbusiness#Address", - "traits": { - "smithy.api#documentation": "

The address of a room profile.

" - } - }, - "Timezone": { - "target": "com.amazonaws.alexaforbusiness#Timezone", - "traits": { - "smithy.api#documentation": "

The time zone of a room profile.

" - } - }, - "DistanceUnit": { - "target": "com.amazonaws.alexaforbusiness#DistanceUnit", - "traits": { - "smithy.api#documentation": "

The distance unit of a room profile.

" - } - }, - "TemperatureUnit": { - "target": "com.amazonaws.alexaforbusiness#TemperatureUnit", - "traits": { - "smithy.api#documentation": "

The temperature unit of a room profile.

" - } - }, - "WakeWord": { - "target": "com.amazonaws.alexaforbusiness#WakeWord", - "traits": { - "smithy.api#documentation": "

The wake word of a room profile.

" - } - }, - "Locale": { - "target": "com.amazonaws.alexaforbusiness#DeviceLocale", - "traits": { - "smithy.api#documentation": "

The locale of a room profile. (This is currently available only to a limited preview\n audience.)

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The data of a room profile.

" - } - }, - "com.amazonaws.alexaforbusiness#ProfileDataList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#ProfileData" - } - }, - "com.amazonaws.alexaforbusiness#ProfileName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 100 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#ProviderCalendarId": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 100 - } - } - }, - "com.amazonaws.alexaforbusiness#PutConferencePreference": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#PutConferencePreferenceRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#PutConferencePreferenceResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Sets the conference preferences on a specific conference provider at the account\n level.

" - } - }, - "com.amazonaws.alexaforbusiness#PutConferencePreferenceRequest": { - "type": "structure", - "members": { - "ConferencePreference": { - "target": "com.amazonaws.alexaforbusiness#ConferencePreference", - "traits": { - "smithy.api#documentation": "

The conference preference of a specific conference provider.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#PutConferencePreferenceResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#PutInvitationConfiguration": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#PutInvitationConfigurationRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#PutInvitationConfigurationResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Configures the email template for the user enrollment invitation with the specified\n attributes.

" - } - }, - "com.amazonaws.alexaforbusiness#PutInvitationConfigurationRequest": { - "type": "structure", - "members": { - "OrganizationName": { - "target": "com.amazonaws.alexaforbusiness#OrganizationName", - "traits": { - "smithy.api#documentation": "

The name of the organization sending the enrollment invite to a user.

", - "smithy.api#required": {} - } - }, - "ContactEmail": { - "target": "com.amazonaws.alexaforbusiness#Email", - "traits": { - "smithy.api#documentation": "

The email ID of the organization or individual contact that the enrolled user can use.\n

" - } - }, - "PrivateSkillIds": { - "target": "com.amazonaws.alexaforbusiness#ShortSkillIdList", - "traits": { - "smithy.api#documentation": "

The list of private skill IDs that you want to recommend to the user to enable in the\n invitation.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#PutInvitationConfigurationResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#PutRoomSkillParameter": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#PutRoomSkillParameterRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#PutRoomSkillParameterResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

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

" - } - }, - "com.amazonaws.alexaforbusiness#PutRoomSkillParameterRequest": { - "type": "structure", - "members": { - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "SkillId": { - "target": "com.amazonaws.alexaforbusiness#SkillId", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#required": {} - } - }, - "RoomSkillParameter": { - "target": "com.amazonaws.alexaforbusiness#RoomSkillParameter", - "traits": { - "smithy.api#documentation": "

The updated room skill parameter. Required.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#PutRoomSkillParameterResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#PutSkillAuthorization": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#PutSkillAuthorizationRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#PutSkillAuthorizationResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#UnauthorizedException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Links a user's account to a third-party skill provider. If this API operation is\n called by an assumed IAM role, the skill being linked must be a private skill. Also, the\n skill must be owned by the AWS account that assumed the IAM role.

" - } - }, - "com.amazonaws.alexaforbusiness#PutSkillAuthorizationRequest": { - "type": "structure", - "members": { - "AuthorizationResult": { - "target": "com.amazonaws.alexaforbusiness#AuthorizationResult", - "traits": { - "smithy.api#documentation": "

The authorization result specific to OAUTH code grant output. \"Code” must be\n populated in the AuthorizationResult map to establish the authorization.

", - "smithy.api#required": {} - } - }, - "SkillId": { - "target": "com.amazonaws.alexaforbusiness#SkillId", - "traits": { - "smithy.api#documentation": "

The unique identifier of a skill.

", - "smithy.api#required": {} - } - }, - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The room that the skill is authorized for.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#PutSkillAuthorizationResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#RawPhoneNumber": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 50 - }, - "smithy.api#pattern": "^[\\+0-9\\#\\,\\(][\\+0-9\\-\\.\\/\\(\\)\\,\\#\\s]+$", - "smithy.api#sensitive": {} - } - }, - "com.amazonaws.alexaforbusiness#RegisterAVSDevice": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#RegisterAVSDeviceRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#RegisterAVSDeviceResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#InvalidDeviceException" - }, - { - "target": "com.amazonaws.alexaforbusiness#LimitExceededException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Registers an Alexa-enabled device built by an Original Equipment Manufacturer (OEM)\n using Alexa Voice Service (AVS).

" - } - }, - "com.amazonaws.alexaforbusiness#RegisterAVSDeviceRequest": { - "type": "structure", - "members": { - "ClientId": { - "target": "com.amazonaws.alexaforbusiness#ClientId", - "traits": { - "smithy.api#documentation": "

The client ID of the OEM used for code-based linking authorization on an AVS\n device.

", - "smithy.api#required": {} - } - }, - "UserCode": { - "target": "com.amazonaws.alexaforbusiness#UserCode", - "traits": { - "smithy.api#documentation": "

The code that is obtained after your AVS device has made a POST request to LWA as a\n part of the Device Authorization Request component of the OAuth code-based linking\n specification.

", - "smithy.api#required": {} - } - }, - "ProductId": { - "target": "com.amazonaws.alexaforbusiness#ProductId", - "traits": { - "smithy.api#documentation": "

The product ID used to identify your AVS device during authorization.

", - "smithy.api#required": {} - } - }, - "DeviceSerialNumber": { - "target": "com.amazonaws.alexaforbusiness#DeviceSerialNumberForAVS", - "traits": { - "smithy.api#documentation": "

The key generated by the OEM that uniquely identifies a specified instance of your\n AVS device.

" - } - }, - "AmazonId": { - "target": "com.amazonaws.alexaforbusiness#AmazonId", - "traits": { - "smithy.api#documentation": "

The device type ID for your AVS device generated by Amazon when the OEM creates a new\n product on Amazon's Developer Console.

", - "smithy.api#required": {} - } - }, - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the room with which to associate your AVS device.

" - } - }, - "Tags": { - "target": "com.amazonaws.alexaforbusiness#TagList", - "traits": { - "smithy.api#documentation": "

The tags to be added to the specified resource. Do not provide system tags.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#RegisterAVSDeviceResponse": { - "type": "structure", - "members": { - "DeviceArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the device.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#RejectSkill": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#RejectSkillRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#RejectSkillResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Disassociates a skill from the organization under a user's AWS account. If the skill\n is a private skill, it moves to an AcceptStatus of PENDING. Any private or public skill\n that is rejected can be added later by calling the ApproveSkill API.

" - } - }, - "com.amazonaws.alexaforbusiness#RejectSkillRequest": { - "type": "structure", - "members": { - "SkillId": { - "target": "com.amazonaws.alexaforbusiness#SkillId", - "traits": { - "smithy.api#documentation": "

The unique identifier of the skill.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#RejectSkillResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#ReleaseDate": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#RequireCheckIn": { - "type": "structure", - "members": { - "ReleaseAfterMinutes": { - "target": "com.amazonaws.alexaforbusiness#Minutes", - "traits": { - "smithy.api#documentation": "

Duration between 5 and 20 minutes to determine when to release the room if it's not checked into.

" - } - }, - "Enabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether require check in is enabled or not.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Settings for the require check in feature that are applied to a room profile. Require check in allows a meeting room’s Alexa or AVS device to prompt the user to check in; otherwise, the room will be released.

" - } - }, - "com.amazonaws.alexaforbusiness#RequirePin": { - "type": "enum", - "members": { - "YES": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "YES" - } - }, - "NO": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "NO" - } - }, - "OPTIONAL": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "OPTIONAL" - } - } - } - }, - "com.amazonaws.alexaforbusiness#ResolveRoom": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#ResolveRoomRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#ResolveRoomResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

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

\n

To query ResolveRoom from an Alexa skill, the skill ID needs to be authorized. When\n the skill is using an AWS Lambda function, the skill is automatically authorized when you\n publish your skill as a private skill to your AWS account. Skills that are hosted using a\n custom web service must be manually authorized. To get your skill authorized, contact AWS\n Support with your AWS account ID that queries the ResolveRoom API and skill ID.

" - } - }, - "com.amazonaws.alexaforbusiness#ResolveRoomRequest": { - "type": "structure", - "members": { - "UserId": { - "target": "com.amazonaws.alexaforbusiness#UserId", - "traits": { - "smithy.api#documentation": "

The ARN of the user. Required.

", - "smithy.api#required": {} - } - }, - "SkillId": { - "target": "com.amazonaws.alexaforbusiness#SkillId", - "traits": { - "smithy.api#documentation": "

The ARN of the skill that was requested. Required.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#ResolveRoomResponse": { - "type": "structure", - "members": { - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "RoomName": { - "target": "com.amazonaws.alexaforbusiness#RoomName", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "RoomSkillParameters": { - "target": "com.amazonaws.alexaforbusiness#RoomSkillParameters", - "traits": { - "smithy.api#documentation": "

Response to get the room profile request. Required.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#ResourceAssociatedException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.alexaforbusiness#ErrorMessage" - } - }, - "traits": { - "smithy.api#documentation": "

Another resource is associated with the resource in the request.

", - "smithy.api#error": "client" - } - }, - "com.amazonaws.alexaforbusiness#ResourceInUseException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.alexaforbusiness#ErrorMessage" - }, - "ClientRequestToken": { - "target": "com.amazonaws.alexaforbusiness#ClientRequestToken" - } - }, - "traits": { - "smithy.api#documentation": "

The resource in the request is already in use.

", - "smithy.api#error": "client" - } - }, - "com.amazonaws.alexaforbusiness#ReviewKey": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#ReviewValue": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#Reviews": { - "type": "map", - "key": { - "target": "com.amazonaws.alexaforbusiness#ReviewKey" - }, - "value": { - "target": "com.amazonaws.alexaforbusiness#ReviewValue" - } - }, - "com.amazonaws.alexaforbusiness#RevokeInvitation": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#RevokeInvitationRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#RevokeInvitationResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Revokes an invitation and invalidates the enrollment URL.

" - } - }, - "com.amazonaws.alexaforbusiness#RevokeInvitationRequest": { - "type": "structure", - "members": { - "UserArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "EnrollmentId": { - "target": "com.amazonaws.alexaforbusiness#EnrollmentId", - "traits": { - "smithy.api#documentation": "

The ARN of the enrollment invitation to revoke. Required.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#RevokeInvitationResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#Room": { - "type": "structure", - "members": { - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of a room.

" - } - }, - "RoomName": { - "target": "com.amazonaws.alexaforbusiness#RoomName", - "traits": { - "smithy.api#documentation": "

The name of a room.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#RoomDescription", - "traits": { - "smithy.api#documentation": "

The description of a room.

" - } - }, - "ProviderCalendarId": { - "target": "com.amazonaws.alexaforbusiness#ProviderCalendarId", - "traits": { - "smithy.api#documentation": "

The provider calendar ARN of a room.

" - } - }, - "ProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The profile ARN of a room.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

A room with attributes.

" - } - }, - "com.amazonaws.alexaforbusiness#RoomData": { - "type": "structure", - "members": { - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of a room.

" - } - }, - "RoomName": { - "target": "com.amazonaws.alexaforbusiness#RoomName", - "traits": { - "smithy.api#documentation": "

The name of a room.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#RoomDescription", - "traits": { - "smithy.api#documentation": "

The description of a room.

" - } - }, - "ProviderCalendarId": { - "target": "com.amazonaws.alexaforbusiness#ProviderCalendarId", - "traits": { - "smithy.api#documentation": "

The provider calendar ARN of a room.

" - } - }, - "ProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The profile ARN of a room.

" - } - }, - "ProfileName": { - "target": "com.amazonaws.alexaforbusiness#ProfileName", - "traits": { - "smithy.api#documentation": "

The profile name of a room.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The data of a room.

" - } - }, - "com.amazonaws.alexaforbusiness#RoomDataList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#RoomData" - } - }, - "com.amazonaws.alexaforbusiness#RoomDescription": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 200 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#RoomName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 100 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#RoomSkillParameter": { - "type": "structure", - "members": { - "ParameterKey": { - "target": "com.amazonaws.alexaforbusiness#RoomSkillParameterKey", - "traits": { - "smithy.api#documentation": "

The parameter key of a room skill parameter. ParameterKey is an enumerated type that\n only takes “DEFAULT” or “SCOPE” as valid values.

", - "smithy.api#required": {} - } - }, - "ParameterValue": { - "target": "com.amazonaws.alexaforbusiness#RoomSkillParameterValue", - "traits": { - "smithy.api#documentation": "

The parameter value of a room skill parameter.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

A skill parameter associated with a room.

" - } - }, - "com.amazonaws.alexaforbusiness#RoomSkillParameterKey": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 256 - } - } - }, - "com.amazonaws.alexaforbusiness#RoomSkillParameterValue": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 512 - } - } - }, - "com.amazonaws.alexaforbusiness#RoomSkillParameters": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#RoomSkillParameter" - } - }, - "com.amazonaws.alexaforbusiness#S3KeyPrefix": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 100 - }, - "smithy.api#pattern": "^[A-Za-z0-9!_\\-\\.\\*'()/]*$" - } - }, - "com.amazonaws.alexaforbusiness#SampleUtterances": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#Utterance" - } - }, - "com.amazonaws.alexaforbusiness#SearchAddressBooks": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#SearchAddressBooksRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#SearchAddressBooksResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Searches address books and lists the ones that meet a set of filter and sort\n criteria.

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#SearchAddressBooksRequest": { - "type": "structure", - "members": { - "Filters": { - "target": "com.amazonaws.alexaforbusiness#FilterList", - "traits": { - "smithy.api#documentation": "

The filters to use to list a specified set of address books. The supported filter key\n is AddressBookName.

" - } - }, - "SortCriteria": { - "target": "com.amazonaws.alexaforbusiness#SortList", - "traits": { - "smithy.api#documentation": "

The sort order to use in listing the specified set of address books. The supported\n sort key is AddressBookName.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#SearchAddressBooksResponse": { - "type": "structure", - "members": { - "AddressBooks": { - "target": "com.amazonaws.alexaforbusiness#AddressBookDataList", - "traits": { - "smithy.api#documentation": "

The address books that meet the specified set of filter criteria, in sort\n order.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "TotalCount": { - "target": "com.amazonaws.alexaforbusiness#TotalCount", - "traits": { - "smithy.api#documentation": "

The total number of address books returned.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#SearchContacts": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#SearchContactsRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#SearchContactsResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Searches contacts and lists the ones that meet a set of filter and sort\n criteria.

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#SearchContactsRequest": { - "type": "structure", - "members": { - "Filters": { - "target": "com.amazonaws.alexaforbusiness#FilterList", - "traits": { - "smithy.api#documentation": "

The filters to use to list a specified set of address books. The supported filter\n keys are DisplayName, FirstName, LastName, and AddressBookArns.

" - } - }, - "SortCriteria": { - "target": "com.amazonaws.alexaforbusiness#SortList", - "traits": { - "smithy.api#documentation": "

The sort order to use in listing the specified set of contacts. The supported sort\n keys are DisplayName, FirstName, and LastName.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#SearchContactsResponse": { - "type": "structure", - "members": { - "Contacts": { - "target": "com.amazonaws.alexaforbusiness#ContactDataList", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "TotalCount": { - "target": "com.amazonaws.alexaforbusiness#TotalCount", - "traits": { - "smithy.api#documentation": "

The total number of contacts returned.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#SearchDevices": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#SearchDevicesRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#SearchDevicesResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

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

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#SearchDevicesRequest": { - "type": "structure", - "members": { - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "Filters": { - "target": "com.amazonaws.alexaforbusiness#FilterList", - "traits": { - "smithy.api#documentation": "

The filters to use to list a specified set of devices. Supported filter keys are\n DeviceName, DeviceStatus, DeviceStatusDetailCode, RoomName, DeviceType, DeviceSerialNumber,\n UnassociatedOnly, ConnectionStatus (ONLINE and OFFLINE), NetworkProfileName,\n NetworkProfileArn, Feature, and FailureCode.

" - } - }, - "SortCriteria": { - "target": "com.amazonaws.alexaforbusiness#SortList", - "traits": { - "smithy.api#documentation": "

The sort order to use in listing the specified set of devices. Supported sort keys\n are DeviceName, DeviceStatus, RoomName, DeviceType, DeviceSerialNumber, ConnectionStatus,\n NetworkProfileName, NetworkProfileArn, Feature, and FailureCode.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#SearchDevicesResponse": { - "type": "structure", - "members": { - "Devices": { - "target": "com.amazonaws.alexaforbusiness#DeviceDataList", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "TotalCount": { - "target": "com.amazonaws.alexaforbusiness#TotalCount", - "traits": { - "smithy.api#documentation": "

The total number of devices returned.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#SearchNetworkProfiles": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#SearchNetworkProfilesRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#SearchNetworkProfilesResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Searches network profiles and lists the ones that meet a set of filter and sort\n criteria.

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#SearchNetworkProfilesRequest": { - "type": "structure", - "members": { - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "Filters": { - "target": "com.amazonaws.alexaforbusiness#FilterList", - "traits": { - "smithy.api#documentation": "

The filters to use to list a specified set of network profiles. Valid filters are\n NetworkProfileName, Ssid, and SecurityType.

" - } - }, - "SortCriteria": { - "target": "com.amazonaws.alexaforbusiness#SortList", - "traits": { - "smithy.api#documentation": "

The sort order to use to list the specified set of network profiles. Valid sort criteria\n includes NetworkProfileName, Ssid, and SecurityType.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#SearchNetworkProfilesResponse": { - "type": "structure", - "members": { - "NetworkProfiles": { - "target": "com.amazonaws.alexaforbusiness#NetworkProfileDataList", - "traits": { - "smithy.api#documentation": "

The network profiles that meet the specified set of filter criteria, in sort order. It\n is a list of NetworkProfileData objects.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "TotalCount": { - "target": "com.amazonaws.alexaforbusiness#TotalCount", - "traits": { - "smithy.api#documentation": "

The total number of network profiles returned.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#SearchProfiles": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#SearchProfilesRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#SearchProfilesResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

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

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#SearchProfilesRequest": { - "type": "structure", - "members": { - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "Filters": { - "target": "com.amazonaws.alexaforbusiness#FilterList", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "SortCriteria": { - "target": "com.amazonaws.alexaforbusiness#SortList", - "traits": { - "smithy.api#documentation": "

The sort order to use in listing the specified set of room profiles. Supported sort\n keys are ProfileName and Address.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#SearchProfilesResponse": { - "type": "structure", - "members": { - "Profiles": { - "target": "com.amazonaws.alexaforbusiness#ProfileDataList", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "TotalCount": { - "target": "com.amazonaws.alexaforbusiness#TotalCount", - "traits": { - "smithy.api#documentation": "

The total number of room profiles returned.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#SearchRooms": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#SearchRoomsRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#SearchRoomsResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

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

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#SearchRoomsRequest": { - "type": "structure", - "members": { - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "Filters": { - "target": "com.amazonaws.alexaforbusiness#FilterList", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "SortCriteria": { - "target": "com.amazonaws.alexaforbusiness#SortList", - "traits": { - "smithy.api#documentation": "

The sort order to use in listing the specified set of rooms. The supported sort keys\n are RoomName and ProfileName.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#SearchRoomsResponse": { - "type": "structure", - "members": { - "Rooms": { - "target": "com.amazonaws.alexaforbusiness#RoomDataList", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "TotalCount": { - "target": "com.amazonaws.alexaforbusiness#TotalCount", - "traits": { - "smithy.api#documentation": "

The total number of rooms returned.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#SearchSkillGroups": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#SearchSkillGroupsRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#SearchSkillGroupsResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

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

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#SearchSkillGroupsRequest": { - "type": "structure", - "members": { - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "Filters": { - "target": "com.amazonaws.alexaforbusiness#FilterList", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "SortCriteria": { - "target": "com.amazonaws.alexaforbusiness#SortList", - "traits": { - "smithy.api#documentation": "

The sort order to use in listing the specified set of skill groups. The supported\n sort key is SkillGroupName.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#SearchSkillGroupsResponse": { - "type": "structure", - "members": { - "SkillGroups": { - "target": "com.amazonaws.alexaforbusiness#SkillGroupDataList", - "traits": { - "smithy.api#documentation": "

The skill groups that meet the filter criteria, in sort order.

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "TotalCount": { - "target": "com.amazonaws.alexaforbusiness#TotalCount", - "traits": { - "smithy.api#documentation": "

The total number of skill groups returned.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#SearchUsers": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#SearchUsersRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#SearchUsersResponse" - }, - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

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

", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.alexaforbusiness#SearchUsersRequest": { - "type": "structure", - "members": { - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "MaxResults": { - "target": "com.amazonaws.alexaforbusiness#MaxResults", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "Filters": { - "target": "com.amazonaws.alexaforbusiness#FilterList", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "SortCriteria": { - "target": "com.amazonaws.alexaforbusiness#SortList", - "traits": { - "smithy.api#documentation": "

The sort order to use in listing the filtered set of users. Required. Supported sort\n keys are UserId, FirstName, LastName, Email, and EnrollmentStatus.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#SearchUsersResponse": { - "type": "structure", - "members": { - "Users": { - "target": "com.amazonaws.alexaforbusiness#UserDataList", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "NextToken": { - "target": "com.amazonaws.alexaforbusiness#NextToken", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "TotalCount": { - "target": "com.amazonaws.alexaforbusiness#TotalCount", - "traits": { - "smithy.api#documentation": "

The total number of users returned.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#SendAnnouncement": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#SendAnnouncementRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#SendAnnouncementResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#AlreadyExistsException" - }, - { - "target": "com.amazonaws.alexaforbusiness#LimitExceededException" - } - ], - "traits": { - "smithy.api#documentation": "

Triggers an asynchronous flow to send text, SSML, or audio announcements to rooms that\n are identified by a search or filter.

" - } - }, - "com.amazonaws.alexaforbusiness#SendAnnouncementRequest": { - "type": "structure", - "members": { - "RoomFilters": { - "target": "com.amazonaws.alexaforbusiness#FilterList", - "traits": { - "smithy.api#documentation": "

The filters to use to send an announcement to a specified list of rooms. The supported filter keys are RoomName, ProfileName, RoomArn, and ProfileArn. To send to all rooms, specify an empty RoomFilters list.

", - "smithy.api#required": {} - } - }, - "Content": { - "target": "com.amazonaws.alexaforbusiness#Content", - "traits": { - "smithy.api#documentation": "

The announcement content. This can contain only one of the three possible announcement types (text, SSML or audio).

", - "smithy.api#required": {} - } - }, - "TimeToLiveInSeconds": { - "target": "com.amazonaws.alexaforbusiness#TimeToLiveInSeconds", - "traits": { - "smithy.api#documentation": "

The time to live for an announcement. Default is 300. If delivery doesn't occur within this time, the\n announcement is not delivered.

" - } - }, - "ClientRequestToken": { - "target": "com.amazonaws.alexaforbusiness#ClientRequestToken", - "traits": { - "smithy.api#documentation": "

The unique, user-specified identifier for the request that ensures idempotency.

", - "smithy.api#idempotencyToken": {}, - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#SendAnnouncementResponse": { - "type": "structure", - "members": { - "AnnouncementArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The identifier of the announcement.

" - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#SendInvitation": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#SendInvitationRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#SendInvitationResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#InvalidUserStatusException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

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

" - } - }, - "com.amazonaws.alexaforbusiness#SendInvitationRequest": { - "type": "structure", - "members": { - "UserArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#SendInvitationResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#ShortDescription": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#ShortSkillIdList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#SkillId" - }, - "traits": { - "smithy.api#length": { - "min": 0, - "max": 3 - } - } - }, - "com.amazonaws.alexaforbusiness#SipAddress": { - "type": "structure", - "members": { - "Uri": { - "target": "com.amazonaws.alexaforbusiness#SipUri", - "traits": { - "smithy.api#documentation": "

The URI for the SIP address.

", - "smithy.api#required": {} - } - }, - "Type": { - "target": "com.amazonaws.alexaforbusiness#SipType", - "traits": { - "smithy.api#documentation": "

The type of the SIP address.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

The SIP address for the contact containing the URI and SIP address type.

" - } - }, - "com.amazonaws.alexaforbusiness#SipAddressList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#SipAddress" - }, - "traits": { - "smithy.api#length": { - "min": 0, - "max": 1 - } - } - }, - "com.amazonaws.alexaforbusiness#SipType": { - "type": "enum", - "members": { - "WORK": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "WORK" - } - } - }, - "traits": { - "smithy.api#sensitive": {} - } - }, - "com.amazonaws.alexaforbusiness#SipUri": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 256 - }, - "smithy.api#pattern": "^sip[s]?:([^@:]+)\\@([^@]+)$", - "smithy.api#sensitive": {} - } - }, - "com.amazonaws.alexaforbusiness#SkillDetails": { - "type": "structure", - "members": { - "ProductDescription": { - "target": "com.amazonaws.alexaforbusiness#ProductDescription", - "traits": { - "smithy.api#documentation": "

The description of the product.

" - } - }, - "InvocationPhrase": { - "target": "com.amazonaws.alexaforbusiness#InvocationPhrase", - "traits": { - "smithy.api#documentation": "

The phrase used to trigger the skill.

" - } - }, - "ReleaseDate": { - "target": "com.amazonaws.alexaforbusiness#ReleaseDate", - "traits": { - "smithy.api#documentation": "

The date when the skill was released.

" - } - }, - "EndUserLicenseAgreement": { - "target": "com.amazonaws.alexaforbusiness#EndUserLicenseAgreement", - "traits": { - "smithy.api#documentation": "

The URL of the end user license agreement.

" - } - }, - "GenericKeywords": { - "target": "com.amazonaws.alexaforbusiness#GenericKeywords", - "traits": { - "smithy.api#documentation": "

The generic keywords associated with the skill that can be used to find a\n skill.

" - } - }, - "BulletPoints": { - "target": "com.amazonaws.alexaforbusiness#BulletPoints", - "traits": { - "smithy.api#documentation": "

The details about what the skill supports organized as bullet points.

" - } - }, - "NewInThisVersionBulletPoints": { - "target": "com.amazonaws.alexaforbusiness#NewInThisVersionBulletPoints", - "traits": { - "smithy.api#documentation": "

The updates added in bullet points.

" - } - }, - "SkillTypes": { - "target": "com.amazonaws.alexaforbusiness#SkillTypes", - "traits": { - "smithy.api#documentation": "

The types of skills.

" - } - }, - "Reviews": { - "target": "com.amazonaws.alexaforbusiness#Reviews", - "traits": { - "smithy.api#documentation": "

\n This member has been deprecated.\n

\n

The list of reviews for the skill, including Key and Value pair.

" - } - }, - "DeveloperInfo": { - "target": "com.amazonaws.alexaforbusiness#DeveloperInfo", - "traits": { - "smithy.api#documentation": "

The details about the developer that published the skill.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Granular information about the skill.

" - } - }, - "com.amazonaws.alexaforbusiness#SkillGroup": { - "type": "structure", - "members": { - "SkillGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of a skill group.

" - } - }, - "SkillGroupName": { - "target": "com.amazonaws.alexaforbusiness#SkillGroupName", - "traits": { - "smithy.api#documentation": "

The name of a skill group.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#SkillGroupDescription", - "traits": { - "smithy.api#documentation": "

The description of a skill group.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

A skill group with attributes.

" - } - }, - "com.amazonaws.alexaforbusiness#SkillGroupData": { - "type": "structure", - "members": { - "SkillGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The skill group ARN of a skill group.

" - } - }, - "SkillGroupName": { - "target": "com.amazonaws.alexaforbusiness#SkillGroupName", - "traits": { - "smithy.api#documentation": "

The skill group name of a skill group.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#SkillGroupDescription", - "traits": { - "smithy.api#documentation": "

The description of a skill group.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The attributes of a skill group.

" - } - }, - "com.amazonaws.alexaforbusiness#SkillGroupDataList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#SkillGroupData" - } - }, - "com.amazonaws.alexaforbusiness#SkillGroupDescription": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 200 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#SkillGroupName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 100 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#SkillId": { - "type": "string", - "traits": { - "smithy.api#pattern": "^(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})$" - } - }, - "com.amazonaws.alexaforbusiness#SkillListMaxResults": { - "type": "integer", - "traits": { - "smithy.api#range": { - "min": 1, - "max": 10 - } - } - }, - "com.amazonaws.alexaforbusiness#SkillName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 100 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#SkillNotLinkedException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.alexaforbusiness#ErrorMessage" - } - }, - "traits": { - "smithy.api#documentation": "

The skill must be linked to a third-party account.

", - "smithy.api#error": "client" - } - }, - "com.amazonaws.alexaforbusiness#SkillStoreType": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#SkillSummary": { - "type": "structure", - "members": { - "SkillId": { - "target": "com.amazonaws.alexaforbusiness#SkillId", - "traits": { - "smithy.api#documentation": "

The ARN of the skill summary.

" - } - }, - "SkillName": { - "target": "com.amazonaws.alexaforbusiness#SkillName", - "traits": { - "smithy.api#documentation": "

The name of the skill.

" - } - }, - "SupportsLinking": { - "target": "com.amazonaws.alexaforbusiness#Boolean2", - "traits": { - "smithy.api#default": false, - "smithy.api#documentation": "

Linking support for a skill.

" - } - }, - "EnablementType": { - "target": "com.amazonaws.alexaforbusiness#EnablementType", - "traits": { - "smithy.api#documentation": "

Whether the skill is enabled under the user's account, or if it requires linking to be\n used.

" - } - }, - "SkillType": { - "target": "com.amazonaws.alexaforbusiness#SkillType", - "traits": { - "smithy.api#documentation": "

Whether the skill is publicly available or is a private skill.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The summary of skills.

" - } - }, - "com.amazonaws.alexaforbusiness#SkillSummaryList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#SkillSummary" - } - }, - "com.amazonaws.alexaforbusiness#SkillType": { - "type": "enum", - "members": { - "PUBLIC": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PUBLIC" - } - }, - "PRIVATE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PRIVATE" - } - } - }, - "traits": { - "smithy.api#length": { - "min": 1, - "max": 100 - }, - "smithy.api#pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*$" - } - }, - "com.amazonaws.alexaforbusiness#SkillTypeFilter": { - "type": "enum", - "members": { - "PUBLIC": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PUBLIC" - } - }, - "PRIVATE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PRIVATE" - } - }, - "ALL": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ALL" - } - } - } - }, - "com.amazonaws.alexaforbusiness#SkillTypes": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#SkillStoreType" - } - }, - "com.amazonaws.alexaforbusiness#SkillsStoreSkill": { - "type": "structure", - "members": { - "SkillId": { - "target": "com.amazonaws.alexaforbusiness#SkillId", - "traits": { - "smithy.api#documentation": "

The ARN of the skill.

" - } - }, - "SkillName": { - "target": "com.amazonaws.alexaforbusiness#SkillName", - "traits": { - "smithy.api#documentation": "

The name of the skill.

" - } - }, - "ShortDescription": { - "target": "com.amazonaws.alexaforbusiness#ShortDescription", - "traits": { - "smithy.api#documentation": "

Short description about the skill.

" - } - }, - "IconUrl": { - "target": "com.amazonaws.alexaforbusiness#IconUrl", - "traits": { - "smithy.api#documentation": "

The URL where the skill icon resides.

" - } - }, - "SampleUtterances": { - "target": "com.amazonaws.alexaforbusiness#SampleUtterances", - "traits": { - "smithy.api#documentation": "

Sample utterances that interact with the skill.

" - } - }, - "SkillDetails": { - "target": "com.amazonaws.alexaforbusiness#SkillDetails", - "traits": { - "smithy.api#documentation": "

Information about the skill.

" - } - }, - "SupportsLinking": { - "target": "com.amazonaws.alexaforbusiness#Boolean2", - "traits": { - "smithy.api#default": false, - "smithy.api#documentation": "

Linking support for a skill.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The detailed information about an Alexa skill.

" - } - }, - "com.amazonaws.alexaforbusiness#SkillsStoreSkillList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#SkillsStoreSkill" - } - }, - "com.amazonaws.alexaforbusiness#SmartHomeAppliance": { - "type": "structure", - "members": { - "FriendlyName": { - "target": "com.amazonaws.alexaforbusiness#ApplianceFriendlyName", - "traits": { - "smithy.api#documentation": "

The friendly name of the smart home appliance.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#ApplianceDescription", - "traits": { - "smithy.api#documentation": "

The description of the smart home appliance.

" - } - }, - "ManufacturerName": { - "target": "com.amazonaws.alexaforbusiness#ApplianceManufacturerName", - "traits": { - "smithy.api#documentation": "

The name of the manufacturer of the smart home appliance.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

A smart home appliance that can connect to a central system. Any domestic device can be\n a smart appliance.

" - } - }, - "com.amazonaws.alexaforbusiness#SmartHomeApplianceList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#SmartHomeAppliance" - } - }, - "com.amazonaws.alexaforbusiness#SoftwareVersion": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#Sort": { - "type": "structure", - "members": { - "Key": { - "target": "com.amazonaws.alexaforbusiness#SortKey", - "traits": { - "smithy.api#documentation": "

The sort key of a sort object.

", - "smithy.api#required": {} - } - }, - "Value": { - "target": "com.amazonaws.alexaforbusiness#SortValue", - "traits": { - "smithy.api#documentation": "

The sort value of a sort object.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

An object representing a sort criteria.

" - } - }, - "com.amazonaws.alexaforbusiness#SortKey": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 500 - } - } - }, - "com.amazonaws.alexaforbusiness#SortList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#Sort" - }, - "traits": { - "smithy.api#length": { - "min": 0, - "max": 25 - } - } - }, - "com.amazonaws.alexaforbusiness#SortValue": { - "type": "enum", - "members": { - "ASC": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ASC" - } - }, - "DESC": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DESC" - } - } - } - }, - "com.amazonaws.alexaforbusiness#Ssml": { - "type": "structure", - "members": { - "Locale": { - "target": "com.amazonaws.alexaforbusiness#Locale", - "traits": { - "smithy.api#documentation": "

The locale of the SSML message. Currently, en-US is supported.

", - "smithy.api#required": {} - } - }, - "Value": { - "target": "com.amazonaws.alexaforbusiness#SsmlValue", - "traits": { - "smithy.api#documentation": "

The value of the SSML message in the correct SSML format. The audio tag is not supported.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

The SSML message. For more information, see SSML Reference.

" - } - }, - "com.amazonaws.alexaforbusiness#SsmlList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#Ssml" - }, - "traits": { - "smithy.api#length": { - "min": 0, - "max": 1 - } - } - }, - "com.amazonaws.alexaforbusiness#SsmlValue": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 4096 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#StartDeviceSync": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#StartDeviceSyncRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#StartDeviceSyncResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#DeviceNotRegisteredException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Resets a device and its account to the known default settings. This clears all\n information and settings set by previous users in the following ways:

\n
    \n
  • \n

    Bluetooth - This unpairs all bluetooth devices paired with your echo\n device.

    \n
  • \n
  • \n

    Volume - This resets the echo device's volume to the default value.

    \n
  • \n
  • \n

    Notifications - This clears all notifications from your echo device.

    \n
  • \n
  • \n

    Lists - This clears all to-do items from your echo device.

    \n
  • \n
  • \n

    Settings - This internally syncs the room's profile (if the device is assigned to\n a room), contacts, address books, delegation access for account linking, and\n communications (if enabled on the room profile).

    \n
  • \n
" - } - }, - "com.amazonaws.alexaforbusiness#StartDeviceSyncRequest": { - "type": "structure", - "members": { - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

" - } - }, - "DeviceArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the device to sync. Required.

" - } - }, - "Features": { - "target": "com.amazonaws.alexaforbusiness#Features", - "traits": { - "smithy.api#documentation": "

Request structure to start the device sync. Required.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#StartDeviceSyncResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#StartSmartHomeApplianceDiscovery": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#StartSmartHomeApplianceDiscoveryRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#StartSmartHomeApplianceDiscoveryResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Initiates the discovery of any smart home appliances associated with the\n room.

" - } - }, - "com.amazonaws.alexaforbusiness#StartSmartHomeApplianceDiscoveryRequest": { - "type": "structure", - "members": { - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The room where smart home appliance discovery was initiated.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#StartSmartHomeApplianceDiscoveryResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#Tag": { - "type": "structure", - "members": { - "Key": { - "target": "com.amazonaws.alexaforbusiness#TagKey", - "traits": { - "smithy.api#documentation": "

The key of a tag. Tag keys are case-sensitive.

", - "smithy.api#required": {} - } - }, - "Value": { - "target": "com.amazonaws.alexaforbusiness#TagValue", - "traits": { - "smithy.api#documentation": "

The value of a tag. Tag values are case sensitive and can be null.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

A key-value pair that can be associated with a resource.

" - } - }, - "com.amazonaws.alexaforbusiness#TagKey": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 128 - }, - "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" - } - }, - "com.amazonaws.alexaforbusiness#TagKeyList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#TagKey" - } - }, - "com.amazonaws.alexaforbusiness#TagList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#Tag" - } - }, - "com.amazonaws.alexaforbusiness#TagResource": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#TagResourceRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#TagResourceResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Adds metadata tags to a specified resource.

" - } - }, - "com.amazonaws.alexaforbusiness#TagResourceRequest": { - "type": "structure", - "members": { - "Arn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#required": {} - } - }, - "Tags": { - "target": "com.amazonaws.alexaforbusiness#TagList", - "traits": { - "smithy.api#documentation": "

The tags to be added to the specified resource. Do not provide system tags. Required.\n

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#TagResourceResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#TagValue": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 256 - }, - "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" - } - }, - "com.amazonaws.alexaforbusiness#TemperatureUnit": { - "type": "enum", - "members": { - "FAHRENHEIT": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "FAHRENHEIT" - } - }, - "CELSIUS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CELSIUS" - } - } - } - }, - "com.amazonaws.alexaforbusiness#Text": { - "type": "structure", - "members": { - "Locale": { - "target": "com.amazonaws.alexaforbusiness#Locale", - "traits": { - "smithy.api#documentation": "

The locale of the text message. Currently, en-US is supported.

", - "smithy.api#required": {} - } - }, - "Value": { - "target": "com.amazonaws.alexaforbusiness#TextValue", - "traits": { - "smithy.api#documentation": "

The value of the text message.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

The text message.

" - } - }, - "com.amazonaws.alexaforbusiness#TextList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#Text" - }, - "traits": { - "smithy.api#length": { - "min": 0, - "max": 1 - } - } - }, - "com.amazonaws.alexaforbusiness#TextValue": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 4096 - }, - "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*$" - } - }, - "com.amazonaws.alexaforbusiness#TimeToLiveInSeconds": { - "type": "integer", - "traits": { - "smithy.api#range": { - "min": 1, - "max": 3600 - } - } - }, - "com.amazonaws.alexaforbusiness#Timezone": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 100 - } - } - }, - "com.amazonaws.alexaforbusiness#TotalCount": { - "type": "integer" - }, - "com.amazonaws.alexaforbusiness#TrustAnchor": { - "type": "string", - "traits": { - "smithy.api#pattern": "^-{5}BEGIN CERTIFICATE-{5}\\u000D?\\u000A([A-Za-z0-9/+]{64}\\u000D?\\u000A)*[A-Za-z0-9/+]{1,64}={0,2}\\u000D?\\u000A-{5}END CERTIFICATE-{5}(\\u000D?\\u000A)?$" - } - }, - "com.amazonaws.alexaforbusiness#TrustAnchorList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#TrustAnchor" - }, - "traits": { - "smithy.api#length": { - "min": 1, - "max": 5 - } - } - }, - "com.amazonaws.alexaforbusiness#UnauthorizedException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.alexaforbusiness#ErrorMessage" - } - }, - "traits": { - "smithy.api#documentation": "

The caller has no permissions to operate on the resource involved in the API call.

", - "smithy.api#error": "client" - } - }, - "com.amazonaws.alexaforbusiness#UntagResource": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#UntagResourceRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#UntagResourceResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Removes metadata tags from a specified resource.

" - } - }, - "com.amazonaws.alexaforbusiness#UntagResourceRequest": { - "type": "structure", - "members": { - "Arn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#required": {} - } - }, - "TagKeys": { - "target": "com.amazonaws.alexaforbusiness#TagKeyList", - "traits": { - "smithy.api#documentation": "

The tags to be removed from the specified resource. Do not provide system tags.\n Required.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#UntagResourceResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateAddressBook": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#UpdateAddressBookRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#UpdateAddressBookResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NameInUseException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Updates address book details by the address book ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#UpdateAddressBookRequest": { - "type": "structure", - "members": { - "AddressBookArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the room to update.

", - "smithy.api#required": {} - } - }, - "Name": { - "target": "com.amazonaws.alexaforbusiness#AddressBookName", - "traits": { - "smithy.api#documentation": "

The updated name of the room.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#AddressBookDescription", - "traits": { - "smithy.api#documentation": "

The updated description of the room.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateAddressBookResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateBusinessReportSchedule": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#UpdateBusinessReportScheduleRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#UpdateBusinessReportScheduleResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Updates the configuration of the report delivery schedule with the specified schedule\n ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#UpdateBusinessReportScheduleRequest": { - "type": "structure", - "members": { - "ScheduleArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the business report schedule.

", - "smithy.api#required": {} - } - }, - "S3BucketName": { - "target": "com.amazonaws.alexaforbusiness#CustomerS3BucketName", - "traits": { - "smithy.api#documentation": "

The S3 location of the output reports.

" - } - }, - "S3KeyPrefix": { - "target": "com.amazonaws.alexaforbusiness#S3KeyPrefix", - "traits": { - "smithy.api#documentation": "

The S3 key where the report is delivered.

" - } - }, - "Format": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportFormat", - "traits": { - "smithy.api#documentation": "

The format of the generated report (individual CSV files or zipped files of\n individual files).

" - } - }, - "ScheduleName": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportScheduleName", - "traits": { - "smithy.api#documentation": "

The name identifier of the schedule.

" - } - }, - "Recurrence": { - "target": "com.amazonaws.alexaforbusiness#BusinessReportRecurrence", - "traits": { - "smithy.api#documentation": "

The recurrence of the reports.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateBusinessReportScheduleResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateConferenceProvider": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#UpdateConferenceProviderRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#UpdateConferenceProviderResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Updates an existing conference provider's settings.

" - } - }, - "com.amazonaws.alexaforbusiness#UpdateConferenceProviderRequest": { - "type": "structure", - "members": { - "ConferenceProviderArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the conference provider.

", - "smithy.api#required": {} - } - }, - "ConferenceProviderType": { - "target": "com.amazonaws.alexaforbusiness#ConferenceProviderType", - "traits": { - "smithy.api#documentation": "

The type of the conference provider.

", - "smithy.api#required": {} - } - }, - "IPDialIn": { - "target": "com.amazonaws.alexaforbusiness#IPDialIn", - "traits": { - "smithy.api#documentation": "

The IP endpoint and protocol for calling.

" - } - }, - "PSTNDialIn": { - "target": "com.amazonaws.alexaforbusiness#PSTNDialIn", - "traits": { - "smithy.api#documentation": "

The information for PSTN conferencing.

" - } - }, - "MeetingSetting": { - "target": "com.amazonaws.alexaforbusiness#MeetingSetting", - "traits": { - "smithy.api#documentation": "

The meeting settings for the conference provider.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateConferenceProviderResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateContact": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#UpdateContactRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#UpdateContactResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Updates the contact details by the contact ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#UpdateContactRequest": { - "type": "structure", - "members": { - "ContactArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the contact to update.

", - "smithy.api#required": {} - } - }, - "DisplayName": { - "target": "com.amazonaws.alexaforbusiness#ContactName", - "traits": { - "smithy.api#documentation": "

The updated display name of the contact.

" - } - }, - "FirstName": { - "target": "com.amazonaws.alexaforbusiness#ContactName", - "traits": { - "smithy.api#documentation": "

The updated first name of the contact.

" - } - }, - "LastName": { - "target": "com.amazonaws.alexaforbusiness#ContactName", - "traits": { - "smithy.api#documentation": "

The updated last name of the contact.

" - } - }, - "PhoneNumber": { - "target": "com.amazonaws.alexaforbusiness#RawPhoneNumber", - "traits": { - "smithy.api#documentation": "

The updated phone number of the contact. The phone number type defaults to WORK. You\n can either specify PhoneNumber or PhoneNumbers. We recommend that you use PhoneNumbers,\n which lets you specify the phone number type and multiple numbers.

" - } - }, - "PhoneNumbers": { - "target": "com.amazonaws.alexaforbusiness#PhoneNumberList", - "traits": { - "smithy.api#documentation": "

The list of phone numbers for the contact.

" - } - }, - "SipAddresses": { - "target": "com.amazonaws.alexaforbusiness#SipAddressList", - "traits": { - "smithy.api#documentation": "

The list of SIP addresses for the contact.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateContactResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateDevice": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#UpdateDeviceRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#UpdateDeviceResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#DeviceNotRegisteredException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Updates the device name by device ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#UpdateDeviceRequest": { - "type": "structure", - "members": { - "DeviceArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the device to update. Required.

" - } - }, - "DeviceName": { - "target": "com.amazonaws.alexaforbusiness#DeviceName", - "traits": { - "smithy.api#documentation": "

The updated device name. Required.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateDeviceResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateEndOfMeetingReminder": { - "type": "structure", - "members": { - "ReminderAtMinutes": { - "target": "com.amazonaws.alexaforbusiness#EndOfMeetingReminderMinutesList", - "traits": { - "smithy.api#documentation": "

Updates settings for the end of meeting reminder feature that are applied to a room\n profile. The end of meeting reminder enables Alexa to remind users when a meeting is\n ending.

" - } - }, - "ReminderType": { - "target": "com.amazonaws.alexaforbusiness#EndOfMeetingReminderType", - "traits": { - "smithy.api#documentation": "

The type of sound that users hear during the end of meeting reminder.

" - } - }, - "Enabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether an end of meeting reminder is enabled or not.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Settings for the end of meeting reminder feature that are applied to a room profile. The\n end of meeting reminder enables Alexa to remind users when a meeting is ending.

" - } - }, - "com.amazonaws.alexaforbusiness#UpdateGateway": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#UpdateGatewayRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#UpdateGatewayResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NameInUseException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Updates the details of a gateway. If any optional field is not provided, the existing\n corresponding value is left unmodified.

" - } - }, - "com.amazonaws.alexaforbusiness#UpdateGatewayGroup": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#UpdateGatewayGroupRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#UpdateGatewayGroupResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NameInUseException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Updates the details of a gateway group. If any optional field is not provided, the\n existing corresponding value is left unmodified.

" - } - }, - "com.amazonaws.alexaforbusiness#UpdateGatewayGroupRequest": { - "type": "structure", - "members": { - "GatewayGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the gateway group to update.

", - "smithy.api#required": {} - } - }, - "Name": { - "target": "com.amazonaws.alexaforbusiness#GatewayGroupName", - "traits": { - "smithy.api#documentation": "

The updated name of the gateway group.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#GatewayGroupDescription", - "traits": { - "smithy.api#documentation": "

The updated description of the gateway group.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateGatewayGroupResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateGatewayRequest": { - "type": "structure", - "members": { - "GatewayArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the gateway to update.

", - "smithy.api#required": {} - } - }, - "Name": { - "target": "com.amazonaws.alexaforbusiness#GatewayName", - "traits": { - "smithy.api#documentation": "

The updated name of the gateway.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#GatewayDescription", - "traits": { - "smithy.api#documentation": "

The updated description of the gateway.

" - } - }, - "SoftwareVersion": { - "target": "com.amazonaws.alexaforbusiness#GatewayVersion", - "traits": { - "smithy.api#documentation": "

The updated software version of the gateway. The gateway automatically updates its\n software version during normal operation.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateGatewayResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateInstantBooking": { - "type": "structure", - "members": { - "DurationInMinutes": { - "target": "com.amazonaws.alexaforbusiness#Minutes", - "traits": { - "smithy.api#documentation": "

Duration between 15 and 240 minutes at increments of 15 that determines how long to book\n an available room when a meeting is started with Alexa.

" - } - }, - "Enabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether instant booking is enabled or not.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Updates settings for the instant booking feature that are applied to a room profile. If\n instant booking is enabled, Alexa automatically reserves a room if it is free when a user\n joins a meeting with Alexa.

" - } - }, - "com.amazonaws.alexaforbusiness#UpdateMeetingRoomConfiguration": { - "type": "structure", - "members": { - "RoomUtilizationMetricsEnabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether room utilization metrics are enabled or not.

" - } - }, - "EndOfMeetingReminder": { - "target": "com.amazonaws.alexaforbusiness#UpdateEndOfMeetingReminder", - "traits": { - "smithy.api#documentation": "

Settings for the end of meeting reminder feature that are applied to a room profile. The\n end of meeting reminder enables Alexa to remind users when a meeting is ending.

" - } - }, - "InstantBooking": { - "target": "com.amazonaws.alexaforbusiness#UpdateInstantBooking", - "traits": { - "smithy.api#documentation": "

Settings to automatically book an available room available for a configured duration\n when joining a meeting with Alexa.

" - } - }, - "RequireCheckIn": { - "target": "com.amazonaws.alexaforbusiness#UpdateRequireCheckIn", - "traits": { - "smithy.api#documentation": "

Settings for requiring a check in when a room is reserved. Alexa can cancel a room reservation if it's not checked into to make the room available for others. Users can check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check in.”

" - } - }, - "ProactiveJoin": { - "target": "com.amazonaws.alexaforbusiness#UpdateProactiveJoin" - } - }, - "traits": { - "smithy.api#documentation": "

Updates meeting room settings of a room profile.

" - } - }, - "com.amazonaws.alexaforbusiness#UpdateNetworkProfile": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#UpdateNetworkProfileRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#UpdateNetworkProfileResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#InvalidCertificateAuthorityException" - }, - { - "target": "com.amazonaws.alexaforbusiness#InvalidSecretsManagerResourceException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NameInUseException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Updates a network profile by the network profile ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#UpdateNetworkProfileRequest": { - "type": "structure", - "members": { - "NetworkProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the network profile associated with a device.

", - "smithy.api#required": {} - } - }, - "NetworkProfileName": { - "target": "com.amazonaws.alexaforbusiness#NetworkProfileName", - "traits": { - "smithy.api#documentation": "

The name of the network profile associated with a device.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#NetworkProfileDescription", - "traits": { - "smithy.api#documentation": "

Detailed information about a device's network profile.

" - } - }, - "CurrentPassword": { - "target": "com.amazonaws.alexaforbusiness#CurrentWiFiPassword", - "traits": { - "smithy.api#documentation": "

The current password of the Wi-Fi network.

" - } - }, - "NextPassword": { - "target": "com.amazonaws.alexaforbusiness#NextWiFiPassword", - "traits": { - "smithy.api#documentation": "

The next, or subsequent, password of the Wi-Fi network. This password is asynchronously\n transmitted to the device and is used when the password of the network changes to\n NextPassword.

" - } - }, - "CertificateAuthorityArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the Private Certificate Authority (PCA) created in AWS Certificate Manager\n (ACM). This is used to issue certificates to the devices.

" - } - }, - "TrustAnchors": { - "target": "com.amazonaws.alexaforbusiness#TrustAnchorList", - "traits": { - "smithy.api#documentation": "

The root certificate(s) of your authentication server that will be installed on your\n devices and used to trust your authentication server during EAP negotiation.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateNetworkProfileResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateProactiveJoin": { - "type": "structure", - "members": { - "EnabledByMotion": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#required": {} - } - } - } - }, - "com.amazonaws.alexaforbusiness#UpdateProfile": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#UpdateProfileRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#UpdateProfileResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NameInUseException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Updates an existing room profile by room profile ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#UpdateProfileRequest": { - "type": "structure", - "members": { - "ProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the room profile to update. Required.

" - } - }, - "ProfileName": { - "target": "com.amazonaws.alexaforbusiness#ProfileName", - "traits": { - "smithy.api#documentation": "

The updated name for the room profile.

" - } - }, - "IsDefault": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Sets the profile as default if selected. If this is missing, no update is done to the\n default status.

" - } - }, - "Timezone": { - "target": "com.amazonaws.alexaforbusiness#Timezone", - "traits": { - "smithy.api#documentation": "

The updated timezone for the room profile.

" - } - }, - "Address": { - "target": "com.amazonaws.alexaforbusiness#Address", - "traits": { - "smithy.api#documentation": "

The updated address for the room profile.

" - } - }, - "DistanceUnit": { - "target": "com.amazonaws.alexaforbusiness#DistanceUnit", - "traits": { - "smithy.api#documentation": "

The updated distance unit for the room profile.

" - } - }, - "TemperatureUnit": { - "target": "com.amazonaws.alexaforbusiness#TemperatureUnit", - "traits": { - "smithy.api#documentation": "

The updated temperature unit for the room profile.

" - } - }, - "WakeWord": { - "target": "com.amazonaws.alexaforbusiness#WakeWord", - "traits": { - "smithy.api#documentation": "

The updated wake word for the room profile.

" - } - }, - "Locale": { - "target": "com.amazonaws.alexaforbusiness#DeviceLocale", - "traits": { - "smithy.api#documentation": "

The updated locale for the room profile. (This is currently only available to a limited preview audience.)

" - } - }, - "SetupModeDisabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether the setup mode of the profile is enabled.

" - } - }, - "MaxVolumeLimit": { - "target": "com.amazonaws.alexaforbusiness#MaxVolumeLimit", - "traits": { - "smithy.api#documentation": "

The updated maximum volume limit for the room profile.

" - } - }, - "PSTNEnabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether the PSTN setting of the room profile is enabled.

" - } - }, - "DataRetentionOptIn": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether data retention of the profile is enabled.

" - } - }, - "MeetingRoomConfiguration": { - "target": "com.amazonaws.alexaforbusiness#UpdateMeetingRoomConfiguration", - "traits": { - "smithy.api#documentation": "

The updated meeting room settings of a room profile.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateProfileResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateRequireCheckIn": { - "type": "structure", - "members": { - "ReleaseAfterMinutes": { - "target": "com.amazonaws.alexaforbusiness#Minutes", - "traits": { - "smithy.api#documentation": "

Duration between 5 and 20 minutes to determine when to release the room if it's not checked into.

" - } - }, - "Enabled": { - "target": "com.amazonaws.alexaforbusiness#Boolean", - "traits": { - "smithy.api#documentation": "

Whether require check in is enabled or not.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Updates settings for the require check in feature that are applied to a room profile. Require check in allows a meeting room’s Alexa or AVS device to prompt the user to check in; otherwise, the room will be released.

" - } - }, - "com.amazonaws.alexaforbusiness#UpdateRoom": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#UpdateRoomRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#UpdateRoomResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#NameInUseException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Updates room details by room ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#UpdateRoomRequest": { - "type": "structure", - "members": { - "RoomArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the room to update.

" - } - }, - "RoomName": { - "target": "com.amazonaws.alexaforbusiness#RoomName", - "traits": { - "smithy.api#documentation": "

The updated name for the room.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#RoomDescription", - "traits": { - "smithy.api#documentation": "

The updated description for the room.

" - } - }, - "ProviderCalendarId": { - "target": "com.amazonaws.alexaforbusiness#ProviderCalendarId", - "traits": { - "smithy.api#documentation": "

The updated provider calendar ARN for the room.

" - } - }, - "ProfileArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The updated profile ARN for the room.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateRoomResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateSkillGroup": { - "type": "operation", - "input": { - "target": "com.amazonaws.alexaforbusiness#UpdateSkillGroupRequest" - }, - "output": { - "target": "com.amazonaws.alexaforbusiness#UpdateSkillGroupResponse" - }, - "errors": [ - { - "target": "com.amazonaws.alexaforbusiness#ConcurrentModificationException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NameInUseException" - }, - { - "target": "com.amazonaws.alexaforbusiness#NotFoundException" - } - ], - "traits": { - "smithy.api#deprecated": { - "message": "Alexa For Business is no longer supported" - }, - "smithy.api#documentation": "

Updates skill group details by skill group ARN.

" - } - }, - "com.amazonaws.alexaforbusiness#UpdateSkillGroupRequest": { - "type": "structure", - "members": { - "SkillGroupArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of the skill group to update.

" - } - }, - "SkillGroupName": { - "target": "com.amazonaws.alexaforbusiness#SkillGroupName", - "traits": { - "smithy.api#documentation": "

The updated name for the skill group.

" - } - }, - "Description": { - "target": "com.amazonaws.alexaforbusiness#SkillGroupDescription", - "traits": { - "smithy.api#documentation": "

The updated description for the skill group.

" - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.alexaforbusiness#UpdateSkillGroupResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.alexaforbusiness#Url": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#UserCode": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 128 - } - } - }, - "com.amazonaws.alexaforbusiness#UserData": { - "type": "structure", - "members": { - "UserArn": { - "target": "com.amazonaws.alexaforbusiness#Arn", - "traits": { - "smithy.api#documentation": "

The ARN of a user.

" - } - }, - "FirstName": { - "target": "com.amazonaws.alexaforbusiness#user_FirstName", - "traits": { - "smithy.api#documentation": "

The first name of a user.

" - } - }, - "LastName": { - "target": "com.amazonaws.alexaforbusiness#user_LastName", - "traits": { - "smithy.api#documentation": "

The last name of a user.

" - } - }, - "Email": { - "target": "com.amazonaws.alexaforbusiness#Email", - "traits": { - "smithy.api#documentation": "

The email of a user.

" - } - }, - "EnrollmentStatus": { - "target": "com.amazonaws.alexaforbusiness#EnrollmentStatus", - "traits": { - "smithy.api#documentation": "

The enrollment status of a user.

" - } - }, - "EnrollmentId": { - "target": "com.amazonaws.alexaforbusiness#EnrollmentId", - "traits": { - "smithy.api#documentation": "

The enrollment ARN of a user.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

Information related to a user.

" - } - }, - "com.amazonaws.alexaforbusiness#UserDataList": { - "type": "list", - "member": { - "target": "com.amazonaws.alexaforbusiness#UserData" - } - }, - "com.amazonaws.alexaforbusiness#UserId": { - "type": "string", - "traits": { - "smithy.api#pattern": "^amzn1\\.[A-Za-z0-9+-\\/=.]{1,300}$" - } - }, - "com.amazonaws.alexaforbusiness#Utterance": { - "type": "string" - }, - "com.amazonaws.alexaforbusiness#Value": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1 - } - } - }, - "com.amazonaws.alexaforbusiness#WakeWord": { - "type": "enum", - "members": { - "ALEXA": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ALEXA" - } - }, - "AMAZON": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AMAZON" - } - }, - "ECHO": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ECHO" - } - }, - "COMPUTER": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "COMPUTER" - } - } - } - }, - "com.amazonaws.alexaforbusiness#user_FirstName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 30 - }, - "smithy.api#pattern": "^([A-Za-z\\-' 0-9._]|\\p{IsLetter})*$" - } - }, - "com.amazonaws.alexaforbusiness#user_LastName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 30 - }, - "smithy.api#pattern": "^([A-Za-z\\-' 0-9._]|\\p{IsLetter})*$" - } - }, - "com.amazonaws.alexaforbusiness#user_UserId": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 128 - }, - "smithy.api#pattern": "^[a-zA-Z0-9@_+.-]*$" - } - } - } -} diff --git a/models/amplify.json b/models/amplify.json index 33106f3503..a3f1beea1c 100644 --- a/models/amplify.json +++ b/models/amplify.json @@ -4341,7 +4341,7 @@ } }, "maxResults": { - "target": "com.amazonaws.amplify#MaxResults", + "target": "com.amazonaws.amplify#MaxResultsForListApps", "traits": { "smithy.api#default": 0, "smithy.api#documentation": "

The maximum number of records to list in a single response.

", @@ -5006,6 +5006,16 @@ } }, "com.amazonaws.amplify#MaxResults": { + "type": "integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#range": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.amplify#MaxResultsForListApps": { "type": "integer", "traits": { "smithy.api#default": 0, diff --git a/models/appsync.json b/models/appsync.json index 925e9273fe..2ad99c15ca 100644 --- a/models/appsync.json +++ b/models/appsync.json @@ -7332,7 +7332,7 @@ "min": 20, "max": 2048 }, - "smithy.api#pattern": "^arn:[a-z-]*:secretsmanager:[a-z0-9-]*:\\d{12}:secret:[0-9A-Za-z_/-]*$" + "smithy.api#pattern": "^arn:[a-z-]*:secretsmanager:[a-z0-9-]*:\\d{12}:secret:[0-9A-Za-z_/+=.@!-]*$" } }, "com.amazonaws.appsync#RdsHttpEndpointConfig": { @@ -8936,7 +8936,8 @@ "authenticationType": { "target": "com.amazonaws.appsync#AuthenticationType", "traits": { - "smithy.api#documentation": "

The new authentication type for the GraphqlApi object.

" + "smithy.api#documentation": "

The new authentication type for the GraphqlApi object.

", + "smithy.api#required": {} } }, "userPoolConfig": { diff --git a/models/batch.json b/models/batch.json index 643af8001b..cc3d51ccfb 100644 --- a/models/batch.json +++ b/models/batch.json @@ -118,7 +118,7 @@ "name": "batch" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "Batch\n

Using Batch, you can run batch computing workloads on the Amazon Web Services Cloud. Batch computing is a common means for\n developers, scientists, and engineers to access large amounts of compute resources. Batch uses the advantages of\n the batch computing to remove the undifferentiated heavy lifting of configuring and managing required infrastructure.\n At the same time, it also adopts a familiar batch computing software approach. You can use Batch to efficiently\n provision resources d, and work toward eliminating capacity constraints, reducing your overall compute costs, and\n delivering results more quickly.

\n

As a fully managed service, Batch can run batch computing workloads of any scale. Batch automatically\n provisions compute resources and optimizes workload distribution based on the quantity and scale of your specific\n workloads. With Batch, there's no need to install or manage batch computing software. This means that you can focus\n on analyzing results and solving your specific problems instead.

", + "smithy.api#documentation": "Batch\n

Using Batch, you can run batch computing workloads on the Amazon Web Services Cloud. Batch computing is a common means for\n developers, scientists, and engineers to access large amounts of compute resources. Batch uses the advantages of\n the batch computing to remove the undifferentiated heavy lifting of configuring and managing required infrastructure.\n At the same time, it also adopts a familiar batch computing software approach. You can use Batch to efficiently\n provision resources, and work toward eliminating capacity constraints, reducing your overall compute costs, and\n delivering results more quickly.

\n

As a fully managed service, Batch can run batch computing workloads of any scale. Batch automatically\n provisions compute resources and optimizes workload distribution based on the quantity and scale of your specific\n workloads. With Batch, there's no need to install or manage batch computing software. This means that you can focus\n on analyzing results and solving your specific problems instead.

", "smithy.api#title": "AWS Batch", "smithy.api#xmlNamespace": { "uri": "http://batch.amazonaws.com/doc/2016-08-10/" @@ -1327,6 +1327,12 @@ "traits": { "smithy.api#documentation": "

A short, human-readable string to provide additional details for the current status of the\n job attempt.

" } + }, + "taskProperties": { + "target": "com.amazonaws.batch#ListAttemptEcsTaskDetails", + "traits": { + "smithy.api#documentation": "

The properties for a task definition that describes the container and volume definitions of\n an Amazon ECS task.

" + } } }, "traits": { @@ -1339,6 +1345,70 @@ "target": "com.amazonaws.batch#AttemptDetail" } }, + "com.amazonaws.batch#AttemptEcsTaskDetails": { + "type": "structure", + "members": { + "containerInstanceArn": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the container instance that hosts the task.

" + } + }, + "taskArn": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The ARN of the Amazon ECS task.

" + } + }, + "containers": { + "target": "com.amazonaws.batch#ListAttemptTaskContainerDetails", + "traits": { + "smithy.api#documentation": "

A list of containers that are included in the taskProperties list.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that represents the details of a task.

" + } + }, + "com.amazonaws.batch#AttemptTaskContainerDetails": { + "type": "structure", + "members": { + "exitCode": { + "target": "com.amazonaws.batch#Integer", + "traits": { + "smithy.api#documentation": "

The exit code for the container’s attempt. A non-zero exit code is considered failed.

" + } + }, + "name": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The name of a container.

" + } + }, + "reason": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

A short (255 max characters) string that's easy to understand and provides additional details for a\n running or stopped container.

" + } + }, + "logStreamName": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The name of the Amazon CloudWatch Logs log stream that's associated with the container. The log\n group for Batch jobs is /aws/batch/job. Each container attempt receives a log stream name\n when they reach the RUNNING status.

" + } + }, + "networkInterfaces": { + "target": "com.amazonaws.batch#NetworkInterfaceList", + "traits": { + "smithy.api#documentation": "

The network interfaces that are associated with the job attempt.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that represents the details of a container that's part of a job attempt.

" + } + }, "com.amazonaws.batch#Boolean": { "type": "boolean" }, @@ -3747,7 +3817,7 @@ "containers": { "target": "com.amazonaws.batch#ListTaskContainerDetails", "traits": { - "smithy.api#documentation": "

A list of containers that are included in the taskProperties\n list.

" + "smithy.api#documentation": "

A list of containers that are included in the taskProperties list.

" } }, "containerInstanceArn": { @@ -3789,7 +3859,7 @@ "taskRoleArn": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that the container can assume for Amazon Web Services permissions. For more\n information, see IAM roles for tasks in the\n Amazon Elastic Container Service Developer Guide.

\n \n

This is object is comparable to ContainerProperties:jobRoleArn.

\n
" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that the container can assume for Amazon Web Services permissions. For more\n information, see IAM roles for tasks in the\n Amazon Elastic Container Service Developer Guide.

\n \n

This is object is comparable to ContainerProperties:jobRoleArn.

\n
" } }, "pidMode": { @@ -3853,7 +3923,7 @@ "ipcMode": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The IPC resource namespace to use for the containers in the task. The valid values are\n host, task, or none.

\n

If host is specified, all containers within the tasks that specified the\n host IPC mode on the same container instance share the same IPC resources with the\n host Amazon EC2 instance.

\n

If task is specified, all containers within the specified task\n share the same IPC resources.

\n

If none is specified, the IPC resources within the containers of a task are\n private, and are not shared with other containers in a task or on the container instance.

\n

If no value is specified, then the IPC resource namespace sharing depends on the Docker\n daemon setting on the container instance. For more information, see IPC settings in\n the Docker run reference.

" + "smithy.api#documentation": "

The IPC resource namespace to use for the containers in the task. The valid values are\n host, task, or none.

\n

If host is specified, all containers within the tasks that specified the\n host IPC mode on the same container instance share the same IPC resources with the\n host Amazon EC2 instance.

\n

If task is specified, all containers within the specified task\n share the same IPC resources.

\n

If none is specified, the IPC resources within the containers of a task are\n private, and are not shared with other containers in a task or on the container instance.

\n

If no value is specified, then the IPC resource namespace sharing depends on the Docker\n daemon setting on the container instance. For more information, see IPC settings in\n the Docker run reference.

" } }, "taskRoleArn": { @@ -3865,7 +3935,7 @@ "pidMode": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The process namespace to use for the containers in the task. The valid values are\n host or task. For example, monitoring sidecars might need\n pidMode to access information about other containers running in the same\n task.

\n

If host is specified, all containers within the tasks that specified the\n host PID mode on the same container instance share the process namespace with the\n host Amazon EC2 instance.

\n

If task is specified, all containers within the specified task share the same\n process namespace.

\n

If no value is specified, the default is a private namespace for each container. For more\n information, see PID settings in the Docker run reference.

" + "smithy.api#documentation": "

The process namespace to use for the containers in the task. The valid values are\n host or task. For example, monitoring sidecars might need\n pidMode to access information about other containers running in the same\n task.

\n

If host is specified, all containers within the tasks that specified the\n host PID mode on the same container instance share the process namespace with the\n host Amazon EC2 instance.

\n

If task is specified, all containers within the specified task share the same\n process namespace.

\n

If no value is specified, the default is a private namespace for each container. For more\n information, see PID settings in the Docker run reference.

" } }, "networkConfiguration": { @@ -3894,10 +3964,16 @@ "com.amazonaws.batch#EksAttemptContainerDetail": { "type": "structure", "members": { + "name": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The name of a container.

" + } + }, "exitCode": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The exit code returned for the job attempt. A non-zero exit code is considered failed.

" + "smithy.api#documentation": "

The exit code returned for the job attempt. A non-zero exit code is considered\n failed.

" } }, "reason": { @@ -4109,7 +4185,7 @@ "exitCode": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

The exit code returned for the job attempt. A non-zero exit code is considered failed.

" + "smithy.api#documentation": "

The exit code returned for the job attempt. A non-zero exit code is considered\n failed.

" } }, "reason": { @@ -4175,7 +4251,7 @@ "name": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

A pointer to the container that you want to override. The name must match a unique container name that you wish to override.

" + "smithy.api#documentation": "

A pointer to the container that you want to override. The name must match a unique container\n name that you wish to override.

" } }, "image": { @@ -4263,7 +4339,7 @@ "allowPrivilegeEscalation": { "target": "com.amazonaws.batch#Boolean", "traits": { - "smithy.api#documentation": "

Whether or not a container or a Kubernetes pod is allowed to gain more privileges than its parent process. The default value is false.

" + "smithy.api#documentation": "

Whether or not a container or a Kubernetes pod is allowed to gain more privileges than its parent\n process. The default value is false.

" } }, "readOnlyRootFilesystem": { @@ -4411,7 +4487,7 @@ "imagePullSecrets": { "target": "com.amazonaws.batch#ImagePullSecrets", "traits": { - "smithy.api#documentation": "

References a Kubernetes secret resource. This object must start and end with an alphanumeric character, is required to be lowercase, can include periods (.) and hyphens (-), and can't contain more than 253 characters.

\n

\n ImagePullSecret$name is required when this object is used.

" + "smithy.api#documentation": "

References a Kubernetes secret resource. It holds a list of secrets. These secrets help to gain\n access to pull an images from a private registry.

\n

\n ImagePullSecret$name is required when this object is used.

" } }, "containers": { @@ -4423,7 +4499,7 @@ "initContainers": { "target": "com.amazonaws.batch#EksContainers", "traits": { - "smithy.api#documentation": "

These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see Init\n Containers in the Kubernetes documentation.

\n \n

This object is limited to 10 elements

\n
" + "smithy.api#documentation": "

These containers run before application containers, always runs to completion, and must\n complete successfully before the next container starts. These containers are registered with the\n Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store.\n For more information, see Init\n Containers in the Kubernetes documentation.

\n \n

This object is limited to 10 elements

\n
" } }, "volumes": { @@ -4473,7 +4549,7 @@ "imagePullSecrets": { "target": "com.amazonaws.batch#ImagePullSecrets", "traits": { - "smithy.api#documentation": "

Displays the reference pointer to the Kubernetes secret resource.

" + "smithy.api#documentation": "

Displays the reference pointer to the Kubernetes secret resource. These secrets help to gain\n access to pull an images from a private registry.

" } }, "containers": { @@ -4535,7 +4611,7 @@ "initContainers": { "target": "com.amazonaws.batch#EksContainerOverrideList", "traits": { - "smithy.api#documentation": "

The overrides for the conatainers defined in the Amazon EKS pod. These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see Init\n Containers in the Kubernetes documentation.

\n \n

This object is limited to 10 elements

\n
" + "smithy.api#documentation": "

The overrides for the conatainers defined in the Amazon EKS pod. These containers run before\n application containers, always runs to completion, and must complete successfully before the next\n container starts. These containers are registered with the Amazon EKS Connector agent and persists the\n registration information in the Kubernetes backend data store. For more information, see Init\n Containers in the Kubernetes documentation.

\n \n

This object is limited to 10 elements

\n
" } }, "metadata": { @@ -4797,13 +4873,13 @@ "target": "com.amazonaws.batch#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Provides a unique identifier for the ImagePullSecret. This object is required when EksPodProperties$imagePullSecrets is used.

", + "smithy.api#documentation": "

Provides a unique identifier for the ImagePullSecret. This object is required\n when EksPodProperties$imagePullSecrets is used.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

References a Kubernetes configuration resource that holds a list of secrets. These secrets help to gain access to pull an image from a private registry.

" + "smithy.api#documentation": "

References a Kubernetes secret resource. This name of the secret must start and end with an\n alphanumeric character, is required to be lowercase, can include periods (.) and hyphens (-), and\n can't contain more than 253 characters.

" } }, "com.amazonaws.batch#ImagePullSecrets": { @@ -4944,7 +5020,7 @@ "containerProperties": { "target": "com.amazonaws.batch#ContainerProperties", "traits": { - "smithy.api#documentation": "

An object with properties specific to Amazon ECS-based jobs. When containerProperties is used in the job definition, it can't be used in addition to eksProperties, ecsProperties, or\n nodeProperties.

" + "smithy.api#documentation": "

An object with properties specific to Amazon ECS-based jobs. When\n containerProperties is used in the job definition, it can't be used in addition to\n eksProperties, ecsProperties, or nodeProperties.

" } }, "timeout": { @@ -4956,7 +5032,7 @@ "nodeProperties": { "target": "com.amazonaws.batch#NodeProperties", "traits": { - "smithy.api#documentation": "

An object with properties that are specific to multi-node parallel jobs. When nodeProperties is used in the job definition, it can't be used in addition to containerProperties, ecsProperties, or eksProperties.

\n \n

If the job runs on Fargate resources, don't specify nodeProperties. Use\n containerProperties instead.

\n
" + "smithy.api#documentation": "

An object with properties that are specific to multi-node parallel jobs. When\n nodeProperties is used in the job definition, it can't be used in addition to\n containerProperties, ecsProperties, or\n eksProperties.

\n \n

If the job runs on Fargate resources, don't specify nodeProperties. Use\n containerProperties instead.

\n
" } }, "tags": { @@ -4980,13 +5056,13 @@ "ecsProperties": { "target": "com.amazonaws.batch#EcsProperties", "traits": { - "smithy.api#documentation": "

An object that contains the properties for the Amazon ECS resources of a job.When ecsProperties\n is used in the job definition, it can't be used in addition to containerProperties, eksProperties, or nodeProperties.

" + "smithy.api#documentation": "

An object that contains the properties for the Amazon ECS resources of a job.When\n ecsProperties is used in the job definition, it can't be used in addition to\n containerProperties, eksProperties, or\n nodeProperties.

" } }, "eksProperties": { "target": "com.amazonaws.batch#EksProperties", "traits": { - "smithy.api#documentation": "

An object with properties that are specific to Amazon EKS-based jobs. When eksProperties\n is used in the job definition, it can't be used in addition to containerProperties, ecsProperties, or nodeProperties.

" + "smithy.api#documentation": "

An object with properties that are specific to Amazon EKS-based jobs. When\n eksProperties is used in the job definition, it can't be used in addition to\n containerProperties, ecsProperties, or\n nodeProperties.

" } }, "containerOrchestrationType": { @@ -5111,7 +5187,7 @@ "statusReason": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

A short, human-readable string to provide more details for the current status of the job.

\n
    \n
  • \n

    \n CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY - All compute environments have insufficient capacity to\n service the job.

    \n
  • \n
  • \n

    \n MISCONFIGURATION:COMPUTE_ENVIRONMENT_MAX_RESOURCE - All compute environments have a\n maxVcpu setting that is smaller than the job requirements.

    \n
  • \n
  • \n

    \n MISCONFIGURATION:JOB_RESOURCE_REQUIREMENT - All compute environments have no connected instances\n that meet the job requirements.

    \n
  • \n
  • \n

    \n MISCONFIGURATION:SERVICE_ROLE_PERMISSIONS - All compute environments have problems with the\n service role permissions.

    \n
  • \n
" + "smithy.api#documentation": "

A short, human-readable string to provide more details for the current status of the\n job.

\n
    \n
  • \n

    \n CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY - All compute environments have\n insufficient capacity to service the job.

    \n
  • \n
  • \n

    \n MISCONFIGURATION:COMPUTE_ENVIRONMENT_MAX_RESOURCE - All compute environments\n have a maxVcpu setting that is smaller than the job requirements.

    \n
  • \n
  • \n

    \n MISCONFIGURATION:JOB_RESOURCE_REQUIREMENT - All compute environments have no\n connected instances that meet the job requirements.

    \n
  • \n
  • \n

    \n MISCONFIGURATION:SERVICE_ROLE_PERMISSIONS - All compute environments have\n problems with the service role permissions.

    \n
  • \n
" } }, "createdAt": { @@ -5163,7 +5239,7 @@ "container": { "target": "com.amazonaws.batch#ContainerDetail", "traits": { - "smithy.api#documentation": "

An object that represents the details for the container that's associated with the\n job. If the details are for a multiple-container job, this object will be empty.

" + "smithy.api#documentation": "

An object that represents the details for the container that's associated with the job. If\n the details are for a multiple-container job, this object will be empty.

" } }, "nodeDetails": { @@ -5357,7 +5433,7 @@ "target": "com.amazonaws.batch#JobStateTimeLimitActionsState", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The state of the job needed to trigger the action. The only supported value is \"RUNNABLE\".

", + "smithy.api#documentation": "

The state of the job needed to trigger the action. The only supported value is RUNNABLE.

", "smithy.api#required": {} } }, @@ -5373,7 +5449,7 @@ "target": "com.amazonaws.batch#JobStateTimeLimitActionsAction", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The action to take when a job is at the head of the job queue in the specified state for the specified period of\n time. The only supported value is \"CANCEL\", which will cancel the job.

", + "smithy.api#documentation": "

The action to take when a job is at the head of the job queue in the specified state for the specified period of\n time. The only supported value is CANCEL, which will cancel the job.

", "smithy.api#required": {} } } @@ -5680,6 +5756,18 @@ "smithy.api#documentation": "

Linux-specific modifications that are applied to the container, such as details for device\n mappings.

" } }, + "com.amazonaws.batch#ListAttemptEcsTaskDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.batch#AttemptEcsTaskDetails" + } + }, + "com.amazonaws.batch#ListAttemptTaskContainerDetails": { + "type": "list", + "member": { + "target": "com.amazonaws.batch#AttemptTaskContainerDetails" + } + }, "com.amazonaws.batch#ListEcsTaskDetails": { "type": "list", "member": { @@ -6332,7 +6420,7 @@ "instanceTypes": { "target": "com.amazonaws.batch#StringList", "traits": { - "smithy.api#documentation": "

The instance types of the underlying host infrastructure of a multi-node parallel job.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources.

\n

In addition, this list object is currently limited to one element.

\n
" + "smithy.api#documentation": "

The instance types of the underlying host infrastructure of a multi-node parallel\n job.

\n \n

This parameter isn't applicable to jobs that are running on Fargate resources.

\n

In addition, this list object is currently limited to one element.

\n
" } }, "ecsProperties": { @@ -7205,7 +7293,7 @@ "condition": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The dependency condition of the container. The following are the available conditions and\n their behavior:

\n
    \n
  • \n

    \n START - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start.

    \n
  • \n
  • \n

    \n COMPLETE - This condition validates that a dependent container runs to\n completion (exits) before permitting other containers to start. This can be useful for\n nonessential containers that run a script and then exit. This condition can't be set on an\n essential container.

    \n
  • \n
  • \n

    \n SUCCESS - This condition is the same as COMPLETE, but it also\n requires that the container exits with a zero status. This condition can't be set on an\n essential container.

    \n
  • \n
" + "smithy.api#documentation": "

The dependency condition of the container. The following are the available conditions and\n their behavior:

\n
    \n
  • \n

    \n START - This condition emulates the behavior of links and volumes today. It\n validates that a dependent container is started before permitting other containers to start.\n

    \n
  • \n
  • \n

    \n COMPLETE - This condition validates that a dependent container runs to\n completion (exits) before permitting other containers to start. This can be useful for\n nonessential containers that run a script and then exit. This condition can't be set on an\n essential container.

    \n
  • \n
  • \n

    \n SUCCESS - This condition is the same as COMPLETE, but it also\n requires that the container exits with a zero status. This condition can't be set on an\n essential container.

    \n
  • \n
" } } }, @@ -7435,7 +7523,7 @@ "name": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The name of a container. The name can be used as a unique identifier to target your dependsOn and Overrides objects.

" + "smithy.api#documentation": "

The name of a container. The name can be used as a unique identifier to target your\n dependsOn and Overrides objects.

" } }, "privileged": { diff --git a/models/bedrock-agent-runtime.json b/models/bedrock-agent-runtime.json index 6fb4b7447b..f31a18b865 100644 --- a/models/bedrock-agent-runtime.json +++ b/models/bedrock-agent-runtime.json @@ -46,10 +46,16 @@ "traits": { "smithy.api#documentation": "

The parameters in the request body for the Lambda input event.

" } + }, + "function": { + "target": "com.amazonaws.bedrockagentruntime#Function", + "traits": { + "smithy.api#documentation": "

The function in the action group to call.

" + } } }, "traits": { - "smithy.api#documentation": "

Contains information about the action group being invoked.

" + "smithy.api#documentation": "

Contains information about the action group being invoked. For more information about the possible structures, see the InvocationInput tab in OrchestrationTrace in the Amazon Bedrock User Guide.

" } }, "com.amazonaws.bedrockagentruntime#ActionGroupInvocationOutput": { @@ -96,6 +102,16 @@ "smithy.api#pattern": "^[0-9a-zA-Z]+$" } }, + "com.amazonaws.bedrockagentruntime#AgentVersion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + }, + "smithy.api#pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$" + } + }, "com.amazonaws.bedrockagentruntime#AmazonBedrockAgentRunTimeService": { "type": "service", "version": "2023-07-26", @@ -789,12 +805,151 @@ } } }, + "com.amazonaws.bedrockagentruntime#ApiContentMap": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "com.amazonaws.bedrockagentruntime#PropertyParameters" + } + }, + "com.amazonaws.bedrockagentruntime#ApiInvocationInput": { + "type": "structure", + "members": { + "actionGroup": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The action group that the API operation belongs to.

", + "smithy.api#required": {} + } + }, + "httpMethod": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The HTTP method of the API operation.

" + } + }, + "apiPath": { + "target": "com.amazonaws.bedrockagentruntime#ApiPath", + "traits": { + "smithy.api#documentation": "

The path to the API operation.

" + } + }, + "parameters": { + "target": "com.amazonaws.bedrockagentruntime#ApiParameters", + "traits": { + "smithy.api#documentation": "

The parameters to provide for the API request, as the agent elicited from the user.

" + } + }, + "requestBody": { + "target": "com.amazonaws.bedrockagentruntime#ApiRequestBody", + "traits": { + "smithy.api#documentation": "

The request body to provide for the API request, as the agent elicited from the user.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the API operation that the agent predicts should be called.

\n

This data type is used in the following API operations:

\n " + } + }, + "com.amazonaws.bedrockagentruntime#ApiParameter": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the parameter.

" + } + }, + "type": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The data type for the parameter.

" + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The value of the parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a parameter to provide to the API request.

\n

This data type is used in the following API operations:

\n " + } + }, + "com.amazonaws.bedrockagentruntime#ApiParameters": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentruntime#ApiParameter" + } + }, "com.amazonaws.bedrockagentruntime#ApiPath": { "type": "string", "traits": { "smithy.api#sensitive": {} } }, + "com.amazonaws.bedrockagentruntime#ApiRequestBody": { + "type": "structure", + "members": { + "content": { + "target": "com.amazonaws.bedrockagentruntime#ApiContentMap", + "traits": { + "smithy.api#documentation": "

The content of the request body. The key of the object in this field is a media type defining the format of the request body.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The request body to provide for the API request, as the agent elicited from the user.

\n

This data type is used in the following API operations:

\n " + } + }, + "com.amazonaws.bedrockagentruntime#ApiResult": { + "type": "structure", + "members": { + "actionGroup": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The action group that the API operation belongs to.

", + "smithy.api#required": {} + } + }, + "httpMethod": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The HTTP method for the API operation.

" + } + }, + "apiPath": { + "target": "com.amazonaws.bedrockagentruntime#ApiPath", + "traits": { + "smithy.api#documentation": "

The path to the API operation.

" + } + }, + "responseBody": { + "target": "com.amazonaws.bedrockagentruntime#ResponseBody", + "traits": { + "smithy.api#documentation": "

The response body from the API operation. The key of the object is the content type. The response may be returned directly or from the Lambda function.

" + } + }, + "httpStatusCode": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

http status code from API execution response (for example: 200, 400, 500).

" + } + }, + "responseState": { + "target": "com.amazonaws.bedrockagentruntime#ResponseState", + "traits": { + "smithy.api#documentation": "

Controls the final response state returned to end user when API/Function execution failed. When this state is FAILURE, the request would fail with dependency failure exception. When this state is REPROMPT, the API/function response will be sent to model for re-prompt

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the API operation that was called from the action group and the response body that was returned.

\n

This data type is used in the following API operations:

\n " + } + }, "com.amazonaws.bedrockagentruntime#Attribution": { "type": "structure", "members": { @@ -838,6 +993,45 @@ "smithy.api#pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}))$" } }, + "com.amazonaws.bedrockagentruntime#ByteContentBlob": { + "type": "blob", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10485760 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentruntime#ByteContentDoc": { + "type": "structure", + "members": { + "identifier": { + "target": "com.amazonaws.bedrockagentruntime#Identifier", + "traits": { + "smithy.api#documentation": "

The file name of the document contained in the wrapper object.

", + "smithy.api#required": {} + } + }, + "contentType": { + "target": "com.amazonaws.bedrockagentruntime#ContentType", + "traits": { + "smithy.api#documentation": "

The MIME type of the document contained in the wrapper object.

", + "smithy.api#required": {} + } + }, + "data": { + "target": "com.amazonaws.bedrockagentruntime#ByteContentBlob", + "traits": { + "smithy.api#documentation": "

The byte value of the file to upload, encoded as a Base-64 string.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This property contains the document to chat with, along with its attributes.

" + } + }, "com.amazonaws.bedrockagentruntime#Citation": { "type": "structure", "members": { @@ -877,6 +1071,20 @@ "smithy.api#httpError": 409 } }, + "com.amazonaws.bedrockagentruntime#ContentBody": { + "type": "structure", + "members": { + "body": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The body of the API response.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the body of the API response.

\n

This data type is used in the following API operations:

\n
    \n
  • \n

    In the returnControlInvocationResults field of the Retrieve request\n

    \n
  • \n
" + } + }, "com.amazonaws.bedrockagentruntime#ContentMap": { "type": "map", "key": { @@ -886,6 +1094,12 @@ "target": "com.amazonaws.bedrockagentruntime#Parameters" } }, + "com.amazonaws.bedrockagentruntime#ContentType": { + "type": "string", + "traits": { + "smithy.api#pattern": "[a-z]{1,20}/.{1,20}" + } + }, "com.amazonaws.bedrockagentruntime#CreationMode": { "type": "enum", "members": { @@ -922,6 +1136,104 @@ "smithy.api#httpError": 424 } }, + "com.amazonaws.bedrockagentruntime#ExternalSource": { + "type": "structure", + "members": { + "sourceType": { + "target": "com.amazonaws.bedrockagentruntime#ExternalSourceType", + "traits": { + "smithy.api#documentation": "

The source type of the external source wrapper object.

", + "smithy.api#required": {} + } + }, + "s3Location": { + "target": "com.amazonaws.bedrockagentruntime#S3ObjectDoc", + "traits": { + "smithy.api#documentation": "

The S3 location of the external source wrapper object.

" + } + }, + "byteContent": { + "target": "com.amazonaws.bedrockagentruntime#ByteContentDoc", + "traits": { + "smithy.api#documentation": "

The identifier, contentType, and data of the external source wrapper object.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The unique external source of the content contained in the wrapper object.

" + } + }, + "com.amazonaws.bedrockagentruntime#ExternalSourceType": { + "type": "enum", + "members": { + "S3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "S3" + } + }, + "BYTE_CONTENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BYTE_CONTENT" + } + } + } + }, + "com.amazonaws.bedrockagentruntime#ExternalSources": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentruntime#ExternalSource" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, + "com.amazonaws.bedrockagentruntime#ExternalSourcesGenerationConfiguration": { + "type": "structure", + "members": { + "promptTemplate": { + "target": "com.amazonaws.bedrockagentruntime#PromptTemplate", + "traits": { + "smithy.api#documentation": "

Contain the textPromptTemplate string for the external source wrapper object.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the generation configuration of the external source wrapper object.

" + } + }, + "com.amazonaws.bedrockagentruntime#ExternalSourcesRetrieveAndGenerateConfiguration": { + "type": "structure", + "members": { + "modelArn": { + "target": "com.amazonaws.bedrockagentruntime#BedrockModelArn", + "traits": { + "smithy.api#documentation": "

The modelArn used with the external source wrapper object in the retrieveAndGenerate function.

", + "smithy.api#required": {} + } + }, + "sources": { + "target": "com.amazonaws.bedrockagentruntime#ExternalSources", + "traits": { + "smithy.api#documentation": "

The document used with the external source wrapper object in the retrieveAndGenerate function.

", + "smithy.api#required": {} + } + }, + "generationConfiguration": { + "target": "com.amazonaws.bedrockagentruntime#ExternalSourcesGenerationConfiguration", + "traits": { + "smithy.api#documentation": "

The prompt used with the external source wrapper object with the retrieveAndGenerate function.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configurations of the external source wrapper object in the retrieveAndGenerate function.

" + } + }, "com.amazonaws.bedrockagentruntime#FailureReasonString": { "type": "string", "traits": { @@ -1003,6 +1315,104 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.bedrockagentruntime#Function": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentruntime#FunctionInvocationInput": { + "type": "structure", + "members": { + "actionGroup": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The action group that the function belongs to.

", + "smithy.api#required": {} + } + }, + "parameters": { + "target": "com.amazonaws.bedrockagentruntime#FunctionParameters", + "traits": { + "smithy.api#documentation": "

A list of parameters of the function.

" + } + }, + "function": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the function.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the function that the agent predicts should be called.

\n

This data type is used in the following API operations:

\n " + } + }, + "com.amazonaws.bedrockagentruntime#FunctionParameter": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the parameter.

" + } + }, + "type": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The data type of the parameter.

" + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The value of the parameter.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a parameter of the function.

\n

This data type is used in the following API operations:

\n " + } + }, + "com.amazonaws.bedrockagentruntime#FunctionParameters": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentruntime#FunctionParameter" + } + }, + "com.amazonaws.bedrockagentruntime#FunctionResult": { + "type": "structure", + "members": { + "actionGroup": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The action group that the function belongs to.

", + "smithy.api#required": {} + } + }, + "function": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the function that was called.

" + } + }, + "responseBody": { + "target": "com.amazonaws.bedrockagentruntime#ResponseBody", + "traits": { + "smithy.api#documentation": "

The response from the function call using the parameters. The response may be returned directly or from the Lambda function.

" + } + }, + "responseState": { + "target": "com.amazonaws.bedrockagentruntime#ResponseState", + "traits": { + "smithy.api#documentation": "

Controls the final response state returned to end user when API/Function execution failed. When this state is FAILURE, the request would fail with dependency failure exception. When this state is REPROMPT, the API/function response will be sent to model for re-prompt

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the function that was called from the action group and the response that was returned.

\n

This data type is used in the following API operations:

\n " + } + }, "com.amazonaws.bedrockagentruntime#GeneratedResponsePart": { "type": "structure", "members": { @@ -1031,6 +1441,16 @@ "smithy.api#documentation": "

Contains configurations for response generation based on the knowledge base query results.

\n

This data type is used in the following API operations:

\n " } }, + "com.amazonaws.bedrockagentruntime#Identifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#sensitive": {} + } + }, "com.amazonaws.bedrockagentruntime#InferenceConfiguration": { "type": "structure", "members": { @@ -1132,6 +1552,58 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.bedrockagentruntime#InvocationInputMember": { + "type": "union", + "members": { + "apiInvocationInput": { + "target": "com.amazonaws.bedrockagentruntime#ApiInvocationInput", + "traits": { + "smithy.api#documentation": "

Contains information about the API operation that the agent predicts should be called.

" + } + }, + "functionInvocationInput": { + "target": "com.amazonaws.bedrockagentruntime#FunctionInvocationInput", + "traits": { + "smithy.api#documentation": "

Contains information about the function that the agent predicts should be called.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the API operation or function that the agent predicts should be called.

\n

This data type is used in the following API operations:

\n " + } + }, + "com.amazonaws.bedrockagentruntime#InvocationInputs": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentruntime#InvocationInputMember" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.bedrockagentruntime#InvocationResultMember": { + "type": "union", + "members": { + "apiResult": { + "target": "com.amazonaws.bedrockagentruntime#ApiResult", + "traits": { + "smithy.api#documentation": "

The result from the API response from the action group invocation.

" + } + }, + "functionResult": { + "target": "com.amazonaws.bedrockagentruntime#FunctionResult", + "traits": { + "smithy.api#documentation": "

The result from the function from the action group invocation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A result from the action group invocation.

\n

This data type is used in the following API operations:

\n " + } + }, "com.amazonaws.bedrockagentruntime#InvocationType": { "type": "enum", "members": { @@ -1193,7 +1665,7 @@ } ], "traits": { - "smithy.api#documentation": "

Sends a prompt for the agent to process and respond to.

\n \n

The CLI doesn't support InvokeAgent.

\n
\n
    \n
  • \n

    To continue the same conversation with an agent, use the same sessionId value in the request.

    \n
  • \n
  • \n

    To activate trace enablement, turn enableTrace to true. Trace enablement helps you follow the agent's reasoning process that led it to the information it processed, the actions it took, and the final result it yielded. For more information, see Trace enablement.

    \n
  • \n
  • \n

    End a conversation by setting endSession to true.

    \n
  • \n
  • \n

    Include attributes for the session or prompt in the sessionState object.

    \n
  • \n
\n

The response is returned in the bytes field of the chunk object.

\n
    \n
  • \n

    The attribution object contains citations for parts of the response.

    \n
  • \n
  • \n

    If you set enableTrace to true in the request, you can trace the agent's steps and reasoning process that led it to the response.

    \n
  • \n
  • \n

    Errors are also surfaced in the response.

    \n
  • \n
", + "smithy.api#documentation": "

Sends a prompt for the agent to process and respond to. Use return control event type for function calling.

\n \n

The CLI doesn't support InvokeAgent.

\n
\n
    \n
  • \n

    To continue the same conversation with an agent, use the same sessionId value in the request.

    \n
  • \n
  • \n

    To activate trace enablement, turn enableTrace to true. Trace enablement helps you follow the agent's reasoning process that led it to the information it processed, the actions it took, and the final result it yielded. For more information, see Trace enablement.

    \n
  • \n
  • \n

    End a conversation by setting endSession to true.

    \n
  • \n
  • \n

    In the sessionState object, you can include attributes for the session or prompt or parameters returned from the action group.

    \n
  • \n
  • \n

    Use return control event type for function calling.

    \n
  • \n
\n

The response is returned in the bytes field of the chunk object.

\n
    \n
  • \n

    The attribution object contains citations for parts of the response.

    \n
  • \n
  • \n

    If you set enableTrace to true in the request, you can trace the agent's steps and reasoning process that led it to the response.

    \n
  • \n
  • \n

    Errors are also surfaced in the response.

    \n
  • \n
", "smithy.api#http": { "code": 200, "method": "POST", @@ -1249,8 +1721,7 @@ "inputText": { "target": "com.amazonaws.bedrockagentruntime#InputText", "traits": { - "smithy.api#documentation": "

The prompt text to send the agent.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The prompt text to send the agent.

" } } }, @@ -1680,7 +2151,13 @@ } }, "traits": { - "smithy.api#documentation": "

A parameter in the Lambda input event.

" + "smithy.api#documentation": "

A parameter for the API request or function.

" + } + }, + "com.amazonaws.bedrockagentruntime#ParameterList": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentruntime#Parameter" } }, "com.amazonaws.bedrockagentruntime#Parameters": { @@ -1897,6 +2374,20 @@ } } }, + "com.amazonaws.bedrockagentruntime#PropertyParameters": { + "type": "structure", + "members": { + "properties": { + "target": "com.amazonaws.bedrockagentruntime#ParameterList", + "traits": { + "smithy.api#documentation": "

A list of parameters in the request body.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the parameters in the request body.

" + } + }, "com.amazonaws.bedrockagentruntime#Rationale": { "type": "structure", "members": { @@ -1956,7 +2447,7 @@ } }, "traits": { - "smithy.api#documentation": "

The parameters in the request body for the Lambda input event.

" + "smithy.api#documentation": "

The parameters in the API request body.

" } }, "com.amazonaws.bedrockagentruntime#ResourceNotFoundException": { @@ -1967,11 +2458,37 @@ } }, "traits": { - "smithy.api#documentation": "

The specified resource ARN was not found. Check the ARN and try your request again.

", + "smithy.api#documentation": "

The specified resource Amazon Resource Name (ARN) was not found. Check the Amazon Resource Name (ARN) and try your request again.

", "smithy.api#error": "client", "smithy.api#httpError": 404 } }, + "com.amazonaws.bedrockagentruntime#ResponseBody": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "com.amazonaws.bedrockagentruntime#ContentBody" + } + }, + "com.amazonaws.bedrockagentruntime#ResponseState": { + "type": "enum", + "members": { + "FAILURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILURE" + } + }, + "REPROMPT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REPROMPT" + } + } + } + }, "com.amazonaws.bedrockagentruntime#ResponseStream": { "type": "union", "members": { @@ -1984,7 +2501,13 @@ "trace": { "target": "com.amazonaws.bedrockagentruntime#TracePart", "traits": { - "smithy.api#documentation": "

Contains information about the agent and session, alongside the agent's reasoning process and results from calling API actions and querying knowledge bases and metadata about the trace. You can use the trace to understand how the agent arrived at the response it provided the customer. For more information, see Trace events.

" + "smithy.api#documentation": "

Contains information about the agent and session, alongside the agent's reasoning process and results from calling actions and querying knowledge bases and metadata about the trace. You can use the trace to understand how the agent arrived at the response it provided the customer. For more information, see Trace events.

" + } + }, + "returnControl": { + "target": "com.amazonaws.bedrockagentruntime#ReturnControlPayload", + "traits": { + "smithy.api#documentation": "

Contains the parameters and information that the agent elicited from the customer to carry out an action. This information is returned to the system and can be used in your own setup for fulfilling the action.

" } }, "internalServerException": { @@ -2002,7 +2525,7 @@ "resourceNotFoundException": { "target": "com.amazonaws.bedrockagentruntime#ResourceNotFoundException", "traits": { - "smithy.api#documentation": "

The specified resource ARN was not found. Check the ARN and try your request again.

" + "smithy.api#documentation": "

The specified resource Amazon Resource Name (ARN) was not found. Check the Amazon Resource Name (ARN) and try your request again.

" } }, "serviceQuotaExceededException": { @@ -2337,6 +2860,12 @@ "traits": { "smithy.api#documentation": "

Contains details about the resource being queried.

" } + }, + "externalSourcesConfiguration": { + "target": "com.amazonaws.bedrockagentruntime#ExternalSourcesRetrieveAndGenerateConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration used with the external source wrapper object in the retrieveAndGenerate function.

" + } } }, "traits": { @@ -2470,6 +2999,12 @@ "traits": { "smithy.api#enumValue": "KNOWLEDGE_BASE" } + }, + "EXTERNAL_SOURCES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXTERNAL_SOURCES" + } } } }, @@ -2569,6 +3104,64 @@ "target": "com.amazonaws.bedrockagentruntime#RetrievedReference" } }, + "com.amazonaws.bedrockagentruntime#ReturnControlInvocationResults": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentruntime#InvocationResultMember" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.bedrockagentruntime#ReturnControlPayload": { + "type": "structure", + "members": { + "invocationInputs": { + "target": "com.amazonaws.bedrockagentruntime#InvocationInputs", + "traits": { + "smithy.api#documentation": "

A list of objects that contain information about the parameters and inputs that need to be sent into the API operation or function, based on what the agent determines from its session with the user.

" + } + }, + "invocationId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The identifier of the action group invocation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information to return from the action group that the agent has predicted to invoke.

\n

This data type is used in the following API operations:

\n ", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentruntime#S3ObjectDoc": { + "type": "structure", + "members": { + "uri": { + "target": "com.amazonaws.bedrockagentruntime#S3Uri", + "traits": { + "smithy.api#documentation": "

The file location of the S3 wrapper object.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The unique wrapper object of the document from the S3 location.

" + } + }, + "com.amazonaws.bedrockagentruntime#S3Uri": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^s3://[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]/.{1,1024}$" + } + }, "com.amazonaws.bedrockagentruntime#SearchType": { "type": "enum", "members": { @@ -2632,6 +3225,18 @@ "traits": { "smithy.api#documentation": "

Contains attributes that persist across a prompt and the values of those attributes. These attributes replace the $prompt_session_attributes$ placeholder variable in the orchestration prompt template. For more information, see Prompt template placeholder variables.

" } + }, + "returnControlInvocationResults": { + "target": "com.amazonaws.bedrockagentruntime#ReturnControlInvocationResults", + "traits": { + "smithy.api#documentation": "

Contains information about the results from the action group invocation.

" + } + }, + "invocationId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The identifier of the invocation.

" + } } }, "traits": { @@ -2842,6 +3447,12 @@ "smithy.api#documentation": "

The unique identifier of the session with the agent.

" } }, + "agentVersion": { + "target": "com.amazonaws.bedrockagentruntime#AgentVersion", + "traits": { + "smithy.api#documentation": "

The version of the agent.

" + } + }, "trace": { "target": "com.amazonaws.bedrockagentruntime#Trace", "traits": { diff --git a/models/bedrock-agent.json b/models/bedrock-agent.json index 50429f5f99..b1733e1e6b 100644 --- a/models/bedrock-agent.json +++ b/models/bedrock-agent.json @@ -40,12 +40,18 @@ "lambda": { "target": "com.amazonaws.bedrockagent#LambdaArn", "traits": { - "smithy.api#documentation": "

The ARN of the Lambda function containing the business logic that is carried out upon invoking the action.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Lambda function containing the business logic that is carried out upon invoking the action.

" + } + }, + "customControl": { + "target": "com.amazonaws.bedrockagent#CustomControlMethod", + "traits": { + "smithy.api#documentation": "

To return the action group invocation results directly in the InvokeAgent response, specify RETURN_CONTROL.

" } } }, "traits": { - "smithy.api#documentation": "

Contains details about the Lambda function containing the business logic that is carried out upon invoking the action.

" + "smithy.api#documentation": "

Contains details about the Lambda function containing the business logic that is carried out upon invoking the action or the custom control method for handling the information elicited from the user.

" } }, "com.amazonaws.bedrockagent#ActionGroupResource": { @@ -169,7 +175,7 @@ "agentArn": { "target": "com.amazonaws.bedrockagent#AgentArn", "traits": { - "smithy.api#documentation": "

The ARN of the agent.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the agent.

", "smithy.api#required": {} } }, @@ -221,14 +227,14 @@ "agentResourceRoleArn": { "target": "com.amazonaws.bedrockagent#AgentRoleArn", "traits": { - "smithy.api#documentation": "

The ARN of the IAM role with permissions to call API operations on the agent. The ARN must begin with AmazonBedrockExecutionRoleForAgents_.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the agent.

", "smithy.api#required": {} } }, "customerEncryptionKeyArn": { "target": "com.amazonaws.bedrockagent#KmsKeyArn", "traits": { - "smithy.api#documentation": "

The ARN of the KMS key that encrypts the agent.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the KMS key that encrypts the agent.

" } }, "createdAt": { @@ -340,7 +346,7 @@ "actionGroupExecutor": { "target": "com.amazonaws.bedrockagent#ActionGroupExecutor", "traits": { - "smithy.api#documentation": "

The ARN of the Lambda function containing the business logic that is carried out upon invoking the action.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Lambda function containing the business logic that is carried out upon invoking the action or the custom control method for handling the information elicited from the user.

" } }, "apiSchema": { @@ -349,6 +355,12 @@ "smithy.api#documentation": "

Contains either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see Action group OpenAPI schemas.

" } }, + "functionSchema": { + "target": "com.amazonaws.bedrockagent#FunctionSchema", + "traits": { + "smithy.api#documentation": "

Defines functions that each define parameters that the agent needs to invoke from the user. Each function represents an action in an action group.

" + } + }, "actionGroupState": { "target": "com.amazonaws.bedrockagent#ActionGroupState", "traits": { @@ -388,7 +400,7 @@ "agentAliasArn": { "target": "com.amazonaws.bedrockagent#AgentAliasArn", "traits": { - "smithy.api#documentation": "

The ARN of the alias of the agent.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the alias of the agent.

", "smithy.api#required": {} } }, @@ -437,6 +449,12 @@ "smithy.api#documentation": "

The status of the alias of the agent and whether it is ready for use. The following statuses are possible:

\n
    \n
  • \n

    CREATING – The agent alias is being created.

    \n
  • \n
  • \n

    PREPARED – The agent alias is finished being created or updated and is ready to be invoked.

    \n
  • \n
  • \n

    FAILED – The agent alias API operation failed.

    \n
  • \n
  • \n

    UPDATING – The agent alias is being updated.

    \n
  • \n
  • \n

    DELETING – The agent alias is being deleted.

    \n
  • \n
", "smithy.api#required": {} } + }, + "failureReasons": { + "target": "com.amazonaws.bedrockagent#FailureReasons", + "traits": { + "smithy.api#documentation": "

Information on the failure of Provisioned Throughput assigned to an agent alias.

" + } } }, "traits": { @@ -516,8 +534,13 @@ "agentVersion": { "target": "com.amazonaws.bedrockagent#Version", "traits": { - "smithy.api#documentation": "

The version of the agent with which the alias is associated.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The version of the agent with which the alias is associated.

" + } + }, + "provisionedThroughput": { + "target": "com.amazonaws.bedrockagent#ProvisionedModelIdentifier", + "traits": { + "smithy.api#documentation": "

Information on the Provisioned Throughput assigned to an agent alias.

" } } }, @@ -902,7 +925,7 @@ "agentArn": { "target": "com.amazonaws.bedrockagent#AgentArn", "traits": { - "smithy.api#documentation": "

The ARN of the agent that the version belongs to.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the agent that the version belongs to.

", "smithy.api#required": {} } }, @@ -948,14 +971,14 @@ "agentResourceRoleArn": { "target": "com.amazonaws.bedrockagent#AgentRoleArn", "traits": { - "smithy.api#documentation": "

The ARN of the IAM role with permissions to invoke API operations on the agent. The ARN must begin with AmazonBedrockExecutionRoleForAgents_.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the agent.

", "smithy.api#required": {} } }, "customerEncryptionKeyArn": { "target": "com.amazonaws.bedrockagent#KmsKeyArn", "traits": { - "smithy.api#documentation": "

The ARN of the KMS key that encrypts the agent.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the KMS key that encrypts the agent.

" } }, "createdAt": { @@ -1921,6 +1944,16 @@ "smithy.api#pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}))$" } }, + "com.amazonaws.bedrockagent#BucketOwnerAccountId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 12, + "max": 12 + }, + "smithy.api#pattern": "^[0-9]{12}$" + } + }, "com.amazonaws.bedrockagent#ChunkingConfiguration": { "type": "structure", "members": { @@ -2020,7 +2053,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an agent that orchestrates interactions between foundation models, data sources, software applications, user conversations, and APIs to carry out tasks to help customers.

\n
    \n
  • \n

    Specify the following fields for security purposes.

    \n
      \n
    • \n

      \n agentResourceRoleArn – The ARN of the role with permissions to create an agent.

      \n
    • \n
    • \n

      (Optional) customerEncryptionKeyArn – The ARN of a KMS key to encrypt the creation of the agent.

      \n
    • \n
    • \n

      (Optional) idleSessionTTLinSeconds – Specify the number of seconds for which the agent should maintain session information. After this time expires, the subsequent InvokeAgent request begins a new session.

      \n
    • \n
    \n
  • \n
  • \n

    To override the default prompt behavior for agent orchestration and to use advanced prompts, include a promptOverrideConfiguration object. For more information, see Advanced prompts.

    \n
  • \n
  • \n

    If you agent fails to be created, the response returns a list of failureReasons alongside a list of recommendedActions for you to troubleshoot.

    \n
  • \n
", + "smithy.api#documentation": "

Creates an agent that orchestrates interactions between foundation models, data sources, software applications, user conversations, and APIs to carry out tasks to help customers.

\n
    \n
  • \n

    Specify the following fields for security purposes.

    \n
      \n
    • \n

      \n agentResourceRoleArn – The Amazon Resource Name (ARN) of the role with permissions to invoke API operations on an agent.

      \n
    • \n
    • \n

      (Optional) customerEncryptionKeyArn – The Amazon Resource Name (ARN) of a KMS key to encrypt the creation of the agent.

      \n
    • \n
    • \n

      (Optional) idleSessionTTLinSeconds – Specify the number of seconds for which the agent should maintain session information. After this time expires, the subsequent InvokeAgent request begins a new session.

      \n
    • \n
    \n
  • \n
  • \n

    To override the default prompt behavior for agent orchestration and to use advanced prompts, include a promptOverrideConfiguration object. For more information, see Advanced prompts.

    \n
  • \n
  • \n

    If you agent fails to be created, the response returns a list of failureReasons alongside a list of recommendedActions for you to troubleshoot.

    \n
  • \n
", "smithy.api#http": { "code": 202, "method": "PUT", @@ -2124,7 +2157,7 @@ "actionGroupExecutor": { "target": "com.amazonaws.bedrockagent#ActionGroupExecutor", "traits": { - "smithy.api#documentation": "

The ARN of the Lambda function containing the business logic that is carried out upon invoking the action.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Lambda function containing the business logic that is carried out upon invoking the action or the custom control method for handling the information elicited from the user.

" } }, "apiSchema": { @@ -2138,6 +2171,12 @@ "traits": { "smithy.api#documentation": "

Specifies whether the action group is available for the agent to invoke or not when sending an InvokeAgent request.

" } + }, + "functionSchema": { + "target": "com.amazonaws.bedrockagent#FunctionSchema", + "traits": { + "smithy.api#documentation": "

Contains details about the function schema for the action group or the JSON or YAML-formatted payload defining the schema.

" + } } }, "traits": { @@ -2310,14 +2349,13 @@ "agentResourceRoleArn": { "target": "com.amazonaws.bedrockagent#AgentRoleArn", "traits": { - "smithy.api#documentation": "

The ARN of the IAM role with permissions to create the agent. The ARN must begin with AmazonBedrockExecutionRoleForAgents_.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the agent.

" } }, "customerEncryptionKeyArn": { "target": "com.amazonaws.bedrockagent#KmsKeyArn", "traits": { - "smithy.api#documentation": "

The ARN of the KMS key with which to encrypt the agent.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the KMS key with which to encrypt the agent.

" } }, "tags": { @@ -2434,6 +2472,12 @@ "smithy.api#required": {} } }, + "dataDeletionPolicy": { + "target": "com.amazonaws.bedrockagent#DataDeletionPolicy", + "traits": { + "smithy.api#documentation": "

The data deletion policy assigned to the data source.

" + } + }, "serverSideEncryptionConfiguration": { "target": "com.amazonaws.bedrockagent#ServerSideEncryptionConfiguration", "traits": { @@ -2495,7 +2539,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a knowledge base that contains data sources from which information can be queried and used by LLMs. To create a knowledge base, you must first set up your data sources and configure a supported vector store. For more information, see Set up your data for ingestion.

\n \n

If you prefer to let Amazon Bedrock create and manage a vector store for you in Amazon OpenSearch Service, use the console. For more information, see Create a knowledge base.

\n
\n
    \n
  • \n

    Provide the name and an optional description.

    \n
  • \n
  • \n

    Provide the ARN with permissions to create a knowledge base in the roleArn field.

    \n
  • \n
  • \n

    Provide the embedding model to use in the embeddingModelArn field in the knowledgeBaseConfiguration object.

    \n
  • \n
  • \n

    Provide the configuration for your vector store in the storageConfiguration object.

    \n \n
  • \n
", + "smithy.api#documentation": "

Creates a knowledge base that contains data sources from which information can be queried and used by LLMs. To create a knowledge base, you must first set up your data sources and configure a supported vector store. For more information, see Set up your data for ingestion.

\n \n

If you prefer to let Amazon Bedrock create and manage a vector store for you in Amazon OpenSearch Service, use the console. For more information, see Create a knowledge base.

\n
\n
    \n
  • \n

    Provide the name and an optional description.

    \n
  • \n
  • \n

    Provide the Amazon Resource Name (ARN) with permissions to create a knowledge base in the roleArn field.

    \n
  • \n
  • \n

    Provide the embedding model to use in the embeddingModelArn field in the knowledgeBaseConfiguration object.

    \n
  • \n
  • \n

    Provide the configuration for your vector store in the storageConfiguration object.

    \n \n
  • \n
", "smithy.api#http": { "code": 202, "method": "PUT", @@ -2533,7 +2577,7 @@ "roleArn": { "target": "com.amazonaws.bedrockagent#KnowledgeBaseRoleArn", "traits": { - "smithy.api#documentation": "

The ARN of the IAM role with permissions to create the knowledge base.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the knowledge base.

", "smithy.api#required": {} } }, @@ -2594,6 +2638,34 @@ } } }, + "com.amazonaws.bedrockagent#CustomControlMethod": { + "type": "enum", + "members": { + "RETURN_CONTROL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RETURN_CONTROL" + } + } + } + }, + "com.amazonaws.bedrockagent#DataDeletionPolicy": { + "type": "enum", + "members": { + "RETAIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RETAIN" + } + }, + "DELETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE" + } + } + } + }, "com.amazonaws.bedrockagent#DataSource": { "type": "structure", "members": { @@ -2650,6 +2722,12 @@ "smithy.api#documentation": "

Contains details about how to ingest the documents in the data source.

" } }, + "dataDeletionPolicy": { + "target": "com.amazonaws.bedrockagent#DataDeletionPolicy", + "traits": { + "smithy.api#documentation": "

The data deletion policy for a data source.

" + } + }, "createdAt": { "target": "com.amazonaws.bedrockagent#DateTimestamp", "traits": { @@ -2663,6 +2741,12 @@ "smithy.api#documentation": "

The time at which the data source was last updated.

", "smithy.api#required": {} } + }, + "failureReasons": { + "target": "com.amazonaws.bedrockagent#FailureReasons", + "traits": { + "smithy.api#documentation": "

The detailed reasons on the failure to delete a data source.

" + } } }, "traits": { @@ -2724,6 +2808,12 @@ "traits": { "smithy.api#enumValue": "DELETING" } + }, + "DELETE_UNSUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_UNSUCCESSFUL" + } } } }, @@ -3496,6 +3586,62 @@ "smithy.api#documentation": "

Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field.

" } }, + "com.amazonaws.bedrockagent#Function": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bedrockagent#Name", + "traits": { + "smithy.api#documentation": "

A name for the function.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.bedrockagent#FunctionDescription", + "traits": { + "smithy.api#documentation": "

A description of the function and its purpose.

" + } + }, + "parameters": { + "target": "com.amazonaws.bedrockagent#ParameterMap", + "traits": { + "smithy.api#documentation": "

The parameters that the agent elicits from the user to fulfill the function.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines parameters that the agent needs to invoke from the user to complete the function. Corresponds to an action in an action group.

\n

This data type is used in the following API operations:

\n " + } + }, + "com.amazonaws.bedrockagent#FunctionDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1200 + } + } + }, + "com.amazonaws.bedrockagent#FunctionSchema": { + "type": "union", + "members": { + "functions": { + "target": "com.amazonaws.bedrockagent#Functions", + "traits": { + "smithy.api#documentation": "

A list of functions that each define an action in the action group.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines functions that each define parameters that the agent needs to invoke from the user. Each function represents an action in an action group.

\n

This data type is used in the following API operations:

\n " + } + }, + "com.amazonaws.bedrockagent#Functions": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagent#Function" + } + }, "com.amazonaws.bedrockagent#GetAgent": { "type": "operation", "input": { @@ -4229,7 +4375,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains details about an ingestion job, which converts a data source to embeddings for a vector store in knowledge base.

\n

This data type is used in the following API operations:

\n " + "smithy.api#documentation": "

Contains details about an ingestion job, which converts a data source to embeddings for a vector store in knowledge base.

\n

This data type is used in the following API operations:

\n " } }, "com.amazonaws.bedrockagent#IngestionJobFilter": { @@ -4577,7 +4723,7 @@ "knowledgeBaseArn": { "target": "com.amazonaws.bedrockagent#KnowledgeBaseArn", "traits": { - "smithy.api#documentation": "

The ARN of the knowledge base.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the knowledge base.

", "smithy.api#required": {} } }, @@ -4590,7 +4736,7 @@ "roleArn": { "target": "com.amazonaws.bedrockagent#KnowledgeBaseRoleArn", "traits": { - "smithy.api#documentation": "

The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the knowledge base.

", "smithy.api#required": {} } }, @@ -4763,6 +4909,12 @@ "traits": { "smithy.api#enumValue": "FAILED" } + }, + "DELETE_UNSUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_UNSUCCESSFUL" + } } } }, @@ -4792,6 +4944,12 @@ "traits": { "smithy.api#enumValue": "RDS" } + }, + "MONGO_DB_ATLAS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MONGO_DB_ATLAS" + } } } }, @@ -5662,7 +5820,7 @@ "resourceArn": { "target": "com.amazonaws.bedrockagent#TaggableResourcesArn", "traits": { - "smithy.api#documentation": "

The ARN of the resource for which to list tags.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource for which to list tags.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5714,6 +5872,137 @@ "smithy.api#pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$" } }, + "com.amazonaws.bedrockagent#MongoDbAtlasCollectionName": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 63 + }, + "smithy.api#pattern": "^.*$" + } + }, + "com.amazonaws.bedrockagent#MongoDbAtlasConfiguration": { + "type": "structure", + "members": { + "endpoint": { + "target": "com.amazonaws.bedrockagent#MongoDbAtlasEndpoint", + "traits": { + "smithy.api#documentation": "

The endpoint URL of your MongoDB Atlas cluster for your knowledge base.

", + "smithy.api#required": {} + } + }, + "databaseName": { + "target": "com.amazonaws.bedrockagent#MongoDbAtlasDatabaseName", + "traits": { + "smithy.api#documentation": "

The database name in your MongoDB Atlas cluster for your knowledge base.

", + "smithy.api#required": {} + } + }, + "collectionName": { + "target": "com.amazonaws.bedrockagent#MongoDbAtlasCollectionName", + "traits": { + "smithy.api#documentation": "

The collection name of the knowledge base in MongoDB Atlas.

", + "smithy.api#required": {} + } + }, + "vectorIndexName": { + "target": "com.amazonaws.bedrockagent#MongoDbAtlasIndexName", + "traits": { + "smithy.api#documentation": "

The name of the MongoDB Atlas vector search index.

", + "smithy.api#required": {} + } + }, + "credentialsSecretArn": { + "target": "com.amazonaws.bedrockagent#SecretArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secret that you created in Secrets Manager that contains user credentials for your MongoDB Atlas cluster.

", + "smithy.api#required": {} + } + }, + "fieldMapping": { + "target": "com.amazonaws.bedrockagent#MongoDbAtlasFieldMapping", + "traits": { + "smithy.api#documentation": "

Contains the names of the fields to which to map information about the vector store.

", + "smithy.api#required": {} + } + }, + "endpointServiceName": { + "target": "com.amazonaws.bedrockagent#MongoDbAtlasEndpointServiceName", + "traits": { + "smithy.api#documentation": "

The name of the VPC endpoint service in your account that is connected to your MongoDB Atlas cluster.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the storage configuration of the knowledge base in MongoDB Atlas.

" + } + }, + "com.amazonaws.bedrockagent#MongoDbAtlasDatabaseName": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 63 + }, + "smithy.api#pattern": "^.*$" + } + }, + "com.amazonaws.bedrockagent#MongoDbAtlasEndpoint": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 2048 + }, + "smithy.api#pattern": "^.*$" + } + }, + "com.amazonaws.bedrockagent#MongoDbAtlasEndpointServiceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^(?:arn:aws(?:-us-gov|-cn|-iso|-iso-[a-z])*:.+:.*:\\d+:.+/.+$|[a-zA-Z0-9*]+[a-zA-Z0-9._-]*)$" + } + }, + "com.amazonaws.bedrockagent#MongoDbAtlasFieldMapping": { + "type": "structure", + "members": { + "vectorField": { + "target": "com.amazonaws.bedrockagent#FieldName", + "traits": { + "smithy.api#documentation": "

The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources.

", + "smithy.api#required": {} + } + }, + "textField": { + "target": "com.amazonaws.bedrockagent#FieldName", + "traits": { + "smithy.api#documentation": "

The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose.

", + "smithy.api#required": {} + } + }, + "metadataField": { + "target": "com.amazonaws.bedrockagent#FieldName", + "traits": { + "smithy.api#documentation": "

The name of the field in which Amazon Bedrock stores metadata about the vector store.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the names of the fields to which to map information about the vector store.

" + } + }, + "com.amazonaws.bedrockagent#MongoDbAtlasIndexName": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 2048 + }, + "smithy.api#pattern": "^.*$" + } + }, "com.amazonaws.bedrockagent#Name": { "type": "string", "traits": { @@ -5757,7 +6046,7 @@ "collectionArn": { "target": "com.amazonaws.bedrockagent#OpenSearchServerlessCollectionArn", "traits": { - "smithy.api#documentation": "

The ARN of the OpenSearch Service vector store.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the OpenSearch Service vector store.

", "smithy.api#required": {} } }, @@ -5818,6 +6107,51 @@ "smithy.api#pattern": "^.*$" } }, + "com.amazonaws.bedrockagent#ParameterDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 500 + } + } + }, + "com.amazonaws.bedrockagent#ParameterDetail": { + "type": "structure", + "members": { + "description": { + "target": "com.amazonaws.bedrockagent#ParameterDescription", + "traits": { + "smithy.api#documentation": "

A description of the parameter. Helps the foundation model determine how to elicit the parameters from the user.

" + } + }, + "type": { + "target": "com.amazonaws.bedrockagent#Type", + "traits": { + "smithy.api#documentation": "

The data type of the parameter.

", + "smithy.api#required": {} + } + }, + "required": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Whether the parameter is required for the agent to complete the function for action group invocation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about a parameter in a function for an action group.

\n

This data type is used in the following API operations:

\n " + } + }, + "com.amazonaws.bedrockagent#ParameterMap": { + "type": "map", + "key": { + "target": "com.amazonaws.bedrockagent#Name" + }, + "value": { + "target": "com.amazonaws.bedrockagent#ParameterDetail" + } + }, "com.amazonaws.bedrockagent#Payload": { "type": "string", "traits": { @@ -5837,7 +6171,7 @@ "credentialsSecretArn": { "target": "com.amazonaws.bedrockagent#SecretArn", "traits": { - "smithy.api#documentation": "

The ARN of the secret that you created in Secrets Manager that is linked to your Pinecone API key.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secret that you created in Secrets Manager that is linked to your Pinecone API key.

", "smithy.api#required": {} } }, @@ -6117,6 +6451,16 @@ } } }, + "com.amazonaws.bedrockagent#ProvisionedModelIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^((([0-9a-zA-Z][_-]?){1,63})|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:provisioned-model/[a-z0-9]{12}))$" + } + }, "com.amazonaws.bedrockagent#RdsArn": { "type": "string", "traits": { @@ -6129,14 +6473,14 @@ "resourceArn": { "target": "com.amazonaws.bedrockagent#RdsArn", "traits": { - "smithy.api#documentation": "

The ARN of the vector store.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the vector store.

", "smithy.api#required": {} } }, "credentialsSecretArn": { "target": "com.amazonaws.bedrockagent#SecretArn", "traits": { - "smithy.api#documentation": "

The ARN of the secret that you created in Secrets Manager that is linked to your Amazon RDS database.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secret that you created in Secrets Manager that is linked to your Amazon RDS database.

", "smithy.api#required": {} } }, @@ -6259,7 +6603,7 @@ "credentialsSecretArn": { "target": "com.amazonaws.bedrockagent#SecretArn", "traits": { - "smithy.api#documentation": "

The ARN of the secret that you created in Secrets Manager that is linked to your Redis Enterprise Cloud database.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the secret that you created in Secrets Manager that is linked to your Redis Enterprise Cloud database.

", "smithy.api#required": {} } }, @@ -6330,7 +6674,7 @@ } }, "traits": { - "smithy.api#documentation": "

The specified resource ARN was not found. Check the ARN and try your request again.

", + "smithy.api#documentation": "

The specified resource Amazon Resource Name (ARN) was not found. Check the Amazon Resource Name (ARN) and try your request again.

", "smithy.api#error": "client", "smithy.api#httpError": 404 } @@ -6361,7 +6705,7 @@ "bucketArn": { "target": "com.amazonaws.bedrockagent#S3BucketArn", "traits": { - "smithy.api#documentation": "

The ARN of the bucket that contains the data source.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the bucket that contains the data source.

", "smithy.api#required": {} } }, @@ -6370,6 +6714,12 @@ "traits": { "smithy.api#documentation": "

A list of S3 prefixes that define the object containing the data sources. For more information, see Organizing objects using prefixes.

" } + }, + "bucketOwnerAccountId": { + "target": "com.amazonaws.bedrockagent#BucketOwnerAccountId", + "traits": { + "smithy.api#documentation": "

The bucket account owner ID for the S3 bucket.

" + } } }, "traits": { @@ -6439,7 +6789,7 @@ "kmsKeyArn": { "target": "com.amazonaws.bedrockagent#KmsKeyArn", "traits": { - "smithy.api#documentation": "

The ARN of the KMS key used to encrypt the resource.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the KMS key used to encrypt the resource.

" } } }, @@ -6627,6 +6977,12 @@ "traits": { "smithy.api#documentation": "

Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS.

" } + }, + "mongoDbAtlasConfiguration": { + "target": "com.amazonaws.bedrockagent#MongoDbAtlasConfiguration", + "traits": { + "smithy.api#documentation": "

Contains the storage configuration of the knowledge base in MongoDB Atlas.

" + } } }, "traits": { @@ -6698,7 +7054,7 @@ "resourceArn": { "target": "com.amazonaws.bedrockagent#TaggableResourcesArn", "traits": { - "smithy.api#documentation": "

The ARN of the resource to tag.

", + "smithy.api#documentation": "

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

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6805,6 +7161,41 @@ } } }, + "com.amazonaws.bedrockagent#Type": { + "type": "enum", + "members": { + "STRING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "string" + } + }, + "NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "number" + } + }, + "INTEGER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "integer" + } + }, + "BOOLEAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "boolean" + } + }, + "ARRAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "array" + } + } + } + }, "com.amazonaws.bedrockagent#UntagResource": { "type": "operation", "input": { @@ -6846,7 +7237,7 @@ "resourceArn": { "target": "com.amazonaws.bedrockagent#TaggableResourcesArn", "traits": { - "smithy.api#documentation": "

The ARN of the resource from which to remove tags.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource from which to remove tags.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7008,7 +7399,7 @@ "actionGroupExecutor": { "target": "com.amazonaws.bedrockagent#ActionGroupExecutor", "traits": { - "smithy.api#documentation": "

The ARN of the Lambda function containing the business logic that is carried out upon invoking the action.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Lambda function containing the business logic that is carried out upon invoking the action.

" } }, "actionGroupState": { @@ -7022,6 +7413,12 @@ "traits": { "smithy.api#documentation": "

Contains either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see Action group OpenAPI schemas.

" } + }, + "functionSchema": { + "target": "com.amazonaws.bedrockagent#FunctionSchema", + "traits": { + "smithy.api#documentation": "

Contains details about the function schema for the action group or the JSON or YAML-formatted payload defining the schema.

" + } } }, "traits": { @@ -7292,14 +7689,14 @@ "agentResourceRoleArn": { "target": "com.amazonaws.bedrockagent#AgentRoleArn", "traits": { - "smithy.api#documentation": "

The ARN of the IAM role with permissions to update the agent. The ARN must begin with AmazonBedrockExecutionRoleForAgents_.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the agent.

", "smithy.api#required": {} } }, "customerEncryptionKeyArn": { "target": "com.amazonaws.bedrockagent#KmsKeyArn", "traits": { - "smithy.api#documentation": "

The ARN of the KMS key with which to encrypt the agent.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the KMS key with which to encrypt the agent.

" } }, "promptOverrideConfiguration": { @@ -7408,6 +7805,12 @@ "smithy.api#required": {} } }, + "dataDeletionPolicy": { + "target": "com.amazonaws.bedrockagent#DataDeletionPolicy", + "traits": { + "smithy.api#documentation": "

The data deletion policy of the updated data source.

" + } + }, "serverSideEncryptionConfiguration": { "target": "com.amazonaws.bedrockagent#ServerSideEncryptionConfiguration", "traits": { @@ -7508,7 +7911,7 @@ "roleArn": { "target": "com.amazonaws.bedrockagent#KnowledgeBaseRoleArn", "traits": { - "smithy.api#documentation": "

Specifies a different Amazon Resource Name (ARN) of the IAM role with permissions to modify the knowledge base.

", + "smithy.api#documentation": "

Specifies a different Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the knowledge base.

", "smithy.api#required": {} } }, @@ -7613,7 +8016,7 @@ "embeddingModelArn": { "target": "com.amazonaws.bedrockagent#BedrockEmbeddingModelArn", "traits": { - "smithy.api#documentation": "

The ARN of the model used to create vector embeddings for the knowledge base.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the model used to create vector embeddings for the knowledge base.

", "smithy.api#required": {} } } diff --git a/models/bedrock-runtime.json b/models/bedrock-runtime.json index c3f00c8025..e19538049a 100644 --- a/models/bedrock-runtime.json +++ b/models/bedrock-runtime.json @@ -32,7 +32,7 @@ "name": "bedrock" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

Describes the API operations for running inference using Bedrock models.

", + "smithy.api#documentation": "

Describes the API operations for running inference using Amazon Bedrock models.

", "smithy.api#title": "Amazon Bedrock Runtime", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -709,6 +709,21 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.bedrockruntime#GuardrailIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 2048 + }, + "smithy.api#pattern": "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$" + } + }, + "com.amazonaws.bedrockruntime#GuardrailVersion": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(([1-9][0-9]{0,7})|(DRAFT))$" + } + }, "com.amazonaws.bedrockruntime#InferenceResource": { "type": "resource", "operations": [ @@ -771,7 +786,7 @@ } ], "traits": { - "smithy.api#documentation": "

Invokes the specified Bedrock model to run inference using the input provided in the request body. \n You use InvokeModel to run inference for text models, image models, and embedding models.

\n

For more information, see Run inference in the Bedrock User Guide.

\n

For example requests, see Examples (after the Errors section).

", + "smithy.api#documentation": "

Invokes the specified Amazon Bedrock model to run inference using the prompt and inference parameters provided in the request body. \n You use model inference to generate text, images, and embeddings.

\n

For example code, see Invoke model code examples in the Amazon Bedrock User Guide.\n

\n

This operation requires permission for the bedrock:InvokeModel action.

", "smithy.api#http": { "code": 200, "method": "POST", @@ -795,7 +810,7 @@ "body": { "target": "com.amazonaws.bedrockruntime#Body", "traits": { - "smithy.api#documentation": "

Input data in the format specified in the content-type request header. To see the format and content of this field for different models, refer to Inference parameters.

", + "smithy.api#documentation": "

The prompt and inference parameters in the format specified in the contentType in the header. To see the format and content of the request and response bodies for different models, refer to Inference parameters. For more information, see Run inference in the Bedrock User Guide.

", "smithy.api#httpPayload": {}, "smithy.api#required": {} } @@ -810,17 +825,38 @@ "accept": { "target": "com.amazonaws.bedrockruntime#MimeType", "traits": { - "smithy.api#documentation": "

The desired MIME type of the inference body in the response. The default value is\n application/json.

", + "smithy.api#documentation": "

The desired MIME type of the inference body in the response. The default value is application/json.

", "smithy.api#httpHeader": "Accept" } }, "modelId": { "target": "com.amazonaws.bedrockruntime#InvokeModelIdentifier", "traits": { - "smithy.api#documentation": "

Identifier of the model.

", + "smithy.api#documentation": "

The unique identifier of the model to invoke to run inference.

\n

The modelId to provide depends on the type of model that you use:

\n ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "trace": { + "target": "com.amazonaws.bedrockruntime#Trace", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable or disable the Bedrock trace. If enabled, you can see the full Bedrock trace.

", + "smithy.api#httpHeader": "X-Amzn-Bedrock-Trace" + } + }, + "guardrailIdentifier": { + "target": "com.amazonaws.bedrockruntime#GuardrailIdentifier", + "traits": { + "smithy.api#documentation": "

The unique identifier of the guardrail that you want to use. If you don't provide a value, no guardrail is applied\n to the invocation.

\n

An error will be thrown in the following situations.

\n
    \n
  • \n

    You don't provide a guardrail identifier but you specify the amazon-bedrock-guardrailConfig field in the request body.

    \n
  • \n
  • \n

    You enable the guardrail but the contentType isn't application/json.

    \n
  • \n
  • \n

    You provide a guardrail identifier, but guardrailVersion isn't specified.

    \n
  • \n
", + "smithy.api#httpHeader": "X-Amzn-Bedrock-GuardrailIdentifier" + } + }, + "guardrailVersion": { + "target": "com.amazonaws.bedrockruntime#GuardrailVersion", + "traits": { + "smithy.api#documentation": "

The version number for the guardrail. The value can also be DRAFT.

", + "smithy.api#httpHeader": "X-Amzn-Bedrock-GuardrailVersion" + } } }, "traits": { @@ -833,7 +869,7 @@ "body": { "target": "com.amazonaws.bedrockruntime#Body", "traits": { - "smithy.api#documentation": "

Inference response from the model in the format specified in the content-type header field. To see the format and content of this field for different models, refer to Inference parameters.

", + "smithy.api#documentation": "

Inference response from the model in the format specified in the contentType header. To see the format and content of the request and response bodies for different models, refer to Inference parameters.

", "smithy.api#httpPayload": {}, "smithy.api#required": {} } @@ -892,7 +928,7 @@ } ], "traits": { - "smithy.api#documentation": "

Invoke the specified Bedrock model to run inference using the input provided.\n Return the response in a stream.

\n

For more information, see Run inference in the Bedrock User Guide.

\n

For an example request and response, see Examples (after the Errors section).

", + "smithy.api#documentation": "

Invoke the specified Amazon Bedrock model to run inference using the prompt and inference parameters provided in the request body. The response is returned in a stream.

\n

To see if a model supports streaming, call GetFoundationModel\n and check the responseStreamingSupported field in the response.

\n \n

The CLI doesn't support InvokeModelWithResponseStream.

\n
\n

For example code, see Invoke model with streaming code\n example in the Amazon Bedrock User Guide.\n

\n

This operation requires permissions to perform the bedrock:InvokeModelWithResponseStream action.

", "smithy.api#http": { "code": 200, "method": "POST", @@ -906,7 +942,7 @@ "body": { "target": "com.amazonaws.bedrockruntime#Body", "traits": { - "smithy.api#documentation": "

Inference input in the format specified by the \n content-type. To see the format and content of this field for different models, refer to Inference parameters.

", + "smithy.api#documentation": "

The prompt and inference parameters in the format specified in the contentType in the header. To see the format and content of the request and response bodies for different models, refer to Inference parameters. For more information, see Run inference in the Bedrock User Guide.

", "smithy.api#httpPayload": {}, "smithy.api#required": {} } @@ -928,10 +964,31 @@ "modelId": { "target": "com.amazonaws.bedrockruntime#InvokeModelIdentifier", "traits": { - "smithy.api#documentation": "

Id of the model to invoke using the streaming request.

", + "smithy.api#documentation": "

The unique identifier of the model to invoke to run inference.

\n

The modelId to provide depends on the type of model that you use:

\n ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "trace": { + "target": "com.amazonaws.bedrockruntime#Trace", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable or disable the Bedrock trace. If enabled, you can see the full Bedrock trace.

", + "smithy.api#httpHeader": "X-Amzn-Bedrock-Trace" + } + }, + "guardrailIdentifier": { + "target": "com.amazonaws.bedrockruntime#GuardrailIdentifier", + "traits": { + "smithy.api#documentation": "

The unique identifier of the guardrail that you want to use. If you don't provide a value, no guardrail is applied\n to the invocation.

\n

An error is thrown in the following situations.

\n
    \n
  • \n

    You don't provide a guardrail identifier but you specify the amazon-bedrock-guardrailConfig field in the request body.

    \n
  • \n
  • \n

    You enable the guardrail but the contentType isn't application/json.

    \n
  • \n
  • \n

    You provide a guardrail identifier, but guardrailVersion isn't specified.

    \n
  • \n
", + "smithy.api#httpHeader": "X-Amzn-Bedrock-GuardrailIdentifier" + } + }, + "guardrailVersion": { + "target": "com.amazonaws.bedrockruntime#GuardrailVersion", + "traits": { + "smithy.api#documentation": "

The version number for the guardrail. The value can also be DRAFT.

", + "smithy.api#httpHeader": "X-Amzn-Bedrock-GuardrailVersion" + } } }, "traits": { @@ -944,7 +1001,7 @@ "body": { "target": "com.amazonaws.bedrockruntime#ResponseStream", "traits": { - "smithy.api#documentation": "

Inference response from the model in the format specified by Content-Type. To see the format and content of this field for different models, refer to Inference parameters.

", + "smithy.api#documentation": "

Inference response from the model in the format specified by the contentType header. To see the format and content of this field for different models, refer to Inference parameters.

", "smithy.api#httpPayload": {}, "smithy.api#required": {} } @@ -1023,7 +1080,7 @@ } }, "traits": { - "smithy.api#documentation": "

An error occurred while streaming the response.

", + "smithy.api#documentation": "

An error occurred while streaming the response. Retry your request.

", "smithy.api#error": "client", "smithy.api#httpError": 424 } @@ -1094,19 +1151,34 @@ } }, "internalServerException": { - "target": "com.amazonaws.bedrockruntime#InternalServerException" + "target": "com.amazonaws.bedrockruntime#InternalServerException", + "traits": { + "smithy.api#documentation": "

An internal server error occurred. Retry your request.

" + } }, "modelStreamErrorException": { - "target": "com.amazonaws.bedrockruntime#ModelStreamErrorException" + "target": "com.amazonaws.bedrockruntime#ModelStreamErrorException", + "traits": { + "smithy.api#documentation": "

An error occurred while streaming the response. Retry your request.

" + } }, "validationException": { - "target": "com.amazonaws.bedrockruntime#ValidationException" + "target": "com.amazonaws.bedrockruntime#ValidationException", + "traits": { + "smithy.api#documentation": "

Input validation failed. Check your request parameters and retry the request.

" + } }, "throttlingException": { - "target": "com.amazonaws.bedrockruntime#ThrottlingException" + "target": "com.amazonaws.bedrockruntime#ThrottlingException", + "traits": { + "smithy.api#documentation": "

The number or frequency of requests exceeds the limit. Resubmit your request later.

" + } }, "modelTimeoutException": { - "target": "com.amazonaws.bedrockruntime#ModelTimeoutException" + "target": "com.amazonaws.bedrockruntime#ModelTimeoutException", + "traits": { + "smithy.api#documentation": "

The request took too long to process. Processing time exceeded the model timeout length.

" + } } }, "traits": { @@ -1149,6 +1221,23 @@ "smithy.api#httpError": 429 } }, + "com.amazonaws.bedrockruntime#Trace": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, "com.amazonaws.bedrockruntime#ValidationException": { "type": "structure", "members": { diff --git a/models/bedrock.json b/models/bedrock.json index e866df5a4d..ab3ccfd847 100644 --- a/models/bedrock.json +++ b/models/bedrock.json @@ -18,6 +18,12 @@ "type": "service", "version": "2023-04-20", "resources": [ + { + "target": "com.amazonaws.bedrock#EvaluationJobResource" + }, + { + "target": "com.amazonaws.bedrock#GuardrailsResource" + }, { "target": "com.amazonaws.bedrock#LoggingResource" }, @@ -46,7 +52,7 @@ "name": "bedrock" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

Describes the API operations for creating and managing Amazon Bedrock models.

", + "smithy.api#documentation": "

Describes the API operations for creating, managing, fine-turning, and evaluating Amazon Bedrock models.

", "smithy.api#title": "Amazon Bedrock", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -714,6 +720,21 @@ } } }, + "com.amazonaws.bedrock#AutomatedEvaluationConfig": { + "type": "structure", + "members": { + "datasetMetricConfigs": { + "target": "com.amazonaws.bedrock#EvaluationDatasetMetricConfigs", + "traits": { + "smithy.api#documentation": "

Specifies the required elements for an automatic model evaluation job.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Use to specify a automatic model evaluation job. The EvaluationDatasetMetricConfig object is used to specify the prompt datasets, task type, and metric names.

" + } + }, "com.amazonaws.bedrock#BaseModelIdentifier": { "type": "string", "traits": { @@ -765,7 +786,7 @@ "roleArn": { "target": "com.amazonaws.bedrock#RoleArn", "traits": { - "smithy.api#documentation": "

The role ARN.

", + "smithy.api#documentation": "

The role Amazon Resource Name (ARN).

", "smithy.api#required": {} } }, @@ -810,13 +831,13 @@ "smithy.api#httpError": 400 } }, - "com.amazonaws.bedrock#CreateModelCustomizationJob": { + "com.amazonaws.bedrock#CreateEvaluationJob": { "type": "operation", "input": { - "target": "com.amazonaws.bedrock#CreateModelCustomizationJobRequest" + "target": "com.amazonaws.bedrock#CreateEvaluationJobRequest" }, "output": { - "target": "com.amazonaws.bedrock#CreateModelCustomizationJobResponse" + "target": "com.amazonaws.bedrock#CreateEvaluationJobResponse" }, "errors": [ { @@ -837,130 +858,95 @@ { "target": "com.amazonaws.bedrock#ThrottlingException" }, - { - "target": "com.amazonaws.bedrock#TooManyTagsException" - }, { "target": "com.amazonaws.bedrock#ValidationException" } ], "traits": { - "smithy.api#documentation": "

Creates a fine-tuning job to customize a base model.

\n

You specify the base foundation model and the location of the training data.\n After the model-customization job completes successfully, your custom model resource will be ready to use. Training data\n contains input and output text for each record in a JSONL format. Optionally, you can specify validation data\n in the same format as the training data. Amazon Bedrock returns validation loss metrics and output generations \n after the job completes.\n

\n

\n Model-customization jobs are asynchronous and the completion time depends on the base model and the training/validation data size.\n To monitor a job, use the GetModelCustomizationJob operation to retrieve the job status.

\n

For more information, see Custom models in the Bedrock User Guide.

", + "smithy.api#documentation": "

API operation for creating and managing Amazon Bedrock automatic model evaluation jobs and model evaluation jobs that use human workers. To learn more about the requirements for creating a model evaluation job see, Model evaluations.

", "smithy.api#http": { - "code": 201, + "code": 202, "method": "POST", - "uri": "/model-customization-jobs" + "uri": "/evaluation-jobs" }, "smithy.api#idempotent": {} } }, - "com.amazonaws.bedrock#CreateModelCustomizationJobRequest": { + "com.amazonaws.bedrock#CreateEvaluationJobRequest": { "type": "structure", "members": { "jobName": { - "target": "com.amazonaws.bedrock#JobName", + "target": "com.amazonaws.bedrock#EvaluationJobName", "traits": { - "smithy.api#documentation": "

Enter a unique name for the fine-tuning job.

", + "smithy.api#documentation": "

The name of the model evaluation job. Model evaluation job names must unique with your AWS account, and your account's AWS region.

", "smithy.api#required": {} } }, - "customModelName": { - "target": "com.amazonaws.bedrock#CustomModelName", - "traits": { - "smithy.api#documentation": "

Enter a name for the custom model.

", - "smithy.api#required": {} - } - }, - "roleArn": { - "target": "com.amazonaws.bedrock#RoleArn", + "jobDescription": { + "target": "com.amazonaws.bedrock#EvaluationJobDescription", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that Amazon Bedrock can assume to perform tasks on your behalf.\n For example, during model training, Amazon Bedrock needs your permission to read input data from an S3 bucket, write model artifacts to an S3 bucket.\n To pass this role to Amazon Bedrock, the caller of this API must have the iam:PassRole permission.\n

", - "smithy.api#required": {} + "smithy.api#documentation": "

A description of the model evaluation job.

" } }, "clientRequestToken": { "target": "com.amazonaws.bedrock#IdempotencyToken", "traits": { - "smithy.api#documentation": "

Unique token value that you can provide. The GetModelCustomizationJob response includes the same token value.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request,\n Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency.

", "smithy.api#idempotencyToken": {} } }, - "baseModelIdentifier": { - "target": "com.amazonaws.bedrock#BaseModelIdentifier", + "roleArn": { + "target": "com.amazonaws.bedrock#RoleArn", "traits": { - "smithy.api#documentation": "

Name of the base model.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM service role that Amazon Bedrock can assume to perform tasks on your behalf. The service role must have Amazon Bedrock as the service principal, and provide access to any Amazon S3 buckets specified in the EvaluationConfig object. To pass this role to Amazon Bedrock, the caller of this API must have the iam:PassRole permission. To learn more about the required permissions, see Required permissions.

", "smithy.api#required": {} } }, - "customizationType": { - "target": "com.amazonaws.bedrock#CustomizationType", - "traits": { - "smithy.api#documentation": "

The customization type.

" - } - }, - "customModelKmsKeyId": { + "customerEncryptionKeyId": { "target": "com.amazonaws.bedrock#KmsKeyId", "traits": { - "smithy.api#documentation": "

The custom model is encrypted at rest using this key.

" + "smithy.api#documentation": "

Specify your customer managed key ARN that will be used to encrypt your model evaluation job.

" } }, "jobTags": { "target": "com.amazonaws.bedrock#TagList", "traits": { - "smithy.api#documentation": "

Assign tags to the job.

" - } - }, - "customModelTags": { - "target": "com.amazonaws.bedrock#TagList", - "traits": { - "smithy.api#documentation": "

Assign tags to the custom model.

" + "smithy.api#documentation": "

Tags to attach to the model evaluation job.

" } }, - "trainingDataConfig": { - "target": "com.amazonaws.bedrock#TrainingDataConfig", + "evaluationConfig": { + "target": "com.amazonaws.bedrock#EvaluationConfig", "traits": { - "smithy.api#documentation": "

Information about the training dataset.

", + "smithy.api#documentation": "

Specifies whether the model evaluation job is automatic or uses human worker.

", "smithy.api#required": {} } }, - "validationDataConfig": { - "target": "com.amazonaws.bedrock#ValidationDataConfig", - "traits": { - "smithy.api#documentation": "

Information about the validation dataset.

" - } - }, - "outputDataConfig": { - "target": "com.amazonaws.bedrock#OutputDataConfig", + "inferenceConfig": { + "target": "com.amazonaws.bedrock#EvaluationInferenceConfig", "traits": { - "smithy.api#documentation": "

S3 location for the output data.

", + "smithy.api#documentation": "

Specify the models you want to use in your model evaluation job. Automatic model evaluation jobs support a single model, and model evaluation job that use human workers support two models.

", "smithy.api#required": {} } }, - "hyperParameters": { - "target": "com.amazonaws.bedrock#ModelCustomizationHyperParameters", + "outputDataConfig": { + "target": "com.amazonaws.bedrock#EvaluationOutputDataConfig", "traits": { - "smithy.api#documentation": "

Parameters related to tuning the model.

", + "smithy.api#documentation": "

An object that defines where the results of model evaluation job will be saved in Amazon S3.

", "smithy.api#required": {} } - }, - "vpcConfig": { - "target": "com.amazonaws.bedrock#VpcConfig", - "traits": { - "smithy.api#documentation": "

VPC configuration (optional). Configuration parameters for the\n private Virtual Private Cloud (VPC) that contains the resources you are using for this job.

" - } } }, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.bedrock#CreateModelCustomizationJobResponse": { + "com.amazonaws.bedrock#CreateEvaluationJobResponse": { "type": "structure", "members": { "jobArn": { - "target": "com.amazonaws.bedrock#ModelCustomizationJobArn", + "target": "com.amazonaws.bedrock#EvaluationJobArn", "traits": { - "smithy.api#documentation": "

ARN of the fine tuning job

", + "smithy.api#documentation": "

The ARN of the model evaluation job.

", "smithy.api#required": {} } } @@ -969,18 +955,21 @@ "smithy.api#output": {} } }, - "com.amazonaws.bedrock#CreateProvisionedModelThroughput": { + "com.amazonaws.bedrock#CreateGuardrail": { "type": "operation", "input": { - "target": "com.amazonaws.bedrock#CreateProvisionedModelThroughputRequest" + "target": "com.amazonaws.bedrock#CreateGuardrailRequest" }, "output": { - "target": "com.amazonaws.bedrock#CreateProvisionedModelThroughputResponse" + "target": "com.amazonaws.bedrock#CreateGuardrailResponse" }, "errors": [ { "target": "com.amazonaws.bedrock#AccessDeniedException" }, + { + "target": "com.amazonaws.bedrock#ConflictException" + }, { "target": "com.amazonaws.bedrock#InternalServerException" }, @@ -1001,177 +990,135 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a provisioned throughput with dedicated capacity for a foundation model or a fine-tuned model.

\n

For more information, see Provisioned throughput in the Bedrock User Guide.

", + "smithy.api#documentation": "

Creates a guardrail to block topics and to filter out harmful content.

\n
    \n
  • \n

    Specify a name and optional description.

    \n
  • \n
  • \n

    Specify messages for when the guardrail successfully blocks a prompt or a model response in the blockedInputMessaging and blockedOutputsMessaging fields.

    \n
  • \n
  • \n

    Specify topics for the guardrail to deny in the topicPolicyConfig object. Each GuardrailTopicConfig object in the topicsConfig list pertains to one topic.

    \n
      \n
    • \n

      Give a name and description so that the guardrail can properly identify the topic.

      \n
    • \n
    • \n

      Specify DENY in the type field.

      \n
    • \n
    • \n

      (Optional) Provide up to five prompts that you would categorize as belonging to the topic in the examples list.

      \n
    • \n
    \n
  • \n
  • \n

    Specify filter strengths for the harmful categories defined in Amazon Bedrock in the contentPolicyConfig object. Each GuardrailContentFilterConfig object in the filtersConfig list pertains to a harmful category. For more information, see Content filters. For more information about the fields in a content filter, see GuardrailContentFilterConfig.

    \n
      \n
    • \n

      Specify the category in the type field.

      \n
    • \n
    • \n

      Specify the strength of the filter for prompts in the inputStrength field and for model responses in the strength field of the GuardrailContentFilterConfig.

      \n
    • \n
    \n
  • \n
  • \n

    (Optional) For security, include the ARN of a KMS key in the kmsKeyId field.

    \n
  • \n
  • \n

    (Optional) Attach any tags to the guardrail in the tags object. For more information, see Tag resources.

    \n
  • \n
", "smithy.api#http": { - "code": 201, + "code": 202, "method": "POST", - "uri": "/provisioned-model-throughput" - }, - "smithy.api#idempotent": {} + "uri": "/guardrails" + } } }, - "com.amazonaws.bedrock#CreateProvisionedModelThroughputRequest": { + "com.amazonaws.bedrock#CreateGuardrailRequest": { "type": "structure", "members": { - "clientRequestToken": { - "target": "com.amazonaws.bedrock#IdempotencyToken", + "name": { + "target": "com.amazonaws.bedrock#GuardrailName", "traits": { - "smithy.api#documentation": "

Unique token value that you can provide. If this token matches a previous request,\n Amazon Bedrock ignores the request, but does not return an error.

", - "smithy.api#idempotencyToken": {} + "smithy.api#documentation": "

The name to give the guardrail.

", + "smithy.api#required": {} } }, - "modelUnits": { - "target": "com.amazonaws.bedrock#PositiveInteger", + "description": { + "target": "com.amazonaws.bedrock#GuardrailDescription", "traits": { - "smithy.api#documentation": "

Number of model units to allocate.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A description of the guardrail.

" } }, - "provisionedModelName": { - "target": "com.amazonaws.bedrock#ProvisionedModelName", + "topicPolicyConfig": { + "target": "com.amazonaws.bedrock#GuardrailTopicPolicyConfig", + "traits": { + "smithy.api#documentation": "

The topic policies to configure for the guardrail.

" + } + }, + "contentPolicyConfig": { + "target": "com.amazonaws.bedrock#GuardrailContentPolicyConfig", + "traits": { + "smithy.api#documentation": "

The content filter policies to configure for the guardrail.

" + } + }, + "wordPolicyConfig": { + "target": "com.amazonaws.bedrock#GuardrailWordPolicyConfig", + "traits": { + "smithy.api#documentation": "

The word policy you configure for the guardrail.

" + } + }, + "sensitiveInformationPolicyConfig": { + "target": "com.amazonaws.bedrock#GuardrailSensitiveInformationPolicyConfig", + "traits": { + "smithy.api#documentation": "

The sensitive information policy to configure for the guardrail.

" + } + }, + "blockedInputMessaging": { + "target": "com.amazonaws.bedrock#GuardrailBlockedMessaging", "traits": { - "smithy.api#documentation": "

Unique name for this provisioned throughput.

", + "smithy.api#documentation": "

The message to return when the guardrail blocks a prompt.

", "smithy.api#required": {} } }, - "modelId": { - "target": "com.amazonaws.bedrock#ModelIdentifier", + "blockedOutputsMessaging": { + "target": "com.amazonaws.bedrock#GuardrailBlockedMessaging", "traits": { - "smithy.api#documentation": "

Name or ARN of the model to associate with this provisioned throughput.

", + "smithy.api#documentation": "

The message to return when the guardrail blocks a model response.

", "smithy.api#required": {} } }, - "commitmentDuration": { - "target": "com.amazonaws.bedrock#CommitmentDuration", + "kmsKeyId": { + "target": "com.amazonaws.bedrock#KmsKeyId", "traits": { - "smithy.api#documentation": "

Commitment duration requested for the provisioned throughput.

" + "smithy.api#documentation": "

The ARN of the KMS key that you use to encrypt the guardrail.

" } }, "tags": { "target": "com.amazonaws.bedrock#TagList", "traits": { - "smithy.api#documentation": "

Tags to associate with this provisioned throughput.

" + "smithy.api#documentation": "

The tags that you want to attach to the guardrail.

" } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.bedrock#CreateProvisionedModelThroughputResponse": { - "type": "structure", - "members": { - "provisionedModelArn": { - "target": "com.amazonaws.bedrock#ProvisionedModelArn", + }, + "clientRequestToken": { + "target": "com.amazonaws.bedrock#IdempotencyToken", "traits": { - "smithy.api#documentation": "

The ARN for this provisioned throughput.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure that the API request \n completes no more than once. If this token matches a previous request, \n Amazon Bedrock ignores the request, but does not return an error. \n For more information, see Ensuring \n idempotency in the Amazon S3 User Guide.

", + "smithy.api#idempotencyToken": {} } } }, "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.bedrock#CustomModelArn": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 20, - "max": 1011 - }, - "smithy.api#pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}/[a-z0-9]{12}$" - } - }, - "com.amazonaws.bedrock#CustomModelName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 63 - }, - "smithy.api#pattern": "^([0-9a-zA-Z][_-]?)+$" + "smithy.api#input": {} } }, - "com.amazonaws.bedrock#CustomModelSummary": { + "com.amazonaws.bedrock#CreateGuardrailResponse": { "type": "structure", "members": { - "modelArn": { - "target": "com.amazonaws.bedrock#CustomModelArn", + "guardrailId": { + "target": "com.amazonaws.bedrock#GuardrailId", "traits": { - "smithy.api#documentation": "

The ARN of the custom model.

", + "smithy.api#documentation": "

The unique identifier of the guardrail that was created.

", "smithy.api#required": {} } }, - "modelName": { - "target": "com.amazonaws.bedrock#CustomModelName", - "traits": { - "smithy.api#documentation": "

The name of the custom model.

", - "smithy.api#required": {} - } - }, - "creationTime": { - "target": "com.amazonaws.bedrock#Timestamp", + "guardrailArn": { + "target": "com.amazonaws.bedrock#GuardrailArn", "traits": { - "smithy.api#documentation": "

Creation time of the model.

", + "smithy.api#documentation": "

The ARN of the guardrail that was created.

", "smithy.api#required": {} } }, - "baseModelArn": { - "target": "com.amazonaws.bedrock#ModelArn", + "version": { + "target": "com.amazonaws.bedrock#GuardrailDraftVersion", "traits": { - "smithy.api#documentation": "

The base model ARN.

", + "smithy.api#documentation": "

The version of the guardrail that was created. This value should be 1.

", "smithy.api#required": {} } }, - "baseModelName": { - "target": "com.amazonaws.bedrock#ModelName", + "createdAt": { + "target": "com.amazonaws.bedrock#Timestamp", "traits": { - "smithy.api#documentation": "

The base model name.

", + "smithy.api#documentation": "

The time at which the guardrail was created.

", "smithy.api#required": {} } - }, - "customizationType": { - "target": "com.amazonaws.bedrock#CustomizationType", - "traits": { - "smithy.api#documentation": "

Specifies whether to carry out continued pre-training of a model or whether to fine-tune it. For more information, see Custom models.

" - } } }, "traits": { - "smithy.api#documentation": "

Summary information for a custom model.

" - } - }, - "com.amazonaws.bedrock#CustomModelSummaryList": { - "type": "list", - "member": { - "target": "com.amazonaws.bedrock#CustomModelSummary" - } - }, - "com.amazonaws.bedrock#CustomizationType": { - "type": "enum", - "members": { - "FINE_TUNING": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "FINE_TUNING" - } - }, - "CONTINUED_PRE_TRAINING": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CONTINUED_PRE_TRAINING" - } - } + "smithy.api#output": {} } }, - "com.amazonaws.bedrock#DeleteCustomModel": { + "com.amazonaws.bedrock#CreateGuardrailVersion": { "type": "operation", "input": { - "target": "com.amazonaws.bedrock#DeleteCustomModelRequest" + "target": "com.amazonaws.bedrock#CreateGuardrailVersionRequest" }, "output": { - "target": "com.amazonaws.bedrock#DeleteCustomModelResponse" + "target": "com.amazonaws.bedrock#CreateGuardrailVersionResponse" }, "errors": [ { @@ -1186,6 +1133,9 @@ { "target": "com.amazonaws.bedrock#ResourceNotFoundException" }, + { + "target": "com.amazonaws.bedrock#ServiceQuotaExceededException" + }, { "target": "com.amazonaws.bedrock#ThrottlingException" }, @@ -1194,381 +1144,435 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a custom model that you created earlier. For more information, see Custom models in the Bedrock User Guide.

", + "smithy.api#documentation": "

Creates a version of the guardrail. Use this API to create a snapshot of the \n guardrail when you are satisfied with a configuration, or to compare the configuration with another version.

", "smithy.api#http": { - "code": 200, - "method": "DELETE", - "uri": "/custom-models/{modelIdentifier}" - }, - "smithy.api#idempotent": {} + "code": 202, + "method": "POST", + "uri": "/guardrails/{guardrailIdentifier}" + } } }, - "com.amazonaws.bedrock#DeleteCustomModelRequest": { + "com.amazonaws.bedrock#CreateGuardrailVersionRequest": { "type": "structure", "members": { - "modelIdentifier": { - "target": "com.amazonaws.bedrock#ModelIdentifier", + "guardrailIdentifier": { + "target": "com.amazonaws.bedrock#GuardrailIdentifier", "traits": { - "smithy.api#documentation": "

Name of the model to delete.

", + "smithy.api#documentation": "

The unique identifier of the guardrail.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "description": { + "target": "com.amazonaws.bedrock#GuardrailDescription", + "traits": { + "smithy.api#documentation": "

A description of the guardrail version.

" + } + }, + "clientRequestToken": { + "target": "com.amazonaws.bedrock#IdempotencyToken", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure that the API request \n completes no more than once. If this token matches a previous request, \n Amazon Bedrock ignores the request, but does not return an error. \n For more information, see Ensuring \n idempotency in the Amazon S3 User Guide.

", + "smithy.api#idempotencyToken": {} + } } }, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.bedrock#DeleteCustomModelResponse": { + "com.amazonaws.bedrock#CreateGuardrailVersionResponse": { "type": "structure", - "members": {}, + "members": { + "guardrailId": { + "target": "com.amazonaws.bedrock#GuardrailId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the guardrail.

", + "smithy.api#required": {} + } + }, + "version": { + "target": "com.amazonaws.bedrock#GuardrailNumericalVersion", + "traits": { + "smithy.api#documentation": "

The number of the version of the guardrail.

", + "smithy.api#required": {} + } + } + }, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.bedrock#DeleteModelInvocationLoggingConfiguration": { + "com.amazonaws.bedrock#CreateModelCustomizationJob": { "type": "operation", "input": { - "target": "com.amazonaws.bedrock#DeleteModelInvocationLoggingConfigurationRequest" + "target": "com.amazonaws.bedrock#CreateModelCustomizationJobRequest" }, "output": { - "target": "com.amazonaws.bedrock#DeleteModelInvocationLoggingConfigurationResponse" + "target": "com.amazonaws.bedrock#CreateModelCustomizationJobResponse" }, "errors": [ { "target": "com.amazonaws.bedrock#AccessDeniedException" }, + { + "target": "com.amazonaws.bedrock#ConflictException" + }, { "target": "com.amazonaws.bedrock#InternalServerException" }, { - "target": "com.amazonaws.bedrock#ThrottlingException" - } - ], - "traits": { - "smithy.api#documentation": "

Delete the invocation logging.

", - "smithy.api#http": { - "code": 200, - "method": "DELETE", - "uri": "/logging/modelinvocations" - }, - "smithy.api#idempotent": {} - } - }, - "com.amazonaws.bedrock#DeleteModelInvocationLoggingConfigurationRequest": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.bedrock#DeleteModelInvocationLoggingConfigurationResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.bedrock#DeleteProvisionedModelThroughput": { - "type": "operation", - "input": { - "target": "com.amazonaws.bedrock#DeleteProvisionedModelThroughputRequest" - }, - "output": { - "target": "com.amazonaws.bedrock#DeleteProvisionedModelThroughputResponse" - }, - "errors": [ - { - "target": "com.amazonaws.bedrock#AccessDeniedException" - }, - { - "target": "com.amazonaws.bedrock#ConflictException" + "target": "com.amazonaws.bedrock#ResourceNotFoundException" }, { - "target": "com.amazonaws.bedrock#InternalServerException" + "target": "com.amazonaws.bedrock#ServiceQuotaExceededException" }, { - "target": "com.amazonaws.bedrock#ResourceNotFoundException" + "target": "com.amazonaws.bedrock#ThrottlingException" }, { - "target": "com.amazonaws.bedrock#ThrottlingException" + "target": "com.amazonaws.bedrock#TooManyTagsException" }, { "target": "com.amazonaws.bedrock#ValidationException" } ], "traits": { - "smithy.api#documentation": "

Deletes a provisioned throughput. For more information, see Provisioned throughput in the Bedrock User Guide.

", + "smithy.api#documentation": "

Creates a fine-tuning job to customize a base model.

\n

You specify the base foundation model and the location of the training data.\n After the model-customization job completes successfully, your custom model resource will be ready to use. Amazon Bedrock returns validation loss metrics and output generations after the job completes.\n

\n

For information on the format of training and validation data, see Prepare the datasets.

\n

\n Model-customization jobs are asynchronous and the completion time depends on the base model and the training/validation data size.\n To monitor a job, use the GetModelCustomizationJob operation to retrieve the job status.

\n

For more information, see Custom models in the Amazon Bedrock User Guide.

", "smithy.api#http": { - "code": 200, - "method": "DELETE", - "uri": "/provisioned-model-throughput/{provisionedModelId}" + "code": 201, + "method": "POST", + "uri": "/model-customization-jobs" }, "smithy.api#idempotent": {} } }, - "com.amazonaws.bedrock#DeleteProvisionedModelThroughputRequest": { + "com.amazonaws.bedrock#CreateModelCustomizationJobRequest": { "type": "structure", "members": { - "provisionedModelId": { - "target": "com.amazonaws.bedrock#ProvisionedModelId", + "jobName": { + "target": "com.amazonaws.bedrock#JobName", "traits": { - "smithy.api#documentation": "

The ARN or name of the provisioned throughput.

", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "

A name for the fine-tuning job.

", "smithy.api#required": {} } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.bedrock#DeleteProvisionedModelThroughputResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.bedrock#ErrorMessage": { - "type": "string", - "traits": { - "smithy.api#length": { - "max": 2048 - } - } - }, - "com.amazonaws.bedrock#FineTuningJobStatus": { - "type": "enum", - "members": { - "IN_PROGRESS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "InProgress" - } }, - "COMPLETED": { - "target": "smithy.api#Unit", + "customModelName": { + "target": "com.amazonaws.bedrock#CustomModelName", "traits": { - "smithy.api#enumValue": "Completed" + "smithy.api#documentation": "

A name for the resulting custom model.

", + "smithy.api#required": {} } }, - "FAILED": { - "target": "smithy.api#Unit", + "roleArn": { + "target": "com.amazonaws.bedrock#RoleArn", "traits": { - "smithy.api#enumValue": "Failed" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM service role that Amazon Bedrock can assume to perform tasks on your behalf.\n For example, during model training, Amazon Bedrock needs your permission to read input data from an S3 bucket, write model artifacts to an S3 bucket.\n To pass this role to Amazon Bedrock, the caller of this API must have the iam:PassRole permission.\n

", + "smithy.api#required": {} } }, - "STOPPING": { - "target": "smithy.api#Unit", + "clientRequestToken": { + "target": "com.amazonaws.bedrock#IdempotencyToken", "traits": { - "smithy.api#enumValue": "Stopping" + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request,\n Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency.

", + "smithy.api#idempotencyToken": {} } }, - "STOPPED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "Stopped" - } - } - } - }, - "com.amazonaws.bedrock#FoundationModelArn": { - "type": "string", - "traits": { - "smithy.api#pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/[a-z0-9-]{1,63}[.]{1}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}$" - } - }, - "com.amazonaws.bedrock#FoundationModelDetails": { - "type": "structure", - "members": { - "modelArn": { - "target": "com.amazonaws.bedrock#FoundationModelArn", + "baseModelIdentifier": { + "target": "com.amazonaws.bedrock#BaseModelIdentifier", "traits": { - "smithy.api#documentation": "

The model ARN.

", + "smithy.api#documentation": "

Name of the base model.

", "smithy.api#required": {} } }, - "modelId": { - "target": "com.amazonaws.bedrock#BedrockModelId", + "customizationType": { + "target": "com.amazonaws.bedrock#CustomizationType", "traits": { - "smithy.api#documentation": "

The model identifier.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The customization type.

" } }, - "modelName": { - "target": "com.amazonaws.bedrock#BrandedName", + "customModelKmsKeyId": { + "target": "com.amazonaws.bedrock#KmsKeyId", "traits": { - "smithy.api#documentation": "

The model name.

" + "smithy.api#documentation": "

The custom model is encrypted at rest using this key.

" } }, - "providerName": { - "target": "com.amazonaws.bedrock#BrandedName", + "jobTags": { + "target": "com.amazonaws.bedrock#TagList", "traits": { - "smithy.api#documentation": "

he model's provider name.

" + "smithy.api#documentation": "

Tags to attach to the job.

" } }, - "inputModalities": { - "target": "com.amazonaws.bedrock#ModelModalityList", + "customModelTags": { + "target": "com.amazonaws.bedrock#TagList", "traits": { - "smithy.api#documentation": "

The input modalities that the model supports.

" + "smithy.api#documentation": "

Tags to attach to the resulting custom model.

" } }, - "outputModalities": { - "target": "com.amazonaws.bedrock#ModelModalityList", + "trainingDataConfig": { + "target": "com.amazonaws.bedrock#TrainingDataConfig", "traits": { - "smithy.api#documentation": "

The output modalities that the model supports.

" + "smithy.api#documentation": "

Information about the training dataset.

", + "smithy.api#required": {} } }, - "responseStreamingSupported": { - "target": "smithy.api#Boolean", + "validationDataConfig": { + "target": "com.amazonaws.bedrock#ValidationDataConfig", "traits": { - "smithy.api#documentation": "

Indicates whether the model supports streaming.

" + "smithy.api#documentation": "

Information about the validation dataset.

" } }, - "customizationsSupported": { - "target": "com.amazonaws.bedrock#ModelCustomizationList", + "outputDataConfig": { + "target": "com.amazonaws.bedrock#OutputDataConfig", "traits": { - "smithy.api#documentation": "

The customization that the model supports.

" + "smithy.api#documentation": "

S3 location for the output data.

", + "smithy.api#required": {} } }, - "inferenceTypesSupported": { - "target": "com.amazonaws.bedrock#InferenceTypeList", + "hyperParameters": { + "target": "com.amazonaws.bedrock#ModelCustomizationHyperParameters", "traits": { - "smithy.api#documentation": "

The inference types that the model supports.

" + "smithy.api#documentation": "

Parameters related to tuning the model. For details on the format for different models, see Custom model hyperparameters.

", + "smithy.api#required": {} } }, - "modelLifecycle": { - "target": "com.amazonaws.bedrock#FoundationModelLifecycle", + "vpcConfig": { + "target": "com.amazonaws.bedrock#VpcConfig", "traits": { - "smithy.api#documentation": "

Contains details about whether a model version is available or deprecated

" + "smithy.api#documentation": "

VPC configuration (optional). Configuration parameters for the\n private Virtual Private Cloud (VPC) that contains the resources you are using for this job.

" } } }, "traits": { - "smithy.api#documentation": "

Information about a foundation model.

" + "smithy.api#input": {} } }, - "com.amazonaws.bedrock#FoundationModelLifecycle": { + "com.amazonaws.bedrock#CreateModelCustomizationJobResponse": { "type": "structure", "members": { - "status": { - "target": "com.amazonaws.bedrock#FoundationModelLifecycleStatus", + "jobArn": { + "target": "com.amazonaws.bedrock#ModelCustomizationJobArn", "traits": { - "smithy.api#documentation": "

Specifies whether a model version is available (ACTIVE) or deprecated (LEGACY.

", + "smithy.api#documentation": "

Amazon Resource Name (ARN) of the fine tuning job

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Details about whether a model version is available or deprecated.

" + "smithy.api#output": {} } }, - "com.amazonaws.bedrock#FoundationModelLifecycleStatus": { - "type": "enum", - "members": { - "ACTIVE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ACTIVE" - } + "com.amazonaws.bedrock#CreateProvisionedModelThroughput": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#CreateProvisionedModelThroughputRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#CreateProvisionedModelThroughputResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" }, - "LEGACY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "LEGACY" - } + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#TooManyTagsException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" } + ], + "traits": { + "smithy.api#documentation": "

Creates dedicated throughput for a base or custom model with the model units and for the duration that you specify. For pricing details, see Amazon Bedrock Pricing. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide.

", + "smithy.api#http": { + "code": 201, + "method": "POST", + "uri": "/provisioned-model-throughput" + }, + "smithy.api#idempotent": {} } }, - "com.amazonaws.bedrock#FoundationModelSummary": { + "com.amazonaws.bedrock#CreateProvisionedModelThroughputRequest": { "type": "structure", "members": { - "modelArn": { - "target": "com.amazonaws.bedrock#FoundationModelArn", + "clientRequestToken": { + "target": "com.amazonaws.bedrock#IdempotencyToken", "traits": { - "smithy.api#documentation": "

The ARN of the foundation model.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request,\n Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency in the Amazon S3 User Guide.

", + "smithy.api#idempotencyToken": {} } }, - "modelId": { - "target": "com.amazonaws.bedrock#BedrockModelId", + "modelUnits": { + "target": "com.amazonaws.bedrock#PositiveInteger", "traits": { - "smithy.api#documentation": "

The model Id of the foundation model.

", + "smithy.api#documentation": "

Number of model units to allocate. A model unit delivers a specific throughput level for the specified model. The throughput level of a model unit specifies the total number of input and output tokens that it can process and generate within a span of one minute. By default, your account has no model units for purchasing Provisioned Throughputs with commitment. You must first visit the Amazon Web Services support center to request MUs.

\n

For model unit quotas, see Provisioned Throughput quotas in the Amazon Bedrock User Guide.

\n

For more information about what an MU specifies, contact your Amazon Web Services account manager.

", "smithy.api#required": {} } }, - "modelName": { - "target": "com.amazonaws.bedrock#BrandedName", + "provisionedModelName": { + "target": "com.amazonaws.bedrock#ProvisionedModelName", "traits": { - "smithy.api#documentation": "

The name of the model.

" + "smithy.api#documentation": "

The name for this Provisioned Throughput.

", + "smithy.api#required": {} } }, - "providerName": { - "target": "com.amazonaws.bedrock#BrandedName", + "modelId": { + "target": "com.amazonaws.bedrock#ModelIdentifier", "traits": { - "smithy.api#documentation": "

The model's provider name.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) or name of the model to associate with this Provisioned Throughput. For a list of models for which you can purchase Provisioned Throughput, see Amazon Bedrock model IDs for purchasing Provisioned Throughput in the Amazon Bedrock User Guide.

", + "smithy.api#required": {} } }, - "inputModalities": { - "target": "com.amazonaws.bedrock#ModelModalityList", + "commitmentDuration": { + "target": "com.amazonaws.bedrock#CommitmentDuration", "traits": { - "smithy.api#documentation": "

The input modalities that the model supports.

" + "smithy.api#documentation": "

The commitment duration requested for the Provisioned Throughput. Billing occurs hourly and is discounted for longer commitment terms. To request a no-commit Provisioned Throughput, omit this field.

\n

Custom models support all levels of commitment. To see which base models support no commitment, see Supported regions and models for Provisioned Throughput in the Amazon Bedrock User Guide

" } }, - "outputModalities": { - "target": "com.amazonaws.bedrock#ModelModalityList", + "tags": { + "target": "com.amazonaws.bedrock#TagList", "traits": { - "smithy.api#documentation": "

The output modalities that the model supports.

" + "smithy.api#documentation": "

Tags to associate with this Provisioned Throughput.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#CreateProvisionedModelThroughputResponse": { + "type": "structure", + "members": { + "provisionedModelArn": { + "target": "com.amazonaws.bedrock#ProvisionedModelArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for this Provisioned Throughput.

", + "smithy.api#required": {} } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrock#CustomModelArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 1011 }, - "responseStreamingSupported": { - "target": "smithy.api#Boolean", + "smithy.api#pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}/[a-z0-9]{12}$" + } + }, + "com.amazonaws.bedrock#CustomModelName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^([0-9a-zA-Z][_-]?)+$" + } + }, + "com.amazonaws.bedrock#CustomModelSummary": { + "type": "structure", + "members": { + "modelArn": { + "target": "com.amazonaws.bedrock#CustomModelArn", "traits": { - "smithy.api#documentation": "

Indicates whether the model supports streaming.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the custom model.

", + "smithy.api#required": {} } }, - "customizationsSupported": { - "target": "com.amazonaws.bedrock#ModelCustomizationList", + "modelName": { + "target": "com.amazonaws.bedrock#CustomModelName", "traits": { - "smithy.api#documentation": "

Whether the model supports fine-tuning or continual pre-training.

" + "smithy.api#documentation": "

The name of the custom model.

", + "smithy.api#required": {} } }, - "inferenceTypesSupported": { - "target": "com.amazonaws.bedrock#InferenceTypeList", + "creationTime": { + "target": "com.amazonaws.bedrock#Timestamp", "traits": { - "smithy.api#documentation": "

The inference types that the model supports.

" + "smithy.api#documentation": "

Creation time of the model.

", + "smithy.api#required": {} } }, - "modelLifecycle": { - "target": "com.amazonaws.bedrock#FoundationModelLifecycle", + "baseModelArn": { + "target": "com.amazonaws.bedrock#ModelArn", "traits": { - "smithy.api#documentation": "

Contains details about whether a model version is available or deprecated.

" + "smithy.api#documentation": "

The base model Amazon Resource Name (ARN).

", + "smithy.api#required": {} + } + }, + "baseModelName": { + "target": "com.amazonaws.bedrock#ModelName", + "traits": { + "smithy.api#documentation": "

The base model name.

", + "smithy.api#required": {} + } + }, + "customizationType": { + "target": "com.amazonaws.bedrock#CustomizationType", + "traits": { + "smithy.api#documentation": "

Specifies whether to carry out continued pre-training of a model or whether to fine-tune it. For more information, see Custom models.

" } } }, "traits": { - "smithy.api#documentation": "

Summary information for a foundation model.

" + "smithy.api#documentation": "

Summary information for a custom model.

" } }, - "com.amazonaws.bedrock#FoundationModelSummaryList": { + "com.amazonaws.bedrock#CustomModelSummaryList": { "type": "list", "member": { - "target": "com.amazonaws.bedrock#FoundationModelSummary" + "target": "com.amazonaws.bedrock#CustomModelSummary" } }, - "com.amazonaws.bedrock#GetCustomModel": { + "com.amazonaws.bedrock#CustomizationType": { + "type": "enum", + "members": { + "FINE_TUNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FINE_TUNING" + } + }, + "CONTINUED_PRE_TRAINING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONTINUED_PRE_TRAINING" + } + } + } + }, + "com.amazonaws.bedrock#DeleteCustomModel": { "type": "operation", "input": { - "target": "com.amazonaws.bedrock#GetCustomModelRequest" + "target": "com.amazonaws.bedrock#DeleteCustomModelRequest" }, "output": { - "target": "com.amazonaws.bedrock#GetCustomModelResponse" + "target": "com.amazonaws.bedrock#DeleteCustomModelResponse" }, "errors": [ { "target": "com.amazonaws.bedrock#AccessDeniedException" }, + { + "target": "com.amazonaws.bedrock#ConflictException" + }, { "target": "com.amazonaws.bedrock#InternalServerException" }, @@ -1583,22 +1587,22 @@ } ], "traits": { - "smithy.api#documentation": "

Get the properties associated with a Amazon Bedrock custom model that you have created.For more information, see Custom models in the Bedrock User Guide.

", + "smithy.api#documentation": "

Deletes a custom model that you created earlier. For more information, see Custom models in the Amazon Bedrock User Guide.

", "smithy.api#http": { "code": 200, - "method": "GET", + "method": "DELETE", "uri": "/custom-models/{modelIdentifier}" }, - "smithy.api#readonly": {} + "smithy.api#idempotent": {} } }, - "com.amazonaws.bedrock#GetCustomModelRequest": { + "com.amazonaws.bedrock#DeleteCustomModelRequest": { "type": "structure", "members": { "modelIdentifier": { "target": "com.amazonaws.bedrock#ModelIdentifier", "traits": { - "smithy.api#documentation": "

Name or ARN of the custom model.

", + "smithy.api#documentation": "

Name of the model to delete.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1608,114 +1612,28 @@ "smithy.api#input": {} } }, - "com.amazonaws.bedrock#GetCustomModelResponse": { + "com.amazonaws.bedrock#DeleteCustomModelResponse": { "type": "structure", - "members": { - "modelArn": { - "target": "com.amazonaws.bedrock#ModelArn", - "traits": { - "smithy.api#documentation": "

ARN associated with this model.

", - "smithy.api#required": {} - } - }, - "modelName": { - "target": "com.amazonaws.bedrock#CustomModelName", - "traits": { - "smithy.api#documentation": "

Model name associated with this model.

", - "smithy.api#required": {} - } - }, - "jobName": { - "target": "com.amazonaws.bedrock#JobName", - "traits": { - "smithy.api#documentation": "

Job name associated with this model.

" - } - }, - "jobArn": { - "target": "com.amazonaws.bedrock#ModelCustomizationJobArn", - "traits": { - "smithy.api#documentation": "

Job ARN associated with this model.

", - "smithy.api#required": {} - } - }, - "baseModelArn": { - "target": "com.amazonaws.bedrock#ModelArn", - "traits": { - "smithy.api#documentation": "

ARN of the base model.

", - "smithy.api#required": {} - } - }, - "customizationType": { - "target": "com.amazonaws.bedrock#CustomizationType", - "traits": { - "smithy.api#documentation": "

The type of model customization.

" - } - }, - "modelKmsKeyArn": { - "target": "com.amazonaws.bedrock#KmsKeyArn", - "traits": { - "smithy.api#documentation": "

The custom model is encrypted at rest using this key.

" - } - }, - "hyperParameters": { - "target": "com.amazonaws.bedrock#ModelCustomizationHyperParameters", - "traits": { - "smithy.api#documentation": "

Hyperparameter values associated with this model.

" - } - }, - "trainingDataConfig": { - "target": "com.amazonaws.bedrock#TrainingDataConfig", - "traits": { - "smithy.api#documentation": "

Information about the training dataset.

", - "smithy.api#required": {} - } - }, - "validationDataConfig": { - "target": "com.amazonaws.bedrock#ValidationDataConfig" - }, - "outputDataConfig": { - "target": "com.amazonaws.bedrock#OutputDataConfig", - "traits": { - "smithy.api#documentation": "

Output data configuration associated with this custom model.

", - "smithy.api#required": {} - } - }, - "trainingMetrics": { - "target": "com.amazonaws.bedrock#TrainingMetrics", - "traits": { - "smithy.api#documentation": "

The training metrics from the job creation.

" - } - }, - "validationMetrics": { - "target": "com.amazonaws.bedrock#ValidationMetrics", - "traits": { - "smithy.api#documentation": "

The validation metrics from the job creation.

" - } - }, - "creationTime": { - "target": "com.amazonaws.bedrock#Timestamp", - "traits": { - "smithy.api#documentation": "

Creation time of the model.

", - "smithy.api#required": {} - } - } - }, + "members": {}, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.bedrock#GetFoundationModel": { + "com.amazonaws.bedrock#DeleteGuardrail": { "type": "operation", "input": { - "target": "com.amazonaws.bedrock#GetFoundationModelRequest" + "target": "com.amazonaws.bedrock#DeleteGuardrailRequest" }, "output": { - "target": "com.amazonaws.bedrock#GetFoundationModelResponse" + "target": "com.amazonaws.bedrock#DeleteGuardrailResponse" }, "errors": [ { "target": "com.amazonaws.bedrock#AccessDeniedException" }, + { + "target": "com.amazonaws.bedrock#ConflictException" + }, { "target": "com.amazonaws.bedrock#InternalServerException" }, @@ -1730,52 +1648,52 @@ } ], "traits": { - "smithy.api#documentation": "

Get details about a Amazon Bedrock foundation model.

", + "smithy.api#documentation": "

Deletes a guardrail.

\n
    \n
  • \n

    To delete a guardrail, only specify the ARN of the guardrail in the guardrailIdentifier field. If you delete a guardrail, all of its versions will be deleted.

    \n
  • \n
  • \n

    To delete a version of a guardrail, specify the ARN of the guardrail in the guardrailIdentifier field and the version in the guardrailVersion field.

    \n
  • \n
", "smithy.api#http": { - "code": 200, - "method": "GET", - "uri": "/foundation-models/{modelIdentifier}" + "code": 202, + "method": "DELETE", + "uri": "/guardrails/{guardrailIdentifier}" }, - "smithy.api#readonly": {} + "smithy.api#idempotent": {} } }, - "com.amazonaws.bedrock#GetFoundationModelRequest": { + "com.amazonaws.bedrock#DeleteGuardrailRequest": { "type": "structure", "members": { - "modelIdentifier": { - "target": "com.amazonaws.bedrock#ModelIdentifier", + "guardrailIdentifier": { + "target": "com.amazonaws.bedrock#GuardrailIdentifier", "traits": { - "smithy.api#documentation": "

The model identifier.

", + "smithy.api#documentation": "

The unique identifier of the guardrail.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "guardrailVersion": { + "target": "com.amazonaws.bedrock#GuardrailNumericalVersion", + "traits": { + "smithy.api#documentation": "

The version of the guardrail.

", + "smithy.api#httpQuery": "guardrailVersion" + } } }, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.bedrock#GetFoundationModelResponse": { + "com.amazonaws.bedrock#DeleteGuardrailResponse": { "type": "structure", - "members": { - "modelDetails": { - "target": "com.amazonaws.bedrock#FoundationModelDetails", - "traits": { - "smithy.api#documentation": "

Information about the foundation model.

" - } - } - }, + "members": {}, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.bedrock#GetModelCustomizationJob": { + "com.amazonaws.bedrock#DeleteModelInvocationLoggingConfiguration": { "type": "operation", "input": { - "target": "com.amazonaws.bedrock#GetModelCustomizationJobRequest" + "target": "com.amazonaws.bedrock#DeleteModelInvocationLoggingConfigurationRequest" }, "output": { - "target": "com.amazonaws.bedrock#GetModelCustomizationJobResponse" + "target": "com.amazonaws.bedrock#DeleteModelInvocationLoggingConfigurationResponse" }, "errors": [ { @@ -1785,375 +1703,3062 @@ "target": "com.amazonaws.bedrock#InternalServerException" }, { - "target": "com.amazonaws.bedrock#ResourceNotFoundException" - }, + "target": "com.amazonaws.bedrock#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Delete the invocation logging.

", + "smithy.api#http": { + "code": 200, + "method": "DELETE", + "uri": "/logging/modelinvocations" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bedrock#DeleteModelInvocationLoggingConfigurationRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#DeleteModelInvocationLoggingConfigurationResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrock#DeleteProvisionedModelThroughput": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#DeleteProvisionedModelThroughputRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#DeleteProvisionedModelThroughputResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#ConflictException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, { "target": "com.amazonaws.bedrock#ThrottlingException" }, - { - "target": "com.amazonaws.bedrock#ValidationException" + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a Provisioned Throughput. You can't delete a Provisioned Throughput before the commitment term is over. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide.

", + "smithy.api#http": { + "code": 200, + "method": "DELETE", + "uri": "/provisioned-model-throughput/{provisionedModelId}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bedrock#DeleteProvisionedModelThroughputRequest": { + "type": "structure", + "members": { + "provisionedModelId": { + "target": "com.amazonaws.bedrock#ProvisionedModelId", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) or name of the Provisioned Throughput.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#DeleteProvisionedModelThroughputResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrock#ErrorMessage": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 2048 + } + } + }, + "com.amazonaws.bedrock#ErrorMessages": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#ErrorMessage" + }, + "traits": { + "smithy.api#length": { + "max": 20 + } + } + }, + "com.amazonaws.bedrock#EvaluationBedrockModel": { + "type": "structure", + "members": { + "modelIdentifier": { + "target": "com.amazonaws.bedrock#EvaluationModelIdentifier", + "traits": { + "smithy.api#documentation": "

The ARN of the Amazon Bedrock model specified.

", + "smithy.api#required": {} + } + }, + "inferenceParams": { + "target": "com.amazonaws.bedrock#EvaluationModelInferenceParams", + "traits": { + "smithy.api#documentation": "

Each Amazon Bedrock support different inference parameters that change how the model behaves during inference.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the ARN of the Amazon Bedrock models specified in your model evaluation job. Each Amazon Bedrock model supports different inferenceParams. To learn more about supported inference parameters for Amazon Bedrock models, see Inference parameters for foundation models.

\n

The inferenceParams are specified using JSON. To successfully insert JSON as string make sure that all quotations are properly escaped. For example, \"temperature\":\"0.25\" key value pair would need to be formatted as \\\"temperature\\\":\\\"0.25\\\" to successfully accepted in the request.

" + } + }, + "com.amazonaws.bedrock#EvaluationConfig": { + "type": "union", + "members": { + "automated": { + "target": "com.amazonaws.bedrock#AutomatedEvaluationConfig", + "traits": { + "smithy.api#documentation": "

Used to specify an automated model evaluation job.\n See AutomatedEvaluationConfig to view the required parameters.

" + } + }, + "human": { + "target": "com.amazonaws.bedrock#HumanEvaluationConfig", + "traits": { + "smithy.api#documentation": "

Used to specify a model evaluation job that uses human workers.See HumanEvaluationConfig to view the required parameters.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Used to specify either a AutomatedEvaluationConfig or HumanEvaluationConfig object.

" + } + }, + "com.amazonaws.bedrock#EvaluationDataset": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bedrock#EvaluationDatasetName", + "traits": { + "smithy.api#documentation": "

Used to specify supported built-in prompt datasets. Valid values are Builtin.Bold, Builtin.BoolQ, Builtin.NaturalQuestions, Builtin.Gigaword, Builtin.RealToxicityPrompts, Builtin.TriviaQa, Builtin.T-Rex, Builtin.WomensEcommerceClothingReviews and Builtin.Wikitext2.

", + "smithy.api#required": {} + } + }, + "datasetLocation": { + "target": "com.amazonaws.bedrock#EvaluationDatasetLocation", + "traits": { + "smithy.api#documentation": "

For custom prompt datasets, you must specify the location in Amazon S3 where the prompt dataset is saved.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Used to specify the name of a built-in prompt dataset and optionally, the Amazon S3 bucket where a custom prompt dataset is saved.

" + } + }, + "com.amazonaws.bedrock#EvaluationDatasetLocation": { + "type": "union", + "members": { + "s3Uri": { + "target": "com.amazonaws.bedrock#S3Uri", + "traits": { + "smithy.api#documentation": "

The S3 URI of the S3 bucket specified in the job.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The location in Amazon S3 where your prompt dataset is stored.

" + } + }, + "com.amazonaws.bedrock#EvaluationDatasetMetricConfig": { + "type": "structure", + "members": { + "taskType": { + "target": "com.amazonaws.bedrock#EvaluationTaskType", + "traits": { + "smithy.api#documentation": "

The task type you want the model to carry out.

", + "smithy.api#required": {} + } + }, + "dataset": { + "target": "com.amazonaws.bedrock#EvaluationDataset", + "traits": { + "smithy.api#documentation": "

Specifies the prompt dataset.

", + "smithy.api#required": {} + } + }, + "metricNames": { + "target": "com.amazonaws.bedrock#EvaluationMetricNames", + "traits": { + "smithy.api#documentation": "

The names of the metrics used. For automated model evaluation jobs valid values are \"Builtin.Accuracy\", \"Builtin.Robustness\", and \"Builtin.Toxicity\". In human-based model evaluation jobs the array of strings must match the name parameter specified in HumanEvaluationCustomMetric.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines the built-in prompt datasets, built-in metric names and custom metric names, and the task type.

" + } + }, + "com.amazonaws.bedrock#EvaluationDatasetMetricConfigs": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#EvaluationDatasetMetricConfig" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.bedrock#EvaluationDatasetName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[0-9a-zA-Z-_.]+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrock#EvaluationInferenceConfig": { + "type": "union", + "members": { + "models": { + "target": "com.amazonaws.bedrock#EvaluationModelConfigs", + "traits": { + "smithy.api#documentation": "

Used to specify the models.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Used to define the models you want used in your model evaluation job. Automated model evaluation jobs support only a single model. In a human-based model evaluation job, your annotator can compare the responses for up to two different models.

" + } + }, + "com.amazonaws.bedrock#EvaluationJobArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 1011 + }, + "smithy.api#pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:evaluation-job/[a-z0-9]{12}$" + } + }, + "com.amazonaws.bedrock#EvaluationJobDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#pattern": "^.+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrock#EvaluationJobIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 1011 + }, + "smithy.api#pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:evaluation-job/[a-z0-9]{12})$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrock#EvaluationJobName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[a-z0-9](-*[a-z0-9]){0,62}$" + } + }, + "com.amazonaws.bedrock#EvaluationJobResource": { + "type": "resource", + "operations": [ + { + "target": "com.amazonaws.bedrock#CreateEvaluationJob" + }, + { + "target": "com.amazonaws.bedrock#GetEvaluationJob" + }, + { + "target": "com.amazonaws.bedrock#ListEvaluationJobs" + }, + { + "target": "com.amazonaws.bedrock#StopEvaluationJob" + } + ] + }, + "com.amazonaws.bedrock#EvaluationJobStatus": { + "type": "enum", + "members": { + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InProgress" + } + }, + "COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Completed" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Failed" + } + }, + "STOPPING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Stopping" + } + }, + "STOPPED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Stopped" + } + } + } + }, + "com.amazonaws.bedrock#EvaluationJobType": { + "type": "enum", + "members": { + "HUMAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Human" + } + }, + "AUTOMATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Automated" + } + } + } + }, + "com.amazonaws.bedrock#EvaluationMetricDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^.+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrock#EvaluationMetricName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[0-9a-zA-Z-_.]+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrock#EvaluationMetricNames": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#EvaluationMetricName" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.bedrock#EvaluationModelConfig": { + "type": "union", + "members": { + "bedrockModel": { + "target": "com.amazonaws.bedrock#EvaluationBedrockModel", + "traits": { + "smithy.api#documentation": "

Defines the Amazon Bedrock model and inference parameters you want used.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines the models used in the model evaluation job.

" + } + }, + "com.amazonaws.bedrock#EvaluationModelConfigs": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#EvaluationModelConfig" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2 + } + } + }, + "com.amazonaws.bedrock#EvaluationModelIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$" + } + }, + "com.amazonaws.bedrock#EvaluationModelIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#EvaluationModelIdentifier" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2 + } + } + }, + "com.amazonaws.bedrock#EvaluationModelInferenceParams": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1023 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrock#EvaluationOutputDataConfig": { + "type": "structure", + "members": { + "s3Uri": { + "target": "com.amazonaws.bedrock#S3Uri", + "traits": { + "smithy.api#documentation": "

The Amazon S3 URI where the results of model evaluation job are saved.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon S3 location where the results of your model evaluation job are saved.

" + } + }, + "com.amazonaws.bedrock#EvaluationRatingMethod": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#pattern": "^[0-9a-zA-Z-_]+$" + } + }, + "com.amazonaws.bedrock#EvaluationSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#EvaluationSummary" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.bedrock#EvaluationSummary": { + "type": "structure", + "members": { + "jobArn": { + "target": "com.amazonaws.bedrock#EvaluationJobArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the model evaluation job.

", + "smithy.api#required": {} + } + }, + "jobName": { + "target": "com.amazonaws.bedrock#EvaluationJobName", + "traits": { + "smithy.api#documentation": "

The name of the model evaluation job.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.bedrock#EvaluationJobStatus", + "traits": { + "smithy.api#documentation": "

The current status of the model evaluation job.

", + "smithy.api#required": {} + } + }, + "creationTime": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

When the model evaluation job was created.

", + "smithy.api#required": {} + } + }, + "jobType": { + "target": "com.amazonaws.bedrock#EvaluationJobType", + "traits": { + "smithy.api#documentation": "

The type, either human or automatic, of model evaluation job.

", + "smithy.api#required": {} + } + }, + "evaluationTaskTypes": { + "target": "com.amazonaws.bedrock#EvaluationTaskTypes", + "traits": { + "smithy.api#documentation": "

What task type was used in the model evaluation job.

", + "smithy.api#required": {} + } + }, + "modelIdentifiers": { + "target": "com.amazonaws.bedrock#EvaluationModelIdentifiers", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the model(s) used in the model evaluation job.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of the model evaluation job.

" + } + }, + "com.amazonaws.bedrock#EvaluationTaskType": { + "type": "enum", + "members": { + "SUMMARIZATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Summarization" + } + }, + "CLASSIFICATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Classification" + } + }, + "QUESTION_AND_ANSWER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "QuestionAndAnswer" + } + }, + "GENERATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Generation" + } + }, + "CUSTOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Custom" + } + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[A-Za-z0-9]+$" + } + }, + "com.amazonaws.bedrock#EvaluationTaskTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#EvaluationTaskType" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.bedrock#FineTuningJobStatus": { + "type": "enum", + "members": { + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InProgress" + } + }, + "COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Completed" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Failed" + } + }, + "STOPPING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Stopping" + } + }, + "STOPPED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Stopped" + } + } + } + }, + "com.amazonaws.bedrock#FoundationModelArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/[a-z0-9-]{1,63}[.]{1}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}$" + } + }, + "com.amazonaws.bedrock#FoundationModelDetails": { + "type": "structure", + "members": { + "modelArn": { + "target": "com.amazonaws.bedrock#FoundationModelArn", + "traits": { + "smithy.api#documentation": "

The model Amazon Resource Name (ARN).

", + "smithy.api#required": {} + } + }, + "modelId": { + "target": "com.amazonaws.bedrock#BedrockModelId", + "traits": { + "smithy.api#documentation": "

The model identifier.

", + "smithy.api#required": {} + } + }, + "modelName": { + "target": "com.amazonaws.bedrock#BrandedName", + "traits": { + "smithy.api#documentation": "

The model name.

" + } + }, + "providerName": { + "target": "com.amazonaws.bedrock#BrandedName", + "traits": { + "smithy.api#documentation": "

The model's provider name.

" + } + }, + "inputModalities": { + "target": "com.amazonaws.bedrock#ModelModalityList", + "traits": { + "smithy.api#documentation": "

The input modalities that the model supports.

" + } + }, + "outputModalities": { + "target": "com.amazonaws.bedrock#ModelModalityList", + "traits": { + "smithy.api#documentation": "

The output modalities that the model supports.

" + } + }, + "responseStreamingSupported": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the model supports streaming.

" + } + }, + "customizationsSupported": { + "target": "com.amazonaws.bedrock#ModelCustomizationList", + "traits": { + "smithy.api#documentation": "

The customization that the model supports.

" + } + }, + "inferenceTypesSupported": { + "target": "com.amazonaws.bedrock#InferenceTypeList", + "traits": { + "smithy.api#documentation": "

The inference types that the model supports.

" + } + }, + "modelLifecycle": { + "target": "com.amazonaws.bedrock#FoundationModelLifecycle", + "traits": { + "smithy.api#documentation": "

Contains details about whether a model version is available or deprecated

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a foundation model.

" + } + }, + "com.amazonaws.bedrock#FoundationModelLifecycle": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.bedrock#FoundationModelLifecycleStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether a model version is available (ACTIVE) or deprecated (LEGACY.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about whether a model version is available or deprecated.

" + } + }, + "com.amazonaws.bedrock#FoundationModelLifecycleStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "LEGACY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LEGACY" + } + } + } + }, + "com.amazonaws.bedrock#FoundationModelSummary": { + "type": "structure", + "members": { + "modelArn": { + "target": "com.amazonaws.bedrock#FoundationModelArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the foundation model.

", + "smithy.api#required": {} + } + }, + "modelId": { + "target": "com.amazonaws.bedrock#BedrockModelId", + "traits": { + "smithy.api#documentation": "

The model ID of the foundation model.

", + "smithy.api#required": {} + } + }, + "modelName": { + "target": "com.amazonaws.bedrock#BrandedName", + "traits": { + "smithy.api#documentation": "

The name of the model.

" + } + }, + "providerName": { + "target": "com.amazonaws.bedrock#BrandedName", + "traits": { + "smithy.api#documentation": "

The model's provider name.

" + } + }, + "inputModalities": { + "target": "com.amazonaws.bedrock#ModelModalityList", + "traits": { + "smithy.api#documentation": "

The input modalities that the model supports.

" + } + }, + "outputModalities": { + "target": "com.amazonaws.bedrock#ModelModalityList", + "traits": { + "smithy.api#documentation": "

The output modalities that the model supports.

" + } + }, + "responseStreamingSupported": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the model supports streaming.

" + } + }, + "customizationsSupported": { + "target": "com.amazonaws.bedrock#ModelCustomizationList", + "traits": { + "smithy.api#documentation": "

Whether the model supports fine-tuning or continual pre-training.

" + } + }, + "inferenceTypesSupported": { + "target": "com.amazonaws.bedrock#InferenceTypeList", + "traits": { + "smithy.api#documentation": "

The inference types that the model supports.

" + } + }, + "modelLifecycle": { + "target": "com.amazonaws.bedrock#FoundationModelLifecycle", + "traits": { + "smithy.api#documentation": "

Contains details about whether a model version is available or deprecated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Summary information for a foundation model.

" + } + }, + "com.amazonaws.bedrock#FoundationModelSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#FoundationModelSummary" + } + }, + "com.amazonaws.bedrock#GetCustomModel": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#GetCustomModelRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#GetCustomModelResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Get the properties associated with a Amazon Bedrock custom model that you have created.For more information, see Custom models in the Amazon Bedrock User Guide.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/custom-models/{modelIdentifier}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrock#GetCustomModelRequest": { + "type": "structure", + "members": { + "modelIdentifier": { + "target": "com.amazonaws.bedrock#ModelIdentifier", + "traits": { + "smithy.api#documentation": "

Name or Amazon Resource Name (ARN) of the custom model.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#GetCustomModelResponse": { + "type": "structure", + "members": { + "modelArn": { + "target": "com.amazonaws.bedrock#ModelArn", + "traits": { + "smithy.api#documentation": "

Amazon Resource Name (ARN) associated with this model.

", + "smithy.api#required": {} + } + }, + "modelName": { + "target": "com.amazonaws.bedrock#CustomModelName", + "traits": { + "smithy.api#documentation": "

Model name associated with this model.

", + "smithy.api#required": {} + } + }, + "jobName": { + "target": "com.amazonaws.bedrock#JobName", + "traits": { + "smithy.api#documentation": "

Job name associated with this model.

" + } + }, + "jobArn": { + "target": "com.amazonaws.bedrock#ModelCustomizationJobArn", + "traits": { + "smithy.api#documentation": "

Job Amazon Resource Name (ARN) associated with this model.

", + "smithy.api#required": {} + } + }, + "baseModelArn": { + "target": "com.amazonaws.bedrock#ModelArn", + "traits": { + "smithy.api#documentation": "

Amazon Resource Name (ARN) of the base model.

", + "smithy.api#required": {} + } + }, + "customizationType": { + "target": "com.amazonaws.bedrock#CustomizationType", + "traits": { + "smithy.api#documentation": "

The type of model customization.

" + } + }, + "modelKmsKeyArn": { + "target": "com.amazonaws.bedrock#KmsKeyArn", + "traits": { + "smithy.api#documentation": "

The custom model is encrypted at rest using this key.

" + } + }, + "hyperParameters": { + "target": "com.amazonaws.bedrock#ModelCustomizationHyperParameters", + "traits": { + "smithy.api#documentation": "

Hyperparameter values associated with this model. For details on the format for different models, see Custom model hyperparameters.

" + } + }, + "trainingDataConfig": { + "target": "com.amazonaws.bedrock#TrainingDataConfig", + "traits": { + "smithy.api#documentation": "

Contains information about the training dataset.

", + "smithy.api#required": {} + } + }, + "validationDataConfig": { + "target": "com.amazonaws.bedrock#ValidationDataConfig", + "traits": { + "smithy.api#documentation": "

Contains information about the validation dataset.

" + } + }, + "outputDataConfig": { + "target": "com.amazonaws.bedrock#OutputDataConfig", + "traits": { + "smithy.api#documentation": "

Output data configuration associated with this custom model.

", + "smithy.api#required": {} + } + }, + "trainingMetrics": { + "target": "com.amazonaws.bedrock#TrainingMetrics", + "traits": { + "smithy.api#documentation": "

Contains training metrics from the job creation.

" + } + }, + "validationMetrics": { + "target": "com.amazonaws.bedrock#ValidationMetrics", + "traits": { + "smithy.api#documentation": "

The validation metrics from the job creation.

" + } + }, + "creationTime": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

Creation time of the model.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrock#GetEvaluationJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#GetEvaluationJobRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#GetEvaluationJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the properties associated with a model evaluation job, including the\n status of the job. For more information, see Model evaluations.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/evaluation-jobs/{jobIdentifier}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrock#GetEvaluationJobRequest": { + "type": "structure", + "members": { + "jobIdentifier": { + "target": "com.amazonaws.bedrock#EvaluationJobIdentifier", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the model evaluation job.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#GetEvaluationJobResponse": { + "type": "structure", + "members": { + "jobName": { + "target": "com.amazonaws.bedrock#EvaluationJobName", + "traits": { + "smithy.api#documentation": "

The name of the model evaluation job.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.bedrock#EvaluationJobStatus", + "traits": { + "smithy.api#documentation": "

The status of the model evaluation job.

", + "smithy.api#required": {} + } + }, + "jobArn": { + "target": "com.amazonaws.bedrock#EvaluationJobArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the model evaluation job.

", + "smithy.api#required": {} + } + }, + "jobDescription": { + "target": "com.amazonaws.bedrock#EvaluationJobDescription", + "traits": { + "smithy.api#documentation": "

The description of the model evaluation job.

" + } + }, + "roleArn": { + "target": "com.amazonaws.bedrock#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM service role used in the model evaluation job.

", + "smithy.api#required": {} + } + }, + "customerEncryptionKeyId": { + "target": "com.amazonaws.bedrock#KmsKeyId", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the customer managed key specified when the model evaluation job was created.

" + } + }, + "jobType": { + "target": "com.amazonaws.bedrock#EvaluationJobType", + "traits": { + "smithy.api#documentation": "

The type of model evaluation job.

", + "smithy.api#required": {} + } + }, + "evaluationConfig": { + "target": "com.amazonaws.bedrock#EvaluationConfig", + "traits": { + "smithy.api#documentation": "

Contains details about the type of model evaluation job, the metrics used, the task type selected, the datasets used, and any custom metrics you defined.

", + "smithy.api#required": {} + } + }, + "inferenceConfig": { + "target": "com.amazonaws.bedrock#EvaluationInferenceConfig", + "traits": { + "smithy.api#documentation": "

Details about the models you specified in your model evaluation job.

", + "smithy.api#required": {} + } + }, + "outputDataConfig": { + "target": "com.amazonaws.bedrock#EvaluationOutputDataConfig", + "traits": { + "smithy.api#documentation": "

Amazon S3 location for where output data is saved.

", + "smithy.api#required": {} + } + }, + "creationTime": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

When the model evaluation job was created.

", + "smithy.api#required": {} + } + }, + "lastModifiedTime": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

When the model evaluation job was last modified.

" + } + }, + "failureMessages": { + "target": "com.amazonaws.bedrock#ErrorMessages", + "traits": { + "smithy.api#documentation": "

An array of strings the specify why the model evaluation job has failed.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrock#GetFoundationModel": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#GetFoundationModelRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#GetFoundationModelResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Get details about a Amazon Bedrock foundation model.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/foundation-models/{modelIdentifier}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrock#GetFoundationModelRequest": { + "type": "structure", + "members": { + "modelIdentifier": { + "target": "com.amazonaws.bedrock#ModelIdentifier", + "traits": { + "smithy.api#documentation": "

The model identifier.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#GetFoundationModelResponse": { + "type": "structure", + "members": { + "modelDetails": { + "target": "com.amazonaws.bedrock#FoundationModelDetails", + "traits": { + "smithy.api#documentation": "

Information about the foundation model.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrock#GetGuardrail": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#GetGuardrailRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#GetGuardrailResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets details about a guardrail. If you don't specify a version, the response returns details for the DRAFT version.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/guardrails/{guardrailIdentifier}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrock#GetGuardrailRequest": { + "type": "structure", + "members": { + "guardrailIdentifier": { + "target": "com.amazonaws.bedrock#GuardrailIdentifier", + "traits": { + "smithy.api#documentation": "

The unique identifier of the guardrail for which to get details.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "guardrailVersion": { + "target": "com.amazonaws.bedrock#GuardrailVersion", + "traits": { + "smithy.api#documentation": "

The version of the guardrail for which to get details. If you don't specify a version, the response returns details for the DRAFT version.

", + "smithy.api#httpQuery": "guardrailVersion" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#GetGuardrailResponse": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bedrock#GuardrailName", + "traits": { + "smithy.api#documentation": "

The name of the guardrail.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.bedrock#GuardrailDescription", + "traits": { + "smithy.api#documentation": "

The description of the guardrail.

" + } + }, + "guardrailId": { + "target": "com.amazonaws.bedrock#GuardrailId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the guardrail.

", + "smithy.api#required": {} + } + }, + "guardrailArn": { + "target": "com.amazonaws.bedrock#GuardrailArn", + "traits": { + "smithy.api#documentation": "

The ARN of the guardrail that was created.

", + "smithy.api#required": {} + } + }, + "version": { + "target": "com.amazonaws.bedrock#GuardrailVersion", + "traits": { + "smithy.api#documentation": "

The version of the guardrail.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.bedrock#GuardrailStatus", + "traits": { + "smithy.api#documentation": "

The status of the guardrail.

", + "smithy.api#required": {} + } + }, + "topicPolicy": { + "target": "com.amazonaws.bedrock#GuardrailTopicPolicy", + "traits": { + "smithy.api#documentation": "

The topic policy that was configured for the guardrail.

" + } + }, + "contentPolicy": { + "target": "com.amazonaws.bedrock#GuardrailContentPolicy", + "traits": { + "smithy.api#documentation": "

The content policy that was configured for the guardrail.

" + } + }, + "wordPolicy": { + "target": "com.amazonaws.bedrock#GuardrailWordPolicy", + "traits": { + "smithy.api#documentation": "

The word policy that was configured for the guardrail.

" + } + }, + "sensitiveInformationPolicy": { + "target": "com.amazonaws.bedrock#GuardrailSensitiveInformationPolicy", + "traits": { + "smithy.api#documentation": "

The sensitive information policy that was configured for the guardrail.

" + } + }, + "createdAt": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

The date and time at which the guardrail was created.

", + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

The date and time at which the guardrail was updated.

", + "smithy.api#required": {} + } + }, + "statusReasons": { + "target": "com.amazonaws.bedrock#GuardrailStatusReasons", + "traits": { + "smithy.api#documentation": "

Appears if the status is FAILED. A list of reasons for why the guardrail failed to be created, updated, versioned, or deleted.

" + } + }, + "failureRecommendations": { + "target": "com.amazonaws.bedrock#GuardrailFailureRecommendations", + "traits": { + "smithy.api#documentation": "

Appears if the status of the guardrail is FAILED. A list of recommendations to carry out before retrying the request.

" + } + }, + "blockedInputMessaging": { + "target": "com.amazonaws.bedrock#GuardrailBlockedMessaging", + "traits": { + "smithy.api#documentation": "

The message that the guardrail returns when it blocks a prompt.

", + "smithy.api#required": {} + } + }, + "blockedOutputsMessaging": { + "target": "com.amazonaws.bedrock#GuardrailBlockedMessaging", + "traits": { + "smithy.api#documentation": "

The message that the guardrail returns when it blocks a model response.

", + "smithy.api#required": {} + } + }, + "kmsKeyArn": { + "target": "com.amazonaws.bedrock#KmsKeyArn", + "traits": { + "smithy.api#documentation": "

The ARN of the KMS key that encrypts the guardrail.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrock#GetModelCustomizationJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#GetModelCustomizationJobRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#GetModelCustomizationJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the properties associated with a model-customization job, including the status of the job.\n For more information, see Custom models in the Amazon Bedrock User Guide.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/model-customization-jobs/{jobIdentifier}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrock#GetModelCustomizationJobRequest": { + "type": "structure", + "members": { + "jobIdentifier": { + "target": "com.amazonaws.bedrock#ModelCustomizationJobIdentifier", + "traits": { + "smithy.api#documentation": "

Identifier for the customization job.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#GetModelCustomizationJobResponse": { + "type": "structure", + "members": { + "jobArn": { + "target": "com.amazonaws.bedrock#ModelCustomizationJobArn", + "traits": { + "smithy.api#documentation": "

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

", + "smithy.api#required": {} + } + }, + "jobName": { + "target": "com.amazonaws.bedrock#JobName", + "traits": { + "smithy.api#documentation": "

The name of the customization job.

", + "smithy.api#required": {} + } + }, + "outputModelName": { + "target": "com.amazonaws.bedrock#CustomModelName", + "traits": { + "smithy.api#documentation": "

The name of the output model.

", + "smithy.api#required": {} + } + }, + "outputModelArn": { + "target": "com.amazonaws.bedrock#CustomModelArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the output model.

" + } + }, + "clientRequestToken": { + "target": "com.amazonaws.bedrock#IdempotencyToken", + "traits": { + "smithy.api#documentation": "

The token that you specified in the CreateCustomizationJob request.

" + } + }, + "roleArn": { + "target": "com.amazonaws.bedrock#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.bedrock#ModelCustomizationJobStatus", + "traits": { + "smithy.api#documentation": "

The status of the job. A successful job transitions from in-progress to completed when the output model is ready to use.\n If the job failed, the failure message contains information about why the job failed.

" + } + }, + "failureMessage": { + "target": "com.amazonaws.bedrock#ErrorMessage", + "traits": { + "smithy.api#documentation": "

Information about why the job failed.

" + } + }, + "creationTime": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

Time that the resource was created.

", + "smithy.api#required": {} + } + }, + "lastModifiedTime": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

Time that the resource was last modified.

" + } + }, + "endTime": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

Time that the resource transitioned to terminal state.

" + } + }, + "baseModelArn": { + "target": "com.amazonaws.bedrock#FoundationModelArn", + "traits": { + "smithy.api#documentation": "

Amazon Resource Name (ARN) of the base model.

", + "smithy.api#required": {} + } + }, + "hyperParameters": { + "target": "com.amazonaws.bedrock#ModelCustomizationHyperParameters", + "traits": { + "smithy.api#documentation": "

The hyperparameter values for the job. For details on the format for different models, see Custom model hyperparameters.

", + "smithy.api#required": {} + } + }, + "trainingDataConfig": { + "target": "com.amazonaws.bedrock#TrainingDataConfig", + "traits": { + "smithy.api#documentation": "

Contains information about the training dataset.

", + "smithy.api#required": {} + } + }, + "validationDataConfig": { + "target": "com.amazonaws.bedrock#ValidationDataConfig", + "traits": { + "smithy.api#documentation": "

Contains information about the validation dataset.

", + "smithy.api#required": {} + } + }, + "outputDataConfig": { + "target": "com.amazonaws.bedrock#OutputDataConfig", + "traits": { + "smithy.api#documentation": "

Output data configuration

", + "smithy.api#required": {} + } + }, + "customizationType": { + "target": "com.amazonaws.bedrock#CustomizationType", + "traits": { + "smithy.api#documentation": "

The type of model customization.

" + } + }, + "outputModelKmsKeyArn": { + "target": "com.amazonaws.bedrock#KmsKeyArn", + "traits": { + "smithy.api#documentation": "

The custom model is encrypted at rest using this key.

" + } + }, + "trainingMetrics": { + "target": "com.amazonaws.bedrock#TrainingMetrics", + "traits": { + "smithy.api#documentation": "

Contains training metrics from the job creation.

" + } + }, + "validationMetrics": { + "target": "com.amazonaws.bedrock#ValidationMetrics", + "traits": { + "smithy.api#documentation": "

The loss metric for each validator that you provided in the createjob request.

" + } + }, + "vpcConfig": { + "target": "com.amazonaws.bedrock#VpcConfig", + "traits": { + "smithy.api#documentation": "

VPC configuration for the custom model job.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrock#GetModelInvocationLoggingConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#GetModelInvocationLoggingConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#GetModelInvocationLoggingConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Get the current configuration values for model invocation logging.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/logging/modelinvocations" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrock#GetModelInvocationLoggingConfigurationRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#GetModelInvocationLoggingConfigurationResponse": { + "type": "structure", + "members": { + "loggingConfig": { + "target": "com.amazonaws.bedrock#LoggingConfig", + "traits": { + "smithy.api#documentation": "

The current configuration values.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrock#GetProvisionedModelThroughput": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#GetProvisionedModelThroughputRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#GetProvisionedModelThroughputResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns details for a Provisioned Throughput. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/provisioned-model-throughput/{provisionedModelId}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrock#GetProvisionedModelThroughputRequest": { + "type": "structure", + "members": { + "provisionedModelId": { + "target": "com.amazonaws.bedrock#ProvisionedModelId", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) or name of the Provisioned Throughput.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#GetProvisionedModelThroughputResponse": { + "type": "structure", + "members": { + "modelUnits": { + "target": "com.amazonaws.bedrock#PositiveInteger", + "traits": { + "smithy.api#documentation": "

The number of model units allocated to this Provisioned Throughput.

", + "smithy.api#required": {} + } + }, + "desiredModelUnits": { + "target": "com.amazonaws.bedrock#PositiveInteger", + "traits": { + "smithy.api#documentation": "

The number of model units that was requested for this Provisioned Throughput.

", + "smithy.api#required": {} + } + }, + "provisionedModelName": { + "target": "com.amazonaws.bedrock#ProvisionedModelName", + "traits": { + "smithy.api#documentation": "

The name of the Provisioned Throughput.

", + "smithy.api#required": {} + } + }, + "provisionedModelArn": { + "target": "com.amazonaws.bedrock#ProvisionedModelArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Provisioned Throughput.

", + "smithy.api#required": {} + } + }, + "modelArn": { + "target": "com.amazonaws.bedrock#ModelArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the model associated with this Provisioned Throughput.

", + "smithy.api#required": {} + } + }, + "desiredModelArn": { + "target": "com.amazonaws.bedrock#ModelArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the model requested to be associated to this Provisioned Throughput. This value differs from the modelArn if updating hasn't completed.

", + "smithy.api#required": {} + } + }, + "foundationModelArn": { + "target": "com.amazonaws.bedrock#FoundationModelArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the base model for which the Provisioned Throughput was created, or of the base model that the custom model for which the Provisioned Throughput was created was customized.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.bedrock#ProvisionedModelStatus", + "traits": { + "smithy.api#documentation": "

The status of the Provisioned Throughput.

", + "smithy.api#required": {} + } + }, + "creationTime": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of the creation time for this Provisioned Throughput.

", + "smithy.api#required": {} + } + }, + "lastModifiedTime": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of the last time that this Provisioned Throughput was modified.

", + "smithy.api#required": {} + } + }, + "failureMessage": { + "target": "com.amazonaws.bedrock#ErrorMessage", + "traits": { + "smithy.api#documentation": "

A failure message for any issues that occurred during creation, updating, or deletion of the Provisioned Throughput.

" + } + }, + "commitmentDuration": { + "target": "com.amazonaws.bedrock#CommitmentDuration", + "traits": { + "smithy.api#documentation": "

Commitment duration of the Provisioned Throughput.

" + } + }, + "commitmentExpirationTime": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp for when the commitment term for the Provisioned Throughput expires.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrock#GuardrailArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+$" + } + }, + "com.amazonaws.bedrock#GuardrailBlockedMessaging": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 500 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrock#GuardrailContentFilter": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrock#GuardrailContentFilterType", + "traits": { + "smithy.api#documentation": "

The harmful category that the content filter is applied to.

", + "smithy.api#required": {} + } + }, + "inputStrength": { + "target": "com.amazonaws.bedrock#GuardrailFilterStrength", + "traits": { + "smithy.api#documentation": "

The strength of the content filter to apply to prompts. As you\n increase the filter strength, the likelihood of filtering harmful content increases\n and the probability of seeing harmful content in your application reduces.

", + "smithy.api#required": {} + } + }, + "outputStrength": { + "target": "com.amazonaws.bedrock#GuardrailFilterStrength", + "traits": { + "smithy.api#documentation": "

The strength of the content filter to apply to model responses. As you\n increase the filter strength, the likelihood of filtering harmful content increases\n and the probability of seeing harmful content in your application reduces.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains filter strengths for harmful content. Guardrails support the following content filters to detect and filter harmful user inputs and FM-generated outputs.

\n
    \n
  • \n

    \n Hate – Describes language or a statement that discriminates, criticizes, insults, denounces, or dehumanizes a person or group on the basis of an identity (such as race, ethnicity, gender, religion, sexual orientation, ability, and national origin).

    \n
  • \n
  • \n

    \n Insults – Describes language or a statement that includes demeaning, humiliating, mocking, insulting, or belittling language. This type of language is also labeled as bullying.

    \n
  • \n
  • \n

    \n Sexual – Describes language or a statement that indicates sexual interest, activity, or arousal using direct or indirect references to body parts, physical traits, or sex.

    \n
  • \n
  • \n

    \n Violence – Describes language or a statement that includes glorification of or threats to inflict physical pain, hurt, or injury toward a person, group or thing.

    \n
  • \n
\n

Content filtering depends on the confidence classification of user inputs and FM\n responses across each of the four harmful categories. All input and output statements are\n classified into one of four confidence levels (NONE, LOW, MEDIUM, HIGH) for each\n harmful category. For example, if a statement is classified as\n Hate with HIGH confidence, the likelihood of the statement\n representing hateful content is high. A single statement can be classified across\n multiple categories with varying confidence levels. For example, a single statement\n can be classified as Hate with HIGH confidence, Insults with LOW confidence, Sexual with NONE confidence, and Violence with MEDIUM confidence.

\n

For more information, see Guardrails content filters.

\n

This data type is used in the following API operations:

\n " + } + }, + "com.amazonaws.bedrock#GuardrailContentFilterConfig": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrock#GuardrailContentFilterType", + "traits": { + "smithy.api#documentation": "

The harmful category that the content filter is applied to.

", + "smithy.api#required": {} + } + }, + "inputStrength": { + "target": "com.amazonaws.bedrock#GuardrailFilterStrength", + "traits": { + "smithy.api#documentation": "

The strength of the content filter to apply to prompts. As you\n increase the filter strength, the likelihood of filtering harmful content increases\n and the probability of seeing harmful content in your application reduces.

", + "smithy.api#required": {} + } + }, + "outputStrength": { + "target": "com.amazonaws.bedrock#GuardrailFilterStrength", + "traits": { + "smithy.api#documentation": "

The strength of the content filter to apply to model responses. As you\n increase the filter strength, the likelihood of filtering harmful content increases\n and the probability of seeing harmful content in your application reduces.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains filter strengths for harmful content. Guardrails support the following content filters to detect and filter harmful user inputs and FM-generated outputs.

\n
    \n
  • \n

    \n Hate – Describes language or a statement that discriminates, criticizes, insults, denounces, or dehumanizes a person or group on the basis of an identity (such as race, ethnicity, gender, religion, sexual orientation, ability, and national origin).

    \n
  • \n
  • \n

    \n Insults – Describes language or a statement that includes demeaning, humiliating, mocking, insulting, or belittling language. This type of language is also labeled as bullying.

    \n
  • \n
  • \n

    \n Sexual – Describes language or a statement that indicates sexual interest, activity, or arousal using direct or indirect references to body parts, physical traits, or sex.

    \n
  • \n
  • \n

    \n Violence – Describes language or a statement that includes glorification of or threats to inflict physical pain, hurt, or injury toward a person, group or thing.

    \n
  • \n
\n

Content filtering depends on the confidence classification of user inputs and FM\n responses across each of the four harmful categories. All input and output statements are\n classified into one of four confidence levels (NONE, LOW, MEDIUM, HIGH) for each\n harmful category. For example, if a statement is classified as\n Hate with HIGH confidence, the likelihood of the statement\n representing hateful content is high. A single statement can be classified across\n multiple categories with varying confidence levels. For example, a single statement\n can be classified as Hate with HIGH confidence, Insults with LOW confidence, Sexual with NONE confidence, and Violence with MEDIUM confidence.

\n

For more information, see Guardrails content filters.

\n

This data type is used in the following API operations:

\n " + } + }, + "com.amazonaws.bedrock#GuardrailContentFilterType": { + "type": "enum", + "members": { + "SEXUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SEXUAL" + } + }, + "VIOLENCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VIOLENCE" + } + }, + "HATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HATE" + } + }, + "INSULTS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSULTS" + } + }, + "MISCONDUCT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MISCONDUCT" + } + }, + "PROMPT_ATTACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROMPT_ATTACK" + } + } + } + }, + "com.amazonaws.bedrock#GuardrailContentFilters": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailContentFilter" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 6 + } + } + }, + "com.amazonaws.bedrock#GuardrailContentFiltersConfig": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailContentFilterConfig" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 6 + } + } + }, + "com.amazonaws.bedrock#GuardrailContentPolicy": { + "type": "structure", + "members": { + "filters": { + "target": "com.amazonaws.bedrock#GuardrailContentFilters", + "traits": { + "smithy.api#documentation": "

Contains the type of the content filter and how strongly it should apply to prompts and model responses.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about how to handle harmful content.

\n

This data type is used in the following API operations:

\n " + } + }, + "com.amazonaws.bedrock#GuardrailContentPolicyConfig": { + "type": "structure", + "members": { + "filtersConfig": { + "target": "com.amazonaws.bedrock#GuardrailContentFiltersConfig", + "traits": { + "smithy.api#documentation": "

Contains the type of the content filter and how strongly it should apply to prompts and model responses.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about how to handle harmful content.

\n

This data type is used in the following API operations:

\n " + } + }, + "com.amazonaws.bedrock#GuardrailDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrock#GuardrailDraftVersion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 5, + "max": 5 + }, + "smithy.api#pattern": "^DRAFT$" + } + }, + "com.amazonaws.bedrock#GuardrailFailureRecommendation": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrock#GuardrailFailureRecommendations": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailFailureRecommendation" + }, + "traits": { + "smithy.api#length": { + "max": 100 + } + } + }, + "com.amazonaws.bedrock#GuardrailFilterStrength": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + }, + "LOW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LOW" + } + }, + "MEDIUM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MEDIUM" + } + }, + "HIGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HIGH" + } + } + } + }, + "com.amazonaws.bedrock#GuardrailId": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 64 + }, + "smithy.api#pattern": "^[a-z0-9]+$" + } + }, + "com.amazonaws.bedrock#GuardrailIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 2048 + }, + "smithy.api#pattern": "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$" + } + }, + "com.amazonaws.bedrock#GuardrailManagedWordLists": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailManagedWords" + } + }, + "com.amazonaws.bedrock#GuardrailManagedWordListsConfig": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailManagedWordsConfig" + } + }, + "com.amazonaws.bedrock#GuardrailManagedWords": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrock#GuardrailManagedWordsType", + "traits": { + "smithy.api#documentation": "

ManagedWords$type\n The managed word type that was configured for the guardrail.\n (For now, we only offer profanity word list)

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The managed word list that was configured for the guardrail.\n (This is a list of words that are pre-defined and managed by Guardrails only.)

" + } + }, + "com.amazonaws.bedrock#GuardrailManagedWordsConfig": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrock#GuardrailManagedWordsType", + "traits": { + "smithy.api#documentation": "

The managed word type to configure for the guardrail.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The managed word list to configure for the guardrail.

" + } + }, + "com.amazonaws.bedrock#GuardrailManagedWordsType": { + "type": "enum", + "members": { + "PROFANITY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROFANITY" + } + } + } + }, + "com.amazonaws.bedrock#GuardrailName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + }, + "smithy.api#pattern": "^[0-9a-zA-Z-_]+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrock#GuardrailNumericalVersion": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[1-9][0-9]{0,7}$" + } + }, + "com.amazonaws.bedrock#GuardrailPiiEntities": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailPiiEntity" + }, + "traits": { + "smithy.api#length": { + "min": 1 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.bedrock#GuardrailPiiEntitiesConfig": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailPiiEntityConfig" + }, + "traits": { + "smithy.api#length": { + "min": 1 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.bedrock#GuardrailPiiEntity": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrock#GuardrailPiiEntityType", + "traits": { + "smithy.api#documentation": "

The type of PII entity. For example, Social Security Number.

", + "smithy.api#required": {} + } + }, + "action": { + "target": "com.amazonaws.bedrock#GuardrailSensitiveInformationAction", + "traits": { + "smithy.api#documentation": "

The configured guardrail action when PII entity is detected.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The PII entity configured for the guardrail.

" + } + }, + "com.amazonaws.bedrock#GuardrailPiiEntityConfig": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.bedrock#GuardrailPiiEntityType", + "traits": { + "smithy.api#documentation": "

Configure guardrail type when the PII entity is detected.

", + "smithy.api#required": {} + } + }, + "action": { + "target": "com.amazonaws.bedrock#GuardrailSensitiveInformationAction", + "traits": { + "smithy.api#documentation": "

Configure guardrail action when the PII entity is detected.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The PII entity to configure for the guardrail.

" + } + }, + "com.amazonaws.bedrock#GuardrailPiiEntityType": { + "type": "enum", + "members": { + "ADDRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ADDRESS" + } + }, + "AGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AGE" + } + }, + "AWS_ACCESS_KEY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_ACCESS_KEY" + } + }, + "AWS_SECRET_KEY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_SECRET_KEY" + } + }, + "CA_HEALTH_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CA_HEALTH_NUMBER" + } + }, + "CA_SOCIAL_INSURANCE_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CA_SOCIAL_INSURANCE_NUMBER" + } + }, + "CREDIT_DEBIT_CARD_CVV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREDIT_DEBIT_CARD_CVV" + } + }, + "CREDIT_DEBIT_CARD_EXPIRY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREDIT_DEBIT_CARD_EXPIRY" + } + }, + "CREDIT_DEBIT_CARD_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREDIT_DEBIT_CARD_NUMBER" + } + }, + "DRIVER_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DRIVER_ID" + } + }, + "EMAIL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EMAIL" + } + }, + "INTERNATIONAL_BANK_ACCOUNT_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERNATIONAL_BANK_ACCOUNT_NUMBER" + } + }, + "IP_ADDRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IP_ADDRESS" + } + }, + "LICENSE_PLATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LICENSE_PLATE" + } + }, + "MAC_ADDRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MAC_ADDRESS" + } + }, + "NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NAME" + } + }, + "PASSWORD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PASSWORD" + } + }, + "PHONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PHONE" + } + }, + "PIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PIN" + } + }, + "SWIFT_CODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SWIFT_CODE" + } + }, + "UK_NATIONAL_HEALTH_SERVICE_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UK_NATIONAL_HEALTH_SERVICE_NUMBER" + } + }, + "UK_NATIONAL_INSURANCE_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UK_NATIONAL_INSURANCE_NUMBER" + } + }, + "UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER" + } + }, + "URL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "URL" + } + }, + "USERNAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USERNAME" + } + }, + "US_BANK_ACCOUNT_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "US_BANK_ACCOUNT_NUMBER" + } + }, + "US_BANK_ROUTING_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "US_BANK_ROUTING_NUMBER" + } + }, + "US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER" + } + }, + "US_PASSPORT_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "US_PASSPORT_NUMBER" + } + }, + "US_SOCIAL_SECURITY_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "US_SOCIAL_SECURITY_NUMBER" + } + }, + "VEHICLE_IDENTIFICATION_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VEHICLE_IDENTIFICATION_NUMBER" + } + } + } + }, + "com.amazonaws.bedrock#GuardrailRegex": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the regular expression for the guardrail.

", + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#required": {} + } + }, + "description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The description of the regular expression for the guardrail.

", + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, + "pattern": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The pattern of the regular expression configured for the guardrail.

", + "smithy.api#length": { + "min": 1, + "max": 500 + }, + "smithy.api#required": {} + } + }, + "action": { + "target": "com.amazonaws.bedrock#GuardrailSensitiveInformationAction", + "traits": { + "smithy.api#documentation": "

The action taken when a match to the regular expression is detected.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The regular expression configured for the guardrail.

" + } + }, + "com.amazonaws.bedrock#GuardrailRegexConfig": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the regular expression to configure for the guardrail.

", + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#required": {} + } + }, + "description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The description of the regular expression to configure for the guardrail.

", + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, + "pattern": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The regular expression pattern to configure for the guardrail.

", + "smithy.api#length": { + "min": 1, + "max": 500 + }, + "smithy.api#required": {} + } + }, + "action": { + "target": "com.amazonaws.bedrock#GuardrailSensitiveInformationAction", + "traits": { + "smithy.api#documentation": "

The guardrail action to configure when matching regular expression is detected.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The regular expression to configure for the guardrail.

" + } + }, + "com.amazonaws.bedrock#GuardrailRegexes": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailRegex" + } + }, + "com.amazonaws.bedrock#GuardrailRegexesConfig": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailRegexConfig" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.bedrock#GuardrailSensitiveInformationAction": { + "type": "enum", + "members": { + "BLOCK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BLOCK" + } + }, + "ANONYMIZE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ANONYMIZE" + } + } + } + }, + "com.amazonaws.bedrock#GuardrailSensitiveInformationPolicy": { + "type": "structure", + "members": { + "piiEntities": { + "target": "com.amazonaws.bedrock#GuardrailPiiEntities", + "traits": { + "smithy.api#documentation": "

The list of PII entities configured for the guardrail.

" + } + }, + "regexes": { + "target": "com.amazonaws.bedrock#GuardrailRegexes", + "traits": { + "smithy.api#documentation": "

The list of regular expressions configured for the guardrail.

" + } } - ], + }, "traits": { - "smithy.api#documentation": "

Retrieves the properties associated with a model-customization job, including the status of the job.\n For more information, see Custom models in the Bedrock User Guide.

", - "smithy.api#http": { - "code": 200, - "method": "GET", - "uri": "/model-customization-jobs/{jobIdentifier}" - }, - "smithy.api#readonly": {} + "smithy.api#documentation": "

Contains details about PII entities and regular expressions configured for the guardrail.

" } }, - "com.amazonaws.bedrock#GetModelCustomizationJobRequest": { + "com.amazonaws.bedrock#GuardrailSensitiveInformationPolicyConfig": { "type": "structure", "members": { - "jobIdentifier": { - "target": "com.amazonaws.bedrock#ModelCustomizationJobIdentifier", + "piiEntitiesConfig": { + "target": "com.amazonaws.bedrock#GuardrailPiiEntitiesConfig", "traits": { - "smithy.api#documentation": "

Identifier for the customization job.

", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "

A list of PII entities to configure to the guardrail.

" + } + }, + "regexesConfig": { + "target": "com.amazonaws.bedrock#GuardrailRegexesConfig", + "traits": { + "smithy.api#documentation": "

A list of regular expressions to configure to the guardrail.

" } } }, "traits": { - "smithy.api#input": {} + "smithy.api#documentation": "

Contains details about PII entities and regular expressions to configure for the guardrail.

" } }, - "com.amazonaws.bedrock#GetModelCustomizationJobResponse": { - "type": "structure", + "com.amazonaws.bedrock#GuardrailStatus": { + "type": "enum", "members": { - "jobArn": { - "target": "com.amazonaws.bedrock#ModelCustomizationJobArn", + "CREATING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The ARN of the customization job.

", - "smithy.api#required": {} + "smithy.api#enumValue": "CREATING" } }, - "jobName": { - "target": "com.amazonaws.bedrock#JobName", + "UPDATING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The name of the customization job.

", - "smithy.api#required": {} + "smithy.api#enumValue": "UPDATING" } }, - "outputModelName": { - "target": "com.amazonaws.bedrock#CustomModelName", + "VERSIONING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The name of the output model.

", - "smithy.api#required": {} + "smithy.api#enumValue": "VERSIONING" } }, - "outputModelArn": { - "target": "com.amazonaws.bedrock#CustomModelArn", + "READY": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The ARN of the output model.

" + "smithy.api#enumValue": "READY" } }, - "clientRequestToken": { - "target": "com.amazonaws.bedrock#IdempotencyToken", + "FAILED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The token that you specified in the CreateCustomizationJob request.

" + "smithy.api#enumValue": "FAILED" } }, - "roleArn": { - "target": "com.amazonaws.bedrock#RoleArn", + "DELETING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The ARN of the IAM role.

", - "smithy.api#required": {} + "smithy.api#enumValue": "DELETING" } + } + } + }, + "com.amazonaws.bedrock#GuardrailStatusReason": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 }, - "status": { - "target": "com.amazonaws.bedrock#ModelCustomizationJobStatus", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrock#GuardrailStatusReasons": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailStatusReason" + }, + "traits": { + "smithy.api#length": { + "max": 100 + } + } + }, + "com.amazonaws.bedrock#GuardrailSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailSummary" + }, + "traits": { + "smithy.api#length": { + "max": 1000 + } + } + }, + "com.amazonaws.bedrock#GuardrailSummary": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bedrock#GuardrailId", "traits": { - "smithy.api#documentation": "

The status of the job. A successful job transitions from in-progress to completed when the output model is ready to use.\n If the job failed, the failure message contains information about why the job failed.

" + "smithy.api#documentation": "

The unique identifier of the guardrail.

", + "smithy.api#required": {} } }, - "failureMessage": { - "target": "com.amazonaws.bedrock#ErrorMessage", + "arn": { + "target": "com.amazonaws.bedrock#GuardrailArn", "traits": { - "smithy.api#documentation": "

Information about why the job failed.

" + "smithy.api#documentation": "

The ARN of the guardrail.

", + "smithy.api#required": {} } }, - "creationTime": { - "target": "com.amazonaws.bedrock#Timestamp", + "status": { + "target": "com.amazonaws.bedrock#GuardrailStatus", "traits": { - "smithy.api#documentation": "

Time that the resource was created.

", + "smithy.api#documentation": "

The status of the guardrail.

", "smithy.api#required": {} } }, - "lastModifiedTime": { - "target": "com.amazonaws.bedrock#Timestamp", + "name": { + "target": "com.amazonaws.bedrock#GuardrailName", "traits": { - "smithy.api#documentation": "

Time that the resource was last modified.

" + "smithy.api#documentation": "

The name of the guardrail.

", + "smithy.api#required": {} } }, - "endTime": { - "target": "com.amazonaws.bedrock#Timestamp", + "description": { + "target": "com.amazonaws.bedrock#GuardrailDescription", "traits": { - "smithy.api#documentation": "

Time that the resource transitioned to terminal state.

" + "smithy.api#documentation": "

A description of the guardrail.

" } }, - "baseModelArn": { - "target": "com.amazonaws.bedrock#FoundationModelArn", + "version": { + "target": "com.amazonaws.bedrock#GuardrailVersion", "traits": { - "smithy.api#documentation": "

ARN of the base model.

", + "smithy.api#documentation": "

The version of the guardrail.

", "smithy.api#required": {} } }, - "hyperParameters": { - "target": "com.amazonaws.bedrock#ModelCustomizationHyperParameters", + "createdAt": { + "target": "com.amazonaws.bedrock#Timestamp", "traits": { - "smithy.api#documentation": "

The hyperparameter values for the job. For information about hyperparameters for specific models, see Guidelines for model customization.

", + "smithy.api#documentation": "

The date and time at which the guardrail was created.

", "smithy.api#required": {} } }, - "trainingDataConfig": { - "target": "com.amazonaws.bedrock#TrainingDataConfig", + "updatedAt": { + "target": "com.amazonaws.bedrock#Timestamp", "traits": { + "smithy.api#documentation": "

The date and time at which the guardrail was last updated.

", "smithy.api#required": {} } - }, - "validationDataConfig": { - "target": "com.amazonaws.bedrock#ValidationDataConfig", + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about a guardrail.

\n

This data type is used in the following API operations:

\n " + } + }, + "com.amazonaws.bedrock#GuardrailTopic": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bedrock#GuardrailTopicName", "traits": { + "smithy.api#documentation": "

The name of the topic to deny.

", "smithy.api#required": {} } }, - "outputDataConfig": { - "target": "com.amazonaws.bedrock#OutputDataConfig", + "definition": { + "target": "com.amazonaws.bedrock#GuardrailTopicDefinition", "traits": { - "smithy.api#documentation": "

Output data configuration

", + "smithy.api#documentation": "

A definition of the topic to deny.

", "smithy.api#required": {} } }, - "customizationType": { - "target": "com.amazonaws.bedrock#CustomizationType", + "examples": { + "target": "com.amazonaws.bedrock#GuardrailTopicExamples", "traits": { - "smithy.api#documentation": "

The type of model customization.

" + "smithy.api#documentation": "

A list of prompts, each of which is an example of a prompt that can be categorized as belonging to the topic.

" } }, - "outputModelKmsKeyArn": { - "target": "com.amazonaws.bedrock#KmsKeyArn", + "type": { + "target": "com.amazonaws.bedrock#GuardrailTopicType", "traits": { - "smithy.api#documentation": "

The custom model is encrypted at rest using this key.

" + "smithy.api#documentation": "

Specifies to deny the topic.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about topics for the guardrail to identify and deny.

\n

This data type is used in the following API operations:

\n " + } + }, + "com.amazonaws.bedrock#GuardrailTopicConfig": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bedrock#GuardrailTopicName", + "traits": { + "smithy.api#documentation": "

The name of the topic to deny.

", + "smithy.api#required": {} } }, - "trainingMetrics": { - "target": "com.amazonaws.bedrock#TrainingMetrics" + "definition": { + "target": "com.amazonaws.bedrock#GuardrailTopicDefinition", + "traits": { + "smithy.api#documentation": "

A definition of the topic to deny.

", + "smithy.api#required": {} + } }, - "validationMetrics": { - "target": "com.amazonaws.bedrock#ValidationMetrics", + "examples": { + "target": "com.amazonaws.bedrock#GuardrailTopicExamples", "traits": { - "smithy.api#documentation": "

The loss metric for each validator that you provided in the createjob request.

" + "smithy.api#documentation": "

A list of prompts, each of which is an example of a prompt that can be categorized as belonging to the topic.

" } }, - "vpcConfig": { - "target": "com.amazonaws.bedrock#VpcConfig", + "type": { + "target": "com.amazonaws.bedrock#GuardrailTopicType", "traits": { - "smithy.api#documentation": "

VPC configuration for the custom model job.

" + "smithy.api#documentation": "

Specifies to deny the topic.

", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#output": {} + "smithy.api#documentation": "

Details about topics for the guardrail to identify and deny.

\n

This data type is used in the following API operations:

\n " } }, - "com.amazonaws.bedrock#GetModelInvocationLoggingConfiguration": { - "type": "operation", - "input": { - "target": "com.amazonaws.bedrock#GetModelInvocationLoggingConfigurationRequest" - }, - "output": { - "target": "com.amazonaws.bedrock#GetModelInvocationLoggingConfigurationResponse" - }, - "errors": [ - { - "target": "com.amazonaws.bedrock#AccessDeniedException" + "com.amazonaws.bedrock#GuardrailTopicDefinition": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 }, - { - "target": "com.amazonaws.bedrock#InternalServerException" + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrock#GuardrailTopicExample": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 }, - { - "target": "com.amazonaws.bedrock#ThrottlingException" + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrock#GuardrailTopicExamples": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailTopicExample" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 5 } - ], + } + }, + "com.amazonaws.bedrock#GuardrailTopicName": { + "type": "string", "traits": { - "smithy.api#documentation": "

Get the current configuration values for model invocation logging.

", - "smithy.api#http": { - "code": 200, - "method": "GET", - "uri": "/logging/modelinvocations" + "smithy.api#length": { + "min": 1, + "max": 100 }, - "smithy.api#readonly": {} + "smithy.api#pattern": "^[0-9a-zA-Z-_ !?.]+$", + "smithy.api#sensitive": {} } }, - "com.amazonaws.bedrock#GetModelInvocationLoggingConfigurationRequest": { + "com.amazonaws.bedrock#GuardrailTopicPolicy": { "type": "structure", - "members": {}, + "members": { + "topics": { + "target": "com.amazonaws.bedrock#GuardrailTopics", + "traits": { + "smithy.api#documentation": "

A list of policies related to topics that the guardrail should deny.

", + "smithy.api#required": {} + } + } + }, "traits": { - "smithy.api#input": {} + "smithy.api#documentation": "

Contains details about topics that the guardrail should identify and deny.

\n

This data type is used in the following API operations:

\n " } }, - "com.amazonaws.bedrock#GetModelInvocationLoggingConfigurationResponse": { + "com.amazonaws.bedrock#GuardrailTopicPolicyConfig": { "type": "structure", "members": { - "loggingConfig": { - "target": "com.amazonaws.bedrock#LoggingConfig", + "topicsConfig": { + "target": "com.amazonaws.bedrock#GuardrailTopicsConfig", "traits": { - "smithy.api#documentation": "

The current configuration values.

" + "smithy.api#documentation": "

A list of policies related to topics that the guardrail should deny.

", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#output": {} + "smithy.api#documentation": "

Contains details about topics that the guardrail should identify and deny.

\n

This data type is used in the following API operations:

\n " } }, - "com.amazonaws.bedrock#GetProvisionedModelThroughput": { - "type": "operation", - "input": { - "target": "com.amazonaws.bedrock#GetProvisionedModelThroughputRequest" + "com.amazonaws.bedrock#GuardrailTopicType": { + "type": "enum", + "members": { + "DENY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DENY" + } + } + } + }, + "com.amazonaws.bedrock#GuardrailTopics": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailTopic" }, - "output": { - "target": "com.amazonaws.bedrock#GetProvisionedModelThroughputResponse" + "traits": { + "smithy.api#length": { + "min": 1, + "max": 30 + } + } + }, + "com.amazonaws.bedrock#GuardrailTopicsConfig": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailTopicConfig" }, - "errors": [ - { - "target": "com.amazonaws.bedrock#AccessDeniedException" - }, - { - "target": "com.amazonaws.bedrock#InternalServerException" - }, - { - "target": "com.amazonaws.bedrock#ResourceNotFoundException" - }, - { - "target": "com.amazonaws.bedrock#ThrottlingException" - }, - { - "target": "com.amazonaws.bedrock#ValidationException" + "traits": { + "smithy.api#length": { + "min": 1, + "max": 30 } - ], + } + }, + "com.amazonaws.bedrock#GuardrailVersion": { + "type": "string", "traits": { - "smithy.api#documentation": "

Get details for a provisioned throughput. For more information, see Provisioned throughput in the Bedrock User Guide.

", - "smithy.api#http": { - "code": 200, - "method": "GET", - "uri": "/provisioned-model-throughput/{provisionedModelId}" - }, - "smithy.api#readonly": {} + "smithy.api#pattern": "^(([1-9][0-9]{0,7})|(DRAFT))$" } }, - "com.amazonaws.bedrock#GetProvisionedModelThroughputRequest": { + "com.amazonaws.bedrock#GuardrailWord": { "type": "structure", "members": { - "provisionedModelId": { - "target": "com.amazonaws.bedrock#ProvisionedModelId", + "text": { + "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The ARN or name of the provisioned throughput.

", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "

Text of the word configured for the guardrail to block.

", + "smithy.api#length": { + "min": 1, + "max": 100 + }, "smithy.api#required": {} } } }, "traits": { - "smithy.api#input": {} + "smithy.api#documentation": "

A word configured for the guardrail.

" } }, - "com.amazonaws.bedrock#GetProvisionedModelThroughputResponse": { + "com.amazonaws.bedrock#GuardrailWordConfig": { "type": "structure", "members": { - "modelUnits": { - "target": "com.amazonaws.bedrock#PositiveInteger", + "text": { + "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The current number of model units requested to be available for this provisioned throughput.

", + "smithy.api#documentation": "

Text of the word configured for the guardrail to block.

", + "smithy.api#length": { + "min": 1, + "max": 100 + }, "smithy.api#required": {} } - }, - "desiredModelUnits": { - "target": "com.amazonaws.bedrock#PositiveInteger", + } + }, + "traits": { + "smithy.api#documentation": "

A word to configure for the guardrail.

" + } + }, + "com.amazonaws.bedrock#GuardrailWordPolicy": { + "type": "structure", + "members": { + "words": { + "target": "com.amazonaws.bedrock#GuardrailWords", "traits": { - "smithy.api#documentation": "

The desired number of model units that was requested to be available for this provisioned throughput.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A list of words configured for the guardrail.

" } }, - "provisionedModelName": { - "target": "com.amazonaws.bedrock#ProvisionedModelName", + "managedWordLists": { + "target": "com.amazonaws.bedrock#GuardrailManagedWordLists", "traits": { - "smithy.api#documentation": "

The name of the provisioned throughput.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A list of managed words configured for the guardrail.

" } - }, - "provisionedModelArn": { - "target": "com.amazonaws.bedrock#ProvisionedModelArn", + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the word policy configured for the guardrail.

" + } + }, + "com.amazonaws.bedrock#GuardrailWordPolicyConfig": { + "type": "structure", + "members": { + "wordsConfig": { + "target": "com.amazonaws.bedrock#GuardrailWordsConfig", "traits": { - "smithy.api#documentation": "

The ARN of the provisioned throughput.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A list of words to configure for the guardrail.

" } }, - "modelArn": { - "target": "com.amazonaws.bedrock#ModelArn", + "managedWordListsConfig": { + "target": "com.amazonaws.bedrock#GuardrailManagedWordListsConfig", "traits": { - "smithy.api#documentation": "

The ARN or name of the model associated with this provisioned throughput.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A list of managed words to configure for the guardrail.

" } - }, - "desiredModelArn": { - "target": "com.amazonaws.bedrock#ModelArn", + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the word policy to configured for the guardrail.

" + } + }, + "com.amazonaws.bedrock#GuardrailWords": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailWord" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10000 + } + } + }, + "com.amazonaws.bedrock#GuardrailWordsConfig": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#GuardrailWordConfig" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10000 + } + } + }, + "com.amazonaws.bedrock#GuardrailsResource": { + "type": "resource", + "identifiers": { + "guardrailIdentifier": { + "target": "com.amazonaws.bedrock#GuardrailIdentifier" + } + }, + "create": { + "target": "com.amazonaws.bedrock#CreateGuardrail" + }, + "read": { + "target": "com.amazonaws.bedrock#GetGuardrail" + }, + "update": { + "target": "com.amazonaws.bedrock#UpdateGuardrail" + }, + "delete": { + "target": "com.amazonaws.bedrock#DeleteGuardrail" + }, + "list": { + "target": "com.amazonaws.bedrock#ListGuardrails" + }, + "operations": [ + { + "target": "com.amazonaws.bedrock#CreateGuardrailVersion" + } + ], + "traits": { + "aws.cloudformation#cfnResource": { + "name": "Guardrail" + } + } + }, + "com.amazonaws.bedrock#HumanEvaluationConfig": { + "type": "structure", + "members": { + "humanWorkflowConfig": { + "target": "com.amazonaws.bedrock#HumanWorkflowConfig", "traits": { - "smithy.api#documentation": "

The ARN of the new model to asssociate with this provisioned throughput.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The parameters of the human workflow.

" } }, - "foundationModelArn": { - "target": "com.amazonaws.bedrock#FoundationModelArn", + "customMetrics": { + "target": "com.amazonaws.bedrock#HumanEvaluationCustomMetrics", "traits": { - "smithy.api#documentation": "

ARN of the foundation model.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A HumanEvaluationCustomMetric object. It contains the names the metrics, how the metrics are to be evaluated, an optional description.

" } }, - "status": { - "target": "com.amazonaws.bedrock#ProvisionedModelStatus", + "datasetMetricConfigs": { + "target": "com.amazonaws.bedrock#EvaluationDatasetMetricConfigs", "traits": { - "smithy.api#documentation": "

Status of the provisioned throughput.

", + "smithy.api#documentation": "

Use to specify the metrics, task, and prompt dataset to be used in your model evaluation job.

", "smithy.api#required": {} } - }, - "creationTime": { - "target": "com.amazonaws.bedrock#Timestamp", + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the custom metrics, how tasks will be rated, the flow definition ARN, and your custom prompt datasets. Model evaluation jobs use human workers only support the use of custom prompt datasets. To learn more about custom prompt datasets and the required format, see Custom prompt datasets.

\n

When you create custom metrics in HumanEvaluationCustomMetric you must specify the metric's name. The list of names specified in the HumanEvaluationCustomMetric array, must match the metricNames array of strings specified in EvaluationDatasetMetricConfig. For example, if in the HumanEvaluationCustomMetric array your specified the names \"accuracy\", \"toxicity\", \"readability\" as custom metrics then the metricNames array would need to look like the following [\"accuracy\", \"toxicity\", \"readability\"] in EvaluationDatasetMetricConfig.

" + } + }, + "com.amazonaws.bedrock#HumanEvaluationCustomMetric": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bedrock#EvaluationMetricName", "traits": { - "smithy.api#documentation": "

The timestamp of the creation time for this provisioned throughput.

", + "smithy.api#documentation": "

The name of the metric. Your human evaluators will see this name in the evaluation UI.

", "smithy.api#required": {} } }, - "lastModifiedTime": { - "target": "com.amazonaws.bedrock#Timestamp", + "description": { + "target": "com.amazonaws.bedrock#EvaluationMetricDescription", "traits": { - "smithy.api#documentation": "

The timestamp of the last modified time of this provisioned throughput.

", - "smithy.api#required": {} + "smithy.api#documentation": "

An optional description of the metric. Use this parameter to provide more details about the metric.

" } }, - "failureMessage": { - "target": "com.amazonaws.bedrock#ErrorMessage", + "ratingMethod": { + "target": "com.amazonaws.bedrock#EvaluationRatingMethod", "traits": { - "smithy.api#documentation": "

Failure message for any issues that the create operation encounters.

" + "smithy.api#documentation": "

Choose how you want your human workers to evaluation your model. Valid values for rating methods are ThumbsUpDown, IndividualLikertScale,ComparisonLikertScale, ComparisonChoice, and ComparisonRank\n

", + "smithy.api#required": {} } + } + }, + "traits": { + "smithy.api#documentation": "

In a model evaluation job that uses human workers you must\n define the name of the metric, and how you want that metric rated\n ratingMethod, and an optional description of the metric.

" + } + }, + "com.amazonaws.bedrock#HumanEvaluationCustomMetrics": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrock#HumanEvaluationCustomMetric" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.bedrock#HumanTaskInstructions": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5000 }, - "commitmentDuration": { - "target": "com.amazonaws.bedrock#CommitmentDuration", + "smithy.api#pattern": "^[\\S\\s]+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrock#HumanWorkflowConfig": { + "type": "structure", + "members": { + "flowDefinitionArn": { + "target": "com.amazonaws.bedrock#SageMakerFlowDefinitionArn", "traits": { - "smithy.api#documentation": "

Commitment duration of the provisioned throughput.

" + "smithy.api#documentation": "

The Amazon Resource Number (ARN) for the flow definition

", + "smithy.api#required": {} } }, - "commitmentExpirationTime": { - "target": "com.amazonaws.bedrock#Timestamp", + "instructions": { + "target": "com.amazonaws.bedrock#HumanTaskInstructions", "traits": { - "smithy.api#documentation": "

Commitment expiration time for the provisioned throughput.

" + "smithy.api#documentation": "

Instructions for the flow definition

" } } }, "traits": { - "smithy.api#output": {} + "smithy.api#documentation": "

Contains SageMakerFlowDefinition object. The object is used to specify the prompt dataset, task type, rating method and metric names.

" } }, "com.amazonaws.bedrock#IdempotencyToken": { @@ -2263,7 +4868,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of the custom models that you have created with the CreateModelCustomizationJob operation.

\n

For more information, see Custom models in the Bedrock User Guide.

", + "smithy.api#documentation": "

Returns a list of the custom models that you have created with the CreateModelCustomizationJob operation.

\n

For more information, see Custom models in the Amazon Bedrock User Guide.

", "smithy.api#http": { "code": 200, "method": "GET", @@ -2302,24 +4907,146 @@ "smithy.api#httpQuery": "nameContains" } }, - "baseModelArnEquals": { - "target": "com.amazonaws.bedrock#ModelArn", + "baseModelArnEquals": { + "target": "com.amazonaws.bedrock#ModelArn", + "traits": { + "smithy.api#documentation": "

Return custom models only if the base model Amazon Resource Name (ARN) matches this parameter.

", + "smithy.api#httpQuery": "baseModelArnEquals" + } + }, + "foundationModelArnEquals": { + "target": "com.amazonaws.bedrock#FoundationModelArn", + "traits": { + "smithy.api#documentation": "

Return custom models only if the foundation model Amazon Resource Name (ARN) matches this parameter.

", + "smithy.api#httpQuery": "foundationModelArnEquals" + } + }, + "maxResults": { + "target": "com.amazonaws.bedrock#MaxResults", + "traits": { + "smithy.api#documentation": "

Maximum number of results to return in the response.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.bedrock#PaginationToken", + "traits": { + "smithy.api#documentation": "

Continuation token from the previous response, for Amazon Bedrock to list the next set of results.

", + "smithy.api#httpQuery": "nextToken" + } + }, + "sortBy": { + "target": "com.amazonaws.bedrock#SortModelsBy", + "traits": { + "smithy.api#documentation": "

The field to sort by in the returned list of models.

", + "smithy.api#httpQuery": "sortBy" + } + }, + "sortOrder": { + "target": "com.amazonaws.bedrock#SortOrder", + "traits": { + "smithy.api#documentation": "

The sort order of the results.

", + "smithy.api#httpQuery": "sortOrder" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#ListCustomModelsResponse": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.bedrock#PaginationToken", + "traits": { + "smithy.api#documentation": "

Continuation token for the next request to list the next set of results.

" + } + }, + "modelSummaries": { + "target": "com.amazonaws.bedrock#CustomModelSummaryList", + "traits": { + "smithy.api#documentation": "

Model summaries.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bedrock#ListEvaluationJobs": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#ListEvaluationJobsRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#ListEvaluationJobsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists model evaluation jobs.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/evaluation-jobs" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "jobSummaries" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrock#ListEvaluationJobsRequest": { + "type": "structure", + "members": { + "creationTimeAfter": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

A filter that includes model evaluation jobs created after the time specified.

", + "smithy.api#httpQuery": "creationTimeAfter" + } + }, + "creationTimeBefore": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

A filter that includes model evaluation jobs created prior to the time specified.

", + "smithy.api#httpQuery": "creationTimeBefore" + } + }, + "statusEquals": { + "target": "com.amazonaws.bedrock#EvaluationJobStatus", "traits": { - "smithy.api#documentation": "

Return custom models only if the base model ARN matches this parameter.

", - "smithy.api#httpQuery": "baseModelArnEquals" + "smithy.api#documentation": "

Only return jobs where the status condition is met.

", + "smithy.api#httpQuery": "statusEquals" } }, - "foundationModelArnEquals": { - "target": "com.amazonaws.bedrock#FoundationModelArn", + "nameContains": { + "target": "com.amazonaws.bedrock#EvaluationJobName", "traits": { - "smithy.api#documentation": "

Return custom models only if the foundation model ARN matches this parameter.

", - "smithy.api#httpQuery": "foundationModelArnEquals" + "smithy.api#documentation": "

Query parameter string for model evaluation job names.

", + "smithy.api#httpQuery": "nameContains" } }, "maxResults": { "target": "com.amazonaws.bedrock#MaxResults", "traits": { - "smithy.api#documentation": "

Maximum number of results to return in the response.

", + "smithy.api#documentation": "

The maximum number of results to return.

", "smithy.api#httpQuery": "maxResults" } }, @@ -2331,16 +5058,16 @@ } }, "sortBy": { - "target": "com.amazonaws.bedrock#SortModelsBy", + "target": "com.amazonaws.bedrock#SortJobsBy", "traits": { - "smithy.api#documentation": "

The field to sort by in the returned list of models.

", + "smithy.api#documentation": "

Allows you to sort model evaluation jobs by when they were created.

", "smithy.api#httpQuery": "sortBy" } }, "sortOrder": { "target": "com.amazonaws.bedrock#SortOrder", "traits": { - "smithy.api#documentation": "

The sort order of the results.

", + "smithy.api#documentation": "

How you want the order of jobs sorted.

", "smithy.api#httpQuery": "sortOrder" } } @@ -2349,19 +5076,19 @@ "smithy.api#input": {} } }, - "com.amazonaws.bedrock#ListCustomModelsResponse": { + "com.amazonaws.bedrock#ListEvaluationJobsResponse": { "type": "structure", "members": { "nextToken": { "target": "com.amazonaws.bedrock#PaginationToken", "traits": { - "smithy.api#documentation": "

Continuation token for the next request to list the next set of results.

" + "smithy.api#documentation": "

Continuation token from the previous response, for Amazon Bedrock to list the next set of results.

" } }, - "modelSummaries": { - "target": "com.amazonaws.bedrock#CustomModelSummaryList", + "jobSummaries": { + "target": "com.amazonaws.bedrock#EvaluationSummaries", "traits": { - "smithy.api#documentation": "

Model summaries.

" + "smithy.api#documentation": "

A summary of the model evaluation jobs.

" } } }, @@ -2392,7 +5119,7 @@ } ], "traits": { - "smithy.api#documentation": "

List of Amazon Bedrock foundation models that you can use. For more information, see Foundation models in the Bedrock User Guide.

", + "smithy.api#documentation": "

Lists Amazon Bedrock foundation models that you can use. You can filter the results with the request parameters. For more information, see Foundation models in the Amazon Bedrock User Guide.

", "smithy.api#http": { "code": 200, "method": "GET", @@ -2407,28 +5134,28 @@ "byProvider": { "target": "com.amazonaws.bedrock#Provider", "traits": { - "smithy.api#documentation": "

A Amazon Bedrock model provider.

", + "smithy.api#documentation": "

Return models belonging to the model provider that you specify.

", "smithy.api#httpQuery": "byProvider" } }, "byCustomizationType": { "target": "com.amazonaws.bedrock#ModelCustomization", "traits": { - "smithy.api#documentation": "

List by customization type.

", + "smithy.api#documentation": "

Return models that support the customization type that you specify. For more information, see Custom models in the Amazon Bedrock User Guide.

", "smithy.api#httpQuery": "byCustomizationType" } }, "byOutputModality": { "target": "com.amazonaws.bedrock#ModelModality", "traits": { - "smithy.api#documentation": "

List by output modality type.

", + "smithy.api#documentation": "

Return models that support the output modality that you specify.

", "smithy.api#httpQuery": "byOutputModality" } }, "byInferenceType": { "target": "com.amazonaws.bedrock#InferenceType", "traits": { - "smithy.api#documentation": "

List by inference type.

", + "smithy.api#documentation": "

Return models that support the inference type that you specify. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide.

", "smithy.api#httpQuery": "byInferenceType" } } @@ -2451,6 +5178,97 @@ "smithy.api#output": {} } }, + "com.amazonaws.bedrock#ListGuardrails": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#ListGuardrailsRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#ListGuardrailsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists details about all the guardrails in an account. To list the DRAFT version of all your guardrails, don't specify the guardrailIdentifier field. To list all versions of a guardrail, specify the ARN of the guardrail in the guardrailIdentifier field.

\n

You can set the maximum number of results to return in a response in the maxResults field. If there are more results than the number you set, the response returns a nextToken that you can send in another ListGuardrails request to see the next batch of results.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/guardrails" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "guardrails" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bedrock#ListGuardrailsRequest": { + "type": "structure", + "members": { + "guardrailIdentifier": { + "target": "com.amazonaws.bedrock#GuardrailIdentifier", + "traits": { + "smithy.api#documentation": "

The unique identifier of the guardrail.

", + "smithy.api#httpQuery": "guardrailIdentifier" + } + }, + "maxResults": { + "target": "com.amazonaws.bedrock#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return in the response.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.bedrock#PaginationToken", + "traits": { + "smithy.api#documentation": "

If there are more results than were returned in the response, the response returns a nextToken that you can send in another ListGuardrails request to see the next batch of results.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#ListGuardrailsResponse": { + "type": "structure", + "members": { + "guardrails": { + "target": "com.amazonaws.bedrock#GuardrailSummaries", + "traits": { + "smithy.api#documentation": "

A list of objects, each of which contains details about a guardrail.

", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.bedrock#PaginationToken", + "traits": { + "smithy.api#documentation": "

If there are more results than were returned in the response, the response returns a nextToken that you can send in another ListGuardrails request to see the next batch of results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.bedrock#ListModelCustomizationJobs": { "type": "operation", "input": { @@ -2474,7 +5292,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of model customization jobs that you have submitted. You can filter the jobs to return based on\n one or more criteria.

\n

For more information, see Custom models in the Bedrock User Guide.

", + "smithy.api#documentation": "

Returns a list of model customization jobs that you have submitted. You can filter the jobs to return based on\n one or more criteria.

\n

For more information, see Custom models in the Amazon Bedrock User Guide.

", "smithy.api#http": { "code": 200, "method": "GET", @@ -2596,7 +5414,7 @@ } ], "traits": { - "smithy.api#documentation": "

List the provisioned capacities. For more information, see Provisioned throughput in the Bedrock User Guide.

", + "smithy.api#documentation": "

Lists the Provisioned Throughputs in the account. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide.

", "smithy.api#http": { "code": 200, "method": "GET", @@ -2617,56 +5435,56 @@ "creationTimeAfter": { "target": "com.amazonaws.bedrock#Timestamp", "traits": { - "smithy.api#documentation": "

Return provisioned capacities created after the specified time.

", + "smithy.api#documentation": "

A filter that returns Provisioned Throughputs created after the specified time.

", "smithy.api#httpQuery": "creationTimeAfter" } }, "creationTimeBefore": { "target": "com.amazonaws.bedrock#Timestamp", "traits": { - "smithy.api#documentation": "

Return provisioned capacities created before the specified time.

", + "smithy.api#documentation": "

A filter that returns Provisioned Throughputs created before the specified time.

", "smithy.api#httpQuery": "creationTimeBefore" } }, "statusEquals": { "target": "com.amazonaws.bedrock#ProvisionedModelStatus", "traits": { - "smithy.api#documentation": "

Return the list of provisioned capacities that match the specified status.

", + "smithy.api#documentation": "

A filter that returns Provisioned Throughputs if their statuses matches the value that you specify.

", "smithy.api#httpQuery": "statusEquals" } }, "modelArnEquals": { "target": "com.amazonaws.bedrock#ModelArn", "traits": { - "smithy.api#documentation": "

Return the list of provisioned capacities where their model ARN is equal to this parameter.

", + "smithy.api#documentation": "

A filter that returns Provisioned Throughputs whose model Amazon Resource Name (ARN) is equal to the value that you specify.

", "smithy.api#httpQuery": "modelArnEquals" } }, "nameContains": { "target": "com.amazonaws.bedrock#ProvisionedModelName", "traits": { - "smithy.api#documentation": "

Return the list of provisioned capacities if their name contains these characters.

", + "smithy.api#documentation": "

A filter that returns Provisioned Throughputs if their name contains the expression that you specify.

", "smithy.api#httpQuery": "nameContains" } }, "maxResults": { "target": "com.amazonaws.bedrock#MaxResults", "traits": { - "smithy.api#documentation": "

THe maximum number of results to return in the response.

", + "smithy.api#documentation": "

THe maximum number of results to return in the response. If there are more results than the number you specified, the response returns a nextToken\n value. To see the next batch of results, send the nextToken value in another list request.

", "smithy.api#httpQuery": "maxResults" } }, "nextToken": { "target": "com.amazonaws.bedrock#PaginationToken", "traits": { - "smithy.api#documentation": "

Continuation token from the previous response, for Amazon Bedrock to list the next set of results.

", + "smithy.api#documentation": "

If there are more results than the number you specified in the maxResults field, the response returns a nextToken\n value. To see the next batch of results, specify the nextToken value in this field.

", "smithy.api#httpQuery": "nextToken" } }, "sortBy": { "target": "com.amazonaws.bedrock#SortByProvisionedModels", "traits": { - "smithy.api#documentation": "

The field to sort by in the returned list of provisioned capacities.

", + "smithy.api#documentation": "

The field by which to sort the returned list of Provisioned Throughputs.

", "smithy.api#httpQuery": "sortBy" } }, @@ -2688,13 +5506,13 @@ "nextToken": { "target": "com.amazonaws.bedrock#PaginationToken", "traits": { - "smithy.api#documentation": "

Continuation token for the next request to list the next set of results.

" + "smithy.api#documentation": "

If there are more results than the number you specified in the maxResults field, this value is returned. To see the next batch of results, include this value in the nextToken field in another list request.

" } }, "provisionedModelSummaries": { "target": "com.amazonaws.bedrock#ProvisionedModelSummaries", "traits": { - "smithy.api#documentation": "

List of summaries, one for each provisioned throughput in the response.

" + "smithy.api#documentation": "

A list of summaries, one for each Provisioned Throughput in the response.

" } } }, @@ -2728,7 +5546,7 @@ } ], "traits": { - "smithy.api#documentation": "

List the tags associated with the specified resource.

\n

For more information, see Tagging resources in the Bedrock User Guide.

", + "smithy.api#documentation": "

List the tags associated with the specified resource.

\n

For more information, see Tagging resources in the Amazon Bedrock User Guide.

", "smithy.api#http": { "code": 200, "method": "POST", @@ -2742,7 +5560,7 @@ "resourceARN": { "target": "com.amazonaws.bedrock#TaggableResourcesArn", "traits": { - "smithy.api#documentation": "

The ARN of the resource.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource.

", "smithy.api#required": {} } } @@ -2809,7 +5627,7 @@ } }, "traits": { - "smithy.api#documentation": "

Configuration fields for invokation logging.

" + "smithy.api#documentation": "

Configuration fields for invocation logging.

" } }, "com.amazonaws.bedrock#LoggingResource": { @@ -2939,14 +5757,14 @@ "jobArn": { "target": "com.amazonaws.bedrock#ModelCustomizationJobArn", "traits": { - "smithy.api#documentation": "

ARN of the customization job.

", + "smithy.api#documentation": "

Amazon Resource Name (ARN) of the customization job.

", "smithy.api#required": {} } }, "baseModelArn": { "target": "com.amazonaws.bedrock#ModelArn", "traits": { - "smithy.api#documentation": "

ARN of the base model.

", + "smithy.api#documentation": "

Amazon Resource Name (ARN) of the base model.

", "smithy.api#required": {} } }, @@ -2986,7 +5804,7 @@ "customModelArn": { "target": "com.amazonaws.bedrock#CustomModelArn", "traits": { - "smithy.api#documentation": "

ARN of the custom model.

" + "smithy.api#documentation": "

Amazon Resource Name (ARN) of the custom model.

" } }, "customModelName": { @@ -3189,88 +6007,88 @@ "provisionedModelName": { "target": "com.amazonaws.bedrock#ProvisionedModelName", "traits": { - "smithy.api#documentation": "

The name of the provisioned throughput.

", + "smithy.api#documentation": "

The name of the Provisioned Throughput.

", "smithy.api#required": {} } }, "provisionedModelArn": { "target": "com.amazonaws.bedrock#ProvisionedModelArn", "traits": { - "smithy.api#documentation": "

The ARN of the provisioned throughput.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Provisioned Throughput.

", "smithy.api#required": {} } }, "modelArn": { "target": "com.amazonaws.bedrock#ModelArn", "traits": { - "smithy.api#documentation": "

The ARN of the model associated with this provisioned throughput.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the model associated with the Provisioned Throughput.

", "smithy.api#required": {} } }, "desiredModelArn": { "target": "com.amazonaws.bedrock#ModelArn", "traits": { - "smithy.api#documentation": "

Desired model ARN.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the model requested to be associated to this Provisioned Throughput. This value differs from the modelArn if updating hasn't completed.

", "smithy.api#required": {} } }, "foundationModelArn": { "target": "com.amazonaws.bedrock#FoundationModelArn", "traits": { - "smithy.api#documentation": "

Foundation model ARN.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the base model for which the Provisioned Throughput was created, or of the base model that the custom model for which the Provisioned Throughput was created was customized.

", "smithy.api#required": {} } }, "modelUnits": { "target": "com.amazonaws.bedrock#PositiveInteger", "traits": { - "smithy.api#documentation": "

The number of model units allocated.

", + "smithy.api#documentation": "

The number of model units allocated to the Provisioned Throughput.

", "smithy.api#required": {} } }, "desiredModelUnits": { "target": "com.amazonaws.bedrock#PositiveInteger", "traits": { - "smithy.api#documentation": "

Desired model units.

", + "smithy.api#documentation": "

The number of model units that was requested to be allocated to the Provisioned Throughput.

", "smithy.api#required": {} } }, "status": { "target": "com.amazonaws.bedrock#ProvisionedModelStatus", "traits": { - "smithy.api#documentation": "

Status of the provisioned throughput.

", + "smithy.api#documentation": "

The status of the Provisioned Throughput.

", "smithy.api#required": {} } }, "commitmentDuration": { "target": "com.amazonaws.bedrock#CommitmentDuration", "traits": { - "smithy.api#documentation": "

Commitment duration for the provisioned throughput.

" + "smithy.api#documentation": "

The duration for which the Provisioned Throughput was committed.

" } }, "commitmentExpirationTime": { "target": "com.amazonaws.bedrock#Timestamp", "traits": { - "smithy.api#documentation": "

Commitment expiration time for the provisioned throughput.

" + "smithy.api#documentation": "

The timestamp for when the commitment term of the Provisioned Throughput expires.

" } }, "creationTime": { "target": "com.amazonaws.bedrock#Timestamp", "traits": { - "smithy.api#documentation": "

The time that this provisioned throughput was created.

", + "smithy.api#documentation": "

The time that the Provisioned Throughput was created.

", "smithy.api#required": {} } }, "lastModifiedTime": { "target": "com.amazonaws.bedrock#Timestamp", "traits": { - "smithy.api#documentation": "

The time that this provisioned throughput was last modified.

", + "smithy.api#documentation": "

The time that the Provisioned Throughput was last modified.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Set of fields associated with a provisioned throughput.

" + "smithy.api#documentation": "

A summary of information about a Provisioned Throughput.

\n

This data type is used in the following API operations:

\n " } }, "com.amazonaws.bedrock#ProvisionedModelThroughputResource": { @@ -3355,7 +6173,7 @@ } }, "traits": { - "smithy.api#documentation": "

The specified resource ARN was not found. Check the ARN and try your request again.

", + "smithy.api#documentation": "

The specified resource Amazon Resource Name (ARN) was not found. Check the Amazon Resource Name (ARN) and try your request again.

", "smithy.api#error": "client", "smithy.api#httpError": 404 } @@ -3400,6 +6218,15 @@ "smithy.api#pattern": "^s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?$" } }, + "com.amazonaws.bedrock#SageMakerFlowDefinitionArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 1024 + }, + "smithy.api#pattern": "^arn:aws(-[^:]+)?:sagemaker:[a-z0-9-]{1,20}:[0-9]{12}:flow-definition/.*$" + } + }, "com.amazonaws.bedrock#SecurityGroupId": { "type": "string", "traits": { @@ -3484,6 +6311,66 @@ } } }, + "com.amazonaws.bedrock#StopEvaluationJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#StopEvaluationJobRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#StopEvaluationJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#ConflictException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Stops an in progress model evaluation job.

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/evaluation-job/{jobIdentifier}/stop" + } + } + }, + "com.amazonaws.bedrock#StopEvaluationJobRequest": { + "type": "structure", + "members": { + "jobIdentifier": { + "target": "com.amazonaws.bedrock#EvaluationJobIdentifier", + "traits": { + "smithy.api#documentation": "

The ARN of the model evaluation job you want to stop.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#StopEvaluationJobResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.bedrock#StopModelCustomizationJob": { "type": "operation", "input": { @@ -3513,7 +6400,7 @@ } ], "traits": { - "smithy.api#documentation": "

Stops an active model customization job. For more information, see Custom models in the Bedrock User Guide.

", + "smithy.api#documentation": "

Stops an active model customization job. For more information, see Custom models in the Amazon Bedrock User Guide.

", "smithy.api#http": { "code": 200, "method": "POST", @@ -3654,7 +6541,7 @@ } ], "traits": { - "smithy.api#documentation": "

Associate tags with a resource. For more information, see Tagging resources in the Bedrock User Guide.

", + "smithy.api#documentation": "

Associate tags with a resource. For more information, see Tagging resources in the Amazon Bedrock User Guide.

", "smithy.api#http": { "code": 200, "method": "POST", @@ -3668,7 +6555,7 @@ "resourceARN": { "target": "com.amazonaws.bedrock#TaggableResourcesArn", "traits": { - "smithy.api#documentation": "

The ARN of the resource to tag.

", + "smithy.api#documentation": "

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

", "smithy.api#required": {} } }, @@ -3708,7 +6595,7 @@ "min": 20, "max": 1011 }, - "smithy.api#pattern": "(^[a-zA-Z0-9][a-zA-Z0-9\\-]*$)|(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:([0-9]{12}|)((:(fine-tuning-job|model-customization-job|custom-model)/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12})$)|(:provisioned-model/[a-z0-9]{12}$)))" + "smithy.api#pattern": "(^[a-zA-Z0-9][a-zA-Z0-9\\-]*$)|(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:([0-9]{12}|)((:(fine-tuning-job|model-customization-job|custom-model)/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}(/[a-z0-9]{12})$)|(:provisioned-model/[a-z0-9]{12}$)|(:guardrail/[a-z0-9]+$)|(:evaluation-job/[a-z0-9]{12}$)))" } }, "com.amazonaws.bedrock#TaggingResource": { @@ -3758,7 +6645,7 @@ } }, "traits": { - "smithy.api#documentation": "

The request contains more tags than can be associated with a resource (50 tags per resource). \n The maximum number of tags includes both existing tags and those included in your current request.

", + "smithy.api#documentation": "

The request contains more tags than can be associated with a resource (50 tags per resource).\n The maximum number of tags includes both existing tags and those included in your current request.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -3835,7 +6722,7 @@ } ], "traits": { - "smithy.api#documentation": "

Remove one or more tags from a resource. For more information, see Tagging resources in the Bedrock User Guide.

", + "smithy.api#documentation": "

Remove one or more tags from a resource. For more information, see Tagging resources in the Amazon Bedrock User Guide.

", "smithy.api#http": { "code": 200, "method": "POST", @@ -3849,7 +6736,7 @@ "resourceARN": { "target": "com.amazonaws.bedrock#TaggableResourcesArn", "traits": { - "smithy.api#documentation": "

The ARN of the resource to untag.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource to untag.

", "smithy.api#required": {} } }, @@ -3872,6 +6759,156 @@ "smithy.api#output": {} } }, + "com.amazonaws.bedrock#UpdateGuardrail": { + "type": "operation", + "input": { + "target": "com.amazonaws.bedrock#UpdateGuardrailRequest" + }, + "output": { + "target": "com.amazonaws.bedrock#UpdateGuardrailResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bedrock#AccessDeniedException" + }, + { + "target": "com.amazonaws.bedrock#ConflictException" + }, + { + "target": "com.amazonaws.bedrock#InternalServerException" + }, + { + "target": "com.amazonaws.bedrock#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bedrock#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.bedrock#ThrottlingException" + }, + { + "target": "com.amazonaws.bedrock#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a guardrail with the values you specify.

\n
    \n
  • \n

    Specify a name and optional description.

    \n
  • \n
  • \n

    Specify messages for when the guardrail successfully blocks a prompt or a model response in the blockedInputMessaging and blockedOutputsMessaging fields.

    \n
  • \n
  • \n

    Specify topics for the guardrail to deny in the topicPolicyConfig object. Each GuardrailTopicConfig object in the topicsConfig list pertains to one topic.

    \n
      \n
    • \n

      Give a name and description so that the guardrail can properly identify the topic.

      \n
    • \n
    • \n

      Specify DENY in the type field.

      \n
    • \n
    • \n

      (Optional) Provide up to five prompts that you would categorize as belonging to the topic in the examples list.

      \n
    • \n
    \n
  • \n
  • \n

    Specify filter strengths for the harmful categories defined in Amazon Bedrock in the contentPolicyConfig object. Each GuardrailContentFilterConfig object in the filtersConfig list pertains to a harmful category. For more information, see Content filters. For more information about the fields in a content filter, see GuardrailContentFilterConfig.

    \n
      \n
    • \n

      Specify the category in the type field.

      \n
    • \n
    • \n

      Specify the strength of the filter for prompts in the inputStrength field and for model responses in the strength field of the GuardrailContentFilterConfig.

      \n
    • \n
    \n
  • \n
  • \n

    (Optional) For security, include the ARN of a KMS key in the kmsKeyId field.

    \n
  • \n
  • \n

    (Optional) Attach any tags to the guardrail in the tags object. For more information, see Tag resources.

    \n
  • \n
", + "smithy.api#http": { + "code": 202, + "method": "PUT", + "uri": "/guardrails/{guardrailIdentifier}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bedrock#UpdateGuardrailRequest": { + "type": "structure", + "members": { + "guardrailIdentifier": { + "target": "com.amazonaws.bedrock#GuardrailIdentifier", + "traits": { + "smithy.api#documentation": "

The unique identifier of the guardrail

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.bedrock#GuardrailName", + "traits": { + "smithy.api#documentation": "

A name for the guardrail.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.bedrock#GuardrailDescription", + "traits": { + "smithy.api#documentation": "

A description of the guardrail.

" + } + }, + "topicPolicyConfig": { + "target": "com.amazonaws.bedrock#GuardrailTopicPolicyConfig", + "traits": { + "smithy.api#documentation": "

The topic policy to configure for the guardrail.

" + } + }, + "contentPolicyConfig": { + "target": "com.amazonaws.bedrock#GuardrailContentPolicyConfig", + "traits": { + "smithy.api#documentation": "

The content policy to configure for the guardrail.

" + } + }, + "wordPolicyConfig": { + "target": "com.amazonaws.bedrock#GuardrailWordPolicyConfig", + "traits": { + "smithy.api#documentation": "

The word policy to configure for the guardrail.

" + } + }, + "sensitiveInformationPolicyConfig": { + "target": "com.amazonaws.bedrock#GuardrailSensitiveInformationPolicyConfig", + "traits": { + "smithy.api#documentation": "

The sensitive information policy to configure for the guardrail.

" + } + }, + "blockedInputMessaging": { + "target": "com.amazonaws.bedrock#GuardrailBlockedMessaging", + "traits": { + "smithy.api#documentation": "

The message to return when the guardrail blocks a prompt.

", + "smithy.api#required": {} + } + }, + "blockedOutputsMessaging": { + "target": "com.amazonaws.bedrock#GuardrailBlockedMessaging", + "traits": { + "smithy.api#documentation": "

The message to return when the guardrail blocks a model response.

", + "smithy.api#required": {} + } + }, + "kmsKeyId": { + "target": "com.amazonaws.bedrock#KmsKeyId", + "traits": { + "smithy.api#documentation": "

The ARN of the KMS key with which to encrypt the guardrail.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bedrock#UpdateGuardrailResponse": { + "type": "structure", + "members": { + "guardrailId": { + "target": "com.amazonaws.bedrock#GuardrailId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the guardrail

", + "smithy.api#required": {} + } + }, + "guardrailArn": { + "target": "com.amazonaws.bedrock#GuardrailArn", + "traits": { + "smithy.api#documentation": "

The ARN of the guardrail that was created.

", + "smithy.api#required": {} + } + }, + "version": { + "target": "com.amazonaws.bedrock#GuardrailDraftVersion", + "traits": { + "smithy.api#documentation": "

The version of the guardrail.

", + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "com.amazonaws.bedrock#Timestamp", + "traits": { + "smithy.api#documentation": "

The date and time at which the guardrail was updated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.bedrock#UpdateProvisionedModelThroughput": { "type": "operation", "input": { @@ -3898,7 +6935,7 @@ } ], "traits": { - "smithy.api#documentation": "

Update a provisioned throughput. For more information, see Provisioned throughput in the Bedrock User Guide.

", + "smithy.api#documentation": "

Updates the name or associated model for a Provisioned Throughput. For more information, see Provisioned Throughput in the Amazon Bedrock User Guide.

", "smithy.api#http": { "code": 200, "method": "PATCH", @@ -3913,7 +6950,7 @@ "provisionedModelId": { "target": "com.amazonaws.bedrock#ProvisionedModelId", "traits": { - "smithy.api#documentation": "

The ARN or name of the provisioned throughput to update.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) or name of the Provisioned Throughput to update.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3921,13 +6958,13 @@ "desiredProvisionedModelName": { "target": "com.amazonaws.bedrock#ProvisionedModelName", "traits": { - "smithy.api#documentation": "

The new name for this provisioned throughput.

" + "smithy.api#documentation": "

The new name for this Provisioned Throughput.

" } }, "desiredModelId": { "target": "com.amazonaws.bedrock#ModelIdentifier", "traits": { - "smithy.api#documentation": "

The ARN of the new model to associate with this provisioned throughput.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the new model to associate with this Provisioned Throughput. You can't specify this field if this Provisioned Throughput is associated with a base model.

\n

If this Provisioned Throughput is associated with a custom model, you can specify one of the following options:

\n
    \n
  • \n

    The base model from which the custom model was customized.

    \n
  • \n
  • \n

    Another custom model that was customized from the same base model as the custom model.

    \n
  • \n
" } } }, diff --git a/models/chime-sdk-voice.json b/models/chime-sdk-voice.json index b0adf10beb..3a4bc20fca 100644 --- a/models/chime-sdk-voice.json +++ b/models/chime-sdk-voice.json @@ -465,7 +465,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates one or more phone numbers.

", + "smithy.api#documentation": "

Updates phone number product types, calling names, or phone number names. You can update one attribute at a time for each \n UpdatePhoneNumberRequestItem. For example, you can update the product type, the calling name, or phone name.\n

\n \n

You cannot have a duplicate phoneNumberId in a request.

\n
", "smithy.api#http": { "method": "POST", "uri": "/phone-numbers?operation=batch-update", @@ -1015,7 +1015,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -1034,7 +1033,6 @@ }, { "conditions": [], - "type": "tree", "rules": [ { "conditions": [ @@ -1062,13 +1060,14 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], - "type": "tree", "rules": [ { "conditions": [ @@ -1081,7 +1080,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -1095,7 +1093,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -1118,7 +1115,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -1153,11 +1149,9 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -1168,16 +1162,19 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -1191,14 +1188,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -1207,15 +1202,14 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -1226,16 +1220,19 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -1249,7 +1246,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -1269,11 +1265,9 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -1284,20 +1278,22 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -1308,18 +1304,22 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "Invalid Configuration: Missing Region", "type": "error" } - ] + ], + "type": "tree" } ] }, @@ -4178,7 +4178,10 @@ } ], "traits": { - "smithy.api#documentation": "

Gets the Alexa Skill configuration for the SIP media application.

", + "smithy.api#deprecated": { + "message": "Due to changes made by the Amazon Alexa service, this API is no longer available for use. For more information, refer to the Alexa Smart Properties page(https://developer.amazon.com/en-US/alexa/alexasmartproperties)." + }, + "smithy.api#documentation": "

Gets the Alexa Skill configuration for the SIP media application.

\n \n

Due to changes made by the Amazon Alexa service, this API is no longer available for use. For more information, refer to \n the Alexa Smart Properties page.

\n
", "smithy.api#http": { "method": "GET", "uri": "/sip-media-applications/{SipMediaApplicationId}/alexa-skill-configuration", @@ -7536,7 +7539,10 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the Alexa Skill configuration for the SIP media application.

", + "smithy.api#deprecated": { + "message": "Due to changes made by the Amazon Alexa service, this API is no longer available for use. For more information, refer to the Alexa Smart Properties page(https://developer.amazon.com/en-US/alexa/alexasmartproperties)." + }, + "smithy.api#documentation": "

Updates the Alexa Skill configuration for the SIP media application.

\n \n

Due to changes made by the Amazon Alexa service, this API is no longer available for use. For more information, refer to \n the Alexa Smart Properties page.

\n
", "smithy.api#http": { "method": "PUT", "uri": "/sip-media-applications/{SipMediaApplicationId}/alexa-skill-configuration", @@ -8620,7 +8626,7 @@ } }, "traits": { - "smithy.api#documentation": "

The Alexa Skill configuration of a SIP media application.

" + "smithy.api#documentation": "

The Alexa Skill configuration of a SIP media application.

\n \n

Due to changes made by the Amazon Alexa service, this data type is no longer available for use. For more information, refer to \n the Alexa Smart Properties page.

\n
" } }, "com.amazonaws.chimesdkvoice#SipMediaApplicationCall": { @@ -9752,7 +9758,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates phone number details, such as product type or calling name, for the \n specified phone number ID. You can update one phone number detail at a time. For \n example, you can update either the product type or the calling name in one action.

\n

For numbers outside the U.S., you must use the Amazon Chime SDK SIP Media \n Application Dial-In product type.

\n

Updates to outbound calling names can take 72 hours to complete. Pending \n updates to outbound calling names must be complete before you can request another \n update.

", + "smithy.api#documentation": "

Updates phone number details, such as product type, calling name, or phone number name for the \n specified phone number ID. You can update one phone number detail at a time. For \n example, you can update either the product type, calling name, or phone number name in one action.

\n

For numbers outside the U.S., you must use the Amazon Chime SDK SIP Media \n Application Dial-In product type.

\n

Updates to outbound calling names can take 72 hours to complete. Pending \n updates to outbound calling names must be complete before you can request another \n update.

", "smithy.api#http": { "method": "POST", "uri": "/phone-numbers/{PhoneNumberId}", @@ -9786,7 +9792,7 @@ "Name": { "target": "com.amazonaws.chimesdkvoice#PhoneNumberName", "traits": { - "smithy.api#documentation": "

Specifies the name assigned to one or more phone numbers.

" + "smithy.api#documentation": "

Specifies the updated name assigned to one or more phone numbers.

" } } }, diff --git a/models/cleanrooms.json b/models/cleanrooms.json index 43e1297b15..db7e7cfa50 100644 --- a/models/cleanrooms.json +++ b/models/cleanrooms.json @@ -1374,6 +1374,12 @@ "traits": { "smithy.api#documentation": "

The parameters of the analysis template.

" } + }, + "validations": { + "target": "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusDetailList", + "traits": { + "smithy.api#documentation": "

Information about the validations performed on the analysis template.

" + } } }, "traits": { @@ -1548,6 +1554,95 @@ } } }, + "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatus": { + "type": "enum", + "members": { + "VALID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VALID" + } + }, + "INVALID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID" + } + }, + "UNABLE_TO_VALIDATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNABLE_TO_VALIDATE" + } + } + } + }, + "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusDetail": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.cleanrooms#AnalysisTemplateValidationType", + "traits": { + "smithy.api#documentation": "

The type of validation that was performed.

", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatus", + "traits": { + "smithy.api#documentation": "

The status of the validation.

", + "smithy.api#required": {} + } + }, + "reasons": { + "target": "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusReasonList", + "traits": { + "smithy.api#documentation": "

The reasons for the validation results.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The status details of the analysis template validation. Clean Rooms Differential Privacy uses a general-purpose query structure to support complex SQL queries and validates whether an analysis template fits that general-purpose query structure. Validation is performed when analysis templates are created and fetched. Because analysis templates are immutable by design, we recommend that you create analysis templates after you associate the configured tables with their analysis rule to your collaboration.

\n

For more information, see https://docs.aws.amazon.com/clean-rooms/latest/userguide/analysis-rules-custom.html#custom-diff-privacy.

" + } + }, + "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusDetailList": { + "type": "list", + "member": { + "target": "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusDetail" + } + }, + "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusReason": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The validation message.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The reasons for the validation results.

" + } + }, + "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusReasonList": { + "type": "list", + "member": { + "target": "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusReason" + } + }, + "com.amazonaws.cleanrooms#AnalysisTemplateValidationType": { + "type": "enum", + "members": { + "DIFFERENTIAL_PRIVACY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DIFFERENTIAL_PRIVACY" + } + } + } + }, "com.amazonaws.cleanrooms#BatchGetCollaborationAnalysisTemplate": { "type": "operation", "input": { @@ -2106,6 +2201,12 @@ "traits": { "smithy.api#documentation": "

The analysis parameters that have been specified in the analysis template.

" } + }, + "validations": { + "target": "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusDetailList", + "traits": { + "smithy.api#documentation": "

The validations that were performed.

" + } } }, "traits": { diff --git a/models/cloudformation.json b/models/cloudformation.json index 4452cd7c60..6ea959868a 100644 --- a/models/cloudformation.json +++ b/models/cloudformation.json @@ -292,6 +292,12 @@ "smithy.api#output": {} } }, + "com.amazonaws.cloudformation#AfterContext": { + "type": "string" + }, + "com.amazonaws.cloudformation#AfterValue": { + "type": "string" + }, "com.amazonaws.cloudformation#AllowedValue": { "type": "string" }, @@ -321,6 +327,29 @@ "com.amazonaws.cloudformation#Arn": { "type": "string" }, + "com.amazonaws.cloudformation#AttributeChangeType": { + "type": "enum", + "members": { + "Add": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Add" + } + }, + "Remove": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Remove" + } + }, + "Modify": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Modify" + } + } + } + }, "com.amazonaws.cloudformation#AutoDeployment": { "type": "structure", "members": { @@ -441,6 +470,12 @@ "smithy.api#output": {} } }, + "com.amazonaws.cloudformation#BeforeContext": { + "type": "string" + }, + "com.amazonaws.cloudformation#BeforeValue": { + "type": "string" + }, "com.amazonaws.cloudformation#BoxedInteger": { "type": "integer" }, @@ -600,7 +635,7 @@ "Type": { "target": "com.amazonaws.cloudformation#ChangeType", "traits": { - "smithy.api#documentation": "

The type of entity that CloudFormation changes. Currently, the only entity type is Resource.

" + "smithy.api#documentation": "

The type of entity that CloudFormation changes.

\n
    \n
  • \n

    \n Resource This change is for a resource.

    \n
  • \n
" } }, "HookInvocationCount": { @@ -3886,6 +3921,12 @@ "traits": { "smithy.api#documentation": "

A string (provided by the DescribeChangeSet response output) that identifies the next page of\n information that you want to retrieve.

" } + }, + "IncludePropertyValues": { + "target": "com.amazonaws.cloudformation#IncludePropertyValues", + "traits": { + "smithy.api#documentation": "

If true, the returned changes include detailed changes in the property values.

" + } } }, "traits": { @@ -7084,6 +7125,9 @@ "com.amazonaws.cloudformation#IncludeNestedStacks": { "type": "boolean" }, + "com.amazonaws.cloudformation#IncludePropertyValues": { + "type": "boolean" + }, "com.amazonaws.cloudformation#InsufficientCapabilitiesException": { "type": "structure", "members": { @@ -10131,6 +10175,18 @@ "traits": { "smithy.api#documentation": "

Contains information about the module from which the resource was created, if the resource was created from a\n module included in the stack template.

" } + }, + "BeforeContext": { + "target": "com.amazonaws.cloudformation#BeforeContext", + "traits": { + "smithy.api#documentation": "

An encoded JSON string containing the context of the resource before the change is executed.

" + } + }, + "AfterContext": { + "target": "com.amazonaws.cloudformation#AfterContext", + "traits": { + "smithy.api#documentation": "

An encoded JSON string containing the context of the resource after the change is executed.

" + } } }, "traits": { @@ -10359,6 +10415,9 @@ "com.amazonaws.cloudformation#ResourceProperties": { "type": "string" }, + "com.amazonaws.cloudformation#ResourcePropertyPath": { + "type": "string" + }, "com.amazonaws.cloudformation#ResourceScanId": { "type": "string" }, @@ -10684,6 +10743,30 @@ "traits": { "smithy.api#documentation": "

If the Attribute value is Properties, indicates whether a change to this property\n causes the resource to be recreated. The value can be Never, Always, or\n Conditionally. To determine the conditions for a Conditionally recreation, see the update\n behavior for that property in the\n CloudFormation User Guide.

" } + }, + "Path": { + "target": "com.amazonaws.cloudformation#ResourcePropertyPath", + "traits": { + "smithy.api#documentation": "

The property path of the property.

" + } + }, + "BeforeValue": { + "target": "com.amazonaws.cloudformation#BeforeValue", + "traits": { + "smithy.api#documentation": "

The value of the property before the change is executed. Large values can be truncated.

" + } + }, + "AfterValue": { + "target": "com.amazonaws.cloudformation#AfterValue", + "traits": { + "smithy.api#documentation": "

The value of the property after the change is executed. Large values can be truncated.

" + } + }, + "AttributeChangeType": { + "target": "com.amazonaws.cloudformation#AttributeChangeType", + "traits": { + "smithy.api#documentation": "

The type of change to be made to the property if the change is executed.

\n
    \n
  • \n

    \n Add The item will be added.

    \n
  • \n
  • \n

    \n Remove The item will be removed.

    \n
  • \n
  • \n

    \n Modify The item will be modified.

    \n
  • \n
" + } } }, "traits": { diff --git a/models/cloudfront.json b/models/cloudfront.json index 9791a1af89..fd6713f953 100644 --- a/models/cloudfront.json +++ b/models/cloudfront.json @@ -343,7 +343,7 @@ "ViewerProtocolPolicy": { "target": "com.amazonaws.cloudfront#ViewerProtocolPolicy", "traits": { - "smithy.api#documentation": "

The protocol that viewers can use to access the files in the origin specified by\n\t\t\t\tTargetOriginId when a request matches the path pattern in\n\t\t\t\tPathPattern. You can specify the following options:

\n
    \n
  • \n

    \n allow-all: Viewers can use HTTP or HTTPS.

    \n
  • \n
  • \n

    \n redirect-to-https: If a viewer submits an HTTP request, CloudFront\n\t\t\t\t\treturns an HTTP status code of 301 (Moved Permanently) to the viewer along with\n\t\t\t\t\tthe HTTPS URL. The viewer then resubmits the request using the new URL.

    \n
  • \n
  • \n

    \n https-only: If a viewer sends an HTTP request, CloudFront returns an\n\t\t\t\t\tHTTP status code of 403 (Forbidden).

    \n
  • \n
\n

For more information about requiring the HTTPS protocol, see Requiring HTTPS Between Viewers and CloudFront in the\n\t\t\t\tAmazon CloudFront Developer Guide.

\n \n

The only way to guarantee that viewers retrieve an object that was fetched from\n\t\t\t\tthe origin using HTTPS is never to use any other protocol to fetch the object. If\n\t\t\t\tyou have recently changed from HTTP to HTTPS, we recommend that you clear your\n\t\t\t\tobjects' cache because cached objects are protocol agnostic. That means that an edge\n\t\t\t\tlocation will return an object from the cache regardless of whether the current\n\t\t\t\trequest protocol matches the protocol used previously. For more information, see\n\t\t\t\t\tManaging Cache\n\t\t\t\t\tExpiration in the Amazon CloudFront Developer Guide.

\n
", + "smithy.api#documentation": "

The protocol that viewers can use to access the files in the origin specified by\n\t\t\t\tTargetOriginId when a request matches the path pattern in\n\t\t\t\tPathPattern. You can specify the following options:

\n
    \n
  • \n

    \n allow-all: Viewers can use HTTP or HTTPS.

    \n
  • \n
  • \n

    \n redirect-to-https: If a viewer submits an HTTP request, CloudFront\n\t\t\t\t\treturns an HTTP status code of 301 (Moved Permanently) to the viewer along with\n\t\t\t\t\tthe HTTPS URL. The viewer then resubmits the request using the new URL.

    \n
  • \n
  • \n

    \n https-only: If a viewer sends an HTTP request, CloudFront returns an\n\t\t\t\t\tHTTP status code of 403 (Forbidden).

    \n
  • \n
\n

For more information about requiring the HTTPS protocol, see Requiring HTTPS Between Viewers and CloudFront in the\n\t\t\t\tAmazon CloudFront Developer Guide.

\n \n

The only way to guarantee that viewers retrieve an object that was fetched from\n\t\t\t\tthe origin using HTTPS is never to use any other protocol to fetch the object. If\n\t\t\t\tyou have recently changed from HTTP to HTTPS, we recommend that you clear your\n\t\t\t\tobjects' cache because cached objects are protocol agnostic. That means that an edge\n\t\t\t\tlocation will return an object from the cache regardless of whether the current\n\t\t\t\trequest protocol matches the protocol used previously. For more information, see\n\t\t\t\t\tManaging Cache\n\t\t\t\t\tExpiration in the Amazon CloudFront Developer Guide.

\n
", "smithy.api#required": {} } }, @@ -434,7 +434,7 @@ } }, "traits": { - "smithy.api#documentation": "

A complex type that describes how CloudFront processes requests.

\n

You must create at least as many cache behaviors (including the default cache\n\t\t\tbehavior) as you have origins if you want CloudFront to serve objects from all of the origins.\n\t\t\tEach cache behavior specifies the one origin from which you want CloudFront to get objects. If\n\t\t\tyou have two origins and only the default cache behavior, the default cache behavior\n\t\t\twill cause CloudFront to get objects from one of the origins, but the other origin is never\n\t\t\tused.

\n

For the current quota (formerly known as limit) on the number of cache behaviors that\n\t\t\tyou can add to a distribution, see Quotas in the\n\t\t\tAmazon CloudFront Developer Guide.

\n

If you don't want to specify any cache behaviors, include only an empty\n\t\t\t\tCacheBehaviors element. Don't include an empty\n\t\t\t\tCacheBehavior element because this is invalid.

\n

To delete all cache behaviors in an existing distribution, update the distribution\n\t\t\tconfiguration and include only an empty CacheBehaviors element.

\n

To add, change, or remove one or more cache behaviors, update the distribution\n\t\t\tconfiguration and specify all of the cache behaviors that you want to include in the\n\t\t\tupdated distribution.

\n

For more information about cache behaviors, see Cache Behavior Settings in the Amazon CloudFront Developer Guide.

" + "smithy.api#documentation": "

A complex type that describes how CloudFront processes requests.

\n

You must create at least as many cache behaviors (including the default cache\n\t\t\tbehavior) as you have origins if you want CloudFront to serve objects from all of the origins.\n\t\t\tEach cache behavior specifies the one origin from which you want CloudFront to get objects. If\n\t\t\tyou have two origins and only the default cache behavior, the default cache behavior\n\t\t\twill cause CloudFront to get objects from one of the origins, but the other origin is never\n\t\t\tused.

\n

For the current quota (formerly known as limit) on the number of cache behaviors that\n\t\t\tyou can add to a distribution, see Quotas in the\n\t\t\tAmazon CloudFront Developer Guide.

\n

If you don't want to specify any cache behaviors, include only an empty\n\t\t\tCacheBehaviors element. For more information, see CacheBehaviors. Don't include an empty\n\t\t\t\tCacheBehavior element because this is invalid.

\n

To delete all cache behaviors in an existing distribution, update the distribution\n\t\t\tconfiguration and include only an empty CacheBehaviors element.

\n

To add, change, or remove one or more cache behaviors, update the distribution\n\t\t\tconfiguration and specify all of the cache behaviors that you want to include in the\n\t\t\tupdated distribution.

\n

For more information about cache behaviors, see Cache Behavior Settings in the Amazon CloudFront Developer Guide.

" } }, "com.amazonaws.cloudfront#CacheBehaviorList": { @@ -825,7 +825,7 @@ } }, "traits": { - "smithy.api#documentation": "

The Key Value Store entity cannot be deleted while it is in use.

", + "smithy.api#documentation": "

The key value store entity cannot be deleted while it is in use.

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -1365,7 +1365,7 @@ "name": "cloudfront" }, "aws.protocols#restXml": {}, - "smithy.api#documentation": "Amazon CloudFront\n

This is the Amazon CloudFront API Reference. This guide is for developers\n\t\t\twho need detailed information about CloudFront API actions, data types, and errors. For\n\t\t\tdetailed information about CloudFront features, see the\n\t\t\tAmazon CloudFront Developer Guide.

", + "smithy.api#documentation": "Amazon CloudFront\n

This is the Amazon CloudFront API Reference. This guide is for developers\n\t\t\twho need detailed information about CloudFront API actions, data types, and errors. For\n\t\t\tdetailed information about CloudFront features, see the\n\t\t\tAmazon CloudFront Developer Guide.

", "smithy.api#title": "Amazon CloudFront", "smithy.api#xmlNamespace": { "uri": "http://cloudfront.amazonaws.com/doc/2020-05-31/" @@ -2583,7 +2583,7 @@ "Weight": { "target": "com.amazonaws.cloudfront#float", "traits": { - "smithy.api#documentation": "

The percentage of traffic to send to a staging distribution, expressed as a decimal\n\t\t\tnumber between 0 and .15.

", + "smithy.api#documentation": "

The percentage of traffic to send to a staging distribution, expressed as a decimal\n\t\t\tnumber between 0 and 0.15. For example, a value of 0.10 means 10% of traffic is sent to the staging distribution.

", "smithy.api#required": {} } }, @@ -4011,7 +4011,7 @@ } ], "traits": { - "smithy.api#documentation": "

Create a new invalidation.

", + "smithy.api#documentation": "

Create a new invalidation. For more information, see Invalidating files in the Amazon CloudFront Developer Guide.

", "smithy.api#http": { "method": "POST", "uri": "/2020-05-31/distribution/{DistributionId}/invalidation", @@ -4168,10 +4168,13 @@ }, { "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" } ], "traits": { - "smithy.api#documentation": "

Specifies the Key Value Store resource to add to your account. In your account, the Key Value Store names must be unique. You can also import Key Value Store data in JSON format from an S3 bucket by providing a valid ImportSource that you own.

", + "smithy.api#documentation": "

Specifies the key value store resource to add to your account. In your account, the key value store names must be unique. You can also import key value store data in JSON format from an S3 bucket by providing a valid ImportSource that you own.

", "smithy.api#http": { "method": "POST", "uri": "/2020-05-31/key-value-store", @@ -4185,14 +4188,14 @@ "Name": { "target": "com.amazonaws.cloudfront#KeyValueStoreName", "traits": { - "smithy.api#documentation": "

The name of the Key Value Store. The maximum length of the name is 32 characters.

", + "smithy.api#documentation": "

The name of the key value store. The minimum length is 1 character and the maximum length is\n\t\t\t64 characters.

", "smithy.api#required": {} } }, "Comment": { "target": "com.amazonaws.cloudfront#KeyValueStoreComment", "traits": { - "smithy.api#documentation": "

The comment of the Key Value Store.

" + "smithy.api#documentation": "

The comment of the key value store.

" } }, "ImportSource": { @@ -4212,21 +4215,21 @@ "KeyValueStore": { "target": "com.amazonaws.cloudfront#KeyValueStore", "traits": { - "smithy.api#documentation": "

The resulting Key Value Store.

", + "smithy.api#documentation": "

The resulting key value store.

", "smithy.api#httpPayload": {} } }, "ETag": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The ETag in the resulting Key Value Store.

", + "smithy.api#documentation": "

The ETag in the resulting key value store.

", "smithy.api#httpHeader": "ETag" } }, "Location": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The location of the resulting Key Value Store.

", + "smithy.api#documentation": "

The location of the resulting key value store.

", "smithy.api#httpHeader": "Location" } } @@ -4601,7 +4604,7 @@ "SamplingRate": { "target": "com.amazonaws.cloudfront#long", "traits": { - "smithy.api#documentation": "

The sampling rate for this real-time log configuration. The sampling rate determines\n\t\t\tthe percentage of viewer requests that are represented in the real-time log data. You\n\t\t\tmust provide an integer between 1 and 100, inclusive.

", + "smithy.api#documentation": "

The sampling rate for this real-time log configuration. You can specify a whole number between 1 and 100 (inclusive) to determine the percentage of viewer requests that are represented in the real-time log data.

", "smithy.api#required": {} } } @@ -5084,7 +5087,7 @@ "ViewerProtocolPolicy": { "target": "com.amazonaws.cloudfront#ViewerProtocolPolicy", "traits": { - "smithy.api#documentation": "

The protocol that viewers can use to access the files in the origin specified by\n\t\t\t\tTargetOriginId when a request matches the path pattern in\n\t\t\t\tPathPattern. You can specify the following options:

\n
    \n
  • \n

    \n allow-all: Viewers can use HTTP or HTTPS.

    \n
  • \n
  • \n

    \n redirect-to-https: If a viewer submits an HTTP request, CloudFront\n\t\t\t\t\treturns an HTTP status code of 301 (Moved Permanently) to the viewer along with\n\t\t\t\t\tthe HTTPS URL. The viewer then resubmits the request using the new URL.

    \n
  • \n
  • \n

    \n https-only: If a viewer sends an HTTP request, CloudFront returns an\n\t\t\t\t\tHTTP status code of 403 (Forbidden).

    \n
  • \n
\n

For more information about requiring the HTTPS protocol, see Requiring HTTPS Between Viewers and CloudFront in the\n\t\t\t\tAmazon CloudFront Developer Guide.

\n \n

The only way to guarantee that viewers retrieve an object that was fetched from\n\t\t\t\tthe origin using HTTPS is never to use any other protocol to fetch the object. If\n\t\t\t\tyou have recently changed from HTTP to HTTPS, we recommend that you clear your\n\t\t\t\tobjects' cache because cached objects are protocol agnostic. That means that an edge\n\t\t\t\tlocation will return an object from the cache regardless of whether the current\n\t\t\t\trequest protocol matches the protocol used previously. For more information, see\n\t\t\t\t\tManaging Cache\n\t\t\t\t\tExpiration in the Amazon CloudFront Developer Guide.

\n
", + "smithy.api#documentation": "

The protocol that viewers can use to access the files in the origin specified by\n\t\t\t\tTargetOriginId when a request matches the path pattern in\n\t\t\t\tPathPattern. You can specify the following options:

\n
    \n
  • \n

    \n allow-all: Viewers can use HTTP or HTTPS.

    \n
  • \n
  • \n

    \n redirect-to-https: If a viewer submits an HTTP request, CloudFront\n\t\t\t\t\treturns an HTTP status code of 301 (Moved Permanently) to the viewer along with\n\t\t\t\t\tthe HTTPS URL. The viewer then resubmits the request using the new URL.

    \n
  • \n
  • \n

    \n https-only: If a viewer sends an HTTP request, CloudFront returns an\n\t\t\t\t\tHTTP status code of 403 (Forbidden).

    \n
  • \n
\n

For more information about requiring the HTTPS protocol, see Requiring HTTPS Between Viewers and CloudFront in the\n\t\t\t\tAmazon CloudFront Developer Guide.

\n \n

The only way to guarantee that viewers retrieve an object that was fetched from\n\t\t\t\tthe origin using HTTPS is never to use any other protocol to fetch the object. If\n\t\t\t\tyou have recently changed from HTTP to HTTPS, we recommend that you clear your\n\t\t\t\tobjects' cache because cached objects are protocol agnostic. That means that an edge\n\t\t\t\tlocation will return an object from the cache regardless of whether the current\n\t\t\t\trequest protocol matches the protocol used previously. For more information, see\n\t\t\t\t\tManaging Cache\n\t\t\t\t\tExpiration in the Amazon CloudFront Developer Guide.

\n
", "smithy.api#required": {} } }, @@ -5112,7 +5115,7 @@ "FunctionAssociations": { "target": "com.amazonaws.cloudfront#FunctionAssociations", "traits": { - "smithy.api#documentation": "

A list of CloudFront functions that are associated with this cache behavior. CloudFront functions\n\t\t\tmust be published to the LIVE stage to associate them with a cache\n\t\t\tbehavior.

" + "smithy.api#documentation": "

A list of CloudFront functions that are associated with this cache behavior. Your functions\n\t\t\tmust be published to the LIVE stage to associate them with a cache\n\t\t\tbehavior.

" } }, "FieldLevelEncryptionId": { @@ -5663,10 +5666,13 @@ }, { "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" } ], "traits": { - "smithy.api#documentation": "

Specifies the Key Value Store to delete.

", + "smithy.api#documentation": "

Specifies the key value store to delete.

", "smithy.api#http": { "method": "DELETE", "uri": "/2020-05-31/key-value-store/{Name}", @@ -5681,7 +5687,7 @@ "Name": { "target": "com.amazonaws.cloudfront#KeyValueStoreName", "traits": { - "smithy.api#documentation": "

The name of the Key Value Store.

", + "smithy.api#documentation": "

The name of the key value store.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5689,7 +5695,7 @@ "IfMatch": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The Key Value Store to delete, if a match occurs.

", + "smithy.api#documentation": "

The key value store to delete, if a match occurs.

", "smithy.api#httpHeader": "If-Match", "smithy.api#required": {} } @@ -5722,7 +5728,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disables additional CloudWatch metrics for the specified CloudFront\n\t\t\tdistribution.

", + "smithy.api#documentation": "

Disables additional CloudWatch metrics for the specified CloudFront distribution.

", "smithy.api#http": { "method": "DELETE", "uri": "/2020-05-31/distributions/{DistributionId}/monitoring-subscription", @@ -6183,10 +6189,13 @@ }, { "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" } ], "traits": { - "smithy.api#documentation": "

Specifies the Key Value Store and its configuration.

", + "smithy.api#documentation": "

Specifies the key value store and its configuration.

", "smithy.api#http": { "method": "GET", "uri": "/2020-05-31/key-value-store/{Name}", @@ -6200,7 +6209,7 @@ "Name": { "target": "com.amazonaws.cloudfront#KeyValueStoreName", "traits": { - "smithy.api#documentation": "

The name of the Key Value Store.

", + "smithy.api#documentation": "

The name of the key value store.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6216,14 +6225,14 @@ "KeyValueStore": { "target": "com.amazonaws.cloudfront#KeyValueStore", "traits": { - "smithy.api#documentation": "

The resulting Key Value Store.

", + "smithy.api#documentation": "

The resulting key value store.

", "smithy.api#httpPayload": {} } }, "ETag": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The ETag of the resulting Key Value Store.

", + "smithy.api#documentation": "

The ETag of the resulting key value store.

", "smithy.api#httpHeader": "ETag" } } @@ -6415,13 +6424,13 @@ "WebACLId": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

A unique identifier that specifies the WAF web ACL, if any, to associate with this\n\t\t\tdistribution. To specify a web ACL created using the latest version of WAF, use the\n\t\t\tACL ARN, for example\n\t\t\t\tarn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a.\n\t\t\tTo specify a web ACL created using WAF Classic, use the ACL ID, for example\n\t\t\t\t473e64fd-f30b-4765-81a0-62ad96dd167a.

\n

WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests\n\t\t\tthat are forwarded to CloudFront, and lets you control access to your content. Based on\n\t\t\tconditions that you specify, such as the IP addresses that requests originate from or\n\t\t\tthe values of query strings, CloudFront responds to requests either with the requested content\n\t\t\tor with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a\n\t\t\tcustom error page when a request is blocked. For more information about WAF, see the\n\t\t\t\tWAF Developer Guide.

" + "smithy.api#documentation": "

A unique identifier that specifies the WAF web ACL, if any, to associate with this\n\t\t\tdistribution. To specify a web ACL created using the latest version of WAF, use the\n\t\t\tACL ARN, for example\n\t\t\tarn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.\n\t\t\tTo specify a web ACL created using WAF Classic, use the ACL ID, for example\n\t\t\ta1b2c3d4-5678-90ab-cdef-EXAMPLE11111.

\n

WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests\n\t\t\tthat are forwarded to CloudFront, and lets you control access to your content. Based on\n\t\t\tconditions that you specify, such as the IP addresses that requests originate from or\n\t\t\tthe values of query strings, CloudFront responds to requests either with the requested content\n\t\t\tor with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a\n\t\t\tcustom error page when a request is blocked. For more information about WAF, see the\n\t\t\t\tWAF Developer Guide.

" } }, "HttpVersion": { "target": "com.amazonaws.cloudfront#HttpVersion", "traits": { - "smithy.api#documentation": "

(Optional) Specify the maximum HTTP version(s) that you want viewers to use to\n\t\t\tcommunicate with CloudFront. The default value for new web distributions is\n\t\t\thttp2. Viewers that don't support HTTP/2 automatically use an earlier HTTP\n\t\t\tversion.

\n

For viewers and CloudFront to use HTTP/2, viewers must support TLSv1.2 or later, and must\n\t\t\tsupport Server Name Indication (SNI).

\n

For viewers and CloudFront to use HTTP/3, viewers must support TLSv1.3 and Server Name\n\t\t\tIndication (SNI). CloudFront supports HTTP/3 connection migration to allow the viewer to\n\t\t\tswitch networks without losing connection. For more information about connection\n\t\t\tmigration, see Connection Migration at RFC 9000. For more information about supported\n\t\t\tTLSv1.3 ciphers, see Supported protocols and ciphers between viewers and CloudFront.

" + "smithy.api#documentation": "

(Optional) Specify the HTTP version(s) that you want viewers to use to communicate with\n\t\t\tCloudFront. The default value for new web distributions is http2. Viewers that\n\t\t\tdon't support HTTP/2 automatically use an earlier HTTP version.

\n

For viewers and CloudFront to use HTTP/2, viewers must support TLSv1.2 or later, and must\n\t\t\tsupport Server Name Indication (SNI).

\n

For viewers and CloudFront to use HTTP/3, viewers must support TLSv1.3 and Server Name\n\t\t\tIndication (SNI). CloudFront supports HTTP/3 connection migration to allow the viewer to\n\t\t\tswitch networks without losing connection. For more information about connection\n\t\t\tmigration, see Connection Migration at RFC 9000. For more information about supported\n\t\t\tTLSv1.3 ciphers, see Supported protocols and ciphers between viewers and CloudFront.

" } }, "IsIPV6Enabled": { @@ -6731,7 +6740,7 @@ "Staging": { "target": "com.amazonaws.cloudfront#boolean", "traits": { - "smithy.api#documentation": "

Whether the primary distribution has a staging distribution enabled.

", + "smithy.api#documentation": "

A Boolean that indicates whether this is a staging distribution. When this value is\n\t\t\t\ttrue, this is a staging distribution. When this value is\n\t\t\t\tfalse, this is not a staging distribution.

", "smithy.api#required": {} } } @@ -6843,7 +6852,7 @@ } }, "traits": { - "smithy.api#documentation": "

The Key Value Store entity already exists. You must provide a unique Key Value Store\n\t\t\tentity.

", + "smithy.api#documentation": "

The key value store entity already exists. You must provide a unique key value store\n\t\t\tentity.

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -6856,7 +6865,7 @@ } }, "traits": { - "smithy.api#documentation": "

The Key Value Store entity limit has been exceeded.

", + "smithy.api#documentation": "

The key value store entity limit has been exceeded.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -6869,7 +6878,7 @@ } }, "traits": { - "smithy.api#documentation": "

The Key Value Store entity was not found.

", + "smithy.api#documentation": "

The key value store entity was not found.

", "smithy.api#error": "client", "smithy.api#httpError": 404 } @@ -6882,7 +6891,7 @@ } }, "traits": { - "smithy.api#documentation": "

The Key Value Store entity size limit was exceeded.

", + "smithy.api#documentation": "

The key value store entity size limit was exceeded.

", "smithy.api#error": "client", "smithy.api#httpError": 413 } @@ -7443,12 +7452,12 @@ "Items": { "target": "com.amazonaws.cloudfront#FunctionAssociationList", "traits": { - "smithy.api#documentation": "

The CloudFront functions that are associated with a cache behavior in a CloudFront distribution.\n\t\t\tCloudFront functions must be published to the LIVE stage to associate them with a\n\t\t\tcache behavior.

" + "smithy.api#documentation": "

The CloudFront functions that are associated with a cache behavior in a CloudFront distribution.\n\t\t\tYour functions must be published to the LIVE stage to associate them with a\n\t\t\tcache behavior.

" } } }, "traits": { - "smithy.api#documentation": "

A list of CloudFront functions that are associated with a cache behavior in a CloudFront\n\t\t\tdistribution. CloudFront functions must be published to the LIVE stage to\n\t\t\tassociate them with a cache behavior.

" + "smithy.api#documentation": "

A list of CloudFront functions that are associated with a cache behavior in a CloudFront\n\t\t\tdistribution. Your functions must be published to the LIVE stage to\n\t\t\tassociate them with a cache behavior.

" } }, "com.amazonaws.cloudfront#FunctionBlob": { @@ -7481,7 +7490,7 @@ "KeyValueStoreAssociations": { "target": "com.amazonaws.cloudfront#KeyValueStoreAssociations", "traits": { - "smithy.api#documentation": "

The configuration for the Key Value Store associations.

" + "smithy.api#documentation": "

The configuration for the key value store associations.

" } } }, @@ -9722,20 +9731,20 @@ "SourceType": { "target": "com.amazonaws.cloudfront#ImportSourceType", "traits": { - "smithy.api#documentation": "

The source type of the import source for the Key Value Store.

", + "smithy.api#documentation": "

The source type of the import source for the key value store.

", "smithy.api#required": {} } }, "SourceARN": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the import source for the Key Value Store.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the import source for the key value store.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

The import source for the Key Value Store.

" + "smithy.api#documentation": "

The import source for the key value store.

" } }, "com.amazonaws.cloudfront#ImportSourceType": { @@ -10457,47 +10466,47 @@ "Name": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The name of the Key Value Store.

", + "smithy.api#documentation": "

The name of the key value store.

", "smithy.api#required": {} } }, "Id": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The unique Id for the Key Value Store.

", + "smithy.api#documentation": "

The unique Id for the key value store.

", "smithy.api#required": {} } }, "Comment": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

A comment for the Key Value Store.

", + "smithy.api#documentation": "

A comment for the key value store.

", "smithy.api#required": {} } }, "ARN": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Key Value Store.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the key value store.

", "smithy.api#required": {} } }, "Status": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The status of the Key Value Store.

" + "smithy.api#documentation": "

The status of the key value store.

" } }, "LastModifiedTime": { "target": "com.amazonaws.cloudfront#timestamp", "traits": { - "smithy.api#documentation": "

The last-modified time of the Key Value Store.

", + "smithy.api#documentation": "

The last-modified time of the key value store.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

The Key Value Store. Use this to separate data from function code, allowing you to update\n\t\t\tdata without having to publish a new version of a function. The Key Value Store holds\n\t\t\tkeys and their corresponding values.

" + "smithy.api#documentation": "

The key value store. Use this to separate data from function code, allowing you to update\n\t\t\tdata without having to publish a new version of a function. The key value store holds\n\t\t\tkeys and their corresponding values.

" } }, "com.amazonaws.cloudfront#KeyValueStoreARN": { @@ -10516,13 +10525,13 @@ "KeyValueStoreARN": { "target": "com.amazonaws.cloudfront#KeyValueStoreARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Key Value Store association.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the key value store association.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

The Key Value Store association.

" + "smithy.api#documentation": "

The key value store association.

" } }, "com.amazonaws.cloudfront#KeyValueStoreAssociationList": { @@ -10540,19 +10549,19 @@ "Quantity": { "target": "com.amazonaws.cloudfront#integer", "traits": { - "smithy.api#documentation": "

The quantity of Key Value Store associations.

", + "smithy.api#documentation": "

The quantity of key value store associations.

", "smithy.api#required": {} } }, "Items": { "target": "com.amazonaws.cloudfront#KeyValueStoreAssociationList", "traits": { - "smithy.api#documentation": "

The items of the Key Value Store association.

" + "smithy.api#documentation": "

The items of the key value store association.

" } } }, "traits": { - "smithy.api#documentation": "

The Key Value Store associations.

" + "smithy.api#documentation": "

The key value store associations.

" } }, "com.amazonaws.cloudfront#KeyValueStoreComment": { @@ -10570,32 +10579,32 @@ "NextMarker": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The next marker associated with the Key Value Store list.

" + "smithy.api#documentation": "

The next marker associated with the key value store list.

" } }, "MaxItems": { "target": "com.amazonaws.cloudfront#integer", "traits": { - "smithy.api#documentation": "

The maximum number of items in the Key Value Store list.

", + "smithy.api#documentation": "

The maximum number of items in the key value store list.

", "smithy.api#required": {} } }, "Quantity": { "target": "com.amazonaws.cloudfront#integer", "traits": { - "smithy.api#documentation": "

The quantity of the Key Value Store list.

", + "smithy.api#documentation": "

The quantity of the key value store list.

", "smithy.api#required": {} } }, "Items": { "target": "com.amazonaws.cloudfront#KeyValueStoreSummaryList", "traits": { - "smithy.api#documentation": "

The items of the Key Value Store list.

" + "smithy.api#documentation": "

The items of the key value store list.

" } } }, "traits": { - "smithy.api#documentation": "

The Key Value Store list.

" + "smithy.api#documentation": "

The key value store list.

" } }, "com.amazonaws.cloudfront#KeyValueStoreName": { @@ -11410,7 +11419,7 @@ "WebACLId": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The ID of the WAF web ACL that you want to list the associated distributions. If you\n\t\t\tspecify \"null\" for the ID, the request returns a list of the distributions that aren't\n\t\t\tassociated with a web ACL.

", + "smithy.api#documentation": "

The ID of the WAF web ACL that you want to list the associated distributions. If you\n\t\t\tspecify \"null\" for the ID, the request returns a list of the distributions that aren't\n\t\t\tassociated with a web ACL.

\n

For WAFV2, this is the ARN of the web ACL, such as\n\t\t\t\tarn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.

\n

For WAF Classic, this is the ID of the web ACL, such as a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -11817,10 +11826,13 @@ }, { "target": "com.amazonaws.cloudfront#InvalidArgument" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" } ], "traits": { - "smithy.api#documentation": "

Specifies the Key Value Stores to list.

", + "smithy.api#documentation": "

Specifies the key value stores to list.

", "smithy.api#http": { "method": "GET", "uri": "/2020-05-31/key-value-store", @@ -11840,21 +11852,21 @@ "Marker": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The marker associated with the Key Value Stores list.

", + "smithy.api#documentation": "

The marker associated with the key value stores list.

", "smithy.api#httpQuery": "Marker" } }, "MaxItems": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

The maximum number of items in the Key Value Stores list.

", + "smithy.api#documentation": "

The maximum number of items in the key value stores list.

", "smithy.api#httpQuery": "MaxItems" } }, "Status": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The status of the request for the Key Value Stores list.

", + "smithy.api#documentation": "

The status of the request for the key value stores list.

", "smithy.api#httpQuery": "Status" } } @@ -11869,7 +11881,7 @@ "KeyValueStoreList": { "target": "com.amazonaws.cloudfront#KeyValueStoreList", "traits": { - "smithy.api#documentation": "

The resulting Key Value Stores list.

", + "smithy.api#documentation": "

The resulting key value stores list.

", "smithy.api#httpPayload": {} } } @@ -12856,7 +12868,7 @@ "Name": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

A name to identify the origin access control.

", + "smithy.api#documentation": "

A name to identify the origin access control. You can specify up to 64 characters.

", "smithy.api#required": {} } }, @@ -12967,6 +12979,18 @@ "traits": { "smithy.api#enumValue": "mediastore" } + }, + "mediapackagev2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "mediapackagev2" + } + }, + "lambda": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "lambda" + } } } }, @@ -13120,7 +13144,7 @@ } }, "traits": { - "smithy.api#documentation": "

An origin group includes two origins (a primary origin and a second origin to failover to)\n\t\t\tand a failover criteria that you specify. You create an origin group to support origin\n\t\t\tfailover in CloudFront. When you create or update a distribution, you can specify the\n\t\t\torigin group instead of a single origin, and CloudFront will failover from the primary\n\t\t\torigin to the second origin under the failover conditions that you've chosen.

" + "smithy.api#documentation": "

An origin group includes two origins (a primary origin and a second origin to failover to)\n\t\t\tand a failover criteria that you specify. You create an origin group to support origin\n\t\t\tfailover in CloudFront. When you create or update a distribution, you can specify the\n\t\t\torigin group instead of a single origin, and CloudFront will failover from the primary\n\t\t\torigin to the second origin under the failover conditions that you've chosen.

" } }, "com.amazonaws.cloudfront#OriginGroupFailoverCriteria": { @@ -13129,7 +13153,7 @@ "StatusCodes": { "target": "com.amazonaws.cloudfront#StatusCodes", "traits": { - "smithy.api#documentation": "

The status codes that, when returned from the primary origin, will trigger CloudFront\n\t\t\tto failover to the second origin.

", + "smithy.api#documentation": "

The status codes that, when returned from the primary origin, will trigger CloudFront to failover to the second origin.

", "smithy.api#required": {} } } @@ -14965,7 +14989,7 @@ "StrictTransportSecurity": { "target": "com.amazonaws.cloudfront#ResponseHeadersPolicyStrictTransportSecurity", "traits": { - "smithy.api#documentation": "

Determines whether CloudFront includes the Strict-Transport-Security HTTP\n\t\t\tresponse header and the header's value.

\n

For more information about the Strict-Transport-Security HTTP response\n\t\t\theader, see Strict-Transport-Security in the MDN Web Docs.

" + "smithy.api#documentation": "

Determines whether CloudFront includes the Strict-Transport-Security HTTP\n\t\t\tresponse header and the header's value.

\n

For more information about the Strict-Transport-Security HTTP response\n\t\t\theader, see Security headers in the Amazon CloudFront Developer Guide and Strict-Transport-Security in the MDN Web Docs.

" } } }, @@ -15153,7 +15177,7 @@ "OriginAccessIdentity": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The CloudFront origin access identity to associate with the origin. Use an origin access\n\t\t\tidentity to configure the origin so that viewers can only access\n\t\t\tobjects in an Amazon S3 bucket through CloudFront. The format of the value is:

\n

origin-access-identity/cloudfront/ID-of-origin-access-identity\n

\n

where \n ID-of-origin-access-identity\n is the value that\n\t\t\tCloudFront returned in the ID element when you created the origin access\n\t\t\tidentity.

\n

If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3\n\t\t\tURL, specify an empty OriginAccessIdentity element.

\n

To delete the origin access identity from an existing distribution, update the\n\t\t\tdistribution configuration and include an empty OriginAccessIdentity\n\t\t\telement.

\n

To replace the origin access identity, update the distribution configuration and\n\t\t\tspecify the new origin access identity.

\n

For more information about the origin access identity, see Serving Private\n\t\t\t\tContent through CloudFront in the Amazon CloudFront Developer Guide.

", + "smithy.api#documentation": "\n

If you're using origin access control (OAC) instead of origin access identity,\n\t\t\t\tspecify an empty OriginAccessIdentity element. For more information,\n\t\t\t\tsee Restricting access to an Amazon Web Services in the\n\t\t\t\t\tAmazon CloudFront Developer Guide.

\n
\n

The CloudFront origin access identity to associate with the origin. Use an origin access\n\t\t\tidentity to configure the origin so that viewers can only access\n\t\t\tobjects in an Amazon S3 bucket through CloudFront. The format of the value is:

\n

\n origin-access-identity/cloudfront/ID-of-origin-access-identity\n

\n

The \n ID-of-origin-access-identity\n is the value that CloudFront\n\t\t\treturned in the ID element when you created the origin access\n\t\t\tidentity.

\n

If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3\n\t\t\tURL, specify an empty OriginAccessIdentity element.

\n

To delete the origin access identity from an existing distribution, update the\n\t\t\tdistribution configuration and include an empty OriginAccessIdentity\n\t\t\telement.

\n

To replace the origin access identity, update the distribution configuration and\n\t\t\tspecify the new origin access identity.

\n

For more information about the origin access identity, see Serving Private\n\t\t\t\tContent through CloudFront in the Amazon CloudFront Developer Guide.

", "smithy.api#required": {} } } @@ -15207,7 +15231,7 @@ "MaximumTTL": { "target": "com.amazonaws.cloudfront#integer", "traits": { - "smithy.api#documentation": "

The maximum amount of time to consider requests from the viewer as being part of the\n\t\t\tsame session. Allowed values are 300–3600 seconds (5–60 minutes).

\n

The value must be less than or equal to IdleTTL.

", + "smithy.api#documentation": "

The maximum amount of time to consider requests from the viewer as being part of the\n\t\t\tsame session. Allowed values are 300–3600 seconds (5–60 minutes).

\n

The value must be greater than or equal to IdleTTL.

", "smithy.api#required": {} } } @@ -18096,10 +18120,13 @@ }, { "target": "com.amazonaws.cloudfront#PreconditionFailed" + }, + { + "target": "com.amazonaws.cloudfront#UnsupportedOperation" } ], "traits": { - "smithy.api#documentation": "

Specifies the Key Value Store to update.

", + "smithy.api#documentation": "

Specifies the key value store to update.

", "smithy.api#http": { "method": "PUT", "uri": "/2020-05-31/key-value-store/{Name}", @@ -18114,7 +18141,7 @@ "Name": { "target": "com.amazonaws.cloudfront#KeyValueStoreName", "traits": { - "smithy.api#documentation": "

The name of the Key Value Store to update.

", + "smithy.api#documentation": "

The name of the key value store to update.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -18122,14 +18149,14 @@ "Comment": { "target": "com.amazonaws.cloudfront#KeyValueStoreComment", "traits": { - "smithy.api#documentation": "

The comment of the Key Value Store to update.

", + "smithy.api#documentation": "

The comment of the key value store to update.

", "smithy.api#required": {} } }, "IfMatch": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The Key Value Store to update, if a match occurs.

", + "smithy.api#documentation": "

The key value store to update, if a match occurs.

", "smithy.api#httpHeader": "If-Match", "smithy.api#required": {} } @@ -18145,14 +18172,14 @@ "KeyValueStore": { "target": "com.amazonaws.cloudfront#KeyValueStore", "traits": { - "smithy.api#documentation": "

The resulting Key Value Store to update.

", + "smithy.api#documentation": "

The resulting key value store to update.

", "smithy.api#httpPayload": {} } }, "ETag": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The ETag of the resulting Key Value Store.

", + "smithy.api#documentation": "

The ETag of the resulting key value store.

", "smithy.api#httpHeader": "ETag" } } diff --git a/models/cloudwatch.json b/models/cloudwatch.json index bdba841adb..55af845550 100644 --- a/models/cloudwatch.json +++ b/models/cloudwatch.json @@ -269,7 +269,13 @@ "StateValue": { "target": "com.amazonaws.cloudwatch#AnomalyDetectorStateValue", "traits": { - "smithy.api#documentation": "

The current status of the anomaly detector's training. The possible values are TRAINED | PENDING_TRAINING | TRAINED_INSUFFICIENT_DATA\n

" + "smithy.api#documentation": "

The current status of the anomaly detector's training.

" + } + }, + "MetricCharacteristics": { + "target": "com.amazonaws.cloudwatch#MetricCharacteristics", + "traits": { + "smithy.api#documentation": "

This object includes parameters that you can use to provide information about your metric to \n\t\t\tCloudWatch to help it build more accurate anomaly detection models. Currently, it includes\n\t\t\tthe PeriodicSpikes parameter.

" } }, "SingleMetricAnomalyDetector": { @@ -4838,6 +4844,20 @@ "target": "com.amazonaws.cloudwatch#MetricAlarm" } }, + "com.amazonaws.cloudwatch#MetricCharacteristics": { + "type": "structure", + "members": { + "PeriodicSpikes": { + "target": "com.amazonaws.cloudwatch#PeriodicSpikes", + "traits": { + "smithy.api#documentation": "

Set this parameter to true if values for this metric consistently include spikes\n\t\t\tthat should not be considered to be anomalies. With this set to true, CloudWatch will expect \n\t\t\tto see spikes that occurred consistently during the model training period, and won't flag future similar spikes\n\t\t\tas anomalies.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

This object includes parameters that you can use to provide information to \n\t\t\tCloudWatch to help it build more accurate anomaly detection models.

" + } + }, "com.amazonaws.cloudwatch#MetricData": { "type": "list", "member": { @@ -5402,6 +5422,9 @@ } } }, + "com.amazonaws.cloudwatch#PeriodicSpikes": { + "type": "boolean" + }, "com.amazonaws.cloudwatch#PutAnomalyDetector": { "type": "operation", "input": { @@ -5476,6 +5499,12 @@ "smithy.api#documentation": "

The configuration specifies details about how the \n\t\t\tanomaly detection model is to be trained, including \n\t\t\ttime ranges to exclude when training and updating the model.\n\t\t\tYou can specify as many as 10 time ranges.

\n

The configuration can also include the time zone to use for \n\t\t\tthe metric.

" } }, + "MetricCharacteristics": { + "target": "com.amazonaws.cloudwatch#MetricCharacteristics", + "traits": { + "smithy.api#documentation": "

Use this object to include parameters to provide information about your metric to \n\t\t\tCloudWatch to help it build more accurate anomaly detection models. Currently, it includes\n\t\t\tthe PeriodicSpikes parameter.

" + } + }, "SingleMetricAnomalyDetector": { "target": "com.amazonaws.cloudwatch#SingleMetricAnomalyDetector", "traits": { diff --git a/models/codeartifact.json b/models/codeartifact.json index 3aef470d06..5149e07c29 100644 --- a/models/codeartifact.json +++ b/models/codeartifact.json @@ -262,7 +262,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the associated package. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" + "smithy.api#documentation": "

The namespace of the associated package. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" } }, "package": { @@ -461,7 +461,7 @@ "name": "codeartifact" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

CodeArtifact is a fully managed artifact repository compatible with language-native\n package managers and build tools such as npm, Apache Maven, pip, and dotnet. You can use CodeArtifact to\n share packages with development teams and pull packages. Packages can be pulled from both\n public and CodeArtifact repositories. You can also create an upstream relationship between a CodeArtifact\n repository and another repository, which effectively merges their contents from the point of\n view of a package manager client.

\n

\n CodeArtifact concepts\n

\n
    \n
  • \n

    \n Repository: A CodeArtifact repository contains a set of package\n versions, each of which maps to a set of assets, or files. Repositories are\n polyglot, so a single repository can contain packages of any supported type. Each\n repository exposes endpoints for fetching and publishing packages using tools like the\n \n npm\n CLI, the Maven CLI (\n mvn\n ), Python CLIs (\n pip\n and twine), NuGet CLIs (nuget and dotnet), and \n the Swift package manager (\n swift\n ).

    \n
  • \n
  • \n

    \n Domain: Repositories are aggregated into a higher-level entity known as a\n domain. All package assets and metadata are stored in the domain,\n but are consumed through repositories. A given package asset, such as a Maven JAR file, is\n stored once per domain, no matter how many repositories it's present in. All of the assets\n and metadata in a domain are encrypted with the same customer master key (CMK) stored in\n Key Management Service (KMS).

    \n

    Each repository is a member of a single domain and can't be moved to a\n different domain.

    \n

    The domain allows organizational policy to be applied across multiple\n repositories, such as which accounts can access repositories in the domain, and\n which public repositories can be used as sources of packages.

    \n

    Although an organization can have multiple domains, we recommend a single production\n domain that contains all published artifacts so that teams can find and share packages\n across their organization.

    \n
  • \n
  • \n

    \n Package: A package is a bundle of software and the metadata required to\n resolve dependencies and install the software. CodeArtifact supports npm, PyPI, Maven, NuGet, Swift, and generic package formats.

    \n

    In CodeArtifact, a package consists of:

    \n
      \n
    • \n

      A name (for example, webpack is the name of a\n popular npm package)

      \n
    • \n
    • \n

      An optional namespace (for example, @types in @types/node)

      \n
    • \n
    • \n

      A set of versions (for example, 1.0.0, 1.0.1,\n 1.0.2, etc.)

      \n
    • \n
    • \n

      Package-level metadata (for example, npm tags)

      \n
    • \n
    \n
  • \n
  • \n

    \n Package group: A group of packages that match a specified definition. Package \n groups can be used to apply configuration to multiple packages that match a defined pattern using \n package format, package namespace, and package name. You can use package groups to more conveniently \n configure package origin controls for multiple packages. Package origin controls are used to block or allow ingestion or publishing \n of new package versions, which protects users from malicious actions known as dependency substitution attacks.

    \n
  • \n
  • \n

    \n Package version: A version of a package, such as @types/node 12.6.9. The version number\n format and semantics vary for different package formats. For example, npm package versions\n must conform to the Semantic Versioning\n specification. In CodeArtifact, a package version consists of the version identifier,\n metadata at the package version level, and a set of assets.

    \n
  • \n
  • \n

    \n Upstream repository: One repository is upstream of another when the package versions in\n it can be accessed from the repository endpoint of the downstream repository, effectively\n merging the contents of the two repositories from the point of view of a client. CodeArtifact\n allows creating an upstream relationship between two repositories.

    \n
  • \n
  • \n

    \n Asset: An individual file stored in CodeArtifact associated with a package version, such as an npm\n .tgz file or Maven POM and JAR files.

    \n
  • \n
\n

\n CodeArtifact supported API operations\n

\n
    \n
  • \n

    \n AssociateExternalConnection: Adds an existing external \n connection to a repository.\n

    \n
  • \n
  • \n

    \n CopyPackageVersions: Copies package versions from one \n repository to another repository in the same domain.

    \n
  • \n
  • \n

    \n CreateDomain: Creates a domain.

    \n
  • \n
  • \n

    \n CreatePackageGroup: Creates a package group.

    \n
  • \n
  • \n

    \n CreateRepository: Creates a CodeArtifact repository in a domain.

    \n
  • \n
  • \n

    \n DeleteDomain: Deletes a domain. You cannot delete a domain that contains\n repositories.

    \n
  • \n
  • \n

    \n DeleteDomainPermissionsPolicy: Deletes the resource policy that is set on a domain.

    \n
  • \n
  • \n

    \n DeletePackage: Deletes a package and all associated package versions.

    \n
  • \n
  • \n

    \n DeletePackageGroup: Deletes a package group. Does not delete packages or package versions that are associated with a package group.

    \n
  • \n
  • \n

    \n DeletePackageVersions: Deletes versions of a package. After a package has\n been deleted, it can be republished, but its assets and metadata cannot be restored\n because they have been permanently removed from storage.

    \n
  • \n
  • \n

    \n DeleteRepository: Deletes a repository. \n

    \n
  • \n
  • \n

    \n DeleteRepositoryPermissionsPolicy: Deletes the resource policy that is set on a repository.

    \n
  • \n
  • \n

    \n DescribeDomain: Returns a DomainDescription object that\n contains information about the requested domain.

    \n
  • \n
  • \n

    \n DescribePackage: Returns a PackageDescription\n object that contains details about a package.

    \n
  • \n
  • \n

    \n DescribePackageGroup: Returns a PackageGroup\n object that contains details about a package group.

    \n
  • \n
  • \n

    \n DescribePackageVersion: Returns a PackageVersionDescription\n object that contains details about a package version.

    \n
  • \n
  • \n

    \n DescribeRepository: Returns a RepositoryDescription object\n that contains detailed information about the requested repository.

    \n
  • \n
  • \n

    \n DisposePackageVersions: Disposes versions of a package. A package version\n with the status Disposed cannot be restored because they have been\n permanently removed from storage.

    \n
  • \n
  • \n

    \n DisassociateExternalConnection: Removes an existing external connection from a repository. \n

    \n
  • \n
  • \n

    \n GetAssociatedPackageGroup: Returns the most closely associated package group to the specified package.

    \n
  • \n
  • \n

    \n GetAuthorizationToken: Generates a temporary authorization token for accessing repositories in the domain. The token expires the authorization period has passed. \n The default authorization period is 12 hours and can be customized to any length with a maximum of 12 hours.

    \n
  • \n
  • \n

    \n GetDomainPermissionsPolicy: Returns the policy of a resource\n that is attached to the specified domain.

    \n
  • \n
  • \n

    \n GetPackageVersionAsset: Returns the contents of an asset that is in a package version.

    \n
  • \n
  • \n

    \n GetPackageVersionReadme: Gets the readme file or descriptive text for a package version.

    \n
  • \n
  • \n

    \n GetRepositoryEndpoint: Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each \n package format:\n

    \n
      \n
    • \n

      \n generic\n

      \n
    • \n
    • \n

      \n maven\n

      \n
    • \n
    • \n

      \n npm\n

      \n
    • \n
    • \n

      \n nuget\n

      \n
    • \n
    • \n

      \n pypi\n

      \n
    • \n
    • \n

      \n swift\n

      \n
    • \n
    \n
  • \n
  • \n

    \n GetRepositoryPermissionsPolicy: Returns the resource policy that is set on a repository. \n

    \n
  • \n
  • \n

    \n ListAllowedRepositoriesForGroup: Lists the allowed repositories for a package group that has origin configuration set to ALLOW_SPECIFIC_REPOSITORIES.

    \n
  • \n
  • \n

    \n ListAssociatedPackages: Returns a list of packages associated with the requested package group.

    \n
  • \n
  • \n

    \n ListDomains: Returns a list of DomainSummary objects. Each\n returned DomainSummary object contains information about a domain.

    \n
  • \n
  • \n

    \n ListPackages: Lists the packages in a repository.

    \n
  • \n
  • \n

    \n ListPackageGroups: Returns a list of package groups in the requested domain.

    \n
  • \n
  • \n

    \n ListPackageVersionAssets: Lists the assets for a given package version.

    \n
  • \n
  • \n

    \n ListPackageVersionDependencies: Returns a list of the direct dependencies for a\n package version.

    \n
  • \n
  • \n

    \n ListPackageVersions: Returns a list of package versions for a specified\n package in a repository.

    \n
  • \n
  • \n

    \n ListRepositories: Returns a list of repositories owned by the Amazon Web Services account that called this method.

    \n
  • \n
  • \n

    \n ListRepositoriesInDomain: Returns a list of the repositories in a domain.

    \n
  • \n
  • \n

    \n ListSubPackageGroups: Returns a list of direct children of the specified package group.

    \n
  • \n
  • \n

    \n PublishPackageVersion: Creates a new package version containing one or more assets.

    \n
  • \n
  • \n

    \n PutDomainPermissionsPolicy: Attaches a resource policy to a domain.

    \n
  • \n
  • \n

    \n PutPackageOriginConfiguration: Sets the package origin configuration for a package, which determine \n how new versions of the package can be added to a specific repository.

    \n
  • \n
  • \n

    \n PutRepositoryPermissionsPolicy: Sets the resource policy on a repository\n that specifies permissions to access it.

    \n
  • \n
  • \n

    \n UpdatePackageGroup: Updates a package group. This API cannot be used to update a package group's origin configuration or pattern.

    \n
  • \n
  • \n

    \n UpdatePackageGroupOriginConfiguration: Updates the package origin configuration for a package group.

    \n
  • \n
  • \n

    \n UpdatePackageVersionsStatus: Updates the status of one or more versions of a package.

    \n
  • \n
  • \n

    \n UpdateRepository: Updates the properties of a repository.

    \n
  • \n
", + "smithy.api#documentation": "

CodeArtifact is a fully managed artifact repository compatible with language-native\n package managers and build tools such as npm, Apache Maven, pip, and dotnet. You can use CodeArtifact to\n share packages with development teams and pull packages. Packages can be pulled from both\n public and CodeArtifact repositories. You can also create an upstream relationship between a CodeArtifact\n repository and another repository, which effectively merges their contents from the point of\n view of a package manager client.

\n

\n CodeArtifact concepts\n

\n
    \n
  • \n

    \n Repository: A CodeArtifact repository contains a set of package\n versions, each of which maps to a set of assets, or files. Repositories are\n polyglot, so a single repository can contain packages of any supported type. Each\n repository exposes endpoints for fetching and publishing packages using tools such as the \n npm\n CLI or the Maven CLI (\n mvn\n ). For a list of supported package managers, see the \n CodeArtifact User Guide.

    \n
  • \n
  • \n

    \n Domain: Repositories are aggregated into a higher-level entity known as a\n domain. All package assets and metadata are stored in the domain,\n but are consumed through repositories. A given package asset, such as a Maven JAR file, is\n stored once per domain, no matter how many repositories it's present in. All of the assets\n and metadata in a domain are encrypted with the same customer master key (CMK) stored in\n Key Management Service (KMS).

    \n

    Each repository is a member of a single domain and can't be moved to a\n different domain.

    \n

    The domain allows organizational policy to be applied across multiple\n repositories, such as which accounts can access repositories in the domain, and\n which public repositories can be used as sources of packages.

    \n

    Although an organization can have multiple domains, we recommend a single production\n domain that contains all published artifacts so that teams can find and share packages\n across their organization.

    \n
  • \n
  • \n

    \n Package: A package is a bundle of software and the metadata required to\n resolve dependencies and install the software. CodeArtifact supports npm, PyPI, Maven, NuGet, Swift, Ruby, and generic package formats. \n For more information about the supported package formats and how to use CodeArtifact with them, see the \n CodeArtifact User Guide.

    \n

    In CodeArtifact, a package consists of:

    \n
      \n
    • \n

      A name (for example, webpack is the name of a\n popular npm package)

      \n
    • \n
    • \n

      An optional namespace (for example, @types in @types/node)

      \n
    • \n
    • \n

      A set of versions (for example, 1.0.0, 1.0.1,\n 1.0.2, etc.)

      \n
    • \n
    • \n

      Package-level metadata (for example, npm tags)

      \n
    • \n
    \n
  • \n
  • \n

    \n Package group: A group of packages that match a specified definition. Package \n groups can be used to apply configuration to multiple packages that match a defined pattern using \n package format, package namespace, and package name. You can use package groups to more conveniently \n configure package origin controls for multiple packages. Package origin controls are used to block or allow ingestion or publishing \n of new package versions, which protects users from malicious actions known as dependency substitution attacks.

    \n
  • \n
  • \n

    \n Package version: A version of a package, such as @types/node 12.6.9. The version number\n format and semantics vary for different package formats. For example, npm package versions\n must conform to the Semantic Versioning\n specification. In CodeArtifact, a package version consists of the version identifier,\n metadata at the package version level, and a set of assets.

    \n
  • \n
  • \n

    \n Upstream repository: One repository is upstream of another when the package versions in\n it can be accessed from the repository endpoint of the downstream repository, effectively\n merging the contents of the two repositories from the point of view of a client. CodeArtifact\n allows creating an upstream relationship between two repositories.

    \n
  • \n
  • \n

    \n Asset: An individual file stored in CodeArtifact associated with a package version, such as an npm\n .tgz file or Maven POM and JAR files.

    \n
  • \n
\n

\n CodeArtifact supported API operations\n

\n
    \n
  • \n

    \n AssociateExternalConnection: Adds an existing external \n connection to a repository.\n

    \n
  • \n
  • \n

    \n CopyPackageVersions: Copies package versions from one \n repository to another repository in the same domain.

    \n
  • \n
  • \n

    \n CreateDomain: Creates a domain.

    \n
  • \n
  • \n

    \n CreatePackageGroup: Creates a package group.

    \n
  • \n
  • \n

    \n CreateRepository: Creates a CodeArtifact repository in a domain.

    \n
  • \n
  • \n

    \n DeleteDomain: Deletes a domain. You cannot delete a domain that contains\n repositories.

    \n
  • \n
  • \n

    \n DeleteDomainPermissionsPolicy: Deletes the resource policy that is set on a domain.

    \n
  • \n
  • \n

    \n DeletePackage: Deletes a package and all associated package versions.

    \n
  • \n
  • \n

    \n DeletePackageGroup: Deletes a package group. Does not delete packages or package versions that are associated with a package group.

    \n
  • \n
  • \n

    \n DeletePackageVersions: Deletes versions of a package. After a package has\n been deleted, it can be republished, but its assets and metadata cannot be restored\n because they have been permanently removed from storage.

    \n
  • \n
  • \n

    \n DeleteRepository: Deletes a repository. \n

    \n
  • \n
  • \n

    \n DeleteRepositoryPermissionsPolicy: Deletes the resource policy that is set on a repository.

    \n
  • \n
  • \n

    \n DescribeDomain: Returns a DomainDescription object that\n contains information about the requested domain.

    \n
  • \n
  • \n

    \n DescribePackage: Returns a PackageDescription\n object that contains details about a package.

    \n
  • \n
  • \n

    \n DescribePackageGroup: Returns a PackageGroup\n object that contains details about a package group.

    \n
  • \n
  • \n

    \n DescribePackageVersion: Returns a PackageVersionDescription\n object that contains details about a package version.

    \n
  • \n
  • \n

    \n DescribeRepository: Returns a RepositoryDescription object\n that contains detailed information about the requested repository.

    \n
  • \n
  • \n

    \n DisposePackageVersions: Disposes versions of a package. A package version\n with the status Disposed cannot be restored because they have been\n permanently removed from storage.

    \n
  • \n
  • \n

    \n DisassociateExternalConnection: Removes an existing external connection from a repository. \n

    \n
  • \n
  • \n

    \n GetAssociatedPackageGroup: Returns the most closely associated package group to the specified package.

    \n
  • \n
  • \n

    \n GetAuthorizationToken: Generates a temporary authorization token for accessing repositories in the domain. The token expires the authorization period has passed. \n The default authorization period is 12 hours and can be customized to any length with a maximum of 12 hours.

    \n
  • \n
  • \n

    \n GetDomainPermissionsPolicy: Returns the policy of a resource\n that is attached to the specified domain.

    \n
  • \n
  • \n

    \n GetPackageVersionAsset: Returns the contents of an asset that is in a package version.

    \n
  • \n
  • \n

    \n GetPackageVersionReadme: Gets the readme file or descriptive text for a package version.

    \n
  • \n
  • \n

    \n GetRepositoryEndpoint: Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each \n package format:\n

    \n
      \n
    • \n

      \n generic\n

      \n
    • \n
    • \n

      \n maven\n

      \n
    • \n
    • \n

      \n npm\n

      \n
    • \n
    • \n

      \n nuget\n

      \n
    • \n
    • \n

      \n pypi\n

      \n
    • \n
    • \n

      \n ruby\n

      \n
    • \n
    • \n

      \n swift\n

      \n
    • \n
    \n
  • \n
  • \n

    \n GetRepositoryPermissionsPolicy: Returns the resource policy that is set on a repository. \n

    \n
  • \n
  • \n

    \n ListAllowedRepositoriesForGroup: Lists the allowed repositories for a package group that has origin configuration set to ALLOW_SPECIFIC_REPOSITORIES.

    \n
  • \n
  • \n

    \n ListAssociatedPackages: Returns a list of packages associated with the requested package group.

    \n
  • \n
  • \n

    \n ListDomains: Returns a list of DomainSummary objects. Each\n returned DomainSummary object contains information about a domain.

    \n
  • \n
  • \n

    \n ListPackages: Lists the packages in a repository.

    \n
  • \n
  • \n

    \n ListPackageGroups: Returns a list of package groups in the requested domain.

    \n
  • \n
  • \n

    \n ListPackageVersionAssets: Lists the assets for a given package version.

    \n
  • \n
  • \n

    \n ListPackageVersionDependencies: Returns a list of the direct dependencies for a\n package version.

    \n
  • \n
  • \n

    \n ListPackageVersions: Returns a list of package versions for a specified\n package in a repository.

    \n
  • \n
  • \n

    \n ListRepositories: Returns a list of repositories owned by the Amazon Web Services account that called this method.

    \n
  • \n
  • \n

    \n ListRepositoriesInDomain: Returns a list of the repositories in a domain.

    \n
  • \n
  • \n

    \n ListSubPackageGroups: Returns a list of direct children of the specified package group.

    \n
  • \n
  • \n

    \n PublishPackageVersion: Creates a new package version containing one or more assets.

    \n
  • \n
  • \n

    \n PutDomainPermissionsPolicy: Attaches a resource policy to a domain.

    \n
  • \n
  • \n

    \n PutPackageOriginConfiguration: Sets the package origin configuration for a package, which determine \n how new versions of the package can be added to a specific repository.

    \n
  • \n
  • \n

    \n PutRepositoryPermissionsPolicy: Sets the resource policy on a repository\n that specifies permissions to access it.

    \n
  • \n
  • \n

    \n UpdatePackageGroup: Updates a package group. This API cannot be used to update a package group's origin configuration or pattern.

    \n
  • \n
  • \n

    \n UpdatePackageGroupOriginConfiguration: Updates the package origin configuration for a package group.

    \n
  • \n
  • \n

    \n UpdatePackageVersionsStatus: Updates the status of one or more versions of a package.

    \n
  • \n
  • \n

    \n UpdateRepository: Updates the properties of a repository.

    \n
  • \n
", "smithy.api#title": "CodeArtifact", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -1362,7 +1362,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package versions to be copied. The package component that specifies its namespace depends on its type. For example:

\n \n

The namespace is required when copying package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", + "smithy.api#documentation": "

The namespace of the package versions to be copied. The package component that specifies its namespace depends on its type. For example:

\n \n

The namespace is required when copying package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", "smithy.api#httpQuery": "namespace" } }, @@ -2022,7 +2022,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package to delete. The package component that specifies its namespace depends on its type. For example:

\n \n

The namespace is required when deleting packages of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", + "smithy.api#documentation": "

The namespace of the package to delete. The package component that specifies its namespace depends on its type. For example:

\n \n

The namespace is required when deleting packages of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", "smithy.api#httpQuery": "namespace" } }, @@ -2124,7 +2124,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package versions to be deleted. The package component that specifies its namespace depends on its type. For example:

\n \n

The namespace is required when deleting package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", + "smithy.api#documentation": "

The namespace of the package versions to be deleted. The package component that specifies its namespace depends on its type. For example:

\n \n

The namespace is required when deleting package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", "smithy.api#httpQuery": "namespace" } }, @@ -2563,7 +2563,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the requested package. The package component that specifies its namespace depends on its type. For example:

\n \n

The namespace is required when requesting packages of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", + "smithy.api#documentation": "

The namespace of the requested package. The package component that specifies its namespace depends on its type. For example:

\n \n

The namespace is required when requesting packages of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", "smithy.api#httpQuery": "namespace" } }, @@ -2669,7 +2669,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the requested package version. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required when requesting package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", + "smithy.api#documentation": "

The namespace of the requested package version. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required when requesting package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", "smithy.api#httpQuery": "namespace" } }, @@ -2965,7 +2965,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package versions to be disposed. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required when disposing package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", + "smithy.api#documentation": "

The namespace of the package versions to be disposed. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required when disposing package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", "smithy.api#httpQuery": "namespace" } }, @@ -3266,7 +3266,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package from which to get the associated package group. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required when getting associated package groups from packages of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", + "smithy.api#documentation": "

The namespace of the package from which to get the associated package group. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required when getting associated package groups from packages of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", "smithy.api#httpQuery": "namespace" } }, @@ -3533,7 +3533,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package version with the requested asset file. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required when requesting assets from package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", + "smithy.api#documentation": "

The namespace of the package version with the requested asset file. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required when requesting assets from package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", "smithy.api#httpQuery": "namespace" } }, @@ -3681,7 +3681,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package version with the requested readme file. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required when requesting the readme from package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", + "smithy.api#documentation": "

The namespace of the package version with the requested readme file. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required when requesting the readme from package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", "smithy.api#httpQuery": "namespace" } }, @@ -3718,7 +3718,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package version with the requested readme file. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" + "smithy.api#documentation": "

The namespace of the package version with the requested readme file. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" } }, "package": { @@ -3776,7 +3776,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each \n package format:\n

\n
    \n
  • \n

    \n generic\n

    \n
  • \n
  • \n

    \n maven\n

    \n
  • \n
  • \n

    \n npm\n

    \n
  • \n
  • \n

    \n nuget\n

    \n
  • \n
  • \n

    \n pypi\n

    \n
  • \n
  • \n

    \n swift\n

    \n
  • \n
", + "smithy.api#documentation": "

\n Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each \n package format:\n

\n
    \n
  • \n

    \n generic\n

    \n
  • \n
  • \n

    \n maven\n

    \n
  • \n
  • \n

    \n npm\n

    \n
  • \n
  • \n

    \n nuget\n

    \n
  • \n
  • \n

    \n pypi\n

    \n
  • \n
  • \n

    \n ruby\n

    \n
  • \n
  • \n

    \n swift\n

    \n
  • \n
", "smithy.api#http": { "method": "GET", "uri": "/v1/repository/endpoint", @@ -4522,7 +4522,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package version that contains the requested package version assets. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required requesting assets from package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", + "smithy.api#documentation": "

The namespace of the package version that contains the requested package version assets. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required requesting assets from package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", "smithy.api#httpQuery": "namespace" } }, @@ -4573,7 +4573,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package version that contains the requested package version assets. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" + "smithy.api#documentation": "

The namespace of the package version that contains the requested package version assets. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" } }, "package": { @@ -4682,7 +4682,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package version with the requested dependencies. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required when listing dependencies from package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", + "smithy.api#documentation": "

The namespace of the package version with the requested dependencies. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required when listing dependencies from package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", "smithy.api#httpQuery": "namespace" } }, @@ -4726,7 +4726,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package version that contains the returned dependencies. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" + "smithy.api#documentation": "

The namespace of the package version that contains the returned dependencies. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" } }, "package": { @@ -4850,7 +4850,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package that contains the requested package versions. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required when deleting package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", + "smithy.api#documentation": "

The namespace of the package that contains the requested package versions. The package component that specifies its \n namespace depends on its type. For example:

\n \n

The namespace is required when deleting package versions of the following formats:

\n
    \n
  • \n

    Maven

    \n
  • \n
  • \n

    Swift

    \n
  • \n
  • \n

    generic

    \n
  • \n
\n
\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", "smithy.api#httpQuery": "namespace" } }, @@ -4920,7 +4920,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package that contains the requested package versions. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" + "smithy.api#documentation": "

The namespace of the package that contains the requested package versions. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" } }, "package": { @@ -5031,7 +5031,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace prefix used to filter requested packages. \n Only packages with a namespace that starts with the provided string value are returned. \n Note that although this option is called --namespace and not --namespace-prefix, it has prefix-matching behavior.

\n

Each package format uses namespace as follows:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", + "smithy.api#documentation": "

The namespace prefix used to filter requested packages. \n Only packages with a namespace that starts with the provided string value are returned. \n Note that although this option is called --namespace and not --namespace-prefix, it has prefix-matching behavior.

\n

Each package format uses namespace as follows:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", "smithy.api#httpQuery": "namespace" } }, @@ -5500,7 +5500,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package that this package depends on. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" + "smithy.api#documentation": "

The namespace of the package that this package depends on. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" } }, "package": { @@ -5544,7 +5544,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" + "smithy.api#documentation": "

The namespace of the package. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" } }, "name": { @@ -5597,6 +5597,12 @@ "smithy.api#enumValue": "generic" } }, + "RUBY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ruby" + } + }, "SWIFT": { "target": "smithy.api#Unit", "traits": { @@ -6038,7 +6044,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" + "smithy.api#documentation": "

The namespace of the package. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" } }, "package": { @@ -6086,7 +6092,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package version. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" + "smithy.api#documentation": "

The namespace of the package version. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
" } }, "packageName": { @@ -6768,7 +6774,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package to be updated. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", + "smithy.api#documentation": "

The namespace of the package to be updated. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", "smithy.api#httpQuery": "namespace" } }, @@ -7733,7 +7739,7 @@ "namespace": { "target": "com.amazonaws.codeartifact#PackageNamespace", "traits": { - "smithy.api#documentation": "

The namespace of the package version to be updated. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python and NuGet package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", + "smithy.api#documentation": "

The namespace of the package version to be updated. The package component that specifies its \n namespace depends on its type. For example:

\n
    \n
  • \n

    \n The namespace of a Maven package version is its groupId.\n

    \n
  • \n
  • \n

    \n The namespace of an npm or Swift package version is its scope.\n

    \n
  • \n
  • \n

    The namespace of a generic package is its namespace.

    \n
  • \n
  • \n

    \n Python, NuGet, and Ruby package versions do not contain a corresponding component, package versions \n of those formats do not have a namespace.\n

    \n
  • \n
", "smithy.api#httpQuery": "namespace" } }, diff --git a/models/codebuild.json b/models/codebuild.json index d70139f4f6..bbafcd7e7e 100644 --- a/models/codebuild.json +++ b/models/codebuild.json @@ -4521,7 +4521,7 @@ "token": { "target": "com.amazonaws.codebuild#SensitiveNonEmptyString", "traits": { - "smithy.api#documentation": "

For GitHub or GitHub Enterprise, this is the personal access token. For Bitbucket,\n this is the app password.

", + "smithy.api#documentation": "

For GitHub or GitHub Enterprise, this is the personal access token. For Bitbucket,\n this is either the access token or the app password.

", "smithy.api#required": {} } }, @@ -6355,7 +6355,7 @@ "location": { "target": "com.amazonaws.codebuild#String", "traits": { - "smithy.api#documentation": "

Information about the location of the source code to be built. Valid values\n include:

\n
    \n
  • \n

    For source code settings that are specified in the source action of a pipeline\n in CodePipeline, location should not be specified. If it is specified,\n CodePipeline ignores it. This is because CodePipeline uses the settings in a pipeline's source\n action instead of this value.

    \n
  • \n
  • \n

    For source code in an CodeCommit repository, the HTTPS clone URL to the repository\n that contains the source code and the buildspec file (for example,\n https://git-codecommit..amazonaws.com/v1/repos/).

    \n
  • \n
  • \n

    For source code in an Amazon S3 input bucket, one of the following.

    \n
      \n
    • \n

      The path to the ZIP file that contains the source code (for example,\n //.zip).

      \n
    • \n
    • \n

      The path to the folder that contains the source code (for example,\n ///).

      \n
    • \n
    \n
  • \n
  • \n

    For source code in a GitHub repository, the HTTPS clone URL to the repository\n that contains the source and the buildspec file. You must connect your Amazon Web Services account \n to your GitHub account. Use the CodeBuild console to start creating a build\n project. When you use the console to connect (or reconnect) with GitHub, on the\n GitHub Authorize application page, for\n Organization access, choose Request access next to each repository you want to\n allow CodeBuild to have access to, and then choose Authorize\n application. (After you have connected to your GitHub account,\n you do not need to finish creating the build project. You can leave the CodeBuild\n console.) To instruct CodeBuild to use this connection, in the source\n object, set the auth object's type value to\n OAUTH.

    \n
  • \n
  • \n

    For source code in an GitLab or self-managed GitLab repository, the HTTPS clone URL to the repository\n that contains the source and the buildspec file. You must connect your Amazon Web Services account \n to your GitLab account. Use the CodeBuild console to start creating a build\n project. When you use the console to connect (or reconnect) with GitLab, on the\n Connections Authorize application page, choose Authorize. Then on the CodeStar Connections Create GitLab connection page, \n choose Connect to GitLab. (After you have connected to your GitLab account,\n you do not need to finish creating the build project. You can leave the CodeBuild\n console.) To instruct CodeBuild to override the default connection and use this connection instead,\n set the auth object's type value to\n CODECONNECTIONS in the source object.

    \n
  • \n
  • \n

    For source code in a Bitbucket repository, the HTTPS clone URL to the\n repository that contains the source and the buildspec file. You must connect\n your Amazon Web Services account to your Bitbucket account. Use the CodeBuild console to start\n creating a build project. When you use the console to connect (or reconnect)\n with Bitbucket, on the Bitbucket Confirm access to your\n account page, choose Grant\n access. (After you have connected to your Bitbucket account, you\n do not need to finish creating the build project. You can leave the CodeBuild\n console.) To instruct CodeBuild to use this connection, in the source\n object, set the auth object's type value to\n OAUTH.

    \n
  • \n
\n

\n If you specify CODEPIPELINE for the Type property, don't specify this \n property. For all of the other types, you must specify Location.\n

" + "smithy.api#documentation": "

Information about the location of the source code to be built. Valid values\n include:

\n
    \n
  • \n

    For source code settings that are specified in the source action of a pipeline\n in CodePipeline, location should not be specified. If it is specified,\n CodePipeline ignores it. This is because CodePipeline uses the settings in a pipeline's source\n action instead of this value.

    \n
  • \n
  • \n

    For source code in an CodeCommit repository, the HTTPS clone URL to the repository\n that contains the source code and the buildspec file (for example,\n https://git-codecommit..amazonaws.com/v1/repos/).

    \n
  • \n
  • \n

    For source code in an Amazon S3 input bucket, one of the following.

    \n
      \n
    • \n

      The path to the ZIP file that contains the source code (for example,\n //.zip).

      \n
    • \n
    • \n

      The path to the folder that contains the source code (for example,\n ///).

      \n
    • \n
    \n
  • \n
  • \n

    For source code in a GitHub repository, the HTTPS clone URL to the repository\n that contains the source and the buildspec file. You must connect your Amazon Web Services account \n to your GitHub account. Use the CodeBuild console to start creating a build\n project. When you use the console to connect (or reconnect) with GitHub, on the\n GitHub Authorize application page, for\n Organization access, choose Request access next to each repository you want to\n allow CodeBuild to have access to, and then choose Authorize\n application. (After you have connected to your GitHub account,\n you do not need to finish creating the build project. You can leave the CodeBuild\n console.) To instruct CodeBuild to use this connection, in the source\n object, set the auth object's type value to\n OAUTH.

    \n
  • \n
  • \n

    For source code in an GitLab or self-managed GitLab repository, the HTTPS clone URL to the repository\n that contains the source and the buildspec file. You must connect your Amazon Web Services account \n to your GitLab account. Use the CodeBuild console to start creating a build\n project. When you use the console to connect (or reconnect) with GitLab, on the\n Connections Authorize application page, choose Authorize. Then on the CodeConnections Create GitLab connection page, \n choose Connect to GitLab. (After you have connected to your GitLab account,\n you do not need to finish creating the build project. You can leave the CodeBuild\n console.) To instruct CodeBuild to override the default connection and use this connection instead,\n set the auth object's type value to\n CODECONNECTIONS in the source object.

    \n
  • \n
  • \n

    For source code in a Bitbucket repository, the HTTPS clone URL to the\n repository that contains the source and the buildspec file. You must connect\n your Amazon Web Services account to your Bitbucket account. Use the CodeBuild console to start\n creating a build project. When you use the console to connect (or reconnect)\n with Bitbucket, on the Bitbucket Confirm access to your\n account page, choose Grant\n access. (After you have connected to your Bitbucket account, you\n do not need to finish creating the build project. You can leave the CodeBuild\n console.) To instruct CodeBuild to use this connection, in the source\n object, set the auth object's type value to\n OAUTH.

    \n
  • \n
\n

\n If you specify CODEPIPELINE for the Type property, don't specify this \n property. For all of the other types, you must specify Location.\n

" } }, "gitCloneDepth": { @@ -8956,7 +8956,7 @@ "type": { "target": "com.amazonaws.codebuild#WebhookFilterType", "traits": { - "smithy.api#documentation": "

The type of webhook filter. There are eight webhook filter types: EVENT,\n ACTOR_ACCOUNT_ID, HEAD_REF, BASE_REF,\n FILE_PATH, COMMIT_MESSAGE, TAG_NAME, and RELEASE_NAME.

\n
    \n
  • \n

    \n EVENT\n

    \n
      \n
    • \n

      A webhook event triggers a build when the provided pattern\n matches one of eight event types: PUSH,\n PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, \n PULL_REQUEST_CLOSED, PULL_REQUEST_REOPENED, \n PULL_REQUEST_MERGED, RELEASED, and PRERELEASED. The EVENT patterns are\n specified as a comma-separated string. For example, PUSH,\n PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED filters all push, pull\n request created, and pull request updated events.

      \n \n

      The PULL_REQUEST_REOPENED works with GitHub and GitHub\n Enterprise only. The RELEASED and PRERELEASED work \n with GitHub only.

      \n
      \n
    • \n
    \n
  • \n
  • \n

    ACTOR_ACCOUNT_ID

    \n
      \n
    • \n

      A webhook event triggers a build when a GitHub, GitHub Enterprise, or\n Bitbucket account ID matches the regular expression pattern.\n

      \n
    • \n
    \n
  • \n
  • \n

    HEAD_REF

    \n
      \n
    • \n

      A webhook event triggers a build when the head reference matches the\n regular expression pattern. For example,\n refs/heads/branch-name and refs/tags/tag-name.

      \n \n

      Works with GitHub and GitHub Enterprise push, GitHub and GitHub\n Enterprise pull request, Bitbucket push, and Bitbucket pull request events.

      \n
      \n
    • \n
    \n
  • \n
  • \n

    BASE_REF

    \n
      \n
    • \n

      A webhook event triggers a build when the base reference matches the\n regular expression pattern. For example,\n refs/heads/branch-name.

      \n \n

      Works with pull request events only.

      \n
      \n
    • \n
    \n
  • \n
  • \n

    FILE_PATH

    \n
      \n
    • \n

      A webhook triggers a build when the path of a changed file matches the\n regular expression pattern.

      \n \n

      Works with GitHub and Bitbucket events push and pull requests events.\n Also works with GitHub Enterprise push events, but does not work with\n GitHub Enterprise pull request events.

      \n
      \n
    • \n
    \n
  • \n
  • \n

    COMMIT_MESSAGE

    \n
      \n
    • \n

      A webhook triggers a build when the head commit message matches the\n regular expression pattern.

      \n \n

      Works with GitHub and Bitbucket events push and pull requests events.\n Also works with GitHub Enterprise push events, but does not work with\n GitHub Enterprise pull request events.

      \n
      \n
    • \n
    \n
  • \n
  • \n

    TAG_NAME

    \n
      \n
    • \n

      A webhook triggers a build when the tag name of the release matches the \n regular expression pattern.

      \n \n

      Works with RELEASED and PRERELEASED events only.

      \n
      \n
    • \n
    \n
  • \n
  • \n

    RELEASE_NAME

    \n
      \n
    • \n

      A webhook triggers a build when the release name matches the \n regular expression pattern.

      \n \n

      Works with RELEASED and PRERELEASED events only.

      \n
      \n
    • \n
    \n
  • \n
", + "smithy.api#documentation": "

The type of webhook filter. There are nine webhook filter types: EVENT,\n ACTOR_ACCOUNT_ID, HEAD_REF, BASE_REF,\n FILE_PATH, COMMIT_MESSAGE, TAG_NAME, RELEASE_NAME, \n and WORKFLOW_NAME.

\n
    \n
  • \n

    \n EVENT\n

    \n
      \n
    • \n

      A webhook event triggers a build when the provided pattern\n matches one of nine event types: PUSH,\n PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, \n PULL_REQUEST_CLOSED, PULL_REQUEST_REOPENED, \n PULL_REQUEST_MERGED, RELEASED, PRERELEASED, \n and WORKFLOW_JOB_QUEUED. The EVENT patterns are\n specified as a comma-separated string. For example, PUSH,\n PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED filters all push, pull\n request created, and pull request updated events.

      \n \n

      The PULL_REQUEST_REOPENED works with GitHub and GitHub\n Enterprise only. The RELEASED, PRERELEASED, \n and WORKFLOW_JOB_QUEUED work with GitHub only.

      \n
      \n
    • \n
    \n
  • \n
  • \n

    ACTOR_ACCOUNT_ID

    \n
      \n
    • \n

      A webhook event triggers a build when a GitHub, GitHub Enterprise, or\n Bitbucket account ID matches the regular expression pattern.\n

      \n
    • \n
    \n
  • \n
  • \n

    HEAD_REF

    \n
      \n
    • \n

      A webhook event triggers a build when the head reference matches the\n regular expression pattern. For example,\n refs/heads/branch-name and refs/tags/tag-name.

      \n \n

      Works with GitHub and GitHub Enterprise push, GitHub and GitHub\n Enterprise pull request, Bitbucket push, and Bitbucket pull request events.

      \n
      \n
    • \n
    \n
  • \n
  • \n

    BASE_REF

    \n
      \n
    • \n

      A webhook event triggers a build when the base reference matches the\n regular expression pattern. For example,\n refs/heads/branch-name.

      \n \n

      Works with pull request events only.

      \n
      \n
    • \n
    \n
  • \n
  • \n

    FILE_PATH

    \n
      \n
    • \n

      A webhook triggers a build when the path of a changed file matches the\n regular expression pattern.

      \n \n

      Works with GitHub and Bitbucket events push and pull requests events.\n Also works with GitHub Enterprise push events, but does not work with\n GitHub Enterprise pull request events.

      \n
      \n
    • \n
    \n
  • \n
  • \n

    COMMIT_MESSAGE

    \n
      \n
    • \n

      A webhook triggers a build when the head commit message matches the\n regular expression pattern.

      \n \n

      Works with GitHub and Bitbucket events push and pull requests events.\n Also works with GitHub Enterprise push events, but does not work with\n GitHub Enterprise pull request events.

      \n
      \n
    • \n
    \n
  • \n
  • \n

    TAG_NAME

    \n
      \n
    • \n

      A webhook triggers a build when the tag name of the release matches the \n regular expression pattern.

      \n \n

      Works with RELEASED and PRERELEASED events only.

      \n
      \n
    • \n
    \n
  • \n
  • \n

    RELEASE_NAME

    \n
      \n
    • \n

      A webhook triggers a build when the release name matches the \n regular expression pattern.

      \n \n

      Works with RELEASED and PRERELEASED events only.

      \n
      \n
    • \n
    \n
  • \n
  • \n

    WORKFLOW_NAME

    \n
      \n
    • \n

      A webhook triggers a build when the workflow name matches the \n regular expression pattern.

      \n \n

      Works with WORKFLOW_JOB_QUEUED events only.

      \n
      \n
    • \n
    \n
  • \n
", "smithy.api#required": {} } }, @@ -9016,6 +9016,24 @@ "traits": { "smithy.api#enumValue": "COMMIT_MESSAGE" } + }, + "WORKFLOW_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WORKFLOW_NAME" + } + }, + "TAG_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TAG_NAME" + } + }, + "RELEASE_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RELEASE_NAME" + } } } }, diff --git a/models/codepipeline.json b/models/codepipeline.json index 6c74e204ed..fd5aa3e825 100644 --- a/models/codepipeline.json +++ b/models/codepipeline.json @@ -1858,6 +1858,9 @@ { "target": "com.amazonaws.codepipeline#RetryStageExecution" }, + { + "target": "com.amazonaws.codepipeline#RollbackStage" + }, { "target": "com.amazonaws.codepipeline#StartPipelineExecution" }, @@ -3584,6 +3587,23 @@ "smithy.api#documentation": "

The interaction or event that started a pipeline execution.

" } }, + "com.amazonaws.codepipeline#ExecutionType": { + "type": "enum", + "members": { + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STANDARD" + } + }, + "ROLLBACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK" + } + } + } + }, "com.amazonaws.codepipeline#ExecutorConfiguration": { "type": "structure", "members": { @@ -3627,6 +3647,20 @@ "com.amazonaws.codepipeline#ExternalExecutionSummary": { "type": "string" }, + "com.amazonaws.codepipeline#FailureConditions": { + "type": "structure", + "members": { + "result": { + "target": "com.amazonaws.codepipeline#Result", + "traits": { + "smithy.api#documentation": "

The specified result for when the failure conditions are met, such as rolling back the stage.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration that specifies the result, such as rollback, to occur upon stage failure.

" + } + }, "com.amazonaws.codepipeline#FailureDetails": { "type": "structure", "members": { @@ -5072,6 +5106,12 @@ "smithy.api#documentation": "

The maximum number of results to return in a single call. To retrieve the remaining\n results, make another call with the returned nextToken value. Pipeline history is\n limited to the most recent 12 months, based on pipeline execution start times. Default\n value is 100.

" } }, + "filter": { + "target": "com.amazonaws.codepipeline#PipelineExecutionFilter", + "traits": { + "smithy.api#documentation": "

The pipeline execution to filter on.

" + } + }, "nextToken": { "target": "com.amazonaws.codepipeline#NextToken", "traits": { @@ -5715,12 +5755,38 @@ "traits": { "smithy.api#documentation": "

The method that the pipeline will use to handle multiple executions. The default\n mode is SUPERSEDED.

" } + }, + "executionType": { + "target": "com.amazonaws.codepipeline#ExecutionType", + "traits": { + "smithy.api#documentation": "

The type of the pipeline execution.

" + } + }, + "rollbackMetadata": { + "target": "com.amazonaws.codepipeline#PipelineRollbackMetadata", + "traits": { + "smithy.api#documentation": "

The metadata about the execution pertaining to stage rollback.

" + } } }, "traits": { "smithy.api#documentation": "

Represents information about an execution of a pipeline.

" } }, + "com.amazonaws.codepipeline#PipelineExecutionFilter": { + "type": "structure", + "members": { + "succeededInStage": { + "target": "com.amazonaws.codepipeline#SucceededInStageFilter", + "traits": { + "smithy.api#documentation": "

Filter for pipeline executions where the stage was successful in the current pipeline\n version.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The pipeline execution to filter on.

" + } + }, "com.amazonaws.codepipeline#PipelineExecutionId": { "type": "string", "traits": { @@ -5754,6 +5820,18 @@ "smithy.api#error": "client" } }, + "com.amazonaws.codepipeline#PipelineExecutionOutdatedException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.codepipeline#Message" + } + }, + "traits": { + "smithy.api#documentation": "

The specified pipeline execution is outdated and cannot be used as a target pipeline execution for rollback.

", + "smithy.api#error": "client" + } + }, "com.amazonaws.codepipeline#PipelineExecutionStatus": { "type": "enum", "members": { @@ -5819,6 +5897,12 @@ "smithy.api#documentation": "

The status of the pipeline execution.

\n
    \n
  • \n

    InProgress: The pipeline execution is currently running.

    \n
  • \n
  • \n

    Stopped: The pipeline execution was manually stopped. For more information,\n see Stopped Executions.

    \n
  • \n
  • \n

    Stopping: The pipeline execution received a request to be manually stopped.\n Depending on the selected stop mode, the execution is either completing or\n abandoning in-progress actions. For more information, see Stopped Executions.

    \n
  • \n
  • \n

    Succeeded: The pipeline execution was completed successfully.

    \n
  • \n
  • \n

    Superseded: While this pipeline execution was waiting for the next stage to\n be completed, a newer pipeline execution advanced and continued through the\n pipeline instead. For more information, see Superseded Executions.

    \n
  • \n
  • \n

    Failed: The pipeline execution was not completed successfully.

    \n
  • \n
" } }, + "statusSummary": { + "target": "com.amazonaws.codepipeline#PipelineExecutionStatusSummary", + "traits": { + "smithy.api#documentation": "

Status summary for the pipeline.

" + } + }, "startTime": { "target": "com.amazonaws.codepipeline#Timestamp", "traits": { @@ -5854,6 +5938,18 @@ "traits": { "smithy.api#documentation": "

The method that the pipeline will use to handle multiple executions. The default\n mode is SUPERSEDED.

" } + }, + "executionType": { + "target": "com.amazonaws.codepipeline#ExecutionType", + "traits": { + "smithy.api#documentation": "

Type of the pipeline execution.

" + } + }, + "rollbackMetadata": { + "target": "com.amazonaws.codepipeline#PipelineRollbackMetadata", + "traits": { + "smithy.api#documentation": "

The metadata for the stage execution to be rolled back.

" + } } }, "traits": { @@ -5944,6 +6040,20 @@ "smithy.api#error": "client" } }, + "com.amazonaws.codepipeline#PipelineRollbackMetadata": { + "type": "structure", + "members": { + "rollbackTargetPipelineExecutionId": { + "target": "com.amazonaws.codepipeline#PipelineExecutionId", + "traits": { + "smithy.api#documentation": "

The pipeline execution ID to which the stage will be rolled back.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The metadata for the stage execution to be rolled back.

" + } + }, "com.amazonaws.codepipeline#PipelineStageDeclarationList": { "type": "list", "member": { @@ -6952,6 +7062,17 @@ "smithy.api#error": "client" } }, + "com.amazonaws.codepipeline#Result": { + "type": "enum", + "members": { + "ROLLBACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK" + } + } + } + }, "com.amazonaws.codepipeline#RetryStageExecution": { "type": "operation", "input": { @@ -7073,6 +7194,85 @@ "smithy.api#pattern": "^arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/" } }, + "com.amazonaws.codepipeline#RollbackStage": { + "type": "operation", + "input": { + "target": "com.amazonaws.codepipeline#RollbackStageInput" + }, + "output": { + "target": "com.amazonaws.codepipeline#RollbackStageOutput" + }, + "errors": [ + { + "target": "com.amazonaws.codepipeline#ConflictException" + }, + { + "target": "com.amazonaws.codepipeline#PipelineExecutionNotFoundException" + }, + { + "target": "com.amazonaws.codepipeline#PipelineExecutionOutdatedException" + }, + { + "target": "com.amazonaws.codepipeline#PipelineNotFoundException" + }, + { + "target": "com.amazonaws.codepipeline#StageNotFoundException" + }, + { + "target": "com.amazonaws.codepipeline#UnableToRollbackStageException" + }, + { + "target": "com.amazonaws.codepipeline#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Rolls back a stage execution.

" + } + }, + "com.amazonaws.codepipeline#RollbackStageInput": { + "type": "structure", + "members": { + "pipelineName": { + "target": "com.amazonaws.codepipeline#PipelineName", + "traits": { + "smithy.api#documentation": "

The name of the pipeline for which the stage will be rolled back.

", + "smithy.api#required": {} + } + }, + "stageName": { + "target": "com.amazonaws.codepipeline#StageName", + "traits": { + "smithy.api#documentation": "

The name of the stage in the pipeline to be rolled back.

", + "smithy.api#required": {} + } + }, + "targetPipelineExecutionId": { + "target": "com.amazonaws.codepipeline#PipelineExecutionId", + "traits": { + "smithy.api#documentation": "

The pipeline execution ID for the stage to be rolled back to.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.codepipeline#RollbackStageOutput": { + "type": "structure", + "members": { + "pipelineExecutionId": { + "target": "com.amazonaws.codepipeline#PipelineExecutionId", + "traits": { + "smithy.api#documentation": "

The execution ID of the pipeline execution for the stage that has been rolled\n back.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.codepipeline#S3ArtifactLocation": { "type": "structure", "members": { @@ -7311,6 +7511,12 @@ "smithy.api#documentation": "

The actions included in a stage.

", "smithy.api#required": {} } + }, + "onFailure": { + "target": "com.amazonaws.codepipeline#FailureConditions", + "traits": { + "smithy.api#documentation": "

The method to use when a stage has not completed successfully. For example, configuring this field for rollback will roll back a failed stage automatically to the last successful pipeline execution in the stage.

" + } } }, "traits": { @@ -7333,6 +7539,12 @@ "smithy.api#documentation": "

The status of the stage, or for a completed stage, the last status of the\n stage.

\n \n

A status of cancelled means that the pipeline’s definition was updated before the\n stage execution could be completed.

\n
", "smithy.api#required": {} } + }, + "type": { + "target": "com.amazonaws.codepipeline#ExecutionType", + "traits": { + "smithy.api#documentation": "

The type of pipeline execution for the stage, such as a rollback pipeline execution.

" + } } }, "traits": { @@ -7704,6 +7916,20 @@ "com.amazonaws.codepipeline#String": { "type": "string" }, + "com.amazonaws.codepipeline#SucceededInStageFilter": { + "type": "structure", + "members": { + "stageName": { + "target": "com.amazonaws.codepipeline#StageName", + "traits": { + "smithy.api#documentation": "

The name of the stage for filtering for pipeline executions where the stage was successful in the current pipeline\n version.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Filter for pipeline executions that have successfully completed the stage in the current pipeline version.

" + } + }, "com.amazonaws.codepipeline#Tag": { "type": "structure", "members": { @@ -8038,9 +8264,33 @@ "traits": { "smithy.api#enumValue": "WebhookV2" } + }, + "ManualRollback": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ManualRollback" + } + }, + "AutomatedRollback": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AutomatedRollback" + } } } }, + "com.amazonaws.codepipeline#UnableToRollbackStageException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.codepipeline#String" + } + }, + "traits": { + "smithy.api#documentation": "

Unable to roll back the stage. The cause might be if the pipeline version has changed\n since the target pipeline execution was deployed, the stage is currently running, or an\n incorrect target pipeline execution ID was provided.

", + "smithy.api#error": "client" + } + }, "com.amazonaws.codepipeline#UntagResource": { "type": "operation", "input": { diff --git a/models/cognito-identity-provider.json b/models/cognito-identity-provider.json index 5770dc03be..7889954dc8 100644 --- a/models/cognito-identity-provider.json +++ b/models/cognito-identity-provider.json @@ -2385,7 +2385,7 @@ "UserLastModifiedDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was modified.

" + "smithy.api#documentation": "

The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } }, "Enabled": { @@ -4108,7 +4108,7 @@ "CreationDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was created.

" + "smithy.api#documentation": "

The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } }, "EventResponse": { @@ -5295,7 +5295,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds a configuration and trust relationship between a third-party identity provider (IdP) and a user pool.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" + "smithy.api#documentation": "

Adds a configuration and trust relationship between a third-party identity provider\n (IdP) and a user pool.

\n \n

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For\n this operation, you must use IAM credentials to authorize requests, and you must\n grant yourself the corresponding IAM permission in a policy.

\n

\n Learn more\n

\n \n
" } }, "com.amazonaws.cognitoidentityprovider#CreateIdentityProviderRequest": { @@ -5406,7 +5406,7 @@ "Identifier": { "target": "com.amazonaws.cognitoidentityprovider#ResourceServerIdentifierType", "traits": { - "smithy.api#documentation": "

A unique resource server identifier for the resource server. This could be an HTTPS\n endpoint where the resource server is located, such as\n https://my-weather-api.example.com.

", + "smithy.api#documentation": "

A unique resource server identifier for the resource server. The identifier can be an\n API friendly name like solar-system-data. You can also set an API URL like\n https://solar-system-data-api.example.com as your identifier.

\n

Amazon Cognito represents scopes in the access token in the format\n $resource-server-identifier/$scope. Longer scope-identifier strings\n increase the size of your access tokens.

", "smithy.api#required": {} } }, @@ -6266,7 +6266,7 @@ "DefaultRedirectURI": { "target": "com.amazonaws.cognitoidentityprovider#RedirectUrlType", "traits": { - "smithy.api#documentation": "

The default redirect URI. Must be in the CallbackURLs list.

\n

A redirect URI must:

\n
    \n
  • \n

    Be an absolute URI.

    \n
  • \n
  • \n

    Be registered with the authorization server.

    \n
  • \n
  • \n

    Not include a fragment component.

    \n
  • \n
\n

See OAuth 2.0 -\n Redirection Endpoint.

\n

Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes\n only.

\n

App callback URLs such as myapp://example are also supported.

" + "smithy.api#documentation": "

The default redirect URI. In app clients with one assigned IdP, replaces\n redirect_uri in authentication requests. Must be in the\n CallbackURLs list.

\n

A redirect URI must:

\n
    \n
  • \n

    Be an absolute URI.

    \n
  • \n
  • \n

    Be registered with the authorization server.

    \n
  • \n
  • \n

    Not include a fragment component.

    \n
  • \n
\n

For more information, see Default redirect URI.

\n

Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes\n only.

\n

App callback URLs such as myapp://example are also supported.

" } }, "AllowedOAuthFlows": { @@ -7294,7 +7294,7 @@ "Identifier": { "target": "com.amazonaws.cognitoidentityprovider#ResourceServerIdentifierType", "traits": { - "smithy.api#documentation": "

The identifier for the resource server

", + "smithy.api#documentation": "

A unique resource server identifier for the resource server. The identifier can be an\n API friendly name like solar-system-data. You can also set an API URL like\n https://solar-system-data-api.example.com as your identifier.

\n

Amazon Cognito represents scopes in the access token in the format\n $resource-server-identifier/$scope. Longer scope-identifier strings\n increase the size of your access tokens.

", "smithy.api#required": {} } } @@ -7755,7 +7755,7 @@ "DeviceLastModifiedDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was modified.

" + "smithy.api#documentation": "

The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } }, "DeviceLastAuthenticatedDate": { @@ -9405,13 +9405,13 @@ "LastModifiedDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was modified.

" + "smithy.api#documentation": "

The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } }, "CreationDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was created.

" + "smithy.api#documentation": "

The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } } }, @@ -9502,13 +9502,13 @@ "LastModifiedDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was modified.

" + "smithy.api#documentation": "

The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } }, "CreationDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was created.

" + "smithy.api#documentation": "

The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } } }, @@ -10909,7 +10909,7 @@ "Filter": { "target": "com.amazonaws.cognitoidentityprovider#UserFilterType", "traits": { - "smithy.api#documentation": "

A filter string of the form \"AttributeName\n Filter-Type \"AttributeValue\"\". Quotation marks\n within the filter string must be escaped using the backslash (\\) character. For example,\n \"family_name = \\\"Reddy\\\"\".

\n
    \n
  • \n

    \n AttributeName: The name of the attribute to search for.\n You can only search for one attribute at a time.

    \n
  • \n
  • \n

    \n Filter-Type: For an exact match, use =, for example,\n \"given_name = \\\"Jon\\\"\". For a prefix (\"starts with\") match, use\n ^=, for example, \"given_name ^= \\\"Jon\\\"\".

    \n
  • \n
  • \n

    \n AttributeValue: The attribute value that must be matched\n for each user.

    \n
  • \n
\n

If the filter string is empty, ListUsers returns all users in the user\n pool.

\n

You can only search for the following standard attributes:

\n
    \n
  • \n

    \n username (case-sensitive)

    \n
  • \n
  • \n

    \n email\n

    \n
  • \n
  • \n

    \n phone_number\n

    \n
  • \n
  • \n

    \n name\n

    \n
  • \n
  • \n

    \n given_name\n

    \n
  • \n
  • \n

    \n family_name\n

    \n
  • \n
  • \n

    \n preferred_username\n

    \n
  • \n
  • \n

    \n cognito:user_status (called Status in the Console) (case-insensitive)

    \n
  • \n
  • \n

    \n status (called Enabled in the Console)\n (case-sensitive)\n

    \n
  • \n
  • \n

    \n sub\n

    \n
  • \n
\n

Custom attributes aren't searchable.

\n \n

You can also list users with a client-side filter. The server-side filter matches\n no more than one attribute. For an advanced search, use a client-side filter with\n the --query parameter of the list-users action in the\n CLI. When you use a client-side filter, ListUsers returns a paginated list of zero\n or more users. You can receive multiple pages in a row with zero results. Repeat the\n query with each pagination token that is returned until you receive a null\n pagination token value, and then review the combined result.

\n

For more information about server-side and client-side filtering, see FilteringCLI output in the Command Line Interface\n User Guide.

\n
\n

For more information, see Searching for Users Using the ListUsers API and Examples of Using the ListUsers API in the Amazon Cognito Developer\n Guide.

" + "smithy.api#documentation": "

A filter string of the form \"AttributeName\n Filter-Type \"AttributeValue\"\". Quotation marks\n within the filter string must be escaped using the backslash (\\) character.\n For example, \"family_name = \\\"Reddy\\\"\".

\n
    \n
  • \n

    \n AttributeName: The name of the attribute to search for.\n You can only search for one attribute at a time.

    \n
  • \n
  • \n

    \n Filter-Type: For an exact match, use =, for\n example, \"given_name = \\\"Jon\\\"\". For a prefix (\"starts with\")\n match, use ^=, for example, \"given_name ^= \\\"Jon\\\"\".\n

    \n
  • \n
  • \n

    \n AttributeValue: The attribute value that must be matched\n for each user.

    \n
  • \n
\n

If the filter string is empty, ListUsers returns all users in the user\n pool.

\n

You can only search for the following standard attributes:

\n
    \n
  • \n

    \n username (case-sensitive)

    \n
  • \n
  • \n

    \n email\n

    \n
  • \n
  • \n

    \n phone_number\n

    \n
  • \n
  • \n

    \n name\n

    \n
  • \n
  • \n

    \n given_name\n

    \n
  • \n
  • \n

    \n family_name\n

    \n
  • \n
  • \n

    \n preferred_username\n

    \n
  • \n
  • \n

    \n cognito:user_status (called Status in the Console) (case-insensitive)

    \n
  • \n
  • \n

    \n status (called Enabled in the Console)\n (case-sensitive)\n

    \n
  • \n
  • \n

    \n sub\n

    \n
  • \n
\n

Custom attributes aren't searchable.

\n \n

You can also list users with a client-side filter. The server-side filter matches\n no more than one attribute. For an advanced search, use a client-side filter with\n the --query parameter of the list-users action in the\n CLI. When you use a client-side filter, ListUsers returns a paginated list of zero\n or more users. You can receive multiple pages in a row with zero results. Repeat the\n query with each pagination token that is returned until you receive a null\n pagination token value, and then review the combined result.

\n

For more information about server-side and client-side filtering, see FilteringCLI output in the Command Line Interface\n User Guide.

\n
\n

For more information, see Searching for Users Using the ListUsers API and Examples of Using the ListUsers API in the Amazon Cognito Developer\n Guide.

" } } }, @@ -11238,7 +11238,7 @@ "MaxValue": { "target": "com.amazonaws.cognitoidentityprovider#StringType", "traits": { - "smithy.api#documentation": "

The maximum length of a number attribute value. Must be a number less than or equal to\n 2^1023, represented as a string with a length of 131072 characters or\n fewer.

" + "smithy.api#documentation": "

The maximum length of a number attribute value. Must be a number less than or equal to\n 2^1023, represented as a string with a length of 131072 characters or\n fewer.

" } } }, @@ -11516,7 +11516,7 @@ "CreationDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was created.

" + "smithy.api#documentation": "

The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } } }, @@ -11919,7 +11919,7 @@ "Identifier": { "target": "com.amazonaws.cognitoidentityprovider#ResourceServerIdentifierType", "traits": { - "smithy.api#documentation": "

The identifier for the resource server.

" + "smithy.api#documentation": "

A unique resource server identifier for the resource server. The identifier can be an\n API friendly name like solar-system-data. You can also set an API URL like\n https://solar-system-data-api.example.com as your identifier.

\n

Amazon Cognito represents scopes in the access token in the format\n $resource-server-identifier/$scope. Longer scope-identifier strings\n increase the size of your access tokens.

" } }, "Name": { @@ -12218,7 +12218,7 @@ "LastModifiedDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was modified.

" + "smithy.api#documentation": "

The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } } }, @@ -12992,6 +12992,9 @@ { "target": "com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException" }, + { + "target": "com.amazonaws.cognitoidentityprovider#LimitExceededException" + }, { "target": "com.amazonaws.cognitoidentityprovider#NotAuthorizedException" }, @@ -13412,7 +13415,7 @@ "MaxLength": { "target": "com.amazonaws.cognitoidentityprovider#StringType", "traits": { - "smithy.api#documentation": "

The maximum length of a string attribute value. Must be a number less than or equal to\n 2^1023, represented as a string with a length of 131072 characters or\n fewer.

" + "smithy.api#documentation": "

The maximum length of a string attribute value. Must be a number less than or equal to\n 2^1023, represented as a string with a length of 131072 characters or\n fewer.

" } } }, @@ -13651,13 +13654,13 @@ "LastModifiedDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was modified.

" + "smithy.api#documentation": "

The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } }, "CreationDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was created.

" + "smithy.api#documentation": "

The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } } }, @@ -14192,7 +14195,7 @@ "Identifier": { "target": "com.amazonaws.cognitoidentityprovider#ResourceServerIdentifierType", "traits": { - "smithy.api#documentation": "

The identifier for the resource server.

", + "smithy.api#documentation": "

A unique resource server identifier for the resource server. The identifier can be an\n API friendly name like solar-system-data. You can also set an API URL like\n https://solar-system-data-api.example.com as your identifier.

\n

Amazon Cognito represents scopes in the access token in the format\n $resource-server-identifier/$scope. Longer scope-identifier strings\n increase the size of your access tokens.

", "smithy.api#required": {} } }, @@ -14960,7 +14963,7 @@ "CreationDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was created.

" + "smithy.api#documentation": "

The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } }, "StartDate": { @@ -15175,13 +15178,13 @@ "LastModifiedDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was modified.

" + "smithy.api#documentation": "

The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } }, "CreationDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was created.

" + "smithy.api#documentation": "

The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } }, "RefreshTokenValidity": { @@ -15338,13 +15341,13 @@ "LastModifiedDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was modified.

" + "smithy.api#documentation": "

The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } }, "CreationDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was created.

" + "smithy.api#documentation": "

The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } } }, @@ -15488,13 +15491,13 @@ "LastModifiedDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was modified.

" + "smithy.api#documentation": "

The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } }, "CreationDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was created.

" + "smithy.api#documentation": "

The date and time when the item was created. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } }, "SchemaAttributes": { @@ -15724,7 +15727,7 @@ "UserLastModifiedDate": { "target": "com.amazonaws.cognitoidentityprovider#DateType", "traits": { - "smithy.api#documentation": "

The date and time, in ISO 8601 format, when the item was modified.

" + "smithy.api#documentation": "

The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a \nhuman-readable format like ISO 8601 or a Java Date object.

" } }, "Enabled": { diff --git a/models/config-service.json b/models/config-service.json index 949ede5b36..6441b07c46 100644 --- a/models/config-service.json +++ b/models/config-service.json @@ -747,7 +747,7 @@ "configurationItemDeliveryTime": { "target": "com.amazonaws.configservice#ConfigurationItemDeliveryTime", "traits": { - "smithy.api#documentation": "

The time when configuration changes for the resource were delivered.

" + "smithy.api#documentation": "

The time when configuration changes for the resource were delivered.

\n \n

This field is optional and is not guaranteed to be present in a configuration item (CI). If you are using daily recording,\n\t\t\tthis field will be populated. However, if you are using continuous recording,\n\t\t\tthis field will be omitted since the delivery time is instantaneous as the CI is available right away. For more information on daily recording and continuous recording, see Recording Frequency in the Config\n\t\t\t\t\tDeveloper Guide.

\n
" } } }, @@ -1739,7 +1739,7 @@ "configurationItemDeliveryTime": { "target": "com.amazonaws.configservice#ConfigurationItemDeliveryTime", "traits": { - "smithy.api#documentation": "

The time when configuration changes for the resource were delivered.

" + "smithy.api#documentation": "

The time when configuration changes for the resource were delivered.

\n \n

This field is optional and is not guaranteed to be present in a configuration item (CI). If you are using daily recording,\n\t\t\tthis field will be populated. However, if you are using continuous recording,\n\t\t\tthis field will be omitted since the delivery time is instantaneous as the CI is available right away. For more information on daily recording and continuous recording, see Recording Frequency in the Config\n\t\t\t\t\tDeveloper Guide.

\n
" } } }, @@ -3789,7 +3789,7 @@ "target": "com.amazonaws.configservice#RuleLimit", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The number of rule evaluation results that you want\n\t\t\treturned.

\n

This parameter is required if the rule limit for your account\n\t\t\tis more than the default of 150 rules.

\n

For information about requesting a rule limit increase, see\n\t\t\t\tConfig Limits in the Amazon Web Services General\n\t\t\t\tReference Guide.

" + "smithy.api#documentation": "

The number of rule evaluation results that you want\n\t\t\treturned.

\n

This parameter is required if the rule limit for your account\n\t\t\tis more than the default of 1000 rules.

\n

For information about requesting a rule limit increase, see\n\t\t\t\tConfig Limits in the Amazon Web Services General\n\t\t\t\tReference Guide.

" } } }, @@ -8040,7 +8040,7 @@ } }, "traits": { - "smithy.api#documentation": "

Failed to add the Config rule because the account already\n\t\t\tcontains the maximum number of 150 rules. Consider deleting any\n\t\t\tdeactivated rules before you add new rules.

", + "smithy.api#documentation": "

Failed to add the Config rule because the account already\n\t\t\tcontains the maximum number of 1000 rules. Consider deleting any\n\t\t\tdeactivated rules before you add new rules.

", "smithy.api#error": "client" } }, @@ -11440,7 +11440,7 @@ "EvaluationMode": { "target": "com.amazonaws.configservice#EvaluationMode", "traits": { - "smithy.api#documentation": "

Filters all resource evaluations results based on an evaluation mode. the valid value for this API is Proactive.

" + "smithy.api#documentation": "

Filters all resource evaluations results based on an evaluation mode.

\n \n

Currently, DECTECTIVE is not supported as a valid value. Ignore other documentation stating otherwise.

\n
" } }, "TimeWindow": { diff --git a/models/connect.json b/models/connect.json index 0982311378..d9638bf966 100644 --- a/models/connect.json +++ b/models/connect.json @@ -117,6 +117,12 @@ "traits": { "smithy.api#enumValue": "END_ASSOCIATED_TASKS" } + }, + "SUBMIT_AUTO_EVALUATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUBMIT_AUTO_EVALUATION" + } } } }, @@ -781,6 +787,9 @@ { "target": "com.amazonaws.connect#BatchDisassociateAnalyticsDataSet" }, + { + "target": "com.amazonaws.connect#BatchGetAttachedFileMetadata" + }, { "target": "com.amazonaws.connect#BatchGetFlowAssociation" }, @@ -790,6 +799,9 @@ { "target": "com.amazonaws.connect#ClaimPhoneNumber" }, + { + "target": "com.amazonaws.connect#CompleteAttachedFileUpload" + }, { "target": "com.amazonaws.connect#CreateAgentStatus" }, @@ -865,6 +877,9 @@ { "target": "com.amazonaws.connect#DeactivateEvaluationForm" }, + { + "target": "com.amazonaws.connect#DeleteAttachedFile" + }, { "target": "com.amazonaws.connect#DeleteContactEvaluation" }, @@ -1045,6 +1060,9 @@ { "target": "com.amazonaws.connect#DismissUserContact" }, + { + "target": "com.amazonaws.connect#GetAttachedFile" + }, { "target": "com.amazonaws.connect#GetContactAttributes" }, @@ -1270,6 +1288,9 @@ { "target": "com.amazonaws.connect#SendChatIntegrationEvent" }, + { + "target": "com.amazonaws.connect#StartAttachedFileUpload" + }, { "target": "com.amazonaws.connect#StartChatContact" }, @@ -2844,7 +2865,7 @@ "ResourceType": { "target": "com.amazonaws.connect#InstanceStorageResourceType", "traits": { - "smithy.api#documentation": "

A valid resource type. To enable streaming\n for real-time analysis of contacts, use the following types:

\n
    \n
  • \n

    For chat contacts, use REAL_TIME_CONTACT_ANALYSIS_CHAT_SEGMENTS.

    \n
  • \n
  • \n

    For voice contacts, use REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS.

    \n
  • \n
\n \n

\n REAL_TIME_CONTACT_ANALYSIS_SEGMENTS is deprecated, but it is still\n supported and will apply only to VOICE channel contacts. Use\n REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS for voice contacts moving forward.

\n

If you have previously associated a stream with REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, no\n action is needed to update the stream to REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS.

\n
", + "smithy.api#documentation": "

A valid resource type. To enable streaming\n for real-time analysis of contacts, use the following types:

\n
    \n
  • \n

    For chat contacts, use REAL_TIME_CONTACT_ANALYSIS_CHAT_SEGMENTS.

    \n
  • \n
  • \n

    For voice contacts, use REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS.

    \n
  • \n
\n \n

\n REAL_TIME_CONTACT_ANALYSIS_SEGMENTS is deprecated, but it is still supported\n and will apply only to VOICE channel contacts. Use\n REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS for voice contacts moving\n forward.

\n

If you have previously associated a stream with\n REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, no action is needed to update the stream to\n REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS.

\n
", "smithy.api#required": {} } }, @@ -3423,6 +3444,141 @@ } } }, + "com.amazonaws.connect#AttachedFile": { + "type": "structure", + "members": { + "CreationTime": { + "target": "com.amazonaws.connect#ISO8601Datetime", + "traits": { + "smithy.api#documentation": "

The time of Creation of the file resource as an ISO timestamp. It's specified in ISO 8601\n format: yyyy-MM-ddThh:mm:ss.SSSZ. For example,\n 2024-05-03T02:41:28.172Z.

", + "smithy.api#required": {} + } + }, + "FileArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The unique identifier of the attached file resource (ARN).

", + "smithy.api#required": {} + } + }, + "FileId": { + "target": "com.amazonaws.connect#FileId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the attached file resource.

", + "smithy.api#required": {} + } + }, + "FileName": { + "target": "com.amazonaws.connect#FileName", + "traits": { + "smithy.api#documentation": "

A case-sensitive name of the attached file being uploaded.

", + "smithy.api#required": {} + } + }, + "FileSizeInBytes": { + "target": "com.amazonaws.connect#FileSizeInBytes", + "traits": { + "smithy.api#documentation": "

The size of the attached file in bytes.

", + "smithy.api#required": {} + } + }, + "FileStatus": { + "target": "com.amazonaws.connect#FileStatusType", + "traits": { + "smithy.api#documentation": "

The current status of the attached file.

", + "smithy.api#required": {} + } + }, + "CreatedBy": { + "target": "com.amazonaws.connect#CreatedByInfo", + "traits": { + "smithy.api#documentation": "

Represents the identity that created the file.

" + } + }, + "FileUseCaseType": { + "target": "com.amazonaws.connect#FileUseCaseType", + "traits": { + "smithy.api#documentation": "

The use case for the file.

" + } + }, + "AssociatedResourceArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The resource to which the attached file is (being) uploaded to. Cases are the only\n current supported resource.

\n \n

This value must be a valid ARN.

\n
" + } + }, + "Tags": { + "target": "com.amazonaws.connect#TagMap", + "traits": { + "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource. For example, {\n \"Tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the attached file.

" + } + }, + "com.amazonaws.connect#AttachedFileError": { + "type": "structure", + "members": { + "ErrorCode": { + "target": "com.amazonaws.connect#ErrorCode", + "traits": { + "smithy.api#documentation": "

Status code describing the failure.

" + } + }, + "ErrorMessage": { + "target": "com.amazonaws.connect#ErrorMessage", + "traits": { + "smithy.api#documentation": "

Why the attached file couldn't be retrieved.

" + } + }, + "FileId": { + "target": "com.amazonaws.connect#FileId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the attached file resource.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Error describing a failure to retrieve attached file metadata through BatchGetAttachedFileMetadata action.

" + } + }, + "com.amazonaws.connect#AttachedFileErrorsList": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#AttachedFileError" + } + }, + "com.amazonaws.connect#AttachedFileInvalidRequestExceptionReason": { + "type": "enum", + "members": { + "INVALID_FILE_SIZE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_FILE_SIZE" + } + }, + "INVALID_FILE_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_FILE_TYPE" + } + }, + "INVALID_FILE_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_FILE_NAME" + } + } + } + }, + "com.amazonaws.connect#AttachedFilesList": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#AttachedFile" + } + }, "com.amazonaws.connect#AttachmentName": { "type": "string", "traits": { @@ -3785,6 +3941,91 @@ "smithy.api#output": {} } }, + "com.amazonaws.connect#BatchGetAttachedFileMetadata": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#BatchGetAttachedFileMetadataRequest" + }, + "output": { + "target": "com.amazonaws.connect#BatchGetAttachedFileMetadataResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Allows you to retrieve metadata about multiple attached files on an associated resource.\n Each attached file provided in the input list must be associated with the input\n AssociatedResourceArn.

", + "smithy.api#http": { + "method": "POST", + "uri": "/attached-files/{InstanceId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#BatchGetAttachedFileMetadataRequest": { + "type": "structure", + "members": { + "FileIds": { + "target": "com.amazonaws.connect#FileIdList", + "traits": { + "smithy.api#documentation": "

The unique identifiers of the attached file resource.

", + "smithy.api#required": {} + } + }, + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the Connect instance.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "AssociatedResourceArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The resource to which the attached file is (being) uploaded to. Cases are the only\n current supported resource.

\n \n

This value must be a valid ARN.

\n
", + "smithy.api#httpQuery": "associatedResourceArn", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#BatchGetAttachedFileMetadataResponse": { + "type": "structure", + "members": { + "Files": { + "target": "com.amazonaws.connect#AttachedFilesList", + "traits": { + "smithy.api#documentation": "

List of attached files that were successfully retrieved.

" + } + }, + "Errors": { + "target": "com.amazonaws.connect#AttachedFileErrorsList", + "traits": { + "smithy.api#documentation": "

List of errors of attached files that could not be retrieved.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.connect#BatchGetFlowAssociation": { "type": "operation", "input": { @@ -4417,6 +4658,81 @@ } } }, + "com.amazonaws.connect#CompleteAttachedFileUpload": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#CompleteAttachedFileUploadRequest" + }, + "output": { + "target": "com.amazonaws.connect#CompleteAttachedFileUploadResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Allows you to confirm that the attached file has been uploaded using the pre-signed URL\n provided in the StartAttachedFileUpload API.

", + "smithy.api#http": { + "method": "POST", + "uri": "/attached-files/{InstanceId}/{FileId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#CompleteAttachedFileUploadRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the Connect instance.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "FileId": { + "target": "com.amazonaws.connect#FileId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the attached file resource.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "AssociatedResourceArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The resource to which the attached file is (being) uploaded to. Cases are the only\n current supported resource.

\n \n

This value must be a valid ARN.

\n
", + "smithy.api#httpQuery": "associatedResourceArn", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Request to CompleteAttachedFileUpload API", + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#CompleteAttachedFileUploadResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Response from CompleteAttachedFileUpload API", + "smithy.api#output": {} + } + }, "com.amazonaws.connect#Concurrency": { "type": "integer", "traits": { @@ -7196,7 +7512,7 @@ "Applications": { "target": "com.amazonaws.connect#Applications", "traits": { - "smithy.api#documentation": "

This API is in preview release for Amazon Connect and is subject to change.

\n

A list of third-party applications that the security profile will give access to.

" + "smithy.api#documentation": "

A list of third-party applications that the security profile will give access to.

" } }, "HierarchyRestrictedResources": { @@ -8115,6 +8431,26 @@ "smithy.api#output": {} } }, + "com.amazonaws.connect#CreatedByInfo": { + "type": "union", + "members": { + "ConnectUserArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

An agent ARN representing a connect user.

" + } + }, + "AWSIdentityArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

STS or IAM ARN representing the identity of API Caller. SDK users cannot populate this and\n this value is calculated automatically if ConnectUserArn is not provided.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information on the identity that created the file.

" + } + }, "com.amazonaws.connect#Credentials": { "type": "structure", "members": { @@ -8539,6 +8875,81 @@ } } }, + "com.amazonaws.connect#DeleteAttachedFile": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#DeleteAttachedFileRequest" + }, + "output": { + "target": "com.amazonaws.connect#DeleteAttachedFileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an attached file along with the underlying S3 Object.

\n \n

The attached file is permanently deleted if S3 bucket\n versioning is not enabled.

\n
", + "smithy.api#http": { + "method": "DELETE", + "uri": "/attached-files/{InstanceId}/{FileId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#DeleteAttachedFileRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the Connect instance.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "FileId": { + "target": "com.amazonaws.connect#FileId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the attached file resource.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "AssociatedResourceArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The resource to which the attached file is (being) uploaded to. Cases are the only\n current supported resource.

\n \n

This value must be a valid ARN.

\n
", + "smithy.api#httpQuery": "associatedResourceArn", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Request to DeleteAttachedFile API", + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#DeleteAttachedFileResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Response from DeleteAttachedFile API", + "smithy.api#output": {} + } + }, "com.amazonaws.connect#DeleteContactEvaluation": { "type": "operation", "input": { @@ -12749,6 +13160,26 @@ "com.amazonaws.connect#Double": { "type": "double" }, + "com.amazonaws.connect#DownloadUrlMetadata": { + "type": "structure", + "members": { + "Url": { + "target": "com.amazonaws.connect#MetadataUrl", + "traits": { + "smithy.api#documentation": "

A pre-signed URL that should be used to download the attached file.

" + } + }, + "UrlExpiry": { + "target": "com.amazonaws.connect#ISO8601Datetime", + "traits": { + "smithy.api#documentation": "

The expiration time of the URL in ISO timestamp. It's specified in ISO 8601 format:\n yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Metadata used to download the attached file.

" + } + }, "com.amazonaws.connect#DuplicateResourceException": { "type": "structure", "members": { @@ -12887,6 +13318,12 @@ } } }, + "com.amazonaws.connect#ErrorCode": { + "type": "string" + }, + "com.amazonaws.connect#ErrorMessage": { + "type": "string" + }, "com.amazonaws.connect#ErrorResult": { "type": "structure", "members": { @@ -13264,6 +13701,15 @@ } } }, + "com.amazonaws.connect#EvaluationFormId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, "com.amazonaws.connect#EvaluationFormItem": { "type": "union", "members": { @@ -14478,6 +14924,84 @@ "target": "com.amazonaws.connect#FieldValue" } }, + "com.amazonaws.connect#FileId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.connect#FileIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#FileId" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.connect#FileName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^\\P{C}*$" + } + }, + "com.amazonaws.connect#FileSizeInBytes": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.connect#FileStatusType": { + "type": "enum", + "members": { + "APPROVED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "APPROVED" + } + }, + "REJECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REJECTED" + } + }, + "PROCESSING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROCESSING" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.connect#FileUseCaseType": { + "type": "enum", + "members": { + "ATTACHMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ATTACHMENT" + } + } + } + }, "com.amazonaws.connect#FilterV2": { "type": "structure", "members": { @@ -14612,6 +15136,156 @@ "target": "com.amazonaws.connect#FunctionArn" } }, + "com.amazonaws.connect#GetAttachedFile": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#GetAttachedFileRequest" + }, + "output": { + "target": "com.amazonaws.connect#GetAttachedFileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Provides a pre-signed URL for download of an approved attached file. This API also returns\n metadata about the attached file. It will only return a downloadURL if the status of the attached\n file is APPROVED.

", + "smithy.api#http": { + "method": "GET", + "uri": "/attached-files/{InstanceId}/{FileId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#GetAttachedFileRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the Connect instance.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "FileId": { + "target": "com.amazonaws.connect#FileId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the attached file resource.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "UrlExpiryInSeconds": { + "target": "com.amazonaws.connect#URLExpiryInSeconds", + "traits": { + "smithy.api#documentation": "

Optional override for the expiry of the pre-signed S3 URL in seconds.

", + "smithy.api#httpQuery": "urlExpiryInSeconds" + } + }, + "AssociatedResourceArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The resource to which the attached file is (being) uploaded to. Cases are the only\n current supported resource.

\n \n

This value must be a valid ARN.

\n
", + "smithy.api#httpQuery": "associatedResourceArn", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Request to GetAttachedFile API.", + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#GetAttachedFileResponse": { + "type": "structure", + "members": { + "FileArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The unique identifier of the attached file resource (ARN).

" + } + }, + "FileId": { + "target": "com.amazonaws.connect#FileId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the attached file resource.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.connect#ISO8601Datetime", + "traits": { + "smithy.api#documentation": "

The time of Creation of the file resource as an ISO timestamp. It's specified in ISO 8601\n format: yyyy-MM-ddThh:mm:ss.SSSZ. For example,\n 2024-05-03T02:41:28.172Z.

" + } + }, + "FileStatus": { + "target": "com.amazonaws.connect#FileStatusType", + "traits": { + "smithy.api#documentation": "

The current status of the attached file.

" + } + }, + "FileName": { + "target": "com.amazonaws.connect#FileName", + "traits": { + "smithy.api#documentation": "

A case-sensitive name of the attached file being uploaded.

" + } + }, + "FileSizeInBytes": { + "target": "com.amazonaws.connect#FileSizeInBytes", + "traits": { + "smithy.api#documentation": "

The size of the attached file in bytes.

", + "smithy.api#required": {} + } + }, + "AssociatedResourceArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The resource to which the attached file is (being) uploaded to. Cases are the only\n current supported resource.

\n \n

This value must be a valid ARN.

\n
" + } + }, + "FileUseCaseType": { + "target": "com.amazonaws.connect#FileUseCaseType", + "traits": { + "smithy.api#documentation": "

The use case for the file.

" + } + }, + "CreatedBy": { + "target": "com.amazonaws.connect#CreatedByInfo", + "traits": { + "smithy.api#documentation": "

Represents the identity that created the file.

" + } + }, + "DownloadUrlMetadata": { + "target": "com.amazonaws.connect#DownloadUrlMetadata", + "traits": { + "smithy.api#documentation": "

URL and expiry to be used when downloading the attached file.

" + } + }, + "Tags": { + "target": "com.amazonaws.connect#TagMap", + "traits": { + "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource. For example, {\n \"Tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + } + } + }, + "traits": { + "smithy.api#documentation": "Response from GetAttachedFile API.", + "smithy.api#output": {} + } + }, "com.amazonaws.connect#GetContactAttributes": { "type": "operation", "input": { @@ -15289,7 +15963,7 @@ "Metrics": { "target": "com.amazonaws.connect#MetricsV2", "traits": { - "smithy.api#documentation": "

The metrics to retrieve. Specify the name, groupings, and filters for each metric. The\n following historical metrics are available. For a description of each metric, see Historical metrics definitions in the Amazon Connect Administrator's\n Guide.

\n
\n
ABANDONMENT_RATE
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Abandonment rate\n

\n
\n
AGENT_ADHERENT_TIME
\n
\n

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Adherent time\n

\n
\n
AGENT_ANSWER_RATE
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Agent answer rate\n

\n
\n
AGENT_NON_ADHERENT_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Non-adherent time\n

\n
\n
AGENT_NON_RESPONSE
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Agent\n non-response\n

\n
\n
AGENT_NON_RESPONSE_WITHOUT_CUSTOMER_ABANDONS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

Data for this metric is available starting from October 1, 2023 0:00:00 GMT.

\n

UI name: Agent non-response without customer abandons\n

\n
\n
AGENT_OCCUPANCY
\n
\n

Unit: Percentage

\n

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

\n

UI name: Occupancy\n

\n
\n
AGENT_SCHEDULE_ADHERENCE
\n
\n

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Adherence\n

\n
\n
AGENT_SCHEDULED_TIME
\n
\n

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Scheduled time\n

\n
\n
AVG_ABANDON_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average queue abandon time\n

\n
\n
AVG_ACTIVE_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Average active time\n

\n
\n
AVG_AFTER_CONTACT_WORK_TIME
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average after contact work time\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_AGENT_CONNECTING_TIME
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD. For now, this metric only\n supports the following as INITIATION_METHOD: INBOUND |\n OUTBOUND | CALLBACK | API\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Average agent API connecting time\n

\n \n

The Negate key in Metric Level Filters is not applicable for this\n metric.

\n
\n
\n
AVG_AGENT_PAUSE_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Average agent pause time\n

\n
\n
AVG_CASE_RELATED_CONTACTS
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Average contacts per case\n

\n
\n
AVG_CASE_RESOLUTION_TIME
\n
\n

Unit: Seconds

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Average case resolution time\n

\n
\n
AVG_CONTACT_DURATION
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average contact duration\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_CONVERSATION_DURATION
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average conversation duration\n

\n
\n
AVG_GREETING_TIME_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average greeting time agent \n

\n
\n
AVG_HANDLE_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype, RoutingStepExpression

\n

UI name: Average handle time\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_HOLD_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average customer hold time\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_HOLD_TIME_ALL_CONTACTS
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average customer hold time all contacts\n

\n
\n
AVG_HOLDS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average holds\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_INTERACTION_AND_HOLD_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent interaction and customer hold time\n

\n
\n
AVG_INTERACTION_TIME
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent interaction time\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_INTERRUPTIONS_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average interruptions agent \n

\n
\n
AVG_INTERRUPTION_TIME_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average interruption time agent\n

\n
\n
AVG_NON_TALK_TIME
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average non-talk time\n

\n
\n
AVG_QUEUE_ANSWER_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average queue answer time\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_RESOLUTION_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average resolution time\n

\n
\n
AVG_TALK_TIME
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average talk time\n

\n
\n
AVG_TALK_TIME_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average talk time agent\n

\n
\n
AVG_TALK_TIME_CUSTOMER
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average talk time customer\n

\n
\n
CASES_CREATED
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases created\n

\n
\n
CONTACTS_ABANDONED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype, RoutingStepExpression

\n

UI name: Contact abandoned\n

\n
\n
CONTACTS_CREATED
\n
\n

Unit: Count

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts created\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
CONTACTS_HANDLED
\n
\n

Unit: Count

\n

Valid metric filter key: INITIATION_METHOD,\n DISCONNECT_REASON\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype, RoutingStepExpression

\n

UI name: API contacts handled\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
CONTACTS_HANDLED_BY_CONNECTED_TO_AGENT
\n
\n

Unit: Count

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts handled by Connected to agent\n

\n
\n
CONTACTS_HOLD_ABANDONS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts hold disconnect\n

\n
\n
CONTACTS_ON_HOLD_AGENT_DISCONNECT
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Contacts hold agent disconnect\n

\n
\n
CONTACTS_ON_HOLD_CUSTOMER_DISCONNECT
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Contacts hold customer disconnect\n

\n
\n
CONTACTS_PUT_ON_HOLD
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Contacts put on hold\n

\n
\n
CONTACTS_TRANSFERRED_OUT_EXTERNAL
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Contacts transferred out external\n

\n
\n
CONTACTS_TRANSFERRED_OUT_INTERNAL
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Contacts transferred out internal\n

\n
\n
CONTACTS_QUEUED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts queued\n

\n
\n
CONTACTS_QUEUED_BY_ENQUEUE
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts queued by Enqueue\n

\n
\n
CONTACTS_RESOLVED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\n

Threshold: For ThresholdValue enter any whole number from 1 to 604800\n (inclusive), in seconds. For Comparison, you must enter LT (for\n \"Less than\").

\n

UI name: Contacts resolved in X\n

\n
\n
CONTACTS_TRANSFERRED_OUT
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts transferred out\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
CONTACTS_TRANSFERRED_OUT_BY_AGENT
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts transferred out by agent\n

\n
\n
CONTACTS_TRANSFERRED_OUT_FROM_QUEUE
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts transferred out queue\n

\n
\n
CURRENT_CASES
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Current cases\n

\n
\n
MAX_QUEUED_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Maximum queued time\n

\n
\n
PERCENT_CASES_FIRST_CONTACT_RESOLVED
\n
\n

Unit: Percent

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases resolved on first contact\n

\n
\n
PERCENT_CONTACTS_STEP_EXPIRED
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, RoutingStepExpression

\n

UI name: Not available

\n
\n
PERCENT_CONTACTS_STEP_JOINED
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, RoutingStepExpression

\n

UI name: Not available

\n
\n
PERCENT_NON_TALK_TIME
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Non-talk\n time percent\n

\n
\n
PERCENT_TALK_TIME
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Talk time\n percent\n

\n
\n
PERCENT_TALK_TIME_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Talk\n time agent percent\n

\n
\n
PERCENT_TALK_TIME_CUSTOMER
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Talk time customer percent\n

\n
\n
REOPENED_CASE_ACTIONS
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases reopened\n

\n
\n
RESOLVED_CASE_ACTIONS
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases resolved\n

\n
\n
SERVICE_LEVEL
\n
\n

You can include up to 20 SERVICE_LEVEL metrics in a request.

\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile

\n

Threshold: For ThresholdValue, enter any whole number from 1 to 604800\n (inclusive), in seconds. For Comparison, you must enter LT (for\n \"Less than\").

\n

UI name: Service level X\n

\n
\n
STEP_CONTACTS_QUEUED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, RoutingStepExpression

\n

UI name: Not available

\n
\n
SUM_AFTER_CONTACT_WORK_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: After\n contact work time\n

\n
\n
SUM_CONNECTING_TIME_AGENT
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD. This metric only supports the\n following filter keys as INITIATION_METHOD: INBOUND |\n OUTBOUND | CALLBACK | API\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Agent API connecting time\n

\n \n

The Negate key in Metric Level Filters is not applicable for this\n metric.

\n
\n
\n
SUM_CONTACT_FLOW_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Contact flow time\n

\n
\n
SUM_CONTACT_TIME_AGENT
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Agent on contact time\n

\n
\n
SUM_CONTACTS_ANSWERED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\n

Threshold: For ThresholdValue, enter any whole number from 1 to 604800\n (inclusive), in seconds. For Comparison, you must enter LT (for\n \"Less than\").

\n

UI name: Contacts answered in X seconds\n

\n
\n
SUM_CONTACTS_ABANDONED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\n

Threshold: For ThresholdValue, enter any whole number from 1 to 604800\n (inclusive), in seconds. For Comparison, you must enter LT (for\n \"Less than\").

\n

UI name: Contacts abandoned in X seconds\n

\n
\n
SUM_CONTACTS_DISCONNECTED
\n
\n

Valid metric filter key: DISCONNECT_REASON\n

\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contact disconnected\n

\n
\n
SUM_ERROR_STATUS_TIME_AGENT
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Error status time\n

\n
\n
SUM_HANDLE_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Contact handle time\n

\n
\n
SUM_HOLD_TIME
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Customer hold time\n

\n
\n
SUM_IDLE_TIME_AGENT
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

\n

UI name: Agent idle time\n

\n
\n
SUM_INTERACTION_AND_HOLD_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Agent interaction and hold time\n

\n
\n
SUM_INTERACTION_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Agent interaction time\n

\n
\n
SUM_NON_PRODUCTIVE_TIME_AGENT
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

\n

UI name: Non-Productive Time\n

\n
\n
SUM_ONLINE_TIME_AGENT
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

\n

UI name: Online time\n

\n
\n
SUM_RETRY_CALLBACK_ATTEMPTS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Callback attempts\n

\n
\n
", + "smithy.api#documentation": "

The metrics to retrieve. Specify the name, groupings, and filters for each metric. The\n following historical metrics are available. For a description of each metric, see Historical metrics definitions in the Amazon Connect Administrator's\n Guide.

\n
\n
ABANDONMENT_RATE
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Abandonment rate\n

\n
\n
AGENT_ADHERENT_TIME
\n
\n

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Adherent time\n

\n
\n
AGENT_ANSWER_RATE
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Agent answer rate\n

\n
\n
AGENT_NON_ADHERENT_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Non-adherent time\n

\n
\n
AGENT_NON_RESPONSE
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Agent\n non-response\n

\n
\n
AGENT_NON_RESPONSE_WITHOUT_CUSTOMER_ABANDONS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

Data for this metric is available starting from October 1, 2023 0:00:00 GMT.

\n

UI name: Agent non-response without customer abandons\n

\n
\n
AGENT_OCCUPANCY
\n
\n

Unit: Percentage

\n

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

\n

UI name: Occupancy\n

\n
\n
AGENT_SCHEDULE_ADHERENCE
\n
\n

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Adherence\n

\n
\n
AGENT_SCHEDULED_TIME
\n
\n

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Scheduled time\n

\n
\n
AVG_ABANDON_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average queue abandon time\n

\n
\n
AVG_ACTIVE_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Average active time\n

\n
\n
AVG_AFTER_CONTACT_WORK_TIME
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average after contact work time\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_AGENT_CONNECTING_TIME
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD. For now, this metric only\n supports the following as INITIATION_METHOD: INBOUND |\n OUTBOUND | CALLBACK | API\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Average agent API connecting time\n

\n \n

The Negate key in Metric Level Filters is not applicable for this\n metric.

\n
\n
\n
AVG_AGENT_PAUSE_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Average agent pause time\n

\n
\n
AVG_CASE_RELATED_CONTACTS
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Average contacts per case\n

\n
\n
AVG_CASE_RESOLUTION_TIME
\n
\n

Unit: Seconds

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Average case resolution time\n

\n
\n
AVG_CONTACT_DURATION
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average contact duration\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_CONVERSATION_DURATION
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average conversation duration\n

\n
\n
AVG_GREETING_TIME_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent greeting time\n

\n
\n
AVG_HANDLE_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype, RoutingStepExpression

\n

UI name: Average handle time\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_HOLD_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average customer hold time\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_HOLD_TIME_ALL_CONTACTS
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average customer hold time all contacts\n

\n
\n
AVG_HOLDS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average holds\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_INTERACTION_AND_HOLD_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent interaction and customer hold time\n

\n
\n
AVG_INTERACTION_TIME
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent interaction time\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_INTERRUPTIONS_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent interruptions\n

\n
\n
AVG_INTERRUPTION_TIME_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent interruption time\n

\n
\n
AVG_NON_TALK_TIME
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average non-talk time\n

\n
\n
AVG_QUEUE_ANSWER_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average queue answer time\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_RESOLUTION_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average resolution time\n

\n
\n
AVG_TALK_TIME
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average talk time\n

\n
\n
AVG_TALK_TIME_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent talk time\n

\n
\n
AVG_TALK_TIME_CUSTOMER
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average customer talk time\n

\n
\n
CASES_CREATED
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases created\n

\n
\n
CONTACTS_ABANDONED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype, RoutingStepExpression

\n

UI name: Contact abandoned\n

\n
\n
CONTACTS_CREATED
\n
\n

Unit: Count

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts created\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
CONTACTS_HANDLED
\n
\n

Unit: Count

\n

Valid metric filter key: INITIATION_METHOD,\n DISCONNECT_REASON\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype, RoutingStepExpression

\n

UI name: API contacts handled\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
CONTACTS_HANDLED_BY_CONNECTED_TO_AGENT
\n
\n

Unit: Count

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts handled (connected to agent timestamp)\n

\n
\n
CONTACTS_HOLD_ABANDONS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts hold disconnect\n

\n
\n
CONTACTS_ON_HOLD_AGENT_DISCONNECT
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Contacts hold agent disconnect\n

\n
\n
CONTACTS_ON_HOLD_CUSTOMER_DISCONNECT
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Contacts hold customer disconnect\n

\n
\n
CONTACTS_PUT_ON_HOLD
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Contacts put on hold\n

\n
\n
CONTACTS_TRANSFERRED_OUT_EXTERNAL
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Contacts transferred out external\n

\n
\n
CONTACTS_TRANSFERRED_OUT_INTERNAL
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Contacts transferred out internal\n

\n
\n
CONTACTS_QUEUED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts queued\n

\n
\n
CONTACTS_QUEUED_BY_ENQUEUE
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts queued (enqueue timestamp)\n

\n
\n
CONTACTS_RESOLVED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\n

Threshold: For ThresholdValue enter any whole number from 1 to 604800\n (inclusive), in seconds. For Comparison, you must enter LT (for\n \"Less than\").

\n

UI name: Contacts resolved in X\n

\n
\n
CONTACTS_TRANSFERRED_OUT
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts transferred out\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
CONTACTS_TRANSFERRED_OUT_BY_AGENT
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts transferred out by agent\n

\n
\n
CONTACTS_TRANSFERRED_OUT_FROM_QUEUE
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts transferred out queue\n

\n
\n
CURRENT_CASES
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Current cases\n

\n
\n
MAX_QUEUED_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Maximum queued time\n

\n
\n
PERCENT_CASES_FIRST_CONTACT_RESOLVED
\n
\n

Unit: Percent

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases resolved on first contact\n

\n
\n
PERCENT_CONTACTS_STEP_EXPIRED
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, RoutingStepExpression

\n

UI name: Not available

\n
\n
PERCENT_CONTACTS_STEP_JOINED
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, RoutingStepExpression

\n

UI name: Not available

\n
\n
PERCENT_NON_TALK_TIME
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Non-talk\n time percent\n

\n
\n
PERCENT_TALK_TIME
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Talk time\n percent\n

\n
\n
PERCENT_TALK_TIME_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Agent\n talk time percent\n

\n
\n
PERCENT_TALK_TIME_CUSTOMER
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Customer talk time percent\n

\n
\n
REOPENED_CASE_ACTIONS
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases reopened\n

\n
\n
RESOLVED_CASE_ACTIONS
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases resolved\n

\n
\n
SERVICE_LEVEL
\n
\n

You can include up to 20 SERVICE_LEVEL metrics in a request.

\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile

\n

Threshold: For ThresholdValue, enter any whole number from 1 to 604800\n (inclusive), in seconds. For Comparison, you must enter LT (for\n \"Less than\").

\n

UI name: Service level X\n

\n
\n
STEP_CONTACTS_QUEUED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, RoutingStepExpression

\n

UI name: Not available

\n
\n
SUM_AFTER_CONTACT_WORK_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: After\n contact work time\n

\n
\n
SUM_CONNECTING_TIME_AGENT
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD. This metric only supports the\n following filter keys as INITIATION_METHOD: INBOUND |\n OUTBOUND | CALLBACK | API\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Agent API connecting time\n

\n \n

The Negate key in Metric Level Filters is not applicable for this\n metric.

\n
\n
\n
SUM_CONTACT_FLOW_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Contact flow time\n

\n
\n
SUM_CONTACT_TIME_AGENT
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Agent on contact time\n

\n
\n
SUM_CONTACTS_ANSWERED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\n

Threshold: For ThresholdValue, enter any whole number from 1 to 604800\n (inclusive), in seconds. For Comparison, you must enter LT (for\n \"Less than\").

\n

UI name: Contacts answered in X seconds\n

\n
\n
SUM_CONTACTS_ABANDONED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\n

Threshold: For ThresholdValue, enter any whole number from 1 to 604800\n (inclusive), in seconds. For Comparison, you must enter LT (for\n \"Less than\").

\n

UI name: Contacts abandoned in X seconds\n

\n
\n
SUM_CONTACTS_DISCONNECTED
\n
\n

Valid metric filter key: DISCONNECT_REASON\n

\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contact disconnected\n

\n
\n
SUM_ERROR_STATUS_TIME_AGENT
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Error status time\n

\n
\n
SUM_HANDLE_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Contact handle time\n

\n
\n
SUM_HOLD_TIME
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Customer hold time\n

\n
\n
SUM_IDLE_TIME_AGENT
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

\n

UI name: Agent idle time\n

\n
\n
SUM_INTERACTION_AND_HOLD_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Agent interaction and hold time\n

\n
\n
SUM_INTERACTION_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n

UI name: Agent interaction time\n

\n
\n
SUM_NON_PRODUCTIVE_TIME_AGENT
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

\n

UI name: Non-Productive Time\n

\n
\n
SUM_ONLINE_TIME_AGENT
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

\n

UI name: Online time\n

\n
\n
SUM_RETRY_CALLBACK_ATTEMPTS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Callback attempts\n

\n
\n
", "smithy.api#required": {} } }, @@ -17484,6 +18158,9 @@ "traits": { "smithy.api#documentation": "

The message about the request.

" } + }, + "Reason": { + "target": "com.amazonaws.connect#InvalidRequestExceptionReason" } }, "traits": { @@ -17492,6 +18169,20 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.connect#InvalidRequestExceptionReason": { + "type": "union", + "members": { + "AttachedFileInvalidRequestExceptionReason": { + "target": "com.amazonaws.connect#AttachedFileInvalidRequestExceptionReason", + "traits": { + "smithy.api#documentation": "

Reason why the StartAttachedFiledUpload request was invalid.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Reason why the request was invalid.

" + } + }, "com.amazonaws.connect#InvisibleFieldInfo": { "type": "structure", "members": { @@ -20854,7 +21545,7 @@ "Applications": { "target": "com.amazonaws.connect#Applications", "traits": { - "smithy.api#documentation": "

This API is in preview release for Amazon Connect and is subject to change.

\n

A list of the third-party application's metadata.

" + "smithy.api#documentation": "

A list of the third-party application's metadata.

" } }, "NextToken": { @@ -22255,6 +22946,15 @@ "com.amazonaws.connect#Message": { "type": "string" }, + "com.amazonaws.connect#MetadataUrl": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2000 + } + } + }, "com.amazonaws.connect#MetricDataCollectionsV2": { "type": "list", "member": { @@ -27901,6 +28601,12 @@ "traits": { "smithy.api#documentation": "

Information about the end associated tasks action.

\n

Supported only for TriggerEventSource values: OnCaseUpdate.

" } + }, + "SubmitAutoEvaluationAction": { + "target": "com.amazonaws.connect#SubmitAutoEvaluationActionDefinition", + "traits": { + "smithy.api#documentation": "

Information about the submit automated evaluation action.

" + } } }, "traits": { @@ -30311,6 +31017,158 @@ } } }, + "com.amazonaws.connect#StartAttachedFileUpload": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#StartAttachedFileUploadRequest" + }, + "output": { + "target": "com.amazonaws.connect#StartAttachedFileUploadResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceConflictException" + }, + { + "target": "com.amazonaws.connect#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Provides a pre-signed Amazon S3 URL in response for uploading your content.

\n \n

You may only use this API to upload attachments to a Connect\n Case.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/attached-files/{InstanceId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#StartAttachedFileUploadRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.connect#ClientToken", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. If not provided, the Amazon Web Services\n SDK populates this field. For more information about idempotency, see\n Making retries safe with idempotent APIs.

", + "smithy.api#idempotencyToken": {} + } + }, + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the Connect instance.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "FileName": { + "target": "com.amazonaws.connect#FileName", + "traits": { + "smithy.api#documentation": "

A case-sensitive name of the attached file being uploaded.

", + "smithy.api#required": {} + } + }, + "FileSizeInBytes": { + "target": "com.amazonaws.connect#FileSizeInBytes", + "traits": { + "smithy.api#documentation": "

The size of the attached file in bytes.

", + "smithy.api#required": {} + } + }, + "UrlExpiryInSeconds": { + "target": "com.amazonaws.connect#URLExpiryInSeconds", + "traits": { + "smithy.api#documentation": "

Optional override for the expiry of the pre-signed S3 URL in seconds.

" + } + }, + "FileUseCaseType": { + "target": "com.amazonaws.connect#FileUseCaseType", + "traits": { + "smithy.api#documentation": "

The use case for the file.

", + "smithy.api#required": {} + } + }, + "AssociatedResourceArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The resource to which the attached file is (being) uploaded to. Cases are the only\n current supported resource.

\n \n

This value must be a valid ARN.

\n
", + "smithy.api#httpQuery": "associatedResourceArn", + "smithy.api#required": {} + } + }, + "CreatedBy": { + "target": "com.amazonaws.connect#CreatedByInfo", + "traits": { + "smithy.api#documentation": "

Represents the identity that created the file.

" + } + }, + "Tags": { + "target": "com.amazonaws.connect#TagMap", + "traits": { + "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource. For example, {\n \"Tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#StartAttachedFileUploadResponse": { + "type": "structure", + "members": { + "FileArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The unique identifier of the attached file resource (ARN).

" + } + }, + "FileId": { + "target": "com.amazonaws.connect#FileId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the attached file resource.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.connect#ISO8601Datetime", + "traits": { + "smithy.api#documentation": "

The time of Creation of the file resource as an ISO timestamp. It's specified in ISO 8601\n format: yyyy-MM-ddThh:mm:ss.SSSZ. For example,\n 2024-05-03T02:41:28.172Z.

" + } + }, + "FileStatus": { + "target": "com.amazonaws.connect#FileStatusType", + "traits": { + "smithy.api#documentation": "

The current status of the attached file.

" + } + }, + "CreatedBy": { + "target": "com.amazonaws.connect#CreatedByInfo", + "traits": { + "smithy.api#documentation": "

Represents the identity that created the file.

" + } + }, + "UploadUrlMetadata": { + "target": "com.amazonaws.connect#UploadUrlMetadata", + "traits": { + "smithy.api#documentation": "

Information to be used while uploading the attached file.

" + } + } + }, + "traits": { + "smithy.api#documentation": "Response from StartAttachedFileUpload API.", + "smithy.api#output": {} + } + }, "com.amazonaws.connect#StartChatContact": { "type": "operation", "input": { @@ -31469,6 +32327,21 @@ } } }, + "com.amazonaws.connect#SubmitAutoEvaluationActionDefinition": { + "type": "structure", + "members": { + "EvaluationFormId": { + "target": "com.amazonaws.connect#EvaluationFormId", + "traits": { + "smithy.api#documentation": "

The identifier of the auto-evaluation enabled form.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the submit automated evaluation action.

" + } + }, "com.amazonaws.connect#SubmitContactEvaluation": { "type": "operation", "input": { @@ -32918,6 +33791,15 @@ } } }, + "com.amazonaws.connect#URLExpiryInSeconds": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 300 + } + } + }, "com.amazonaws.connect#Unit": { "type": "enum", "members": { @@ -33277,7 +34159,7 @@ "Attributes": { "target": "com.amazonaws.connect#Attributes", "traits": { - "smithy.api#documentation": "

The Amazon Connect attributes. These attributes can be accessed in flows just like any\n other contact attributes.

\n

You can have up to 32,768 UTF-8 bytes across all attributes for a contact. Attribute keys\n can include only alphanumeric, dash, and underscore characters.

", + "smithy.api#documentation": "

The Amazon Connect attributes. These attributes can be accessed in flows just like any\n other contact attributes.

\n

You can have up to 32,768 UTF-8 bytes across all attributes for a contact. Attribute keys\n can include only alphanumeric, dash, and underscore characters.

\n

When the attributes for a contact exceed 32 KB, the contact is routed down the Error branch\n of the flow. As a mitigation, consider the following options:

\n
    \n
  • \n

    Remove unnecessary attributes by setting their values to empty.

    \n
  • \n
  • \n

    If the attributes are only used in one flow and don't need to be referred to outside of\n that flow (for example, by a Lambda or another flow), then use flow attributes. This way you\n aren't needlessly persisting the 32 KB of information from one flow to another. For more\n information, see Flow block: Set contact\n attributes in the Amazon Connect Administrator Guide.

    \n
  • \n
", "smithy.api#required": {} } } @@ -35758,7 +36640,7 @@ "Applications": { "target": "com.amazonaws.connect#Applications", "traits": { - "smithy.api#documentation": "

This API is in preview release for Amazon Connect and is subject to change.

\n

A list of the third-party application's metadata.

" + "smithy.api#documentation": "

A list of the third-party application's metadata.

" } }, "HierarchyRestrictedResources": { @@ -36734,9 +37616,62 @@ "smithy.api#output": {} } }, + "com.amazonaws.connect#UploadUrlMetadata": { + "type": "structure", + "members": { + "Url": { + "target": "com.amazonaws.connect#MetadataUrl", + "traits": { + "smithy.api#documentation": "

A pre-signed S3 URL that should be used for uploading the attached file.

" + } + }, + "UrlExpiry": { + "target": "com.amazonaws.connect#ISO8601Datetime", + "traits": { + "smithy.api#documentation": "

The expiration time of the URL in ISO timestamp. It's specified in ISO 8601 format:\n yyyy-MM-ddThh:mm:ss.SSSZ. For example,\n 2019-11-08T02:41:28.172Z.

" + } + }, + "HeadersToInclude": { + "target": "com.amazonaws.connect#UrlMetadataSignedHeaders", + "traits": { + "smithy.api#documentation": "

A map of headers that should be provided when uploading the attached file.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Fields required when uploading an attached file.

" + } + }, "com.amazonaws.connect#Url": { "type": "string" }, + "com.amazonaws.connect#UrlMetadataSignedHeaders": { + "type": "map", + "key": { + "target": "com.amazonaws.connect#UrlMetadataSignedHeadersKey" + }, + "value": { + "target": "com.amazonaws.connect#UrlMetadataSignedHeadersValue" + } + }, + "com.amazonaws.connect#UrlMetadataSignedHeadersKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.connect#UrlMetadataSignedHeadersValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, "com.amazonaws.connect#UrlReference": { "type": "structure", "members": { diff --git a/models/connectcampaigns.json b/models/connectcampaigns.json index 5315bb12fe..a3d8e26f47 100644 --- a/models/connectcampaigns.json +++ b/models/connectcampaigns.json @@ -820,6 +820,13 @@ "smithy.api#documentation": "Enable or disable answering machine detection", "smithy.api#required": {} } + }, + "awaitAnswerMachinePrompt": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "Enable or disable await answer machine prompt" + } } }, "traits": { diff --git a/models/connectcases.json b/models/connectcases.json index cef8ca763b..0f88560fe4 100644 --- a/models/connectcases.json +++ b/models/connectcases.json @@ -892,7 +892,7 @@ } }, "traits": { - "smithy.api#documentation": "

Object to store union of Field values.

\n \n

This data type is a UNION, so only one of the following members can be specified when\n used or returned.

\n
" + "smithy.api#documentation": "

Object to store union of Field values.

" } }, "com.amazonaws.connectcases#AuditEventId": { @@ -2076,6 +2076,219 @@ "type": "structure", "members": {} }, + "com.amazonaws.connectcases#DeleteField": { + "type": "operation", + "input": { + "target": "com.amazonaws.connectcases#DeleteFieldRequest" + }, + "output": { + "target": "com.amazonaws.connectcases#DeleteFieldResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connectcases#AccessDeniedException" + }, + { + "target": "com.amazonaws.connectcases#ConflictException" + }, + { + "target": "com.amazonaws.connectcases#InternalServerException" + }, + { + "target": "com.amazonaws.connectcases#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connectcases#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.connectcases#ThrottlingException" + }, + { + "target": "com.amazonaws.connectcases#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a field from a cases template. You can delete up to 100 fields per domain.

\n

After a field is deleted:

\n
    \n
  • \n

    You can still retrieve the field by calling BatchGetField.

    \n
  • \n
  • \n

    You cannot update a deleted field by calling UpdateField; it throws a\n ValidationException.

    \n
  • \n
  • \n

    Deleted fields are not included in the ListFields response.

    \n
  • \n
  • \n

    Calling CreateCase with a deleted field throws a ValidationException denoting\n which field IDs in the request have been deleted.

    \n
  • \n
  • \n

    Calling GetCase with a deleted field ID returns the deleted field's value if one\n exists.

    \n
  • \n
  • \n

    Calling UpdateCase with a deleted field ID throws a ValidationException if the\n case does not already contain a value for the deleted field. Otherwise it succeeds,\n allowing you to update or remove (using emptyValue: {}) the field's value from the\n case.

    \n
  • \n
  • \n

    \n GetTemplate does not return field IDs for deleted fields.

    \n
  • \n
  • \n

    \n GetLayout does not return field IDs for deleted fields.

    \n
  • \n
  • \n

    Calling SearchCases with the deleted field ID as a filter returns any cases that\n have a value for the deleted field that matches the filter criteria.

    \n
  • \n
  • \n

    Calling SearchCases with a searchTerm value that matches a deleted field's value on a\n case returns the case in the response.

    \n
  • \n
  • \n

    Calling BatchPutFieldOptions with a deleted field ID throw a ValidationException.

    \n
  • \n
  • \n

    Calling GetCaseEventConfiguration does not return field IDs for deleted fields.

    \n
  • \n
", + "smithy.api#http": { + "uri": "/domains/{domainId}/fields/{fieldId}", + "method": "DELETE" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.connectcases#DeleteFieldRequest": { + "type": "structure", + "members": { + "domainId": { + "target": "com.amazonaws.connectcases#DomainId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the Cases domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "fieldId": { + "target": "com.amazonaws.connectcases#FieldId", + "traits": { + "smithy.api#documentation": "

Unique identifier of the field.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connectcases#DeleteFieldResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.connectcases#DeleteLayout": { + "type": "operation", + "input": { + "target": "com.amazonaws.connectcases#DeleteLayoutRequest" + }, + "output": { + "target": "com.amazonaws.connectcases#DeleteLayoutResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connectcases#AccessDeniedException" + }, + { + "target": "com.amazonaws.connectcases#ConflictException" + }, + { + "target": "com.amazonaws.connectcases#InternalServerException" + }, + { + "target": "com.amazonaws.connectcases#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connectcases#ThrottlingException" + }, + { + "target": "com.amazonaws.connectcases#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a layout from a cases template. You can delete up to 100 layouts per domain.

\n \n

After a layout is deleted:

\n
    \n
  • \n

    You can still retrieve the layout by calling GetLayout.

    \n
  • \n
  • \n

    You cannot update a deleted layout by calling UpdateLayout; it throws a\n ValidationException.

    \n
  • \n
  • \n

    Deleted layouts are not included in the ListLayouts response.

    \n
  • \n
", + "smithy.api#http": { + "uri": "/domains/{domainId}/layouts/{layoutId}", + "method": "DELETE" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.connectcases#DeleteLayoutRequest": { + "type": "structure", + "members": { + "domainId": { + "target": "com.amazonaws.connectcases#DomainId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the Cases domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "layoutId": { + "target": "com.amazonaws.connectcases#LayoutId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the layout.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connectcases#DeleteLayoutResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.connectcases#DeleteTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.connectcases#DeleteTemplateRequest" + }, + "output": { + "target": "com.amazonaws.connectcases#DeleteTemplateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connectcases#AccessDeniedException" + }, + { + "target": "com.amazonaws.connectcases#ConflictException" + }, + { + "target": "com.amazonaws.connectcases#InternalServerException" + }, + { + "target": "com.amazonaws.connectcases#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connectcases#ThrottlingException" + }, + { + "target": "com.amazonaws.connectcases#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a cases template. You can delete up to 100 templates per domain.

\n \n

After a cases template is deleted:

\n
    \n
  • \n

    You can still retrieve the template by calling GetTemplate.

    \n
  • \n
  • \n

    You cannot update the template.

    \n
  • \n
  • \n

    You cannot create a case by using the deleted template.

    \n
  • \n
  • \n

    Deleted templates are not included in the ListTemplates response.

    \n
  • \n
", + "smithy.api#http": { + "uri": "/domains/{domainId}/templates/{templateId}", + "method": "DELETE" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.connectcases#DeleteTemplateRequest": { + "type": "structure", + "members": { + "domainId": { + "target": "com.amazonaws.connectcases#DomainId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the Cases domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "templateId": { + "target": "com.amazonaws.connectcases#TemplateId", + "traits": { + "smithy.api#documentation": "

A unique identifier of a template.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connectcases#DeleteTemplateResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.connectcases#Deleted": { + "type": "boolean", + "traits": { + "smithy.api#default": false + } + }, "com.amazonaws.connectcases#Domain": { "type": "resource", "identifiers": { @@ -2255,6 +2468,9 @@ "update": { "target": "com.amazonaws.connectcases#UpdateField" }, + "delete": { + "target": "com.amazonaws.connectcases#DeleteField" + }, "list": { "target": "com.amazonaws.connectcases#ListFields" }, @@ -2712,6 +2928,44 @@ "smithy.api#documentation": "

Object to store union of Field values.

\n \n

The Summary system field accepts 1500 characters while all other fields\n accept 500 characters.

\n
" } }, + "com.amazonaws.connectcases#FileArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 500 + } + } + }, + "com.amazonaws.connectcases#FileContent": { + "type": "structure", + "members": { + "fileArn": { + "target": "com.amazonaws.connectcases#FileArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a File in Amazon Connect.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that represents a content of an Amazon Connect file object.

" + } + }, + "com.amazonaws.connectcases#FileFilter": { + "type": "structure", + "members": { + "fileArn": { + "target": "com.amazonaws.connectcases#FileArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the file.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A filter for related items of type File.

" + } + }, "com.amazonaws.connectcases#GetCase": { "type": "operation", "input": { @@ -3127,6 +3381,25 @@ "traits": { "smithy.api#documentation": "

A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.

" } + }, + "deleted": { + "target": "com.amazonaws.connectcases#Deleted", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Denotes whether or not the resource has been deleted.

" + } + }, + "createdTime": { + "target": "com.amazonaws.connectcases#CreatedTime", + "traits": { + "smithy.api#documentation": "

Timestamp at which the resource was created.

" + } + }, + "lastModifiedTime": { + "target": "com.amazonaws.connectcases#LastModifiedTime", + "traits": { + "smithy.api#documentation": "

Timestamp at which the resource was created or last modified.

" + } } }, "traits": { @@ -3224,6 +3497,25 @@ "traits": { "smithy.api#documentation": "

A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.

" } + }, + "deleted": { + "target": "com.amazonaws.connectcases#Deleted", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Denotes whether or not the resource has been deleted.

" + } + }, + "createdTime": { + "target": "com.amazonaws.connectcases#CreatedTime", + "traits": { + "smithy.api#documentation": "

Timestamp at which the resource was created.

" + } + }, + "lastModifiedTime": { + "target": "com.amazonaws.connectcases#LastModifiedTime", + "traits": { + "smithy.api#documentation": "

Timestamp at which the resource was created or last modified.

" + } } } }, @@ -3336,6 +3628,25 @@ "smithy.api#documentation": "

The status of the template.

", "smithy.api#required": {} } + }, + "deleted": { + "target": "com.amazonaws.connectcases#Deleted", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Denotes whether or not the resource has been deleted.

" + } + }, + "createdTime": { + "target": "com.amazonaws.connectcases#CreatedTime", + "traits": { + "smithy.api#documentation": "

Timestamp at which the resource was created.

" + } + }, + "lastModifiedTime": { + "target": "com.amazonaws.connectcases#LastModifiedTime", + "traits": { + "smithy.api#documentation": "

Timestamp at which the resource was created or last modified.

" + } } } }, @@ -3372,6 +3683,12 @@ "smithy.api#retryable": {} } }, + "com.amazonaws.connectcases#LastModifiedTime": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "date-time" + } + }, "com.amazonaws.connectcases#Layout": { "type": "resource", "identifiers": { @@ -3391,6 +3708,9 @@ "update": { "target": "com.amazonaws.connectcases#UpdateLayout" }, + "delete": { + "target": "com.amazonaws.connectcases#DeleteLayout" + }, "list": { "target": "com.amazonaws.connectcases#ListLayouts" }, @@ -4236,6 +4556,12 @@ "traits": { "smithy.api#documentation": "

Represents the content of a comment to be returned to agents.

" } + }, + "file": { + "target": "com.amazonaws.connectcases#FileContent", + "traits": { + "smithy.api#documentation": "

Represents the content of a File to be returned to agents.

" + } } }, "traits": { @@ -4286,6 +4612,12 @@ "traits": { "smithy.api#documentation": "

Represents the content of a comment to be returned to agents.

" } + }, + "file": { + "target": "com.amazonaws.connectcases#FileContent", + "traits": { + "smithy.api#documentation": "

A file of related items.

" + } } }, "traits": { @@ -4303,6 +4635,10 @@ { "value": "Comment", "name": "COMMENT" + }, + { + "value": "File", + "name": "FILE" } ] } @@ -4321,6 +4657,12 @@ "traits": { "smithy.api#documentation": "

A filter for related items of type Comment.

" } + }, + "file": { + "target": "com.amazonaws.connectcases#FileFilter", + "traits": { + "smithy.api#documentation": "

A filter for related items of this type of File.

" + } } }, "traits": { @@ -4900,6 +5242,9 @@ "update": { "target": "com.amazonaws.connectcases#UpdateTemplate" }, + "delete": { + "target": "com.amazonaws.connectcases#DeleteTemplate" + }, "list": { "target": "com.amazonaws.connectcases#ListTemplates" }, diff --git a/models/controlcatalog.json b/models/controlcatalog.json new file mode 100644 index 0000000000..1f9a73a503 --- /dev/null +++ b/models/controlcatalog.json @@ -0,0 +1,1441 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.controlcatalog#AccessDeniedException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

You do not have sufficient access to perform this action.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.controlcatalog#AssociatedDomainSummary": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.controlcatalog#DomainArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the related domain.

" + } + }, + "Name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the related domain.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of the domain that a common control or an objective belongs to.

" + } + }, + "com.amazonaws.controlcatalog#AssociatedObjectiveSummary": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.controlcatalog#ObjectiveArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the related objective.

" + } + }, + "Name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the related objective.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of the objective that a common control supports.

" + } + }, + "com.amazonaws.controlcatalog#CommonControlArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 41, + "max": 2048 + }, + "smithy.api#pattern": "^arn:(aws(?:[-a-z]*)?):controlcatalog:::common-control/[0-9a-z]+$" + } + }, + "com.amazonaws.controlcatalog#CommonControlFilter": { + "type": "structure", + "members": { + "Objectives": { + "target": "com.amazonaws.controlcatalog#ObjectiveResourceFilterList", + "traits": { + "smithy.api#documentation": "

The objective that's used as filter criteria.

\n

You can use this parameter to specify one objective ARN at a time. Passing multiple ARNs\n in the CommonControlFilter isn’t currently supported.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An optional filter that narrows the results to a specific objective.

" + } + }, + "com.amazonaws.controlcatalog#CommonControlResource": { + "type": "resource", + "identifiers": { + "CommonControlArn": { + "target": "com.amazonaws.controlcatalog#CommonControlArn" + } + }, + "list": { + "target": "com.amazonaws.controlcatalog#ListCommonControls" + }, + "traits": { + "aws.api#arn": { + "template": "{CommonControlArn}", + "noAccount": true, + "absolute": true + }, + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#iamResource": { + "name": "common-control" + } + } + }, + "com.amazonaws.controlcatalog#CommonControlSummary": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.controlcatalog#CommonControlArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the common control.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the common control.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The description of the common control.

", + "smithy.api#required": {} + } + }, + "Domain": { + "target": "com.amazonaws.controlcatalog#AssociatedDomainSummary", + "traits": { + "smithy.api#documentation": "

The domain that the common control belongs to.

", + "smithy.api#required": {} + } + }, + "Objective": { + "target": "com.amazonaws.controlcatalog#AssociatedObjectiveSummary", + "traits": { + "smithy.api#documentation": "

The objective that the common control belongs to.

", + "smithy.api#required": {} + } + }, + "CreateTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the common control was created.

", + "smithy.api#required": {} + } + }, + "LastUpdateTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the common control was most recently updated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of metadata for a common control.

" + } + }, + "com.amazonaws.controlcatalog#CommonControlSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.controlcatalog#CommonControlSummary" + } + }, + "com.amazonaws.controlcatalog#ControlCatalog": { + "type": "service", + "version": "2018-05-10", + "resources": [ + { + "target": "com.amazonaws.controlcatalog#CommonControlResource" + }, + { + "target": "com.amazonaws.controlcatalog#DomainResource" + }, + { + "target": "com.amazonaws.controlcatalog#ObjectiveResource" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "ControlCatalog", + "arnNamespace": "controlcatalog", + "cloudTrailEventSource": "controlcatalog.amazonaws.com" + }, + "aws.auth#sigv4": { + "name": "controlcatalog" + }, + "aws.iam#supportedPrincipalTypes": [ + "Root", + "IAMUser", + "IAMRole", + "FederatedUser" + ], + "aws.protocols#restJson1": {}, + "smithy.api#cors": { + "origin": "*", + "additionalAllowedHeaders": [ + "*", + "access-control-allow-origin", + "Amz-Sdk-Invocation-Id", + "Amz-Sdk-Request", + "Authorization", + "Content-Length", + "Content-Type", + "Date", + "Host", + "X-Amz-Content-Sha256", + "X-Amz-Date", + "X-Amz-Security-Token", + "X-Amz-Target", + "X-Amz-User-Agent", + "X-Amzn-Trace-Id" + ] + }, + "smithy.api#documentation": "

Welcome to the Amazon Web Services Control Catalog API reference. This guide is for \n developers who need detailed information about how to programmatically identify and filter \n the common controls and related metadata that are available to Amazon Web Services customers. This API reference provides \n descriptions, syntax, and usage examples for each of the actions and data types that are \n supported by Amazon Web Services Control Catalog.

\n

Use the following links to get started with the Amazon Web Services Control Catalog API:

\n
    \n
  • \n

    \n Actions: An\n alphabetical list of all Control Catalog API operations.

    \n
  • \n
  • \n

    \n Data types: An\n alphabetical list of all Control Catalog data types.

    \n
  • \n
  • \n

    \n Common\n parameters: Parameters that all operations can use.

    \n
  • \n
  • \n

    \n Common errors:\n Client and server errors that all operations can return.

    \n
  • \n
", + "smithy.api#title": "AWS Control Catalog", + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://controlcatalog-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://controlcatalog-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://controlcatalog.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://controlcatalog.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controlcatalog.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" + } + } + }, + "com.amazonaws.controlcatalog#DomainArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 33, + "max": 2048 + }, + "smithy.api#pattern": "^arn:(aws(?:[-a-z]*)?):controlcatalog:::domain/[0-9a-z]+$" + } + }, + "com.amazonaws.controlcatalog#DomainResource": { + "type": "resource", + "identifiers": { + "DomainArn": { + "target": "com.amazonaws.controlcatalog#DomainArn" + } + }, + "list": { + "target": "com.amazonaws.controlcatalog#ListDomains" + }, + "traits": { + "aws.api#arn": { + "template": "{DomainArn}", + "noAccount": true, + "absolute": true + }, + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#iamResource": { + "name": "domain" + } + } + }, + "com.amazonaws.controlcatalog#DomainResourceFilter": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.controlcatalog#DomainArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the domain.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The domain resource that's being used as a filter.

" + } + }, + "com.amazonaws.controlcatalog#DomainResourceFilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.controlcatalog#DomainResourceFilter" + } + }, + "com.amazonaws.controlcatalog#DomainSummary": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.controlcatalog#DomainArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the domain.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the domain.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The description of the domain.

", + "smithy.api#required": {} + } + }, + "CreateTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the domain was created.

", + "smithy.api#required": {} + } + }, + "LastUpdateTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the domain was most recently updated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of metadata for a domain.

" + } + }, + "com.amazonaws.controlcatalog#DomainSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.controlcatalog#DomainSummary" + } + }, + "com.amazonaws.controlcatalog#InternalServerException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

An internal service error occurred during the processing of your request. Try again later.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500, + "smithy.api#retryable": {} + } + }, + "com.amazonaws.controlcatalog#ListCommonControls": { + "type": "operation", + "input": { + "target": "com.amazonaws.controlcatalog#ListCommonControlsRequest" + }, + "output": { + "target": "com.amazonaws.controlcatalog#ListCommonControlsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.controlcatalog#AccessDeniedException" + }, + { + "target": "com.amazonaws.controlcatalog#InternalServerException" + }, + { + "target": "com.amazonaws.controlcatalog#ThrottlingException" + }, + { + "target": "com.amazonaws.controlcatalog#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a paginated list of common controls from the Amazon Web Services Control\n Catalog.

\n

You can apply an optional filter to see common controls that have a specific objective. If\n you don’t provide a filter, the operation returns all common controls.

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/common-controls" + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "CommonControls" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.controlcatalog#ListCommonControlsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.controlcatalog#MaxListCommonControlsResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results on a page or for an API request call.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.controlcatalog#PaginationToken", + "traits": { + "smithy.api#documentation": "

The pagination token that's used to fetch the next set of results.

", + "smithy.api#httpQuery": "nextToken" + } + }, + "CommonControlFilter": { + "target": "com.amazonaws.controlcatalog#CommonControlFilter", + "traits": { + "smithy.api#documentation": "

An optional filter that narrows the results to a specific objective.

\n

This filter allows you to specify one objective ARN at a time. Passing multiple ARNs in\n the CommonControlFilter isn’t currently supported.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.controlcatalog#ListCommonControlsResponse": { + "type": "structure", + "members": { + "CommonControls": { + "target": "com.amazonaws.controlcatalog#CommonControlSummaryList", + "traits": { + "smithy.api#documentation": "

The list of common controls that the ListCommonControls API returns.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.controlcatalog#PaginationToken", + "traits": { + "smithy.api#documentation": "

The pagination token that's used to fetch the next set of results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.controlcatalog#ListDomains": { + "type": "operation", + "input": { + "target": "com.amazonaws.controlcatalog#ListDomainsRequest" + }, + "output": { + "target": "com.amazonaws.controlcatalog#ListDomainsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.controlcatalog#AccessDeniedException" + }, + { + "target": "com.amazonaws.controlcatalog#InternalServerException" + }, + { + "target": "com.amazonaws.controlcatalog#ThrottlingException" + }, + { + "target": "com.amazonaws.controlcatalog#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a paginated list of domains from the Amazon Web Services Control Catalog.

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/domains" + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "Domains" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.controlcatalog#ListDomainsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.controlcatalog#MaxListDomainsResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results on a page or for an API request call.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.controlcatalog#PaginationToken", + "traits": { + "smithy.api#documentation": "

The pagination token that's used to fetch the next set of results.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.controlcatalog#ListDomainsResponse": { + "type": "structure", + "members": { + "Domains": { + "target": "com.amazonaws.controlcatalog#DomainSummaryList", + "traits": { + "smithy.api#documentation": "

The list of domains that the ListDomains API returns.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.controlcatalog#PaginationToken", + "traits": { + "smithy.api#documentation": "

The pagination token that's used to fetch the next set of results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.controlcatalog#ListObjectives": { + "type": "operation", + "input": { + "target": "com.amazonaws.controlcatalog#ListObjectivesRequest" + }, + "output": { + "target": "com.amazonaws.controlcatalog#ListObjectivesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.controlcatalog#AccessDeniedException" + }, + { + "target": "com.amazonaws.controlcatalog#InternalServerException" + }, + { + "target": "com.amazonaws.controlcatalog#ThrottlingException" + }, + { + "target": "com.amazonaws.controlcatalog#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a paginated list of objectives from the Amazon Web Services Control Catalog.

\n

You can apply an optional filter to see the objectives that belong to a specific domain.\n If you don’t provide a filter, the operation returns all objectives.

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/objectives" + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "Objectives" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.controlcatalog#ListObjectivesRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.controlcatalog#MaxListObjectivesResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results on a page or for an API request call.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.controlcatalog#PaginationToken", + "traits": { + "smithy.api#documentation": "

The pagination token that's used to fetch the next set of results.

", + "smithy.api#httpQuery": "nextToken" + } + }, + "ObjectiveFilter": { + "target": "com.amazonaws.controlcatalog#ObjectiveFilter", + "traits": { + "smithy.api#documentation": "

An optional filter that narrows the results to a specific domain.

\n

This filter allows you to specify one domain ARN at a time. \n Passing multiple ARNs in the ObjectiveFilter isn’t currently supported.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.controlcatalog#ListObjectivesResponse": { + "type": "structure", + "members": { + "Objectives": { + "target": "com.amazonaws.controlcatalog#ObjectiveSummaryList", + "traits": { + "smithy.api#documentation": "

The list of objectives that the ListObjectives API returns.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.controlcatalog#PaginationToken", + "traits": { + "smithy.api#documentation": "

The pagination token that's used to fetch the next set of results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.controlcatalog#MaxListCommonControlsResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.controlcatalog#MaxListDomainsResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.controlcatalog#MaxListObjectivesResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.controlcatalog#ObjectiveArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 36, + "max": 2048 + }, + "smithy.api#pattern": "^arn:(aws(?:[-a-z]*)?):controlcatalog:::objective/[0-9a-z]+$" + } + }, + "com.amazonaws.controlcatalog#ObjectiveFilter": { + "type": "structure", + "members": { + "Domains": { + "target": "com.amazonaws.controlcatalog#DomainResourceFilterList", + "traits": { + "smithy.api#documentation": "

The domain that's used as filter criteria.

\n

You can use this parameter to specify one domain ARN at a time. Passing multiple ARNs in\n the ObjectiveFilter isn’t currently supported.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An optional filter that narrows the list of objectives to a specific domain.

" + } + }, + "com.amazonaws.controlcatalog#ObjectiveResource": { + "type": "resource", + "identifiers": { + "ObjectiveArn": { + "target": "com.amazonaws.controlcatalog#ObjectiveArn" + } + }, + "list": { + "target": "com.amazonaws.controlcatalog#ListObjectives" + }, + "traits": { + "aws.api#arn": { + "template": "{ObjectiveArn}", + "noAccount": true, + "absolute": true + }, + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#iamResource": { + "name": "objective" + } + } + }, + "com.amazonaws.controlcatalog#ObjectiveResourceFilter": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.controlcatalog#ObjectiveArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the objective.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The objective resource that's being used as a filter.

" + } + }, + "com.amazonaws.controlcatalog#ObjectiveResourceFilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.controlcatalog#ObjectiveResourceFilter" + } + }, + "com.amazonaws.controlcatalog#ObjectiveSummary": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.controlcatalog#ObjectiveArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the objective.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the objective.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The description of the objective.

", + "smithy.api#required": {} + } + }, + "Domain": { + "target": "com.amazonaws.controlcatalog#AssociatedDomainSummary", + "traits": { + "smithy.api#documentation": "

The domain that the objective belongs to.

", + "smithy.api#required": {} + } + }, + "CreateTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the objective was created.

", + "smithy.api#required": {} + } + }, + "LastUpdateTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the objective was most recently updated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of metadata for an objective.

" + } + }, + "com.amazonaws.controlcatalog#ObjectiveSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.controlcatalog#ObjectiveSummary" + } + }, + "com.amazonaws.controlcatalog#PaginationToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 1024 + } + } + }, + "com.amazonaws.controlcatalog#ThrottlingException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

The request was denied due to request throttling.

", + "smithy.api#error": "client", + "smithy.api#httpError": 429, + "smithy.api#retryable": { + "throttling": true + } + } + }, + "com.amazonaws.controlcatalog#ValidationException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

The request has invalid or missing parameters.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + } + } +} \ No newline at end of file diff --git a/models/cost-explorer.json b/models/cost-explorer.json index 5ca66b2d65..2800a9bc06 100644 --- a/models/cost-explorer.json +++ b/models/cost-explorer.json @@ -4067,7 +4067,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves cost and usage metrics with resources for your account. You can specify which\n cost and usage-related metric, such as BlendedCosts or\n UsageQuantity, that you want the request to return. You can also filter and group\n your data by various dimensions, such as SERVICE or AZ, in a\n specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Management account in an organization in Organizations have access to all member accounts. This API is currently available for the\n Amazon Elastic Compute Cloud – Compute service only.

\n \n

This is an opt-in only feature. You can enable this feature from the Cost Explorer\n Settings page. For information about how to access the Settings page, see Controlling\n Access for Cost Explorer in the Billing and Cost Management User\n Guide.

\n
" + "smithy.api#documentation": "

Retrieves cost and usage metrics with resources for your account. You can specify which\n cost and usage-related metric, such as BlendedCosts or\n UsageQuantity, that you want the request to return. You can also filter and group\n your data by various dimensions, such as SERVICE or AZ, in a\n specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Management account in an organization in Organizations have access to all member accounts.

\n

Hourly granularity is only available for EC2-Instances (Elastic Compute Cloud)\n resource-level data. All other resource-level data is available at daily\n granularity.

\n \n

This is an opt-in only feature. You can enable this feature from the Cost Explorer\n Settings page. For information about how to access the Settings page, see Controlling\n Access for Cost Explorer in the Billing and Cost Management User\n Guide.

\n
" } }, "com.amazonaws.costexplorer#GetCostAndUsageWithResourcesRequest": { @@ -7372,18 +7372,24 @@ "RecommendationId": { "target": "com.amazonaws.costexplorer#GenericString", "traits": { - "smithy.api#documentation": "

The ID for this specific recommendation.

" + "smithy.api#documentation": "

The ID for the recommendation.

" } }, "GenerationTimestamp": { "target": "com.amazonaws.costexplorer#GenericString", "traits": { - "smithy.api#documentation": "

The timestamp for when Amazon Web Services made this recommendation.

" + "smithy.api#documentation": "

The timestamp for when Amazon Web Services made the recommendation.

" + } + }, + "AdditionalMetadata": { + "target": "com.amazonaws.costexplorer#GenericString", + "traits": { + "smithy.api#documentation": "

Additional metadata that might be applicable to the recommendation.

" } } }, "traits": { - "smithy.api#documentation": "

Information about this specific recommendation, such as the timestamp for when Amazon Web Services made a specific recommendation.

" + "smithy.api#documentation": "

Information about a recommendation, such as the timestamp for when Amazon Web Services\n made a specific recommendation.

" } }, "com.amazonaws.costexplorer#ReservationPurchaseRecommendationSummary": { @@ -7690,19 +7696,19 @@ "RecommendationId": { "target": "com.amazonaws.costexplorer#GenericString", "traits": { - "smithy.api#documentation": "

The ID for this specific recommendation.

" + "smithy.api#documentation": "

The ID for the recommendation.

" } }, "GenerationTimestamp": { "target": "com.amazonaws.costexplorer#GenericString", "traits": { - "smithy.api#documentation": "

The timestamp for when Amazon Web Services made this recommendation.

" + "smithy.api#documentation": "

The timestamp for when Amazon Web Services made the recommendation.

" } }, "LookbackPeriodInDays": { "target": "com.amazonaws.costexplorer#LookbackPeriodInDays", "traits": { - "smithy.api#documentation": "

The number of days of previous usage that Amazon Web Services considers when making\n this recommendation.

" + "smithy.api#documentation": "

The number of days of previous usage that Amazon Web Services considers when making the\n recommendation.

" } }, "AdditionalMetadata": { @@ -7713,7 +7719,7 @@ } }, "traits": { - "smithy.api#documentation": "

Metadata for this recommendation set.

" + "smithy.api#documentation": "

Metadata for a recommendation set.

" } }, "com.amazonaws.costexplorer#RightsizingRecommendationSummary": { diff --git a/models/datasync.json b/models/datasync.json index 5ff804f9ed..63dc4e3127 100644 --- a/models/datasync.json +++ b/models/datasync.json @@ -1276,7 +1276,7 @@ "ServerCertificate": { "target": "com.amazonaws.datasync#ObjectStorageCertificate", "traits": { - "smithy.api#documentation": "

Specifies a file with the certificates that are used to sign the object storage server's\n certificate (for example, file:///home/user/.ssh/storage_sys_certificate.pem).\n The file you specify must include the following:

\n
    \n
  • \n

    The certificate of the signing certificate authority (CA)

    \n
  • \n
  • \n

    Any intermediate certificates

    \n
  • \n
  • \n

    base64 encoding

    \n
  • \n
  • \n

    A .pem extension

    \n
  • \n
\n

The file can be up to 32768 bytes (before base64 encoding).

\n

To use this parameter, configure ServerProtocol to HTTPS.

" + "smithy.api#documentation": "

Specifies a certificate chain for DataSync to authenticate with your object\n storage system if the system uses a private or self-signed certificate authority (CA). You\n must specify a single .pem file with a full certificate chain (for example,\n file:///home/user/.ssh/object_storage_certificates.pem).

\n

The certificate chain might include:

\n
    \n
  • \n

    The object storage system's certificate

    \n
  • \n
  • \n

    All intermediate certificates (if there are any)

    \n
  • \n
  • \n

    The root certificate of the signing CA

    \n
  • \n
\n

You can concatenate your certificates into a .pem file (which can be up to\n 32768 bytes before base64 encoding). The following example cat command creates an\n object_storage_certificates.pem file that includes three certificates:

\n

\n cat object_server_certificate.pem intermediate_certificate.pem\n ca_root_certificate.pem > object_storage_certificates.pem\n

\n

To use this parameter, configure ServerProtocol to HTTPS.

" } } }, @@ -1495,7 +1495,7 @@ } ], "traits": { - "smithy.api#documentation": "

Configures a transfer task, which defines where and how DataSync moves your\n data.

\n

A task includes a source location, destination location, and the options for how and\n when you want to transfer your data (such as bandwidth limits, scheduling, among other\n options).

\n \n

If you're planning to transfer data to or from an Amazon S3 location, review\n how\n DataSync can affect your S3 request charges and the DataSync pricing page before\n you begin.

\n
" + "smithy.api#documentation": "

Configures a task, which defines where and how DataSync transfers your\n data.

\n

A task includes a source location, destination location, and transfer options (such as bandwidth limits, scheduling, and more).

\n \n

If you're planning to transfer data to or from an Amazon S3 location, review\n how\n DataSync can affect your S3 request charges and the DataSync pricing page before\n you begin.

\n
" } }, "com.amazonaws.datasync#CreateTaskRequest": { @@ -1504,57 +1504,57 @@ "SourceLocationArn": { "target": "com.amazonaws.datasync#LocationArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source location for the task.

", + "smithy.api#documentation": "

Specifies the ARN of your transfer's source location.

", "smithy.api#required": {} } }, "DestinationLocationArn": { "target": "com.amazonaws.datasync#LocationArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Amazon Web Services storage resource's location.\n

", + "smithy.api#documentation": "

Specifies the ARN of your transfer's destination location.

", "smithy.api#required": {} } }, "CloudWatchLogGroupArn": { "target": "com.amazonaws.datasync#LogGroupArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that is used to\n monitor and log events in the task.

" + "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) of an Amazon CloudWatch log group for\n monitoring your task.

" } }, "Name": { "target": "com.amazonaws.datasync#TagValue", "traits": { - "smithy.api#documentation": "

The name of a task. This value is a text reference that is used to identify the task in\n the console.

" + "smithy.api#documentation": "

Specifies the name of your task.

" } }, "Options": { "target": "com.amazonaws.datasync#Options", "traits": { - "smithy.api#documentation": "

Specifies the configuration options for a task. Some options include preserving file or\n object metadata and verifying data integrity.

\n

You can also override these options before starting an individual run of a task (also\n known as a task execution). For more information, see StartTaskExecution.

" + "smithy.api#documentation": "

Specifies your task's settings, such as preserving file metadata, verifying data\n integrity, among other options.

" } }, "Excludes": { "target": "com.amazonaws.datasync#FilterList", "traits": { - "smithy.api#documentation": "

Specifies a list of filter rules that exclude specific data during your transfer. For more\n information and examples, see Filtering data transferred by DataSync.

" + "smithy.api#documentation": "

Specifies exclude filters that define the files, objects, and folders in your source location that you don't want DataSync to transfer. For more\n information and examples, see Specifying what DataSync transfers by using filters.

" } }, "Schedule": { "target": "com.amazonaws.datasync#TaskSchedule", "traits": { - "smithy.api#documentation": "

Specifies a schedule used to periodically transfer files from a source to a destination\n location. The schedule should be specified in UTC time. For more information, see Scheduling your\n task.

" + "smithy.api#documentation": "

Specifies a schedule for when you want your task to run. For more information, see Scheduling your\n task.

" } }, "Tags": { "target": "com.amazonaws.datasync#InputTagList", "traits": { - "smithy.api#documentation": "

Specifies the tags that you want to apply to the Amazon Resource Name (ARN)\n representing the task.

\n

\n Tags are key-value pairs that help you manage, filter, and search\n for your DataSync resources.

" + "smithy.api#documentation": "

Specifies the tags that you want to apply to your task.

\n

\n Tags are key-value pairs that help you manage, filter, and search\n for your DataSync resources.

" } }, "Includes": { "target": "com.amazonaws.datasync#FilterList", "traits": { - "smithy.api#documentation": "

Specifies a list of filter rules that include specific data during your transfer. For more\n information and examples, see Filtering data transferred by DataSync.

" + "smithy.api#documentation": "

Specifies include filters define the files, objects, and folders in your source location\n that you want DataSync to transfer. For more information and examples, see Specifying what DataSync transfers by using filters.

" } }, "ManifestConfig": { @@ -2657,7 +2657,7 @@ "ServerCertificate": { "target": "com.amazonaws.datasync#ObjectStorageCertificate", "traits": { - "smithy.api#documentation": "

The self-signed certificate that DataSync uses to securely authenticate with\n your object storage system.

" + "smithy.api#documentation": "

The certificate chain for DataSync to authenticate with your object storage\n system if the system uses a private or self-signed certificate authority (CA).

" } } }, @@ -3150,7 +3150,7 @@ } ], "traits": { - "smithy.api#documentation": "

Provides information about an DataSync transfer task.

" + "smithy.api#documentation": "

Provides information about a task, which defines where and how DataSync transfers your data.

" } }, "com.amazonaws.datasync#DescribeTaskExecution": { @@ -3331,7 +3331,7 @@ "TaskArn": { "target": "com.amazonaws.datasync#TaskArn", "traits": { - "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) of the transfer task.

", + "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) of the transfer task that you want information\n about.

", "smithy.api#required": {} } } @@ -3347,85 +3347,85 @@ "TaskArn": { "target": "com.amazonaws.datasync#TaskArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task that was described.

" + "smithy.api#documentation": "

The ARN of your task.

" } }, "Status": { "target": "com.amazonaws.datasync#TaskStatus", "traits": { - "smithy.api#documentation": "

The status of the task that was described.

\n

For detailed information about task execution statuses, see Understanding\n Task Statuses in the DataSync User Guide.

" + "smithy.api#documentation": "

The status of your task. For information about what each status means, see Task statuses.

" } }, "Name": { "target": "com.amazonaws.datasync#TagValue", "traits": { - "smithy.api#documentation": "

The name of the task that was described.

" + "smithy.api#documentation": "

The name of your task.

" } }, "CurrentTaskExecutionArn": { "target": "com.amazonaws.datasync#TaskExecutionArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task execution that is transferring\n files.

" + "smithy.api#documentation": "

The ARN of the most recent task execution.

" } }, "SourceLocationArn": { "target": "com.amazonaws.datasync#LocationArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source file system's location.

" + "smithy.api#documentation": "

The ARN of your transfer's source location.

" } }, "DestinationLocationArn": { "target": "com.amazonaws.datasync#LocationArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Web Services storage resource's\n location.

" + "smithy.api#documentation": "

The ARN of your transfer's destination location.

" } }, "CloudWatchLogGroupArn": { "target": "com.amazonaws.datasync#LogGroupArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that was used to\n monitor and log events in the task.

\n

For more information on these groups, see Working with Log Groups and Log\n Streams in the Amazon CloudWatch User Guide.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your\n task.

\n

For more information, see Monitoring DataSync with\n Amazon CloudWatch.

" } }, "SourceNetworkInterfaceArns": { "target": "com.amazonaws.datasync#SourceNetworkInterfaceArns", "traits": { - "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the network interfaces created for your source\n location. For more information, see Network\n interface requirements.

" + "smithy.api#documentation": "

The ARNs of the network\n interfaces that DataSync created for your source location.

" } }, "DestinationNetworkInterfaceArns": { "target": "com.amazonaws.datasync#DestinationNetworkInterfaceArns", "traits": { - "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the network interfaces created for your destination\n location. For more information, see Network\n interface requirements.

" + "smithy.api#documentation": "

The ARNs of the network\n interfaces that DataSync created for your destination location.

" } }, "Options": { "target": "com.amazonaws.datasync#Options", "traits": { - "smithy.api#documentation": "

The configuration options that control the behavior of the\n StartTaskExecution operation. Some options include preserving file or object\n metadata and verifying data integrity.

\n

You can override these options for each task execution. For more information, see\n StartTaskExecution.

" + "smithy.api#documentation": "

The task's settings. For example, what file metadata gets preserved, how data integrity\n gets verified at the end of your transfer, bandwidth limits, among other options.

" } }, "Excludes": { "target": "com.amazonaws.datasync#FilterList", "traits": { - "smithy.api#documentation": "

A list of filter rules that exclude specific data during your transfer. For more\n information and examples, see Filtering data transferred by DataSync.

" + "smithy.api#documentation": "

The exclude filters that define the files, objects, and folders in your source location that you don't want DataSync to transfer. For more\n information and examples, see Specifying what DataSync transfers by using filters.

" } }, "Schedule": { "target": "com.amazonaws.datasync#TaskSchedule", "traits": { - "smithy.api#documentation": "

The schedule used to periodically transfer files from a source to a destination\n location.

" + "smithy.api#documentation": "

The schedule for when you want your task to run. For more information, see Scheduling your\n task.

" } }, "ErrorCode": { "target": "com.amazonaws.datasync#string", "traits": { - "smithy.api#documentation": "

Errors that DataSync encountered during execution of the task. You can\n use this error code to help troubleshoot issues.

" + "smithy.api#documentation": "

If there's an issue with your task, you can use the error code to help you troubleshoot\n the problem. For more information, see Troubleshooting issues with DataSync transfers.

" } }, "ErrorDetail": { "target": "com.amazonaws.datasync#string", "traits": { - "smithy.api#documentation": "

Detailed description of an error that was encountered during the task execution. You\n can use this information to help troubleshoot issues.

" + "smithy.api#documentation": "

If there's an issue with your task, you can use the error details to help you\n troubleshoot the problem. For more information, see Troubleshooting issues with DataSync transfers.

" } }, "CreationTime": { @@ -3437,19 +3437,25 @@ "Includes": { "target": "com.amazonaws.datasync#FilterList", "traits": { - "smithy.api#documentation": "

A list of filter rules that include specific data during your transfer. For more\n information and examples, see Filtering data transferred by DataSync.

" + "smithy.api#documentation": "

The include filters that define the files, objects, and folders in your source location\n that you want DataSync to transfer. For more information and examples, see Specifying what DataSync transfers by using filters.

" } }, "ManifestConfig": { "target": "com.amazonaws.datasync#ManifestConfig", "traits": { - "smithy.api#documentation": "

The configuration of the manifest that lists the files or objects to transfer. For more\n information, see Specifying what DataSync transfers by using a manifest.

" + "smithy.api#documentation": "

The configuration of the manifest that lists the files or objects that you want DataSync to transfer. For more information, see Specifying what DataSync transfers by using a manifest.

" } }, "TaskReportConfig": { "target": "com.amazonaws.datasync#TaskReportConfig", "traits": { - "smithy.api#documentation": "

The configuration of your task report, which provides detailed information about for your\n DataSync transfer. For more information, see Creating a task report.

" + "smithy.api#documentation": "

The configuration of your task report, which provides detailed information about your\n DataSync transfer. For more information, see Monitoring your DataSync\n transfers with task reports.

" + } + }, + "ScheduleDetails": { + "target": "com.amazonaws.datasync#TaskScheduleDetails", + "traits": { + "smithy.api#documentation": "

The details about your task schedule.

" } } }, @@ -6976,7 +6982,7 @@ "VerifyMode": { "target": "com.amazonaws.datasync#VerifyMode", "traits": { - "smithy.api#documentation": "

Specifies how and when DataSync checks the integrity of your data during a\n transfer.

\n
    \n
  • \n

    \n ONLY_FILES_TRANSFERRED (recommended) - DataSync calculates\n the checksum of transferred files and metadata at the source location. At the end of the\n transfer, DataSync then compares this checksum to the checksum calculated on\n those files at the destination.

    \n

    We recommend this option when transferring to S3 Glacier Flexible Retrieval\n or S3 Glacier Deep Archive storage classes. For more information, see\n Storage\n class considerations with Amazon S3 locations.

    \n
  • \n
  • \n

    \n POINT_IN_TIME_CONSISTENT (default) - At the end of the transfer,\n DataSync scans the entire source and destination to verify that both locations\n are fully synchronized.

    \n

    You can't use this option when transferring to S3 Glacier Flexible Retrieval\n or S3 Glacier Deep Archive storage classes. For more information, see\n Storage\n class considerations with Amazon S3 locations.

    \n
  • \n
  • \n

    \n NONE - DataSync doesn't run additional verification at the\n end of the transfer. All data transmissions are still integrity-checked with checksum\n verification during the transfer.

    \n
  • \n
" + "smithy.api#documentation": "

Specifies how and when DataSync checks the integrity of your data during a\n transfer.

\n
    \n
  • \n

    \n ONLY_FILES_TRANSFERRED (recommended) - DataSync calculates\n the checksum of transferred files and metadata at the source location. At the end of the\n transfer, DataSync then compares this checksum to the checksum calculated on\n those files at the destination.

    \n

    We recommend this option when transferring to S3 Glacier Flexible Retrieval\n or S3 Glacier Deep Archive storage classes. For more information, see\n Storage\n class considerations with Amazon S3 locations.

    \n
  • \n
  • \n

    \n POINT_IN_TIME_CONSISTENT (default) - At the end of the transfer,\n DataSync scans the entire source and destination to verify that both locations\n are fully synchronized.

    \n

    If you use a manifest, DataSync only scans and\n verifies what's listed in the manifest.

    \n

    You can't use this option when transferring to S3 Glacier Flexible Retrieval\n or S3 Glacier Deep Archive storage classes. For more information, see\n Storage\n class considerations with Amazon S3 locations.

    \n
  • \n
  • \n

    \n NONE - DataSync doesn't run additional verification at the\n end of the transfer. All data transmissions are still integrity-checked with checksum\n verification during the transfer.

    \n
  • \n
" } }, "OverwriteMode": { @@ -7065,7 +7071,7 @@ } }, "traits": { - "smithy.api#documentation": "

Indicates how your transfer task is configured. These options include how DataSync handles files, objects, and their associated metadata during your transfer. You\n also can specify how to verify data integrity, set bandwidth limits for your task, among other\n options.

\n

Each option has a default value. Unless you need to, you don't have to configure any of\n these options before starting your task.

" + "smithy.api#documentation": "

Indicates how your transfer task is configured. These options include how DataSync handles files, objects, and their associated metadata during your transfer. You\n also can specify how to verify data integrity, set bandwidth limits for your task, among other\n options.

\n

Each option has a default value. Unless you need to, you don't have to configure any option before calling StartTaskExecution.

\n

You also can override your task options for each task execution. For example, you might want to adjust the LogLevel for an individual execution.

" } }, "com.amazonaws.datasync#OutputTagList": { @@ -7176,7 +7182,7 @@ "Version": { "target": "com.amazonaws.datasync#AgentVersion", "traits": { - "smithy.api#documentation": "

The version of the DataSync agent.

\n \n

On December 7, 2023, we discontinued version 1 DataSync agents. Check the DataSync console to see if you have affected agents. If you do, replace those agents or delete them if they aren't in use. If you need more help, contact Amazon Web Services Support.

\n
" + "smithy.api#documentation": "

The version of the DataSync agent.

" } } }, @@ -7818,6 +7824,33 @@ "smithy.api#pattern": "^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$" } }, + "com.amazonaws.datasync#ScheduleDisabledBy": { + "type": "enum", + "members": { + "USER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USER" + } + }, + "SERVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SERVICE" + } + } + } + }, + "com.amazonaws.datasync#ScheduleDisabledReason": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 8192 + }, + "smithy.api#pattern": "^[\\w\\s.,'?!:;\\/=|<>()-]*$" + } + }, "com.amazonaws.datasync#ScheduleExpressionCron": { "type": "string", "traits": { @@ -7828,6 +7861,23 @@ "smithy.api#pattern": "^[a-zA-Z0-9\\ \\_\\*\\?\\,\\|\\^\\-\\/\\#\\s\\(\\)\\+]*$" } }, + "com.amazonaws.datasync#ScheduleStatus": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, "com.amazonaws.datasync#SecretsManagerArn": { "type": "string", "traits": { @@ -8350,7 +8400,7 @@ "type": "string", "traits": { "smithy.api#length": { - "min": 1, + "min": 0, "max": 256 }, "smithy.api#pattern": "^[a-zA-Z0-9\\s+=._:@/-]+$" @@ -8666,13 +8716,45 @@ "ScheduleExpression": { "target": "com.amazonaws.datasync#ScheduleExpressionCron", "traits": { - "smithy.api#documentation": "

A cron expression that specifies when DataSync initiates a scheduled\n transfer from a source to a destination location.

", + "smithy.api#documentation": "

Specifies your task schedule by using a cron expression in UTC time. For information about\n cron expression syntax, see the \n Amazon EventBridge User\n Guide\n .

", "smithy.api#required": {} } + }, + "Status": { + "target": "com.amazonaws.datasync#ScheduleStatus", + "traits": { + "smithy.api#documentation": "

Specifies whether to enable or disable your task schedule. Your schedule is enabled by\n default, but there can be situations where you need to disable it. For example, you might need\n to pause a recurring transfer to fix an issue with your task or perform maintenance on your\n storage system.

\n

DataSync might disable your schedule automatically if your task fails repeatedly\n with the same error. For more information, see TaskScheduleDetails.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configures your DataSync task to run on a schedule\n (at a minimum interval of 1 hour).

" + } + }, + "com.amazonaws.datasync#TaskScheduleDetails": { + "type": "structure", + "members": { + "StatusUpdateTime": { + "target": "com.amazonaws.datasync#Time", + "traits": { + "smithy.api#documentation": "

Indicates the last time the status of your task schedule changed. For example, if DataSync automatically disables your schedule because of a repeated error, you can see\n when the schedule was disabled.

" + } + }, + "DisabledReason": { + "target": "com.amazonaws.datasync#ScheduleDisabledReason", + "traits": { + "smithy.api#documentation": "

Provides a reason if the task schedule is disabled.

\n

If your schedule is disabled by USER, you see a Manually disabled by user. message.

\n

If your schedule is disabled by SERVICE, you see an error message to help you\n understand why the task keeps failing. For information on resolving DataSync errors,\n see Troubleshooting issues with DataSync transfers.

" + } + }, + "DisabledBy": { + "target": "com.amazonaws.datasync#ScheduleDisabledBy", + "traits": { + "smithy.api#documentation": "

Indicates how your task schedule was disabled.

\n
    \n
  • \n

    \n USER - Your schedule was manually disabled by using the UpdateTask operation or DataSync console.

    \n
  • \n
  • \n

    \n SERVICE - Your schedule was automatically disabled by DataSync\n because the task failed repeatedly with the same error.

    \n
  • \n
" + } } }, "traits": { - "smithy.api#documentation": "

Specifies the schedule you want your task to use for repeated executions. For more\n information, see Schedule Expressions for\n Rules.

" + "smithy.api#documentation": "

Provides information about your DataSync\n task schedule.

" } }, "com.amazonaws.datasync#TaskStatus": { @@ -9208,7 +9290,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates some parameters of an existing object storage location that DataSync\n accesses for a transfer. For information about creating a self-managed object storage\n location, see Creating a location for object\n storage.

" + "smithy.api#documentation": "

Updates some parameters of an existing DataSync location for an object\n storage system.

" } }, "com.amazonaws.datasync#UpdateLocationObjectStorageRequest": { @@ -9260,7 +9342,7 @@ "ServerCertificate": { "target": "com.amazonaws.datasync#ObjectStorageCertificate", "traits": { - "smithy.api#documentation": "

Specifies a certificate to authenticate with an object storage system that uses a private\n or self-signed certificate authority (CA). You must specify a Base64-encoded .pem\n file (for example, file:///home/user/.ssh/storage_sys_certificate.pem). The\n certificate can be up to 32768 bytes (before Base64 encoding).

\n

To use this parameter, configure ServerProtocol to HTTPS.

\n

Updating the certificate doesn't interfere with tasks that you have in progress.

" + "smithy.api#documentation": "

Specifies a certificate chain for DataSync to authenticate with your object\n storage system if the system uses a private or self-signed certificate authority (CA). You\n must specify a single .pem file with a full certificate chain (for example,\n file:///home/user/.ssh/object_storage_certificates.pem).

\n

The certificate chain might include:

\n
    \n
  • \n

    The object storage system's certificate

    \n
  • \n
  • \n

    All intermediate certificates (if there are any)

    \n
  • \n
  • \n

    The root certificate of the signing CA

    \n
  • \n
\n

You can concatenate your certificates into a .pem file (which can be up to\n 32768 bytes before base64 encoding). The following example cat command creates an\n object_storage_certificates.pem file that includes three certificates:

\n

\n cat object_server_certificate.pem intermediate_certificate.pem\n ca_root_certificate.pem > object_storage_certificates.pem\n

\n

To use this parameter, configure ServerProtocol to HTTPS.

\n

Updating this parameter doesn't interfere with tasks that you have in progress.

" } } }, @@ -9442,7 +9524,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the configuration of an DataSync transfer task.

" + "smithy.api#documentation": "

Updates the configuration of a task, which defines where and how DataSync transfers your data.

" } }, "com.amazonaws.datasync#UpdateTaskExecution": { @@ -9499,7 +9581,7 @@ "TaskArn": { "target": "com.amazonaws.datasync#TaskArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource name of the task to update.

", + "smithy.api#documentation": "

Specifies the ARN of the task that you want to update.

", "smithy.api#required": {} } }, @@ -9509,31 +9591,31 @@ "Excludes": { "target": "com.amazonaws.datasync#FilterList", "traits": { - "smithy.api#documentation": "

Specifies a list of filter rules that exclude specific data during your transfer. For more\n information and examples, see Filtering data transferred by DataSync.

" + "smithy.api#documentation": "

Specifies exclude filters that define the files, objects, and folders in your source location that you don't want DataSync to transfer. For more\n information and examples, see Specifying what DataSync transfers by using filters.

" } }, "Schedule": { "target": "com.amazonaws.datasync#TaskSchedule", "traits": { - "smithy.api#documentation": "

Specifies a schedule used to periodically transfer files from a source to a destination\n location. You can configure your task to execute hourly, daily, weekly or on specific days of\n the week. You control when in the day or hour you want the task to execute. The time you\n specify is UTC time. For more information, see Scheduling your task.

" + "smithy.api#documentation": "

Specifies a schedule for when you want your task to run. For more information, see Scheduling your\n task.

" } }, "Name": { "target": "com.amazonaws.datasync#TagValue", "traits": { - "smithy.api#documentation": "

The name of the task to update.

" + "smithy.api#documentation": "

Specifies the name of your task.

" } }, "CloudWatchLogGroupArn": { "target": "com.amazonaws.datasync#LogGroupArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource name of the Amazon CloudWatch log\n group.

" + "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) of an Amazon CloudWatch log group for\n monitoring your task.

" } }, "Includes": { "target": "com.amazonaws.datasync#FilterList", "traits": { - "smithy.api#documentation": "

Specifies a list of filter rules that include specific data during your transfer. For more\n information and examples, see Filtering data transferred by DataSync.

" + "smithy.api#documentation": "

Specifies include filters define the files, objects, and folders in your source location\n that you want DataSync to transfer. For more information and examples, see Specifying what DataSync transfers by using filters.

" } }, "ManifestConfig": { diff --git a/models/drs.json b/models/drs.json index e1344ff414..f0b1e2d8b4 100644 --- a/models/drs.json +++ b/models/drs.json @@ -875,6 +875,12 @@ "traits": { "smithy.api#documentation": "

AWS Availability zone into which data is being replicated.

" } + }, + "stagingOutpostArn": { + "target": "com.amazonaws.drs#OutpostARN", + "traits": { + "smithy.api#documentation": "

The ARN of the staging Outpost

" + } } }, "traits": { @@ -5572,6 +5578,16 @@ ] } }, + "com.amazonaws.drs#OutpostARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 255 + }, + "smithy.api#pattern": "^arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/op-[a-f0-9]{17}$" + } + }, "com.amazonaws.drs#PITPolicy": { "type": "list", "member": { @@ -6051,6 +6067,12 @@ "traits": { "smithy.api#documentation": "

The version of the DRS agent installed on the recovery instance

" } + }, + "sourceOutpostArn": { + "target": "com.amazonaws.drs#OutpostARN", + "traits": { + "smithy.api#documentation": "

The ARN of the source Outpost

" + } } }, "traits": { @@ -6121,6 +6143,12 @@ "traits": { "smithy.api#documentation": "

AWS Availability zone into which data is being replicated.

" } + }, + "stagingOutpostArn": { + "target": "com.amazonaws.drs#OutpostARN", + "traits": { + "smithy.api#documentation": "

The ARN of the staging Outpost

" + } } }, "traits": { @@ -7477,6 +7505,12 @@ "traits": { "smithy.api#documentation": "

AWS Availability Zone for an EC2-originated Source Server.

" } + }, + "sourceOutpostArn": { + "target": "com.amazonaws.drs#OutpostARN", + "traits": { + "smithy.api#documentation": "

The ARN of the source Outpost

" + } } }, "traits": { @@ -9569,6 +9603,10 @@ { "value": "MISSING_VOLUME_ATTRIBUTES_AND_PRECHECK_UNAVAILABLE", "name": "MISSING_VOLUME_ATTRIBUTES_AND_PRECHECK_UNAVAILABLE" + }, + { + "value": "PENDING", + "name": "PENDING" } ] } diff --git a/models/dynamodb.json b/models/dynamodb.json index f4dbfb295b..014ffe20b6 100644 --- a/models/dynamodb.json +++ b/models/dynamodb.json @@ -1959,6 +1959,12 @@ "traits": { "smithy.api#documentation": "

Represents the provisioned throughput settings for the specified global secondary\n index.

\n

For current minimum and maximum provisioned throughput values, see Service,\n Account, and Table Quotas in the Amazon DynamoDB Developer\n Guide.

" } + }, + "OnDemandThroughput": { + "target": "com.amazonaws.dynamodb#OnDemandThroughput", + "traits": { + "smithy.api#documentation": "

The maximum number of read and write units for the global secondary index being created. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" + } } }, "traits": { @@ -2070,6 +2076,12 @@ "smithy.api#documentation": "

Replica-specific provisioned throughput. If not specified, uses the source table's\n provisioned throughput settings.

" } }, + "OnDemandThroughputOverride": { + "target": "com.amazonaws.dynamodb#OnDemandThroughputOverride", + "traits": { + "smithy.api#documentation": "

The maximum on-demand throughput settings for the specified replica table being created. You can only modify MaxReadRequestUnits, because you can't modify MaxWriteRequestUnits for individual replica tables.\n

" + } + }, "GlobalSecondaryIndexes": { "target": "com.amazonaws.dynamodb#ReplicaGlobalSecondaryIndexList", "traits": { @@ -2197,7 +2209,13 @@ "ResourcePolicy": { "target": "com.amazonaws.dynamodb#ResourcePolicy", "traits": { - "smithy.api#documentation": "

An Amazon Web Services resource-based policy document in JSON format that will be attached to the table.

\n

When you attach a resource-based policy while creating a table, the policy creation is strongly consistent.

\n

The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. You can’t request an increase for this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations.

" + "smithy.api#documentation": "

An Amazon Web Services resource-based policy document in JSON format that will be attached to the table.

\n

When you attach a resource-based policy while creating a table, the policy application is strongly consistent.

\n

The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that apply for resource-based policies, see Resource-based policy considerations.

" + } + }, + "OnDemandThroughput": { + "target": "com.amazonaws.dynamodb#OnDemandThroughput", + "traits": { + "smithy.api#documentation": "

Sets the maximum number of read and write units for the specified table in on-demand capacity mode. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" } } }, @@ -2670,7 +2688,7 @@ "RevisionId": { "target": "com.amazonaws.dynamodb#PolicyRevisionId", "traits": { - "smithy.api#documentation": "

A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic.

\n

This value will be empty if you make a request against a resource without a policy.

" + "smithy.api#documentation": "

A unique string that represents the revision ID of the policy. If you're comparing revision IDs, make sure to always use string comparison logic.

\n

This value will be empty if you make a request against a resource without a policy.

" } } }, @@ -5912,7 +5930,7 @@ "aws.api#clientDiscoveredEndpoint": { "required": false }, - "smithy.api#documentation": "

Returns the resource-based policy document attached to the resource, which can be a table or stream, in JSON format.

\n

\n GetResourcePolicy follows an \n eventually consistent\n model. The following list describes the outcomes when you issue the GetResourcePolicy request immediately after issuing another request:

\n
    \n
  • \n

    If you issue a GetResourcePolicy request immediately after a PutResourcePolicy request, DynamoDB might return a PolicyNotFoundException.

    \n
  • \n
  • \n

    If you issue a GetResourcePolicyrequest immediately after a DeleteResourcePolicy request, DynamoDB might return the policy that was present before the deletion request.

    \n
  • \n
  • \n

    If you issue a GetResourcePolicy request immediately after a CreateTable request, which includes a resource-based policy, DynamoDB might return a ResourceNotFoundException or a PolicyNotFoundException.

    \n
  • \n
\n

Because GetResourcePolicy uses an eventually consistent query, the metadata for your policy or table might not be available at that moment. Wait for a few seconds, and then retry the GetResourcePolicy request.

\n

After a GetResourcePolicy request returns a policy created using the PutResourcePolicy request, you can assume the policy will start getting applied in the authorization of requests to the resource. Because this process is eventually consistent, it will take some time to apply the policy to all requests to a resource. Policies that you attach while creating a table using the CreateTable request will always be applied to all requests for that table.

" + "smithy.api#documentation": "

Returns the resource-based policy document attached to the resource, which can be a table or stream, in JSON format.

\n

\n GetResourcePolicy follows an \n eventually consistent\n model. The following list describes the outcomes when you issue the GetResourcePolicy request immediately after issuing another request:

\n
    \n
  • \n

    If you issue a GetResourcePolicy request immediately after a PutResourcePolicy request, DynamoDB might return a PolicyNotFoundException.

    \n
  • \n
  • \n

    If you issue a GetResourcePolicyrequest immediately after a DeleteResourcePolicy request, DynamoDB might return the policy that was present before the deletion request.

    \n
  • \n
  • \n

    If you issue a GetResourcePolicy request immediately after a CreateTable request, which includes a resource-based policy, DynamoDB might return a ResourceNotFoundException or a PolicyNotFoundException.

    \n
  • \n
\n

Because GetResourcePolicy uses an eventually consistent query, the metadata for your policy or table might not be available at that moment. Wait for a few seconds, and then retry the GetResourcePolicy request.

\n

After a GetResourcePolicy request returns a policy created using the PutResourcePolicy request, the policy will be applied in the authorization of requests to the resource. Because this process is eventually consistent, it will take some time to apply the policy to all requests to a resource. Policies that you attach while creating a table using the CreateTable request will always be applied to all requests for that table.

" } }, "com.amazonaws.dynamodb#GetResourcePolicyInput": { @@ -5942,7 +5960,7 @@ "RevisionId": { "target": "com.amazonaws.dynamodb#PolicyRevisionId", "traits": { - "smithy.api#documentation": "

A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic.

" + "smithy.api#documentation": "

A unique string that represents the revision ID of the policy. If you're comparing revision IDs, make sure to always use string comparison logic.

" } } }, @@ -5979,6 +5997,12 @@ "traits": { "smithy.api#documentation": "

Represents the provisioned throughput settings for the specified global secondary\n index.

\n

For current minimum and maximum provisioned throughput values, see Service,\n Account, and Table Quotas in the Amazon DynamoDB Developer\n Guide.

" } + }, + "OnDemandThroughput": { + "target": "com.amazonaws.dynamodb#OnDemandThroughput", + "traits": { + "smithy.api#documentation": "

The maximum number of read and write units for the specified global secondary index. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" + } } }, "traits": { @@ -6069,6 +6093,12 @@ "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) that uniquely identifies the index.

" } + }, + "OnDemandThroughput": { + "target": "com.amazonaws.dynamodb#OnDemandThroughput", + "traits": { + "smithy.api#documentation": "

The maximum number of read and write units for the specified global secondary index. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" + } } }, "traits": { @@ -6107,6 +6137,9 @@ "traits": { "smithy.api#documentation": "

Represents the provisioned throughput settings for the specified global secondary\n index.

" } + }, + "OnDemandThroughput": { + "target": "com.amazonaws.dynamodb#OnDemandThroughput" } }, "traits": { @@ -7987,6 +8020,40 @@ "target": "com.amazonaws.dynamodb#NumberAttributeValue" } }, + "com.amazonaws.dynamodb#OnDemandThroughput": { + "type": "structure", + "members": { + "MaxReadRequestUnits": { + "target": "com.amazonaws.dynamodb#LongObject", + "traits": { + "smithy.api#documentation": "

Maximum number of read request units for the specified table.

\n

To specify a maximum OnDemandThroughput on your table, set the value of MaxReadRequestUnits as greater than or equal to 1. To remove the maximum OnDemandThroughput that is currently set on your table, set the value of MaxReadRequestUnits to -1.

" + } + }, + "MaxWriteRequestUnits": { + "target": "com.amazonaws.dynamodb#LongObject", + "traits": { + "smithy.api#documentation": "

Maximum number of write request units for the specified table.

\n

To specify a maximum OnDemandThroughput on your table, set the value of MaxWriteRequestUnits as greater than or equal to 1. To remove the maximum OnDemandThroughput that is currently set on your table, set the value of MaxWriteRequestUnits to -1.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Sets the maximum number of read and write units for the specified on-demand table. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" + } + }, + "com.amazonaws.dynamodb#OnDemandThroughputOverride": { + "type": "structure", + "members": { + "MaxReadRequestUnits": { + "target": "com.amazonaws.dynamodb#LongObject", + "traits": { + "smithy.api#documentation": "

Maximum number of read request units for the specified replica table.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Overrides the on-demand throughput settings for this replica table. If you don't specify a value for this parameter, it uses the source table's on-demand throughput settings.

" + } + }, "com.amazonaws.dynamodb#ParameterizedStatement": { "type": "structure", "members": { @@ -8595,7 +8662,7 @@ "aws.api#clientDiscoveredEndpoint": { "required": false }, - "smithy.api#documentation": "

Attaches a resource-based policy document to the resource, which can be a table or stream. When you attach a resource-based policy using this API, the policy application is \n eventually consistent\n .

\n

\n PutResourcePolicy is an idempotent operation; running it multiple times on the same resource using the same policy document will return the same revision ID. If you specify an ExpectedRevisionId which doesn't match the current policy's RevisionId, the PolicyNotFoundException will be returned.

\n \n

\n PutResourcePolicy is an asynchronous operation. If you issue a GetResourcePolicy request immediately after a PutResourcePolicy request, DynamoDB might return your previous policy, if there was one, or return the PolicyNotFoundException. This is because GetResourcePolicy uses an eventually consistent query, and the metadata for your policy or table might not be available at that moment. Wait for a few seconds, and then try the GetResourcePolicy request again.

\n
" + "smithy.api#documentation": "

Attaches a resource-based policy document to the resource, which can be a table or stream. When you attach a resource-based policy using this API, the policy application is \n eventually consistent\n .

\n

\n PutResourcePolicy is an idempotent operation; running it multiple times on the same resource using the same policy document will return the same revision ID. If you specify an ExpectedRevisionId that doesn't match the current policy's RevisionId, the PolicyNotFoundException will be returned.

\n \n

\n PutResourcePolicy is an asynchronous operation. If you issue a GetResourcePolicy request immediately after a PutResourcePolicy request, DynamoDB might return your previous policy, if there was one, or return the PolicyNotFoundException. This is because GetResourcePolicy uses an eventually consistent query, and the metadata for your policy or table might not be available at that moment. Wait for a few seconds, and then try the GetResourcePolicy request again.

\n
" } }, "com.amazonaws.dynamodb#PutResourcePolicyInput": { @@ -8611,14 +8678,14 @@ "Policy": { "target": "com.amazonaws.dynamodb#ResourcePolicy", "traits": { - "smithy.api#documentation": "

An Amazon Web Services resource-based policy document in JSON format.

\n

The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations.

", + "smithy.api#documentation": "

An Amazon Web Services resource-based policy document in JSON format.

\n
    \n
  • \n

    The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit.

    \n
  • \n
  • \n

    Within a resource-based policy, if the action for a DynamoDB service-linked role (SLR) to replicate data for a global table is denied, adding or deleting a replica will fail with an error.

    \n
  • \n
\n

For a full list of all considerations that apply while attaching a resource-based policy, see Resource-based policy considerations.

", "smithy.api#required": {} } }, "ExpectedRevisionId": { "target": "com.amazonaws.dynamodb#PolicyRevisionId", "traits": { - "smithy.api#documentation": "

A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. When you provide an expected revision ID, if the revision ID of the existing policy on the resource doesn't match or if there's no policy attached to the resource, your request will be rejected with a PolicyNotFoundException.

\n

To conditionally put a policy when no policy exists for the resource, specify NO_POLICY for the revision ID.

" + "smithy.api#documentation": "

A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy.

\n \n

When you provide an expected revision ID, if the revision ID of the existing policy on the resource doesn't match or if there's no policy attached to the resource, your request will be rejected with a PolicyNotFoundException.

\n
\n

To conditionally attach a policy when no policy exists for the resource, specify NO_POLICY for the revision ID.

" } }, "ConfirmRemoveSelfResourceAccess": { @@ -8640,7 +8707,7 @@ "RevisionId": { "target": "com.amazonaws.dynamodb#PolicyRevisionId", "traits": { - "smithy.api#documentation": "

A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic.

" + "smithy.api#documentation": "

A unique string that represents the revision ID of the policy. If you're comparing revision IDs, make sure to always use string comparison logic.

" } } }, @@ -9008,6 +9075,12 @@ "smithy.api#documentation": "

Replica-specific provisioned throughput. If not described, uses the source table's\n provisioned throughput settings.

" } }, + "OnDemandThroughputOverride": { + "target": "com.amazonaws.dynamodb#OnDemandThroughputOverride", + "traits": { + "smithy.api#documentation": "

Overrides the maximum on-demand throughput settings for the specified replica table.

" + } + }, "GlobalSecondaryIndexes": { "target": "com.amazonaws.dynamodb#ReplicaGlobalSecondaryIndexDescriptionList", "traits": { @@ -9049,6 +9122,12 @@ "traits": { "smithy.api#documentation": "

Replica table GSI-specific provisioned throughput. If not specified, uses the source\n table GSI's read capacity settings.

" } + }, + "OnDemandThroughputOverride": { + "target": "com.amazonaws.dynamodb#OnDemandThroughputOverride", + "traits": { + "smithy.api#documentation": "

Overrides the maximum on-demand throughput settings for the specified global secondary index in the specified replica table.

" + } } }, "traits": { @@ -9124,6 +9203,12 @@ "traits": { "smithy.api#documentation": "

If not described, uses the source table GSI's read capacity settings.

" } + }, + "OnDemandThroughputOverride": { + "target": "com.amazonaws.dynamodb#OnDemandThroughputOverride", + "traits": { + "smithy.api#documentation": "

Overrides the maximum on-demand throughput for the specified global secondary index in the specified replica table.

" + } } }, "traits": { @@ -9658,6 +9743,9 @@ "smithy.api#documentation": "

Provisioned throughput settings for the restored table.

" } }, + "OnDemandThroughputOverride": { + "target": "com.amazonaws.dynamodb#OnDemandThroughput" + }, "SSESpecificationOverride": { "target": "com.amazonaws.dynamodb#SSESpecification", "traits": { @@ -9782,6 +9870,9 @@ "smithy.api#documentation": "

Provisioned throughput settings for the restored table.

" } }, + "OnDemandThroughputOverride": { + "target": "com.amazonaws.dynamodb#OnDemandThroughput" + }, "SSESpecificationOverride": { "target": "com.amazonaws.dynamodb#SSESpecification", "traits": { @@ -10450,6 +10541,9 @@ "smithy.api#required": {} } }, + "OnDemandThroughput": { + "target": "com.amazonaws.dynamodb#OnDemandThroughput" + }, "ItemCount": { "target": "com.amazonaws.dynamodb#ItemCount", "traits": { @@ -10699,6 +10793,9 @@ "ProvisionedThroughput": { "target": "com.amazonaws.dynamodb#ProvisionedThroughput" }, + "OnDemandThroughput": { + "target": "com.amazonaws.dynamodb#OnDemandThroughput" + }, "SSESpecification": { "target": "com.amazonaws.dynamodb#SSESpecification" }, @@ -10853,6 +10950,12 @@ "traits": { "smithy.api#documentation": "

Indicates whether deletion protection is enabled (true) or disabled (false) on the table.

" } + }, + "OnDemandThroughput": { + "target": "com.amazonaws.dynamodb#OnDemandThroughput", + "traits": { + "smithy.api#documentation": "

The maximum number of read and write units for the specified on-demand table. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" + } } }, "traits": { @@ -11690,8 +11793,13 @@ "ProvisionedThroughput": { "target": "com.amazonaws.dynamodb#ProvisionedThroughput", "traits": { - "smithy.api#documentation": "

Represents the provisioned throughput settings for the specified global secondary\n index.

\n

For current minimum and maximum provisioned throughput values, see Service,\n Account, and Table Quotas in the Amazon DynamoDB Developer\n Guide.

", - "smithy.api#required": {} + "smithy.api#documentation": "

Represents the provisioned throughput settings for the specified global secondary\n index.

\n

For current minimum and maximum provisioned throughput values, see Service,\n Account, and Table Quotas in the Amazon DynamoDB Developer\n Guide.

" + } + }, + "OnDemandThroughput": { + "target": "com.amazonaws.dynamodb#OnDemandThroughput", + "traits": { + "smithy.api#documentation": "

Updates the maximum number of read and write units for the specified global secondary index. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" } } }, @@ -12202,6 +12310,12 @@ "smithy.api#documentation": "

Replica-specific provisioned throughput. If not specified, uses the source table's\n provisioned throughput settings.

" } }, + "OnDemandThroughputOverride": { + "target": "com.amazonaws.dynamodb#OnDemandThroughputOverride", + "traits": { + "smithy.api#documentation": "

Overrides the maximum on-demand throughput for the replica table.

" + } + }, "GlobalSecondaryIndexes": { "target": "com.amazonaws.dynamodb#ReplicaGlobalSecondaryIndexList", "traits": { @@ -12314,6 +12428,12 @@ "traits": { "smithy.api#documentation": "

Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table.

" } + }, + "OnDemandThroughput": { + "target": "com.amazonaws.dynamodb#OnDemandThroughput", + "traits": { + "smithy.api#documentation": "

Updates the maximum number of read and write units for the specified table in on-demand capacity mode. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" + } } }, "traits": { diff --git a/models/ec2.json b/models/ec2.json index 2433891020..9ca7f79502 100644 --- a/models/ec2.json +++ b/models/ec2.json @@ -3284,6 +3284,9 @@ { "target": "com.amazonaws.ec2#DisableImageDeprecation" }, + { + "target": "com.amazonaws.ec2#DisableImageDeregistrationProtection" + }, { "target": "com.amazonaws.ec2#DisableIpamOrganizationAdminAccount" }, @@ -3374,6 +3377,9 @@ { "target": "com.amazonaws.ec2#EnableImageDeprecation" }, + { + "target": "com.amazonaws.ec2#EnableImageDeregistrationProtection" + }, { "target": "com.amazonaws.ec2#EnableIpamOrganizationAdminAccount" }, @@ -3458,6 +3464,9 @@ { "target": "com.amazonaws.ec2#GetInstanceMetadataDefaults" }, + { + "target": "com.amazonaws.ec2#GetInstanceTpmEkPub" + }, { "target": "com.amazonaws.ec2#GetInstanceTypesFromInstanceRequirements" }, @@ -6476,7 +6485,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "CertificateS3ObjectKey", - "smithy.api#documentation": "

The Amazon S3 object key where the certificate, certificate chain, and encrypted private key bundle are stored. The \n\t\t\tobject key is formatted as follows: role_arn/certificate_arn.

", + "smithy.api#documentation": "

The Amazon S3 object key where the certificate, certificate chain, and encrypted private key bundle are stored. The \n\t\t\tobject key is formatted as follows: role_arn/certificate_arn.

", "smithy.api#xmlName": "certificateS3ObjectKey" } }, @@ -7412,7 +7421,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "CertificateS3ObjectKey", - "smithy.api#documentation": "

The key of the Amazon S3 object ey where the certificate, certificate chain, and encrypted private key bundle \n\t\t\tis stored. The object key is formated as follows: role_arn/certificate_arn.\n\t\t

", + "smithy.api#documentation": "

The key of the Amazon S3 object where the certificate, certificate chain, and encrypted private key bundle \n\t\t\tare stored. The object key is formatted as follows: role_arn/certificate_arn.\n\t\t

", "smithy.api#xmlName": "certificateS3ObjectKey" } }, @@ -7420,7 +7429,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "EncryptionKmsKeyId", - "smithy.api#documentation": "

The ID of the KMS customer master key (CMK) used to encrypt the private key.

", + "smithy.api#documentation": "

The ID of the KMS key used to encrypt the private key.

", "smithy.api#xmlName": "encryptionKmsKeyId" } } @@ -10100,7 +10109,7 @@ "target": "com.amazonaws.ec2#CancelSpotFleetRequestsResponse" }, "traits": { - "smithy.api#documentation": "

Cancels the specified Spot Fleet requests.

\n

After you cancel a Spot Fleet request, the Spot Fleet launches no new instances.

\n

You must also specify whether a canceled Spot Fleet request should terminate its instances. If you\n choose to terminate the instances, the Spot Fleet request enters the\n cancelled_terminating state. Otherwise, the Spot Fleet request enters\n the cancelled_running state and the instances continue to run until they\n are interrupted or you terminate them manually.

", + "smithy.api#documentation": "

Cancels the specified Spot Fleet requests.

\n

After you cancel a Spot Fleet request, the Spot Fleet launches no new instances.

\n

You must also specify whether a canceled Spot Fleet request should terminate its instances. If you\n choose to terminate the instances, the Spot Fleet request enters the\n cancelled_terminating state. Otherwise, the Spot Fleet request enters\n the cancelled_running state and the instances continue to run until they\n are interrupted or you terminate them manually.

\n

\n Restrictions\n

\n
    \n
  • \n

    You can delete up to 100 fleets in a single request. If you exceed the specified\n number, no fleets are deleted.

    \n
  • \n
", "smithy.api#examples": [ { "title": "To cancel a Spot fleet request", @@ -10216,7 +10225,7 @@ "traits": { "aws.protocols#ec2QueryName": "SpotFleetRequestId", "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The IDs of the Spot Fleet requests.

", + "smithy.api#documentation": "

The IDs of the Spot Fleet requests.

\n

Constraint: You can specify up to 100 IDs in a single request.

", "smithy.api#required": {}, "smithy.api#xmlName": "spotFleetRequestId" } @@ -14838,7 +14847,7 @@ "target": "com.amazonaws.ec2#CreateDhcpOptionsResult" }, "traits": { - "smithy.api#documentation": "

Creates a custom set of DHCP options. After you create a DHCP option set, you associate\n\t it with a VPC. After you associate a DHCP option set with a VPC, all existing and newly \n\t launched instances in the VPC use this set of DHCP options.

\n

The following are the individual DHCP options you can specify. For more information, see \n DHCP options sets \n in the Amazon VPC User Guide.

\n
    \n
  • \n

    \n domain-name - If you're using AmazonProvidedDNS in us-east-1, \n specify ec2.internal. If you're using AmazonProvidedDNS in any other Region, \n specify region.compute.internal. Otherwise, specify a custom domain name.\n This value is used to complete unqualified DNS hostnames.

    \n

    Some Linux operating systems accept multiple domain names separated by spaces.\n However, Windows and other Linux operating systems treat the value as a single\n domain, which results in unexpected behavior. If your DHCP option set is\n associated with a VPC that has instances running operating systems that treat\n the value as a single domain, specify only one domain name.

    \n
  • \n
  • \n

    \n domain-name-servers - The IP addresses of up to four DNS servers,\n or AmazonProvidedDNS. To specify multiple domain name servers in a single parameter, \n separate the IP addresses using commas. To have your instances receive custom DNS \n hostnames as specified in domain-name, you must specify a custom DNS\n server.

    \n
  • \n
  • \n

    \n ntp-servers - The IP addresses of up to eight Network Time Protocol (NTP)\n servers (four IPv4 addresses and four IPv6 addresses).

    \n
  • \n
  • \n

    \n netbios-name-servers - The IP addresses of up to four NetBIOS name\n servers.

    \n
  • \n
  • \n

    \n netbios-node-type - The NetBIOS node type (1, 2, 4, or 8). We recommend that\n you specify 2. Broadcast and multicast are not supported. For more information about \n NetBIOS node types, see RFC 2132.

    \n
  • \n
  • \n

    \n ipv6-preferred-lease-time - A value (in seconds, minutes, hours, or years) for how frequently a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. \n Acceptable values are between 140 and 2147483647 seconds (approximately 68 years). If no value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 instances, you can increase the lease time and avoid frequent \n lease renewal requests. Lease renewal typically occurs when half of the lease time has elapsed.

    \n
  • \n
", + "smithy.api#documentation": "

Creates a custom set of DHCP options. After you create a DHCP option set, you associate\n\t it with a VPC. After you associate a DHCP option set with a VPC, all existing and newly \n\t launched instances in the VPC use this set of DHCP options.

\n

The following are the individual DHCP options you can specify. For more information, see \n DHCP options sets \n in the Amazon VPC User Guide.

\n
    \n
  • \n

    \n domain-name - If you're using AmazonProvidedDNS in us-east-1, \n specify ec2.internal. If you're using AmazonProvidedDNS in any other Region, \n specify region.compute.internal. Otherwise, specify a custom domain name.\n This value is used to complete unqualified DNS hostnames.

    \n

    Some Linux operating systems accept multiple domain names separated by spaces.\n However, Windows and other Linux operating systems treat the value as a single\n domain, which results in unexpected behavior. If your DHCP option set is\n associated with a VPC that has instances running operating systems that treat\n the value as a single domain, specify only one domain name.

    \n
  • \n
  • \n

    \n domain-name-servers - The IP addresses of up to four DNS servers,\n or AmazonProvidedDNS. To specify multiple domain name servers in a single parameter, \n separate the IP addresses using commas. To have your instances receive custom DNS \n hostnames as specified in domain-name, you must specify a custom DNS\n server.

    \n
  • \n
  • \n

    \n ntp-servers - The IP addresses of up to eight Network Time Protocol (NTP)\n servers (four IPv4 addresses and four IPv6 addresses).

    \n
  • \n
  • \n

    \n netbios-name-servers - The IP addresses of up to four NetBIOS name\n servers.

    \n
  • \n
  • \n

    \n netbios-node-type - The NetBIOS node type (1, 2, 4, or 8). We recommend that\n you specify 2. Broadcast and multicast are not supported. For more information about \n NetBIOS node types, see RFC 2132.

    \n
  • \n
  • \n

    \n ipv6-address-preferred-lease-time - A value (in seconds, minutes, hours, or years) for how frequently a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. \n Acceptable values are between 140 and 2147483647 seconds (approximately 68 years). If no value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 instances, you can increase the lease time and avoid frequent \n lease renewal requests. Lease renewal typically occurs when half of the lease time has elapsed.

    \n
  • \n
", "smithy.api#examples": [ { "title": "To create a DHCP options set", @@ -15031,7 +15040,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "ErrorCode", - "smithy.api#documentation": "

The error code that indicates why the instance could not be launched. For more\n information about error codes, see Error codes.

", + "smithy.api#documentation": "

The error code that indicates why the instance could not be launched. For more\n information about error codes, see Error codes.

", "smithy.api#xmlName": "errorCode" } }, @@ -15039,7 +15048,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "ErrorMessage", - "smithy.api#documentation": "

The error message that describes why the instance could not be launched. For more\n information about error messages, see Error codes.

", + "smithy.api#documentation": "

The error message that describes why the instance could not be launched. For more\n information about error messages, see Error codes.

", "smithy.api#xmlName": "errorMessage" } } @@ -16299,7 +16308,7 @@ "target": "com.amazonaws.ec2#CreateLaunchTemplateResult" }, "traits": { - "smithy.api#documentation": "

Creates a launch template.

\n

A launch template contains the parameters to launch an instance. When you launch an\n instance using RunInstances, you can specify a launch template instead\n of providing the launch parameters in the request. For more information, see Launch\n an instance from a launch template in the\n Amazon Elastic Compute Cloud User Guide.

\n

If you want to clone an existing launch template as the basis for creating a new\n launch template, you can use the Amazon EC2 console. The API, SDKs, and CLI do not support\n cloning a template. For more information, see Create a launch template from an existing launch template in the\n Amazon Elastic Compute Cloud User Guide.

", + "smithy.api#documentation": "

Creates a launch template.

\n

A launch template contains the parameters to launch an instance. When you launch an\n instance using RunInstances, you can specify a launch template instead\n of providing the launch parameters in the request. For more information, see Launch\n an instance from a launch template in the\n Amazon Elastic Compute Cloud User Guide.

\n

To clone an existing launch template as the basis for a new launch template, use the \n Amazon EC2 console. The API, SDKs, and CLI do not support cloning a template. For more \n information, see Create a launch template from an existing launch template in the\n Amazon Elastic Compute Cloud User Guide.

", "smithy.api#examples": [ { "title": "To create a launch template", @@ -16385,7 +16394,7 @@ "TagSpecifications": { "target": "com.amazonaws.ec2#TagSpecificationList", "traits": { - "smithy.api#documentation": "

The tags to apply to the launch template on creation. To tag the launch template, the\n resource type must be launch-template.

\n \n

To specify the tags for the resources that are created when an instance is\n launched, you must use the TagSpecifications parameter in the launch\n template data structure.

\n
", + "smithy.api#documentation": "

The tags to apply to the launch template on creation. To tag the launch template, the\n resource type must be launch-template.

\n

To specify the tags for the resources that are created when an instance is\n launched, you must use the TagSpecifications parameter in the launch template data structure.

", "smithy.api#xmlName": "TagSpecification" } } @@ -16427,7 +16436,7 @@ "target": "com.amazonaws.ec2#CreateLaunchTemplateVersionResult" }, "traits": { - "smithy.api#documentation": "

Creates a new version of a launch template. You can specify an existing version of\n launch template from which to base the new version.

\n

Launch template versions are numbered in the order in which they are created. You\n cannot specify, change, or replace the numbering of launch template versions.

\n

Launch templates are immutable; after you create a launch template, you can't modify\n it. Instead, you can create a new version of the launch template that includes any\n changes you require.

\n

For more information, see Modify a launch template (manage launch template versions) in the\n Amazon Elastic Compute Cloud User Guide.

", + "smithy.api#documentation": "

Creates a new version of a launch template. You must specify an existing launch\n template, either by name or ID. You can determine whether the new version inherits \n parameters from a source version, and add or overwrite parameters as needed.

\n

Launch template versions are numbered in the order in which they are created. You\n can't specify, change, or replace the numbering of launch template versions.

\n

Launch templates are immutable; after you create a launch template, you can't modify\n it. Instead, you can create a new version of the launch template that includes the\n changes that you require.

\n

For more information, see Modify a launch template (manage launch template versions) in the\n Amazon Elastic Compute Cloud User Guide.

", "smithy.api#examples": [ { "title": "To create a launch template version", @@ -16489,19 +16498,19 @@ "LaunchTemplateId": { "target": "com.amazonaws.ec2#LaunchTemplateId", "traits": { - "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify either the LaunchTemplateId or the\n LaunchTemplateName, but not both.

" + "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify either the launch template ID or the\n launch template name, but not both.

" } }, "LaunchTemplateName": { "target": "com.amazonaws.ec2#LaunchTemplateName", "traits": { - "smithy.api#documentation": "

The name of the launch template.

\n

You must specify the LaunchTemplateName or the\n LaunchTemplateId, but not both.

" + "smithy.api#documentation": "

The name of the launch template.

\n

You must specify either the launch template ID or the\n launch template name, but not both.

" } }, "SourceVersion": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

The version number of the launch template version on which to base the new version.\n The new version inherits the same launch parameters as the source version, except for\n parameters that you specify in LaunchTemplateData. Snapshots applied to the\n block device mapping are ignored when creating a new version unless they are explicitly\n included.

" + "smithy.api#documentation": "

The version of the launch template on which to base the new version. \n Snapshots applied to the block device mapping are ignored when creating a new version \n unless they are explicitly included.

\n

If you specify this parameter, the new version inherits the launch parameters from the\n source version. If you specify additional launch parameters for the new version, they \n overwrite any corresponding launch parameters inherited from the source version.

\n

If you omit this parameter, the new version contains only the launch parameters\n that you specify for the new version.

" } }, "VersionDescription": { @@ -22715,7 +22724,7 @@ "target": "com.amazonaws.ec2#DeleteFleetsResult" }, "traits": { - "smithy.api#documentation": "

Deletes the specified EC2 Fleets.

\n

After you delete an EC2 Fleet, it launches no new instances.

\n

You must also specify whether a deleted EC2 Fleet should terminate its instances. If you\n choose to terminate the instances, the EC2 Fleet enters the deleted_terminating\n state. Otherwise, the EC2 Fleet enters the deleted_running state, and the instances\n continue to run until they are interrupted or you terminate them manually.

\n

For instant fleets, EC2 Fleet must terminate the instances when the fleet is\n deleted. A deleted instant fleet with running instances is not\n supported.

\n

\n Restrictions\n

\n
    \n
  • \n

    You can delete up to 25 instant fleets in a single request. If you exceed this\n number, no instant fleets are deleted and an error is returned. There is no\n restriction on the number of fleets of type maintain or request that can be deleted\n in a single request.

    \n
  • \n
  • \n

    Up to 1000 instances can be terminated in a single request to delete\n instant fleets.

    \n
  • \n
\n

For more information, see Delete an EC2\n Fleet in the Amazon EC2 User Guide.

" + "smithy.api#documentation": "

Deletes the specified EC2 Fleets.

\n

After you delete an EC2 Fleet, it launches no new instances.

\n

You must also specify whether a deleted EC2 Fleet should terminate its instances. If you\n choose to terminate the instances, the EC2 Fleet enters the deleted_terminating\n state. Otherwise, the EC2 Fleet enters the deleted_running state, and the instances\n continue to run until they are interrupted or you terminate them manually.

\n

For instant fleets, EC2 Fleet must terminate the instances when the fleet is\n deleted. Up to 1000 instances can be terminated in a single request to delete\n instant fleets. A deleted instant fleet with running instances\n is not supported.

\n

\n Restrictions\n

\n
    \n
  • \n

    You can delete up to 25 fleets of type instant in a single\n request.

    \n
  • \n
  • \n

    You can delete up to 100 fleets of type maintain or\n request in a single request.

    \n
  • \n
  • \n

    You can delete up to 125 fleets in a single request, provided you do not exceed\n the quota for each fleet type, as specified above.

    \n
  • \n
  • \n

    If you exceed the specified number of fleets to delete, no fleets are\n deleted.

    \n
  • \n
\n

For more information, see Delete an EC2\n Fleet in the Amazon EC2 User Guide.

" } }, "com.amazonaws.ec2#DeleteFleetsRequest": { @@ -22731,7 +22740,7 @@ "target": "com.amazonaws.ec2#FleetIdSet", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The IDs of the EC2 Fleets.

", + "smithy.api#documentation": "

The IDs of the EC2 Fleets.

\n

Constraints: In a single request, you can specify up to 25 instant fleet\n IDs and up to 100 maintain or request fleet IDs.

", "smithy.api#required": {}, "smithy.api#xmlName": "FleetId" } @@ -23356,13 +23365,13 @@ "LaunchTemplateId": { "target": "com.amazonaws.ec2#LaunchTemplateId", "traits": { - "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify either the LaunchTemplateId or the\n LaunchTemplateName, but not both.

" + "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify either the launch template ID or the\n launch template name, but not both.

" } }, "LaunchTemplateName": { "target": "com.amazonaws.ec2#LaunchTemplateName", "traits": { - "smithy.api#documentation": "

The name of the launch template.

\n

You must specify either the LaunchTemplateName or the\n LaunchTemplateId, but not both.

" + "smithy.api#documentation": "

The name of the launch template.

\n

You must specify either the launch template ID or the\n launch template name, but not both.

" } } }, @@ -23432,13 +23441,13 @@ "LaunchTemplateId": { "target": "com.amazonaws.ec2#LaunchTemplateId", "traits": { - "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify either the LaunchTemplateId or the\n LaunchTemplateName, but not both.

" + "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify either the launch template ID or the\n launch template name, but not both.

" } }, "LaunchTemplateName": { "target": "com.amazonaws.ec2#LaunchTemplateName", "traits": { - "smithy.api#documentation": "

The name of the launch template.

\n

You must specify either the LaunchTemplateName or the\n LaunchTemplateId, but not both.

" + "smithy.api#documentation": "

The name of the launch template.

\n

You must specify either the launch template ID or the\n launch template name, but not both.

" } }, "Versions": { @@ -25566,7 +25575,7 @@ "target": "com.amazonaws.ec2#DeleteTransitGatewayRouteTableResult" }, "traits": { - "smithy.api#documentation": "

Deletes the specified transit gateway route table. You must disassociate the route table from any\n transit gateway route tables before you can delete it.

" + "smithy.api#documentation": "

Deletes the specified transit gateway route table. If there are any route tables associated with\n the transit gateway route table, you must first run DisassociateRouteTable before you can delete the transit gateway route table. This removes any route tables associated with the transit gateway route table.

" } }, "com.amazonaws.ec2#DeleteTransitGatewayRouteTableAnnouncement": { @@ -30862,7 +30871,7 @@ "target": "com.amazonaws.ec2#DescribeImagesResult" }, "traits": { - "smithy.api#documentation": "

Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of the images available to you.

\n

The images available to you include public images, private images that you own, and private images owned by other \n Amazon Web Services accounts for which you have explicit launch permissions.

\n

Recently deregistered images appear in the returned results for a short interval and then\n return empty results. After all instances that reference a deregistered AMI are terminated,\n specifying the ID of the image will eventually return an error indicating that the AMI ID\n cannot be found.

\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", + "smithy.api#documentation": "

Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of the images available to you.

\n

The images available to you include public images, private images that you own, and private images owned by other \n Amazon Web Services accounts for which you have explicit launch permissions.

\n

Recently deregistered images appear in the returned results for a short interval and then\n return empty results. After all instances that reference a deregistered AMI are terminated,\n specifying the ID of the image will eventually return an error indicating that the AMI ID\n cannot be found.

\n \n

We strongly recommend using only paginated requests. Unpaginated requests are\n susceptible to throttling and timeouts.

\n
\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", "smithy.api#examples": [ { "title": "To describe an AMI", @@ -31933,7 +31942,7 @@ "target": "com.amazonaws.ec2#DescribeInstanceTypeOfferingsResult" }, "traits": { - "smithy.api#documentation": "

Returns a list of all instance types offered. The results can be filtered by location (Region or Availability\n Zone). If no location is specified, the instance types offered in the current Region are returned.

", + "smithy.api#documentation": "

Lists the instance types that are offered for the specified location. If no location is specified, the default\n is to list the instance types that are offered in the current Region.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -31954,13 +31963,13 @@ "LocationType": { "target": "com.amazonaws.ec2#LocationType", "traits": { - "smithy.api#documentation": "

The location type.

" + "smithy.api#documentation": "

The location type.

\n
    \n
  • \n

    \n availability-zone - The Availability Zone. When you specify a location filter, it must be\n an Availability Zone for the current Region.

    \n
  • \n
  • \n

    \n availability-zone-id - The AZ ID. When you specify a location filter, it must be\n an AZ ID for the current Region.

    \n
  • \n
  • \n

    \n outpost - The Outpost ARN. When you specify a location filter, it must be an Outpost ARN\n for the current Region.

    \n
  • \n
  • \n

    \n region - The current Region. If you specify a location filter, it must match the current Region.

    \n
  • \n
" } }, "Filters": { "target": "com.amazonaws.ec2#FilterList", "traits": { - "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

\n
    \n
  • \n

    \n location - This depends on the location type. For example, if the location type is\n region (default), the location is the Region code (for example, us-east-2.)

    \n
  • \n
  • \n

    \n instance-type - The instance type. For example,\n c5.2xlarge.

    \n
  • \n
", + "smithy.api#documentation": "

One or more filters. Filter names and values are case-sensitive.

\n
    \n
  • \n

    \n instance-type - The instance type. For a list of possible values, see \n Instance.

    \n
  • \n
  • \n

    \n location - The location. For a list of possible identifiers, see Regions and Zones.

    \n
  • \n
", "smithy.api#xmlName": "Filter" } }, @@ -31988,7 +31997,7 @@ "target": "com.amazonaws.ec2#InstanceTypeOfferingsList", "traits": { "aws.protocols#ec2QueryName": "InstanceTypeOfferingSet", - "smithy.api#documentation": "

The instance types offered.

", + "smithy.api#documentation": "

The instance types offered in the location.

", "smithy.api#xmlName": "instanceTypeOfferingSet" } }, @@ -32014,7 +32023,7 @@ "target": "com.amazonaws.ec2#DescribeInstanceTypesResult" }, "traits": { - "smithy.api#documentation": "

Describes the details of the instance types that are offered in a location. The results can be filtered by the\n attributes of the instance types.

", + "smithy.api#documentation": "

Describes the specified instance types. By default, all instance types for the current Region are described.\n Alternatively, you can filter the results.

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -32035,7 +32044,7 @@ "InstanceTypes": { "target": "com.amazonaws.ec2#RequestInstanceTypeList", "traits": { - "smithy.api#documentation": "

The instance types. For more information, see Instance types in the Amazon EC2 User Guide.

", + "smithy.api#documentation": "

The instance types.

", "smithy.api#xmlName": "InstanceType" } }, @@ -32070,7 +32079,7 @@ "target": "com.amazonaws.ec2#InstanceTypeInfoList", "traits": { "aws.protocols#ec2QueryName": "InstanceTypeSet", - "smithy.api#documentation": "

The instance type. For more information, see Instance types in the Amazon EC2 User Guide.

", + "smithy.api#documentation": "

The instance type.

", "smithy.api#xmlName": "instanceTypeSet" } }, @@ -32096,7 +32105,7 @@ "target": "com.amazonaws.ec2#DescribeInstancesResult" }, "traits": { - "smithy.api#documentation": "

Describes the specified instances or all instances.

\n

If you specify instance IDs, the output includes information for only the specified\n instances. If you specify filters, the output includes information for only those\n instances that meet the filter criteria. If you do not specify instance IDs or filters,\n the output includes information for all instances, which can affect performance. We\n recommend that you use pagination to ensure that the operation returns quickly and\n successfully.

\n

If you specify an instance ID that is not valid, an error is returned. If you specify\n an instance that you do not own, it is not included in the output.

\n

Recently terminated instances might appear in the returned results. This interval is\n usually less than one hour.

\n

If you describe instances in the rare case where an Availability Zone is experiencing\n a service disruption and you specify instance IDs that are in the affected zone, or do\n not specify any instance IDs at all, the call fails. If you describe instances and\n specify only instance IDs that are in an unaffected zone, the call works\n normally.

\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", + "smithy.api#documentation": "

Describes the specified instances or all instances.

\n

If you specify instance IDs, the output includes information for only the specified\n instances. If you specify filters, the output includes information for only those\n instances that meet the filter criteria. If you do not specify instance IDs or filters,\n the output includes information for all instances, which can affect performance. We\n recommend that you use pagination to ensure that the operation returns quickly and\n successfully.

\n

If you specify an instance ID that is not valid, an error is returned. If you specify\n an instance that you do not own, it is not included in the output.

\n

Recently terminated instances might appear in the returned results. This interval is\n usually less than one hour.

\n

If you describe instances in the rare case where an Availability Zone is experiencing\n a service disruption and you specify instance IDs that are in the affected zone, or do\n not specify any instance IDs at all, the call fails. If you describe instances and\n specify only instance IDs that are in an unaffected zone, the call works\n normally.

\n \n

We strongly recommend using only paginated requests. Unpaginated requests are\n susceptible to throttling and timeouts.

\n
\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", "smithy.api#examples": [ { "title": "To describe an Amazon EC2 instance", @@ -32148,6 +32157,23 @@ "smithy.api#suppress": [ "WaitableTraitInvalidErrorType" ], + "smithy.test#smokeTests": [ + { + "id": "DescribeInstancesFailure", + "params": { + "InstanceIds": [ + "i-12345678" + ] + }, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "failure": {} + } + } + ], "smithy.waiters#waitable": { "InstanceExists": { "acceptors": [ @@ -33283,13 +33309,13 @@ "LaunchTemplateId": { "target": "com.amazonaws.ec2#LaunchTemplateId", "traits": { - "smithy.api#documentation": "

The ID of the launch template.

\n

To describe one or more versions of a specified launch template, you must specify\n either the LaunchTemplateId or the LaunchTemplateName, but not\n both.

\n

To describe all the latest or default launch template versions in your account, you\n must omit this parameter.

" + "smithy.api#documentation": "

The ID of the launch template.

\n

To describe one or more versions of a specified launch template, you must specify\n either the launch template ID or the launch template name, but not both.

\n

To describe all the latest or default launch template versions in your account, you\n must omit this parameter.

" } }, "LaunchTemplateName": { "target": "com.amazonaws.ec2#LaunchTemplateName", "traits": { - "smithy.api#documentation": "

The name of the launch template.

\n

To describe one or more versions of a specified launch template, you must specify\n either the LaunchTemplateName or the LaunchTemplateId, but not\n both.

\n

To describe all the latest or default launch template versions in your account, you\n must omit this parameter.

" + "smithy.api#documentation": "

The name of the launch template.

\n

To describe one or more versions of a specified launch template, you must specify\n either the launch template name or the launch template ID, but not both.

\n

To describe all the latest or default launch template versions in your account, you\n must omit this parameter.

" } }, "Versions": { @@ -35202,6 +35228,14 @@ "smithy.api#documentation": "

Indicates whether source/destination checking is enabled.

", "smithy.api#xmlName": "sourceDestCheck" } + }, + "AssociatePublicIpAddress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "aws.protocols#ec2QueryName": "AssociatePublicIpAddress", + "smithy.api#documentation": "

Indicates whether to assign a public IPv4 address to a network interface. \n This option can be enabled for any network interface but will only apply to the primary network interface (eth0).

", + "smithy.api#xmlName": "associatePublicIpAddress" + } } }, "traits": { @@ -35305,7 +35339,7 @@ "target": "com.amazonaws.ec2#DescribeNetworkInterfacesResult" }, "traits": { - "smithy.api#documentation": "

Describes one or more of your network interfaces.

\n

If you have a large number of network interfaces, the operation fails unless \n you use pagination or one of the following filters: group-id, \n mac-address, private-dns-name, private-ip-address, \n private-dns-name, subnet-id, or vpc-id.

", + "smithy.api#documentation": "

Describes one or more of your network interfaces.

\n

If you have a large number of network interfaces, the operation fails unless \n you use pagination or one of the following filters: group-id, \n mac-address, private-dns-name, private-ip-address, \n private-dns-name, subnet-id, or vpc-id.

\n \n

We strongly recommend using only paginated requests. Unpaginated requests are\n susceptible to throttling and timeouts.

\n
", "smithy.api#examples": [ { "title": "To describe a network interface", @@ -35464,7 +35498,7 @@ "target": "com.amazonaws.ec2#NetworkInterfaceList", "traits": { "aws.protocols#ec2QueryName": "NetworkInterfaceSet", - "smithy.api#documentation": "

Information about one or more network interfaces.

", + "smithy.api#documentation": "

Information about the network interfaces.

", "smithy.api#xmlName": "networkInterfaceSet" } }, @@ -35852,6 +35886,19 @@ ] } } + ], + "smithy.test#smokeTests": [ + { + "id": "DescribeRegionsSuccess", + "params": {}, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "success": {} + } + } ] } }, @@ -37184,7 +37231,7 @@ "target": "com.amazonaws.ec2#DescribeSnapshotsResult" }, "traits": { - "smithy.api#documentation": "

Describes the specified EBS snapshots available to you or all of the EBS snapshots\n available to you.

\n

The snapshots available to you include public snapshots, private snapshots that you own,\n and private snapshots owned by other Amazon Web Services accounts for which you have explicit create volume\n permissions.

\n

The create volume permissions fall into the following categories:

\n
    \n
  • \n

    \n public: The owner of the snapshot granted create volume\n permissions for the snapshot to the all group. All Amazon Web Services accounts have create\n volume permissions for these snapshots.

    \n
  • \n
  • \n

    \n explicit: The owner of the snapshot granted create volume\n permissions to a specific Amazon Web Services account.

    \n
  • \n
  • \n

    \n implicit: An Amazon Web Services account has implicit create volume permissions\n for all snapshots it owns.

    \n
  • \n
\n

The list of snapshots returned can be filtered by specifying snapshot IDs, snapshot\n owners, or Amazon Web Services accounts with create volume permissions. If no options are specified, \n Amazon EC2 returns all snapshots for which you have create volume permissions.

\n

If you specify one or more snapshot IDs, only snapshots that have the specified IDs are\n returned. If you specify an invalid snapshot ID, an error is returned. If you specify a\n snapshot ID for which you do not have access, it is not included in the returned\n results.

\n

If you specify one or more snapshot owners using the OwnerIds option, only\n snapshots from the specified owners and for which you have access are returned. The results\n can include the Amazon Web Services account IDs of the specified owners, amazon for snapshots\n owned by Amazon, or self for snapshots that you own.

\n

If you specify a list of restorable users, only snapshots with create snapshot permissions\n for those users are returned. You can specify Amazon Web Services account IDs (if you own the snapshots),\n self for snapshots for which you own or have explicit permissions, or\n all for public snapshots.

\n

If you are describing a long list of snapshots, we recommend that you paginate the output to make the\n list more manageable. For more information, see Pagination.

\n

To get the state of fast snapshot restores for a snapshot, use DescribeFastSnapshotRestores.

\n

For more information about EBS snapshots, see Amazon EBS snapshots in the Amazon EBS User Guide.

", + "smithy.api#documentation": "

Describes the specified EBS snapshots available to you or all of the EBS snapshots\n available to you.

\n

The snapshots available to you include public snapshots, private snapshots that you own,\n and private snapshots owned by other Amazon Web Services accounts for which you have explicit create volume\n permissions.

\n

The create volume permissions fall into the following categories:

\n
    \n
  • \n

    \n public: The owner of the snapshot granted create volume\n permissions for the snapshot to the all group. All Amazon Web Services accounts have create\n volume permissions for these snapshots.

    \n
  • \n
  • \n

    \n explicit: The owner of the snapshot granted create volume\n permissions to a specific Amazon Web Services account.

    \n
  • \n
  • \n

    \n implicit: An Amazon Web Services account has implicit create volume permissions\n for all snapshots it owns.

    \n
  • \n
\n

The list of snapshots returned can be filtered by specifying snapshot IDs, snapshot\n owners, or Amazon Web Services accounts with create volume permissions. If no options are specified, \n Amazon EC2 returns all snapshots for which you have create volume permissions.

\n

If you specify one or more snapshot IDs, only snapshots that have the specified IDs are\n returned. If you specify an invalid snapshot ID, an error is returned. If you specify a\n snapshot ID for which you do not have access, it is not included in the returned\n results.

\n

If you specify one or more snapshot owners using the OwnerIds option, only\n snapshots from the specified owners and for which you have access are returned. The results\n can include the Amazon Web Services account IDs of the specified owners, amazon for snapshots\n owned by Amazon, or self for snapshots that you own.

\n

If you specify a list of restorable users, only snapshots with create snapshot permissions\n for those users are returned. You can specify Amazon Web Services account IDs (if you own the snapshots),\n self for snapshots for which you own or have explicit permissions, or\n all for public snapshots.

\n

If you are describing a long list of snapshots, we recommend that you paginate the output to make the\n list more manageable. For more information, see Pagination.

\n

To get the state of fast snapshot restores for a snapshot, use DescribeFastSnapshotRestores.

\n

For more information about EBS snapshots, see Amazon EBS snapshots in the Amazon EBS User Guide.

\n \n

We strongly recommend using only paginated requests. Unpaginated requests are\n susceptible to throttling and timeouts.

\n
", "smithy.api#examples": [ { "title": "To describe a snapshot", @@ -38590,7 +38637,7 @@ "target": "com.amazonaws.ec2#DescribeTagsResult" }, "traits": { - "smithy.api#documentation": "

Describes the specified tags for your EC2 resources.

\n

For more information about tags, see Tag your Amazon EC2 resources in the\n Amazon Elastic Compute Cloud User Guide.

\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", + "smithy.api#documentation": "

Describes the specified tags for your EC2 resources.

\n

For more information about tags, see Tag your Amazon EC2 resources in the\n Amazon Elastic Compute Cloud User Guide.

\n \n

We strongly recommend using only paginated requests. Unpaginated requests are\n susceptible to throttling and timeouts.

\n
\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", "smithy.api#examples": [ { "title": "To describe the tags for a single resource", @@ -38645,7 +38692,7 @@ "Filters": { "target": "com.amazonaws.ec2#FilterList", "traits": { - "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n key - The tag key.

    \n
  • \n
  • \n

    \n resource-id - The ID of the resource.

    \n
  • \n
  • \n

    \n resource-type - The resource type (customer-gateway | dedicated-host | dhcp-options | elastic-ip | fleet | fpga-image | host-reservation | image | instance | internet-gateway | key-pair | launch-template | natgateway | network-acl | network-interface | placement-group | reserved-instances | route-table | security-group | snapshot | spot-instances-request | subnet | volume | vpc | vpc-endpoint | vpc-endpoint-service | vpc-peering-connection | vpn-connection | vpn-gateway).

    \n
  • \n
  • \n

    \n tag: - The key/value combination of the tag. For example,\n specify \"tag:Owner\" for the filter name and \"TeamA\" for the filter value to find\n resources with the tag \"Owner=TeamA\".

    \n
  • \n
  • \n

    \n value - The tag value.

    \n
  • \n
", + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n key - The tag key.

    \n
  • \n
  • \n

    \n resource-id - The ID of the resource.

    \n
  • \n
  • \n

    \n resource-type - The resource type. For a list of possible values, see \n TagSpecification.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of the tag. For example,\n specify \"tag:Owner\" for the filter name and \"TeamA\" for the filter value to find\n resources with the tag \"Owner=TeamA\".

    \n
  • \n
  • \n

    \n value - The tag value.

    \n
  • \n
", "smithy.api#xmlName": "Filter" } }, @@ -39699,7 +39746,7 @@ "Filters": { "target": "com.amazonaws.ec2#FilterList", "traits": { - "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n options.propagation-default-route-table-id - The ID of the default propagation route table.

    \n
  • \n
  • \n

    \n options.amazon-side-asn - The private ASN for the Amazon side of a BGP session.

    \n
  • \n
  • \n

    \n options.association-default-route-table-id - The ID of the default association route table.

    \n
  • \n
  • \n

    \n options.auto-accept-shared-attachments - Indicates whether there is automatic acceptance of attachment requests (enable | disable).

    \n
  • \n
  • \n

    \n options.default-route-table-association - Indicates whether resource attachments are automatically \n associated with the default association route table (enable | disable).

    \n
  • \n
  • \n

    \n options.default-route-table-propagation - Indicates whether resource attachments automatically propagate \n routes to the default propagation route table (enable | disable).

    \n
  • \n
  • \n

    \n options.dns-support - Indicates whether DNS support is enabled (enable | disable).

    \n
  • \n
  • \n

    \n options.vpn-ecmp-support - Indicates whether Equal Cost Multipath Protocol support is enabled (enable | disable).

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the transit gateway.

    \n
  • \n
  • \n

    \n state - The state of the transit gateway (available | deleted | deleting | modifying | pending).

    \n
  • \n
  • \n

    \n transit-gateway-id - The ID of the transit gateway.

    \n
  • \n
", + "smithy.api#documentation": "

One or more filters. The possible values are:

\n
    \n
  • \n

    \n options.propagation-default-route-table-id - The ID of the default propagation route table.

    \n
  • \n
  • \n

    \n options.amazon-side-asn - The private ASN for the Amazon side of a BGP session.

    \n
  • \n
  • \n

    \n options.association-default-route-table-id - The ID of the default association route table.

    \n
  • \n
  • \n

    \n options.auto-accept-shared-attachments - Indicates whether there is automatic acceptance of attachment requests (enable | disable).

    \n
  • \n
  • \n

    \n options.default-route-table-association - Indicates whether resource attachments are automatically \n associated with the default association route table (enable | disable).

    \n
  • \n
  • \n

    \n options.default-route-table-propagation - Indicates whether resource attachments automatically propagate \n routes to the default propagation route table (enable | disable).

    \n
  • \n
  • \n

    \n options.dns-support - Indicates whether DNS support is enabled (enable | disable).

    \n
  • \n
  • \n

    \n options.vpn-ecmp-support - Indicates whether Equal Cost Multipath Protocol support is enabled (enable | disable).

    \n
  • \n
  • \n

    \n owner-id - The ID of the Amazon Web Services account that owns the transit gateway.

    \n
  • \n
  • \n

    \n state - The state of the transit gateway (available | deleted | deleting | modifying | pending).

    \n
  • \n
  • \n

    \n transit-gateway-id - The ID of the transit gateway.

    \n
  • \n
  • \n

    \n tag-key - The key/value combination of a tag assigned to the resource. Use the\n tag key in the filter name and the tag value as the filter value. For example, to\n find all resources that have a tag with the key Owner and the value TeamA, specify\n tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
", "smithy.api#xmlName": "Filter" } }, @@ -40550,7 +40597,7 @@ "target": "com.amazonaws.ec2#DescribeVolumesResult" }, "traits": { - "smithy.api#documentation": "

Describes the specified EBS volumes or all of your EBS volumes.

\n

If you are describing a long list of volumes, we recommend that you paginate the output to make the list\n more manageable. For more information, see Pagination.

\n

For more information about EBS volumes, see Amazon EBS volumes in the Amazon EBS User Guide.

\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", + "smithy.api#documentation": "

Describes the specified EBS volumes or all of your EBS volumes.

\n

If you are describing a long list of volumes, we recommend that you paginate the output to make the list\n more manageable. For more information, see Pagination.

\n

For more information about EBS volumes, see Amazon EBS volumes in the Amazon EBS User Guide.

\n \n

We strongly recommend using only paginated requests. Unpaginated requests are\n susceptible to throttling and timeouts.

\n
\n \n

The order of the elements in the response, including those within nested\n structures, might vary. Applications should not assume the elements appear in a\n particular order.

\n
", "smithy.api#examples": [ { "title": "To describe all volumes", @@ -43370,6 +43417,56 @@ "smithy.api#output": {} } }, + "com.amazonaws.ec2#DisableImageDeregistrationProtection": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#DisableImageDeregistrationProtectionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#DisableImageDeregistrationProtectionResult" + }, + "traits": { + "smithy.api#documentation": "

Disables deregistration protection for an AMI. When deregistration protection is disabled,\n the AMI can be deregistered.

\n

If you chose to include a 24-hour cooldown period when you enabled deregistration\n protection for the AMI, then, when you disable deregistration protection, you won’t\n immediately be able to deregister the AMI.

\n

For more information, see Protect an\n AMI from deregistration in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#DisableImageDeregistrationProtectionRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#DisableImageDeregistrationProtectionResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

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

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.ec2#DisableImageRequest": { "type": "structure", "members": { @@ -45654,6 +45751,46 @@ } } }, + "com.amazonaws.ec2#EkPubKeyFormat": { + "type": "enum", + "members": { + "der": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "der" + } + }, + "tpmt": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "tpmt" + } + } + } + }, + "com.amazonaws.ec2#EkPubKeyType": { + "type": "enum", + "members": { + "RSA_2048": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rsa-2048" + } + }, + "ECC_SEC_P384": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ecc-sec-p384" + } + } + } + }, + "com.amazonaws.ec2#EkPubKeyValue": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, "com.amazonaws.ec2#ElasticGpuAssociation": { "type": "structure", "members": { @@ -46763,6 +46900,62 @@ "smithy.api#output": {} } }, + "com.amazonaws.ec2#EnableImageDeregistrationProtection": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#EnableImageDeregistrationProtectionRequest" + }, + "output": { + "target": "com.amazonaws.ec2#EnableImageDeregistrationProtectionResult" + }, + "traits": { + "smithy.api#documentation": "

Enables deregistration protection for an AMI. When deregistration protection is enabled,\n the AMI can't be deregistered.

\n

To allow the AMI to be deregistered, you must first disable deregistration protection\n using DisableImageDeregistrationProtection.

\n

For more information, see Protect an\n AMI from deregistration in the Amazon EC2 User Guide.

" + } + }, + "com.amazonaws.ec2#EnableImageDeregistrationProtectionRequest": { + "type": "structure", + "members": { + "ImageId": { + "target": "com.amazonaws.ec2#ImageId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the AMI.

", + "smithy.api#required": {} + } + }, + "WithCooldown": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

If true, enforces deregistration protection for 24 hours after deregistration\n protection is disabled.

" + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\tDryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#EnableImageDeregistrationProtectionResult": { + "type": "structure", + "members": { + "Return": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "Return", + "smithy.api#documentation": "

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

", + "smithy.api#xmlName": "return" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.ec2#EnableImageRequest": { "type": "structure", "members": { @@ -51167,7 +51360,7 @@ "target": "com.amazonaws.ec2#GetConsoleScreenshotResult" }, "traits": { - "smithy.api#documentation": "

Retrieve a JPG-format screenshot of a running instance to help with\n troubleshooting.

\n

The returned content is Base64-encoded.

" + "smithy.api#documentation": "

Retrieve a JPG-format screenshot of a running instance to help with\n troubleshooting.

\n

The returned content is Base64-encoded.

\n

For more information, see Instance console output in the Amazon EC2 User Guide.

" } }, "com.amazonaws.ec2#GetConsoleScreenshotRequest": { @@ -51676,6 +51869,97 @@ "smithy.api#output": {} } }, + "com.amazonaws.ec2#GetInstanceTpmEkPub": { + "type": "operation", + "input": { + "target": "com.amazonaws.ec2#GetInstanceTpmEkPubRequest" + }, + "output": { + "target": "com.amazonaws.ec2#GetInstanceTpmEkPubResult" + }, + "traits": { + "smithy.api#documentation": "

Gets the public endorsement key associated with the Nitro Trusted \n Platform Module (NitroTPM) for the specified instance.

" + } + }, + "com.amazonaws.ec2#GetInstanceTpmEkPubRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The ID of the instance for which to get the public endorsement key.

", + "smithy.api#required": {}, + "smithy.api#xmlName": "InstanceId" + } + }, + "KeyType": { + "target": "com.amazonaws.ec2#EkPubKeyType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The required public endorsement key type.

", + "smithy.api#required": {} + } + }, + "KeyFormat": { + "target": "com.amazonaws.ec2#EkPubKeyFormat", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The required public endorsement key format. Specify der for a DER-encoded public \n key that is compatible with OpenSSL. Specify tpmt for a TPM 2.0 format that is \n compatible with tpm2-tools. The returned key is base64 encoded.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Specify this parameter to verify whether the request will succeed, without actually making the \n request. If the request will succeed, the response is DryRunOperation. Otherwise, \n the response is UnauthorizedOperation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ec2#GetInstanceTpmEkPubResult": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.ec2#InstanceId", + "traits": { + "aws.protocols#ec2QueryName": "InstanceId", + "smithy.api#documentation": "

The ID of the instance.

", + "smithy.api#xmlName": "instanceId" + } + }, + "KeyType": { + "target": "com.amazonaws.ec2#EkPubKeyType", + "traits": { + "aws.protocols#ec2QueryName": "KeyType", + "smithy.api#documentation": "

The public endorsement key type.

", + "smithy.api#xmlName": "keyType" + } + }, + "KeyFormat": { + "target": "com.amazonaws.ec2#EkPubKeyFormat", + "traits": { + "aws.protocols#ec2QueryName": "KeyFormat", + "smithy.api#documentation": "

The public endorsement key format.

", + "smithy.api#xmlName": "keyFormat" + } + }, + "KeyValue": { + "target": "com.amazonaws.ec2#EkPubKeyValue", + "traits": { + "aws.protocols#ec2QueryName": "KeyValue", + "smithy.api#documentation": "

The public endorsement key material.

", + "smithy.api#xmlName": "keyValue" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.ec2#GetInstanceTypesFromInstanceRequirements": { "type": "operation", "input": { @@ -55820,6 +56104,22 @@ "smithy.api#documentation": "

The ID of the instance that the AMI was created from if the AMI was created using CreateImage. This field only appears if the AMI was created using\n CreateImage.

", "smithy.api#xmlName": "sourceInstanceId" } + }, + "DeregistrationProtection": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "DeregistrationProtection", + "smithy.api#documentation": "

Indicates whether deregistration protection is enabled for the AMI.

", + "smithy.api#xmlName": "deregistrationProtection" + } + }, + "LastLaunchedTime": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "LastLaunchedTime", + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the AMI was last used to launch an EC2 instance. When the AMI is used\n to launch an instance, there is a 24-hour delay before that usage is reported.

\n \n

\n lastLaunchedTime data is available starting April 2017.

\n
", + "smithy.api#xmlName": "lastLaunchedTime" + } } }, "traits": { @@ -55932,6 +56232,14 @@ "smithy.api#documentation": "

If v2.0, it indicates that IMDSv2 is specified in the AMI. Instances launched\n from this AMI will have HttpTokens automatically set to required so\n that, by default, the instance requires that IMDSv2 is used when requesting instance metadata.\n In addition, HttpPutResponseHopLimit is set to 2. For more\n information, see Configure\n the AMI in the Amazon EC2 User Guide.

", "smithy.api#xmlName": "imdsSupport" } + }, + "DeregistrationProtection": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "DeregistrationProtection", + "smithy.api#documentation": "

Indicates whether deregistration protection is enabled for the AMI.

", + "smithy.api#xmlName": "deregistrationProtection" + } } }, "traits": { @@ -56012,6 +56320,12 @@ "traits": { "smithy.api#enumValue": "imdsSupport" } + }, + "deregistrationProtection": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deregistrationProtection" + } } } }, @@ -70943,7 +71257,7 @@ "DeviceIndex": { "target": "com.amazonaws.ec2#Integer", "traits": { - "smithy.api#documentation": "

The device index for the network interface attachment.

" + "smithy.api#documentation": "

The device index for the network interface attachment. Each network interface requires\n a device index. If you create a launch template that includes secondary network interfaces \n but not a primary network interface, then you must add a primary network interface as a \n launch parameter when you launch an instance from the template.

" } }, "Groups": { @@ -71420,24 +71734,24 @@ "LaunchTemplateId": { "target": "com.amazonaws.ec2#LaunchTemplateId", "traits": { - "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify the LaunchTemplateId or the\n LaunchTemplateName, but not both.

" + "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify either the launch template ID or the\n launch template name, but not both.

" } }, "LaunchTemplateName": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

The name of the launch template.

\n

You must specify the LaunchTemplateName or the\n LaunchTemplateId, but not both.

" + "smithy.api#documentation": "

The name of the launch template.

\n

You must specify either the launch template ID or the\n launch template name, but not both.

" } }, "Version": { "target": "com.amazonaws.ec2#String", "traits": { - "smithy.api#documentation": "

The launch template version number, $Latest, or\n $Default.

\n

If the value is $Latest, Amazon EC2 uses the latest version of the launch\n template.

\n

If the value is $Default, Amazon EC2 uses the default version of the\n launch template.

\n

Default: The default version of the launch template.

" + "smithy.api#documentation": "

The launch template version number, $Latest, or\n $Default.

\n

A value of $Latest uses the latest version of the launch template.

\n

A value of $Default uses the default version of the launch template.

\n

Default: The default version of the launch template.

" } } }, "traits": { - "smithy.api#documentation": "

The launch template to use. You must specify either the launch template ID or launch\n template name in the request, but not both.

" + "smithy.api#documentation": "

Describes the launch template to use.

" } }, "com.amazonaws.ec2#LaunchTemplateSpotMarketOptions": { @@ -75208,7 +75522,7 @@ "target": "com.amazonaws.ec2#ModifyInstanceMetadataDefaultsResult" }, "traits": { - "smithy.api#documentation": "

Modifies the default instance metadata service (IMDS) settings at the account level in\n the specified Amazon Web Services\u2028 Region.

\n \n

To remove a parameter's account-level default setting, specify\n no-preference. At instance launch, the value will come from the\n AMI, or from the launch parameter if specified. For more information, see Order of precedence for instance metadata options in the\n Amazon EC2 User Guide.

\n
" + "smithy.api#documentation": "

Modifies the default instance metadata service (IMDS) settings at the account level in\n the specified Amazon Web Services\u2028 Region.

\n \n

To remove a parameter's account-level default setting, specify\n no-preference. If an account-level setting is cleared with\n no-preference, then the instance launch considers the other\n instance metadata settings. For more information, see Order of precedence for instance metadata options in the\n Amazon EC2 User Guide.

\n
" } }, "com.amazonaws.ec2#ModifyInstanceMetadataDefaultsRequest": { @@ -75223,7 +75537,7 @@ "HttpPutResponseHopLimit": { "target": "com.amazonaws.ec2#BoxedInteger", "traits": { - "smithy.api#documentation": "

The maximum number of hops that the metadata token can travel.

\n

Minimum: 1\n

\n

Maximum: 64\n

" + "smithy.api#documentation": "

The maximum number of hops that the metadata token can travel. To indicate no\n preference, specify -1.

\n

Possible values: Integers from 1 to 64, and -1\n to indicate no preference

" } }, "HttpEndpoint": { @@ -75887,13 +76201,13 @@ "LaunchTemplateId": { "target": "com.amazonaws.ec2#LaunchTemplateId", "traits": { - "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify either the LaunchTemplateId or the\n LaunchTemplateName, but not both.

" + "smithy.api#documentation": "

The ID of the launch template.

\n

You must specify either the launch template ID or the\n launch template name, but not both.

" } }, "LaunchTemplateName": { "target": "com.amazonaws.ec2#LaunchTemplateName", "traits": { - "smithy.api#documentation": "

The name of the launch template.

\n

You must specify either the LaunchTemplateName or the\n LaunchTemplateId, but not both.

" + "smithy.api#documentation": "

The name of the launch template.

\n

You must specify either the launch template ID or the\n launch template name, but not both.

" } }, "DefaultVersion": { @@ -76205,6 +76519,12 @@ "traits": { "smithy.api#documentation": "

A connection tracking specification.

" } + }, + "AssociatePublicIpAddress": { + "target": "com.amazonaws.ec2#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether to assign a public IPv4 address to a network interface. \n This option can be enabled for any network interface but will only apply to the primary network interface (eth0).

" + } } }, "traits": { @@ -81132,6 +81452,12 @@ "traits": { "smithy.api#enumValue": "attachment" } + }, + "associatePublicIpAddress": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "associatePublicIpAddress" + } } } }, @@ -87493,7 +87819,7 @@ "NetworkInterfaces": { "target": "com.amazonaws.ec2#LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList", "traits": { - "smithy.api#documentation": "

One or more network interfaces. If you specify a network interface, you must specify\n any security groups and subnets as part of the network interface.

", + "smithy.api#documentation": "

The network interfaces for the instance.

", "smithy.api#xmlName": "NetworkInterface" } }, @@ -87575,14 +87901,14 @@ "SecurityGroupIds": { "target": "com.amazonaws.ec2#SecurityGroupIdStringList", "traits": { - "smithy.api#documentation": "

One or more security group IDs. You can create a security group using CreateSecurityGroup.

", + "smithy.api#documentation": "

The IDs of the security groups.

\n

If you specify a network interface, you must specify any security groups as part of \n the network interface instead of using this parameter.

", "smithy.api#xmlName": "SecurityGroupId" } }, "SecurityGroups": { "target": "com.amazonaws.ec2#SecurityGroupStringList", "traits": { - "smithy.api#documentation": "

One or more security group names. For a nondefault VPC, you must use security group\n IDs instead.

", + "smithy.api#documentation": "

The names of the security groups. For a nondefault VPC, you must use security group\n IDs instead.

\n

If you specify a network interface, you must specify any security groups as part of \n the network interface instead of using this parameter.

", "smithy.api#xmlName": "SecurityGroup" } }, @@ -91811,21 +92137,21 @@ "SecurityGroupIds": { "target": "com.amazonaws.ec2#SecurityGroupIdStringList", "traits": { - "smithy.api#documentation": "

The IDs of the security groups. You can create a security group using CreateSecurityGroup.

\n

If you specify a network interface, you must specify any security groups as part of\n the network interface.

", + "smithy.api#documentation": "

The IDs of the security groups. You can create a security group using CreateSecurityGroup.

\n

If you specify a network interface, you must specify any security groups as part of\n the network interface instead of using this parameter.

", "smithy.api#xmlName": "SecurityGroupId" } }, "SecurityGroups": { "target": "com.amazonaws.ec2#SecurityGroupStringList", "traits": { - "smithy.api#documentation": "

[Default VPC] The names of the security groups.

\n

If you specify a network interface, you must specify any security groups as part of\n the network interface.

\n

Default: Amazon EC2 uses the default security group.

", + "smithy.api#documentation": "

[Default VPC] The names of the security groups.

\n

If you specify a network interface, you must specify any security groups as part of\n the network interface instead of using this parameter.

\n

Default: Amazon EC2 uses the default security group.

", "smithy.api#xmlName": "SecurityGroup" } }, "SubnetId": { "target": "com.amazonaws.ec2#SubnetId", "traits": { - "smithy.api#documentation": "

The ID of the subnet to launch the instance into.

\n

If you specify a network interface, you must specify any subnets as part of the\n network interface.

" + "smithy.api#documentation": "

The ID of the subnet to launch the instance into.

\n

If you specify a network interface, you must specify any subnets as part of the\n network interface instead of using this parameter.

" } }, "UserData": { @@ -91895,7 +92221,7 @@ "target": "com.amazonaws.ec2#InstanceNetworkInterfaceSpecificationList", "traits": { "aws.protocols#ec2QueryName": "NetworkInterface", - "smithy.api#documentation": "

The network interfaces to associate with the instance. If you specify a network\n interface, you must specify any security groups and subnets as part of the network\n interface.

", + "smithy.api#documentation": "

The network interfaces to associate with the instance.

", "smithy.api#xmlName": "networkInterface" } }, @@ -91910,13 +92236,13 @@ "ElasticGpuSpecification": { "target": "com.amazonaws.ec2#ElasticGpuSpecifications", "traits": { - "smithy.api#documentation": "

Deprecated.

\n \n

Amazon Elastic Graphics reached end of life on January 8, 2024. For \n workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, \n G4dn, or G5 instances.

\n
" + "smithy.api#documentation": "

An elastic GPU to associate with the instance.

\n \n

Amazon Elastic Graphics reached end of life on January 8, 2024.

\n
" } }, "ElasticInferenceAccelerators": { "target": "com.amazonaws.ec2#ElasticInferenceAccelerators", "traits": { - "smithy.api#documentation": "

An elastic inference accelerator to associate with the instance. Elastic inference\n accelerators are a resource you can attach to your Amazon EC2 instances to accelerate\n your Deep Learning (DL) inference workloads.

\n

You cannot specify accelerators from different generations in the same request.

\n \n

Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon\n Elastic Inference (EI), and will help current customers migrate their workloads to\n options that offer better price and performance. After April 15, 2023, new customers\n will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker,\n Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during\n the past 30-day period are considered current customers and will be able to continue\n using the service.

\n
", + "smithy.api#documentation": "

An elastic inference accelerator to associate with the instance.

\n \n

Amazon Elastic Inference (EI) is no longer available to new customers. For more\n information, see Amazon Elastic Inference FAQs.

\n
", "smithy.api#xmlName": "ElasticInferenceAccelerator" } }, @@ -91930,7 +92256,7 @@ "LaunchTemplate": { "target": "com.amazonaws.ec2#LaunchTemplateSpecification", "traits": { - "smithy.api#documentation": "

The launch template to use to launch the instances. Any parameters that you specify in\n RunInstances override the same parameters in the launch template.\n You can specify either the name or ID of a launch template, but not both.

" + "smithy.api#documentation": "

The launch template. Any additional parameters that you specify for the new instance \n overwrite the corresponding parameters included in the launch template.

" } }, "InstanceMarketOptions": { @@ -93133,7 +93459,7 @@ "MaxResults": { "target": "com.amazonaws.ec2#TransitGatewayMaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of routes to return.

" + "smithy.api#documentation": "

The maximum number of routes to return. If a value is not provided, the default is\n 1000.

" } }, "DryRun": { @@ -95072,7 +95398,7 @@ "target": "com.amazonaws.ec2#GroupIdentifierList", "traits": { "aws.protocols#ec2QueryName": "GroupSet", - "smithy.api#documentation": "

The security groups.

", + "smithy.api#documentation": "

The security groups.

\n

If you specify a network interface, you must specify any security groups as part of\n the network interface instead of using this parameter.

", "smithy.api#xmlName": "groupSet" } }, @@ -95152,7 +95478,7 @@ "target": "com.amazonaws.ec2#InstanceNetworkInterfaceSpecificationList", "traits": { "aws.protocols#ec2QueryName": "NetworkInterfaceSet", - "smithy.api#documentation": "

One or more network interfaces. If you specify a network interface, you must specify \n subnet IDs and security group IDs using the network interface.

\n \n

\n SpotFleetLaunchSpecification currently does not support Elastic Fabric Adapter (EFA). To specify an EFA, you must use LaunchTemplateConfig.

\n
", + "smithy.api#documentation": "

The network interfaces.

\n \n

\n SpotFleetLaunchSpecification does not support Elastic Fabric Adapter (EFA). \n You must use LaunchTemplateConfig instead.

\n
", "smithy.api#xmlName": "networkInterfaceSet" } }, @@ -95184,7 +95510,7 @@ "target": "com.amazonaws.ec2#SubnetId", "traits": { "aws.protocols#ec2QueryName": "SubnetId", - "smithy.api#documentation": "

The IDs of the subnets in which to launch the instances. To specify multiple subnets, separate\n them using commas; for example, \"subnet-1234abcdeexample1, subnet-0987cdef6example2\".

", + "smithy.api#documentation": "

The IDs of the subnets in which to launch the instances. To specify multiple subnets, separate\n them using commas; for example, \"subnet-1234abcdeexample1, subnet-0987cdef6example2\".

\n

If you specify a network interface, you must specify any subnets as part of the\n network interface instead of using this parameter.

", "smithy.api#xmlName": "subnetId" } }, @@ -104696,7 +105022,7 @@ "target": "com.amazonaws.ec2#VolumeAttachmentList", "traits": { "aws.protocols#ec2QueryName": "AttachmentSet", - "smithy.api#documentation": "

Information about the volume attachments.

", + "smithy.api#documentation": "\n

This parameter is not returned by CreateVolume.

\n
\n

Information about the volume attachments.

", "smithy.api#xmlName": "attachmentSet" } }, @@ -104800,7 +105126,7 @@ "target": "com.amazonaws.ec2#Boolean", "traits": { "aws.protocols#ec2QueryName": "FastRestored", - "smithy.api#documentation": "

Indicates whether the volume was created using fast snapshot restore.

", + "smithy.api#documentation": "\n

This parameter is not returned by CreateVolume.

\n
\n

Indicates whether the volume was created using fast snapshot restore.

", "smithy.api#xmlName": "fastRestored" } }, @@ -104824,7 +105150,7 @@ "target": "com.amazonaws.ec2#SSEType", "traits": { "aws.protocols#ec2QueryName": "SseType", - "smithy.api#documentation": "

Reserved for future use.

", + "smithy.api#documentation": "\n

This parameter is not returned by CreateVolume.

\n
\n

Reserved for future use.

", "smithy.api#xmlName": "sseType" } } diff --git a/models/emr-containers.json b/models/emr-containers.json index dd5671fca8..a482c69707 100644 --- a/models/emr-containers.json +++ b/models/emr-containers.json @@ -39,6 +39,26 @@ "smithy.api#pattern": "^arn:(aws[a-zA-Z0-9-]*):acm:.+:(\\d{12}):certificate/.+$" } }, + "com.amazonaws.emrcontainers#AuthorizationConfiguration": { + "type": "structure", + "members": { + "lakeFormationConfiguration": { + "target": "com.amazonaws.emrcontainers#LakeFormationConfiguration", + "traits": { + "smithy.api#documentation": "

Lake Formation related configuration inputs for the security\n configuration.

" + } + }, + "encryptionConfiguration": { + "target": "com.amazonaws.emrcontainers#EncryptionConfiguration", + "traits": { + "smithy.api#documentation": "

Encryption-related configuration input for the security configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Authorization-related configuration inputs for the security configuration.

" + } + }, "com.amazonaws.emrcontainers#AwsChicagoWebService": { "type": "service", "version": "2020-10-01", @@ -52,6 +72,9 @@ { "target": "com.amazonaws.emrcontainers#CreateManagedEndpoint" }, + { + "target": "com.amazonaws.emrcontainers#CreateSecurityConfiguration" + }, { "target": "com.amazonaws.emrcontainers#CreateVirtualCluster" }, @@ -73,6 +96,9 @@ { "target": "com.amazonaws.emrcontainers#DescribeManagedEndpoint" }, + { + "target": "com.amazonaws.emrcontainers#DescribeSecurityConfiguration" + }, { "target": "com.amazonaws.emrcontainers#DescribeVirtualCluster" }, @@ -88,6 +114,9 @@ { "target": "com.amazonaws.emrcontainers#ListManagedEndpoints" }, + { + "target": "com.amazonaws.emrcontainers#ListSecurityConfigurations" + }, { "target": "com.amazonaws.emrcontainers#ListTagsForResource" }, @@ -1110,6 +1139,17 @@ "smithy.api#documentation": "

The entity representing certificate data generated for managed endpoint.

" } }, + "com.amazonaws.emrcontainers#CertificateProviderType": { + "type": "enum", + "members": { + "PEM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PEM" + } + } + } + }, "com.amazonaws.emrcontainers#ClientToken": { "type": "string", "traits": { @@ -1520,6 +1560,93 @@ "smithy.api#output": {} } }, + "com.amazonaws.emrcontainers#CreateSecurityConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#CreateSecurityConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#CreateSecurityConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a security configuration. Security configurations in Amazon EMR on EKS are\n templates for different security setups. You can use security configurations to configure\n the Lake Formation integration setup. You can also create a security configuration\n to re-use a security setup each time you create a virtual cluster.

", + "smithy.api#http": { + "method": "POST", + "uri": "/securityconfigurations", + "code": 200 + } + } + }, + "com.amazonaws.emrcontainers#CreateSecurityConfigurationRequest": { + "type": "structure", + "members": { + "clientToken": { + "target": "com.amazonaws.emrcontainers#ClientToken", + "traits": { + "smithy.api#documentation": "

The client idempotency token to use when creating the security configuration.

", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.emrcontainers#ResourceNameString", + "traits": { + "smithy.api#documentation": "

The name of the security configuration.

", + "smithy.api#required": {} + } + }, + "securityConfigurationData": { + "target": "com.amazonaws.emrcontainers#SecurityConfigurationData", + "traits": { + "smithy.api#documentation": "

Security configuration input for the request.

", + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.emrcontainers#TagMap", + "traits": { + "smithy.api#documentation": "

The tags to add to the security configuration.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.emrcontainers#CreateSecurityConfigurationResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

The ID of the security configuration.

" + } + }, + "name": { + "target": "com.amazonaws.emrcontainers#ResourceNameString", + "traits": { + "smithy.api#documentation": "

The name of the security configuration.

" + } + }, + "arn": { + "target": "com.amazonaws.emrcontainers#SecurityConfigurationArn", + "traits": { + "smithy.api#documentation": "

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

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.emrcontainers#CreateVirtualCluster": { "type": "operation", "input": { @@ -1581,6 +1708,12 @@ "traits": { "smithy.api#documentation": "

The tags assigned to the virtual cluster.

" } + }, + "securityConfigurationId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

The ID of the security configuration.

" + } } }, "traits": { @@ -2012,6 +2145,64 @@ "smithy.api#output": {} } }, + "com.amazonaws.emrcontainers#DescribeSecurityConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#DescribeSecurityConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#DescribeSecurityConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Displays detailed information about a specified security configuration. Security\n configurations in Amazon EMR on EKS are templates for different security setups. You\n can use security configurations to configure the Lake Formation integration setup.\n You can also create a security configuration to re-use a security setup each time you\n create a virtual cluster.

", + "smithy.api#http": { + "method": "GET", + "uri": "/securityconfigurations/{id}", + "code": 200 + } + } + }, + "com.amazonaws.emrcontainers#DescribeSecurityConfigurationRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

The ID of the security configuration.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.emrcontainers#DescribeSecurityConfigurationResponse": { + "type": "structure", + "members": { + "securityConfiguration": { + "target": "com.amazonaws.emrcontainers#SecurityConfiguration", + "traits": { + "smithy.api#documentation": "

Details of the security configuration.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.emrcontainers#DescribeVirtualCluster": { "type": "operation", "input": { @@ -2097,6 +2288,20 @@ "smithy.api#documentation": "

The information about the Amazon EKS cluster.

" } }, + "com.amazonaws.emrcontainers#EncryptionConfiguration": { + "type": "structure", + "members": { + "inTransitEncryptionConfiguration": { + "target": "com.amazonaws.emrcontainers#InTransitEncryptionConfiguration", + "traits": { + "smithy.api#documentation": "

In-transit encryption-related input for the security configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configurations related to encryption for the security configuration.

" + } + }, "com.amazonaws.emrcontainers#Endpoint": { "type": "structure", "members": { @@ -2482,6 +2687,20 @@ "smithy.api#pattern": "^arn:(aws[a-zA-Z0-9-]*):iam::(\\d{12})?:(role((\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F))[\\w+=,.@-]+)$" } }, + "com.amazonaws.emrcontainers#InTransitEncryptionConfiguration": { + "type": "structure", + "members": { + "tlsCertificateConfiguration": { + "target": "com.amazonaws.emrcontainers#TLSCertificateConfiguration", + "traits": { + "smithy.api#documentation": "

TLS certificate-related configuration input for the security configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configurations related to in-transit encryption for the security configuration.

" + } + }, "com.amazonaws.emrcontainers#InternalServerException": { "type": "structure", "members": { @@ -2854,6 +3073,32 @@ "smithy.api#pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" } }, + "com.amazonaws.emrcontainers#LakeFormationConfiguration": { + "type": "structure", + "members": { + "authorizedSessionTagValue": { + "target": "com.amazonaws.emrcontainers#SessionTagValue", + "traits": { + "smithy.api#documentation": "

The session tag to authorize Amazon EMR on EKS for API calls to Lake Formation.

" + } + }, + "secureNamespaceInfo": { + "target": "com.amazonaws.emrcontainers#SecureNamespaceInfo", + "traits": { + "smithy.api#documentation": "

The namespace input of the system job.

" + } + }, + "queryEngineRoleArn": { + "target": "com.amazonaws.emrcontainers#IAMRoleArn", + "traits": { + "smithy.api#documentation": "

The query engine IAM role ARN that is tied to the secure Spark job. The\n QueryEngine role assumes the JobExecutionRole to execute all\n the Lake Formation calls.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Lake Formation related configuration inputs for the security\n configuration.

" + } + }, "com.amazonaws.emrcontainers#ListJobRuns": { "type": "operation", "input": { @@ -3159,6 +3404,93 @@ "smithy.api#output": {} } }, + "com.amazonaws.emrcontainers#ListSecurityConfigurations": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#ListSecurityConfigurationsRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#ListSecurityConfigurationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists security configurations based on a set of parameters. Security configurations in\n Amazon EMR on EKS are templates for different security setups. You can use security\n configurations to configure the Lake Formation integration setup. You can also\n create a security configuration to re-use a security setup each time you create a virtual\n cluster.

", + "smithy.api#http": { + "method": "GET", + "uri": "/securityconfigurations", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "securityConfigurations", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.emrcontainers#ListSecurityConfigurationsRequest": { + "type": "structure", + "members": { + "createdAfter": { + "target": "com.amazonaws.emrcontainers#Date", + "traits": { + "smithy.api#documentation": "

The date and time after which the security configuration was created.

", + "smithy.api#httpQuery": "createdAfter" + } + }, + "createdBefore": { + "target": "com.amazonaws.emrcontainers#Date", + "traits": { + "smithy.api#documentation": "

The date and time before which the security configuration was created.

", + "smithy.api#httpQuery": "createdBefore" + } + }, + "maxResults": { + "target": "com.amazonaws.emrcontainers#JavaInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of security configurations the operation can list.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.emrcontainers#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of security configurations to return.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.emrcontainers#ListSecurityConfigurationsResponse": { + "type": "structure", + "members": { + "securityConfigurations": { + "target": "com.amazonaws.emrcontainers#SecurityConfigurations", + "traits": { + "smithy.api#documentation": "

The list of returned security configurations.

" + } + }, + "nextToken": { + "target": "com.amazonaws.emrcontainers#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of security configurations to return.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.emrcontainers#ListTagsForResource": { "type": "operation", "input": { @@ -3651,6 +3983,116 @@ "smithy.api#documentation": "

Amazon S3 configuration for monitoring log publishing. You can configure your jobs to\n send log information to Amazon S3.

" } }, + "com.amazonaws.emrcontainers#SecretsManagerArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 2048 + }, + "smithy.api#pattern": "^arn:(aws[a-zA-Z0-9-]*):secretsmanager:.+:(\\d{12}):secret:[0-9a-zA-Z/_+=.@-]+$" + } + }, + "com.amazonaws.emrcontainers#SecureNamespaceInfo": { + "type": "structure", + "members": { + "clusterId": { + "target": "com.amazonaws.emrcontainers#ClusterId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon EKS cluster where Amazon EMR on EKS jobs run.

" + } + }, + "namespace": { + "target": "com.amazonaws.emrcontainers#KubernetesNamespace", + "traits": { + "smithy.api#documentation": "

The namespace of the Amazon EKS cluster where the system jobs run.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Namespace inputs for the system job.

" + } + }, + "com.amazonaws.emrcontainers#SecurityConfiguration": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

The ID of the security configuration.

" + } + }, + "name": { + "target": "com.amazonaws.emrcontainers#ResourceNameString", + "traits": { + "smithy.api#documentation": "

The name of the security configuration.

" + } + }, + "arn": { + "target": "com.amazonaws.emrcontainers#SecurityConfigurationArn", + "traits": { + "smithy.api#documentation": "

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

" + } + }, + "createdAt": { + "target": "com.amazonaws.emrcontainers#Date", + "traits": { + "smithy.api#documentation": "

The date and time that the job run was created.

" + } + }, + "createdBy": { + "target": "com.amazonaws.emrcontainers#RequestIdentityUserArn", + "traits": { + "smithy.api#documentation": "

The user who created the job run.

" + } + }, + "securityConfigurationData": { + "target": "com.amazonaws.emrcontainers#SecurityConfigurationData", + "traits": { + "smithy.api#documentation": "

Security configuration inputs for the request.

" + } + }, + "tags": { + "target": "com.amazonaws.emrcontainers#TagMap", + "traits": { + "smithy.api#documentation": "

The tags to assign to the security configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Inputs related to the security configuration. Security configurations in Amazon EMR on EKS are templates for different security setups. You can use security\n configurations to configure the Lake Formation integration setup. You can also\n create a security configuration to re-use a security setup each time you create a virtual\n cluster.

" + } + }, + "com.amazonaws.emrcontainers#SecurityConfigurationArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 60, + "max": 1024 + }, + "smithy.api#pattern": "^arn:(aws[a-zA-Z0-9-]*):emr-containers:.+:(\\d{12}):\\/securityconfigurations\\/[0-9a-zA-Z]+$" + } + }, + "com.amazonaws.emrcontainers#SecurityConfigurationData": { + "type": "structure", + "members": { + "authorizationConfiguration": { + "target": "com.amazonaws.emrcontainers#AuthorizationConfiguration", + "traits": { + "smithy.api#documentation": "

Authorization-related configuration input for the security configuration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configurations related to the security configuration for the request.

" + } + }, + "com.amazonaws.emrcontainers#SecurityConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.emrcontainers#SecurityConfiguration" + } + }, "com.amazonaws.emrcontainers#SensitivePropertiesMap": { "type": "map", "key": { @@ -3667,6 +4109,16 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.emrcontainers#SessionTagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^[\\.\\-_/#A-Za-z0-9 ]+$" + } + }, "com.amazonaws.emrcontainers#SparkSqlJobDriver": { "type": "structure", "members": { @@ -3930,6 +4382,32 @@ "target": "com.amazonaws.emrcontainers#String256" } }, + "com.amazonaws.emrcontainers#TLSCertificateConfiguration": { + "type": "structure", + "members": { + "certificateProviderType": { + "target": "com.amazonaws.emrcontainers#CertificateProviderType", + "traits": { + "smithy.api#documentation": "

The TLS certificate type. Acceptable values: PEM or\n Custom.

" + } + }, + "publicCertificateSecretArn": { + "target": "com.amazonaws.emrcontainers#SecretsManagerArn", + "traits": { + "smithy.api#documentation": "

Secrets Manager ARN that contains the public TLS certificate contents, used for\n communication between the user job and the system job.

" + } + }, + "privateCertificateSecretArn": { + "target": "com.amazonaws.emrcontainers#SecretsManagerArn", + "traits": { + "smithy.api#documentation": "

Secrets Manager ARN that contains the private TLS certificate contents, used for\n communication between the user job and the system job.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configurations related to the TLS certificate for the security configuration.

" + } + }, "com.amazonaws.emrcontainers#TagKeyList": { "type": "list", "member": { @@ -4238,6 +4716,12 @@ "traits": { "smithy.api#documentation": "

The assigned tags of the virtual cluster.

" } + }, + "securityConfigurationId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

The ID of the security configuration.

" + } } }, "traits": { diff --git a/models/emr-serverless.json b/models/emr-serverless.json index a4490ed4b3..1b1c7af60f 100644 --- a/models/emr-serverless.json +++ b/models/emr-serverless.json @@ -481,7 +481,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -524,7 +523,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -537,7 +537,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -551,7 +550,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -574,7 +572,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -609,7 +606,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -620,14 +616,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -641,14 +639,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -657,11 +653,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -672,14 +668,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -693,7 +691,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -713,7 +710,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -724,14 +720,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -742,9 +740,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -1301,6 +1301,26 @@ "smithy.api#documentation": "

A configuration specification to be used to override existing configurations.

" } }, + "com.amazonaws.emrserverless#ConfigurationPropertyKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^.*\\S.*$" + } + }, + "com.amazonaws.emrserverless#ConfigurationPropertyValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "^.*\\S.*$" + } + }, "com.amazonaws.emrserverless#ConflictException": { "type": "structure", "members": { @@ -1542,6 +1562,12 @@ "smithy.api#pattern": "^[1-9][0-9]*(\\s)?(GB|gb|gB|Gb)$" } }, + "com.amazonaws.emrserverless#DiskType": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(SHUFFLE_OPTIMIZED|[Ss]huffle_[Oo]ptimized|STANDARD|[Ss]tandard)$" + } + }, "com.amazonaws.emrserverless#Duration": { "type": "long", "traits": { @@ -2670,6 +2696,12 @@ "traits": { "smithy.api#documentation": "

The Amazon CloudWatch configuration for monitoring logs. You can configure your jobs\n to send log information to CloudWatch.

" } + }, + "prometheusMonitoringConfiguration": { + "target": "com.amazonaws.emrserverless#PrometheusMonitoringConfiguration", + "traits": { + "smithy.api#documentation": "

The monitoring configuration object you can configure to send metrics to Amazon Managed Service for Prometheus for a job run.

" + } } }, "traits": { @@ -2706,6 +2738,30 @@ "smithy.api#pattern": "^[A-Za-z0-9_=-]+$" } }, + "com.amazonaws.emrserverless#PrometheusMonitoringConfiguration": { + "type": "structure", + "members": { + "remoteWriteUrl": { + "target": "com.amazonaws.emrserverless#PrometheusUrlString", + "traits": { + "smithy.api#documentation": "

The remote write URL in the Amazon Managed Service for Prometheus workspace to send metrics to.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The monitoring configuration object you can configure to send metrics to Amazon Managed Service for Prometheus for a job run.

" + } + }, + "com.amazonaws.emrserverless#PrometheusUrlString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10280 + }, + "smithy.api#pattern": "^https://aps-workspaces.([a-z]{2}-[a-z-]{1,20}-[1-9]).amazonaws(.[0-9A-Za-z]{2,4})+/workspaces/[-_.0-9A-Za-z]{1,100}/api/v1/remote_write$" + } + }, "com.amazonaws.emrserverless#Query": { "type": "string", "traits": { @@ -2834,10 +2890,10 @@ "com.amazonaws.emrserverless#SensitivePropertiesMap": { "type": "map", "key": { - "target": "com.amazonaws.emrserverless#String1024" + "target": "com.amazonaws.emrserverless#ConfigurationPropertyKey" }, "value": { - "target": "com.amazonaws.emrserverless#String1024" + "target": "com.amazonaws.emrserverless#ConfigurationPropertyValue" }, "traits": { "smithy.api#length": { @@ -3525,6 +3581,12 @@ "traits": { "smithy.api#documentation": "

The disk requirements for every worker instance of the worker type.

" } + }, + "diskType": { + "target": "com.amazonaws.emrserverless#DiskType", + "traits": { + "smithy.api#documentation": "

The disk type for every worker instance of the work type. Shuffle optimized disks have higher performance \n characteristics and are better for shuffle heavy workloads. Default is STANDARD.

" + } } }, "traits": { diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 8fb3f59ff1..18e52890cd 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -2640,25 +2640,45 @@ "bedrock" : { "endpoints" : { "ap-northeast-1" : { }, + "ap-south-1" : { }, "ap-southeast-1" : { }, + "ap-southeast-2" : { }, "bedrock-ap-northeast-1" : { "credentialScope" : { "region" : "ap-northeast-1" }, "hostname" : "bedrock.ap-northeast-1.amazonaws.com" }, + "bedrock-ap-south-1" : { + "credentialScope" : { + "region" : "ap-south-1" + }, + "hostname" : "bedrock.ap-south-1.amazonaws.com" + }, "bedrock-ap-southeast-1" : { "credentialScope" : { "region" : "ap-southeast-1" }, "hostname" : "bedrock.ap-southeast-1.amazonaws.com" }, + "bedrock-ap-southeast-2" : { + "credentialScope" : { + "region" : "ap-southeast-2" + }, + "hostname" : "bedrock.ap-southeast-2.amazonaws.com" + }, "bedrock-eu-central-1" : { "credentialScope" : { "region" : "eu-central-1" }, "hostname" : "bedrock.eu-central-1.amazonaws.com" }, + "bedrock-eu-west-1" : { + "credentialScope" : { + "region" : "eu-west-1" + }, + "hostname" : "bedrock.eu-west-1.amazonaws.com" + }, "bedrock-eu-west-3" : { "credentialScope" : { "region" : "eu-west-3" @@ -2683,18 +2703,36 @@ }, "hostname" : "bedrock-runtime.ap-northeast-1.amazonaws.com" }, + "bedrock-runtime-ap-south-1" : { + "credentialScope" : { + "region" : "ap-south-1" + }, + "hostname" : "bedrock-runtime.ap-south-1.amazonaws.com" + }, "bedrock-runtime-ap-southeast-1" : { "credentialScope" : { "region" : "ap-southeast-1" }, "hostname" : "bedrock-runtime.ap-southeast-1.amazonaws.com" }, + "bedrock-runtime-ap-southeast-2" : { + "credentialScope" : { + "region" : "ap-southeast-2" + }, + "hostname" : "bedrock-runtime.ap-southeast-2.amazonaws.com" + }, "bedrock-runtime-eu-central-1" : { "credentialScope" : { "region" : "eu-central-1" }, "hostname" : "bedrock-runtime.eu-central-1.amazonaws.com" }, + "bedrock-runtime-eu-west-1" : { + "credentialScope" : { + "region" : "eu-west-1" + }, + "hostname" : "bedrock-runtime.eu-west-1.amazonaws.com" + }, "bedrock-runtime-eu-west-3" : { "credentialScope" : { "region" : "eu-west-3" @@ -2738,6 +2776,7 @@ "hostname" : "bedrock.us-west-2.amazonaws.com" }, "eu-central-1" : { }, + "eu-west-1" : { }, "eu-west-3" : { }, "us-east-1" : { }, "us-west-2" : { } @@ -3750,6 +3789,7 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, @@ -3759,6 +3799,7 @@ "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -3827,6 +3868,7 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, @@ -3836,6 +3878,7 @@ "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -8150,6 +8193,12 @@ "tags" : [ "fips" ] } ] }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "fsx-fips.ca-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-central-1" : { }, "eu-central-2" : { }, "eu-north-1" : { }, @@ -8165,6 +8214,13 @@ "deprecated" : true, "hostname" : "fsx-fips.ca-central-1.amazonaws.com" }, + "fips-ca-west-1" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "deprecated" : true, + "hostname" : "fsx-fips.ca-west-1.amazonaws.com" + }, "fips-prod-ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -8172,6 +8228,13 @@ "deprecated" : true, "hostname" : "fsx-fips.ca-central-1.amazonaws.com" }, + "fips-prod-ca-west-1" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "deprecated" : true, + "hostname" : "fsx-fips.ca-west-1.amazonaws.com" + }, "fips-prod-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -8241,6 +8304,16 @@ "tags" : [ "fips" ] } ] }, + "prod-ca-west-1" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "deprecated" : true, + "variants" : [ { + "hostname" : "fsx-fips.ca-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "prod-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -9953,6 +10026,12 @@ "tags" : [ "fips" ] } ] }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "kafka-fips.ca-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-central-1" : { }, "eu-central-2" : { }, "eu-north-1" : { }, @@ -9968,6 +10047,13 @@ "deprecated" : true, "hostname" : "kafka-fips.ca-central-1.amazonaws.com" }, + "fips-ca-west-1" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "deprecated" : true, + "hostname" : "kafka-fips.ca-west-1.amazonaws.com" + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -14750,19 +14836,29 @@ }, "resource-explorer-2" : { "endpoints" : { + "af-south-1" : { }, + "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, + "ap-southeast-4" : { }, "ca-central-1" : { }, + "ca-west-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, + "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "il-central-1" : { }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { }, @@ -15025,16 +15121,21 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, + "ap-southeast-4" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { }, @@ -15506,6 +15607,28 @@ } ] }, "endpoints" : { + "af-south-1" : { + "credentialScope" : { + "region" : "af-south-1" + }, + "hostname" : "s3-control.af-south-1.amazonaws.com", + "signatureVersions" : [ "s3v4" ], + "variants" : [ { + "hostname" : "s3-control.dualstack.af-south-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-east-1" : { + "credentialScope" : { + "region" : "ap-east-1" + }, + "hostname" : "s3-control.ap-east-1.amazonaws.com", + "signatureVersions" : [ "s3v4" ], + "variants" : [ { + "hostname" : "s3-control.dualstack.ap-east-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "ap-northeast-1" : { "credentialScope" : { "region" : "ap-northeast-1" @@ -15550,6 +15673,17 @@ "tags" : [ "dualstack" ] } ] }, + "ap-south-2" : { + "credentialScope" : { + "region" : "ap-south-2" + }, + "hostname" : "s3-control.ap-south-2.amazonaws.com", + "signatureVersions" : [ "s3v4" ], + "variants" : [ { + "hostname" : "s3-control.dualstack.ap-south-2.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "ap-southeast-1" : { "credentialScope" : { "region" : "ap-southeast-1" @@ -15572,6 +15706,28 @@ "tags" : [ "dualstack" ] } ] }, + "ap-southeast-3" : { + "credentialScope" : { + "region" : "ap-southeast-3" + }, + "hostname" : "s3-control.ap-southeast-3.amazonaws.com", + "signatureVersions" : [ "s3v4" ], + "variants" : [ { + "hostname" : "s3-control.dualstack.ap-southeast-3.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-4" : { + "credentialScope" : { + "region" : "ap-southeast-4" + }, + "hostname" : "s3-control.ap-southeast-4.amazonaws.com", + "signatureVersions" : [ "s3v4" ], + "variants" : [ { + "hostname" : "s3-control.dualstack.ap-southeast-4.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -15608,6 +15764,17 @@ "tags" : [ "dualstack" ] } ] }, + "eu-central-2" : { + "credentialScope" : { + "region" : "eu-central-2" + }, + "hostname" : "s3-control.eu-central-2.amazonaws.com", + "signatureVersions" : [ "s3v4" ], + "variants" : [ { + "hostname" : "s3-control.dualstack.eu-central-2.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "eu-north-1" : { "credentialScope" : { "region" : "eu-north-1" @@ -15619,6 +15786,28 @@ "tags" : [ "dualstack" ] } ] }, + "eu-south-1" : { + "credentialScope" : { + "region" : "eu-south-1" + }, + "hostname" : "s3-control.eu-south-1.amazonaws.com", + "signatureVersions" : [ "s3v4" ], + "variants" : [ { + "hostname" : "s3-control.dualstack.eu-south-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-2" : { + "credentialScope" : { + "region" : "eu-south-2" + }, + "hostname" : "s3-control.eu-south-2.amazonaws.com", + "signatureVersions" : [ "s3v4" ], + "variants" : [ { + "hostname" : "s3-control.dualstack.eu-south-2.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "eu-west-1" : { "credentialScope" : { "region" : "eu-west-1" @@ -15652,6 +15841,39 @@ "tags" : [ "dualstack" ] } ] }, + "il-central-1" : { + "credentialScope" : { + "region" : "il-central-1" + }, + "hostname" : "s3-control.il-central-1.amazonaws.com", + "signatureVersions" : [ "s3v4" ], + "variants" : [ { + "hostname" : "s3-control.dualstack.il-central-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "me-central-1" : { + "credentialScope" : { + "region" : "me-central-1" + }, + "hostname" : "s3-control.me-central-1.amazonaws.com", + "signatureVersions" : [ "s3v4" ], + "variants" : [ { + "hostname" : "s3-control.dualstack.me-central-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "me-south-1" : { + "credentialScope" : { + "region" : "me-south-1" + }, + "hostname" : "s3-control.me-south-1.amazonaws.com", + "signatureVersions" : [ "s3v4" ], + "variants" : [ { + "hostname" : "s3-control.dualstack.me-south-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "sa-east-1" : { "credentialScope" : { "region" : "sa-east-1" @@ -16403,16 +16625,60 @@ "protocols" : [ "https" ] }, "us-east-1" : { - "protocols" : [ "https" ] + "protocols" : [ "https" ], + "variants" : [ { + "hostname" : "serverlessrepo-fips.us-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-east-1-fips" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "deprecated" : true, + "hostname" : "serverlessrepo-fips.us-east-1.amazonaws.com" }, "us-east-2" : { - "protocols" : [ "https" ] + "protocols" : [ "https" ], + "variants" : [ { + "hostname" : "serverlessrepo-fips.us-east-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-east-2-fips" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "deprecated" : true, + "hostname" : "serverlessrepo-fips.us-east-2.amazonaws.com" }, "us-west-1" : { - "protocols" : [ "https" ] + "protocols" : [ "https" ], + "variants" : [ { + "hostname" : "serverlessrepo-fips.us-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-1-fips" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "deprecated" : true, + "hostname" : "serverlessrepo-fips.us-west-1.amazonaws.com" }, "us-west-2" : { - "protocols" : [ "https" ] + "protocols" : [ "https" ], + "variants" : [ { + "hostname" : "serverlessrepo-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-2-fips" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "deprecated" : true, + "hostname" : "serverlessrepo-fips.us-west-2.amazonaws.com" } } }, @@ -17480,6 +17746,7 @@ "deprecated" : true, "hostname" : "snowball-fips.us-west-2.amazonaws.com" }, + "il-central-1" : { }, "me-central-1" : { }, "sa-east-1" : { "variants" : [ { @@ -18883,6 +19150,7 @@ "tags" : [ "fips" ] } ] }, + "ca-west-1" : { }, "eu-central-1" : { }, "eu-central-2" : { }, "eu-north-1" : { }, @@ -19034,6 +19302,12 @@ "tags" : [ "fips" ] } ] }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "verifiedpermissions-fips.ca-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-central-1" : { }, "eu-central-2" : { }, "eu-north-1" : { }, @@ -19049,6 +19323,13 @@ "deprecated" : true, "hostname" : "verifiedpermissions-fips.ca-central-1.amazonaws.com" }, + "fips-ca-west-1" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "deprecated" : true, + "hostname" : "verifiedpermissions-fips.ca-west-1.amazonaws.com" + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -19077,6 +19358,7 @@ "deprecated" : true, "hostname" : "verifiedpermissions-fips.us-west-2.amazonaws.com" }, + "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, @@ -19214,6 +19496,7 @@ "eu-north-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, + "sa-east-1" : { }, "us-east-1" : { }, "us-east-2" : { }, "us-west-2" : { } @@ -19861,6 +20144,16 @@ "tags" : [ "fips" ] } ] }, + "ca-west-1" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "hostname" : "wafv2.ca-west-1.amazonaws.com", + "variants" : [ { + "hostname" : "wafv2-fips.ca-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-central-1" : { "credentialScope" : { "region" : "eu-central-1" @@ -20025,6 +20318,13 @@ "deprecated" : true, "hostname" : "wafv2-fips.ca-central-1.amazonaws.com" }, + "fips-ca-west-1" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "deprecated" : true, + "hostname" : "wafv2-fips.ca-west-1.amazonaws.com" + }, "fips-eu-central-1" : { "credentialScope" : { "region" : "eu-central-1" @@ -21031,6 +21331,17 @@ "cn-northwest-1" : { } } }, + "entitlement.marketplace" : { + "endpoints" : { + "cn-northwest-1" : { + "credentialScope" : { + "region" : "cn-northwest-1" + }, + "hostname" : "entitlement-marketplace.cn-northwest-1.amazonaws.com.cn", + "protocols" : [ "https" ] + } + } + }, "es" : { "endpoints" : { "cn-north-1" : { @@ -21329,7 +21640,7 @@ "credentialScope" : { "region" : "cn-northwest-1" }, - "hostname" : "subscribe.mediaconvert.cn-northwest-1.amazonaws.com.cn" + "hostname" : "mediaconvert.cn-northwest-1.amazonaws.com.cn" } } }, @@ -22509,9 +22820,29 @@ }, "endpoints" : { "us-gov-east-1" : { + "hostname" : "autoscaling-plans.us-gov-east-1.amazonaws.com", + "protocols" : [ "http", "https" ], + "variants" : [ { + "hostname" : "autoscaling-plans.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-east-1-fips" : { + "deprecated" : true, + "hostname" : "autoscaling-plans.us-gov-east-1.amazonaws.com", "protocols" : [ "http", "https" ] }, "us-gov-west-1" : { + "hostname" : "autoscaling-plans.us-gov-west-1.amazonaws.com", + "protocols" : [ "http", "https" ], + "variants" : [ { + "hostname" : "autoscaling-plans.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-west-1-fips" : { + "deprecated" : true, + "hostname" : "autoscaling-plans.us-gov-west-1.amazonaws.com", "protocols" : [ "http", "https" ] } } @@ -23036,8 +23367,32 @@ }, "controltower" : { "endpoints" : { - "us-gov-east-1" : { }, - "us-gov-west-1" : { } + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "controltower-fips.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-east-1-fips" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "deprecated" : true, + "hostname" : "controltower-fips.us-gov-east-1.amazonaws.com" + }, + "us-gov-west-1" : { + "variants" : [ { + "hostname" : "controltower-fips.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-west-1-fips" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "deprecated" : true, + "hostname" : "controltower-fips.us-gov-west-1.amazonaws.com" + } } }, "data-ats.iot" : { @@ -23714,6 +24069,13 @@ }, "email" : { "endpoints" : { + "fips-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "deprecated" : true, + "hostname" : "email-fips.us-gov-east-1.amazonaws.com" + }, "fips-us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" @@ -23721,6 +24083,12 @@ "deprecated" : true, "hostname" : "email-fips.us-gov-west-1.amazonaws.com" }, + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "email-fips.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "us-gov-west-1" : { "variants" : [ { "hostname" : "email-fips.us-gov-west-1.amazonaws.com", @@ -24741,6 +25109,12 @@ "us-gov-west-1" : { } } }, + "license-manager-user-subscriptions" : { + "endpoints" : { + "us-gov-east-1" : { }, + "us-gov-west-1" : { } + } + }, "logs" : { "endpoints" : { "fips-us-gov-east-1" : { @@ -26637,6 +27011,36 @@ } } }, + "verifiedpermissions" : { + "endpoints" : { + "fips-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "deprecated" : true, + "hostname" : "verifiedpermissions-fips.us-gov-east-1.amazonaws.com" + }, + "fips-us-gov-west-1" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "deprecated" : true, + "hostname" : "verifiedpermissions-fips.us-gov-west-1.amazonaws.com" + }, + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "verifiedpermissions-fips.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-west-1" : { + "variants" : [ { + "hostname" : "verifiedpermissions-fips.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + } + } + }, "waf-regional" : { "endpoints" : { "fips-us-gov-east-1" : { @@ -27536,6 +27940,64 @@ } } }, + "s3-control" : { + "defaults" : { + "protocols" : [ "https" ], + "signatureVersions" : [ "s3v4" ] + }, + "endpoints" : { + "us-iso-east-1" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "hostname" : "s3-control.us-iso-east-1.c2s.ic.gov", + "signatureVersions" : [ "s3v4" ], + "variants" : [ { + "hostname" : "s3-control-fips.dualstack.us-iso-east-1.c2s.ic.gov", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "s3-control-fips.us-iso-east-1.c2s.ic.gov", + "tags" : [ "fips" ] + }, { + "hostname" : "s3-control.dualstack.us-iso-east-1.c2s.ic.gov", + "tags" : [ "dualstack" ] + } ] + }, + "us-iso-east-1-fips" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "deprecated" : true, + "hostname" : "s3-control-fips.us-iso-east-1.c2s.ic.gov", + "signatureVersions" : [ "s3v4" ] + }, + "us-iso-west-1" : { + "credentialScope" : { + "region" : "us-iso-west-1" + }, + "hostname" : "s3-control.us-iso-west-1.c2s.ic.gov", + "signatureVersions" : [ "s3v4" ], + "variants" : [ { + "hostname" : "s3-control-fips.dualstack.us-iso-west-1.c2s.ic.gov", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "s3-control-fips.us-iso-west-1.c2s.ic.gov", + "tags" : [ "fips" ] + }, { + "hostname" : "s3-control.dualstack.us-iso-west-1.c2s.ic.gov", + "tags" : [ "dualstack" ] + } ] + }, + "us-iso-west-1-fips" : { + "credentialScope" : { + "region" : "us-iso-west-1" + }, + "deprecated" : true, + "hostname" : "s3-control-fips.us-iso-west-1.c2s.ic.gov", + "signatureVersions" : [ "s3v4" ] + } + } + }, "s3-outposts" : { "endpoints" : { "fips-us-iso-east-1" : { @@ -27556,7 +28018,8 @@ }, "snowball" : { "endpoints" : { - "us-iso-east-1" : { } + "us-iso-east-1" : { }, + "us-iso-west-1" : { } } }, "sns" : { @@ -27913,6 +28376,11 @@ "us-isob-east-1" : { } } }, + "firehose" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, "glacier" : { "endpoints" : { "us-isob-east-1" : { } @@ -28150,6 +28618,39 @@ } } }, + "s3-control" : { + "defaults" : { + "protocols" : [ "https" ], + "signatureVersions" : [ "s3v4" ] + }, + "endpoints" : { + "us-isob-east-1" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "hostname" : "s3-control.us-isob-east-1.sc2s.sgov.gov", + "signatureVersions" : [ "s3v4" ], + "variants" : [ { + "hostname" : "s3-control-fips.dualstack.us-isob-east-1.sc2s.sgov.gov", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "s3-control-fips.us-isob-east-1.sc2s.sgov.gov", + "tags" : [ "fips" ] + }, { + "hostname" : "s3-control.dualstack.us-isob-east-1.sc2s.sgov.gov", + "tags" : [ "dualstack" ] + } ] + }, + "us-isob-east-1-fips" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "deprecated" : true, + "hostname" : "s3-control-fips.us-isob-east-1.sc2s.sgov.gov", + "signatureVersions" : [ "s3v4" ] + } + } + }, "s3-outposts" : { "endpoints" : { "fips-us-isob-east-1" : { diff --git a/models/entityresolution.json b/models/entityresolution.json index 9cb72da4e2..e72464b596 100644 --- a/models/entityresolution.json +++ b/models/entityresolution.json @@ -5,9 +5,18 @@ "type": "service", "version": "2018-05-10", "operations": [ + { + "target": "com.amazonaws.entityresolution#AddPolicyStatement" + }, + { + "target": "com.amazonaws.entityresolution#BatchDeleteUniqueId" + }, { "target": "com.amazonaws.entityresolution#CreateIdMappingWorkflow" }, + { + "target": "com.amazonaws.entityresolution#CreateIdNamespace" + }, { "target": "com.amazonaws.entityresolution#CreateMatchingWorkflow" }, @@ -17,9 +26,15 @@ { "target": "com.amazonaws.entityresolution#DeleteIdMappingWorkflow" }, + { + "target": "com.amazonaws.entityresolution#DeleteIdNamespace" + }, { "target": "com.amazonaws.entityresolution#DeleteMatchingWorkflow" }, + { + "target": "com.amazonaws.entityresolution#DeletePolicyStatement" + }, { "target": "com.amazonaws.entityresolution#DeleteSchemaMapping" }, @@ -29,6 +44,9 @@ { "target": "com.amazonaws.entityresolution#GetIdMappingWorkflow" }, + { + "target": "com.amazonaws.entityresolution#GetIdNamespace" + }, { "target": "com.amazonaws.entityresolution#GetMatchId" }, @@ -38,6 +56,9 @@ { "target": "com.amazonaws.entityresolution#GetMatchingWorkflow" }, + { + "target": "com.amazonaws.entityresolution#GetPolicy" + }, { "target": "com.amazonaws.entityresolution#GetProviderService" }, @@ -50,6 +71,9 @@ { "target": "com.amazonaws.entityresolution#ListIdMappingWorkflows" }, + { + "target": "com.amazonaws.entityresolution#ListIdNamespaces" + }, { "target": "com.amazonaws.entityresolution#ListMatchingJobs" }, @@ -65,6 +89,9 @@ { "target": "com.amazonaws.entityresolution#ListTagsForResource" }, + { + "target": "com.amazonaws.entityresolution#PutPolicy" + }, { "target": "com.amazonaws.entityresolution#StartIdMappingJob" }, @@ -80,6 +107,9 @@ { "target": "com.amazonaws.entityresolution#UpdateIdMappingWorkflow" }, + { + "target": "com.amazonaws.entityresolution#UpdateIdNamespace" + }, { "target": "com.amazonaws.entityresolution#UpdateMatchingWorkflow" }, @@ -794,6 +824,123 @@ "smithy.api#httpError": 403 } }, + "com.amazonaws.entityresolution#AddPolicyStatement": { + "type": "operation", + "input": { + "target": "com.amazonaws.entityresolution#AddPolicyStatementInput" + }, + "output": { + "target": "com.amazonaws.entityresolution#AddPolicyStatementOutput" + }, + "errors": [ + { + "target": "com.amazonaws.entityresolution#AccessDeniedException" + }, + { + "target": "com.amazonaws.entityresolution#ConflictException" + }, + { + "target": "com.amazonaws.entityresolution#InternalServerException" + }, + { + "target": "com.amazonaws.entityresolution#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.entityresolution#ThrottlingException" + }, + { + "target": "com.amazonaws.entityresolution#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds a policy statement object. To retrieve a list of existing policy statements, use\n the GetPolicy API.

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/policies/{arn}/{statementId}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.entityresolution#AddPolicyStatementInput": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.entityresolution#VeniceGlobalArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource that will be accessed by the\n principal.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "statementId": { + "target": "com.amazonaws.entityresolution#StatementId", + "traits": { + "smithy.api#documentation": "

A statement identifier that differentiates the statement from others in the same\n policy.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "effect": { + "target": "com.amazonaws.entityresolution#StatementEffect", + "traits": { + "smithy.api#documentation": "

Determines whether the permissions specified in the policy are to be allowed\n (Allow) or denied (Deny).

", + "smithy.api#required": {} + } + }, + "action": { + "target": "com.amazonaws.entityresolution#StatementActionList", + "traits": { + "smithy.api#documentation": "

The action that the principal can use on the resource.

\n

For example, entityresolution:GetIdMappingJob,\n entityresolution:GetMatchingJob.

", + "smithy.api#required": {} + } + }, + "principal": { + "target": "com.amazonaws.entityresolution#StatementPrincipalList", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services service or Amazon Web Services account that can access the\n resource defined as ARN.

", + "smithy.api#required": {} + } + }, + "condition": { + "target": "com.amazonaws.entityresolution#StatementCondition", + "traits": { + "smithy.api#documentation": "

A set of condition keys that you can use in key policies.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.entityresolution#AddPolicyStatementOutput": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.entityresolution#VeniceGlobalArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource that will be accessed by the\n principal.

", + "smithy.api#required": {} + } + }, + "token": { + "target": "com.amazonaws.entityresolution#PolicyToken", + "traits": { + "smithy.api#documentation": "

A unique identifier for the current revision of the policy.

", + "smithy.api#required": {} + } + }, + "policy": { + "target": "com.amazonaws.entityresolution#PolicyDocument", + "traits": { + "smithy.api#documentation": "

The resource-based policy.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.entityresolution#AttributeMatchingModel": { "type": "enum", "members": { @@ -823,7 +970,7 @@ "com.amazonaws.entityresolution#AwsAccountId": { "type": "string", "traits": { - "smithy.api#pattern": "\\d{12}" + "smithy.api#pattern": "^\\d{12}$" } }, "com.amazonaws.entityresolution#AwsAccountIdList": { @@ -832,6 +979,102 @@ "target": "com.amazonaws.entityresolution#AwsAccountId" } }, + "com.amazonaws.entityresolution#BatchDeleteUniqueId": { + "type": "operation", + "input": { + "target": "com.amazonaws.entityresolution#BatchDeleteUniqueIdInput" + }, + "output": { + "target": "com.amazonaws.entityresolution#BatchDeleteUniqueIdOutput" + }, + "errors": [ + { + "target": "com.amazonaws.entityresolution#InternalServerException" + }, + { + "target": "com.amazonaws.entityresolution#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.entityresolution#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes multiple unique IDs in a matching workflow.

", + "smithy.api#http": { + "code": 200, + "method": "DELETE", + "uri": "/matchingworkflows/{workflowName}/uniqueids" + } + } + }, + "com.amazonaws.entityresolution#BatchDeleteUniqueIdInput": { + "type": "structure", + "members": { + "workflowName": { + "target": "com.amazonaws.entityresolution#EntityName", + "traits": { + "smithy.api#documentation": "

The name of the workflow.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "inputSource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The input source for the batch delete unique ID operation.

", + "smithy.api#httpHeader": "inputSource", + "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn):glue:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(table/[a-zA-Z_0-9-]{1,255}/[a-zA-Z_0-9-]{1,255})$" + } + }, + "uniqueIds": { + "target": "com.amazonaws.entityresolution#UniqueIdList", + "traits": { + "smithy.api#documentation": "

The unique IDs to delete.

", + "smithy.api#httpHeader": "uniqueIds", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.entityresolution#BatchDeleteUniqueIdOutput": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.entityresolution#DeleteUniqueIdStatus", + "traits": { + "smithy.api#documentation": "

The status of the batch delete unique ID operation.

", + "smithy.api#required": {} + } + }, + "errors": { + "target": "com.amazonaws.entityresolution#DeleteUniqueIdErrorsList", + "traits": { + "smithy.api#documentation": "

The errors from deleting multiple unique IDs.

", + "smithy.api#required": {} + } + }, + "deleted": { + "target": "com.amazonaws.entityresolution#DeletedUniqueIdList", + "traits": { + "smithy.api#documentation": "

The unique IDs that were deleted.

", + "smithy.api#required": {} + } + }, + "disconnectedUniqueIds": { + "target": "com.amazonaws.entityresolution#DisconnectedUniqueIdsList", + "traits": { + "smithy.api#documentation": "

The unique IDs that were disconnected.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.entityresolution#ConflictException": { "type": "structure", "members": { @@ -908,8 +1151,7 @@ "outputSourceConfig": { "target": "com.amazonaws.entityresolution#IdMappingWorkflowOutputSourceConfig", "traits": { - "smithy.api#documentation": "

A list of IdMappingWorkflowOutputSource objects, each of which contains\n fields OutputS3Path and Output.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A list of IdMappingWorkflowOutputSource objects, each of which contains\n fields OutputS3Path and Output.

" } }, "idMappingTechniques": { @@ -970,8 +1212,7 @@ "outputSourceConfig": { "target": "com.amazonaws.entityresolution#IdMappingWorkflowOutputSourceConfig", "traits": { - "smithy.api#documentation": "

A list of IdMappingWorkflowOutputSource objects, each of which contains\n fields OutputS3Path and Output.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A list of IdMappingWorkflowOutputSource objects, each of which contains\n fields OutputS3Path and Output.

" } }, "idMappingTechniques": { @@ -993,13 +1234,13 @@ "smithy.api#output": {} } }, - "com.amazonaws.entityresolution#CreateMatchingWorkflow": { + "com.amazonaws.entityresolution#CreateIdNamespace": { "type": "operation", "input": { - "target": "com.amazonaws.entityresolution#CreateMatchingWorkflowInput" + "target": "com.amazonaws.entityresolution#CreateIdNamespaceInput" }, "output": { - "target": "com.amazonaws.entityresolution#CreateMatchingWorkflowOutput" + "target": "com.amazonaws.entityresolution#CreateIdNamespaceOutput" }, "errors": [ { @@ -1022,62 +1263,53 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a MatchingWorkflow object which stores the configuration of the\n data processing job to be run. It is important to note that there should not be a\n pre-existing MatchingWorkflow with the same name. To modify an existing\n workflow, utilize the UpdateMatchingWorkflow API.

", + "smithy.api#documentation": "

Creates an ID namespace object which will help customers provide metadata explaining\n their dataset and how to use it. Each ID namespace must have a unique name. To modify an\n existing ID namespace, use the UpdateIdNamespace API.

", "smithy.api#http": { "code": 200, "method": "POST", - "uri": "/matchingworkflows" + "uri": "/idnamespaces" } } }, - "com.amazonaws.entityresolution#CreateMatchingWorkflowInput": { + "com.amazonaws.entityresolution#CreateIdNamespaceInput": { "type": "structure", "members": { - "workflowName": { + "idNamespaceName": { "target": "com.amazonaws.entityresolution#EntityName", "traits": { - "smithy.api#documentation": "

The name of the workflow. There can't be multiple MatchingWorkflows with\n the same name.

", + "smithy.api#documentation": "

The name of the ID namespace.

", "smithy.api#required": {} } }, "description": { "target": "com.amazonaws.entityresolution#Description", "traits": { - "smithy.api#documentation": "

A description of the workflow.

" + "smithy.api#documentation": "

The description of the ID namespace.

" } }, "inputSourceConfig": { - "target": "com.amazonaws.entityresolution#InputSourceConfig", + "target": "com.amazonaws.entityresolution#IdNamespaceInputSourceConfig", "traits": { - "smithy.api#documentation": "

A list of InputSource objects, which have the fields\n InputSourceARN and SchemaName.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A list of InputSource objects, which have the fields\n InputSourceARN and SchemaName.

" } }, - "outputSourceConfig": { - "target": "com.amazonaws.entityresolution#OutputSourceConfig", + "idMappingWorkflowProperties": { + "target": "com.amazonaws.entityresolution#IdNamespaceIdMappingWorkflowPropertiesList", "traits": { - "smithy.api#documentation": "

A list of OutputSource objects, each of which contains fields\n OutputS3Path, ApplyNormalization, and\n Output.

", - "smithy.api#required": {} + "smithy.api#documentation": "

Determines the properties of IdMappingWorflow where this\n IdNamespace can be used as a Source or a\n Target.

" } }, - "resolutionTechniques": { - "target": "com.amazonaws.entityresolution#ResolutionTechniques", + "type": { + "target": "com.amazonaws.entityresolution#IdNamespaceType", "traits": { - "smithy.api#documentation": "

An object which defines the resolutionType and the\n ruleBasedProperties.

", + "smithy.api#documentation": "

The type of ID namespace. There are two types: SOURCE and\n TARGET.

\n

The SOURCE contains configurations for sourceId data that will\n be processed in an ID mapping workflow.

\n

The TARGET contains a configuration of targetId to which all\n sourceIds will resolve to.

", "smithy.api#required": {} } }, - "incrementalRunConfig": { - "target": "com.amazonaws.entityresolution#IncrementalRunConfig", - "traits": { - "smithy.api#documentation": "

An object which defines an incremental run type and has only\n incrementalRunType as a field.

" - } - }, "roleArn": { - "target": "smithy.api#String", + "target": "com.amazonaws.entityresolution#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to create resources on your behalf as part of workflow execution.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to access the resources defined in this IdNamespace on your behalf\n as part of the workflow run.

" } }, "tags": { @@ -1091,75 +1323,86 @@ "smithy.api#input": {} } }, - "com.amazonaws.entityresolution#CreateMatchingWorkflowOutput": { + "com.amazonaws.entityresolution#CreateIdNamespaceOutput": { "type": "structure", "members": { - "workflowName": { + "idNamespaceName": { "target": "com.amazonaws.entityresolution#EntityName", "traits": { - "smithy.api#documentation": "

The name of the workflow.

", + "smithy.api#documentation": "

The name of the ID namespace.

", "smithy.api#required": {} } }, - "workflowArn": { - "target": "com.amazonaws.entityresolution#MatchingWorkflowArn", + "idNamespaceArn": { + "target": "com.amazonaws.entityresolution#IdNamespaceArn", "traits": { - "smithy.api#documentation": "

The ARN (Amazon Resource Name) that Entity Resolution generated for the\n MatchingWorkflow.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ID namespace.

", "smithy.api#required": {} } }, "description": { "target": "com.amazonaws.entityresolution#Description", "traits": { - "smithy.api#documentation": "

A description of the workflow.

" + "smithy.api#documentation": "

The description of the ID namespace.

" } }, "inputSourceConfig": { - "target": "com.amazonaws.entityresolution#InputSourceConfig", + "target": "com.amazonaws.entityresolution#IdNamespaceInputSourceConfig", "traits": { - "smithy.api#documentation": "

A list of InputSource objects, which have the fields\n InputSourceARN and SchemaName.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A list of InputSource objects, which have the fields\n InputSourceARN and SchemaName.

" } }, - "outputSourceConfig": { - "target": "com.amazonaws.entityresolution#OutputSourceConfig", + "idMappingWorkflowProperties": { + "target": "com.amazonaws.entityresolution#IdNamespaceIdMappingWorkflowPropertiesList", "traits": { - "smithy.api#documentation": "

A list of OutputSource objects, each of which contains fields\n OutputS3Path, ApplyNormalization, and\n Output.

", - "smithy.api#required": {} + "smithy.api#documentation": "

Determines the properties of IdMappingWorkflow where this\n IdNamespace can be used as a Source or a\n Target.

" } }, - "resolutionTechniques": { - "target": "com.amazonaws.entityresolution#ResolutionTechniques", + "type": { + "target": "com.amazonaws.entityresolution#IdNamespaceType", "traits": { - "smithy.api#documentation": "

An object which defines the resolutionType and the\n ruleBasedProperties.

", + "smithy.api#documentation": "

The type of ID namespace. There are two types: SOURCE and\n TARGET.

\n

The SOURCE contains configurations for sourceId data that will\n be processed in an ID mapping workflow.

\n

The TARGET contains a configuration of targetId to which all\n sourceIds will resolve to.

", "smithy.api#required": {} } }, - "incrementalRunConfig": { - "target": "com.amazonaws.entityresolution#IncrementalRunConfig", + "roleArn": { + "target": "com.amazonaws.entityresolution#RoleArn", "traits": { - "smithy.api#documentation": "

An object which defines an incremental run type and has only\n incrementalRunType as a field.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to access the resources defined in inputSourceConfig on your behalf\n as part of the workflow run.

" } }, - "roleArn": { - "target": "smithy.api#String", + "createdAt": { + "target": "smithy.api#Timestamp", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to create resources on your behalf as part of workflow execution.

", + "smithy.api#documentation": "

The timestamp of when the ID namespace was created.

", + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of when the ID namespace was last updated.

", "smithy.api#required": {} } + }, + "tags": { + "target": "com.amazonaws.entityresolution#TagMap", + "traits": { + "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" + } } }, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.entityresolution#CreateSchemaMapping": { + "com.amazonaws.entityresolution#CreateMatchingWorkflow": { "type": "operation", "input": { - "target": "com.amazonaws.entityresolution#CreateSchemaMappingInput" + "target": "com.amazonaws.entityresolution#CreateMatchingWorkflowInput" }, "output": { - "target": "com.amazonaws.entityresolution#CreateSchemaMappingOutput" + "target": "com.amazonaws.entityresolution#CreateMatchingWorkflowOutput" }, "errors": [ { @@ -1182,11 +1425,171 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a schema mapping, which defines the schema of the input customer records table.\n The SchemaMapping also provides Entity Resolution with some metadata about the\n table, such as the attribute types of the columns and which columns to match on.

", + "smithy.api#documentation": "

Creates a MatchingWorkflow object which stores the configuration of the\n data processing job to be run. It is important to note that there should not be a\n pre-existing MatchingWorkflow with the same name. To modify an existing\n workflow, utilize the UpdateMatchingWorkflow API.

", "smithy.api#http": { "code": 200, "method": "POST", - "uri": "/schemas" + "uri": "/matchingworkflows" + } + } + }, + "com.amazonaws.entityresolution#CreateMatchingWorkflowInput": { + "type": "structure", + "members": { + "workflowName": { + "target": "com.amazonaws.entityresolution#EntityName", + "traits": { + "smithy.api#documentation": "

The name of the workflow. There can't be multiple MatchingWorkflows with\n the same name.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.entityresolution#Description", + "traits": { + "smithy.api#documentation": "

A description of the workflow.

" + } + }, + "inputSourceConfig": { + "target": "com.amazonaws.entityresolution#InputSourceConfig", + "traits": { + "smithy.api#documentation": "

A list of InputSource objects, which have the fields\n InputSourceARN and SchemaName.

", + "smithy.api#required": {} + } + }, + "outputSourceConfig": { + "target": "com.amazonaws.entityresolution#OutputSourceConfig", + "traits": { + "smithy.api#documentation": "

A list of OutputSource objects, each of which contains fields\n OutputS3Path, ApplyNormalization, and\n Output.

", + "smithy.api#required": {} + } + }, + "resolutionTechniques": { + "target": "com.amazonaws.entityresolution#ResolutionTechniques", + "traits": { + "smithy.api#documentation": "

An object which defines the resolutionType and the\n ruleBasedProperties.

", + "smithy.api#required": {} + } + }, + "incrementalRunConfig": { + "target": "com.amazonaws.entityresolution#IncrementalRunConfig", + "traits": { + "smithy.api#documentation": "

An object which defines an incremental run type and has only\n incrementalRunType as a field.

" + } + }, + "roleArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to create resources on your behalf as part of workflow execution.

", + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.entityresolution#TagMap", + "traits": { + "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.entityresolution#CreateMatchingWorkflowOutput": { + "type": "structure", + "members": { + "workflowName": { + "target": "com.amazonaws.entityresolution#EntityName", + "traits": { + "smithy.api#documentation": "

The name of the workflow.

", + "smithy.api#required": {} + } + }, + "workflowArn": { + "target": "com.amazonaws.entityresolution#MatchingWorkflowArn", + "traits": { + "smithy.api#documentation": "

The ARN (Amazon Resource Name) that Entity Resolution generated for the\n MatchingWorkflow.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.entityresolution#Description", + "traits": { + "smithy.api#documentation": "

A description of the workflow.

" + } + }, + "inputSourceConfig": { + "target": "com.amazonaws.entityresolution#InputSourceConfig", + "traits": { + "smithy.api#documentation": "

A list of InputSource objects, which have the fields\n InputSourceARN and SchemaName.

", + "smithy.api#required": {} + } + }, + "outputSourceConfig": { + "target": "com.amazonaws.entityresolution#OutputSourceConfig", + "traits": { + "smithy.api#documentation": "

A list of OutputSource objects, each of which contains fields\n OutputS3Path, ApplyNormalization, and\n Output.

", + "smithy.api#required": {} + } + }, + "resolutionTechniques": { + "target": "com.amazonaws.entityresolution#ResolutionTechniques", + "traits": { + "smithy.api#documentation": "

An object which defines the resolutionType and the\n ruleBasedProperties.

", + "smithy.api#required": {} + } + }, + "incrementalRunConfig": { + "target": "com.amazonaws.entityresolution#IncrementalRunConfig", + "traits": { + "smithy.api#documentation": "

An object which defines an incremental run type and has only\n incrementalRunType as a field.

" + } + }, + "roleArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to create resources on your behalf as part of workflow execution.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.entityresolution#CreateSchemaMapping": { + "type": "operation", + "input": { + "target": "com.amazonaws.entityresolution#CreateSchemaMappingInput" + }, + "output": { + "target": "com.amazonaws.entityresolution#CreateSchemaMappingOutput" + }, + "errors": [ + { + "target": "com.amazonaws.entityresolution#AccessDeniedException" + }, + { + "target": "com.amazonaws.entityresolution#ConflictException" + }, + { + "target": "com.amazonaws.entityresolution#ExceedsLimitException" + }, + { + "target": "com.amazonaws.entityresolution#InternalServerException" + }, + { + "target": "com.amazonaws.entityresolution#ThrottlingException" + }, + { + "target": "com.amazonaws.entityresolution#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a schema mapping, which defines the schema of the input customer records table.\n The SchemaMapping also provides Entity Resolution with some metadata about the\n table, such as the attribute types of the columns and which columns to match on.

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/schemas" } } }, @@ -1272,6 +1675,9 @@ { "target": "com.amazonaws.entityresolution#AccessDeniedException" }, + { + "target": "com.amazonaws.entityresolution#ConflictException" + }, { "target": "com.amazonaws.entityresolution#InternalServerException" }, @@ -1323,6 +1729,69 @@ "smithy.api#output": {} } }, + "com.amazonaws.entityresolution#DeleteIdNamespace": { + "type": "operation", + "input": { + "target": "com.amazonaws.entityresolution#DeleteIdNamespaceInput" + }, + "output": { + "target": "com.amazonaws.entityresolution#DeleteIdNamespaceOutput" + }, + "errors": [ + { + "target": "com.amazonaws.entityresolution#AccessDeniedException" + }, + { + "target": "com.amazonaws.entityresolution#InternalServerException" + }, + { + "target": "com.amazonaws.entityresolution#ThrottlingException" + }, + { + "target": "com.amazonaws.entityresolution#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the IdNamespace with a given name.

", + "smithy.api#http": { + "code": 200, + "method": "DELETE", + "uri": "/idnamespaces/{idNamespaceName}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.entityresolution#DeleteIdNamespaceInput": { + "type": "structure", + "members": { + "idNamespaceName": { + "target": "com.amazonaws.entityresolution#EntityName", + "traits": { + "smithy.api#documentation": "

The name of the ID namespace.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.entityresolution#DeleteIdNamespaceOutput": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A successful operation message.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.entityresolution#DeleteMatchingWorkflow": { "type": "operation", "input": { @@ -1335,6 +1804,9 @@ { "target": "com.amazonaws.entityresolution#AccessDeniedException" }, + { + "target": "com.amazonaws.entityresolution#ConflictException" + }, { "target": "com.amazonaws.entityresolution#InternalServerException" }, @@ -1386,6 +1858,96 @@ "smithy.api#output": {} } }, + "com.amazonaws.entityresolution#DeletePolicyStatement": { + "type": "operation", + "input": { + "target": "com.amazonaws.entityresolution#DeletePolicyStatementInput" + }, + "output": { + "target": "com.amazonaws.entityresolution#DeletePolicyStatementOutput" + }, + "errors": [ + { + "target": "com.amazonaws.entityresolution#AccessDeniedException" + }, + { + "target": "com.amazonaws.entityresolution#ConflictException" + }, + { + "target": "com.amazonaws.entityresolution#InternalServerException" + }, + { + "target": "com.amazonaws.entityresolution#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.entityresolution#ThrottlingException" + }, + { + "target": "com.amazonaws.entityresolution#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the policy statement.

", + "smithy.api#http": { + "code": 200, + "method": "DELETE", + "uri": "/policies/{arn}/{statementId}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.entityresolution#DeletePolicyStatementInput": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.entityresolution#VeniceGlobalArn", + "traits": { + "smithy.api#documentation": "

The ARN of the resource for which the policy need to be deleted.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "statementId": { + "target": "com.amazonaws.entityresolution#StatementId", + "traits": { + "smithy.api#documentation": "

A statement identifier that differentiates the statement from others in the same\n policy.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.entityresolution#DeletePolicyStatementOutput": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.entityresolution#VeniceGlobalArn", + "traits": { + "smithy.api#documentation": "

The ARN of the resource for which the policy need to be deleted.

", + "smithy.api#required": {} + } + }, + "token": { + "target": "com.amazonaws.entityresolution#PolicyToken", + "traits": { + "smithy.api#documentation": "

A unique identifier for the deleted policy.

", + "smithy.api#required": {} + } + }, + "policy": { + "target": "com.amazonaws.entityresolution#PolicyDocument", + "traits": { + "smithy.api#documentation": "

The resource-based policy.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.entityresolution#DeleteSchemaMapping": { "type": "operation", "input": { @@ -1452,6 +2014,89 @@ "smithy.api#output": {} } }, + "com.amazonaws.entityresolution#DeleteUniqueIdError": { + "type": "structure", + "members": { + "uniqueId": { + "target": "com.amazonaws.entityresolution#UniqueId", + "traits": { + "smithy.api#documentation": "

The unique ID that could not be deleted.

", + "smithy.api#required": {} + } + }, + "errorType": { + "target": "com.amazonaws.entityresolution#DeleteUniqueIdErrorType", + "traits": { + "smithy.api#documentation": "

The error type for the batch delete unique ID operation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The Delete Unique Id error.

" + } + }, + "com.amazonaws.entityresolution#DeleteUniqueIdErrorType": { + "type": "enum", + "members": { + "SERVICE_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SERVICE_ERROR" + } + }, + "VALIDATION_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VALIDATION_ERROR" + } + } + } + }, + "com.amazonaws.entityresolution#DeleteUniqueIdErrorsList": { + "type": "list", + "member": { + "target": "com.amazonaws.entityresolution#DeleteUniqueIdError" + } + }, + "com.amazonaws.entityresolution#DeleteUniqueIdStatus": { + "type": "enum", + "members": { + "COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETED" + } + }, + "ACCEPTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACCEPTED" + } + } + } + }, + "com.amazonaws.entityresolution#DeletedUniqueId": { + "type": "structure", + "members": { + "uniqueId": { + "target": "com.amazonaws.entityresolution#UniqueId", + "traits": { + "smithy.api#documentation": "

The unique ID of the deleted item.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The deleted unique ID.

" + } + }, + "com.amazonaws.entityresolution#DeletedUniqueIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.entityresolution#DeletedUniqueId" + } + }, "com.amazonaws.entityresolution#Description": { "type": "string", "traits": { @@ -1460,6 +2105,12 @@ } } }, + "com.amazonaws.entityresolution#DisconnectedUniqueIdsList": { + "type": "list", + "member": { + "target": "com.amazonaws.entityresolution#UniqueId" + } + }, "com.amazonaws.entityresolution#EntityName": { "type": "string", "traits": { @@ -1470,6 +2121,18 @@ "smithy.api#pattern": "^[a-zA-Z_0-9-]*$" } }, + "com.amazonaws.entityresolution#EntityNameOrIdMappingWorkflowArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-zA-Z_0-9-=+/]*$|^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(idmappingworkflow/[a-zA-Z_0-9-]{1,255})$" + } + }, + "com.amazonaws.entityresolution#EntityNameOrIdNamespaceArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-zA-Z_0-9-=+/]*$|^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(idnamespace/[a-zA-Z_0-9-]{1,255})$" + } + }, "com.amazonaws.entityresolution#ErrorDetails": { "type": "structure", "members": { @@ -1557,7 +2220,7 @@ "type": "structure", "members": { "workflowName": { - "target": "com.amazonaws.entityresolution#EntityName", + "target": "com.amazonaws.entityresolution#EntityNameOrIdMappingWorkflowArn", "traits": { "smithy.api#documentation": "

The name of the workflow.

", "smithy.api#httpLabel": {}, @@ -1615,6 +2278,12 @@ }, "errorDetails": { "target": "com.amazonaws.entityresolution#ErrorDetails" + }, + "outputSourceConfig": { + "target": "com.amazonaws.entityresolution#IdMappingJobOutputSourceConfig", + "traits": { + "smithy.api#documentation": "

A list of OutputSource objects.

" + } } }, "traits": { @@ -1705,8 +2374,7 @@ "outputSourceConfig": { "target": "com.amazonaws.entityresolution#IdMappingWorkflowOutputSourceConfig", "traits": { - "smithy.api#documentation": "

A list of OutputSource objects, each of which contains fields\n OutputS3Path and KMSArn.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A list of OutputSource objects, each of which contains fields\n OutputS3Path and KMSArn.

" } }, "idMappingTechniques": { @@ -1733,7 +2401,131 @@ "roleArn": { "target": "com.amazonaws.entityresolution#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to access resources on your behalf.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to access Amazon Web Services resources on your behalf.

", + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.entityresolution#TagMap", + "traits": { + "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.entityresolution#GetIdNamespace": { + "type": "operation", + "input": { + "target": "com.amazonaws.entityresolution#GetIdNamespaceInput" + }, + "output": { + "target": "com.amazonaws.entityresolution#GetIdNamespaceOutput" + }, + "errors": [ + { + "target": "com.amazonaws.entityresolution#AccessDeniedException" + }, + { + "target": "com.amazonaws.entityresolution#InternalServerException" + }, + { + "target": "com.amazonaws.entityresolution#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.entityresolution#ThrottlingException" + }, + { + "target": "com.amazonaws.entityresolution#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the IdNamespace with a given name, if it exists.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/idnamespaces/{idNamespaceName}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.entityresolution#GetIdNamespaceInput": { + "type": "structure", + "members": { + "idNamespaceName": { + "target": "com.amazonaws.entityresolution#EntityNameOrIdNamespaceArn", + "traits": { + "smithy.api#documentation": "

The name of the ID namespace.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.entityresolution#GetIdNamespaceOutput": { + "type": "structure", + "members": { + "idNamespaceName": { + "target": "com.amazonaws.entityresolution#EntityName", + "traits": { + "smithy.api#documentation": "

The name of the ID namespace.

", + "smithy.api#required": {} + } + }, + "idNamespaceArn": { + "target": "com.amazonaws.entityresolution#IdNamespaceArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ID namespace.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.entityresolution#Description", + "traits": { + "smithy.api#documentation": "

The description of the ID namespace.

" + } + }, + "inputSourceConfig": { + "target": "com.amazonaws.entityresolution#IdNamespaceInputSourceConfig", + "traits": { + "smithy.api#documentation": "

A list of InputSource objects, which have the fields\n InputSourceARN and SchemaName.

" + } + }, + "idMappingWorkflowProperties": { + "target": "com.amazonaws.entityresolution#IdNamespaceIdMappingWorkflowPropertiesList", + "traits": { + "smithy.api#documentation": "

Determines the properties of IdMappingWorkflow where this\n IdNamespace can be used as a Source or a\n Target.

" + } + }, + "type": { + "target": "com.amazonaws.entityresolution#IdNamespaceType", + "traits": { + "smithy.api#documentation": "

The type of ID namespace. There are two types: SOURCE and\n TARGET.

\n

The SOURCE contains configurations for sourceId data that will\n be processed in an ID mapping workflow.

\n

The TARGET contains a configuration of targetId to which all\n sourceIds will resolve to.

", + "smithy.api#required": {} + } + }, + "roleArn": { + "target": "com.amazonaws.entityresolution#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to access the resources defined in this IdNamespace on your behalf\n as part of a workflow run.

" + } + }, + "createdAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of when the ID namespace was created.

", + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of when the ID namespace was last updated.

", "smithy.api#required": {} } }, @@ -1800,6 +2592,13 @@ "smithy.api#documentation": "

The record to fetch the Match ID for.

", "smithy.api#required": {} } + }, + "applyNormalization": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#default": true, + "smithy.api#documentation": "

Normalizes the attributes defined in the schema in the input data. For example, if an\n attribute has an AttributeType of PHONE_NUMBER, and the data in\n the input table is in a format of 1234567890, Entity Resolution will normalize this field\n in the output to (123)-456-7890.

" + } } }, "traits": { @@ -1814,6 +2613,12 @@ "traits": { "smithy.api#documentation": "

The unique identifiers for this group of match records.

" } + }, + "matchRule": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The rule the record matched on.

" + } } }, "traits": { @@ -1918,7 +2723,13 @@ "errorDetails": { "target": "com.amazonaws.entityresolution#ErrorDetails", "traits": { - "smithy.api#documentation": "

An object containing an error message, if there was an error.

" + "smithy.api#documentation": "

An object containing an error message, if there was an error.

" + } + }, + "outputSourceConfig": { + "target": "com.amazonaws.entityresolution#JobOutputSourceConfig", + "traits": { + "smithy.api#documentation": "

A list of OutputSource objects.

" } } }, @@ -2044,7 +2855,7 @@ "roleArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to access resources on your behalf.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to access Amazon Web Services resources on your behalf.

", "smithy.api#required": {} } }, @@ -2059,6 +2870,85 @@ "smithy.api#output": {} } }, + "com.amazonaws.entityresolution#GetPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.entityresolution#GetPolicyInput" + }, + "output": { + "target": "com.amazonaws.entityresolution#GetPolicyOutput" + }, + "errors": [ + { + "target": "com.amazonaws.entityresolution#AccessDeniedException" + }, + { + "target": "com.amazonaws.entityresolution#InternalServerException" + }, + { + "target": "com.amazonaws.entityresolution#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.entityresolution#ThrottlingException" + }, + { + "target": "com.amazonaws.entityresolution#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the resource-based policy.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/policies/{arn}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.entityresolution#GetPolicyInput": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.entityresolution#VeniceGlobalArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource for which the policy need to be\n returned.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.entityresolution#GetPolicyOutput": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.entityresolution#VeniceGlobalArn", + "traits": { + "smithy.api#documentation": "

The Entity Resolution resource ARN.

", + "smithy.api#required": {} + } + }, + "token": { + "target": "com.amazonaws.entityresolution#PolicyToken", + "traits": { + "smithy.api#documentation": "

A unique identifier for the current revision of the policy.

", + "smithy.api#required": {} + } + }, + "policy": { + "target": "com.amazonaws.entityresolution#PolicyDocument", + "traits": { + "smithy.api#documentation": "

The resource-based policy.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.entityresolution#GetProviderService": { "type": "operation", "input": { @@ -2162,6 +3052,18 @@ "smithy.api#documentation": "

The definition of the provider configuration.

" } }, + "providerIdNameSpaceConfiguration": { + "target": "com.amazonaws.entityresolution#ProviderIdNameSpaceConfiguration", + "traits": { + "smithy.api#documentation": "

The provider configuration required for different ID namespace types.

" + } + }, + "providerJobConfiguration": { + "target": "smithy.api#Document", + "traits": { + "smithy.api#documentation": "

Provider service job configurations.

" + } + }, "providerEndpointConfiguration": { "target": "com.amazonaws.entityresolution#ProviderEndpointConfiguration", "traits": { @@ -2188,6 +3090,12 @@ "traits": { "smithy.api#documentation": "

The Amazon Web Services accounts and the S3 permissions that are required by some\n providers to create an S3 bucket for intermediate data storage.

" } + }, + "providerComponentSchema": { + "target": "com.amazonaws.entityresolution#ProviderComponentSchema", + "traits": { + "smithy.api#documentation": "

Input schema for the provider service.

" + } } }, "traits": { @@ -2333,6 +3241,46 @@ "smithy.api#documentation": "

An object containing InputRecords, TotalRecordsProcessed,\n MatchIDs, and RecordsNotProcessed.

" } }, + "com.amazonaws.entityresolution#IdMappingJobOutputSource": { + "type": "structure", + "members": { + "roleArn": { + "target": "com.amazonaws.entityresolution#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to access Amazon Web Services resources on your behalf as part of workflow\n execution.

", + "smithy.api#required": {} + } + }, + "outputS3Path": { + "target": "com.amazonaws.entityresolution#S3Path", + "traits": { + "smithy.api#documentation": "

The S3 path to which Entity Resolution will write the output table.

", + "smithy.api#required": {} + } + }, + "KMSArn": { + "target": "com.amazonaws.entityresolution#KMSArn", + "traits": { + "smithy.api#documentation": "

Customer KMS ARN for encryption at rest. If not provided, system will use\n an Entity Resolution managed KMS key.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object containing KMSArn, OutputS3Path, and\n RoleARN.

" + } + }, + "com.amazonaws.entityresolution#IdMappingJobOutputSourceConfig": { + "type": "list", + "member": { + "target": "com.amazonaws.entityresolution#IdMappingJobOutputSource" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, "com.amazonaws.entityresolution#IdMappingTechniques": { "type": "structure", "members": { @@ -2346,8 +3294,7 @@ "providerProperties": { "target": "com.amazonaws.entityresolution#ProviderProperties", "traits": { - "smithy.api#documentation": "

An object which defines any additional configurations required by the provider\n service.

", - "smithy.api#required": {} + "smithy.api#documentation": "

An object which defines any additional configurations required by the provider\n service.

" } } }, @@ -2369,7 +3316,7 @@ "com.amazonaws.entityresolution#IdMappingWorkflowArn": { "type": "string", "traits": { - "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:.*:[0-9]+:(idmappingworkflow/.*)$" + "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(idmappingworkflow/[a-zA-Z_0-9-]{1,255})$" } }, "com.amazonaws.entityresolution#IdMappingWorkflowInputSource": { @@ -2378,21 +3325,26 @@ "inputSourceARN": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

An Gluetable ARN for the input source table.

", - "smithy.api#pattern": "^arn:aws:.*:.*:[0-9]+:.*$", + "smithy.api#documentation": "

An Glue table ARN for the input source table.

", + "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(idnamespace/[a-zA-Z_0-9-]{1,255})$|^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(matchingworkflow/[a-zA-Z_0-9-]{1,255})$|^arn:(aws|aws-us-gov|aws-cn):glue:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(table/[a-zA-Z_0-9-]{1,255}/[a-zA-Z_0-9-]{1,255})$", "smithy.api#required": {} } }, "schemaName": { "target": "com.amazonaws.entityresolution#EntityName", "traits": { - "smithy.api#documentation": "

The name of the schema to be retrieved.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The name of the schema to be retrieved.

" + } + }, + "type": { + "target": "com.amazonaws.entityresolution#IdNamespaceType", + "traits": { + "smithy.api#documentation": "

The type of ID namespace. There are two types: SOURCE and\n TARGET.

\n

The SOURCE contains configurations for sourceId data that will\n be processed in an ID mapping workflow.

\n

The TARGET contains a configuration of targetId to which all\n sourceIds will resolve to.

" } } }, "traits": { - "smithy.api#documentation": "

An object containing InputSourceARN and SchemaName.

" + "smithy.api#documentation": "

An object containing InputSourceARN, SchemaName, and\n Type.

" } }, "com.amazonaws.entityresolution#IdMappingWorkflowInputSourceConfig": { @@ -2482,6 +3434,151 @@ "smithy.api#documentation": "

A list of IdMappingWorkflowSummary objects, each of which contain the\n fields WorkflowName, WorkflowArn, CreatedAt, and\n UpdatedAt.

" } }, + "com.amazonaws.entityresolution#IdNamespaceArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(idnamespace/[a-zA-Z_0-9-]{1,255})$" + } + }, + "com.amazonaws.entityresolution#IdNamespaceIdMappingWorkflowProperties": { + "type": "structure", + "members": { + "idMappingType": { + "target": "com.amazonaws.entityresolution#IdMappingType", + "traits": { + "smithy.api#documentation": "

The type of ID mapping.

", + "smithy.api#required": {} + } + }, + "providerProperties": { + "target": "com.amazonaws.entityresolution#NamespaceProviderProperties", + "traits": { + "smithy.api#documentation": "

An object which defines any additional configurations required by the provider\n service.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object containing IdMappingType and\n ProviderProperties.

" + } + }, + "com.amazonaws.entityresolution#IdNamespaceIdMappingWorkflowPropertiesList": { + "type": "list", + "member": { + "target": "com.amazonaws.entityresolution#IdNamespaceIdMappingWorkflowProperties" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, + "com.amazonaws.entityresolution#IdNamespaceInputSource": { + "type": "structure", + "members": { + "inputSourceARN": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

An Glue table ARN for the input source table.

", + "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(idnamespace/[a-zA-Z_0-9-]{1,255})$|^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(matchingworkflow/[a-zA-Z_0-9-]{1,255})$|^arn:(aws|aws-us-gov|aws-cn):glue:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(table/[a-zA-Z_0-9-]{1,255}/[a-zA-Z_0-9-]{1,255})$", + "smithy.api#required": {} + } + }, + "schemaName": { + "target": "com.amazonaws.entityresolution#EntityName", + "traits": { + "smithy.api#documentation": "

The name of the schema.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object containing InputSourceARN and SchemaName.

" + } + }, + "com.amazonaws.entityresolution#IdNamespaceInputSourceConfig": { + "type": "list", + "member": { + "target": "com.amazonaws.entityresolution#IdNamespaceInputSource" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 20 + } + } + }, + "com.amazonaws.entityresolution#IdNamespaceList": { + "type": "list", + "member": { + "target": "com.amazonaws.entityresolution#IdNamespaceSummary" + } + }, + "com.amazonaws.entityresolution#IdNamespaceSummary": { + "type": "structure", + "members": { + "idNamespaceName": { + "target": "com.amazonaws.entityresolution#EntityName", + "traits": { + "smithy.api#documentation": "

The name of the ID namespace.

", + "smithy.api#required": {} + } + }, + "idNamespaceArn": { + "target": "com.amazonaws.entityresolution#IdNamespaceArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ID namespace.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.entityresolution#Description", + "traits": { + "smithy.api#documentation": "

The description of the ID namespace.

" + } + }, + "type": { + "target": "com.amazonaws.entityresolution#IdNamespaceType", + "traits": { + "smithy.api#documentation": "

The type of ID namespace. There are two types: SOURCE and\n TARGET.

\n

The SOURCE contains configurations for sourceId data that will\n be processed in an ID mapping workflow.

\n

The TARGET contains a configuration of targetId to which all\n sourceIds will resolve to.

", + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of when the ID namespace was created.

", + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of when the ID namespace was last updated.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of ID namespaces.

" + } + }, + "com.amazonaws.entityresolution#IdNamespaceType": { + "type": "enum", + "members": { + "SOURCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SOURCE" + } + }, + "TARGET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TARGET" + } + } + } + }, "com.amazonaws.entityresolution#IncrementalRunConfig": { "type": "structure", "members": { @@ -2514,7 +3611,7 @@ "target": "smithy.api#String", "traits": { "smithy.api#documentation": "

An Glue table ARN for the input source table.

", - "smithy.api#pattern": "^arn:aws:.*:.*:[0-9]+:.*$", + "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(idnamespace/[a-zA-Z_0-9-]{1,255})$|^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(matchingworkflow/[a-zA-Z_0-9-]{1,255})$|^arn:(aws|aws-us-gov|aws-cn):glue:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(table/[a-zA-Z_0-9-]{1,255}/[a-zA-Z_0-9-]{1,255})$", "smithy.api#required": {} } }, @@ -2613,12 +3710,52 @@ "matchIDs": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

The total number of matchIDs generated.

" + "smithy.api#documentation": "

The total number of matchIDs generated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object containing InputRecords, TotalRecordsProcessed,\n MatchIDs, and RecordsNotProcessed.

" + } + }, + "com.amazonaws.entityresolution#JobOutputSource": { + "type": "structure", + "members": { + "roleArn": { + "target": "com.amazonaws.entityresolution#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to access Amazon Web Services resources on your behalf as part of workflow\n execution.

", + "smithy.api#required": {} + } + }, + "outputS3Path": { + "target": "com.amazonaws.entityresolution#S3Path", + "traits": { + "smithy.api#documentation": "

The S3 path to which Entity Resolution will write the output table.

", + "smithy.api#required": {} + } + }, + "KMSArn": { + "target": "com.amazonaws.entityresolution#KMSArn", + "traits": { + "smithy.api#documentation": "

Customer KMS ARN for encryption at rest. If not provided, system will use\n an Entity Resolution managed KMS key.

" } } }, "traits": { - "smithy.api#documentation": "

An object containing InputRecords, TotalRecordsProcessed,\n MatchIDs, and RecordsNotProcessed.

" + "smithy.api#documentation": "

An object containing KMSArn, OutputS3Path, and\n RoleArn.

" + } + }, + "com.amazonaws.entityresolution#JobOutputSourceConfig": { + "type": "list", + "member": { + "target": "com.amazonaws.entityresolution#JobOutputSource" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } } }, "com.amazonaws.entityresolution#JobStatus": { @@ -2736,7 +3873,7 @@ "type": "structure", "members": { "workflowName": { - "target": "com.amazonaws.entityresolution#EntityName", + "target": "com.amazonaws.entityresolution#EntityNameOrIdMappingWorkflowArn", "traits": { "smithy.api#documentation": "

The name of the workflow to be retrieved.

", "smithy.api#httpLabel": {}, @@ -2869,6 +4006,89 @@ "smithy.api#output": {} } }, + "com.amazonaws.entityresolution#ListIdNamespaces": { + "type": "operation", + "input": { + "target": "com.amazonaws.entityresolution#ListIdNamespacesInput" + }, + "output": { + "target": "com.amazonaws.entityresolution#ListIdNamespacesOutput" + }, + "errors": [ + { + "target": "com.amazonaws.entityresolution#AccessDeniedException" + }, + { + "target": "com.amazonaws.entityresolution#InternalServerException" + }, + { + "target": "com.amazonaws.entityresolution#ThrottlingException" + }, + { + "target": "com.amazonaws.entityresolution#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of all ID namespaces.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/idnamespaces" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "idNamespaceSummaries" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.entityresolution#ListIdNamespacesInput": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.entityresolution#NextToken", + "traits": { + "smithy.api#documentation": "

The pagination token from the previous API call.

", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The maximum number of IdNamespace objects returned per page.

", + "smithy.api#httpQuery": "maxResults", + "smithy.api#range": { + "max": 25 + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.entityresolution#ListIdNamespacesOutput": { + "type": "structure", + "members": { + "idNamespaceSummaries": { + "target": "com.amazonaws.entityresolution#IdNamespaceList", + "traits": { + "smithy.api#documentation": "

A list of IdNamespaceSummaries objects.

" + } + }, + "nextToken": { + "target": "com.amazonaws.entityresolution#NextToken", + "traits": { + "smithy.api#documentation": "

The pagination token from the previous API call.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.entityresolution#ListMatchingJobs": { "type": "operation", "input": { @@ -3289,7 +4509,7 @@ "com.amazonaws.entityresolution#MatchingWorkflowArn": { "type": "string", "traits": { - "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:.*:[0-9]+:(matchingworkflow/.*)$" + "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(matchingworkflow/[a-zA-Z_0-9-]{1,255})$" } }, "com.amazonaws.entityresolution#MatchingWorkflowList": { @@ -3341,6 +4561,27 @@ "smithy.api#documentation": "

A list of MatchingWorkflowSummary objects, each of which contain the fields\n WorkflowName, WorkflowArn, CreatedAt,\n UpdatedAt.

" } }, + "com.amazonaws.entityresolution#NamespaceProviderProperties": { + "type": "structure", + "members": { + "providerServiceArn": { + "target": "com.amazonaws.entityresolution#ProviderServiceArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the provider service.

", + "smithy.api#required": {} + } + }, + "providerConfiguration": { + "target": "smithy.api#Document", + "traits": { + "smithy.api#documentation": "

An object which defines any additional configurations required by the provider\n service.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object containing ProviderConfiguration and\n ProviderServiceArn.

" + } + }, "com.amazonaws.entityresolution#NextToken": { "type": "string", "traits": { @@ -3427,6 +4668,45 @@ } } }, + "com.amazonaws.entityresolution#PolicyDocument": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 40960 + } + } + }, + "com.amazonaws.entityresolution#PolicyToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 36, + "max": 36 + }, + "smithy.api#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}$" + } + }, + "com.amazonaws.entityresolution#ProviderComponentSchema": { + "type": "structure", + "members": { + "schemas": { + "target": "com.amazonaws.entityresolution#Schemas", + "traits": { + "smithy.api#documentation": "

Input schema for the provider service.

" + } + }, + "providerSchemaAttributes": { + "target": "com.amazonaws.entityresolution#ProviderSchemaAttributes", + "traits": { + "smithy.api#documentation": "

The provider schema attributes.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input schema supported by provider service.

" + } + }, "com.amazonaws.entityresolution#ProviderEndpointConfiguration": { "type": "union", "members": { @@ -3441,13 +4721,39 @@ "smithy.api#documentation": "

The required configuration fields to use with the provider service.

" } }, + "com.amazonaws.entityresolution#ProviderIdNameSpaceConfiguration": { + "type": "structure", + "members": { + "description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The description of the ID namespace.

" + } + }, + "providerTargetConfigurationDefinition": { + "target": "smithy.api#Document", + "traits": { + "smithy.api#documentation": "

Configurations required for the target ID namespace.

" + } + }, + "providerSourceConfigurationDefinition": { + "target": "smithy.api#Document", + "traits": { + "smithy.api#documentation": "

Configurations required for the source ID namespace.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The provider configuration required for different ID namespace types.

" + } + }, "com.amazonaws.entityresolution#ProviderIntermediateDataAccessConfiguration": { "type": "structure", "members": { "awsAccountIds": { "target": "com.amazonaws.entityresolution#AwsAccountIdList", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account\n that\n provider can use to read or write data into the customer's intermediate S3\n bucket.

" + "smithy.api#documentation": "

The Amazon Web Services account that provider can use to read or write data into the\n customer's intermediate S3 bucket.

" } }, "requiredBucketActions": { @@ -3524,6 +4830,46 @@ "smithy.api#documentation": "

An object containing the providerServiceARN,\n intermediateSourceConfiguration, and\n providerConfiguration.

" } }, + "com.amazonaws.entityresolution#ProviderSchemaAttribute": { + "type": "structure", + "members": { + "fieldName": { + "target": "com.amazonaws.entityresolution#AttributeName", + "traits": { + "smithy.api#documentation": "

The field name.

", + "smithy.api#required": {} + } + }, + "type": { + "target": "com.amazonaws.entityresolution#SchemaAttributeType", + "traits": { + "smithy.api#documentation": "

The type of the provider schema attribute.

", + "smithy.api#required": {} + } + }, + "subType": { + "target": "com.amazonaws.entityresolution#AttributeName", + "traits": { + "smithy.api#documentation": "

The sub type of the provider schema attribute.

" + } + }, + "hashing": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

The hashing attribute of the provider schema.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The provider schema attribute.

" + } + }, + "com.amazonaws.entityresolution#ProviderSchemaAttributes": { + "type": "list", + "member": { + "target": "com.amazonaws.entityresolution#ProviderSchemaAttribute" + } + }, "com.amazonaws.entityresolution#ProviderServiceArn": { "type": "string", "traits": { @@ -3531,64 +4877,159 @@ "min": 20, "max": 255 }, - "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z-]+?-[0-9])::providerservice/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$" - } - }, - "com.amazonaws.entityresolution#ProviderServiceDisplayName": { - "type": "string", - "traits": { - "smithy.api#length": { - "max": 255 + "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$" + } + }, + "com.amazonaws.entityresolution#ProviderServiceDisplayName": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 255 + } + } + }, + "com.amazonaws.entityresolution#ProviderServiceList": { + "type": "list", + "member": { + "target": "com.amazonaws.entityresolution#ProviderServiceSummary" + } + }, + "com.amazonaws.entityresolution#ProviderServiceSummary": { + "type": "structure", + "members": { + "providerServiceArn": { + "target": "com.amazonaws.entityresolution#ProviderServiceArn", + "traits": { + "smithy.api#documentation": "

The ARN (Amazon Resource Name) that Entity Resolution generated for the\n providerService.

", + "smithy.api#required": {} + } + }, + "providerName": { + "target": "com.amazonaws.entityresolution#EntityName", + "traits": { + "smithy.api#documentation": "

The name of the provider. This name is typically the company name.

", + "smithy.api#required": {} + } + }, + "providerServiceDisplayName": { + "target": "com.amazonaws.entityresolution#ProviderServiceDisplayName", + "traits": { + "smithy.api#documentation": "

The display name of the provider service.

", + "smithy.api#required": {} + } + }, + "providerServiceName": { + "target": "com.amazonaws.entityresolution#EntityName", + "traits": { + "smithy.api#documentation": "

The name of the product that the provider service provides.

", + "smithy.api#required": {} + } + }, + "providerServiceType": { + "target": "com.amazonaws.entityresolution#ServiceType", + "traits": { + "smithy.api#documentation": "

The type of provider service.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of ProviderService objects, each of which contain the fields\n providerName, providerServiceArn,\n providerServiceName, and providerServiceType.

" + } + }, + "com.amazonaws.entityresolution#PutPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.entityresolution#PutPolicyInput" + }, + "output": { + "target": "com.amazonaws.entityresolution#PutPolicyOutput" + }, + "errors": [ + { + "target": "com.amazonaws.entityresolution#AccessDeniedException" + }, + { + "target": "com.amazonaws.entityresolution#ConflictException" + }, + { + "target": "com.amazonaws.entityresolution#InternalServerException" + }, + { + "target": "com.amazonaws.entityresolution#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.entityresolution#ThrottlingException" + }, + { + "target": "com.amazonaws.entityresolution#ValidationException" } + ], + "traits": { + "smithy.api#documentation": "

Updates the resource-based policy.

", + "smithy.api#http": { + "code": 200, + "method": "PUT", + "uri": "/policies/{arn}" + }, + "smithy.api#idempotent": {} } }, - "com.amazonaws.entityresolution#ProviderServiceList": { - "type": "list", - "member": { - "target": "com.amazonaws.entityresolution#ProviderServiceSummary" - } - }, - "com.amazonaws.entityresolution#ProviderServiceSummary": { + "com.amazonaws.entityresolution#PutPolicyInput": { "type": "structure", "members": { - "providerServiceArn": { - "target": "com.amazonaws.entityresolution#ProviderServiceArn", + "arn": { + "target": "com.amazonaws.entityresolution#VeniceGlobalArn", "traits": { - "smithy.api#documentation": "

The ARN (Amazon Resource Name) that Entity Resolution generated for the\n providerService.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource for which the policy needs to be\n updated.

", + "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "providerName": { - "target": "com.amazonaws.entityresolution#EntityName", + "token": { + "target": "com.amazonaws.entityresolution#PolicyToken", "traits": { - "smithy.api#documentation": "

The name of the provider. This name is typically the company name.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A unique identifier for the current revision of the policy.

" } }, - "providerServiceDisplayName": { - "target": "com.amazonaws.entityresolution#ProviderServiceDisplayName", + "policy": { + "target": "com.amazonaws.entityresolution#PolicyDocument", "traits": { - "smithy.api#documentation": "

The display name of the provider service.

", + "smithy.api#documentation": "

The resource-based policy.

", "smithy.api#required": {} } - }, - "providerServiceName": { - "target": "com.amazonaws.entityresolution#EntityName", + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.entityresolution#PutPolicyOutput": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.entityresolution#VeniceGlobalArn", "traits": { - "smithy.api#documentation": "

The name of the product that the provider service provides.

", + "smithy.api#documentation": "

The Entity Resolution resource ARN.

", "smithy.api#required": {} } }, - "providerServiceType": { - "target": "com.amazonaws.entityresolution#ServiceType", + "token": { + "target": "com.amazonaws.entityresolution#PolicyToken", "traits": { - "smithy.api#documentation": "

The type of provider service.

", + "smithy.api#documentation": "

A unique identifier for the current revision of the policy.

", "smithy.api#required": {} } + }, + "policy": { + "target": "com.amazonaws.entityresolution#PolicyDocument", + "traits": { + "smithy.api#documentation": "

The resource-based policy.

" + } } }, "traits": { - "smithy.api#documentation": "

A list of ProviderService objects, each of which contain the fields\n providerName, providerServiceArn,\n providerServiceName, and providerServiceType.

" + "smithy.api#output": {} } }, "com.amazonaws.entityresolution#RecordAttributeMap": { @@ -3608,7 +5049,7 @@ "smithy.api#length": { "max": 255 }, - "smithy.api#pattern": "^[a-zA-Z_0-9-.@ ()+\\t]*$" + "smithy.api#pattern": "^[a-zA-Z_0-9-./@ ()+\\t]*$" } }, "traits": { @@ -3627,7 +5068,7 @@ "resolutionType": { "target": "com.amazonaws.entityresolution#ResolutionType", "traits": { - "smithy.api#documentation": "

The type of matching. There are two types of matching: RULE_MATCHING and\n ML_MATCHING.

", + "smithy.api#documentation": "

The type of matching. There are three types of matching: RULE_MATCHING,\n ML_MATCHING, and PROVIDER.

", "smithy.api#required": {} } }, @@ -3687,6 +5128,10 @@ "com.amazonaws.entityresolution#RoleArn": { "type": "string", "traits": { + "smithy.api#length": { + "min": 32, + "max": 512 + }, "smithy.api#pattern": "^arn:aws:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$" } }, @@ -3729,7 +5174,7 @@ "smithy.api#documentation": "

A list of Rule objects, each of which have fields RuleName and\n MatchingKeys.

", "smithy.api#length": { "min": 1, - "max": 15 + "max": 25 }, "smithy.api#required": {} } @@ -3907,13 +5352,13 @@ "groupName": { "target": "com.amazonaws.entityresolution#AttributeName", "traits": { - "smithy.api#documentation": "

Instruct Entity Resolution to combine several columns into a unified column with the\n identical attribute type. For example, when working with columns such as first_name,\n middle_name, and last_name, assigning them a common GroupName will prompt\n Entity Resolution to concatenate them into a single value.

" + "smithy.api#documentation": "

A string that instructs Entity Resolution to combine several columns into a unified\n column with the identical attribute type.

\n

For example, when working with columns such as first_name,\n middle_name, and last_name, assigning them a common\n groupName will prompt Entity Resolution to concatenate them into a single\n value.

" } }, "matchKey": { "target": "com.amazonaws.entityresolution#AttributeName", "traits": { - "smithy.api#documentation": "

A key that allows grouping of multiple input attributes into a unified matching group.\n For example, let's consider a scenario where the source table contains various addresses,\n such as business_address and shipping_address. By assigning the\n MatchKey\n Address to both attributes, Entity Resolution will match records\n across these fields to create a consolidated matching group. If no MatchKey is\n specified for a column, it won't be utilized for matching purposes but will still be\n included in the output table.

" + "smithy.api#documentation": "

A key that allows grouping of multiple input attributes into a unified matching group.\n For example, consider a scenario where the source table contains various addresses, such as\n business_address and shipping_address. By assigning a\n matchKey called address to both attributes, Entity Resolution\n will match records across these fields to create a consolidated matching group. If no\n matchKey is specified for a column, it won't be utilized for matching\n purposes but will still be included in the output table.

" } }, "subType": { @@ -3924,7 +5369,7 @@ } }, "traits": { - "smithy.api#documentation": "

An object containing FieldName, Type, GroupName,\n and MatchKey.

" + "smithy.api#documentation": "

An object containing FieldName, Type, GroupName,\n MatchKey, and SubType.

" } }, "com.amazonaws.entityresolution#SchemaInputAttributes": { @@ -3939,10 +5384,16 @@ } } }, + "com.amazonaws.entityresolution#SchemaList": { + "type": "list", + "member": { + "target": "smithy.api#String" + } + }, "com.amazonaws.entityresolution#SchemaMappingArn": { "type": "string", "traits": { - "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:.*:[0-9]+:(schemamapping/.*)$" + "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(schemamapping/[a-zA-Z_0-9-]{1,255})$" } }, "com.amazonaws.entityresolution#SchemaMappingList": { @@ -3994,6 +5445,12 @@ "smithy.api#documentation": "

An object containing SchemaName, SchemaArn,\n CreatedAt, andUpdatedAt.

" } }, + "com.amazonaws.entityresolution#Schemas": { + "type": "list", + "member": { + "target": "com.amazonaws.entityresolution#SchemaList" + } + }, "com.amazonaws.entityresolution#ServiceType": { "type": "enum", "members": { @@ -4055,12 +5512,18 @@ "type": "structure", "members": { "workflowName": { - "target": "com.amazonaws.entityresolution#EntityName", + "target": "com.amazonaws.entityresolution#EntityNameOrIdMappingWorkflowArn", "traits": { "smithy.api#documentation": "

The name of the ID mapping job to be retrieved.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "outputSourceConfig": { + "target": "com.amazonaws.entityresolution#IdMappingJobOutputSourceConfig", + "traits": { + "smithy.api#documentation": "

A list of OutputSource objects.

" + } } }, "traits": { @@ -4076,6 +5539,12 @@ "smithy.api#documentation": "

The ID of the job.

", "smithy.api#required": {} } + }, + "outputSourceConfig": { + "target": "com.amazonaws.entityresolution#IdMappingJobOutputSourceConfig", + "traits": { + "smithy.api#documentation": "

A list of OutputSource objects.

" + } } }, "traits": { @@ -4153,6 +5622,84 @@ "smithy.api#output": {} } }, + "com.amazonaws.entityresolution#StatementAction": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 64 + }, + "smithy.api#pattern": "^(entityresolution:[a-zA-Z0-9]+)$" + } + }, + "com.amazonaws.entityresolution#StatementActionList": { + "type": "list", + "member": { + "target": "com.amazonaws.entityresolution#StatementAction" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.entityresolution#StatementCondition": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 40960 + } + } + }, + "com.amazonaws.entityresolution#StatementEffect": { + "type": "enum", + "members": { + "Allow": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Allow" + } + }, + "Deny": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Deny" + } + } + } + }, + "com.amazonaws.entityresolution#StatementId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[0-9A-Za-z]+$" + } + }, + "com.amazonaws.entityresolution#StatementPrincipal": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 12, + "max": 64 + }, + "smithy.api#pattern": "^(\\d{12})|([a-z0-9\\.]+)$" + } + }, + "com.amazonaws.entityresolution#StatementPrincipalList": { + "type": "list", + "member": { + "target": "com.amazonaws.entityresolution#StatementPrincipal" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, "com.amazonaws.entityresolution#TagKey": { "type": "string", "traits": { @@ -4271,6 +5818,22 @@ } } }, + "com.amazonaws.entityresolution#UniqueId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 760 + }, + "smithy.api#pattern": "^[a-zA-Z_0-9-,]*$" + } + }, + "com.amazonaws.entityresolution#UniqueIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.entityresolution#UniqueId" + } + }, "com.amazonaws.entityresolution#UntagResource": { "type": "operation", "input": { @@ -4389,8 +5952,7 @@ "outputSourceConfig": { "target": "com.amazonaws.entityresolution#IdMappingWorkflowOutputSourceConfig", "traits": { - "smithy.api#documentation": "

A list of OutputSource objects, each of which contains fields\n OutputS3Path and KMSArn.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A list of OutputSource objects, each of which contains fields\n OutputS3Path and KMSArn.

" } }, "idMappingTechniques": { @@ -4403,7 +5965,7 @@ "roleArn": { "target": "com.amazonaws.entityresolution#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to access resources on your behalf.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to access Amazon Web Services resources on your behalf.

", "smithy.api#required": {} } } @@ -4425,7 +5987,7 @@ "workflowArn": { "target": "com.amazonaws.entityresolution#IdMappingWorkflowArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the workflow role. Entity Resolution assumes this role\n to access resources on your behalf.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the workflow role. Entity Resolution assumes this role\n to access Amazon Web Services resources on your behalf.

", "smithy.api#required": {} } }, @@ -4445,8 +6007,7 @@ "outputSourceConfig": { "target": "com.amazonaws.entityresolution#IdMappingWorkflowOutputSourceConfig", "traits": { - "smithy.api#documentation": "

A list of OutputSource objects, each of which contains fields\n OutputS3Path and KMSArn.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A list of OutputSource objects, each of which contains fields\n OutputS3Path and KMSArn.

" } }, "idMappingTechniques": { @@ -4459,7 +6020,149 @@ "roleArn": { "target": "com.amazonaws.entityresolution#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to access resources on your behalf.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to access Amazon Web Services resources on your behalf.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.entityresolution#UpdateIdNamespace": { + "type": "operation", + "input": { + "target": "com.amazonaws.entityresolution#UpdateIdNamespaceInput" + }, + "output": { + "target": "com.amazonaws.entityresolution#UpdateIdNamespaceOutput" + }, + "errors": [ + { + "target": "com.amazonaws.entityresolution#AccessDeniedException" + }, + { + "target": "com.amazonaws.entityresolution#InternalServerException" + }, + { + "target": "com.amazonaws.entityresolution#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.entityresolution#ThrottlingException" + }, + { + "target": "com.amazonaws.entityresolution#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates an existing ID namespace.

", + "smithy.api#http": { + "code": 200, + "method": "PUT", + "uri": "/idnamespaces/{idNamespaceName}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.entityresolution#UpdateIdNamespaceInput": { + "type": "structure", + "members": { + "idNamespaceName": { + "target": "com.amazonaws.entityresolution#EntityName", + "traits": { + "smithy.api#documentation": "

The name of the ID namespace.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.entityresolution#Description", + "traits": { + "smithy.api#documentation": "

The description of the ID namespace.

" + } + }, + "inputSourceConfig": { + "target": "com.amazonaws.entityresolution#IdNamespaceInputSourceConfig", + "traits": { + "smithy.api#documentation": "

A list of InputSource objects, which have the fields\n InputSourceARN and SchemaName.

" + } + }, + "idMappingWorkflowProperties": { + "target": "com.amazonaws.entityresolution#IdNamespaceIdMappingWorkflowPropertiesList", + "traits": { + "smithy.api#documentation": "

Determines the properties of IdMappingWorkflow where this\n IdNamespace can be used as a Source or a\n Target.

" + } + }, + "roleArn": { + "target": "com.amazonaws.entityresolution#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to access the resources defined in this IdNamespace on your behalf\n as part of a workflow run.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.entityresolution#UpdateIdNamespaceOutput": { + "type": "structure", + "members": { + "idNamespaceName": { + "target": "com.amazonaws.entityresolution#EntityName", + "traits": { + "smithy.api#documentation": "

The name of the ID namespace.

", + "smithy.api#required": {} + } + }, + "idNamespaceArn": { + "target": "com.amazonaws.entityresolution#IdNamespaceArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the ID namespace.

", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.entityresolution#Description", + "traits": { + "smithy.api#documentation": "

The description of the ID namespace.

" + } + }, + "inputSourceConfig": { + "target": "com.amazonaws.entityresolution#IdNamespaceInputSourceConfig", + "traits": { + "smithy.api#documentation": "

A list of InputSource objects, which have the fields\n InputSourceARN and SchemaName.

" + } + }, + "idMappingWorkflowProperties": { + "target": "com.amazonaws.entityresolution#IdNamespaceIdMappingWorkflowPropertiesList", + "traits": { + "smithy.api#documentation": "

Determines the properties of IdMappingWorkflow where this\n IdNamespace can be used as a Source or a\n Target.

" + } + }, + "type": { + "target": "com.amazonaws.entityresolution#IdNamespaceType", + "traits": { + "smithy.api#documentation": "

The type of ID namespace. There are two types: SOURCE and\n TARGET.

\n

The SOURCE contains configurations for sourceId data that will\n be processed in an ID mapping workflow.

\n

The TARGET contains a configuration of targetId to which all\n sourceIds will resolve to.

", + "smithy.api#required": {} + } + }, + "roleArn": { + "target": "com.amazonaws.entityresolution#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Entity Resolution assumes\n this role to access the resources defined in this IdNamespace on your behalf\n as part of a workflow run.

" + } + }, + "createdAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of when the ID namespace was created.

", + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of when the ID namespace was last updated.

", "smithy.api#required": {} } } @@ -4732,7 +6435,7 @@ "com.amazonaws.entityresolution#VeniceGlobalArn": { "type": "string", "traits": { - "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):.*:[0-9]+:((schemamapping|matchingworkflow|idmappingworkflow)/[a-zA-Z0-9_-]+)$" + "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:((schemamapping|matchingworkflow|idmappingworkflow|idnamespace)/[a-zA-Z_0-9-]{1,255})$" } } } diff --git a/models/fms.json b/models/fms.json index 1430dd10a2..3d53d7ff4c 100644 --- a/models/fms.json +++ b/models/fms.json @@ -1483,7 +1483,7 @@ "Status": { "target": "com.amazonaws.fms#OrganizationStatus", "traits": { - "smithy.api#documentation": "

The current status of the request to onboard a member account as an Firewall Manager administator.

\n
    \n
  • \n

    \n ONBOARDING - The account is onboarding to Firewall Manager as an administrator.

    \n
  • \n
  • \n

    \n ONBOARDING_COMPLETE - Firewall Manager The account is onboarded to Firewall Manager as an administrator, and can perform actions on the resources defined in their AdminScope.

    \n
  • \n
  • \n

    \n OFFBOARDING - The account is being removed as an Firewall Manager administrator.

    \n
  • \n
  • \n

    \n OFFBOARDING_COMPLETE - The account has been removed as an Firewall Manager administrator.

    \n
  • \n
" + "smithy.api#documentation": "

The current status of the request to onboard a member account as an Firewall Manager administrator.

\n
    \n
  • \n

    \n ONBOARDING - The account is onboarding to Firewall Manager as an administrator.

    \n
  • \n
  • \n

    \n ONBOARDING_COMPLETE - Firewall Manager The account is onboarded to Firewall Manager as an administrator, and can perform actions on the resources defined in their AdminScope.

    \n
  • \n
  • \n

    \n OFFBOARDING - The account is being removed as an Firewall Manager administrator.

    \n
  • \n
  • \n

    \n OFFBOARDING_COMPLETE - The account has been removed as an Firewall Manager administrator.

    \n
  • \n
" } } }, @@ -2000,6 +2000,9 @@ "smithy.api#default": false } }, + "com.amazonaws.fms#BooleanObject": { + "type": "boolean" + }, "com.amazonaws.fms#CIDR": { "type": "string", "traits": { @@ -2057,6 +2060,66 @@ "target": "com.amazonaws.fms#ComplianceViolator" } }, + "com.amazonaws.fms#CreateNetworkAclAction": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.fms#LengthBoundedString", + "traits": { + "smithy.api#documentation": "

Brief description of this remediation action.

" + } + }, + "Vpc": { + "target": "com.amazonaws.fms#ActionTarget", + "traits": { + "smithy.api#documentation": "

The VPC that's associated with the remediation action.

" + } + }, + "FMSCanRemediate": { + "target": "com.amazonaws.fms#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates whether it is possible for Firewall Manager to perform this remediation action. A false value indicates that auto remediation is disabled or Firewall Manager is unable to perform the action due to a conflict of some kind.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the CreateNetworkAcl action in Amazon EC2. This is a remediation option in RemediationAction.

" + } + }, + "com.amazonaws.fms#CreateNetworkAclEntriesAction": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.fms#LengthBoundedString", + "traits": { + "smithy.api#documentation": "

Brief description of this remediation action.

" + } + }, + "NetworkAclId": { + "target": "com.amazonaws.fms#ActionTarget", + "traits": { + "smithy.api#documentation": "

The network ACL that's associated with the remediation action.

" + } + }, + "NetworkAclEntriesToBeCreated": { + "target": "com.amazonaws.fms#EntriesDescription", + "traits": { + "smithy.api#documentation": "

Lists the entries that the remediation action would create.

" + } + }, + "FMSCanRemediate": { + "target": "com.amazonaws.fms#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates whether it is possible for Firewall Manager to perform this remediation action. A false value indicates that auto remediation is disabled or Firewall Manager is unable to perform the action due to a conflict of some kind.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the CreateNetworkAclEntries action in Amazon EC2. This is a remediation option in RemediationAction.

" + } + }, "com.amazonaws.fms#CustomerPolicyScopeId": { "type": "string", "traits": { @@ -2154,6 +2217,39 @@ "smithy.api#input": {} } }, + "com.amazonaws.fms#DeleteNetworkAclEntriesAction": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.fms#LengthBoundedString", + "traits": { + "smithy.api#documentation": "

Brief description of this remediation action.

" + } + }, + "NetworkAclId": { + "target": "com.amazonaws.fms#ActionTarget", + "traits": { + "smithy.api#documentation": "

The network ACL that's associated with the remediation action.

" + } + }, + "NetworkAclEntriesToBeDeleted": { + "target": "com.amazonaws.fms#EntriesDescription", + "traits": { + "smithy.api#documentation": "

Lists the entries that the remediation action would delete.

" + } + }, + "FMSCanRemediate": { + "target": "com.amazonaws.fms#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates whether it is possible for Firewall Manager to perform this remediation action. A false value indicates that auto remediation is disabled or Firewall Manager is unable to perform the action due to a conflict of some kind.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the DeleteNetworkAclEntries action in Amazon EC2. This is a remediation option in RemediationAction.

" + } + }, "com.amazonaws.fms#DeleteNotificationChannel": { "type": "operation", "input": { @@ -2856,6 +2952,147 @@ "smithy.api#documentation": "

Information about the ReplaceRouteTableAssociation action in Amazon EC2.

" } }, + "com.amazonaws.fms#EntriesDescription": { + "type": "list", + "member": { + "target": "com.amazonaws.fms#EntryDescription" + } + }, + "com.amazonaws.fms#EntriesWithConflicts": { + "type": "list", + "member": { + "target": "com.amazonaws.fms#EntryDescription" + } + }, + "com.amazonaws.fms#EntryDescription": { + "type": "structure", + "members": { + "EntryDetail": { + "target": "com.amazonaws.fms#NetworkAclEntry", + "traits": { + "smithy.api#documentation": "

Describes a rule in a network ACL.

\n

Each network ACL has a set of numbered ingress rules and a separate set of numbered egress rules. When determining\nwhether a packet should be allowed in or out of a subnet associated with the network ACL, Amazon Web Services processes the\n entries in the network ACL according to the rule numbers, in ascending order.

\n

When you manage an individual network ACL, you explicitly specify the rule numbers. When you specify the network ACL rules in a Firewall Manager policy, \n you provide the rules to run first, in the order that you want them to run, and the rules to run last, in the order \n that you want them to run. Firewall Manager assigns the rule numbers for you when you save the network ACL policy specification.

" + } + }, + "EntryRuleNumber": { + "target": "com.amazonaws.fms#IntegerObjectMinimum0", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The rule number for the entry. ACL entries are processed in ascending order by rule number. In a Firewall Manager network ACL policy, Firewall Manager \n assigns rule numbers.

" + } + }, + "EntryType": { + "target": "com.amazonaws.fms#EntryType", + "traits": { + "smithy.api#documentation": "

Specifies whether the entry is managed by Firewall Manager or by a user, and, for Firewall Manager-managed entries, specifies whether the entry \n is among those that run first in the network ACL or those that run last.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a single rule in a network ACL.

" + } + }, + "com.amazonaws.fms#EntryType": { + "type": "enum", + "members": { + "FMSManagedFirstEntry": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FMS_MANAGED_FIRST_ENTRY" + } + }, + "FMSManagedLastEntry": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FMS_MANAGED_LAST_ENTRY" + } + }, + "CustomEntry": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM_ENTRY" + } + } + } + }, + "com.amazonaws.fms#EntryViolation": { + "type": "structure", + "members": { + "ExpectedEntry": { + "target": "com.amazonaws.fms#EntryDescription", + "traits": { + "smithy.api#documentation": "

The Firewall Manager-managed network ACL entry that is involved in the entry violation.

" + } + }, + "ExpectedEvaluationOrder": { + "target": "com.amazonaws.fms#LengthBoundedString", + "traits": { + "smithy.api#documentation": "

The evaluation location within the ordered list of entries where the ExpectedEntry should be, according to the network ACL policy specifications.

" + } + }, + "ActualEvaluationOrder": { + "target": "com.amazonaws.fms#LengthBoundedString", + "traits": { + "smithy.api#documentation": "

The evaluation location within the ordered list of entries where the ExpectedEntry is currently located.

" + } + }, + "EntryAtExpectedEvaluationOrder": { + "target": "com.amazonaws.fms#EntryDescription", + "traits": { + "smithy.api#documentation": "

The entry that's currently in the ExpectedEvaluationOrder location, in place of the expected entry.

" + } + }, + "EntriesWithConflicts": { + "target": "com.amazonaws.fms#EntriesWithConflicts", + "traits": { + "smithy.api#documentation": "

The list of entries that are in conflict with ExpectedEntry.

" + } + }, + "EntryViolationReasons": { + "target": "com.amazonaws.fms#EntryViolationReasons", + "traits": { + "smithy.api#documentation": "

Descriptions of the violations that Firewall Manager found for these entries.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Detailed information about an entry violation in a network ACL. The violation is against the network ACL specification inside the\n Firewall Manager network ACL policy. This data object is part of InvalidNetworkAclEntriesViolation.

" + } + }, + "com.amazonaws.fms#EntryViolationReason": { + "type": "enum", + "members": { + "MissingExpectedEntry": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MISSING_EXPECTED_ENTRY" + } + }, + "IncorrectEntryOrder": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INCORRECT_ENTRY_ORDER" + } + }, + "EntryConflict": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENTRY_CONFLICT" + } + } + } + }, + "com.amazonaws.fms#EntryViolationReasons": { + "type": "list", + "member": { + "target": "com.amazonaws.fms#EntryViolationReason" + } + }, + "com.amazonaws.fms#EntryViolations": { + "type": "list", + "member": { + "target": "com.amazonaws.fms#EntryViolation" + } + }, "com.amazonaws.fms#ErrorMessage": { "type": "string" }, @@ -3213,7 +3450,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about the specified account's administrative scope. The admistrative scope defines the resources that an Firewall Manager administrator can manage.

" + "smithy.api#documentation": "

Returns information about the specified account's administrative scope. The administrative scope defines the resources that an Firewall Manager administrator can manage.

" } }, "com.amazonaws.fms#GetAdminScopeRequest": { @@ -3222,7 +3459,7 @@ "AdminAccount": { "target": "com.amazonaws.fms#AWSAccountId", "traits": { - "smithy.api#documentation": "

The administator account that you want to get the details for.

", + "smithy.api#documentation": "

The administrator account that you want to get the details for.

", "smithy.api#required": {} } } @@ -3243,7 +3480,7 @@ "Status": { "target": "com.amazonaws.fms#OrganizationStatus", "traits": { - "smithy.api#documentation": "

The current status of the request to onboard a member account as an Firewall Manager administator.

\n
    \n
  • \n

    \n ONBOARDING - The account is onboarding to Firewall Manager as an administrator.

    \n
  • \n
  • \n

    \n ONBOARDING_COMPLETE - Firewall Manager The account is onboarded to Firewall Manager as an administrator, and can perform actions on the resources defined in their AdminScope.

    \n
  • \n
  • \n

    \n OFFBOARDING - The account is being removed as an Firewall Manager administrator.

    \n
  • \n
  • \n

    \n OFFBOARDING_COMPLETE - The account has been removed as an Firewall Manager administrator.

    \n
  • \n
" + "smithy.api#documentation": "

The current status of the request to onboard a member account as an Firewall Manager administrator.

\n
    \n
  • \n

    \n ONBOARDING - The account is onboarding to Firewall Manager as an administrator.

    \n
  • \n
  • \n

    \n ONBOARDING_COMPLETE - Firewall Manager The account is onboarded to Firewall Manager as an administrator, and can perform actions on the resources defined in their AdminScope.

    \n
  • \n
  • \n

    \n OFFBOARDING - The account is being removed as an Firewall Manager administrator.

    \n
  • \n
  • \n

    \n OFFBOARDING_COMPLETE - The account has been removed as an Firewall Manager administrator.

    \n
  • \n
" } } }, @@ -3339,7 +3576,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns detailed compliance information about the specified member account. Details\n include resources that are in and out of compliance with the specified policy.

\n
    \n
  • \n

    Resources are\n considered noncompliant for WAF and Shield Advanced policies if the specified policy has\n not been applied to them.

    \n
  • \n
  • \n

    Resources are considered noncompliant for security group policies if\n they are in scope of the policy, they violate one or more of the policy rules, and remediation\n is disabled or not possible.

    \n
  • \n
  • \n

    Resources are considered noncompliant for Network Firewall policies\n if a firewall is missing in the VPC, if the firewall endpoint isn't set up in an expected Availability Zone and subnet,\n if a subnet created by the Firewall Manager doesn't have the expected route table,\n and for modifications to a firewall policy that violate the Firewall Manager policy's rules.

    \n
  • \n
  • \n

    Resources are considered noncompliant for DNS Firewall policies\n if a DNS Firewall rule group is missing from the rule group associations for the VPC.

    \n
  • \n
" + "smithy.api#documentation": "

Returns detailed compliance information about the specified member account. Details\n include resources that are in and out of compliance with the specified policy.

\n

The reasons for resources being considered compliant depend on the Firewall Manager policy type.

" } }, "com.amazonaws.fms#GetComplianceDetailRequest": { @@ -3807,7 +4044,7 @@ "PolicyId": { "target": "com.amazonaws.fms#PolicyId", "traits": { - "smithy.api#documentation": "

The ID of the Firewall Manager policy that you want the details for. You can get violation details for the following policy types:

\n
    \n
  • \n

    DNS Firewall

    \n
  • \n
  • \n

    Imported Network Firewall

    \n
  • \n
  • \n

    Network Firewall

    \n
  • \n
  • \n

    Security group content audit

    \n
  • \n
  • \n

    Third-party firewall

    \n
  • \n
", + "smithy.api#documentation": "

The ID of the Firewall Manager policy that you want the details for. You can get violation details for the following policy types:

\n
    \n
  • \n

    DNS Firewall

    \n
  • \n
  • \n

    Imported Network Firewall

    \n
  • \n
  • \n

    Network Firewall

    \n
  • \n
  • \n

    Security group content audit

    \n
  • \n
  • \n

    Network ACL

    \n
  • \n
  • \n

    Third-party firewall

    \n
  • \n
", "smithy.api#required": {} } }, @@ -3860,6 +4097,15 @@ } } }, + "com.amazonaws.fms#IPPortNumberInteger": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 65535 + } + } + }, "com.amazonaws.fms#Identifier": { "type": "string", "traits": { @@ -3876,6 +4122,25 @@ "target": "com.amazonaws.fms#Identifier" } }, + "com.amazonaws.fms#IntegerObject": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": -2147483648, + "max": 2147483647 + } + } + }, + "com.amazonaws.fms#IntegerObjectMinimum0": { + "type": "integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#range": { + "min": 0, + "max": 2147483647 + } + } + }, "com.amazonaws.fms#InternalErrorException": { "type": "structure", "members": { @@ -3900,6 +4165,44 @@ "smithy.api#error": "client" } }, + "com.amazonaws.fms#InvalidNetworkAclEntriesViolation": { + "type": "structure", + "members": { + "Vpc": { + "target": "com.amazonaws.fms#ResourceId", + "traits": { + "smithy.api#documentation": "

The VPC where the violation was found.

" + } + }, + "Subnet": { + "target": "com.amazonaws.fms#ResourceId", + "traits": { + "smithy.api#documentation": "

The subnet that's associated with the network ACL.

" + } + }, + "SubnetAvailabilityZone": { + "target": "com.amazonaws.fms#LengthBoundedString", + "traits": { + "smithy.api#documentation": "

The Availability Zone where the network ACL is in use.

" + } + }, + "CurrentAssociatedNetworkAcl": { + "target": "com.amazonaws.fms#ResourceId", + "traits": { + "smithy.api#documentation": "

The network ACL containing the entry violations.

" + } + }, + "EntryViolations": { + "target": "com.amazonaws.fms#EntryViolations", + "traits": { + "smithy.api#documentation": "

Detailed information about the entry violations in the network ACL.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Violation detail for the entries in a network ACL resource.

" + } + }, "com.amazonaws.fms#InvalidOperationException": { "type": "structure", "members": { @@ -3933,6 +4236,15 @@ "target": "com.amazonaws.fms#DetailedInfo" } }, + "com.amazonaws.fms#LengthBoundedNonEmptyString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + }, "com.amazonaws.fms#LengthBoundedString": { "type": "string", "traits": { @@ -3998,13 +4310,13 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" } }, "MaxResults": { "target": "com.amazonaws.fms#PaginationMaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of objects that you want Firewall Manager to return for this request. If more\n objects are available, in the response, Firewall Manager provides a\n NextToken value that you can use in a subsequent call to get the next batch of objects.

" + "smithy.api#documentation": "

The maximum number of objects that you want Firewall Manager to return for this request. If more\n objects are available, in the response, Firewall Manager provides a\n NextToken value that you can use in a subsequent call to get the next batch of objects.

" } } }, @@ -4024,7 +4336,7 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" } } }, @@ -4067,13 +4379,13 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" } }, "MaxResults": { "target": "com.amazonaws.fms#PaginationMaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of objects that you want Firewall Manager to return for this request. If more\n objects are available, in the response, Firewall Manager provides a\n NextToken value that you can use in a subsequent call to get the next batch of objects.

" + "smithy.api#documentation": "

The maximum number of objects that you want Firewall Manager to return for this request. If more\n objects are available, in the response, Firewall Manager provides a\n NextToken value that you can use in a subsequent call to get the next batch of objects.

" } } }, @@ -4093,7 +4405,7 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" } } }, @@ -4297,13 +4609,13 @@ "MaxResults": { "target": "com.amazonaws.fms#PaginationMaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of objects that you want Firewall Manager to return for this request. If more\n objects are available, in the response, Firewall Manager provides a\n NextToken value that you can use in a subsequent call to get the next batch of objects.

" + "smithy.api#documentation": "

The maximum number of objects that you want Firewall Manager to return for this request. If more\n objects are available, in the response, Firewall Manager provides a\n NextToken value that you can use in a subsequent call to get the next batch of objects.

" } }, "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" } } }, @@ -4323,7 +4635,7 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" } } }, @@ -4595,13 +4907,13 @@ "MaxResults": { "target": "com.amazonaws.fms#PaginationMaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of objects that you want Firewall Manager to return for this request. If more\n objects are available, in the response, Firewall Manager provides a\n NextToken value that you can use in a subsequent call to get the next batch of objects.

" + "smithy.api#documentation": "

The maximum number of objects that you want Firewall Manager to return for this request. If more\n objects are available, in the response, Firewall Manager provides a\n NextToken value that you can use in a subsequent call to get the next batch of objects.

" } }, "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" } } }, @@ -4622,7 +4934,7 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" } } }, @@ -4659,13 +4971,13 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" } }, "MaxResults": { "target": "com.amazonaws.fms#PaginationMaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of objects that you want Firewall Manager to return for this request. If more\n objects are available, in the response, Firewall Manager provides a\n NextToken value that you can use in a subsequent call to get the next batch of objects.

" + "smithy.api#documentation": "

The maximum number of objects that you want Firewall Manager to return for this request. If more\n objects are available, in the response, Firewall Manager provides a\n NextToken value that you can use in a subsequent call to get the next batch of objects.

" } } }, @@ -4685,7 +4997,7 @@ "NextToken": { "target": "com.amazonaws.fms#PaginationToken", "traits": { - "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + "smithy.api#documentation": "

When you request a list of objects with a MaxResults setting, if the number of objects that are still available\n for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken\n value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" } } }, @@ -4877,6 +5189,171 @@ "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" } }, + "com.amazonaws.fms#NetworkAclCommonPolicy": { + "type": "structure", + "members": { + "NetworkAclEntrySet": { + "target": "com.amazonaws.fms#NetworkAclEntrySet", + "traits": { + "smithy.api#documentation": "

The definition of the first and last rules for the network ACL policy.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines a Firewall Manager network ACL policy. This is used in the PolicyOption of a SecurityServicePolicyData for a Policy, when \n the SecurityServicePolicyData type is set to NETWORK_ACL_COMMON.

\n

For information about network ACLs, see \n Control traffic to subnets using network ACLs \n in the Amazon Virtual Private Cloud User Guide.

" + } + }, + "com.amazonaws.fms#NetworkAclEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.fms#NetworkAclEntry" + } + }, + "com.amazonaws.fms#NetworkAclEntry": { + "type": "structure", + "members": { + "IcmpTypeCode": { + "target": "com.amazonaws.fms#NetworkAclIcmpTypeCode", + "traits": { + "smithy.api#documentation": "

ICMP protocol: The ICMP type and code.

" + } + }, + "Protocol": { + "target": "com.amazonaws.fms#LengthBoundedString", + "traits": { + "smithy.api#documentation": "

The protocol number. A value of \"-1\" means all protocols.

", + "smithy.api#required": {} + } + }, + "PortRange": { + "target": "com.amazonaws.fms#NetworkAclPortRange", + "traits": { + "smithy.api#documentation": "

TCP or UDP protocols: The range of ports the rule applies to.

" + } + }, + "CidrBlock": { + "target": "com.amazonaws.fms#LengthBoundedNonEmptyString", + "traits": { + "smithy.api#documentation": "

The IPv4 network range to allow or deny, in CIDR notation.

" + } + }, + "Ipv6CidrBlock": { + "target": "com.amazonaws.fms#LengthBoundedNonEmptyString", + "traits": { + "smithy.api#documentation": "

The IPv6 network range to allow or deny, in CIDR notation.

" + } + }, + "RuleAction": { + "target": "com.amazonaws.fms#NetworkAclRuleAction", + "traits": { + "smithy.api#documentation": "

Indicates whether to allow or deny the traffic that matches the rule.

", + "smithy.api#required": {} + } + }, + "Egress": { + "target": "com.amazonaws.fms#BooleanObject", + "traits": { + "smithy.api#documentation": "

Indicates whether the rule is an egress, or outbound, rule (applied to traffic leaving the subnet). If it's not\n an egress rule, then it's an ingress, or inbound, rule.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a rule in a network ACL.

\n

Each network ACL has a set of numbered ingress rules and a separate set of numbered egress rules. When determining\nwhether a packet should be allowed in or out of a subnet associated with the network ACL, Amazon Web Services processes the\n entries in the network ACL according to the rule numbers, in ascending order.

\n

When you manage an individual network ACL, you explicitly specify the rule numbers. When you specify the network ACL rules in a Firewall Manager policy, \n you provide the rules to run first, in the order that you want them to run, and the rules to run last, in the order \n that you want them to run. Firewall Manager assigns the rule numbers for you when you save the network ACL policy specification.

" + } + }, + "com.amazonaws.fms#NetworkAclEntrySet": { + "type": "structure", + "members": { + "FirstEntries": { + "target": "com.amazonaws.fms#NetworkAclEntries", + "traits": { + "smithy.api#documentation": "

The rules that you want to run first in the Firewall Manager managed network ACLs.

\n \n

Provide these in the order in which you want them to run. Firewall Manager will assign\n the specific rule numbers for you, in the network ACLs that it creates.

\n
\n

You must specify at least one first entry or one last entry in any network ACL policy.

" + } + }, + "ForceRemediateForFirstEntries": { + "target": "com.amazonaws.fms#BooleanObject", + "traits": { + "smithy.api#documentation": "

Applies only when remediation is enabled for the policy as a whole. Firewall Manager uses this setting when it finds policy \n violations that involve conflicts between the custom entries and the policy entries.

\n

If forced remediation is disabled, Firewall Manager marks the network ACL as noncompliant and does not try to \n remediate. For more information about the remediation behavior, see \nNetwork access control list (ACL) policies \n in the Firewall Manager Developer Guide.

", + "smithy.api#required": {} + } + }, + "LastEntries": { + "target": "com.amazonaws.fms#NetworkAclEntries", + "traits": { + "smithy.api#documentation": "

The rules that you want to run last in the Firewall Manager managed network ACLs.

\n \n

Provide these in the order in which you want them to run. Firewall Manager will assign\n the specific rule numbers for you, in the network ACLs that it creates.

\n
\n

You must specify at least one first entry or one last entry in any network ACL policy.

" + } + }, + "ForceRemediateForLastEntries": { + "target": "com.amazonaws.fms#BooleanObject", + "traits": { + "smithy.api#documentation": "

Applies only when remediation is enabled for the policy as a whole. Firewall Manager uses this setting when it finds policy \n violations that involve conflicts between the custom entries and the policy entries.

\n

If forced remediation is disabled, Firewall Manager marks the network ACL as noncompliant and does not try to \n remediate. For more information about the remediation behavior, see \nNetwork access control list (ACL) policies \n in the Firewall Manager Developer Guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration of the first and last rules for the network ACL policy, and the remediation settings for each.

" + } + }, + "com.amazonaws.fms#NetworkAclIcmpTypeCode": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.fms#IntegerObject", + "traits": { + "smithy.api#documentation": "

ICMP code.

" + } + }, + "Type": { + "target": "com.amazonaws.fms#IntegerObject", + "traits": { + "smithy.api#documentation": "

ICMP type.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

ICMP protocol: The ICMP type and code.

" + } + }, + "com.amazonaws.fms#NetworkAclPortRange": { + "type": "structure", + "members": { + "From": { + "target": "com.amazonaws.fms#IPPortNumberInteger", + "traits": { + "smithy.api#documentation": "

The beginning port number of the range.

" + } + }, + "To": { + "target": "com.amazonaws.fms#IPPortNumberInteger", + "traits": { + "smithy.api#documentation": "

The ending port number of the range.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

TCP or UDP protocols: The range of ports the rule applies to.

" + } + }, + "com.amazonaws.fms#NetworkAclRuleAction": { + "type": "enum", + "members": { + "ALLOW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allow" + } + }, + "DENY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deny" + } + } + } + }, "com.amazonaws.fms#NetworkFirewallAction": { "type": "string", "traits": { @@ -5608,7 +6085,7 @@ "ResourceType": { "target": "com.amazonaws.fms#ResourceType", "traits": { - "smithy.api#documentation": "

The type of resource protected by or in scope of the policy. This is in the format shown\n in the Amazon Web Services Resource Types Reference.\n To apply this policy to multiple resource types, specify a resource type of ResourceTypeList and then specify the resource types in a ResourceTypeList.

\n

The following are valid resource types for each Firewall Manager policy type:

\n
    \n
  • \n

    Amazon Web Services WAF Classic - AWS::ApiGateway::Stage, AWS::CloudFront::Distribution, and AWS::ElasticLoadBalancingV2::LoadBalancer.

    \n
  • \n
  • \n

    WAF - AWS::ApiGateway::Stage, AWS::ElasticLoadBalancingV2::LoadBalancer, and AWS::CloudFront::Distribution.

    \n
  • \n
  • \n

    DNS Firewall, Network Firewall, and third-party firewall - AWS::EC2::VPC.

    \n
  • \n
  • \n

    Shield Advanced - AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::ElasticLoadBalancing::LoadBalancer, AWS::EC2::EIP, and AWS::CloudFront::Distribution.

    \n
  • \n
  • \n

    Security group content audit - AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, and AWS::EC2::Instance.

    \n
  • \n
  • \n

    Security group usage audit - AWS::EC2::SecurityGroup.

    \n
  • \n
", + "smithy.api#documentation": "

The type of resource protected by or in scope of the policy. This is in the format shown\n in the Amazon Web Services Resource Types Reference.\n To apply this policy to multiple resource types, specify a resource type of ResourceTypeList and then specify the resource types in a ResourceTypeList.

\n

The following are valid resource types for each Firewall Manager policy type:

\n
    \n
  • \n

    Amazon Web Services WAF Classic - AWS::ApiGateway::Stage, AWS::CloudFront::Distribution, and AWS::ElasticLoadBalancingV2::LoadBalancer.

    \n
  • \n
  • \n

    WAF - AWS::ApiGateway::Stage, AWS::ElasticLoadBalancingV2::LoadBalancer, and AWS::CloudFront::Distribution.

    \n
  • \n
  • \n

    Shield Advanced - AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::ElasticLoadBalancing::LoadBalancer, AWS::EC2::EIP, and AWS::CloudFront::Distribution.

    \n
  • \n
  • \n

    Network ACL - AWS::EC2::Subnet.

    \n
  • \n
  • \n

    Security group usage audit - AWS::EC2::SecurityGroup.

    \n
  • \n
  • \n

    Security group content audit - AWS::EC2::SecurityGroup, AWS::EC2::NetworkInterface, and AWS::EC2::Instance.

    \n
  • \n
  • \n

    DNS Firewall, Network Firewall, and third-party firewall - AWS::EC2::VPC.

    \n
  • \n
", "smithy.api#required": {} } }, @@ -5644,7 +6121,7 @@ "target": "com.amazonaws.fms#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Indicates whether Firewall Manager should automatically remove protections from resources that leave the policy scope and clean up resources\n that Firewall Manager is managing for accounts when those accounts leave policy scope. For example, Firewall Manager will disassociate a Firewall Manager managed web ACL\n from a protected customer resource when the customer resource leaves policy scope.

\n

By default, Firewall Manager doesn't remove protections or delete Firewall Manager managed resources.

\n

This option is not available for Shield Advanced or WAF Classic policies.

" + "smithy.api#documentation": "

Indicates whether Firewall Manager should automatically remove protections from resources that leave the policy scope and clean up resources\n that Firewall Manager is managing for accounts when those accounts leave policy scope. For example, Firewall Manager will disassociate a Firewall Manager managed web ACL\n from a protected customer resource when the customer resource leaves policy scope.

\n

By default, Firewall Manager doesn't remove protections or delete Firewall Manager managed resources.

\n

This option is not available for Shield Advanced or WAF Classic policies.

" } }, "IncludeMap": { @@ -5830,10 +6307,16 @@ "traits": { "smithy.api#documentation": "

Defines the policy options for a third-party firewall policy.

" } + }, + "NetworkAclCommonPolicy": { + "target": "com.amazonaws.fms#NetworkAclCommonPolicy", + "traits": { + "smithy.api#documentation": "

Defines a Firewall Manager network ACL policy.

" + } } }, "traits": { - "smithy.api#documentation": "

Contains the Network Firewall firewall policy options to configure the policy's deployment model and third-party firewall policy settings.

" + "smithy.api#documentation": "

Contains the settings to configure a network ACL policy, a Network Firewall firewall policy deployment model, or a third-party firewall policy.

" } }, "com.amazonaws.fms#PolicySummary": { @@ -5860,7 +6343,7 @@ "ResourceType": { "target": "com.amazonaws.fms#ResourceType", "traits": { - "smithy.api#documentation": "

The type of resource protected by or in scope of the policy. This is in the format shown\n in the Amazon Web Services Resource Types Reference.\n For WAF and Shield Advanced, examples include\n AWS::ElasticLoadBalancingV2::LoadBalancer and\n AWS::CloudFront::Distribution. For a security group common policy, valid values\n are AWS::EC2::NetworkInterface and AWS::EC2::Instance. For a\n security group content audit policy, valid values are AWS::EC2::SecurityGroup,\n AWS::EC2::NetworkInterface, and AWS::EC2::Instance. For a security\n group usage audit policy, the value is AWS::EC2::SecurityGroup. For an Network Firewall policy or DNS Firewall policy,\n the value is AWS::EC2::VPC.

" + "smithy.api#documentation": "

The type of resource protected by or in scope of the policy. This is in the format shown\n in the Amazon Web Services Resource Types Reference.

" } }, "SecurityServiceType": { @@ -5880,7 +6363,7 @@ "target": "com.amazonaws.fms#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Indicates whether Firewall Manager should automatically remove protections from resources that leave the policy scope and clean up resources\n that Firewall Manager is managing for accounts when those accounts leave policy scope. For example, Firewall Manager will disassociate a Firewall Manager managed web ACL\n from a protected customer resource when the customer resource leaves policy scope.

\n

By default, Firewall Manager doesn't remove protections or delete Firewall Manager managed resources.

\n

This option is not available for Shield Advanced or WAF Classic policies.

" + "smithy.api#documentation": "

Indicates whether Firewall Manager should automatically remove protections from resources that leave the policy scope and clean up resources\n that Firewall Manager is managing for accounts when those accounts leave policy scope. For example, Firewall Manager will disassociate a Firewall Manager managed web ACL\n from a protected customer resource when the customer resource leaves policy scope.

\n

By default, Firewall Manager doesn't remove protections or delete Firewall Manager managed resources.

\n

This option is not available for Shield Advanced or WAF Classic policies.

" } }, "PolicyStatus": { @@ -6316,7 +6799,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an Firewall Manager policy.

\n

A Firewall Manager policy is specific to the individual policy type. If you want to enforce multiple\n\t\tpolicy types across accounts, you can create multiple policies. You can create more than one\n\t\tpolicy for each type.

\n

If you add a new account to an organization that you created with Organizations, Firewall Manager\n\t\tautomatically applies the policy to the resources in that account that are within scope of\n\t\tthe policy.

\n

Firewall Manager provides the following types of policies:

\n
    \n
  • \n

    \n Shield Advanced policy - This policy applies Shield Advanced\n\t\t\t\tprotection to specified accounts and resources.

    \n
  • \n
  • \n

    \n Security Groups policy - This type of policy gives you\n\t\t\t\tcontrol over security groups that are in use throughout your organization in\n\t\t\t\tOrganizations and lets you enforce a baseline set of rules across your organization.

    \n
  • \n
  • \n

    \n Network Firewall policy - This policy applies\n\t\t\t\tNetwork Firewall protection to your organization's VPCs.

    \n
  • \n
  • \n

    \n DNS Firewall policy - This policy applies\n\t\t\t\tAmazon Route 53 Resolver DNS Firewall protections to your organization's VPCs.

    \n
  • \n
  • \n

    \n Third-party firewall policy - This policy applies third-party firewall protections. Third-party firewalls are available by subscription through the Amazon Web Services Marketplace console at Amazon Web Services Marketplace.

    \n
      \n
    • \n

      \n Palo Alto Networks Cloud NGFW policy - This policy applies Palo Alto Networks Cloud Next Generation Firewall (NGFW) protections and Palo Alto Networks Cloud NGFW rulestacks to your organization's VPCs.

      \n
    • \n
    • \n

      \n Fortigate CNF policy - This policy applies\n\t\t\t\t\t\tFortigate Cloud Native Firewall (CNF) protections. Fortigate CNF is a cloud-centered solution that blocks Zero-Day threats and secures cloud infrastructures with industry-leading advanced threat prevention, smart web application firewalls (WAF), and API protection.

      \n
    • \n
    \n
  • \n
" + "smithy.api#documentation": "

Creates an Firewall Manager policy.

\n

A Firewall Manager policy is specific to the individual policy type. If you want to enforce multiple\n\t\tpolicy types across accounts, you can create multiple policies. You can create more than one\n\t\tpolicy for each type.

\n

If you add a new account to an organization that you created with Organizations, Firewall Manager\n\t\tautomatically applies the policy to the resources in that account that are within scope of\n\t\tthe policy.

\n

Firewall Manager provides the following types of policies:

\n
    \n
  • \n

    \n WAF policy - This policy applies WAF web ACL\n\t\t\t\tprotections to specified accounts and resources.

    \n
  • \n
  • \n

    \n Shield Advanced policy - This policy applies Shield Advanced\n\t\t\t\tprotection to specified accounts and resources.

    \n
  • \n
  • \n

    \n Security Groups policy - This type of policy gives you\n\t\t\t\tcontrol over security groups that are in use throughout your organization in\n\t\t\t\tOrganizations and lets you enforce a baseline set of rules across your organization.

    \n
  • \n
  • \n

    \n Network ACL policy - This type of policy gives you\n\t\t\t\tcontrol over the network ACLs that are in use throughout your organization in\n\t\t\t\tOrganizations and lets you enforce a baseline set of first and last network ACL rules across your organization.

    \n
  • \n
  • \n

    \n Network Firewall policy - This policy applies\n\t\t\t\tNetwork Firewall protection to your organization's VPCs.

    \n
  • \n
  • \n

    \n DNS Firewall policy - This policy applies\n\t\t\t\tAmazon Route 53 Resolver DNS Firewall protections to your organization's VPCs.

    \n
  • \n
  • \n

    \n Third-party firewall policy - This policy applies third-party firewall protections. Third-party firewalls are available by subscription through the Amazon Web Services Marketplace console at Amazon Web Services Marketplace.

    \n
      \n
    • \n

      \n Palo Alto Networks Cloud NGFW policy - This policy applies Palo Alto Networks Cloud Next Generation Firewall (NGFW) protections and Palo Alto Networks Cloud NGFW rulestacks to your organization's VPCs.

      \n
    • \n
    • \n

      \n Fortigate CNF policy - This policy applies\n\t\t\t\t\t\tFortigate Cloud Native Firewall (CNF) protections. Fortigate CNF is a cloud-centered solution that blocks Zero-Day threats and secures cloud infrastructures with industry-leading advanced threat prevention, smart web application firewalls (WAF), and API protection.

      \n
    • \n
    \n
  • \n
" } }, "com.amazonaws.fms#PutPolicyRequest": { @@ -6579,6 +7062,30 @@ "traits": { "smithy.api#documentation": "

The remedial action to take when updating a firewall configuration.

" } + }, + "CreateNetworkAclAction": { + "target": "com.amazonaws.fms#CreateNetworkAclAction", + "traits": { + "smithy.api#documentation": "

Information about the CreateNetworkAcl action in Amazon EC2.

" + } + }, + "ReplaceNetworkAclAssociationAction": { + "target": "com.amazonaws.fms#ReplaceNetworkAclAssociationAction", + "traits": { + "smithy.api#documentation": "

Information about the ReplaceNetworkAclAssociation action in Amazon EC2.

" + } + }, + "CreateNetworkAclEntriesAction": { + "target": "com.amazonaws.fms#CreateNetworkAclEntriesAction", + "traits": { + "smithy.api#documentation": "

Information about the CreateNetworkAclEntries action in Amazon EC2.

" + } + }, + "DeleteNetworkAclEntriesAction": { + "target": "com.amazonaws.fms#DeleteNetworkAclEntriesAction", + "traits": { + "smithy.api#documentation": "

Information about the DeleteNetworkAclEntries action in Amazon EC2.

" + } } }, "traits": { @@ -6633,6 +7140,36 @@ "smithy.api#documentation": "

An ordered list of actions you can take to remediate a violation.

" } }, + "com.amazonaws.fms#ReplaceNetworkAclAssociationAction": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.fms#LengthBoundedString", + "traits": { + "smithy.api#documentation": "

Brief description of this remediation action.

" + } + }, + "AssociationId": { + "target": "com.amazonaws.fms#ActionTarget" + }, + "NetworkAclId": { + "target": "com.amazonaws.fms#ActionTarget", + "traits": { + "smithy.api#documentation": "

The network ACL that's associated with the remediation action.

" + } + }, + "FMSCanRemediate": { + "target": "com.amazonaws.fms#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates whether it is possible for Firewall Manager to perform this remediation action. A false value indicates that auto remediation is disabled or Firewall Manager is unable to perform the action due to a conflict of some kind.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the ReplaceNetworkAclAssociation action in Amazon EC2. This is a remediation option in RemediationAction.

" + } + }, "com.amazonaws.fms#Resource": { "type": "structure", "members": { @@ -6895,7 +7432,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 8 + "max": 50 } } }, @@ -7011,12 +7548,6 @@ "smithy.api#documentation": "

Violation detail for a DNS Firewall policy that indicates that the VPC reached the limit for associated DNS Firewall rule groups. Firewall Manager tried to associate another rule group with the VPC and failed.

" } }, - "PossibleRemediationActions": { - "target": "com.amazonaws.fms#PossibleRemediationActions", - "traits": { - "smithy.api#documentation": "

A list of possible remediation action lists. Each individual possible remediation action is a list of individual remediation actions.

" - } - }, "FirewallSubnetIsOutOfScopeViolation": { "target": "com.amazonaws.fms#FirewallSubnetIsOutOfScopeViolation", "traits": { @@ -7052,6 +7583,18 @@ "traits": { "smithy.api#documentation": "

The violation details for a third-party firewall's VPC endpoint subnet that was deleted.

" } + }, + "InvalidNetworkAclEntriesViolation": { + "target": "com.amazonaws.fms#InvalidNetworkAclEntriesViolation", + "traits": { + "smithy.api#documentation": "

Violation detail for the entries in a network ACL resource.

" + } + }, + "PossibleRemediationActions": { + "target": "com.amazonaws.fms#PossibleRemediationActions", + "traits": { + "smithy.api#documentation": "

A list of possible remediation action lists. Each individual possible remediation action is a list of individual remediation actions.

" + } } }, "traits": { @@ -7295,13 +7838,13 @@ "ManagedServiceData": { "target": "com.amazonaws.fms#ManagedServiceData", "traits": { - "smithy.api#documentation": "

Details about the service that are specific to the service type, in JSON format.

\n
    \n
  • \n

    Example: DNS_FIREWALL\n

    \n

    \n \"{\\\"type\\\":\\\"DNS_FIREWALL\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-1\\\",\\\"priority\\\":10}],\\\"postProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-2\\\",\\\"priority\\\":9911}]}\"\n

    \n \n

    Valid values for preProcessRuleGroups are between 1 and 99. Valid\n values for postProcessRuleGroups are between 9901 and 10000.

    \n
    \n
  • \n
  • \n

    Example: IMPORT_NETWORK_FIREWALL\n

    \n

    \n \"{\\\"type\\\":\\\"IMPORT_NETWORK_FIREWALL\\\",\\\"awsNetworkFirewallConfig\\\":{\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-west-2:000000000000:stateless-rulegroup\\/rg1\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:drop\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:pass\\\"],\\\"networkFirewallStatelessCustomActions\\\":[],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-west-2:aws-managed:stateful-rulegroup\\/ThreatSignaturesEmergingEventsStrictOrder\\\",\\\"priority\\\":8}],\\\"networkFirewallStatefulEngineOptions\\\":{\\\"ruleOrder\\\":\\\"STRICT_ORDER\\\"},\\\"networkFirewallStatefulDefaultActions\\\":[\\\"aws:drop_strict\\\"]}}\"\n

    \n

    \n \"{\\\"type\\\":\\\"DNS_FIREWALL\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-1\\\",\\\"priority\\\":10}],\\\"postProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-2\\\",\\\"priority\\\":9911}]}\"\n

    \n \n

    Valid values for preProcessRuleGroups are between 1 and 99. Valid\n values for postProcessRuleGroups are between 9901 and 10000.

    \n
    \n
  • \n
  • \n

    Example: NETWORK_FIREWALL - Centralized deployment\n model

    \n

    \n \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"awsNetworkFirewallConfig\\\":{\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}},\\\"firewallDeploymentModel\\\":{\\\"centralizedFirewallDeploymentModel\\\":{\\\"centralizedFirewallOrchestrationConfig\\\":{\\\"inspectionVpcIds\\\":[{\\\"resourceId\\\":\\\"vpc-1234\\\",\\\"accountId\\\":\\\"123456789011\\\"}],\\\"firewallCreationConfig\\\":{\\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneId\\\":null,\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]}]}},\\\"allowedIPV4CidrList\\\":[]}}}}\"\n

    \n

    To use the centralized deployment model, you must set PolicyOption to\n CENTRALIZED.

    \n
  • \n
  • \n

    Example: NETWORK_FIREWALL - Distributed deployment model with\n automatic Availability Zone configuration

    \n

    \n \n \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\",\\\"192.168.0.0/28\\\"],\\\"routeManagementAction\\\":\\\"OFF\\\"},\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}}\"\n \n

    \n

    With automatic Availbility Zone configuration, Firewall Manager chooses which Availability Zones to create the endpoints in. To use the distributed deployment model, you must set PolicyOption to\n NULL.

    \n
  • \n
  • \n

    Example: NETWORK_FIREWALL - Distributed deployment model with\n automatic Availability Zone configuration and route management

    \n

    \n \n \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\",\\\"192.168.0.0/28\\\"],\\\"routeManagementAction\\\":\\\"MONITOR\\\",\\\"routeManagementTargetTypes\\\":[\\\"InternetGateway\\\"]},\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\": \\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}}\"\n \n

    \n

    To use the distributed deployment model, you must set PolicyOption to\n NULL.

    \n
  • \n
  • \n

    Example: NETWORK_FIREWALL - Distributed deployment model with\n custom Availability Zone configuration

    \n

    \n \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"fragmentcustomactionname\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\", \\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}},{\\\"actionName\\\":\\\"fragmentcustomactionname\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"fragmentmetricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"firewallCreationConfig\\\":{ \\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]},{\\\"availabilityZoneName\\\":\\\"us-east-1b\\\",\\\"allowedIPV4CidrList\\\":[ \\\"10.0.0.0/28\\\"]}]} },\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":null,\\\"routeManagementAction\\\":\\\"OFF\\\",\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":boolean}}\"\n \n

    \n

    \n With custom Availability Zone configuration,\n you define which specific Availability Zones to create endpoints in by configuring\n firewallCreationConfig. To configure the Availability Zones in firewallCreationConfig, specify either the availabilityZoneName or availabilityZoneId parameter, not both parameters.\n

    \n

    To use the distributed deployment model, you must set PolicyOption to\n NULL.

    \n
  • \n
  • \n

    Example: NETWORK_FIREWALL - Distributed deployment model with\n custom Availability Zone configuration and route management

    \n

    \n \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"fragmentcustomactionname\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}},{\\\"actionName\\\":\\\"fragmentcustomactionname\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"fragmentmetricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"firewallCreationConfig\\\":{\\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]},{\\\"availabilityZoneName\\\":\\\"us-east-1b\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]}]}},\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":null,\\\"routeManagementAction\\\":\\\"MONITOR\\\",\\\"routeManagementTargetTypes\\\":[\\\"InternetGateway\\\"],\\\"routeManagementConfig\\\":{\\\"allowCrossAZTrafficIfNoEndpoint\\\":true}},\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":boolean}}\"\n \n

    \n

    To use the distributed deployment model, you must set PolicyOption to\n NULL.

    \n
  • \n
  • \n

    Example: SECURITY_GROUPS_COMMON\n

    \n

    \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false,\n \\\"applyToAllEC2InstanceENIs\\\":false,\\\"securityGroups\\\":[{\\\"id\\\":\\\"\n sg-000e55995d61a06bd\\\"}]}\"\n

    \n
  • \n
  • \n

    Example: SECURITY_GROUPS_COMMON - Security group tag distribution\n

    \n

    \n \"\"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"securityGroups\\\":[{\\\"id\\\":\\\"sg-000e55995d61a06bd\\\"}],\\\"revertManualSecurityGroupChanges\\\":true,\\\"exclusiveResourceSecurityGroupManagement\\\":false,\\\"applyToAllEC2InstanceENIs\\\":false,\\\"includeSharedVPC\\\":false,\\\"enableTagDistribution\\\":true}\"\"\n

    \n

    \n Firewall Manager automatically distributes tags from the primary group to the security groups created by this policy. To use security group tag distribution, you must also set revertManualSecurityGroupChanges to true, otherwise Firewall Manager won't be able to create the policy. When you enable revertManualSecurityGroupChanges, Firewall Manager identifies and reports when the security groups created by this policy become non-compliant.\n

    \n

    \n Firewall Manager won't distrubute system tags added by Amazon Web Services services into the replica security groups. System tags begin with the aws: prefix.\n

    \n
  • \n
  • \n

    Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as\n well as to those in VPCs that the account owns

    \n

    \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false,\n \\\"applyToAllEC2InstanceENIs\\\":false,\\\"includeSharedVPC\\\":true,\\\"securityGroups\\\":[{\\\"id\\\":\\\"\n sg-000e55995d61a06bd\\\"}]}\"\n

    \n
  • \n
  • \n

    Example: SECURITY_GROUPS_CONTENT_AUDIT\n

    \n

    \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_CONTENT_AUDIT\\\",\\\"securityGroups\\\":[{\\\"id\\\":\\\"sg-000e55995d61a06bd\\\"}],\\\"securityGroupAction\\\":{\\\"type\\\":\\\"ALLOW\\\"}}\"\n

    \n

    The security group action for content audit can be ALLOW or\n DENY. For ALLOW, all in-scope security group rules must\n be within the allowed range of the policy's security group rules. For\n DENY, all in-scope security group rules must not contain a value or a\n range that matches a rule value or range in the policy security group.

    \n
  • \n
  • \n

    Example: SECURITY_GROUPS_USAGE_AUDIT\n

    \n

    \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_USAGE_AUDIT\\\",\\\"deleteUnusedSecurityGroups\\\":true,\\\"coalesceRedundantSecurityGroups\\\":true}\"\n

    \n
  • \n
  • \n

    Example: SHIELD_ADVANCED with web ACL management

    \n

    \n \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"optimizeUnassociatedWebACL\\\":true}\"\n

    \n

    If you set optimizeUnassociatedWebACL to true, Firewall Manager creates web ACLs in accounts within the policy scope if the web ACLs will be used by at least one resource. Firewall Manager creates web ACLs in the accounts within policy scope only if the web ACLs will be used by at least one resource. If at any time an account comes into policy scope, Firewall Manager automatically creates a web ACL in the account if at least one resource will use the web ACL.

    \n

    Upon enablement, Firewall Manager performs a one-time cleanup of unused web ACLs in your account. The cleanup process can take several hours. If a resource leaves policy scope after Firewall Manager creates a web ACL, Firewall Manager doesn't disassociate the resource from the web ACL. If you want Firewall Manager to clean up the web ACL, you must first manually disassociate the resources from the web ACL, and then enable the manage unused web ACLs option in your policy.

    \n

    If you set optimizeUnassociatedWebACL to false, and Firewall Manager automatically creates an empty web ACL in each account that's within policy scope.

    \n
  • \n
  • \n

    Specification for SHIELD_ADVANCED for Amazon CloudFront distributions

    \n

    \n \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\": {\\\"automaticResponseStatus\\\":\\\"ENABLED|IGNORED|DISABLED\\\", \\\"automaticResponseAction\\\":\\\"BLOCK|COUNT\\\"}, \\\"overrideCustomerWebaclClassic\\\":true|false, \\\"optimizeUnassociatedWebACL\\\":true|false}\"\n

    \n

    For example:\n \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\":\n {\\\"automaticResponseStatus\\\":\\\"ENABLED\\\",\n \\\"automaticResponseAction\\\":\\\"COUNT\\\"}}\"\n

    \n

    The default value for automaticResponseStatus is\n IGNORED. The value for automaticResponseAction is only\n required when automaticResponseStatus is set to ENABLED.\n The default value for overrideCustomerWebaclClassic is\n false.

    \n

    For other resource types that you can protect with a Shield Advanced policy, this\n ManagedServiceData configuration is an empty string.

    \n
  • \n
  • \n

    Example: THIRD_PARTY_FIREWALL\n

    \n

    Replace THIRD_PARTY_FIREWALL_NAME with the name of the third-party firewall.

    \n

    \n \"{\n \"type\":\"THIRD_PARTY_FIREWALL\",\n \"thirdPartyFirewall\":\"THIRD_PARTY_FIREWALL_NAME\",\n \"thirdPartyFirewallConfig\":{\n \"thirdPartyFirewallPolicyList\":[\"global-1\"]\n },\n\t \"firewallDeploymentModel\":{\n \"distributedFirewallDeploymentModel\":{\n \"distributedFirewallOrchestrationConfig\":{\n \"firewallCreationConfig\":{\n \"endpointLocation\":{\n \"availabilityZoneConfigList\":[\n {\n \"availabilityZoneName\":\"${AvailabilityZone}\"\n }\n ]\n }\n },\n \"allowedIPV4CidrList\":[\n ]\n }\n }\n }\n }\"\n

    \n
  • \n
  • \n

    Example: WAFV2 - Account takeover prevention, Bot Control managed rule groups, optimize unassociated web ACL, and rule action override\n

    \n

    \n \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesATPRuleSet\\\",\\\"managedRuleGroupConfigs\\\":[{\\\"awsmanagedRulesATPRuleSet\\\":{\\\"loginPath\\\":\\\"/loginpath\\\",\\\"requestInspection\\\":{\\\"payloadType\\\":\\\"FORM_ENCODED|JSON\\\",\\\"usernameField\\\":{\\\"identifier\\\":\\\"/form/username\\\"},\\\"passwordField\\\":{\\\"identifier\\\":\\\"/form/password\\\"}}}}]},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[],\\\"sampledRequestsEnabled\\\":true},{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesBotControlRuleSet\\\",\\\"managedRuleGroupConfigs\\\":[{\\\"awsmanagedRulesBotControlRuleSet\\\":{\\\"inspectionLevel\\\":\\\"TARGETED|COMMON\\\"}}]},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[],\\\"sampledRequestsEnabled\\\":true,\\\"ruleActionOverrides\\\":[{\\\"name\\\":\\\"Rule1\\\",\\\"actionToUse\\\":{\\\"allow|block|count|captcha|challenge\\\":{}}},{\\\"name\\\":\\\"Rule2\\\",\\\"actionToUse\\\":{\\\"allow|block|count|captcha|challenge\\\":{}}}]}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"customRequestHandling\\\":null,\\\"customResponse\\\":null,\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":null,\\\"sampledRequestsEnabledForDefaultActions\\\":true,\\\"optimizeUnassociatedWebACL\\\":true}\"\n

    \n
      \n
    • \n

      Bot Control - For information about AWSManagedRulesBotControlRuleSet managed rule groups, see AWSManagedRulesBotControlRuleSet in the WAF API Reference.

      \n
    • \n
    • \n

      Fraud Control account takeover prevention (ATP) - For information about the properties available for AWSManagedRulesATPRuleSet managed rule groups, see AWSManagedRulesATPRuleSet in the WAF API Reference.

      \n
    • \n
    • \n

      Optimize unassociated web ACL - If you set optimizeUnassociatedWebACL to true, Firewall Manager creates web ACLs in accounts within the policy scope if the web ACLs will be used by at least one resource. Firewall Manager creates web ACLs in the accounts within policy scope only if the web ACLs will be used by at least one resource. If at any time an account comes into policy scope, Firewall Manager automatically creates a web ACL in the account if at least one resource will use the web ACL.

      \n

      Upon enablement, Firewall Manager performs a one-time cleanup of unused web ACLs in your account. The cleanup process can take several hours. If a resource leaves policy scope after Firewall Manager creates a web ACL, Firewall Manager disassociates the resource from the web ACL, but won't clean up the unused web ACL. Firewall Manager only cleans up unused web ACLs when you first enable management of unused web ACLs in a policy.

      \n

      If you set optimizeUnassociatedWebACL to false Firewall Manager doesn't manage unused web ACLs, and Firewall Manager automatically creates an empty web ACL in each account that's within policy scope.

      \n
    • \n
    • \n

      Rule action overrides - Firewall Manager supports rule action overrides only for managed rule groups. To configure a RuleActionOverrides add the Name of the rule to override, and ActionToUse, which is the new action to use for the rule. For information about using rule action override, see RuleActionOverride in the WAF API Reference.

      \n
    • \n
    \n
  • \n
  • \n

    Example: WAFV2 - CAPTCHA and Challenge configs\n

    \n

    \n \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesAdminProtectionRuleSet\\\"},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[],\\\"sampledRequestsEnabled\\\":true}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"customRequestHandling\\\":null,\\\"customResponse\\\":null,\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":null,\\\"sampledRequestsEnabledForDefaultActions\\\":true,\\\"captchaConfig\\\":{\\\"immunityTimeProperty\\\":{\\\"immunityTime\\\":500}},\\\"challengeConfig\\\":{\\\"immunityTimeProperty\\\":{\\\"immunityTime\\\":800}},\\\"tokenDomains\\\":[\\\"google.com\\\",\\\"amazon.com\\\"],\\\"associationConfig\\\":{\\\"requestBody\\\":{\\\"CLOUDFRONT\\\":{\\\"defaultSizeInspectionLimit\\\":\\\"KB_16\\\"}}}}\"\n

    \n
      \n
    • \n

      \n CAPTCHA and Challenge configs - If you update the policy's values for associationConfig, captchaConfig, challengeConfig, or tokenDomains, Firewall Manager will overwrite your local web ACLs to contain the new value(s). However, if you don't update the policy's associationConfig, captchaConfig, challengeConfig, or tokenDomains values, the values in your local web ACLs will remain unchanged. For information about association configs, see AssociationConfig. For information about CAPTCHA and Challenge configs, see CaptchaConfig and ChallengeConfig in the WAF API Reference.

      \n
    • \n
    • \n

      \n defaultSizeInspectionLimit - Specifies the maximum size of the web request body component that an associated Amazon CloudFront distribution should send to WAF for inspection. For more information, see DefaultSizeInspectionLimit in the WAF API Reference.

      \n
    • \n
    \n
  • \n
  • \n

    Example: WAFV2 - Firewall Manager support for WAF managed rule group versioning\n

    \n

    \n \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":true,\\\"version\\\":\\\"Version_2.0\\\",\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesCommonRuleSet\\\"},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[{\\\"name\\\":\\\"NoUserAgent_HEADER\\\"}]}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[\\\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\\\"],\\\"redactedFields\\\":[{\\\"redactedFieldType\\\":\\\"SingleHeader\\\",\\\"redactedFieldValue\\\":\\\"Cookies\\\"},{\\\"redactedFieldType\\\":\\\"Method\\\"}]}}\"\n

    \n

    \n To use a specific version of a WAF managed rule group in your Firewall Manager policy, you must set versionEnabled to true, and set version to the version you'd like to use. If you don't set versionEnabled to true, or if you omit versionEnabled, then Firewall Manager uses the default version of the WAF managed rule group.\n

    \n
  • \n
  • \n

    Example: WAFV2 - Logging configurations\n

    \n

    \n \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null, \\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\": {\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\", \\\"managedRuleGroupName\\\":\\\"AWSManagedRulesAdminProtectionRuleSet\\\"} ,\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[], \\\"sampledRequestsEnabled\\\":true}],\\\"postProcessRuleGroups\\\":[], \\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"customRequestHandling\\\" :null,\\\"customResponse\\\":null,\\\"overrideCustomerWebACLAssociation\\\" :false,\\\"loggingConfiguration\\\":{\\\"logDestinationConfigs\\\": [\\\"arn:aws:s3:::aws-waf-logs-example-bucket\\\"] ,\\\"redactedFields\\\":[],\\\"loggingFilterConfigs\\\":{\\\"defaultBehavior\\\":\\\"KEEP\\\", \\\"filters\\\":[{\\\"behavior\\\":\\\"KEEP\\\",\\\"requirement\\\":\\\"MEETS_ALL\\\", \\\"conditions\\\":[{\\\"actionCondition\\\":\\\"CAPTCHA\\\"},{\\\"actionCondition\\\": \\\"CHALLENGE\\\"}, {\\\"actionCondition\\\":\\\"EXCLUDED_AS_COUNT\\\"}]}]}},\\\"sampledRequestsEnabledForDefaultActions\\\":true}\"\n

    \n

    Firewall Manager supports Amazon Kinesis Data Firehose and Amazon S3 as the logDestinationConfigs in your loggingConfiguration. For information about WAF logging configurations, see LoggingConfiguration in the WAF API Reference\n

    \n

    In the loggingConfiguration, you can specify one\n logDestinationConfigs. Optionally provide as many as 20\n redactedFields. The RedactedFieldType must be one of\n URI, QUERY_STRING, HEADER, or\n METHOD.

    \n
  • \n
  • \n

    Example: WAF Classic\n

    \n

    \n \"{\\\"type\\\": \\\"WAF\\\", \\\"ruleGroups\\\":\n [{\\\"id\\\":\\\"12345678-1bcd-9012-efga-0987654321ab\\\", \\\"overrideAction\\\" : {\\\"type\\\":\n \\\"COUNT\\\"}}], \\\"defaultAction\\\": {\\\"type\\\": \\\"BLOCK\\\"}}\"\n

    \n
  • \n
" + "smithy.api#documentation": "

Details about the service that are specific to the service type, in JSON format.

\n
    \n
  • \n

    Example: DNS_FIREWALL\n

    \n

    \n \"{\\\"type\\\":\\\"DNS_FIREWALL\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-1\\\",\\\"priority\\\":10}],\\\"postProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-2\\\",\\\"priority\\\":9911}]}\"\n

    \n \n

    Valid values for preProcessRuleGroups are between 1 and 99. Valid\n values for postProcessRuleGroups are between 9901 and 10000.

    \n
    \n
  • \n
  • \n

    Example: IMPORT_NETWORK_FIREWALL\n

    \n

    \n \"{\\\"type\\\":\\\"IMPORT_NETWORK_FIREWALL\\\",\\\"awsNetworkFirewallConfig\\\":{\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-west-2:000000000000:stateless-rulegroup\\/rg1\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:drop\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:pass\\\"],\\\"networkFirewallStatelessCustomActions\\\":[],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-west-2:aws-managed:stateful-rulegroup\\/ThreatSignaturesEmergingEventsStrictOrder\\\",\\\"priority\\\":8}],\\\"networkFirewallStatefulEngineOptions\\\":{\\\"ruleOrder\\\":\\\"STRICT_ORDER\\\"},\\\"networkFirewallStatefulDefaultActions\\\":[\\\"aws:drop_strict\\\"]}}\"\n

    \n

    \n \"{\\\"type\\\":\\\"DNS_FIREWALL\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-1\\\",\\\"priority\\\":10}],\\\"postProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-2\\\",\\\"priority\\\":9911}]}\"\n

    \n \n

    Valid values for preProcessRuleGroups are between 1 and 99. Valid\n values for postProcessRuleGroups are between 9901 and 10000.

    \n
    \n
  • \n
  • \n

    Example: NETWORK_FIREWALL - Centralized deployment\n model

    \n

    \n \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"awsNetworkFirewallConfig\\\":{\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}},\\\"firewallDeploymentModel\\\":{\\\"centralizedFirewallDeploymentModel\\\":{\\\"centralizedFirewallOrchestrationConfig\\\":{\\\"inspectionVpcIds\\\":[{\\\"resourceId\\\":\\\"vpc-1234\\\",\\\"accountId\\\":\\\"123456789011\\\"}],\\\"firewallCreationConfig\\\":{\\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneId\\\":null,\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]}]}},\\\"allowedIPV4CidrList\\\":[]}}}}\"\n

    \n

    To use the centralized deployment model, you must set PolicyOption to\n CENTRALIZED.

    \n
  • \n
  • \n

    Example: NETWORK_FIREWALL - Distributed deployment model with\n automatic Availability Zone configuration

    \n

    \n \n \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\",\\\"192.168.0.0/28\\\"],\\\"routeManagementAction\\\":\\\"OFF\\\"},\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}}\"\n \n

    \n

    With automatic Availbility Zone configuration, Firewall Manager chooses which Availability Zones to create the endpoints in. To use the distributed deployment model, you must set PolicyOption to\n NULL.

    \n
  • \n
  • \n

    Example: NETWORK_FIREWALL - Distributed deployment model with\n automatic Availability Zone configuration and route management

    \n

    \n \n \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\",\\\"192.168.0.0/28\\\"],\\\"routeManagementAction\\\":\\\"MONITOR\\\",\\\"routeManagementTargetTypes\\\":[\\\"InternetGateway\\\"]},\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\": \\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}}\"\n \n

    \n

    To use the distributed deployment model, you must set PolicyOption to\n NULL.

    \n
  • \n
  • \n

    Example: NETWORK_FIREWALL - Distributed deployment model with\n custom Availability Zone configuration

    \n

    \n \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"fragmentcustomactionname\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\", \\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}},{\\\"actionName\\\":\\\"fragmentcustomactionname\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"fragmentmetricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"firewallCreationConfig\\\":{ \\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]},{\\\"availabilityZoneName\\\":\\\"us-east-1b\\\",\\\"allowedIPV4CidrList\\\":[ \\\"10.0.0.0/28\\\"]}]} },\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":null,\\\"routeManagementAction\\\":\\\"OFF\\\",\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":boolean}}\"\n \n

    \n

    \n With custom Availability Zone configuration,\n you define which specific Availability Zones to create endpoints in by configuring\n firewallCreationConfig. To configure the Availability Zones in firewallCreationConfig, specify either the availabilityZoneName or availabilityZoneId parameter, not both parameters.\n

    \n

    To use the distributed deployment model, you must set PolicyOption to\n NULL.

    \n
  • \n
  • \n

    Example: NETWORK_FIREWALL - Distributed deployment model with\n custom Availability Zone configuration and route management

    \n

    \n \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"fragmentcustomactionname\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}},{\\\"actionName\\\":\\\"fragmentcustomactionname\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"fragmentmetricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"firewallCreationConfig\\\":{\\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]},{\\\"availabilityZoneName\\\":\\\"us-east-1b\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]}]}},\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":null,\\\"routeManagementAction\\\":\\\"MONITOR\\\",\\\"routeManagementTargetTypes\\\":[\\\"InternetGateway\\\"],\\\"routeManagementConfig\\\":{\\\"allowCrossAZTrafficIfNoEndpoint\\\":true}},\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":boolean}}\"\n \n

    \n

    To use the distributed deployment model, you must set PolicyOption to\n NULL.

    \n
  • \n
  • \n

    Example: SECURITY_GROUPS_COMMON\n

    \n

    \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false,\n \\\"applyToAllEC2InstanceENIs\\\":false,\\\"securityGroups\\\":[{\\\"id\\\":\\\"\n sg-000e55995d61a06bd\\\"}]}\"\n

    \n
  • \n
  • \n

    Example: SECURITY_GROUPS_COMMON - Security group tag distribution\n

    \n

    \n \"\"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"securityGroups\\\":[{\\\"id\\\":\\\"sg-000e55995d61a06bd\\\"}],\\\"revertManualSecurityGroupChanges\\\":true,\\\"exclusiveResourceSecurityGroupManagement\\\":false,\\\"applyToAllEC2InstanceENIs\\\":false,\\\"includeSharedVPC\\\":false,\\\"enableTagDistribution\\\":true}\"\"\n

    \n

    \n Firewall Manager automatically distributes tags from the primary group to the security groups created by this policy. To use security group tag distribution, you must also set revertManualSecurityGroupChanges to true, otherwise Firewall Manager won't be able to create the policy. When you enable revertManualSecurityGroupChanges, Firewall Manager identifies and reports when the security groups created by this policy become non-compliant.\n

    \n

    \n Firewall Manager won't distribute system tags added by Amazon Web Services services into the replica security groups. System tags begin with the aws: prefix.\n

    \n
  • \n
  • \n

    Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as\n well as to those in VPCs that the account owns

    \n

    \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false,\n \\\"applyToAllEC2InstanceENIs\\\":false,\\\"includeSharedVPC\\\":true,\\\"securityGroups\\\":[{\\\"id\\\":\\\"\n sg-000e55995d61a06bd\\\"}]}\"\n

    \n
  • \n
  • \n

    Example: SECURITY_GROUPS_CONTENT_AUDIT\n

    \n

    \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_CONTENT_AUDIT\\\",\\\"securityGroups\\\":[{\\\"id\\\":\\\"sg-000e55995d61a06bd\\\"}],\\\"securityGroupAction\\\":{\\\"type\\\":\\\"ALLOW\\\"}}\"\n

    \n

    The security group action for content audit can be ALLOW or\n DENY. For ALLOW, all in-scope security group rules must\n be within the allowed range of the policy's security group rules. For\n DENY, all in-scope security group rules must not contain a value or a\n range that matches a rule value or range in the policy security group.

    \n
  • \n
  • \n

    Example: SECURITY_GROUPS_USAGE_AUDIT\n

    \n

    \n \"{\\\"type\\\":\\\"SECURITY_GROUPS_USAGE_AUDIT\\\",\\\"deleteUnusedSecurityGroups\\\":true,\\\"coalesceRedundantSecurityGroups\\\":true}\"\n

    \n
  • \n
  • \n

    Example: SHIELD_ADVANCED with web ACL management

    \n

    \n \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"optimizeUnassociatedWebACL\\\":true}\"\n

    \n

    If you set optimizeUnassociatedWebACL to true, Firewall Manager creates web ACLs in accounts within the policy scope if the web ACLs will be used by at least one resource. Firewall Manager creates web ACLs in the accounts within policy scope only if the web ACLs will be used by at least one resource. If at any time an account comes into policy scope, Firewall Manager automatically creates a web ACL in the account if at least one resource will use the web ACL.

    \n

    Upon enablement, Firewall Manager performs a one-time cleanup of unused web ACLs in your account. The cleanup process can take several hours. If a resource leaves policy scope after Firewall Manager creates a web ACL, Firewall Manager doesn't disassociate the resource from the web ACL. If you want Firewall Manager to clean up the web ACL, you must first manually disassociate the resources from the web ACL, and then enable the manage unused web ACLs option in your policy.

    \n

    If you set optimizeUnassociatedWebACL to false, and Firewall Manager automatically creates an empty web ACL in each account that's within policy scope.

    \n
  • \n
  • \n

    Specification for SHIELD_ADVANCED for Amazon CloudFront distributions

    \n

    \n \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\": {\\\"automaticResponseStatus\\\":\\\"ENABLED|IGNORED|DISABLED\\\", \\\"automaticResponseAction\\\":\\\"BLOCK|COUNT\\\"}, \\\"overrideCustomerWebaclClassic\\\":true|false, \\\"optimizeUnassociatedWebACL\\\":true|false}\"\n

    \n

    For example:\n \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\":\n {\\\"automaticResponseStatus\\\":\\\"ENABLED\\\",\n \\\"automaticResponseAction\\\":\\\"COUNT\\\"}}\"\n

    \n

    The default value for automaticResponseStatus is\n IGNORED. The value for automaticResponseAction is only\n required when automaticResponseStatus is set to ENABLED.\n The default value for overrideCustomerWebaclClassic is\n false.

    \n

    For other resource types that you can protect with a Shield Advanced policy, this\n ManagedServiceData configuration is an empty string.

    \n
  • \n
  • \n

    Example: THIRD_PARTY_FIREWALL\n

    \n

    Replace THIRD_PARTY_FIREWALL_NAME with the name of the third-party firewall.

    \n

    \n \"{\n \"type\":\"THIRD_PARTY_FIREWALL\",\n \"thirdPartyFirewall\":\"THIRD_PARTY_FIREWALL_NAME\",\n \"thirdPartyFirewallConfig\":{\n \"thirdPartyFirewallPolicyList\":[\"global-1\"]\n },\n\t \"firewallDeploymentModel\":{\n \"distributedFirewallDeploymentModel\":{\n \"distributedFirewallOrchestrationConfig\":{\n \"firewallCreationConfig\":{\n \"endpointLocation\":{\n \"availabilityZoneConfigList\":[\n {\n \"availabilityZoneName\":\"${AvailabilityZone}\"\n }\n ]\n }\n },\n \"allowedIPV4CidrList\":[\n ]\n }\n }\n }\n }\"\n

    \n
  • \n
  • \n

    Example: WAFV2 - Account takeover prevention, Bot Control managed rule groups, optimize unassociated web ACL, and rule action override\n

    \n

    \n \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesATPRuleSet\\\",\\\"managedRuleGroupConfigs\\\":[{\\\"awsmanagedRulesATPRuleSet\\\":{\\\"loginPath\\\":\\\"/loginpath\\\",\\\"requestInspection\\\":{\\\"payloadType\\\":\\\"FORM_ENCODED|JSON\\\",\\\"usernameField\\\":{\\\"identifier\\\":\\\"/form/username\\\"},\\\"passwordField\\\":{\\\"identifier\\\":\\\"/form/password\\\"}}}}]},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[],\\\"sampledRequestsEnabled\\\":true},{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesBotControlRuleSet\\\",\\\"managedRuleGroupConfigs\\\":[{\\\"awsmanagedRulesBotControlRuleSet\\\":{\\\"inspectionLevel\\\":\\\"TARGETED|COMMON\\\"}}]},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[],\\\"sampledRequestsEnabled\\\":true,\\\"ruleActionOverrides\\\":[{\\\"name\\\":\\\"Rule1\\\",\\\"actionToUse\\\":{\\\"allow|block|count|captcha|challenge\\\":{}}},{\\\"name\\\":\\\"Rule2\\\",\\\"actionToUse\\\":{\\\"allow|block|count|captcha|challenge\\\":{}}}]}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"customRequestHandling\\\":null,\\\"customResponse\\\":null,\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":null,\\\"sampledRequestsEnabledForDefaultActions\\\":true,\\\"optimizeUnassociatedWebACL\\\":true}\"\n

    \n
      \n
    • \n

      Bot Control - For information about AWSManagedRulesBotControlRuleSet managed rule groups, see AWSManagedRulesBotControlRuleSet in the WAF API Reference.

      \n
    • \n
    • \n

      Fraud Control account takeover prevention (ATP) - For information about the properties available for AWSManagedRulesATPRuleSet managed rule groups, see AWSManagedRulesATPRuleSet in the WAF API Reference.

      \n
    • \n
    • \n

      Optimize unassociated web ACL - If you set optimizeUnassociatedWebACL to true, Firewall Manager creates web ACLs in accounts within the policy scope if the web ACLs will be used by at least one resource. Firewall Manager creates web ACLs in the accounts within policy scope only if the web ACLs will be used by at least one resource. If at any time an account comes into policy scope, Firewall Manager automatically creates a web ACL in the account if at least one resource will use the web ACL.

      \n

      Upon enablement, Firewall Manager performs a one-time cleanup of unused web ACLs in your account. The cleanup process can take several hours. If a resource leaves policy scope after Firewall Manager creates a web ACL, Firewall Manager disassociates the resource from the web ACL, but won't clean up the unused web ACL. Firewall Manager only cleans up unused web ACLs when you first enable management of unused web ACLs in a policy.

      \n

      If you set optimizeUnassociatedWebACL to false Firewall Manager doesn't manage unused web ACLs, and Firewall Manager automatically creates an empty web ACL in each account that's within policy scope.

      \n
    • \n
    • \n

      Rule action overrides - Firewall Manager supports rule action overrides only for managed rule groups. To configure a RuleActionOverrides add the Name of the rule to override, and ActionToUse, which is the new action to use for the rule. For information about using rule action override, see RuleActionOverride in the WAF API Reference.

      \n
    • \n
    \n
  • \n
  • \n

    Example: WAFV2 - CAPTCHA and Challenge configs\n

    \n

    \n \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesAdminProtectionRuleSet\\\"},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[],\\\"sampledRequestsEnabled\\\":true}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"customRequestHandling\\\":null,\\\"customResponse\\\":null,\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":null,\\\"sampledRequestsEnabledForDefaultActions\\\":true,\\\"captchaConfig\\\":{\\\"immunityTimeProperty\\\":{\\\"immunityTime\\\":500}},\\\"challengeConfig\\\":{\\\"immunityTimeProperty\\\":{\\\"immunityTime\\\":800}},\\\"tokenDomains\\\":[\\\"google.com\\\",\\\"amazon.com\\\"],\\\"associationConfig\\\":{\\\"requestBody\\\":{\\\"CLOUDFRONT\\\":{\\\"defaultSizeInspectionLimit\\\":\\\"KB_16\\\"}}}}\"\n

    \n
      \n
    • \n

      \n CAPTCHA and Challenge configs - If you update the policy's values for associationConfig, captchaConfig, challengeConfig, or tokenDomains, Firewall Manager will overwrite your local web ACLs to contain the new value(s). However, if you don't update the policy's associationConfig, captchaConfig, challengeConfig, or tokenDomains values, the values in your local web ACLs will remain unchanged. For information about association configs, see AssociationConfig. For information about CAPTCHA and Challenge configs, see CaptchaConfig and ChallengeConfig in the WAF API Reference.

      \n
    • \n
    • \n

      \n defaultSizeInspectionLimit - Specifies the maximum size of the web request body component that an associated Amazon CloudFront distribution should send to WAF for inspection. For more information, see DefaultSizeInspectionLimit in the WAF API Reference.

      \n
    • \n
    \n
  • \n
  • \n

    Example: WAFV2 - Firewall Manager support for WAF managed rule group versioning\n

    \n

    \n \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":true,\\\"version\\\":\\\"Version_2.0\\\",\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesCommonRuleSet\\\"},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[{\\\"name\\\":\\\"NoUserAgent_HEADER\\\"}]}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[\\\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\\\"],\\\"redactedFields\\\":[{\\\"redactedFieldType\\\":\\\"SingleHeader\\\",\\\"redactedFieldValue\\\":\\\"Cookies\\\"},{\\\"redactedFieldType\\\":\\\"Method\\\"}]}}\"\n

    \n

    \n To use a specific version of a WAF managed rule group in your Firewall Manager policy, you must set versionEnabled to true, and set version to the version you'd like to use. If you don't set versionEnabled to true, or if you omit versionEnabled, then Firewall Manager uses the default version of the WAF managed rule group.\n

    \n
  • \n
  • \n

    Example: WAFV2 - Logging configurations\n

    \n

    \n \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null, \\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\": {\\\"versionEnabled\\\":null,\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\", \\\"managedRuleGroupName\\\":\\\"AWSManagedRulesAdminProtectionRuleSet\\\"} ,\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[], \\\"sampledRequestsEnabled\\\":true}],\\\"postProcessRuleGroups\\\":[], \\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"customRequestHandling\\\" :null,\\\"customResponse\\\":null,\\\"overrideCustomerWebACLAssociation\\\" :false,\\\"loggingConfiguration\\\":{\\\"logDestinationConfigs\\\": [\\\"arn:aws:s3:::aws-waf-logs-example-bucket\\\"] ,\\\"redactedFields\\\":[],\\\"loggingFilterConfigs\\\":{\\\"defaultBehavior\\\":\\\"KEEP\\\", \\\"filters\\\":[{\\\"behavior\\\":\\\"KEEP\\\",\\\"requirement\\\":\\\"MEETS_ALL\\\", \\\"conditions\\\":[{\\\"actionCondition\\\":\\\"CAPTCHA\\\"},{\\\"actionCondition\\\": \\\"CHALLENGE\\\"}, {\\\"actionCondition\\\":\\\"EXCLUDED_AS_COUNT\\\"}]}]}},\\\"sampledRequestsEnabledForDefaultActions\\\":true}\"\n

    \n

    Firewall Manager supports Amazon Kinesis Data Firehose and Amazon S3 as the logDestinationConfigs in your loggingConfiguration. For information about WAF logging configurations, see LoggingConfiguration in the WAF API Reference\n

    \n

    In the loggingConfiguration, you can specify one\n logDestinationConfigs. Optionally provide as many as 20\n redactedFields. The RedactedFieldType must be one of\n URI, QUERY_STRING, HEADER, or\n METHOD.

    \n
  • \n
  • \n

    Example: WAF Classic\n

    \n

    \n \"{\\\"type\\\": \\\"WAF\\\", \\\"ruleGroups\\\":\n [{\\\"id\\\":\\\"12345678-1bcd-9012-efga-0987654321ab\\\", \\\"overrideAction\\\" : {\\\"type\\\":\n \\\"COUNT\\\"}}], \\\"defaultAction\\\": {\\\"type\\\": \\\"BLOCK\\\"}}\"\n

    \n
  • \n
" } }, "PolicyOption": { "target": "com.amazonaws.fms#PolicyOption", "traits": { - "smithy.api#documentation": "

Contains the Network Firewall firewall policy options to configure a centralized deployment\n model.

" + "smithy.api#documentation": "

Contains the settings to configure a network ACL policy, a Network Firewall firewall policy deployment model, or a third-party firewall policy.

" } } }, @@ -7371,6 +7914,12 @@ "traits": { "smithy.api#enumValue": "IMPORT_NETWORK_FIREWALL" } + }, + "NETWORK_ACL_COMMON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NETWORK_ACL_COMMON" + } } } }, @@ -7392,7 +7941,13 @@ "RuleOrder": { "target": "com.amazonaws.fms#RuleOrder", "traits": { - "smithy.api#documentation": "

Indicates how to manage the order of stateful rule evaluation for the policy.\nDEFAULT_ACTION_ORDER is the default behavior. Stateful rules are provided to the rule engine\nas Suricata compatible strings, and Suricata evaluates them based on certain settings. For more\ninformation, see Evaluation order for stateful rules in the Network Firewall Developer Guide.

" + "smithy.api#documentation": "

Indicates how to manage the order of stateful rule evaluation for the policy.\nStateful rules are provided to the rule engine\nas Suricata compatible strings, and Suricata evaluates them based on certain settings. For more\ninformation, see Evaluation order for stateful rules in the Network Firewall Developer Guide.

\n

Default: DEFAULT_ACTION_ORDER\n

" + } + }, + "StreamExceptionPolicy": { + "target": "com.amazonaws.fms#StreamExceptionPolicy", + "traits": { + "smithy.api#documentation": "

Indicates how Network Firewall should handle traffic when a network connection breaks midstream.

\n
    \n
  • \n

    \n DROP - Fail closed and drop all subsequent traffic going to the firewall.

    \n
  • \n
  • \n

    \n CONTINUE - Continue to apply rules to subsequent traffic without context from traffic before the break. This impacts the behavior of rules that depend on context. For example, with a stateful rule that drops HTTP traffic, Network Firewall won't match subsequent traffic because the it won't have the context from session initialization, which defines the application layer protocol as HTTP. However, a TCP-layer rule using a flow:stateless rule would still match, and so would the aws:drop_strict default action.

    \n
  • \n
  • \n

    \n REJECT - Fail closed and drop all subsequent traffic going to the firewall. With this option, Network Firewall also sends a TCP reject packet back to the client so the client can immediately establish a new session. With the new session, Network Firewall will have context and will apply rules appropriately.

    \n

    For applications that are reliant on long-lived TCP connections that trigger Gateway Load Balancer idle timeouts, this is the recommended setting.

    \n
  • \n
  • \n

    \n FMS_IGNORE - Firewall Manager doesn't monitor or modify the Network Firewall stream exception policy settings.

    \n
  • \n
\n

For more information, see \n Stream exception policy in your firewall policy \n in the Network Firewall Developer Guide.

\n

Default: FMS_IGNORE\n

" } } }, @@ -7479,6 +8034,35 @@ } } }, + "com.amazonaws.fms#StreamExceptionPolicy": { + "type": "enum", + "members": { + "DROP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DROP" + } + }, + "CONTINUE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONTINUE" + } + }, + "REJECT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REJECT" + } + }, + "FMS_IGNORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FMS_IGNORE" + } + } + } + }, "com.amazonaws.fms#Tag": { "type": "structure", "members": { @@ -8171,6 +8755,12 @@ "traits": { "smithy.api#enumValue": "FIREWALL_SUBNET_MISSING_VPCE_ENDPOINT" } + }, + "InvalidNetworkAclEntry": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_NETWORK_ACL_ENTRY" + } } } }, diff --git a/models/gamelift.json b/models/gamelift.json index ff8f1540e1..bc5ff2bcb7 100644 --- a/models/gamelift.json +++ b/models/gamelift.json @@ -207,7 +207,7 @@ } }, "traits": { - "smithy.api#documentation": "

Amazon GameLift Anywhere configuration options for your Anywhere fleets.

" + "smithy.api#documentation": "

Amazon GameLift configuration options for your Anywhere fleets.

" } }, "com.amazonaws.gamelift#ArnStringModel": { @@ -454,7 +454,7 @@ } }, "traits": { - "smithy.api#documentation": "

Determines whether a TLS/SSL certificate is generated for a fleet. This feature must\n be enabled when creating the fleet. All instances in a fleet share the same certificate.\n The certificate can be retrieved by calling the Amazon GameLift Server\n SDK operation GetInstanceCertificate.

" + "smithy.api#documentation": "

\n This data type has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Determines whether a TLS/SSL certificate is generated for a fleet. This feature must\n be enabled when creating the fleet. All instances in a fleet share the same certificate.\n The certificate can be retrieved by calling the Amazon GameLift Server\n SDK operation GetInstanceCertificate.

" } }, "com.amazonaws.gamelift#CertificateType": { @@ -615,13 +615,13 @@ "ComputeName": { "target": "com.amazonaws.gamelift#ComputeName", "traits": { - "smithy.api#documentation": "

A descriptive label for the compute resource. For instances in a managed EC2 fleet, the compute name is an instance\n ID.

" + "smithy.api#documentation": "

A descriptive label for the compute resource. For instances in a managed EC2 fleet, the compute name is the same value as the InstanceId\n ID.

" } }, "ComputeArn": { "target": "com.amazonaws.gamelift#ComputeArn", "traits": { - "smithy.api#documentation": "

The ARN that is assigned to a compute resource and uniquely identifies it. ARNs are\n unique across locations. Instances in managed EC2 fleets are not assigned a\n ComputeARN.

" + "smithy.api#documentation": "

The ARN that is assigned to a compute resource and uniquely identifies it. ARNs are\n unique across locations. Instances in managed EC2 fleets are not assigned a Compute\n ARN.

" } }, "IpAddress": { @@ -671,108 +671,986 @@ "traits": { "smithy.api#documentation": "

The Amazon GameLift SDK endpoint connection for a registered compute resource in an Anywhere\n fleet. The game servers on the compute use this endpoint to connect to the Amazon GameLift\n service.

" } + }, + "GameLiftAgentEndpoint": { + "target": "com.amazonaws.gamelift#GameLiftAgentEndpointOutput", + "traits": { + "smithy.api#documentation": "

The endpoint of the Amazon GameLift Agent.

" + } + }, + "InstanceId": { + "target": "com.amazonaws.gamelift#InstanceId", + "traits": { + "smithy.api#documentation": "

\n The InstanceID of the Instance hosting the compute for Container and Managed EC2 fleets.\n

" + } + }, + "ContainerAttributes": { + "target": "com.amazonaws.gamelift#ContainerAttributes", + "traits": { + "smithy.api#documentation": "

\n Some attributes of a container.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This data type has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

An Amazon GameLift compute resource for hosting your game servers. Computes in an Amazon GameLift\n fleet differs depending on the fleet's compute type property as follows:

\n
    \n
  • \n

    For EC2 fleets, a compute is an EC2 instance.

    \n
  • \n
  • \n

    For ANYWHERE fleets, a compute is a computing resource that you\n provide and is registered to the fleet.

    \n
  • \n
  • \n

    For CONTAINER fleets, a compute is a container that's registered\n to the fleet.

    \n
  • \n
" + } + }, + "com.amazonaws.gamelift#ComputeArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "^arn:.*:compute\\/[a-zA-Z0-9\\-]+(\\/[a-zA-Z0-9\\-]+)?$" + } + }, + "com.amazonaws.gamelift#ComputeAuthToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\-]+$" + } + }, + "com.amazonaws.gamelift#ComputeList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#Compute" + } + }, + "com.amazonaws.gamelift#ComputeName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\-]+(\\/[a-zA-Z0-9\\-]+)?$" + } + }, + "com.amazonaws.gamelift#ComputeNameOrArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\-]+(\\/[a-zA-Z0-9\\-]+)?$|^arn:.*:compute\\/[a-zA-Z0-9\\-]+(\\/[a-zA-Z0-9\\-]+)?$" + } + }, + "com.amazonaws.gamelift#ComputeStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "TERMINATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TERMINATING" + } + } + } + }, + "com.amazonaws.gamelift#ComputeType": { + "type": "enum", + "members": { + "EC2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EC2" + } + }, + "ANYWHERE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ANYWHERE" + } + }, + "CONTAINER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONTAINER" + } + } + } + }, + "com.amazonaws.gamelift#ConflictException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.gamelift#NonEmptyString" + } + }, + "traits": { + "smithy.api#documentation": "

The requested operation would cause a conflict with the current state of a service\n resource associated with the request. Resolve the conflict before retrying this\n request.

\n

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.gamelift#ConnectionPortRange": { + "type": "structure", + "members": { + "FromPort": { + "target": "com.amazonaws.gamelift#PortNumber", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Starting value for the port range.

", + "smithy.api#required": {} + } + }, + "ToPort": { + "target": "com.amazonaws.gamelift#PortNumber", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Ending value for the port. Port numbers are end-inclusive. This value must be equal to\n or greater than FromPort.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

The set of port numbers to open on each instance in a container fleet. Connection\n ports are used by inbound traffic to connect with processes that are running in\n containers on the fleet.

\n

\n Part of:\n ContainerGroupsConfiguration, ContainerGroupsAttributes\n

" + } + }, + "com.amazonaws.gamelift#ContainerAttributes": { + "type": "structure", + "members": { + "ContainerPortMappings": { + "target": "com.amazonaws.gamelift#ContainerPortMappingList", + "traits": { + "smithy.api#documentation": "

\n Describes how container ports map to connection ports on the fleet instance.\n Incoming traffic connects to a game via a connection port.\n A ContainerPortMapping directs the traffic from a connection port to a port on the container that hosts the game session.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Describes attributes of containers that are deployed to a fleet with compute type\n CONTAINER.

" + } + }, + "com.amazonaws.gamelift#ContainerCommandStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#NonZeroAnd255MaxString" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + } + } + }, + "com.amazonaws.gamelift#ContainerCpu": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10240 + } + } + }, + "com.amazonaws.gamelift#ContainerDefinition": { + "type": "structure", + "members": { + "ContainerName": { + "target": "com.amazonaws.gamelift#NonZeroAnd128MaxAsciiString", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The container definition identifier. Container names are unique within a container group\n definition.

", + "smithy.api#required": {} + } + }, + "ImageUri": { + "target": "com.amazonaws.gamelift#ImageUriString", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The URI to the image that $short; copied and deployed to a container fleet. For a more\n specific identifier, see ResolvedImageDigest.

", + "smithy.api#required": {} + } + }, + "ResolvedImageDigest": { + "target": "com.amazonaws.gamelift#Sha256", + "traits": { + "smithy.api#documentation": "

A unique and immutable identifier for the container image that is deployed to a container\n fleet. The digest is a SHA 256 hash of the container image manifest.

" + } + }, + "MemoryLimits": { + "target": "com.amazonaws.gamelift#ContainerMemoryLimits", + "traits": { + "smithy.api#documentation": "

The amount of memory that Amazon GameLift makes available to the container. If memory limits\n aren't set for an individual container, the container shares the container group's total\n memory allocation.

\n

\n Related data type: \n ContainerGroupDefinition$TotalMemoryLimit\n

" + } + }, + "PortConfiguration": { + "target": "com.amazonaws.gamelift#ContainerPortConfiguration", + "traits": { + "smithy.api#documentation": "

Defines the ports that are available to assign to processes in the container. For\n example, a game server process requires a container port to allow game clients to connect to\n it. Container ports aren't directly accessed by inbound traffic. Amazon GameLift maps these container\n ports to externally accessible connection ports, which are assigned as needed from the\n container fleet's ConnectionPortRange.

" + } + }, + "Cpu": { + "target": "com.amazonaws.gamelift#ContainerCpu", + "traits": { + "smithy.api#documentation": "

The number of CPU units that are reserved for the container. Note: 1 vCPU unit equals\n 1024 CPU units. If no resources are reserved, the container shares the total CPU limit for the\n container group.

\n

\n Related data type: \n ContainerGroupDefinition$TotalCpuLimit\n

" + } + }, + "HealthCheck": { + "target": "com.amazonaws.gamelift#ContainerHealthCheck", + "traits": { + "smithy.api#documentation": "

A configuration for a non-terminal health check. A container, which automatically restarts\n if it stops functioning, also restarts if it fails this health check. If an essential\n container in the daemon group fails a health check, the entire container group is restarted.\n The essential container in the replica group doesn't use this health check mechanism, because\n the Amazon GameLift Agent automatically handles the task.

" + } + }, + "Command": { + "target": "com.amazonaws.gamelift#ContainerCommandStringList", + "traits": { + "smithy.api#documentation": "

A command that's passed to the container on startup. Each argument for the command is an\n additional string in the array. See the ContainerDefinition::command parameter in the Amazon Elastic Container Service API\n reference.\n

" + } + }, + "Essential": { + "target": "com.amazonaws.gamelift#BooleanModel", + "traits": { + "smithy.api#documentation": "

Indicates whether the container is vital to the container group. If an essential\n container fails, the entire container group is restarted.

" + } + }, + "EntryPoint": { + "target": "com.amazonaws.gamelift#ContainerEntryPointList", + "traits": { + "smithy.api#documentation": "

The entry point that's passed to the container on startup. If there are multiple\n arguments, each argument is an additional string in the array. See the ContainerDefinition::entryPoint parameter in the Amazon Elastic Container Service API\n Reference.

" + } + }, + "WorkingDirectory": { + "target": "com.amazonaws.gamelift#NonZeroAnd255MaxString", + "traits": { + "smithy.api#documentation": "

The directory in the container where commands are run. See the ContainerDefinition::workingDirectory parameter in the Amazon Elastic Container Service API\n Reference.

" + } + }, + "Environment": { + "target": "com.amazonaws.gamelift#ContainerEnvironmentList", + "traits": { + "smithy.api#documentation": "

A set of environment variables that's passed to the container on startup. See the ContainerDefinition::environment parameter in the Amazon Elastic Container Service API\n Reference.

" + } + }, + "DependsOn": { + "target": "com.amazonaws.gamelift#ContainerDependencyList", + "traits": { + "smithy.api#documentation": "

Indicates that the container relies on the status of other containers in the same\n container group during its startup and shutdown sequences. A container might have dependencies\n on multiple containers.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Describes a container in a container fleet, the resources available to the container,\n and the commands that are run when the container starts. Container properties can't be\n updated. To change a property, create a new container group definition. See also \n ContainerDefinitionInput.

\n

\n Part of:\n ContainerGroupDefinition\n

\n

\n Returned by:\n DescribeContainerGroupDefinition, ListContainerGroupDefinitions\n

" + } + }, + "com.amazonaws.gamelift#ContainerDefinitionInput": { + "type": "structure", + "members": { + "ContainerName": { + "target": "com.amazonaws.gamelift#NonZeroAnd128MaxAsciiString", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A string that uniquely identifies the container definition within a container\n group.

", + "smithy.api#required": {} + } + }, + "ImageUri": { + "target": "com.amazonaws.gamelift#ImageUriString", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The location of a container image that $short; will copy and deploy to a container fleet.\n Images in Amazon Elastic Container Registry private repositories are supported. The repository must be in the same\n Amazon Web Services account and Amazon Web Services Region where you're creating the container group definition. For\n limits on image size, see Amazon GameLift endpoints and quotas. You can use any of the following image URI formats:

\n
    \n
  • \n

    Image ID only: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository\n ID]\n

    \n
  • \n
  • \n

    Image ID and digest: [AWS account].dkr.ecr.[AWS\n region].amazonaws.com/[repository ID]@[digest]\n

    \n
  • \n
  • \n

    Image ID and tag: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository\n ID]:[tag]\n

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "MemoryLimits": { + "target": "com.amazonaws.gamelift#ContainerMemoryLimits", + "traits": { + "smithy.api#documentation": "

The amount of memory to make available to the container. If you don't specify memory\n limits for this container, then it shares the container group's total memory allocation.

\n

\n Related data type: \n ContainerGroupDefinition$TotalMemoryLimit\n

" + } + }, + "PortConfiguration": { + "target": "com.amazonaws.gamelift#ContainerPortConfiguration", + "traits": { + "smithy.api#documentation": "

A set of ports that Amazon GameLift can assign to processes in the container. All processes that\n accept inbound traffic connections, including game server processes, must be assigned a port\n from this set. The set of ports must be large enough to assign one to each process in the\n container that needs one. If the container includes your game server, include enough ports to\n assign one port to each concurrent server process (as defined in a container fleet's RuntimeConfiguration). For more details, see Networking for container\n fleets.

\n

Container ports aren't directly accessed by inbound traffic. Amazon GameLift maps these container\n ports to externally accessible connection ports, which are assigned as needed from the\n container fleet's ConnectionPortRange.

" + } + }, + "Cpu": { + "target": "com.amazonaws.gamelift#ContainerCpu", + "traits": { + "smithy.api#documentation": "

The number of CPU units to reserve for this container. The container can use more resources\n when needed, if available. Note: 1 vCPU unit equals 1024 CPU\n units. If you don't reserve CPU units for this container, then it shares the total CPU limit\n for the container group. This property is similar to the Amazon ECS container definition parameter \n environment (Amazon Elastic Container Service Developer Guide).\n

\n

\n Related data type: \n ContainerGroupDefinition$TotalCpuLimit\n

" + } + }, + "HealthCheck": { + "target": "com.amazonaws.gamelift#ContainerHealthCheck", + "traits": { + "smithy.api#documentation": "

Configuration for a non-terminal health check. A container automatically restarts if it\n stops functioning. This parameter lets you define additional reasons to consider a container\n unhealthy and restart it. You can set a health check for any container except for the\n essential container in the replica container group. If an essential container in the daemon\n group fails a health check, the entire container group is restarted.

" + } + }, + "Command": { + "target": "com.amazonaws.gamelift#ContainerCommandStringList", + "traits": { + "smithy.api#documentation": "

A command to pass to the container on startup. Add multiple arguments as additional\n strings in the array. See the ContainerDefinition command parameter in the Amazon Elastic Container Service API\n reference.\n

" + } + }, + "Essential": { + "target": "com.amazonaws.gamelift#BooleanModel", + "traits": { + "smithy.api#documentation": "

Specifies whether the container is vital for the container group to function properly.\n If an essential container fails, it causes the entire container group to restart. Each\n container group must have an essential container.

\n

\n Replica container groups - A replica group must have\n exactly one essential container. Use the following to configure an essential replica\n container:

\n
    \n
  • \n

    Choose a container is running your game server and the Amazon GameLift Agent.

    \n
  • \n
  • \n

    Include a port configuration. This container runs your game server processes, and each\n process requires a container port to allow access to game clients.

    \n
  • \n
  • \n

    Don't configure a health check. The Agent handles this task for the essential replica\n container.

    \n
  • \n
\n

\n Daemon container groups - A daemon group must have at\n least one essential container.

\n

\n

" + } + }, + "EntryPoint": { + "target": "com.amazonaws.gamelift#ContainerEntryPointList", + "traits": { + "smithy.api#documentation": "

An entry point to pass to the container on startup. Add multiple arguments as additional\n strings in the array. See the ContainerDefinition::entryPoint parameter in the Amazon Elastic Container Service API\n Reference.

" + } + }, + "WorkingDirectory": { + "target": "com.amazonaws.gamelift#NonZeroAnd255MaxString", + "traits": { + "smithy.api#documentation": "

The directory in the container where commands are run. See the ContainerDefinition::workingDirectory parameter in the Amazon Elastic Container Service API\n Reference.

" + } + }, + "Environment": { + "target": "com.amazonaws.gamelift#ContainerEnvironmentList", + "traits": { + "smithy.api#documentation": "

A set of environment variables to pass to the container on startup. See the ContainerDefinition::environment parameter in the Amazon Elastic Container Service API\n Reference.

" + } + }, + "DependsOn": { + "target": "com.amazonaws.gamelift#ContainerDependencyList", + "traits": { + "smithy.api#documentation": "

Sets up dependencies between this container and the status of other containers in the same\n container group. A container can have dependencies on multiple different containers.

\n

You can use dependencies\n to establish a startup/shutdown sequence across the container group. A container startup\n dependency is reversed on shutdown.

\n

For example, you might specify that SideCarContainerB has a START dependency\n on SideCarContainerA. This dependency means that SideCarContainerB can't start until after\n SideCarContainerA has started. This dependency is reversed on shutdown, which means that\n SideCarContainerB must shut down before SideCarContainerA can shut down.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Describes a container's configuration, resources, and start instructions. Use this data\n type to create a container group definition. For the properties of a container that's been\n deployed to a fleet, see ContainerDefinition. You can't change these properties after you've created the container group definition. If you need a container group with different properties, then you must create a new one. \n

\n

\n Used with: \n CreateContainerGroupDefinition\n

" + } + }, + "com.amazonaws.gamelift#ContainerDefinitionInputList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#ContainerDefinitionInput" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.gamelift#ContainerDefinitionList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#ContainerDefinition" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.gamelift#ContainerDependency": { + "type": "structure", + "members": { + "ContainerName": { + "target": "com.amazonaws.gamelift#NonZeroAnd128MaxAsciiString", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A descriptive label for the container definition that this container depends on.

", + "smithy.api#required": {} + } + }, + "Condition": { + "target": "com.amazonaws.gamelift#ContainerDependencyCondition", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The condition that the dependency container must reach before the dependent container can\n start. Valid conditions include:

\n
    \n
  • \n

    START - The dependency container must have started.

    \n
  • \n
  • \n

    COMPLETE - The dependency container has run to completion (exits). Use this condition with\n nonessential containers, such as those that run a script and then exit. The dependency\n container can't be an essential container.

    \n
  • \n
  • \n

    SUCCESS - The dependency container has run to completion and exited with a zero status. The\n dependency container can't be an essential container.

    \n
  • \n
  • \n

    HEALTHY - The dependency container has passed its Docker health check. Use this condition with\n dependency containers that have health checks configured. This condition is confirmed at\n container group startup only.

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

A container's dependency on another container in the same container group. The dependency\n impacts how the dependent container is able to start or shut down based the status of the\n other container.

\n

For example, ContainerA is configured with the following dependency: a START\n dependency on ContainerB. This means that ContainerA can't start until ContainerB has started.\n It also means that ContainerA must shut down before ContainerB.

\n

\n Part of:\n ContainerDefinition\n

" + } + }, + "com.amazonaws.gamelift#ContainerDependencyCondition": { + "type": "enum", + "members": { + "START": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "START" + } + }, + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + }, + "SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCESS" + } + }, + "HEALTHY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HEALTHY" + } + } + } + }, + "com.amazonaws.gamelift#ContainerDependencyList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#ContainerDependency" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.gamelift#ContainerEntryPointList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + } + } + }, + "com.amazonaws.gamelift#ContainerEnvironment": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.gamelift#NonZeroAnd255MaxString", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The environment variable name.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.gamelift#NonZeroAnd255MaxString", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The environment variable value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

An environment variable to set inside a container, in the form of a key-value pair.\n

\n

\n Related data type: \n ContainerDefinition$Environment\n

" + } + }, + "com.amazonaws.gamelift#ContainerEnvironmentList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#ContainerEnvironment" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + } + } + }, + "com.amazonaws.gamelift#ContainerGroupDefinition": { + "type": "structure", + "members": { + "ContainerGroupDefinitionArn": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that is assigned to an Amazon GameLift ContainerGroupDefinition resource. It uniquely identifies \nthe resource across all Amazon Web Services Regions. Format is \narn:aws:gamelift:::containergroupdefinition/[container group definition name].

" + } + }, + "CreationTime": { + "target": "com.amazonaws.gamelift#Timestamp", + "traits": { + "smithy.api#documentation": "

A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" + } + }, + "OperatingSystem": { + "target": "com.amazonaws.gamelift#ContainerOperatingSystem", + "traits": { + "smithy.api#documentation": "

The platform required for all containers in the container group definition.

" + } + }, + "Name": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionName", + "traits": { + "smithy.api#documentation": "

A descriptive identifier for the container group definition. The name value is unique in an Amazon Web Services Region.

" + } + }, + "SchedulingStrategy": { + "target": "com.amazonaws.gamelift#ContainerSchedulingStrategy", + "traits": { + "smithy.api#documentation": "

The method for deploying the container group across fleet instances. A replica container\n group might have multiple copies on each fleet instance. A daemon container group maintains\n only one copy per fleet instance.

" + } + }, + "TotalMemoryLimit": { + "target": "com.amazonaws.gamelift#ContainerTotalMemoryLimit", + "traits": { + "smithy.api#documentation": "

The amount of memory (in MiB) on a fleet instance to allocate for the container group. All\n containers in the group share these resources.

\n

You can set additional limits for each ContainerDefinition in\n the group. If individual containers have limits, this value must meet the following\n requirements:

\n
    \n
  • \n

    Equal to or greater than the sum of all container-specific soft memory limits in the group.

    \n
  • \n
  • \n

    Equal to or greater than any container-specific hard limits in the group.

    \n
  • \n
\n

For more details on memory allocation, see the Container fleet design\n guide.

" + } + }, + "TotalCpuLimit": { + "target": "com.amazonaws.gamelift#ContainerTotalCpuLimit", + "traits": { + "smithy.api#documentation": "

The amount of CPU units on a fleet instance to allocate for the container group. All\n containers in the group share these resources. This property is an integer value in CPU units \n (1 vCPU is equal to 1024 CPU units).

\n

You can set additional limits for each ContainerDefinition in\n the group. If individual containers have limits, this value must be equal to or greater than the sum of all\n container-specific CPU limits in the group.

\n

For more details on memory allocation, see the Container fleet design\n guide.

" + } + }, + "ContainerDefinitions": { + "target": "com.amazonaws.gamelift#ContainerDefinitionList", + "traits": { + "smithy.api#documentation": "

\n The set of container definitions that are included in the container group.\n

" + } + }, + "Status": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionStatus", + "traits": { + "smithy.api#documentation": "

Current status of the container group definition resource. Values include:

\n
    \n
  • \n

    \n COPYING -- Amazon GameLift is in the process of making copies of all container\n images that are defined in the group. While in this state, the resource can't be used to\n create a container fleet.

    \n
  • \n
  • \n

    \n READY -- Amazon GameLift has copied the registry images for all containers that\n are defined in the group. You can use a container group definition in this status to\n create a container fleet.

    \n
  • \n
  • \n

    \n FAILED -- Amazon GameLift failed to create a valid container group definition\n resource. For more details on the cause of the failure, see StatusReason. A\n container group definition resource in failed status will be deleted within a few\n minutes.

    \n
  • \n
" + } + }, + "StatusReason": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

Additional information about a container group definition that's in FAILED\n status. Possible reasons include:

\n
    \n
  • \n

    An internal issue prevented Amazon GameLift from creating\n the container group definition resource. Delete the failed resource and call \n CreateContainerGroupDefinitionagain.

    \n
  • \n
  • \n

    An access-denied message means that you don't have permissions to access the container image on ECR. See \n \n IAM permission examples\n for help setting up required IAM permissions for Amazon GameLift.

    \n
  • \n
  • \n

    The ImageUri value for at least one\n of the containers in the container group definition was invalid or not found in the current\n Amazon Web Services account.

    \n
  • \n
  • \n

    At least one\n of the container images referenced in the container group definition exceeds the \n allowed size. For size limits, see \n Amazon GameLift endpoints and quotas.

    \n
  • \n
  • \n

    At least one of the container images referenced in the \n container group definition uses a different operating system than the one defined for the container group.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

The properties that describe a container group resource. Container group definition\n properties can't be updated. To change a property, create a new container group\n definition.

\n

\n Used with:\n CreateContainerGroupDefinition\n

\n

\n Returned by:\n DescribeContainerGroupDefinition, ListContainerGroupDefinitions\n

" + } + }, + "com.amazonaws.gamelift#ContainerGroupDefinitionArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^arn:.*:containergroupdefinition\\/containergroupdefinition-[a-zA-Z0-9-]+$" + } + }, + "com.amazonaws.gamelift#ContainerGroupDefinitionList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinition" + } + }, + "com.amazonaws.gamelift#ContainerGroupDefinitionName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\-]+$" + } + }, + "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\-]+$|^arn:.*:containergroupdefinition\\/[a-zA-Z0-9\\-]+$" + } + }, + "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArnLimitedList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2 + } + } + }, + "com.amazonaws.gamelift#ContainerGroupDefinitionPropertiesList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionProperty" + } + }, + "com.amazonaws.gamelift#ContainerGroupDefinitionProperty": { + "type": "structure", + "members": { + "SchedulingStrategy": { + "target": "com.amazonaws.gamelift#ContainerSchedulingStrategy", + "traits": { + "smithy.api#documentation": "

The method for scheduling and maintaining copies of the container group across a container\n fleet.

" + } + }, + "ContainerGroupDefinitionName": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionName", + "traits": { + "smithy.api#documentation": "

The unique identifier for the container group definition.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

The properties of a container group that is deployed to a container fleet.

\n

\n Part of:\n ContainerGroupsAttributes\n

\n

\n Returned by:\n DescribeFleetAttributes\n

" + } + }, + "com.amazonaws.gamelift#ContainerGroupDefinitionStatus": { + "type": "enum", + "members": { + "READY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "READY" + } + }, + "COPYING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COPYING" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.gamelift#ContainerGroupsAttributes": { + "type": "structure", + "members": { + "ContainerGroupDefinitionProperties": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionPropertiesList", + "traits": { + "smithy.api#documentation": "

A collection of properties that describe each container group in the fleet. A container fleet is deployed with\n one or more ContainerGroupDefinition resources, which is where these properties are set.

" + } + }, + "ConnectionPortRange": { + "target": "com.amazonaws.gamelift#ConnectionPortRange", + "traits": { + "smithy.api#documentation": "

A set of ports that allow inbound traffic to connect to processes running in the fleet's\n container groups. Amazon GameLift maps each connection port to a container port, which is assigned to\n a specific container process. A fleet's connection port range can't be changed, but you can\n control access to connection ports by updating a fleet's EC2InboundPermissions\n with UpdateFleetPortSettings.

" + } + }, + "ContainerGroupsPerInstance": { + "target": "com.amazonaws.gamelift#ContainerGroupsPerInstance", + "traits": { + "smithy.api#documentation": "

Details about the number of replica container groups that Amazon GameLift deploys to each instance in\n the container fleet.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

The properties of container groups that are running on a container fleet. Container group\n properties for a fleet can't be changed.

\n

\n Returned by:\n DescribeFleetAttributes, CreateFleet\n

" + } + }, + "com.amazonaws.gamelift#ContainerGroupsConfiguration": { + "type": "structure", + "members": { + "ContainerGroupDefinitionNames": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArnLimitedList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The list of container group definition names to deploy to a new container fleet.

", + "smithy.api#required": {} + } + }, + "ConnectionPortRange": { + "target": "com.amazonaws.gamelift#ConnectionPortRange", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A set of ports to allow inbound traffic, including game clients, to connect to processes\n running in the container fleet.

\n

Connection ports are dynamically mapped to container ports, which are assigned to\n individual processes running in a container. The connection port range must have enough ports\n to map to all container ports across a fleet instance. To calculate the minimum connection\n ports needed, use the following formula:

\n

\n [Total number of container ports as defined for containers in the replica\n container group] * [Desired or calculated number of replica container groups per instance] +\n [Total number of container ports as defined for containers in the daemon container\n group]\n

\n

As a best practice, double the minimum number of connection ports.

\n \n

Use the fleet's EC2InboundPermissions property to control external access to\n connection ports. Set this property to the connection port numbers that you want to open\n access to. See IpPermission for more details.

\n
", + "smithy.api#required": {} + } + }, + "DesiredReplicaContainerGroupsPerInstance": { + "target": "com.amazonaws.gamelift#ReplicaContainerGroupsPerInstance", + "traits": { + "smithy.api#documentation": "

The number of times to replicate the replica container group on each instance in a container\n fleet. By default, Amazon GameLift calculates the maximum number of replica container groups that can\n fit on a fleet instance (based on CPU and memory resources). Leave this parameter empty if you\n want to use the maximum number, or specify a desired number to override the maximum. The\n desired number is used if it's less than the maximum number.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Configuration details for a set of container groups, for use when creating a fleet with\n compute type CONTAINER.

\n

\n Used with:\n CreateFleet\n

" + } + }, + "com.amazonaws.gamelift#ContainerGroupsPerInstance": { + "type": "structure", + "members": { + "DesiredReplicaContainerGroupsPerInstance": { + "target": "com.amazonaws.gamelift#ReplicaContainerGroupsPerInstance", + "traits": { + "smithy.api#documentation": "

The desired number of replica container groups to place on each fleet instance.

" + } + }, + "MaxReplicaContainerGroupsPerInstance": { + "target": "com.amazonaws.gamelift#ReplicaContainerGroupsPerInstance", + "traits": { + "smithy.api#documentation": "

The maximum possible number of replica container groups that each fleet instance can\n have.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Determines how many replica container groups that Amazon GameLift deploys to each instance in a\n container fleet.

\n

Amazon GameLift calculates the maximum possible replica groups per instance based on the instance\n 's CPU and memory resources. When deploying a fleet, Amazon GameLift places replica container groups\n on each fleet instance based on the following:

\n
    \n
  • \n

    If no desired value is set, Amazon GameLift places the calculated maximum.

    \n
  • \n
  • \n

    If a desired number is set to a value higher than the calculated maximum, Amazon GameLift\n places the calculated maximum.

    \n
  • \n
  • \n

    If a desired number is set to a value lower than the calculated maximum, Amazon GameLift\n places the desired number.

    \n
  • \n
\n

\n Part of:\n ContainerGroupsConfiguration, ContainerGroupsAttributes\n

\n

\n Returned by:\n DescribeFleetAttributes, CreateFleet\n

" + } + }, + "com.amazonaws.gamelift#ContainerHealthCheck": { + "type": "structure", + "members": { + "Command": { + "target": "com.amazonaws.gamelift#ContainerCommandStringList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A string array that specifies the command that the container runs to determine if it's\n healthy.

", + "smithy.api#required": {} + } + }, + "Interval": { + "target": "com.amazonaws.gamelift#ContainerHealthCheckInterval", + "traits": { + "smithy.api#documentation": "

The time period (in seconds) between each health check.

" + } + }, + "Timeout": { + "target": "com.amazonaws.gamelift#ContainerHealthCheckTimeout", + "traits": { + "smithy.api#documentation": "

The time period (in seconds) to wait for a health check to succeed before a failed health\n check is counted.

" + } + }, + "Retries": { + "target": "com.amazonaws.gamelift#ContainerHealthCheckRetries", + "traits": { + "smithy.api#documentation": "

The number of times to retry a failed health check before the container is considered\n unhealthy. The first run of the command does not count as a retry.

" + } + }, + "StartPeriod": { + "target": "com.amazonaws.gamelift#ContainerHealthCheckStartPeriod", + "traits": { + "smithy.api#documentation": "

The optional grace period (in seconds) to give a container time to bootstrap before the\n first failed health check counts toward the number of retries.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Instructions on when and how to check the health of a container in a container fleet. When\n health check properties are set in a container definition, they override any Docker health\n checks in the container image. For more information on container health checks, see HealthCheck command in the Amazon Elastic Container Service API.

\n

The following example instructions tell the container to wait 100 seconds after launch\n before counting failed health checks, then initiate the health check command every 60 seconds.\n After issuing the health check command, wait 10 seconds for it to succeed. If it fails, retry\n the command 3 times before considering the container to be unhealthy.

\n

\n {\"Command\": [ \"CMD-SHELL\", \"ps cax | grep \"processmanager\" || exit 1\" ], \"Interval\":\n 300, \"Timeout\": 30, \"Retries\": 5, \"StartPeriod\": 100 }\n

\n

\n Part of:\n ContainerDefinition$HealthCheck\n

" + } + }, + "com.amazonaws.gamelift#ContainerHealthCheckInterval": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 60, + "max": 300 + } + } + }, + "com.amazonaws.gamelift#ContainerHealthCheckRetries": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 10 + } + } + }, + "com.amazonaws.gamelift#ContainerHealthCheckStartPeriod": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 300 + } + } + }, + "com.amazonaws.gamelift#ContainerHealthCheckTimeout": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 30, + "max": 60 + } + } + }, + "com.amazonaws.gamelift#ContainerMemoryLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 4, + "max": 1024000 + } + } + }, + "com.amazonaws.gamelift#ContainerMemoryLimits": { + "type": "structure", + "members": { + "SoftLimit": { + "target": "com.amazonaws.gamelift#ContainerMemoryLimit", + "traits": { + "smithy.api#documentation": "

The amount of memory that is reserved for a container. When the container group's shared\n memory is under contention, the system attempts to maintain the container memory usage at this\n soft limit. However, the container can use more memory when needed, if available. This\n property is similar to the Amazon ECS container definition parameter memoryreservation (Amazon Elastic Container Service Developer Guide).

" + } + }, + "HardLimit": { + "target": "com.amazonaws.gamelift#ContainerMemoryLimit", + "traits": { + "smithy.api#documentation": "

The maximum amount of memory that the container can use. If a container attempts to exceed\n this limit, the container is stopped. This property is similar to the Amazon ECS container\n definition parameter memory in the Amazon Elastic Container Service Developer Guide.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies how much memory is available to a container. You can't change this value after\n you create this object.

\n

\n Part of: \n ContainerDefinition$MemoryLimits\n

" + } + }, + "com.amazonaws.gamelift#ContainerOperatingSystem": { + "type": "enum", + "members": { + "AMAZON_LINUX_2023": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AMAZON_LINUX_2023" + } } - }, - "traits": { - "smithy.api#documentation": "

An Amazon GameLift compute resource for hosting your game servers. A compute can be an\n EC2instance in a managed EC2 fleet or a registered compute in an Anywhere fleet.

" } }, - "com.amazonaws.gamelift#ComputeArn": { - "type": "string", + "com.amazonaws.gamelift#ContainerPortConfiguration": { + "type": "structure", + "members": { + "ContainerPortRanges": { + "target": "com.amazonaws.gamelift#ContainerPortRangeList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Specifies one or more ranges of ports on a container.\n These ranges must not overlap.\n

", + "smithy.api#required": {} + } + } + }, "traits": { - "smithy.api#length": { - "min": 0, - "max": 1024 - }, - "smithy.api#pattern": "^arn:.*:compute\\/[a-zA-Z0-9\\-]+$" + "smithy.api#documentation": "

Defines ranges of ports that server processes can connect to.\n

\n

\n Part of:\n ContainerDefinition$PortConfiguration\n

" } }, - "com.amazonaws.gamelift#ComputeAuthToken": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 64 + "com.amazonaws.gamelift#ContainerPortMapping": { + "type": "structure", + "members": { + "ContainerPort": { + "target": "com.amazonaws.gamelift#PortNumber", + "traits": { + "smithy.api#documentation": "

The port opened on the container.

" + } }, - "smithy.api#pattern": "^[a-zA-Z0-9\\-]+$" + "ConnectionPort": { + "target": "com.amazonaws.gamelift#PortNumber", + "traits": { + "smithy.api#documentation": "

The port opened on the fleet instance. This is also called the \"host port\".

" + } + }, + "Protocol": { + "target": "com.amazonaws.gamelift#IpProtocol", + "traits": { + "smithy.api#documentation": "

The network protocol that this mapping supports.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Defines how an internal-facing container port is mapped to an external-facing connection\n port on a fleet instance of compute type CONTAINER. Incoming traffic, such as a\n game client, uses a connection port to connect to a process in the container fleet. Amazon GameLift\n directs the inbound traffic to the container port that is assigned to the process, such as a\n game session, running on a container.

\n

\n Part of:\n ContainerAttributes\n

" } }, - "com.amazonaws.gamelift#ComputeList": { + "com.amazonaws.gamelift#ContainerPortMappingList": { "type": "list", "member": { - "target": "com.amazonaws.gamelift#Compute" - } - }, - "com.amazonaws.gamelift#ComputeName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 128 - }, - "smithy.api#pattern": "^[a-zA-Z0-9\\-]+$" - } - }, - "com.amazonaws.gamelift#ComputeNameOrArn": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 1024 - }, - "smithy.api#pattern": "^[a-zA-Z0-9\\-]+|^arn:.*:compute\\/[a-zA-Z0-9\\-]+$" + "target": "com.amazonaws.gamelift#ContainerPortMapping" } }, - "com.amazonaws.gamelift#ComputeStatus": { - "type": "enum", + "com.amazonaws.gamelift#ContainerPortRange": { + "type": "structure", "members": { - "PENDING": { - "target": "smithy.api#Unit", + "FromPort": { + "target": "com.amazonaws.gamelift#PortNumber", "traits": { - "smithy.api#enumValue": "PENDING" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A starting value for the range of allowed port numbers.

", + "smithy.api#required": {} } }, - "ACTIVE": { - "target": "smithy.api#Unit", + "ToPort": { + "target": "com.amazonaws.gamelift#PortNumber", "traits": { - "smithy.api#enumValue": "ACTIVE" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

An ending value for the range of allowed port numbers.\n Port numbers are end-inclusive.\n This value must be equal to or greater than FromPort.

", + "smithy.api#required": {} } }, - "TERMINATING": { - "target": "smithy.api#Unit", + "Protocol": { + "target": "com.amazonaws.gamelift#IpProtocol", "traits": { - "smithy.api#enumValue": "TERMINATING" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The network protocol that these ports support.

", + "smithy.api#required": {} } } + }, + "traits": { + "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

A set of one or more port numbers that can be opened on the container. \n

\n

\n Part of:\n ContainerPortConfiguration\n

" } }, - "com.amazonaws.gamelift#ComputeType": { + "com.amazonaws.gamelift#ContainerPortRangeList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#ContainerPortRange" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.gamelift#ContainerSchedulingStrategy": { "type": "enum", "members": { - "EC2": { + "REPLICA": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EC2" + "smithy.api#enumValue": "REPLICA" } }, - "ANYWHERE": { + "DAEMON": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ANYWHERE" + "smithy.api#enumValue": "DAEMON" } } } }, - "com.amazonaws.gamelift#ConflictException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.gamelift#NonEmptyString" + "com.amazonaws.gamelift#ContainerTotalCpuLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 128, + "max": 10240 } - }, + } + }, + "com.amazonaws.gamelift#ContainerTotalMemoryLimit": { + "type": "integer", "traits": { - "smithy.api#documentation": "

The requested operation would cause a conflict with the current state of a service\n resource associated with the request. Resolve the conflict before retrying this\n request.

\n

", - "smithy.api#error": "client" + "smithy.api#range": { + "min": 4, + "max": 1024000 + } } }, "com.amazonaws.gamelift#CreateAlias": { @@ -956,6 +1834,115 @@ "smithy.api#output": {} } }, + "com.amazonaws.gamelift#CreateContainerGroupDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.gamelift#CreateContainerGroupDefinitionInput" + }, + "output": { + "target": "com.amazonaws.gamelift#CreateContainerGroupDefinitionOutput" + }, + "errors": [ + { + "target": "com.amazonaws.gamelift#ConflictException" + }, + { + "target": "com.amazonaws.gamelift#InternalServiceException" + }, + { + "target": "com.amazonaws.gamelift#InvalidRequestException" + }, + { + "target": "com.amazonaws.gamelift#LimitExceededException" + }, + { + "target": "com.amazonaws.gamelift#TaggingFailedException" + }, + { + "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" + } + ], + "traits": { + "smithy.api#documentation": "

\n This operation is used with the Amazon GameLift containers feature, which is currently in public preview. \n

\n

Creates a ContainerGroupDefinition resource that describes a set of\n containers for hosting your game server with Amazon GameLift managed EC2 hosting. An Amazon GameLift container\n group is similar to a container \"task\" and \"pod\". Each container group can have one or more\n containers.

\n

Use container group definitions when you create a container fleet. Container group\n definitions determine how Amazon GameLift deploys your containers to each instance in a container\n fleet.

\n

You can create two types of container groups, based on scheduling strategy:

\n
    \n
  • \n

    A replica container group manages the containers that run\n your game server application and supporting software. Replica container groups might be\n replicated multiple times on each fleet instance, depending on instance resources.

    \n
  • \n
  • \n

    A daemon container group manages containers that run other\n software, such as background services, logging, or test processes. You might use a daemon\n container group for processes that need to run only once per fleet instance, or processes\n that need to persist independently of the replica container group.

    \n
  • \n
\n

To create a container group definition, specify a group name, a list of container\n definitions, and maximum total CPU and memory requirements for the container group. Specify an\n operating system and scheduling strategy or use the default values. When using the Amazon Web Services CLI\n tool, you can pass in your container definitions as a JSON file.

\n \n

This operation requires Identity and Access Management (IAM) permissions to access container images in\n Amazon ECR repositories. See IAM permissions\n for Amazon GameLift for help setting the appropriate permissions.

\n
\n

If successful, this operation creates a new ContainerGroupDefinition resource\n with an ARN value assigned. You can't change the properties of a container group definition.\n Instead, create a new one.

\n

\n Learn more\n

\n " + } + }, + "com.amazonaws.gamelift#CreateContainerGroupDefinitionInput": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A descriptive identifier for the container group definition. The name value must be unique in an Amazon Web Services Region.

", + "smithy.api#required": {} + } + }, + "SchedulingStrategy": { + "target": "com.amazonaws.gamelift#ContainerSchedulingStrategy", + "traits": { + "smithy.api#documentation": "

The method for deploying the container group across fleet instances. A replica container\n group might have multiple copies on each fleet instance. A daemon container group has one copy\n per fleet instance. Default value is REPLICA.

" + } + }, + "TotalMemoryLimit": { + "target": "com.amazonaws.gamelift#ContainerTotalMemoryLimit", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The maximum amount of memory (in MiB) to allocate to the container group. All containers in\n the group share this memory. If you specify memory limits for individual containers, set this\n parameter based on the following guidelines. The value must be (1) greater than the sum of the\n soft memory limits for all containers in the group, and (2) greater than any individual\n container's hard memory limit.

", + "smithy.api#required": {} + } + }, + "TotalCpuLimit": { + "target": "com.amazonaws.gamelift#ContainerTotalCpuLimit", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The maximum amount of CPU units to allocate to the container group. Set this parameter to an\n integer value in CPU units (1 vCPU is equal to 1024 CPU units). All containers in the group\n share this memory. If you specify CPU limits for individual containers, set this parameter\n based on the following guidelines. The value must be equal to or greater than the sum of the\n CPU limits for all containers in the group.

", + "smithy.api#required": {} + } + }, + "ContainerDefinitions": { + "target": "com.amazonaws.gamelift#ContainerDefinitionInputList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Definitions for all containers in this group. Each container definition identifies the\n container image and specifies configuration settings for the container. See the \n Container fleet design guide for container guidelines.

", + "smithy.api#required": {} + } + }, + "OperatingSystem": { + "target": "com.amazonaws.gamelift#ContainerOperatingSystem", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The platform that is used by containers in the container group definition. All containers in\n a group must run on the same operating system.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.gamelift#TagList", + "traits": { + "smithy.api#documentation": "

A list of labels to assign to the container group definition resource. Tags are\n developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management,\n access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the\n Amazon Web Services General Reference.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.gamelift#CreateContainerGroupDefinitionOutput": { + "type": "structure", + "members": { + "ContainerGroupDefinition": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinition", + "traits": { + "smithy.api#documentation": "

The properties of the newly created container group definition resource. You use this resource \n to create a container fleet.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.gamelift#CreateFleet": { "type": "operation", "input": { @@ -980,6 +1967,9 @@ { "target": "com.amazonaws.gamelift#NotFoundException" }, + { + "target": "com.amazonaws.gamelift#NotReadyException" + }, { "target": "com.amazonaws.gamelift#TaggingFailedException" }, @@ -991,7 +1981,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a fleet of Amazon Elastic Compute Cloud (Amazon EC2) instances to host your custom game server or\n Realtime Servers. Use this operation to configure the computing resources for your fleet and\n provide instructions for running game servers on each instance.

\n

Most Amazon GameLift fleets can deploy instances to multiple locations, including the home\n Region (where the fleet is created) and an optional set of remote locations. Fleets that\n are created in the following Amazon Web Services Regions support multiple locations: us-east-1 (N.\n Virginia), us-west-2 (Oregon), eu-central-1 (Frankfurt), eu-west-1 (Ireland),\n ap-southeast-2 (Sydney), ap-northeast-1 (Tokyo), and ap-northeast-2 (Seoul). Fleets that\n are created in other Amazon GameLift Regions can deploy instances in the fleet's home Region\n only. All fleet instances use the same configuration regardless of location; however,\n you can adjust capacity settings and turn auto-scaling on/off for each location.

\n

To create a fleet, choose the hardware for your instances, specify a game server build\n or Realtime script to deploy, and provide a runtime configuration to direct Amazon GameLift how\n to start and run game servers on each instance in the fleet. Set permissions for inbound\n traffic to your game servers, and enable optional features as needed. When creating a\n multi-location fleet, provide a list of additional remote locations.

\n

If you need to debug your fleet, fetch logs, view performance metrics or other actions\n on the fleet, create the development fleet with port 22/3389 open. As a best practice,\n we recommend opening ports for remote access only when you need them and closing them\n when you're finished.

\n

If successful, this operation creates a new Fleet resource and places it in\n NEW status, which prompts Amazon GameLift to initiate the fleet creation\n workflow. You can track fleet creation by checking fleet status using DescribeFleetAttributes and DescribeFleetLocationAttributes/, or by monitoring fleet creation events\n using DescribeFleetEvents.

\n

When the fleet status changes to ACTIVE, you can enable automatic scaling\n with PutScalingPolicy and set capacity for the home Region with UpdateFleetCapacity. When the status of each remote location reaches\n ACTIVE, you can set capacity by location using UpdateFleetCapacity.

\n

\n Learn more\n

\n

\n Setting up\n fleets\n

\n

\n Debug fleet creation issues\n

\n

\n Multi-location fleets\n

" + "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Creates a fleet of compute resources to host your game servers. Use this operation to\n set up the following types of fleets based on compute type:

\n

\n Managed EC2 fleet\n

\n

An EC2 fleet is a set of Amazon Elastic Compute Cloud (Amazon EC2) instances. Your game server build is\n deployed to each fleet instance. Amazon GameLift manages the fleet's instances and controls the\n lifecycle of game server processes, which host game sessions for players. EC2 fleets can\n have instances in multiple locations. Each instance in the fleet is designated a\n Compute.

\n

To create an EC2 fleet, provide these required parameters:

\n
    \n
  • \n

    Either BuildId or ScriptId\n

    \n
  • \n
  • \n

    \n ComputeType set to EC2 (the default value)

    \n
  • \n
  • \n

    \n EC2InboundPermissions\n

    \n
  • \n
  • \n

    \n EC2InstanceType\n

    \n
  • \n
  • \n

    \n FleetType\n

    \n
  • \n
  • \n

    \n Name\n

    \n
  • \n
  • \n

    \n RuntimeConfiguration with at least one ServerProcesses\n configuration

    \n
  • \n
\n

If successful, this operation creates a new fleet resource and places it in\n NEW status while Amazon GameLift initiates the fleet creation workflow. To debug your fleet, fetch logs, view performance\n metrics or other actions on the fleet, create a development fleet with port 22/3389\n open. As a best practice, we recommend opening ports for remote access only when you\n need them and closing them when you're finished.

\n

When the fleet status is ACTIVE, you can adjust capacity settings and turn autoscaling\n on/off for each location.

\n

\n Managed container fleet\n

\n

A container fleet is a set of Amazon Elastic Compute Cloud (Amazon EC2) instances. Your container architecture\n is deployed to each fleet instance based on the fleet configuration. Amazon GameLift manages the\n containers on each fleet instance and controls the lifecycle of game server processes,\n which host game sessions for players. Container fleets can have instances in multiple\n locations. Each container on an instance that runs game server processes is registered\n as a Compute.

\n

To create a container fleet, provide these required parameters:

\n
    \n
  • \n

    \n ComputeType set to CONTAINER\n

    \n
  • \n
  • \n

    \n ContainerGroupsConfiguration\n

    \n
  • \n
  • \n

    \n EC2InboundPermissions\n

    \n
  • \n
  • \n

    \n EC2InstanceType\n

    \n
  • \n
  • \n

    \n FleetType set to ON_DEMAND\n

    \n
  • \n
  • \n

    \n Name\n

    \n
  • \n
  • \n

    \n RuntimeConfiguration with at least one ServerProcesses\n configuration

    \n
  • \n
\n

If successful, this operation creates a new fleet resource and places it in\n NEW status while Amazon GameLift initiates the fleet creation workflow.

\n

When the fleet status is ACTIVE, you can adjust capacity settings and turn autoscaling\n on/off for each location.

\n

\n Anywhere fleet\n

\n

An Anywhere fleet represents compute resources that are not owned or managed by\n Amazon GameLift. You might create an Anywhere fleet with your local machine for testing, or use\n one to host game servers with on-premises hardware or other game hosting solutions.

\n

To create an Anywhere fleet, provide these required parameters:

\n
    \n
  • \n

    \n ComputeType set to ANYWHERE\n

    \n
  • \n
  • \n

    \n Locations specifying a custom location

    \n
  • \n
  • \n

    \n Name\n

    \n
  • \n
\n

If successful, this operation creates a new fleet resource and places it in\n ACTIVE status. You can register computes with a fleet in\n ACTIVE status.

\n

\n Learn more\n

\n

\n Setting up\n fleets\n

\n

\n Setting up a container fleet\n

\n

\n Debug fleet creation issues\n

\n

\n Multi-location fleets\n

" } }, "com.amazonaws.gamelift#CreateFleetInput": { @@ -1014,13 +2004,13 @@ "BuildId": { "target": "com.amazonaws.gamelift#BuildIdOrArn", "traits": { - "smithy.api#documentation": "

The unique identifier for a custom game server build to be deployed on fleet\n instances. You can use either the build ID or ARN. The build must be uploaded to Amazon GameLift\n and in READY status. This fleet property can't be changed after the fleet is created.

" + "smithy.api#documentation": "

The unique identifier for a custom game server build to be deployed to a fleet with\n compute type EC2. You can use either the build ID or ARN. The build must be\n uploaded to Amazon GameLift and in READY status. This fleet property can't be changed after the fleet is created.

" } }, "ScriptId": { "target": "com.amazonaws.gamelift#ScriptIdOrArn", "traits": { - "smithy.api#documentation": "

The unique identifier for a Realtime configuration script to be deployed on fleet\n instances. You can use either the script ID or ARN. Scripts must be uploaded to Amazon GameLift\n prior to creating the fleet. This fleet property can't be changed after the fleet is created.

" + "smithy.api#documentation": "

The unique identifier for a Realtime configuration script to be deployed to a fleet with\n compute type EC2. You can use either the script ID or ARN. Scripts must be\n uploaded to Amazon GameLift prior to creating the fleet. This fleet property can't be changed after the fleet is created.

" } }, "ServerLaunchPath": { @@ -1044,13 +2034,13 @@ "EC2InstanceType": { "target": "com.amazonaws.gamelift#EC2InstanceType", "traits": { - "smithy.api#documentation": "

The Amazon GameLift-supported Amazon EC2 instance type to use for all fleet instances. Instance\n type determines the computing resources that will be used to host your game servers,\n including CPU, memory, storage, and networking capacity. See Amazon Elastic Compute Cloud Instance Types for detailed descriptions\n of Amazon EC2 instance types.

" + "smithy.api#documentation": "

The Amazon GameLift-supported Amazon EC2 instance type to use with EC2 and container fleets.\n Instance type determines the computing resources that will be used to host your game\n servers, including CPU, memory, storage, and networking capacity. See Amazon Elastic Compute Cloud Instance Types for\n detailed descriptions of Amazon EC2 instance types.

" } }, "EC2InboundPermissions": { "target": "com.amazonaws.gamelift#IpPermissionsList", "traits": { - "smithy.api#documentation": "

The allowed IP address ranges and port settings that allow inbound traffic to access\n game sessions on this fleet. If the fleet is hosting a custom game build, this property\n must be set before players can connect to game sessions. For Realtime Servers fleets, Amazon GameLift\n automatically sets TCP and UDP ranges.

" + "smithy.api#documentation": "

The IP address ranges and port settings that allow inbound traffic to access game\n server processes and other processes on this fleet. Set this parameter for EC2 and container \n fleets. You can leave this parameter empty when creating the fleet, but you must call \n UpdateFleetPortSettings to set it before players can connect to game sessions. \n As a best practice, we recommend \n opening ports for remote access only when you need them and closing them when you're finished. \n For Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges.

\n

To manage inbound access for a container fleet, set this parameter to the same port\n numbers that you set for the fleet's connection port range. During the life of the\n fleet, update this parameter to control which connection ports are open to inbound\n traffic.

" } }, "NewGameSessionProtectionPolicy": { @@ -1062,7 +2052,7 @@ "RuntimeConfiguration": { "target": "com.amazonaws.gamelift#RuntimeConfiguration", "traits": { - "smithy.api#documentation": "

Instructions for how to launch and maintain server processes on instances in the\n fleet. The runtime configuration defines one or more server process configurations, each\n identifying a build executable or Realtime script file and the number of processes of\n that type to run concurrently.

\n \n

The RuntimeConfiguration parameter is required unless the fleet is\n being configured using the older parameters ServerLaunchPath and\n ServerLaunchParameters, which are still supported for backward\n compatibility.

\n
" + "smithy.api#documentation": "

Instructions for how to launch and run server processes on the fleet. Set runtime\n configuration for EC2 fleets and container fleets. For an Anywhere fleets, set this\n parameter only if the fleet is running the Amazon GameLift Agent. The runtime configuration\n defines one or more server process configurations. Each server process identifies a game\n executable or Realtime script file and the number of processes to run concurrently.

\n \n

This parameter replaces the parameters ServerLaunchPath and\n ServerLaunchParameters, which are still supported for backward\n compatibility.

\n
" } }, "ResourceCreationLimitPolicy": { @@ -1110,7 +2100,7 @@ "Locations": { "target": "com.amazonaws.gamelift#LocationConfigurationList", "traits": { - "smithy.api#documentation": "

A set of remote locations to deploy additional instances to and manage as part of the\n fleet. This parameter can only be used when creating fleets in Amazon Web Services Regions that\n support multiple locations. You can add any Amazon GameLift-supported Amazon Web Services Region as a remote\n location, in the form of an Amazon Web Services Region code such as us-west-2. To create\n a fleet with instances in the home Region only, don't use this parameter.

\n

To use this parameter, Amazon GameLift requires you to use your home location in the\n request.

" + "smithy.api#documentation": "

A set of remote locations to deploy additional instances to and manage as part of the\n fleet. This parameter can only be used when creating fleets in Amazon Web Services Regions that\n support multiple locations. You can add any Amazon GameLift-supported Amazon Web Services Region as a remote\n location, in the form of an Amazon Web Services Region code, such as us-west-2 or Local\n Zone code. To create a fleet with instances in the home Region only, don't set this\n parameter.

\n

When using this parameter, Amazon GameLift requires you to include your home location in the\n request.

" } }, "Tags": { @@ -1122,7 +2112,7 @@ "ComputeType": { "target": "com.amazonaws.gamelift#ComputeType", "traits": { - "smithy.api#documentation": "

The type of compute resource used to host your game servers. You can use your own\n compute resources with Amazon GameLift Anywhere or use Amazon EC2 instances with managed\n Amazon GameLift. By default, this property is set to EC2.

" + "smithy.api#documentation": "

The type of compute resource used to host your game servers.

\n
    \n
  • \n

    \n EC2 – The game server build is deployed to Amazon EC2 instances for\n cloud hosting. This is the default setting.

    \n
  • \n
  • \n

    \n CONTAINER – Container images with your game server build and\n supporting software are deployed to Amazon EC2 instances for cloud hosting. With this\n compute type, you must specify the ContainerGroupsConfiguration\n parameter.

    \n
  • \n
  • \n

    \n ANYWHERE – Game servers or container images with your game server\n and supporting software are deployed to compute resources that are provided and\n managed by you. With this compute type, you can also set the\n AnywhereConfiguration parameter.

    \n
  • \n
" } }, "AnywhereConfiguration": { @@ -1134,7 +2124,13 @@ "InstanceRoleCredentialsProvider": { "target": "com.amazonaws.gamelift#InstanceRoleCredentialsProvider", "traits": { - "smithy.api#documentation": "

Prompts Amazon GameLift to generate a shared credentials file for the IAM role\n defined in InstanceRoleArn. The shared credentials file is stored on each\n fleet instance and refreshed as needed. Use shared credentials for applications that are\n deployed along with the game server executable, if the game server is integrated with \n server SDK version 5.x. For more information about using shared\n credentials, see Communicate\n with other Amazon Web Services resources from your fleets.

" + "smithy.api#documentation": "

Prompts Amazon GameLift to generate a shared credentials file for the IAM role\n that's defined in InstanceRoleArn. The shared credentials file is stored on\n each fleet instance and refreshed as needed. Use shared credentials for applications\n that are deployed along with the game server executable, if the game server is\n integrated with server SDK version 5.x. For more information about using shared\n credentials, see Communicate\n with other Amazon Web Services resources from your fleets.

" + } + }, + "ContainerGroupsConfiguration": { + "target": "com.amazonaws.gamelift#ContainerGroupsConfiguration", + "traits": { + "smithy.api#documentation": "

The container groups to deploy to instances in the container fleet and other fleet-level\n configuration settings. Use the CreateContainerGroupDefinition action\n to create container groups. A container fleet must have exactly one replica container\n group, and can optionally have one daemon container group. You can't change this\n property after you create the fleet.

" } } }, @@ -1169,6 +2165,9 @@ { "target": "com.amazonaws.gamelift#NotFoundException" }, + { + "target": "com.amazonaws.gamelift#NotReadyException" + }, { "target": "com.amazonaws.gamelift#UnauthorizedException" }, @@ -1177,7 +2176,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds remote locations to a fleet and begins populating the new locations with EC2\n instances. The new instances conform to the fleet's instance type, auto-scaling, and\n other configuration settings.

\n \n

This operation cannot be used with fleets that don't support remote locations.\n Fleets can have multiple locations only if they reside in Amazon Web Services Regions that support\n this feature and were created after the feature was released in March 2021.

\n
\n

To add fleet locations, specify the fleet to be updated and provide a list of one or\n more locations.

\n

If successful, this operation returns the list of added locations with their status\n set to NEW. Amazon GameLift initiates the process of starting an instance in each\n added location. You can track the status of each new location by monitoring location\n creation events using DescribeFleetEvents.

\n

\n Learn more\n

\n

\n Setting up\n fleets\n

\n

\n Multi-location fleets\n

" + "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Adds remote locations to an EC2 or container fleet and begins populating the new\n locations with instances. The new instances conform to the fleet's instance type,\n auto-scaling, and other configuration settings.

\n \n

You can't add remote locations to a fleet that resides in an Amazon Web Services Region that\n doesn't support multiple locations. Fleets created prior to March 2021 can't support\n multiple locations.

\n
\n

To add fleet locations, specify the fleet to be updated and provide a list of one or\n more locations.

\n

If successful, this operation returns the list of added locations with their status\n set to NEW. Amazon GameLift initiates the process of starting an instance in each\n added location. You can track the status of each new location by monitoring location\n creation events using DescribeFleetEvents.

\n

\n Learn more\n

\n

\n Setting up\n fleets\n

\n

\n Multi-location fleets\n

" } }, "com.amazonaws.gamelift#CreateFleetLocationsInput": { @@ -2386,14 +3385,62 @@ "smithy.api#documentation": "

Deletes a build. This operation permanently deletes the build resource and any\n uploaded build files. Deleting a build does not affect the status of any active fleets\n using the build, but you can no longer create new fleets with the deleted build.

\n

To delete a build, specify the build ID.

\n

\n Learn more\n

\n

\n Upload a Custom\n Server Build\n

\n

\n All APIs by task\n

" } }, - "com.amazonaws.gamelift#DeleteBuildInput": { + "com.amazonaws.gamelift#DeleteBuildInput": { + "type": "structure", + "members": { + "BuildId": { + "target": "com.amazonaws.gamelift#BuildIdOrArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A unique identifier for the build to delete. You can use either the build ID or ARN value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.gamelift#DeleteContainerGroupDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.gamelift#DeleteContainerGroupDefinitionInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.gamelift#InternalServiceException" + }, + { + "target": "com.amazonaws.gamelift#InvalidRequestException" + }, + { + "target": "com.amazonaws.gamelift#NotFoundException" + }, + { + "target": "com.amazonaws.gamelift#TaggingFailedException" + }, + { + "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" + } + ], + "traits": { + "smithy.api#documentation": "

\n This operation is used with the Amazon GameLift containers feature, which is currently in public preview. \n

\n

Deletes a container group definition resource. You can delete a container group definition\n if there are no fleets using the definition.

\n

To delete a container group definition, identify the resource to delete.

\n

\n Learn more\n

\n " + } + }, + "com.amazonaws.gamelift#DeleteContainerGroupDefinitionInput": { "type": "structure", "members": { - "BuildId": { - "target": "com.amazonaws.gamelift#BuildIdOrArn", + "Name": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

A unique identifier for the build to delete. You can use either the build ID or ARN value.

", + "smithy.api#documentation": "

The unique identifier for the container group definition to delete. You can use either the Name or ARN\n value.

", "smithy.api#required": {} } } @@ -2431,7 +3478,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes all resources and information related a fleet. Any current fleet instances,\n including those in remote locations, are shut down. You don't need to call\n DeleteFleetLocations separately.

\n \n

If the fleet being deleted has a VPC peering connection, you first need to get a\n valid authorization (good for 24 hours) by calling CreateVpcPeeringAuthorization. You do not need to explicitly delete the\n VPC peering connection.

\n
\n

To delete a fleet, specify the fleet ID to be terminated. During the deletion process\n the fleet status is changed to DELETING. When completed, the status\n switches to TERMINATED and the fleet event FLEET_DELETED is\n sent.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n Fleets\n

" + "smithy.api#documentation": "

Deletes all resources and information related to a fleet and shuts down any currently\n running fleet instances, including those in remote locations.

\n \n

If the fleet being deleted has a VPC peering connection, you first need to get a\n valid authorization (good for 24 hours) by calling CreateVpcPeeringAuthorization. You don't need to explicitly delete the\n VPC peering connection.

\n
\n

To delete a fleet, specify the fleet ID to be terminated. During the deletion process,\n the fleet status is changed to DELETING. When completed, the status\n switches to TERMINATED and the fleet event FLEET_DELETED is\n emitted.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n Fleets\n

" } }, "com.amazonaws.gamelift#DeleteFleetInput": { @@ -3028,7 +4075,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes a compute resource from an Amazon GameLift Anywhere fleet. Deregistered computes can no\n longer host game sessions through Amazon GameLift.

" + "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Removes a compute resource from an Amazon GameLift Anywhere fleet or container fleet.\n Deregistered computes can no longer host game sessions through Amazon GameLift.

\n

For an Anywhere fleet or a container fleet that's running the Amazon GameLift Agent, the Agent\n handles all compute registry tasks for you. For an Anywhere fleet that doesn't use the\n Agent, call this operation to deregister fleet computes.

\n

To deregister a compute, call this operation from the compute that's being\n deregistered and specify the compute name and the fleet ID.

" } }, "com.amazonaws.gamelift#DeregisterComputeInput": { @@ -3046,7 +4093,7 @@ "target": "com.amazonaws.gamelift#ComputeNameOrArn", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of the compute resource to remove from the specified Anywhere fleet.

", + "smithy.api#documentation": "

The unique identifier of the compute resource to deregister. For an Anywhere fleet\n compute, use the registered compute name. For a container fleet, use the compute name\n (for example,\n a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9)\n or the compute ARN.

", "smithy.api#required": {} } } @@ -3247,7 +4294,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves properties for a compute resource in an Amazon GameLift fleet. Call ListCompute to get a list of compute resources in a fleet. You can\n request information for computes in either managed EC2 fleets or Anywhere fleets.

\n

To request compute properties, specify the compute name and fleet ID.

\n

If successful, this operation returns details for the requested compute resource. For\n managed EC2 fleets, this operation returns the fleet's EC2 instances. For Anywhere\n fleets, this operation returns the fleet's registered computes.

" + "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Retrieves properties for a compute resource in an Amazon GameLift fleet. To get a list of all\n computes in a fleet, call ListCompute.

\n

To request information on a specific compute, provide the fleet ID and compute\n name.

\n

If successful, this operation returns details for the requested compute resource.\n Depending on the fleet's compute type, the result includes the following information:

\n
    \n
  • \n

    For EC2 fleets, this operation returns information about the EC2\n instance.

    \n
  • \n
  • \n

    For ANYWHERE fleets, this operation returns information about the\n registered compute.

    \n
  • \n
  • \n

    For CONTAINER fleets, this operation returns information about\n the container that's registered as a compute, and the instance it's running on.\n The compute name is the container name.

    \n
  • \n
" } }, "com.amazonaws.gamelift#DescribeComputeInput": { @@ -3257,7 +4304,7 @@ "target": "com.amazonaws.gamelift#FleetIdOrArn", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

A unique identifier for the fleet that the compute is registered to. You can use either the fleet ID or ARN\n value.

", + "smithy.api#documentation": "

A unique identifier for the fleet that the compute belongs to. You can use either the fleet ID or ARN\n value.

", "smithy.api#required": {} } }, @@ -3265,7 +4312,7 @@ "target": "com.amazonaws.gamelift#ComputeNameOrArn", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The unique identifier of the compute resource to retrieve properties for. For an\n Anywhere fleet compute, use the registered compute name. For a managed EC2 fleet\n instance, use the instance ID.

", + "smithy.api#documentation": "

The unique identifier of the compute resource to retrieve properties for. For an\n Anywhere fleet compute, use the registered compute name. For an EC2 fleet instance, use\n the instance ID. For a container fleet, use the compute name (for example,\n a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9)\n or the compute ARN.

", "smithy.api#required": {} } } @@ -3288,6 +4335,65 @@ "smithy.api#output": {} } }, + "com.amazonaws.gamelift#DescribeContainerGroupDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.gamelift#DescribeContainerGroupDefinitionInput" + }, + "output": { + "target": "com.amazonaws.gamelift#DescribeContainerGroupDefinitionOutput" + }, + "errors": [ + { + "target": "com.amazonaws.gamelift#InternalServiceException" + }, + { + "target": "com.amazonaws.gamelift#InvalidRequestException" + }, + { + "target": "com.amazonaws.gamelift#NotFoundException" + }, + { + "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" + } + ], + "traits": { + "smithy.api#documentation": "

\n This operation is used with the Amazon GameLift containers feature, which is currently in public preview. \n

\n

Retrieves the properties of a container group definition, including all container\n definitions in the group.

\n

To retrieve a container group definition, provide a resource identifier. If successful,\n this operation returns the complete properties of the container group definition.

\n

\n Learn more\n

\n " + } + }, + "com.amazonaws.gamelift#DescribeContainerGroupDefinitionInput": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The unique identifier for the container group definition to retrieve properties for. You can use either the Name or\n ARN value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.gamelift#DescribeContainerGroupDefinitionOutput": { + "type": "structure", + "members": { + "ContainerGroupDefinition": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinition", + "traits": { + "smithy.api#documentation": "

The properties of the requested container group definition resource.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.gamelift#DescribeEC2InstanceLimits": { "type": "operation", "input": { @@ -3371,7 +4477,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves core fleet-wide properties, including the computing hardware and deployment\n configuration for all instances in the fleet.

\n

This operation can be used in the following ways:

\n
    \n
  • \n

    To get attributes for one or more specific fleets, provide a list of fleet IDs\n or fleet ARNs.

    \n
  • \n
  • \n

    To get attributes for all fleets, do not provide a fleet identifier.

    \n
  • \n
\n

When requesting attributes for multiple fleets, use the pagination parameters to\n retrieve results as a set of sequential pages.

\n

If successful, a FleetAttributes object is returned for each fleet\n requested, unless the fleet identifier is not found.

\n \n

Some API operations limit the number of fleet IDs that allowed in one request. If\n a request exceeds this limit, the request fails and the error message contains the\n maximum allowed number.

\n
\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

", + "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Retrieves core fleet-wide properties for fleets in an Amazon Web Services Region. Properties include the computing\n hardware and deployment configuration for instances in the fleet.

\n

You can use this operation in the following ways:

\n
    \n
  • \n

    To get attributes for specific fleets, provide a list of fleet IDs or fleet ARNs.

    \n
  • \n
  • \n

    To get attributes for all fleets, do not provide a fleet identifier.

    \n
  • \n
\n

When requesting attributes for multiple fleets, use the pagination parameters to\n retrieve results as a set of sequential pages.

\n

If successful, a FleetAttributes object is returned for each fleet\n requested, unless the fleet identifier is not found.

\n \n

Some API operations limit the number of fleet IDs that allowed in one request. If\n a request exceeds this limit, the request fails and the error message contains the\n maximum allowed number.

\n
\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -3449,7 +4555,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves the resource capacity settings for one or more fleets. The data returned\n includes the current fleet capacity (number of EC2 instances), and settings that can\n control how capacity scaling. For fleets with remote locations, this operation retrieves\n data for the fleet's home Region only.

\n

This operation can be used in the following ways:

\n
    \n
  • \n

    To get capacity data for one or more specific fleets, provide a list of fleet\n IDs or fleet ARNs.

    \n
  • \n
  • \n

    To get capacity data for all fleets, do not provide a fleet identifier.\n

    \n
  • \n
\n

When requesting multiple fleets, use the pagination parameters to retrieve results as\n a set of sequential pages.

\n

If successful, a FleetCapacity object is returned for each requested\n fleet ID. Each FleetCapacity object includes a Location property, which is\n set to the fleet's home Region. When a list of fleet IDs is provided, attribute objects\n are returned only for fleets that currently exist.

\n \n

Some API operations may limit the number of fleet IDs that are allowed in one\n request. If a request exceeds this limit, the request fails and the error message\n includes the maximum allowed.

\n
\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

\n

\n GameLift metrics for fleets\n

", + "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Retrieves the resource capacity settings for one or more fleets. For a container\n fleet, this operation also returns counts for replica container groups.

\n

With multi-location fleets, this operation retrieves data for the fleet's home Region\n only. To retrieve capacity for remote locations, see \n DescribeFleetLocationCapacity.

\n

This operation can be used in the following ways:

\n
    \n
  • \n

    To get capacity data for one or more specific fleets, provide a list of fleet\n IDs or fleet ARNs.

    \n
  • \n
  • \n

    To get capacity data for all fleets, do not provide a fleet identifier.\n

    \n
  • \n
\n

When requesting multiple fleets, use the pagination parameters to retrieve results as\n a set of sequential pages.

\n

If successful, a FleetCapacity object is returned for each requested\n fleet ID. Each FleetCapacity object includes a Location\n property, which is set to the fleet's home Region. Capacity values are returned only for\n fleets that currently exist.

\n \n

Some API operations may limit the number of fleet IDs that are allowed in one\n request. If a request exceeds this limit, the request fails and the error message\n includes the maximum allowed.

\n
\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

\n

\n GameLift metrics for fleets\n

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -3722,7 +4828,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves the resource capacity settings for a fleet location. The data returned\n includes the current capacity (number of EC2 instances) and some scaling settings for\n the requested fleet location. Use this operation to retrieve capacity information for a\n fleet's remote location or home Region (you can also retrieve home Region capacity by\n calling DescribeFleetCapacity).

\n

To retrieve capacity data, identify a fleet and location.

\n

If successful, a FleetCapacity object is returned for the requested fleet\n location.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

\n

\n GameLift metrics for fleets\n

" + "smithy.api#documentation": "

Retrieves the resource capacity settings for a fleet location. The data returned\n includes the current capacity (number of EC2 instances) and some scaling settings for\n the requested fleet location. For a container fleet, this operation also returns counts\n for replica container groups.

\n

Use this operation to retrieve capacity information for a fleet's remote location or\n home Region (you can also retrieve home Region capacity by calling\n DescribeFleetCapacity).

\n

To retrieve capacity data, identify a fleet and location.

\n

If successful, a FleetCapacity object is returned for the requested fleet\n location.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

\n

\n GameLift metrics for fleets\n

" } }, "com.amazonaws.gamelift#DescribeFleetLocationCapacityInput": { @@ -3856,7 +4962,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves a fleet's inbound connection permissions. Connection permissions specify the\n range of IP addresses and port settings that incoming traffic can use to access server\n processes in the fleet. Game sessions that are running on instances in the fleet must\n use connections that fall in this range.

\n

This operation can be used in the following ways:

\n
    \n
  • \n

    To retrieve the inbound connection permissions for a fleet, identify the\n fleet's unique identifier.

    \n
  • \n
  • \n

    To check the status of recent updates to a fleet remote location, specify the\n fleet ID and a location. Port setting updates can take time to propagate across\n all locations.

    \n
  • \n
\n

If successful, a set of IpPermission objects is returned for the\n requested fleet ID. When a location is specified, a pending status is included. If the\n requested fleet has been deleted, the result set is empty.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

" + "smithy.api#documentation": "

Retrieves a fleet's inbound connection permissions. Connection permissions specify IP\n addresses and port settings that incoming traffic can use to access server processes in\n the fleet. Game server processes that are running in the fleet must use a port that\n falls within this range. To connect to game server processes on a container fleet, the\n port settings should include one or more of the fleet's connection ports.

\n

Use this operation in the following ways:

\n
    \n
  • \n

    To retrieve the port settings for a fleet, identify the fleet's unique\n identifier.

    \n
  • \n
  • \n

    To check the status of recent updates to a fleet remote location, specify the\n fleet ID and a location. Port setting updates can take time to propagate across\n all locations.

    \n
  • \n
\n

If successful, a set of IpPermission objects is returned for the\n requested fleet ID. When specifying a location, this operation returns a pending status.\n If the requested fleet has been deleted, the result set is empty.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

" } }, "com.amazonaws.gamelift#DescribeFleetPortSettingsInput": { @@ -4981,7 +6087,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves a fleet's runtime configuration settings. The runtime configuration tells\n Amazon GameLift which server processes to run (and how) on each instance in the fleet.

\n

To get the runtime configuration that is currently in forces for a fleet, provide the\n fleet ID.

\n

If successful, a RuntimeConfiguration object is returned for the\n requested fleet. If the requested fleet has been deleted, the result set is\n empty.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

\n

\n Running multiple\n processes on a fleet\n

" + "smithy.api#documentation": "

Retrieves a fleet's runtime configuration settings. The runtime configuration\n determines which server processes run, and how, on computes in the fleet. For managed\n EC2 fleets, the runtime configuration describes server processes that run on each fleet\n instance. For container fleets, the runtime configuration describes server processes\n that run in each replica container group. You can update a fleet's runtime configuration\n at any time using UpdateRuntimeConfiguration.

\n

To get the current runtime configuration for a fleet, provide the fleet ID.

\n

If successful, a RuntimeConfiguration object is returned for the\n requested fleet. If the requested fleet has been deleted, the result set is\n empty.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

\n

\n Running multiple\n processes on a fleet\n

" } }, "com.amazonaws.gamelift#DescribeRuntimeConfigurationInput": { @@ -5006,7 +6112,7 @@ "RuntimeConfiguration": { "target": "com.amazonaws.gamelift#RuntimeConfiguration", "traits": { - "smithy.api#documentation": "

Instructions that describe how server processes should be launched and maintained on\n each instance in the fleet.

" + "smithy.api#documentation": "

Instructions that describe how server processes are launched and maintained on\n computes in the fleet.

" } } }, @@ -6489,6 +7595,12 @@ "traits": { "smithy.api#documentation": "

Location of stored logs with additional detail that is related to the event. This is\n useful for debugging issues. The URL is valid for 15 minutes. You can also access fleet\n creation logs through the Amazon GameLift console.

" } + }, + "Count": { + "target": "com.amazonaws.gamelift#EventCount", + "traits": { + "smithy.api#documentation": "

The number of times that this event occurred.

" + } } }, "traits": { @@ -6704,6 +7816,15 @@ } } }, + "com.amazonaws.gamelift#EventCount": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 101 + } + } + }, "com.amazonaws.gamelift#EventList": { "type": "list", "member": { @@ -6794,13 +7915,13 @@ "FleetType": { "target": "com.amazonaws.gamelift#FleetType", "traits": { - "smithy.api#documentation": "

Indicates whether to use On-Demand or Spot instances for this fleet. By default, this\n property is set to ON_DEMAND. Learn more about when to use On-Demand versus Spot Instances. This fleet property can't be changed after the fleet is created.

" + "smithy.api#documentation": "

Indicates whether the fleet uses On-Demand or Spot instances. For more information,\n see On-Demand versus Spot Instances. This fleet property can't be changed after the fleet is created.

" } }, "InstanceType": { "target": "com.amazonaws.gamelift#EC2InstanceType", "traits": { - "smithy.api#documentation": "

The Amazon EC2 instance type that determines the computing resources of each instance in\n the fleet. Instance type defines the CPU, memory, storage, and networking capacity. See\n Amazon Elastic Compute Cloud Instance Types\n for detailed descriptions.

" + "smithy.api#documentation": "

The Amazon EC2 instance type that the fleet uses. Instance type determines the computing\n resources of each instance in the fleet, including CPU, memory, storage, and networking\n capacity. See Amazon Elastic Compute Cloud Instance\n Types for detailed descriptions. This attribute is used with\n fleets where ComputeType is \"EC2\" or \"Container\".

" } }, "Description": { @@ -6830,25 +7951,25 @@ "Status": { "target": "com.amazonaws.gamelift#FleetStatus", "traits": { - "smithy.api#documentation": "

Current status of the fleet. Possible fleet statuses include the following:

\n
    \n
  • \n

    \n NEW -- A new fleet has been defined and desired\n instances is set to 1.

    \n
  • \n
  • \n

    \n DOWNLOADING/VALIDATING/BUILDING/ACTIVATING --\n Amazon GameLift is setting up the new fleet, creating new instances with the game build\n or Realtime script and starting server processes.

    \n
  • \n
  • \n

    \n ACTIVE -- Hosts can now accept game\n sessions.

    \n
  • \n
  • \n

    \n ERROR -- An error occurred when downloading,\n validating, building, or activating the fleet.

    \n
  • \n
  • \n

    \n DELETING -- Hosts are responding to a delete\n fleet request.

    \n
  • \n
  • \n

    \n TERMINATED -- The fleet no longer\n exists.

    \n
  • \n
" + "smithy.api#documentation": "

Current status of the fleet. Possible fleet statuses include the following:

\n
    \n
  • \n

    NEW -- A new fleet has been defined and desired\n instances is set to 1.

    \n
  • \n
  • \n

    DOWNLOADING/VALIDATING/BUILDING/ACTIVATING --\n Amazon GameLift is setting up the new fleet, creating new instances with the game build\n or Realtime script and starting server processes.

    \n
  • \n
  • \n

    ACTIVE -- Hosts can now accept game sessions.

    \n
  • \n
  • \n

    ERROR -- An error occurred when downloading,\n validating, building, or activating the fleet.

    \n
  • \n
  • \n

    DELETING -- Hosts are responding to a delete fleet request.

    \n
  • \n
  • \n

    TERMINATED -- The fleet no longer exists.

    \n
  • \n
" } }, "BuildId": { "target": "com.amazonaws.gamelift#BuildId", "traits": { - "smithy.api#documentation": "

A unique identifier for the build resource that is deployed on instances in this fleet.

" + "smithy.api#documentation": "

A unique identifier for the build resource that is deployed on instances in this fleet. This attribute is used with\n fleets where ComputeType is \"EC2\".

" } }, "BuildArn": { "target": "com.amazonaws.gamelift#BuildArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) associated with the Amazon GameLift build resource that is deployed on instances in\n this fleet. In a GameLift build ARN, the resource ID matches the BuildId\n value.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) associated with the Amazon GameLift build resource that is deployed on instances in\n this fleet. In a GameLift build ARN, the resource ID matches the BuildId\n value. This attribute is used with fleets where ComputeType is \"EC2\".

" } }, "ScriptId": { "target": "com.amazonaws.gamelift#ScriptId", "traits": { - "smithy.api#documentation": "

A unique identifier for the Realtime script resource that is deployed on instances in this fleet.

" + "smithy.api#documentation": "

A unique identifier for the Realtime script resource that is deployed on instances in this fleet.\n This attribute is used with fleets where ComputeType is \"EC2\".

" } }, "ScriptArn": { @@ -6860,13 +7981,13 @@ "ServerLaunchPath": { "target": "com.amazonaws.gamelift#LaunchPathStringModel", "traits": { - "smithy.api#documentation": "

\n This parameter is no longer used. Server launch paths\n are now defined using the fleet's\n RuntimeConfiguration\n . Requests that use this parameter instead continue to be valid.

" + "smithy.api#documentation": "

\n This parameter is no longer used. Server launch paths\n are now defined using the fleet's\n RuntimeConfiguration\n . Requests that use this parameter continue to be valid.

" } }, "ServerLaunchParameters": { "target": "com.amazonaws.gamelift#LaunchParametersStringModel", "traits": { - "smithy.api#documentation": "

\n This parameter is no longer used. Server launch\n parameters are now defined using the fleet's runtime configuration\n . Requests that use this parameter instead continue to be valid.

" + "smithy.api#documentation": "

\n This parameter is no longer used. Server launch\n parameters are now defined using the fleet's runtime configuration\n . Requests that use this parameter continue to be valid.

" } }, "LogPaths": { @@ -6878,13 +7999,13 @@ "NewGameSessionProtectionPolicy": { "target": "com.amazonaws.gamelift#ProtectionPolicy", "traits": { - "smithy.api#documentation": "

The type of game session protection to set on all new instances that are started in\n the fleet.

\n
    \n
  • \n

    \n NoProtection -- The game session can be\n terminated during a scale-down event.

    \n
  • \n
  • \n

    \n FullProtection -- If the game session is in an\n ACTIVE status, it cannot be terminated during a scale-down\n event.

    \n
  • \n
" + "smithy.api#documentation": "

The type of game session protection to set on all new instances that are started in\n the fleet. This attribute is used with\n fleets where ComputeType is \"EC2\" or \"Container\".

\n
    \n
  • \n

    \n NoProtection -- The game session can be\n terminated during a scale-down event.

    \n
  • \n
  • \n

    \n FullProtection -- If the game session is in an\n ACTIVE status, it cannot be terminated during a scale-down\n event.

    \n
  • \n
" } }, "OperatingSystem": { "target": "com.amazonaws.gamelift#OperatingSystem", "traits": { - "smithy.api#documentation": "

The operating system of the fleet's computing resources. A fleet's operating system is\n determined by the OS of the build or script that is deployed on this fleet.

" + "smithy.api#documentation": "

The operating system of the fleet's computing resources. A fleet's operating system is\n determined by the OS of the build or script that is deployed on this fleet.\n This attribute is used with\n fleets where ComputeType is \"EC2\" or \"Container\".

" } }, "ResourceCreationLimitPolicy": { @@ -6893,23 +8014,26 @@ "MetricGroups": { "target": "com.amazonaws.gamelift#MetricGroupList", "traits": { - "smithy.api#documentation": "

Name of a metric group that metrics for this fleet are added to. In Amazon CloudWatch,\n you can view aggregated metrics for fleets that are in a metric group. A fleet can be\n included in only one metric group at a time.

" + "smithy.api#documentation": "

Name of a metric group that metrics for this fleet are added to. In Amazon CloudWatch,\n you can view aggregated metrics for fleets that are in a metric group. A fleet can be\n included in only one metric group at a time. This attribute is used with\n fleets where ComputeType is \"EC2\" or \"Container\".

" } }, "StoppedActions": { "target": "com.amazonaws.gamelift#FleetActionList", "traits": { - "smithy.api#documentation": "

A list of fleet activity that has been suspended using StopFleetActions . This includes fleet auto-scaling.

" + "smithy.api#documentation": "

A list of fleet activity that has been suspended using StopFleetActions. \n This includes fleet auto-scaling. This attribute is used with\n fleets where ComputeType is \"EC2\" or \"Container\".

" } }, "InstanceRoleArn": { "target": "com.amazonaws.gamelift#NonEmptyString", "traits": { - "smithy.api#documentation": "

A unique identifier for an IAM role with access permissions to other Amazon Web Services services. \n Any application that runs on an instance in the fleet--including install scripts, server processes, and other \n processes--can use these permissions to interact with Amazon Web Services resources that you own or have access to.\n For more information about using the role with your game server builds, see \n \n Communicate with other Amazon Web Services resources from your fleets.

" + "smithy.api#documentation": "

A unique identifier for an IAM role with access permissions to other Amazon Web Services services. \n Any application that runs on an instance in the fleet--including install scripts, server processes, and other \n processes--can use these permissions to interact with Amazon Web Services resources that you own or have access to.\n For more information about using the role with your game server builds, see \n \n Communicate with other Amazon Web Services resources from your fleets. This attribute is used with\n fleets where ComputeType is \"EC2\" or \"Container\".

" } }, "CertificateConfiguration": { - "target": "com.amazonaws.gamelift#CertificateConfiguration" + "target": "com.amazonaws.gamelift#CertificateConfiguration", + "traits": { + "smithy.api#documentation": "

Determines whether a TLS/SSL certificate is generated for a fleet. This feature must be enabled when creating the fleet. \n All instances in a fleet share the same certificate.

" + } }, "ComputeType": { "target": "com.amazonaws.gamelift#ComputeType", @@ -6918,17 +8042,26 @@ } }, "AnywhereConfiguration": { - "target": "com.amazonaws.gamelift#AnywhereConfiguration" + "target": "com.amazonaws.gamelift#AnywhereConfiguration", + "traits": { + "smithy.api#documentation": "

\n This property is used with the Amazon GameLift containers feature, which is currently in public preview. A set of attributes that describe the container groups that are deployed on the fleet.\n These attributes are included for fleets with compute type CONTAINER only.\n This attribute is used with fleets where ComputeType is \"Container\".

" + } }, "InstanceRoleCredentialsProvider": { "target": "com.amazonaws.gamelift#InstanceRoleCredentialsProvider", "traits": { - "smithy.api#documentation": "

Indicates that fleet instances maintain a shared credentials file for the IAM role\n defined in InstanceRoleArn. Shared credentials allow applications that are\n deployed with the game server executable to communicate with other Amazon Web Services resources. This property is used \n only when the game server is integrated with the\n server SDK version 5.x. For more information about using shared credentials, see Communicate\n with other Amazon Web Services resources from your fleets.

" + "smithy.api#documentation": "

Indicates that fleet instances maintain a shared credentials file for the IAM role\n defined in InstanceRoleArn. Shared credentials allow applications that are\n deployed with the game server executable to communicate with other Amazon Web Services resources. This property is used \n only when the game server is integrated with the\n server SDK version 5.x. For more information about using shared credentials, see Communicate\n with other Amazon Web Services resources from your fleets.\n This attribute is used with\n fleets where ComputeType is \"EC2\" or \"Container\".

" + } + }, + "ContainerGroupsAttributes": { + "target": "com.amazonaws.gamelift#ContainerGroupsAttributes", + "traits": { + "smithy.api#documentation": "

A set of properties that describe the container groups that are deployed to the fleet.\n These attributes are included for fleets with compute type\n CONTAINER.

" } } }, "traits": { - "smithy.api#documentation": "

Describes a Amazon GameLift fleet of game hosting resources.

\n

\n Related actions\n

" + "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Describes an Amazon GameLift fleet of game hosting resources. Attributes differ based on\n the fleet's compute type, as follows:

\n
    \n
  • \n

    EC2 fleet attributes identify a Build resource (for fleets with \n customer game server builds) or a Script resource (for Realtime Servers fleets).

    \n
  • \n
  • \n

    Container fleets have ContainerGroupsAttributes, which identify\n the fleet's ContainerGroupDefinition resources.

    \n
  • \n
  • \n

    Amazon GameLift Anywhere fleets have an abbreviated set of attributes, because most fleet configurations\n are set directly on the fleet's computes. Attributes include fleet identifiers and descriptive\n properties, creation/termination time, and fleet status.

    \n
  • \n
\n

\n Returned by:\n DescribeFleetAttributes\n

" } }, "com.amazonaws.gamelift#FleetAttributesList": { @@ -6955,21 +8088,30 @@ "InstanceType": { "target": "com.amazonaws.gamelift#EC2InstanceType", "traits": { - "smithy.api#documentation": "

The Amazon EC2 instance type that is used for all instances in a fleet. The instance type\n determines the computing resources in use, including CPU, memory, storage, and\n networking capacity. See Amazon Elastic Compute Cloud\n Instance Types for detailed descriptions.

" + "smithy.api#documentation": "

The Amazon EC2 instance type that is used for instances in a fleet. Instance type\n determines the computing resources in use, including CPU, memory, storage, and\n networking capacity. See Amazon Elastic Compute Cloud\n Instance Types for detailed descriptions.

" } }, "InstanceCounts": { - "target": "com.amazonaws.gamelift#EC2InstanceCounts" + "target": "com.amazonaws.gamelift#EC2InstanceCounts", + "traits": { + "smithy.api#documentation": "

The current number of instances in the fleet, listed by instance status. Counts for pending and\n terminating instances might be non-zero if the fleet is adjusting to a scaling event\n or if access to resources is temporarily affected.

" + } }, "Location": { "target": "com.amazonaws.gamelift#LocationStringModel", "traits": { "smithy.api#documentation": "

The fleet location for the instance count information, expressed as an Amazon Web Services Region\n code, such as us-west-2.

" } + }, + "ReplicaContainerGroupCounts": { + "target": "com.amazonaws.gamelift#ReplicaContainerGroupCounts", + "traits": { + "smithy.api#documentation": "

\n This property is used with the Amazon GameLift containers feature, which is currently in public preview. The number and status of replica container groups in a container fleet.

" + } } }, "traits": { - "smithy.api#documentation": "

Current resource capacity settings in a specified fleet or location. The location\n value might refer to a fleet's remote location or its home Region.

\n

\n Related actions\n

\n

\n DescribeFleetCapacity | DescribeFleetLocationCapacity | UpdateFleetCapacity\n

" + "smithy.api#documentation": "

Current resource capacity settings for managed EC2 fleets and container fleets. For\n multi-location fleets, location values might refer to a fleet's remote location or its\n home Region.

\n

\n Returned by:\n DescribeFleetCapacity, DescribeFleetLocationCapacity, UpdateFleetCapacity\n

" } }, "com.amazonaws.gamelift#FleetCapacityExceededException": { @@ -7153,7 +8295,7 @@ } }, "traits": { - "smithy.api#documentation": "

Current resource utilization statistics in a specified fleet or location. The location\n value might refer to a fleet's remote location or its home Region.

\n

\n Related actions\n

" + "smithy.api#documentation": "

Current resource utilization statistics in a specified fleet or location. The location\n value might refer to a fleet's remote location or its home region.

" } }, "com.amazonaws.gamelift#FleetUtilizationList": { @@ -7201,6 +8343,9 @@ { "target": "com.amazonaws.gamelift#CreateBuild" }, + { + "target": "com.amazonaws.gamelift#CreateContainerGroupDefinition" + }, { "target": "com.amazonaws.gamelift#CreateFleet" }, @@ -7246,6 +8391,9 @@ { "target": "com.amazonaws.gamelift#DeleteBuild" }, + { + "target": "com.amazonaws.gamelift#DeleteContainerGroupDefinition" + }, { "target": "com.amazonaws.gamelift#DeleteFleet" }, @@ -7294,6 +8442,9 @@ { "target": "com.amazonaws.gamelift#DescribeCompute" }, + { + "target": "com.amazonaws.gamelift#DescribeContainerGroupDefinition" + }, { "target": "com.amazonaws.gamelift#DescribeEC2InstanceLimits" }, @@ -7393,6 +8544,9 @@ { "target": "com.amazonaws.gamelift#ListCompute" }, + { + "target": "com.amazonaws.gamelift#ListContainerGroupDefinitions" + }, { "target": "com.amazonaws.gamelift#ListFleets" }, @@ -8422,6 +9576,15 @@ } } }, + "com.amazonaws.gamelift#GameLiftAgentEndpointOutput": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, "com.amazonaws.gamelift#GameLiftServiceSdkEndpointOutput": { "type": "string", "traits": { @@ -10064,7 +11227,7 @@ } ], "traits": { - "smithy.api#documentation": "

Requests authorization to remotely connect to a compute resource in an Amazon GameLift fleet.\n Call this action to connect to an instance in a managed EC2 fleet if the fleet's game\n build uses Amazon GameLift server SDK 5.x or later. To connect to instances with game builds\n that use server SDK 4.x or earlier, call GetInstanceAccess.

\n

To request access to a compute, identify the specific EC2 instance and the fleet it\n belongs to. You can retrieve instances for a managed EC2 fleet by calling ListCompute.

\n

If successful, this operation returns a set of temporary Amazon Web Services credentials, including\n a two-part access key and a session token. Use these credentials with Amazon EC2 Systems Manager (SSM)\n to start a session with the compute. For more details, see Starting a session (CLI) in the Amazon EC2 Systems Manager User Guide.

\n

\n Learn more\n

\n

\n Remotely connect to fleet\n instances\n

\n

\n Debug fleet\n issues\n

" + "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Requests authorization to remotely connect to a hosting resource in a Amazon GameLift managed\n fleet. This operation is not used with Amazon GameLift Anywhere fleets

\n

To request access, specify the compute name and the fleet ID. If successful, this\n operation returns a set of temporary Amazon Web Services credentials, including a two-part access key\n and a session token.

\n

\n EC2 fleets\n

\n

With an EC2 fleet (where compute type is EC2), use these credentials with\n Amazon EC2 Systems Manager (SSM) to start a session with the compute. For more details, see Starting a session (CLI) in the Amazon EC2 Systems Manager User\n Guide.

\n

\n Container fleets\n

\n

With a container fleet (where compute type is CONTAINER), use\n these credentials and the target value with SSM to connect to the fleet instance where\n the container is running. After you're connected to the instance, use Docker commands to\n interact with the container.

\n

\n Learn more\n

\n " } }, "com.amazonaws.gamelift#GetComputeAccessInput": { @@ -10074,7 +11237,7 @@ "target": "com.amazonaws.gamelift#FleetIdOrArn", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

A unique identifier for the fleet that contains the compute resource you want to connect to. You can use either\n the fleet ID or ARN value.

", + "smithy.api#documentation": "

A unique identifier for the fleet that holds the compute resource that you want to connect to. You can use either the\n fleet ID or ARN value.

", "smithy.api#required": {} } }, @@ -10082,7 +11245,7 @@ "target": "com.amazonaws.gamelift#ComputeNameOrArn", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

A unique identifier for the compute resource that you want to connect to. You can use\n either a registered compute name or an instance ID.

", + "smithy.api#documentation": "

A unique identifier for the compute resource that you want to connect to. For an EC2\n fleet compute, use the instance ID. For a container fleet, use the compute name (for\n example,\n a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9)\n or the compute ARN.

", "smithy.api#required": {} } } @@ -10097,7 +11260,7 @@ "FleetId": { "target": "com.amazonaws.gamelift#FleetIdOrArn", "traits": { - "smithy.api#documentation": "

The ID of the fleet that contains the compute resource to be accessed.

" + "smithy.api#documentation": "

The ID of the fleet that holds the compute resource to be accessed.

" } }, "FleetArn": { @@ -10123,6 +11286,12 @@ "traits": { "smithy.api#documentation": "

A set of temporary Amazon Web Services credentials for use when connecting to the\n compute resource with Amazon EC2 Systems Manager (SSM).

" } + }, + "Target": { + "target": "com.amazonaws.gamelift#SessionTarget", + "traits": { + "smithy.api#documentation": "

(For container fleets only) The instance ID where the compute resource is\n running.

" + } } }, "traits": { @@ -10152,7 +11321,7 @@ } ], "traits": { - "smithy.api#documentation": "

Requests an authentication token from Amazon GameLift for a registered compute in an Anywhere\n fleet. The game servers that are running on the compute use this token to authenticate\n with the Amazon GameLift service. Each server process must provide a valid authentication token\n in its call to the Amazon GameLift server SDK action InitSDK().

\n

Authentication tokens are valid for a limited time span. Use a mechanism to regularly\n request a fresh authentication token before the current token expires.

\n

\n Learn more\n

\n " + "smithy.api#documentation": "

Requests an authentication token from Amazon GameLift for a compute resource in an Amazon GameLift\n Anywhere fleet or container fleet. Game servers that are running on the compute use this\n token to communicate with the Amazon GameLift service, such as when calling the Amazon GameLift server\n SDK action InitSDK(). Authentication tokens are valid for a limited time\n span, so you need to request a fresh token before the current token expires.

\n

Use this operation based on the fleet compute type:

\n
    \n
  • \n

    For EC2 fleets, auth token retrieval and refresh is handled\n automatically. All game servers that are running on all fleet instances have\n access to a valid auth token.

    \n
  • \n
  • \n

    For ANYWHERE and CONTAINER fleets, if you're using\n the Amazon GameLift Agent, auth token retrieval and refresh is handled automatically for\n any container or Anywhere compute where the Agent is running. If you're not\n using the Agent, create a mechanism to retrieve and refresh auth tokens for\n computes that are running game server processes.

    \n
  • \n
\n

\n Learn more\n

\n " } }, "com.amazonaws.gamelift#GetComputeAuthTokenInput": { @@ -10170,7 +11339,7 @@ "target": "com.amazonaws.gamelift#ComputeNameOrArn", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of the compute resource you are requesting the authentication token\n for.

", + "smithy.api#documentation": "

The name of the compute resource you are requesting the authentication token for. For\n an Anywhere fleet compute, use the registered compute name. For an EC2 fleet instance,\n use the instance ID. For a container fleet, use the compute name (for example,\n a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9)\n or the compute ARN.

", "smithy.api#required": {} } } @@ -10375,6 +11544,16 @@ "smithy.api#error": "client" } }, + "com.amazonaws.gamelift#ImageUriString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_\\.@\\/:]+$" + } + }, "com.amazonaws.gamelift#Instance": { "type": "structure", "members": { @@ -10478,7 +11657,7 @@ } }, "traits": { - "smithy.api#documentation": "

Information and credentials that you can use to remotely connect to an instance in an\n EC2 managed fleet. This data type is returned in response to a call to GetInstanceAccess.

" + "smithy.api#documentation": "

Information and credentials that you can use to remotely connect to an instance in an\n EC2 managed fleet. This data type is returned in response to a call to \n GetInstanceAccess.

" } }, "com.amazonaws.gamelift#InstanceCredentials": { @@ -10498,7 +11677,7 @@ } }, "traits": { - "smithy.api#documentation": "

A set of credentials that allow remote access to an instance in an EC2 managed fleet.\n These credentials are returned in response to a call to GetInstanceAccess, which requests access for instances that are running\n game servers with the Amazon GameLift server SDK version 4.x or earlier.

", + "smithy.api#documentation": "

A set of credentials that allow remote access to an instance in an EC2 managed fleet.\n These credentials are returned in response to a call to \n GetInstanceAccess, which requests access for instances that are running\n game servers with the Amazon GameLift server SDK version 4.x or earlier.

", "smithy.api#sensitive": {} } }, @@ -10681,7 +11860,7 @@ } }, "traits": { - "smithy.api#documentation": "

A range of IP addresses and port settings that allow inbound traffic to connect to\n server processes on an instance in a fleet. New game sessions are assigned an IP\n address/port number combination, which must fall into the fleet's allowed ranges. Fleets\n with custom game builds must have permissions explicitly set. For Realtime Servers fleets, Amazon GameLift\n automatically opens two port ranges, one for TCP messaging and one for UDP.

" + "smithy.api#documentation": "

A range of IP addresses and port settings that allow inbound traffic to connect to\n processes on an instance in a fleet. Processes are assigned an IP address/port number\n combination, which must fall into the fleet's allowed ranges. For container fleets, the\n port settings must use the same port numbers as the fleet's connection ports.

\n

For Realtime Servers fleets, Amazon GameLift automatically opens two port ranges, one for TCP messaging\n and one for UDP.

" } }, "com.amazonaws.gamelift#IpPermissionsList": { @@ -11002,7 +12181,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves the compute resources in an Amazon GameLift fleet. You can request information for\n either managed EC2 fleets or Anywhere fleets.

\n

To request a list of computes, specify the fleet ID. You can filter the result set by\n location. Use the pagination parameters to retrieve results in a set of sequential\n pages.

\n

If successful, this operation returns the compute resource for the requested fleet.\n For managed EC2 fleets, it returns a list of EC2 instances. For Anywhere fleets, it\n returns a list of registered compute names.

", + "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Retrieves information on the compute resources in an Amazon GameLift fleet.

\n

To request a list of computes, specify the fleet ID. Use the pagination parameters to\n retrieve results in a set of sequential pages.

\n

You can filter the result set by location.

\n

If successful, this operation returns information on all computes in the requested\n fleet. Depending on the fleet's compute type, the result includes the following\n information:

\n
    \n
  • \n

    For EC2 fleets, this operation returns information about the EC2\n instance. Compute names are instance IDs.

    \n
  • \n
  • \n

    For ANYWHERE fleets, this operation returns the compute names and\n details provided when the compute was registered with\n RegisterCompute. The GameLiftServiceSdkEndpoint or\n GameLiftAgentEndpoint is included.

    \n
  • \n
  • \n

    For CONTAINER fleets, this operation returns information about\n containers that are registered as computes, and the instances they're running\n on. Compute names are container names.

    \n
  • \n
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -11025,7 +12204,7 @@ "Location": { "target": "com.amazonaws.gamelift#LocationStringModel", "traits": { - "smithy.api#documentation": "

The name of a location to retrieve compute resources for.

" + "smithy.api#documentation": "

The name of a location to retrieve compute resources for. For an Amazon GameLift Anywhere\n fleet, use a custom location. For a multi-location EC2 or container fleet, provide a\n Amazon Web Services Region or Local Zone code (for example: us-west-2 or\n us-west-2-lax-1).

" } }, "Limit": { @@ -11065,6 +12244,93 @@ "smithy.api#output": {} } }, + "com.amazonaws.gamelift#ListContainerGroupDefinitions": { + "type": "operation", + "input": { + "target": "com.amazonaws.gamelift#ListContainerGroupDefinitionsInput" + }, + "output": { + "target": "com.amazonaws.gamelift#ListContainerGroupDefinitionsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.gamelift#InternalServiceException" + }, + { + "target": "com.amazonaws.gamelift#InvalidRequestException" + }, + { + "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" + } + ], + "traits": { + "smithy.api#documentation": "

\n This operation is used with the Amazon GameLift containers feature, which is currently in public preview. \n

\n

Retrieves all container group definitions for the Amazon Web Services account and Amazon Web Services Region that are currently in use. You can filter the result set by the container\n groups' scheduling strategy. Use the pagination parameters to retrieve results in a set of\n sequential pages.

\n \n

This operation returns the list of container group definitions in no particular order.

\n
\n

\n Learn more\n

\n ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ContainerGroupDefinitions", + "pageSize": "Limit" + } + } + }, + "com.amazonaws.gamelift#ListContainerGroupDefinitionsInput": { + "type": "structure", + "members": { + "SchedulingStrategy": { + "target": "com.amazonaws.gamelift#ContainerSchedulingStrategy", + "traits": { + "smithy.api#documentation": "

The type of container group definitions to retrieve.

\n
    \n
  • \n

    \n DAEMON -- Daemon container groups run background processes and are deployed once\n per fleet instance.

    \n
  • \n
  • \n

    \n REPLICA -- Replica container groups run your game server application and\n supporting software. Replica groups might be deployed multiple times per fleet\n instance.

    \n
  • \n
" + } + }, + "Limit": { + "target": "com.amazonaws.gamelift#ListContainerGroupDefinitionsLimit", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

" + } + }, + "NextToken": { + "target": "com.amazonaws.gamelift#NonEmptyString", + "traits": { + "smithy.api#documentation": "

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.gamelift#ListContainerGroupDefinitionsLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.gamelift#ListContainerGroupDefinitionsOutput": { + "type": "structure", + "members": { + "ContainerGroupDefinitions": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionList", + "traits": { + "smithy.api#documentation": "

A result set of container group definitions that match the request.

" + } + }, + "NextToken": { + "target": "com.amazonaws.gamelift#NonEmptyString", + "traits": { + "smithy.api#documentation": "

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.gamelift#ListFleets": { "type": "operation", "input": { @@ -11088,7 +12354,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves a collection of fleet resources in an Amazon Web Services Region. You can call this\n operation to get fleets in a previously selected default Region (see https://docs.aws.amazon.com/credref/latest/refdocs/setting-global-region.htmlor\n specify a Region in your request. You can filter the result set to find only those\n fleets that are deployed with a specific build or script. For fleets that have multiple\n locations, this operation retrieves fleets based on their home Region only.

\n

This operation can be used in the following ways:

\n
    \n
  • \n

    To get a list of all fleets in a Region, don't provide a build or script\n identifier.

    \n
  • \n
  • \n

    To get a list of all fleets where a specific custom game build is deployed,\n provide the build ID.

    \n
  • \n
  • \n

    To get a list of all Realtime Servers fleets with a specific configuration script,\n provide the script ID.

    \n
  • \n
\n

Use the pagination parameters to retrieve results as a set of sequential pages.

\n

If successful, a list of fleet IDs that match the request parameters is returned. A\n NextToken value is also returned if there are more result pages to retrieve.

\n \n

Fleet resources are not listed in a particular order.

\n
\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

", + "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Retrieves a collection of fleet resources in an Amazon Web Services Region. You can filter the\n result set to find only those fleets that are deployed with a specific build or script.\n For fleets that have multiple locations, this operation retrieves fleets based on their\n home Region only.

\n

You can use operation in the following ways:

\n
    \n
  • \n

    To get a list of all fleets in a Region, don't provide a build or script\n identifier.

    \n
  • \n
  • \n

    To get a list of all fleets where a specific game build is deployed, provide\n the build ID.

    \n
  • \n
  • \n

    To get a list of all Realtime Servers fleets with a specific configuration script,\n provide the script ID.

    \n
  • \n
  • \n

    To get a list of all fleets with a specific container group definition, provide\n the ContainerGroupDefinition ID.

    \n
  • \n
\n

Use the pagination parameters to retrieve results as a set of sequential pages.

\n

If successful, this operation returns a list of fleet IDs that match the request\n parameters. A NextToken value is also returned if there are more result pages to\n retrieve.

\n \n

Fleet IDs are returned in no particular order.

\n
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -11112,6 +12378,12 @@ "smithy.api#documentation": "

A unique identifier for the Realtime script to request fleets for. Use this parameter to return only fleets using a\n specified script. Use either the script ID or ARN value.

" } }, + "ContainerGroupDefinitionName": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn", + "traits": { + "smithy.api#documentation": "

The container group definition name to request fleets for. Use this parameter to\n return only fleets that are deployed with the specified container group\n definition.

" + } + }, "Limit": { "target": "com.amazonaws.gamelift#PositiveInteger", "traits": { @@ -11565,7 +12837,7 @@ } }, "traits": { - "smithy.api#documentation": "

A remote location where a multi-location fleet can deploy game servers for game\n hosting.

" + "smithy.api#documentation": "

\n This data type has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

A remote location where a multi-location fleet can deploy game servers for game\n hosting.

" } }, "com.amazonaws.gamelift#LocationConfigurationList": { @@ -11638,7 +12910,7 @@ } }, "traits": { - "smithy.api#documentation": "

Properties of a location

" + "smithy.api#documentation": "

Properties of a custom location for use in an Amazon GameLift Anywhere fleet. This data type is returned in response to a call to https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateLocation.html.

" } }, "com.amazonaws.gamelift#LocationModelList": { @@ -12247,6 +13519,25 @@ "smithy.api#pattern": "^\\d{1,5}(?:\\.\\d{1,5})?$" } }, + "com.amazonaws.gamelift#NonZeroAnd128MaxAsciiString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\-]+$" + } + }, + "com.amazonaws.gamelift#NonZeroAnd255MaxString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, "com.amazonaws.gamelift#NonZeroAndMaxString": { "type": "string", "traits": { @@ -12268,6 +13559,18 @@ "smithy.api#error": "client" } }, + "com.amazonaws.gamelift#NotReadyException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.gamelift#NonEmptyString" + } + }, + "traits": { + "smithy.api#documentation": "

The operation failed because Amazon GameLift has not yet finished validating this compute. We\n recommend attempting 8 to 10 retries over 3 to 5 minutes with exponential\n backoffs and jitter.

", + "smithy.api#error": "client" + } + }, "com.amazonaws.gamelift#OperatingSystem": { "type": "enum", "members": { @@ -12940,12 +14243,15 @@ { "target": "com.amazonaws.gamelift#LimitExceededException" }, + { + "target": "com.amazonaws.gamelift#NotReadyException" + }, { "target": "com.amazonaws.gamelift#UnauthorizedException" } ], "traits": { - "smithy.api#documentation": "

Registers a compute resource to an Amazon GameLift Anywhere fleet. With Anywhere fleets you can\n incorporate your own computing hardware into an Amazon GameLift game hosting solution.

\n

To register a compute to a fleet, give the compute a name (must be unique within the\n fleet) and specify the compute resource's DNS name or IP address. Provide the Anywhere\n fleet ID and a fleet location to associate with the compute being registered. You can\n optionally include the path to a TLS certificate on the compute resource.

\n

If successful, this operation returns the compute details, including an Amazon GameLift SDK\n endpoint. Game server processes that run on the compute use this endpoint to communicate\n with the Amazon GameLift service. Each server process includes the SDK endpoint in its call to\n the Amazon GameLift server SDK action InitSDK().

\n

\n Learn more\n

\n " + "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Registers a compute resource in an Amazon GameLift fleet. Register computes with an Amazon GameLift\n Anywhere fleet or a container fleet.

\n

For an Anywhere fleet or a container fleet that's running the Amazon GameLift Agent, the Agent\n handles all compute registry tasks for you. For an Anywhere fleet that doesn't use the\n Agent, call this operation to register fleet computes.

\n

To register a compute, give the compute a name (must be unique within the\n fleet) and specify the compute resource's DNS name or IP address. Provide a \n fleet ID and a fleet location to associate with the compute being registered. You can\n optionally include the path to a TLS certificate on the compute resource.

\n

If successful, this operation returns compute details, including an Amazon GameLift SDK\n endpoint or Agent endpoint. Game server processes running on the compute can use this\n endpoint to communicate with the Amazon GameLift service. Each server process includes the SDK\n endpoint in its call to the Amazon GameLift server SDK action InitSDK().

\n

To view compute details, call DescribeCompute with the compute name.

\n

\n Learn more\n

\n " } }, "com.amazonaws.gamelift#RegisterComputeInput": { @@ -13097,6 +14403,47 @@ "smithy.api#output": {} } }, + "com.amazonaws.gamelift#ReplicaContainerGroupCounts": { + "type": "structure", + "members": { + "PENDING": { + "target": "com.amazonaws.gamelift#WholeNumber", + "traits": { + "smithy.api#documentation": "

The number of container groups that are starting up but have not yet registered.

" + } + }, + "ACTIVE": { + "target": "com.amazonaws.gamelift#WholeNumber", + "traits": { + "smithy.api#documentation": "

\n The number of container groups that have active game sessions.\n

" + } + }, + "IDLE": { + "target": "com.amazonaws.gamelift#WholeNumber", + "traits": { + "smithy.api#documentation": "

\n The number of container groups that have no active game sessions.\n

" + } + }, + "TERMINATING": { + "target": "com.amazonaws.gamelift#WholeNumber", + "traits": { + "smithy.api#documentation": "

The number of container groups that are in the process of shutting down.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

The number and status of replica container groups that are deployed across a fleet with\n compute type CONTAINER. This information, combined with the number of server\n processes being hosted per container group (see RuntimeConfiguration), tells you\n how many game sessions the fleet is currently capable of hosting concurrently.

\n

\n Returned by:\n DescribeFleetCapacity, DescribeFleetLocationCapacity\n

" + } + }, + "com.amazonaws.gamelift#ReplicaContainerGroupsPerInstance": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 5000 + } + } + }, "com.amazonaws.gamelift#RequestUploadCredentials": { "type": "operation", "input": { @@ -13120,7 +14467,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves a fresh set of credentials for use when uploading a new set of game build\n files to Amazon GameLift's Amazon S3. This is done as part of the build creation process; see\n GameSession.

\n

To request new credentials, specify the build ID as returned with an initial\n CreateBuild request. If successful, a new set of credentials are\n returned, along with the S3 storage location associated with the build ID.

\n

\n Learn more\n

\n

\n Create a Build with Files in S3\n

\n

\n All APIs by task\n

" + "smithy.api#documentation": "

Retrieves a fresh set of credentials for use when uploading a new set of game build\n files to Amazon GameLift's Amazon S3. This is done as part of the build creation process; see\n CreateBuild.

\n

To request new credentials, specify the build ID as returned with an initial\n CreateBuild request. If successful, a new set of credentials are\n returned, along with the S3 storage location associated with the build ID.

\n

\n Learn more\n

\n

\n Create a Build with Files in S3\n

\n

\n All APIs by task\n

" } }, "com.amazonaws.gamelift#RequestUploadCredentialsInput": { @@ -13185,7 +14532,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves the fleet ID that an alias is currently pointing to.

\n

\n Related actions\n

\n

\n All APIs by task\n

" + "smithy.api#documentation": "

Attempts to retrieve a fleet ID that is associated with an alias. Specify a unique\n alias identifier.

\n

If the alias has a SIMPLE routing strategy, Amazon GameLift returns a fleet ID.\n If the alias has a TERMINAL routing strategy, the result is a\n TerminalRoutingStrategyException.

\n

\n Related actions\n

\n

\n All APIs by task\n

" } }, "com.amazonaws.gamelift#ResolveAliasInput": { @@ -13375,13 +14722,13 @@ "ServerProcesses": { "target": "com.amazonaws.gamelift#ServerProcessList", "traits": { - "smithy.api#documentation": "

A collection of server process configurations that identify what server processes to\n run on each instance in a fleet.

" + "smithy.api#documentation": "

A collection of server process configurations that identify what server processes to\n run on fleet computes.

" } }, "MaxConcurrentGameSessionActivations": { "target": "com.amazonaws.gamelift#MaxConcurrentGameSessionActivations", "traits": { - "smithy.api#documentation": "

The number of game sessions in status ACTIVATING to allow on an instance.\n This setting limits the instance resources that can be used for new game activations at\n any one time.

" + "smithy.api#documentation": "

The number of game sessions in status ACTIVATING to allow on an instance or container.\n This setting limits the instance resources that can be used for new game activations at\n any one time.

" } }, "GameSessionActivationTimeoutSeconds": { @@ -13392,7 +14739,7 @@ } }, "traits": { - "smithy.api#documentation": "

A collection of server process configurations that describe the set of processes to\n run on each instance in a fleet. Server processes run either an executable in a custom\n game build or a Realtime Servers script. Amazon GameLift launches the configured processes, manages their\n life cycle, and replaces them as needed. Each instance checks regularly for an updated\n runtime configuration.

\n

A Amazon GameLift instance is limited to 50 processes running concurrently. To calculate the\n total number of processes in a runtime configuration, add the values of the\n ConcurrentExecutions parameter for each server process. Learn more\n about Running Multiple\n Processes on a Fleet.

" + "smithy.api#documentation": "

\n This data type has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

A set of instructions that define the set of server processes to run on computes in a\n fleet. Server processes run either an executable in a custom game build or a Realtime Servers\n script. Amazon GameLift launches the processes, manages their life cycle, and replaces them as\n needed. Computes check regularly for an updated runtime configuration.

\n

On a container fleet, the Amazon GameLift Agent uses the runtime configuration to manage the\n lifecycle of server processes in a replica container group.

\n

An Amazon GameLift instance is limited to 50 processes running concurrently. To calculate the\n total number of processes defined in a runtime configuration, add the values of the\n ConcurrentExecutions parameter for each server process. Learn more\n about Running Multiple\n Processes on a Fleet.

" } }, "com.amazonaws.gamelift#S3Location": { @@ -13698,7 +15045,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves all active game sessions that match a set of search criteria and sorts them\n into a specified order.

\n

This operation is not designed to continually track game session status because that practice can cause you to exceed your API limit and generate errors. Instead, configure an Amazon Simple Notification Service (Amazon SNS) topic to receive notifications from a matchmaker or game session placement queue.

\n

When searching for game sessions, you specify exactly where you want to search and\n provide a search filter expression, a sort expression, or both. A search request can\n search only one fleet, but it can search all of a fleet's locations.

\n

This operation can be used in the following ways:

\n
    \n
  • \n

    To search all game sessions that are currently running on all locations in a\n fleet, provide a fleet or alias ID. This approach returns game sessions in the\n fleet's home Region and all remote locations that fit the search\n criteria.

    \n
  • \n
  • \n

    To search all game sessions that are currently running on a specific fleet\n location, provide a fleet or alias ID and a location name. For location, you can\n specify a fleet's home Region or any remote location.

    \n
  • \n
\n

Use the pagination parameters to retrieve results as a set of sequential pages.

\n

If successful, a GameSession object is returned for each game session\n that matches the request. Search finds game sessions that are in ACTIVE\n status only. To retrieve information on game sessions in other statuses, use DescribeGameSessions .

\n

To set search and sort criteria, create a filter expression using the following game session attributes. For game session search examples, see the Examples section of this topic.

\n
    \n
  • \n

    \n gameSessionId -- A unique identifier for the game session. You can use either a\n GameSessionId or GameSessionArn value.

    \n
  • \n
  • \n

    \n gameSessionName -- Name assigned to a game\n session. Game session names do not need to be unique to a game session.

    \n
  • \n
  • \n

    \n gameSessionProperties -- A set of key-value pairs that can store custom data in a game session.\n For example: {\"Key\": \"difficulty\", \"Value\": \"novice\"}.\n The filter expression must specify the GameProperty -- a Key and a string Value to search for the game sessions.

    \n

    For example, to search for the above key-value pair, specify the following search filter: gameSessionProperties.difficulty = \"novice\".\n All game property values are searched as strings.

    \n

    \n For examples of searching game sessions, see the ones below, and also see Search game sessions by game property.\n

    \n
  • \n
  • \n

    \n maximumSessions -- Maximum number of player\n sessions allowed for a game session.

    \n
  • \n
  • \n

    \n creationTimeMillis -- Value indicating when a\n game session was created. It is expressed in Unix time as milliseconds.

    \n
  • \n
  • \n

    \n playerSessionCount -- Number of players\n currently connected to a game session. This value changes rapidly as players\n join the session or drop out.

    \n
  • \n
  • \n

    \n hasAvailablePlayerSessions -- Boolean value\n indicating whether a game session has reached its maximum number of players. It\n is highly recommended that all search requests include this filter attribute to\n optimize search performance and return only sessions that players can join.\n

    \n
  • \n
\n \n

Returned values for playerSessionCount and\n hasAvailablePlayerSessions change quickly as players join sessions\n and others drop out. Results should be considered a snapshot in time. Be sure to\n refresh search results often, and handle sessions that fill up before a player can\n join.

\n
\n

\n All APIs by task\n

", + "smithy.api#documentation": "

Retrieves all active game sessions that match a set of search criteria and sorts them\n into a specified order.

\n

This operation is not designed to continually track game session status because that practice can cause you to exceed your API limit and generate errors. Instead, configure an Amazon Simple Notification Service (Amazon SNS) topic to receive notifications from a matchmaker or a game session placement queue.

\n

When searching for game sessions, you specify exactly where you want to search and\n provide a search filter expression, a sort expression, or both. A search request can\n search only one fleet, but it can search all of a fleet's locations.

\n

This operation can be used in the following ways:

\n
    \n
  • \n

    To search all game sessions that are currently running on all locations in a\n fleet, provide a fleet or alias ID. This approach returns game sessions in the\n fleet's home Region and all remote locations that fit the search\n criteria.

    \n
  • \n
  • \n

    To search all game sessions that are currently running on a specific fleet\n location, provide a fleet or alias ID and a location name. For location, you can\n specify a fleet's home Region or any remote location.

    \n
  • \n
\n

Use the pagination parameters to retrieve results as a set of sequential pages.

\n

If successful, a GameSession object is returned for each game session\n that matches the request. Search finds game sessions that are in ACTIVE\n status only. To retrieve information on game sessions in other statuses, use DescribeGameSessions .

\n

To set search and sort criteria, create a filter expression using the following game session attributes. For game session search examples, see the Examples section of this topic.

\n
    \n
  • \n

    \n gameSessionId -- A unique identifier for the game session. You can use either a\n GameSessionId or GameSessionArn value.

    \n
  • \n
  • \n

    \n gameSessionName -- Name assigned to a game\n session. Game session names do not need to be unique to a game session.

    \n
  • \n
  • \n

    \n gameSessionProperties -- A set of key-value pairs that can store custom data in a game session.\n For example: {\"Key\": \"difficulty\", \"Value\": \"novice\"}.\n The filter expression must specify the GameProperty -- a Key and a string Value to search for the game sessions.

    \n

    For example, to search for the above key-value pair, specify the following search filter: gameSessionProperties.difficulty = \"novice\".\n All game property values are searched as strings.

    \n

    \n For examples of searching game sessions, see the ones below, and also see Search game sessions by game property.\n

    \n
  • \n
  • \n

    \n maximumSessions -- Maximum number of player\n sessions allowed for a game session.

    \n
  • \n
  • \n

    \n creationTimeMillis -- Value indicating when a\n game session was created. It is expressed in Unix time as milliseconds.

    \n
  • \n
  • \n

    \n playerSessionCount -- Number of players\n currently connected to a game session. This value changes rapidly as players\n join the session or drop out.

    \n
  • \n
  • \n

    \n hasAvailablePlayerSessions -- Boolean value\n indicating whether a game session has reached its maximum number of players. It\n is highly recommended that all search requests include this filter attribute to\n optimize search performance and return only sessions that players can join.\n

    \n
  • \n
\n \n

Returned values for playerSessionCount and\n hasAvailablePlayerSessions change quickly as players join sessions\n and others drop out. Results should be considered a snapshot in time. Be sure to\n refresh search results often, and handle sessions that fill up before a player can\n join.

\n
\n

\n All APIs by task\n

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -13798,13 +15145,13 @@ "target": "com.amazonaws.gamelift#PositiveInteger", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The number of server processes using this configuration that run concurrently on each\n instance.

", + "smithy.api#documentation": "

The number of server processes using this configuration that run concurrently on each\n instance or container..

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

A set of instructions for launching server processes on each instance in a fleet.\n Server processes run either an executable in a custom game build or a Realtime Servers script.\n Server process configurations are part of a fleet's runtime configuration.

" + "smithy.api#documentation": "

A set of instructions for launching server processes on fleet computes. Server\n processes run either an executable in a custom game build or a Realtime Servers script. Server\n process configurations are part of a fleet's runtime configuration.

" } }, "com.amazonaws.gamelift#ServerProcessList": { @@ -13830,6 +15177,21 @@ "smithy.api#pattern": "^\\d+\\.\\d+\\.\\d+$" } }, + "com.amazonaws.gamelift#SessionTarget": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 400 + } + } + }, + "com.amazonaws.gamelift#Sha256": { + "type": "string", + "traits": { + "smithy.api#pattern": "^sha256:[a-fA-F0-9]{64}$" + } + }, "com.amazonaws.gamelift#SnsArnStringModel": { "type": "string", "traits": { @@ -14210,7 +15572,7 @@ } ], "traits": { - "smithy.api#documentation": "

Suspends certain types of activity in a fleet location. Currently, this operation is\n used to stop auto-scaling activity. For multi-location fleets, fleet actions are managed\n separately for each location.

\n

Stopping fleet actions has several potential purposes. It allows you to temporarily\n stop auto-scaling activity but retain your scaling policies for use in the future. For\n multi-location fleets, you can set up fleet-wide auto-scaling, and then opt out of it\n for certain locations.

\n

This operation can be used in the following ways:

\n
    \n
  • \n

    To stop actions on instances in the fleet's home Region, provide a fleet ID\n and the type of actions to suspend.

    \n
  • \n
  • \n

    To stop actions on instances in one of the fleet's remote locations, provide a\n fleet ID, a location name, and the type of actions to suspend.

    \n
  • \n
\n

If successful, Amazon GameLift no longer initiates scaling events except in response to manual\n changes using UpdateFleetCapacity.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n Fleets\n

" + "smithy.api#documentation": "

Suspends certain types of activity in a fleet location. Currently, this operation is\n used to stop auto-scaling activity. For multi-location fleets, fleet actions are managed\n separately for each location.

\n

Stopping fleet actions has several potential purposes. It allows you to temporarily\n stop auto-scaling activity but retain your scaling policies for use in the future. For\n multi-location fleets, you can set up fleet-wide auto-scaling, and then opt out of it\n for certain locations.

\n

This operation can be used in the following ways:

\n
    \n
  • \n

    To stop actions on instances in the fleet's home Region, provide a fleet ID\n and the type of actions to suspend.

    \n
  • \n
  • \n

    To stop actions on instances in one of the fleet's remote locations, provide a\n fleet ID, a location name, and the type of actions to suspend.

    \n
  • \n
\n

If successful, Amazon GameLift no longer initiates scaling events except in response to manual\n changes using UpdateFleetCapacity. To restart fleet actions again, call \n StartFleetActions.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n Fleets\n

" } }, "com.amazonaws.gamelift#StopFleetActionsInput": { @@ -14727,7 +16089,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates properties for an alias. To update properties, specify the alias ID to be\n updated and provide the information to be changed. To reassign an alias to another\n fleet, provide an updated routing strategy. If successful, the updated alias record is\n returned.

\n

\n Related actions\n

\n

\n All APIs by task\n

" + "smithy.api#documentation": "

Updates properties for an alias. Specify the unique identifier of the alias to be\n updated and the new property values. When reassigning an alias to a new fleet, provide\n an updated routing strategy. If successful, the updated alias record is returned.

\n

\n Related actions\n

\n

\n All APIs by task\n

" } }, "com.amazonaws.gamelift#UpdateAliasInput": { @@ -14878,7 +16240,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a fleet's mutable attributes, including game session protection and resource\n creation limits.

\n

To update fleet attributes, specify the fleet ID and the property values that you want\n to change.

\n

If successful, an updated FleetAttributes object is returned.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

" + "smithy.api#documentation": "

Updates a fleet's mutable attributes, such as game session protection and resource\n creation limits.

\n

To update fleet attributes, specify the fleet ID and the property values that you want\n to change. If successful, Amazon GameLift returns the identifiers for the updated fleet.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

" } }, "com.amazonaws.gamelift#UpdateFleetAttributesInput": { @@ -14988,7 +16350,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates capacity settings for a fleet. For fleets with multiple locations, use this\n operation to manage capacity settings in each location individually. Fleet capacity\n determines the number of game sessions and players that can be hosted based on the fleet\n configuration. Use this operation to set the following fleet capacity properties:

\n
    \n
  • \n

    Minimum/maximum size: Set hard limits on fleet capacity. Amazon GameLift cannot set\n the fleet's capacity to a value outside of this range, whether the capacity is\n changed manually or through automatic scaling.

    \n
  • \n
  • \n

    Desired capacity: Manually set the number of Amazon EC2 instances to be maintained\n in a fleet location. Before changing a fleet's desired capacity, you may want to\n call DescribeEC2InstanceLimits to get the maximum capacity of the\n fleet's Amazon EC2 instance type. Alternatively, consider using automatic scaling to\n adjust capacity based on player demand.

    \n
  • \n
\n

This operation can be used in the following ways:

\n
    \n
  • \n

    To update capacity for a fleet's home Region, or if the fleet has no remote\n locations, omit the Location parameter. The fleet must be in\n ACTIVE status.

    \n
  • \n
  • \n

    To update capacity for a fleet's remote location, include the\n Location parameter set to the location to be updated. The\n location must be in ACTIVE status.

    \n
  • \n
\n

If successful, capacity settings are updated immediately. In response a change in\n desired capacity, Amazon GameLift initiates steps to start new instances or terminate existing\n instances in the requested fleet location. This continues until the location's active\n instance count matches the new desired instance count. You can track a fleet's current\n capacity by calling DescribeFleetCapacity or DescribeFleetLocationCapacity. If the requested desired instance count is\n higher than the instance type's limit, the LimitExceeded exception\n occurs.

\n

\n Learn more\n

\n

\n Scaling fleet\n capacity\n

" + "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Updates capacity settings for a managed EC2 fleet or container fleet. For these\n fleets, you adjust capacity by changing the number of instances in the fleet. Fleet\n capacity determines the number of game sessions and players that the fleet can host\n based on its configuration. For fleets with multiple locations, use this operation to\n manage capacity settings in each location individually.

\n

Use this operation to set these fleet capacity properties:

\n
    \n
  • \n

    Minimum/maximum size: Set hard limits on the number of Amazon EC2 instances allowed. If Amazon GameLift receives a \n request--either through manual update or automatic scaling--it won't change the capacity \n to a value outside of this range.

    \n
  • \n
  • \n

    Desired capacity: As an alternative to automatic scaling, manually set the number of Amazon EC2 \n instances to be maintained. \n Before changing a fleet's desired capacity, check the maximum capacity of the\n fleet's Amazon EC2 instance type by calling DescribeEC2InstanceLimits.

    \n
  • \n
\n

To update capacity for a fleet's home Region, or if the fleet has no remote\n locations, omit the Location parameter. The fleet must be in\n ACTIVE status.

\n

To update capacity for a fleet's remote location, set the\n Location parameter to the location to update. The location must be in\n ACTIVE status.

\n

If successful, Amazon GameLift updates the capacity settings and returns the identifiers for\n the updated fleet and/or location. If a requested change to desired capacity exceeds the\n instance type's limit, the LimitExceeded exception occurs.

\n

Updates often prompt an immediate change in fleet capacity, such as when current\n capacity is different than the new desired capacity or outside the new limits. In this\n scenario, Amazon GameLift automatically initiates steps to add or remove instances in the fleet\n location. You can track a fleet's current capacity by calling DescribeFleetCapacity or DescribeFleetLocationCapacity.

\n

\n Learn more\n

\n

\n Scaling fleet\n capacity\n

" } }, "com.amazonaws.gamelift#UpdateFleetCapacityInput": { @@ -15089,7 +16451,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates permissions that allow inbound traffic to connect to game sessions that are\n being hosted on instances in the fleet.

\n

To update settings, specify the fleet ID to be updated and specify the changes to be\n made. List the permissions you want to add in\n InboundPermissionAuthorizations, and permissions you want to remove in\n InboundPermissionRevocations. Permissions to be removed must match\n existing fleet permissions.

\n

If successful, the fleet ID for the updated fleet is returned. For fleets with remote\n locations, port setting updates can take time to propagate across all locations. You can\n check the status of updates in each location by calling\n DescribeFleetPortSettings with a location name.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

" + "smithy.api#documentation": "

Updates permissions that allow inbound traffic to connect to game sessions in the\n fleet.

\n

To update settings, specify the fleet ID to be updated and specify the changes to be\n made. List the permissions you want to add in\n InboundPermissionAuthorizations, and permissions you want to remove in\n InboundPermissionRevocations. Permissions to be removed must match\n existing fleet permissions.

\n

For a container fleet, inbound permissions must specify port numbers that are defined\n in the fleet's connection port settings.

\n

If successful, the fleet ID for the updated fleet is returned. For fleets with remote\n locations, port setting updates can take time to propagate across all locations. You can\n check the status of updates in each location by calling\n DescribeFleetPortSettings with a location name.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

" } }, "com.amazonaws.gamelift#UpdateFleetPortSettingsInput": { @@ -15644,6 +17006,9 @@ { "target": "com.amazonaws.gamelift#InvalidRequestException" }, + { + "target": "com.amazonaws.gamelift#LimitExceededException" + }, { "target": "com.amazonaws.gamelift#NotFoundException" }, @@ -15652,7 +17017,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the current runtime configuration for the specified fleet, which tells Amazon GameLift\n how to launch server processes on all instances in the fleet. You can update a fleet's\n runtime configuration at any time after the fleet is created; it does not need to be in\n ACTIVE status.

\n

To update runtime configuration, specify the fleet ID and provide a\n RuntimeConfiguration with an updated set of server process\n configurations.

\n

If successful, the fleet's runtime configuration settings are updated. Each instance\n in the fleet regularly checks for and retrieves updated runtime configurations.\n Instances immediately begin complying with the new configuration by launching new server\n processes or not replacing existing processes when they shut down. Updating a fleet's\n runtime configuration never affects existing server processes.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

" + "smithy.api#documentation": "

Updates the runtime configuration for the specified fleet. The runtime configuration\n tells Amazon GameLift how to launch server processes on computes in the fleet. For managed EC2\n fleets, it determines what server processes to run on each fleet instance. For container\n fleets, it describes what server processes to run in each replica container group. You\n can update a fleet's runtime configuration at any time after the fleet is created; it\n does not need to be in ACTIVE status.

\n

To update runtime configuration, specify the fleet ID and provide a\n RuntimeConfiguration with an updated set of server process\n configurations.

\n

If successful, the fleet's runtime configuration settings are updated. Fleet computes\n that run game server processes regularly check for and receive updated runtime\n configurations. The computes immediately take action to comply with the new\n configuration by launching new server processes or by not replacing existing processes\n when they shut down. Updating a fleet's runtime configuration never affects existing\n server processes.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

" } }, "com.amazonaws.gamelift#UpdateRuntimeConfigurationInput": { @@ -15670,7 +17035,7 @@ "target": "com.amazonaws.gamelift#RuntimeConfiguration", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Instructions for launching server processes on each instance in the fleet. Server\n processes run either a custom game build executable or a Realtime Servers script. The runtime\n configuration lists the types of server processes to run on an instance, how to launch\n them, and the number of processes to run concurrently.

", + "smithy.api#documentation": "

Instructions for launching server processes on fleet computes. Server processes run\n either a custom game build executable or a Realtime Servers script. The runtime configuration lists\n the types of server processes to run, how to launch them, and the number of processes to\n run concurrently.

", "smithy.api#required": {} } } @@ -15685,7 +17050,7 @@ "RuntimeConfiguration": { "target": "com.amazonaws.gamelift#RuntimeConfiguration", "traits": { - "smithy.api#documentation": "

The runtime configuration currently in use by all instances in the fleet. If the\n update was successful, all property changes are shown.

" + "smithy.api#documentation": "

The runtime configuration currently in use by computes in the fleet. If the update is\n successful, all property changes are shown.

" } } }, diff --git a/models/glue.json b/models/glue.json index b1e3d8a954..44f400bca3 100644 --- a/models/glue.json +++ b/models/glue.json @@ -20008,7 +20008,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves table metadata from the Data Catalog that contains unfiltered \n metadata.

\n

For IAM authorization, the public IAM action associated with this API is glue:GetTable.

" + "smithy.api#documentation": "

Allows a third-party analytical engine to retrieve unfiltered table metadata from the Data Catalog.

\n

For IAM authorization, the public IAM action associated with this API is glue:GetTable.

" } }, "com.amazonaws.glue#GetUnfilteredTableMetadataRequest": { @@ -20050,10 +20050,22 @@ "SupportedPermissionTypes": { "target": "com.amazonaws.glue#PermissionTypeList", "traits": { - "smithy.api#documentation": "

(Required) A list of supported permission types.

", + "smithy.api#documentation": "

Indicates the level of filtering a third-party analytical engine is capable of enforcing when calling the GetUnfilteredTableMetadata API operation. Accepted values are:

\n
    \n
  • \n

    \n COLUMN_PERMISSION - Column permissions ensure that users can access only specific columns in the table. If there are particular columns contain sensitive data, data lake administrators can define column filters that exclude access to specific columns.

    \n
  • \n
  • \n

    \n CELL_FILTER_PERMISSION - Cell-level filtering combines column filtering (include or exclude columns) and row filter expressions to restrict access to individual elements in the table.

    \n
  • \n
  • \n

    \n NESTED_PERMISSION - Nested permissions combines cell-level filtering and nested column filtering to restrict access to columns and/or nested columns in specific rows based on row filter expressions.

    \n
  • \n
  • \n

    \n NESTED_CELL_PERMISSION - Nested cell permissions combines nested permission with nested cell-level filtering. This allows different subsets of nested columns to be restricted based on an array of row filter expressions.

    \n
  • \n
\n

Note: Each of these permission types follows a hierarchical order where each subsequent permission type includes all permission of the previous type.

\n

Important: If you provide a supported permission type that doesn't match the user's level of permissions on the table, then Lake Formation raises an exception. For example, if the third-party engine calling the GetUnfilteredTableMetadata operation can enforce only column-level filtering, and the user has nested cell filtering applied on the table, Lake Formation throws an exception, and will not return unfiltered table metadata and data access credentials.

", "smithy.api#required": {} } }, + "ParentResourceArn": { + "target": "com.amazonaws.glue#ArnString", + "traits": { + "smithy.api#documentation": "

The resource ARN of the view.

" + } + }, + "RootResourceArn": { + "target": "com.amazonaws.glue#ArnString", + "traits": { + "smithy.api#documentation": "

The resource ARN of the root view in a chain of nested views.

" + } + }, "SupportedDialect": { "target": "com.amazonaws.glue#SupportedDialect", "traits": { @@ -20136,6 +20148,12 @@ "traits": { "smithy.api#documentation": "

The Lake Formation data permissions of the caller on the table. Used to authorize the call when no view context is found.

" } + }, + "RowFilter": { + "target": "com.amazonaws.glue#PredicateString", + "traits": { + "smithy.api#documentation": "

The filter that applies to the table. For example when applying the filter in SQL, it would go in the WHERE clause and can be evaluated by using an AND operator with any other predicates applied by the user querying the table.

" + } } }, "traits": { @@ -22902,13 +22920,13 @@ "MaxFetchTimeInMs": { "target": "com.amazonaws.glue#BoxedNonNegativeLong", "traits": { - "smithy.api#documentation": "

The maximum time spent in the job executor to fetch a record from the Kinesis data stream per shard, specified in milliseconds (ms). The default value is 1000.

" + "smithy.api#documentation": "

The maximum time spent for the job executor to read records for the current batch from the Kinesis data stream, specified in milliseconds (ms). Multiple GetRecords API calls may be made within this time. The default value is 1000.

" } }, "MaxFetchRecordsPerShard": { "target": "com.amazonaws.glue#BoxedNonNegativeLong", "traits": { - "smithy.api#documentation": "

The maximum number of records to fetch per shard in the Kinesis data stream. The default value is 100000.

" + "smithy.api#documentation": "

The maximum number of records to fetch per shard in the Kinesis data stream per microbatch. Note: The client can exceed this limit if the streaming job has already read extra records from Kinesis (in the same get-records call). If MaxFetchRecordsPerShard needs to be strict then it needs to be a multiple of MaxRecordPerRead. The default value is 100000.

" } }, "MaxRecordPerRead": { diff --git a/models/guardduty.json b/models/guardduty.json index 037d2f38da..ae4f3341b8 100644 --- a/models/guardduty.json +++ b/models/guardduty.json @@ -1927,7 +1927,7 @@ "target": "com.amazonaws.guardduty#FindingCriteria", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Represents the criteria to be used in the filter for querying findings.

\n

You can only use the following attributes to query findings:

\n
    \n
  • \n

    accountId

    \n
  • \n
  • \n

    id

    \n
  • \n
  • \n

    region

    \n
  • \n
  • \n

    severity

    \n

    To filter on the basis of severity, the API and CLI use the following input list for\n the FindingCriteria\n condition:

    \n
      \n
    • \n

      \n Low: [\"1\", \"2\", \"3\"]\n

      \n
    • \n
    • \n

      \n Medium: [\"4\", \"5\", \"6\"]\n

      \n
    • \n
    • \n

      \n High: [\"7\", \"8\", \"9\"]\n

      \n
    • \n
    \n

    For more information, see Severity\n levels for GuardDuty findings.

    \n
  • \n
  • \n

    type

    \n
  • \n
  • \n

    updatedAt

    \n

    Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ\n depending on whether the value contains milliseconds.

    \n
  • \n
  • \n

    resource.accessKeyDetails.accessKeyId

    \n
  • \n
  • \n

    resource.accessKeyDetails.principalId

    \n
  • \n
  • \n

    resource.accessKeyDetails.userName

    \n
  • \n
  • \n

    resource.accessKeyDetails.userType

    \n
  • \n
  • \n

    resource.instanceDetails.iamInstanceProfile.id

    \n
  • \n
  • \n

    resource.instanceDetails.imageId

    \n
  • \n
  • \n

    resource.instanceDetails.instanceId

    \n
  • \n
  • \n

    resource.instanceDetails.tags.key

    \n
  • \n
  • \n

    resource.instanceDetails.tags.value

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.ipv6Addresses

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.publicDnsName

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.publicIp

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.securityGroups.groupId

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.securityGroups.groupName

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.subnetId

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.vpcId

    \n
  • \n
  • \n

    resource.instanceDetails.outpostArn

    \n
  • \n
  • \n

    resource.resourceType

    \n
  • \n
  • \n

    resource.s3BucketDetails.publicAccess.effectivePermissions

    \n
  • \n
  • \n

    resource.s3BucketDetails.name

    \n
  • \n
  • \n

    resource.s3BucketDetails.tags.key

    \n
  • \n
  • \n

    resource.s3BucketDetails.tags.value

    \n
  • \n
  • \n

    resource.s3BucketDetails.type

    \n
  • \n
  • \n

    service.action.actionType

    \n
  • \n
  • \n

    service.action.awsApiCallAction.api

    \n
  • \n
  • \n

    service.action.awsApiCallAction.callerType

    \n
  • \n
  • \n

    service.action.awsApiCallAction.errorCode

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.city.cityName

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.country.countryName

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.organization.asn

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg

    \n
  • \n
  • \n

    service.action.awsApiCallAction.serviceName

    \n
  • \n
  • \n

    service.action.dnsRequestAction.domain

    \n
  • \n
  • \n

    service.action.dnsRequestAction.domainWithSuffix

    \n
  • \n
  • \n

    service.action.networkConnectionAction.blocked

    \n
  • \n
  • \n

    service.action.networkConnectionAction.connectionDirection

    \n
  • \n
  • \n

    service.action.networkConnectionAction.localPortDetails.port

    \n
  • \n
  • \n

    service.action.networkConnectionAction.protocol

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.city.cityName

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.country.countryName

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.organization.asn

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remotePortDetails.port

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteAccountDetails.affiliated

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.namespace

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.remoteIpDetails.organization.asn

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.requestUri

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.statusCode

    \n
  • \n
  • \n

    service.action.networkConnectionAction.localIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.networkConnectionAction.protocol

    \n
  • \n
  • \n

    service.action.awsApiCallAction.serviceName

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteAccountDetails.accountId

    \n
  • \n
  • \n

    service.additionalInfo.threatListName

    \n
  • \n
  • \n

    service.resourceRole

    \n
  • \n
  • \n

    resource.eksClusterDetails.name

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.name

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.namespace

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesUserDetails.username

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.containers.image

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.containers.imagePrefix

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanId

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.name

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.severity

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.hash

    \n
  • \n
  • \n

    resource.ecsClusterDetails.name

    \n
  • \n
  • \n

    resource.ecsClusterDetails.taskDetails.containers.image

    \n
  • \n
  • \n

    resource.ecsClusterDetails.taskDetails.definitionArn

    \n
  • \n
  • \n

    resource.containerDetails.image

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.dbInstanceIdentifier

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.dbClusterIdentifier

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.engine

    \n
  • \n
  • \n

    resource.rdsDbUserDetails.user

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.tags.key

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.tags.value

    \n
  • \n
  • \n

    service.runtimeDetails.process.executableSha256

    \n
  • \n
  • \n

    service.runtimeDetails.process.name

    \n
  • \n
  • \n

    service.runtimeDetails.process.name

    \n
  • \n
  • \n

    resource.lambdaDetails.functionName

    \n
  • \n
  • \n

    resource.lambdaDetails.functionArn

    \n
  • \n
  • \n

    resource.lambdaDetails.tags.key

    \n
  • \n
  • \n

    resource.lambdaDetails.tags.value

    \n
  • \n
", + "smithy.api#documentation": "

Represents the criteria to be used in the filter for querying findings.

\n

You can only use the following attributes to query findings:

\n
    \n
  • \n

    accountId

    \n
  • \n
  • \n

    id

    \n
  • \n
  • \n

    region

    \n
  • \n
  • \n

    severity

    \n

    To filter on the basis of severity, the API and CLI use the following input list for\n the FindingCriteria\n condition:

    \n
      \n
    • \n

      \n Low: [\"1\", \"2\", \"3\"]\n

      \n
    • \n
    • \n

      \n Medium: [\"4\", \"5\", \"6\"]\n

      \n
    • \n
    • \n

      \n High: [\"7\", \"8\", \"9\"]\n

      \n
    • \n
    \n

    For more information, see Severity\n levels for GuardDuty findings.

    \n
  • \n
  • \n

    type

    \n
  • \n
  • \n

    updatedAt

    \n

    Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ\n depending on whether the value contains milliseconds.

    \n
  • \n
  • \n

    resource.accessKeyDetails.accessKeyId

    \n
  • \n
  • \n

    resource.accessKeyDetails.principalId

    \n
  • \n
  • \n

    resource.accessKeyDetails.userName

    \n
  • \n
  • \n

    resource.accessKeyDetails.userType

    \n
  • \n
  • \n

    resource.instanceDetails.iamInstanceProfile.id

    \n
  • \n
  • \n

    resource.instanceDetails.imageId

    \n
  • \n
  • \n

    resource.instanceDetails.instanceId

    \n
  • \n
  • \n

    resource.instanceDetails.tags.key

    \n
  • \n
  • \n

    resource.instanceDetails.tags.value

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.ipv6Addresses

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.publicDnsName

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.publicIp

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.securityGroups.groupId

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.securityGroups.groupName

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.subnetId

    \n
  • \n
  • \n

    resource.instanceDetails.networkInterfaces.vpcId

    \n
  • \n
  • \n

    resource.instanceDetails.outpostArn

    \n
  • \n
  • \n

    resource.resourceType

    \n
  • \n
  • \n

    resource.s3BucketDetails.publicAccess.effectivePermissions

    \n
  • \n
  • \n

    resource.s3BucketDetails.name

    \n
  • \n
  • \n

    resource.s3BucketDetails.tags.key

    \n
  • \n
  • \n

    resource.s3BucketDetails.tags.value

    \n
  • \n
  • \n

    resource.s3BucketDetails.type

    \n
  • \n
  • \n

    service.action.actionType

    \n
  • \n
  • \n

    service.action.awsApiCallAction.api

    \n
  • \n
  • \n

    service.action.awsApiCallAction.callerType

    \n
  • \n
  • \n

    service.action.awsApiCallAction.errorCode

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.city.cityName

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.country.countryName

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.ipAddressV6

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.organization.asn

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg

    \n
  • \n
  • \n

    service.action.awsApiCallAction.serviceName

    \n
  • \n
  • \n

    service.action.dnsRequestAction.domain

    \n
  • \n
  • \n

    service.action.dnsRequestAction.domainWithSuffix

    \n
  • \n
  • \n

    service.action.networkConnectionAction.blocked

    \n
  • \n
  • \n

    service.action.networkConnectionAction.connectionDirection

    \n
  • \n
  • \n

    service.action.networkConnectionAction.localPortDetails.port

    \n
  • \n
  • \n

    service.action.networkConnectionAction.protocol

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.city.cityName

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.country.countryName

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.ipAddressV6

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.organization.asn

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg

    \n
  • \n
  • \n

    service.action.networkConnectionAction.remotePortDetails.port

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteAccountDetails.affiliated

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV6

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.namespace

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.remoteIpDetails.organization.asn

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.requestUri

    \n
  • \n
  • \n

    service.action.kubernetesApiCallAction.statusCode

    \n
  • \n
  • \n

    service.action.networkConnectionAction.localIpDetails.ipAddressV4

    \n
  • \n
  • \n

    service.action.networkConnectionAction.localIpDetails.ipAddressV6

    \n
  • \n
  • \n

    service.action.networkConnectionAction.protocol

    \n
  • \n
  • \n

    service.action.awsApiCallAction.serviceName

    \n
  • \n
  • \n

    service.action.awsApiCallAction.remoteAccountDetails.accountId

    \n
  • \n
  • \n

    service.additionalInfo.threatListName

    \n
  • \n
  • \n

    service.resourceRole

    \n
  • \n
  • \n

    resource.eksClusterDetails.name

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.name

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.namespace

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesUserDetails.username

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.containers.image

    \n
  • \n
  • \n

    resource.kubernetesDetails.kubernetesWorkloadDetails.containers.imagePrefix

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanId

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.name

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.severity

    \n
  • \n
  • \n

    service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.hash

    \n
  • \n
  • \n

    resource.ecsClusterDetails.name

    \n
  • \n
  • \n

    resource.ecsClusterDetails.taskDetails.containers.image

    \n
  • \n
  • \n

    resource.ecsClusterDetails.taskDetails.definitionArn

    \n
  • \n
  • \n

    resource.containerDetails.image

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.dbInstanceIdentifier

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.dbClusterIdentifier

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.engine

    \n
  • \n
  • \n

    resource.rdsDbUserDetails.user

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.tags.key

    \n
  • \n
  • \n

    resource.rdsDbInstanceDetails.tags.value

    \n
  • \n
  • \n

    service.runtimeDetails.process.executableSha256

    \n
  • \n
  • \n

    service.runtimeDetails.process.name

    \n
  • \n
  • \n

    service.runtimeDetails.process.name

    \n
  • \n
  • \n

    resource.lambdaDetails.functionName

    \n
  • \n
  • \n

    resource.lambdaDetails.functionArn

    \n
  • \n
  • \n

    resource.lambdaDetails.tags.key

    \n
  • \n
  • \n

    resource.lambdaDetails.tags.value

    \n
  • \n
", "smithy.api#jsonName": "findingCriteria", "smithy.api#required": {} } @@ -9706,6 +9706,13 @@ "smithy.api#documentation": "

The IPv4 local address of the connection.

", "smithy.api#jsonName": "ipAddressV4" } + }, + "IpAddressV6": { + "target": "com.amazonaws.guardduty#SensitiveString", + "traits": { + "smithy.api#documentation": "

The IPv6 local address of the connection.

", + "smithy.api#jsonName": "ipAddressV6" + } } }, "traits": { @@ -11559,6 +11566,13 @@ "smithy.api#jsonName": "ipAddressV4" } }, + "IpAddressV6": { + "target": "com.amazonaws.guardduty#SensitiveString", + "traits": { + "smithy.api#documentation": "

The IPv6 remote address of the connection.

", + "smithy.api#jsonName": "ipAddressV6" + } + }, "Organization": { "target": "com.amazonaws.guardduty#Organization", "traits": { diff --git a/models/healthlake.json b/models/healthlake.json index 3d52f0ee34..33db822d02 100644 --- a/models/healthlake.json +++ b/models/healthlake.json @@ -367,6 +367,12 @@ "traits": { "smithy.api#documentation": "

The identity provider that you selected when you created the data store.

" } + }, + "ErrorCause": { + "target": "com.amazonaws.healthlake#ErrorCause", + "traits": { + "smithy.api#documentation": "

The error cause for the current data store operation.

" + } } }, "traits": { @@ -405,6 +411,12 @@ "traits": { "smithy.api#enumValue": "DELETED" } + }, + "CREATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_FAILED" + } } } }, @@ -683,6 +695,52 @@ "smithy.api#pattern": "^(arn:aws((-us-gov)|(-iso)|(-iso-b)|(-cn))?:kms:)?([a-z]{2}-[a-z]+(-[a-z]+)?-\\d:)?(\\d{12}:)?(((key/)?[a-zA-Z0-9-_]+)|(alias/[a-zA-Z0-9:/_-]+))$" } }, + "com.amazonaws.healthlake#ErrorCategory": { + "type": "enum", + "members": { + "RETRYABLE_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RETRYABLE_ERROR" + } + }, + "NON_RETRYABLE_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NON_RETRYABLE_ERROR" + } + } + } + }, + "com.amazonaws.healthlake#ErrorCause": { + "type": "structure", + "members": { + "ErrorMessage": { + "target": "com.amazonaws.healthlake#ErrorMessage", + "traits": { + "smithy.api#documentation": "

The text of the error message.

" + } + }, + "ErrorCategory": { + "target": "com.amazonaws.healthlake#ErrorCategory", + "traits": { + "smithy.api#documentation": "

The error category of the create/delete data store operation. Possible statuses are RETRYABLE_ERROR or NON_RETRYABLE_ERROR.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The error info of the create/delete data store operation.

" + } + }, + "com.amazonaws.healthlake#ErrorMessage": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 4096 + } + } + }, "com.amazonaws.healthlake#ExportJobProperties": { "type": "structure", "members": { diff --git a/models/iam.json b/models/iam.json index e03cef8bac..b03777a860 100644 --- a/models/iam.json +++ b/models/iam.json @@ -2954,7 +2954,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new instance profile. For information about instance profiles, see Using\n roles for applications on Amazon EC2 in the\n IAM User Guide, and Instance profiles in the Amazon EC2 User Guide.

\n

For information about the number of instance profiles you can create, see IAM object\n quotas in the IAM User Guide.

", + "smithy.api#documentation": "

Creates a new instance profile. For information about instance profiles, see Using\n roles for applications on Amazon EC2 in the\n IAM User Guide, and Instance profiles in the Amazon EC2 User Guide.

\n

For information about the number of instance profiles you can create, see IAM object\n quotas in the IAM User Guide.

", "smithy.api#examples": [ { "title": "To create an instance profile", @@ -3132,12 +3132,15 @@ { "target": "com.amazonaws.iam#LimitExceededException" }, + { + "target": "com.amazonaws.iam#OpenIdIdpCommunicationErrorException" + }, { "target": "com.amazonaws.iam#ServiceFailureException" } ], "traits": { - "smithy.api#documentation": "

Creates an IAM entity to describe an identity provider (IdP) that supports OpenID Connect (OIDC).

\n

The OIDC provider that you create with this operation can be used as a principal in a\n role's trust policy. Such a policy establishes a trust relationship between Amazon Web Services and\n the OIDC provider.

\n

If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, you don't\n need to create a separate IAM identity provider. These OIDC identity providers are\n already built-in to Amazon Web Services and are available for your use. Instead, you can move directly\n to creating new roles using your identity provider. To learn more, see Creating\n a role for web identity or OpenID connect federation in the IAM\n User Guide.

\n

When you create the IAM OIDC provider, you specify the following:

\n
    \n
  • \n

    The URL of the OIDC identity provider (IdP) to trust

    \n
  • \n
  • \n

    A list of client IDs (also known as audiences) that identify the application\n or applications allowed to authenticate using the OIDC provider

    \n
  • \n
  • \n

    A list of tags that are attached to the specified IAM OIDC provider

    \n
  • \n
  • \n

    A list of thumbprints of one or more server certificates that the IdP\n uses

    \n
  • \n
\n

You get all of this information from the OIDC IdP you want to use to access\n Amazon Web Services.

\n \n

Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library\n of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to\n verify your IdP server certificate. In these cases, your legacy thumbprint remains in your\n configuration, but is no longer used for validation. These OIDC IdPs include Auth0, GitHub,\n GitLab, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS)\n endpoint.

\n
\n \n

The trust for the OIDC provider is derived from the IAM provider that this\n operation creates. Therefore, it is best to limit access to the CreateOpenIDConnectProvider operation to highly privileged\n users.

\n
", + "smithy.api#documentation": "

Creates an IAM entity to describe an identity provider (IdP) that supports OpenID Connect (OIDC).

\n

The OIDC provider that you create with this operation can be used as a principal in a\n role's trust policy. Such a policy establishes a trust relationship between Amazon Web Services and\n the OIDC provider.

\n

If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, you don't\n need to create a separate IAM identity provider. These OIDC identity providers are\n already built-in to Amazon Web Services and are available for your use. Instead, you can move directly\n to creating new roles using your identity provider. To learn more, see Creating\n a role for web identity or OpenID connect federation in the IAM\n User Guide.

\n

When you create the IAM OIDC provider, you specify the following:

\n
    \n
  • \n

    The URL of the OIDC identity provider (IdP) to trust

    \n
  • \n
  • \n

    A list of client IDs (also known as audiences) that identify the application\n or applications allowed to authenticate using the OIDC provider

    \n
  • \n
  • \n

    A list of tags that are attached to the specified IAM OIDC provider

    \n
  • \n
  • \n

    A list of thumbprints of one or more server certificates that the IdP\n uses

    \n
  • \n
\n

You get all of this information from the OIDC IdP you want to use to access\n Amazon Web Services.

\n \n

Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library\n of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to\n verify your IdP server certificate. In these cases, your legacy thumbprint remains in your\n configuration, but is no longer used for validation. These OIDC IdPs include Auth0, GitHub,\n GitLab, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS)\n endpoint.

\n
\n \n

The trust for the OIDC provider is derived from the IAM provider that this\n operation creates. Therefore, it is best to limit access to the CreateOpenIDConnectProvider operation to highly privileged\n users.

\n
", "smithy.api#examples": [ { "title": "To create an instance profile", @@ -3177,8 +3180,7 @@ "ThumbprintList": { "target": "com.amazonaws.iam#thumbprintListType", "traits": { - "smithy.api#documentation": "

A list of server certificate thumbprints for the OpenID Connect (OIDC) identity\n provider's server certificates. Typically this list includes only one entry. However,\n IAM lets you have up to five thumbprints for an OIDC provider. This lets you maintain\n multiple thumbprints if the identity provider is rotating certificates.

\n

The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509\n certificate used by the domain where the OpenID Connect provider makes its keys\n available. It is always a 40-character string.

\n

You must provide at least one thumbprint when creating an IAM OIDC provider. For\n example, assume that the OIDC provider is server.example.com and the\n provider stores its keys at https://keys.server.example.com/openid-connect. In that\n case, the thumbprint string would be the hex-encoded SHA-1 hash value of the certificate\n used by https://keys.server.example.com.\n

\n

For more information about obtaining the OIDC provider thumbprint, see Obtaining the\n thumbprint for an OpenID Connect provider in the IAM user\n Guide.

", - "smithy.api#required": {} + "smithy.api#documentation": "

A list of server certificate thumbprints for the OpenID Connect (OIDC) identity\n provider's server certificates. Typically this list includes only one entry. However,\n IAM lets you have up to five thumbprints for an OIDC provider. This lets you maintain\n multiple thumbprints if the identity provider is rotating certificates.

\n

This parameter is optional. If it is not included, IAM will retrieve and use the top\n intermediate certificate authority (CA) thumbprint of the OpenID Connect identity\n provider server certificate.

\n

The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509\n certificate used by the domain where the OpenID Connect provider makes its keys\n available. It is always a 40-character string.

\n

For example, assume that the OIDC provider is server.example.com and the\n provider stores its keys at https://keys.server.example.com/openid-connect. In that\n case, the thumbprint string would be the hex-encoded SHA-1 hash value of the certificate\n used by https://keys.server.example.com.\n

\n

For more information about obtaining the OIDC provider thumbprint, see Obtaining the\n thumbprint for an OpenID Connect provider in the IAM user\n Guide.

" } }, "Tags": { @@ -4478,7 +4480,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the specified role. Unlike the Amazon Web Services Management Console, when you delete a role\n programmatically, you must delete the items attached to the role manually, or the\n deletion fails. For more information, see Deleting an IAM role. Before attempting to delete a role, remove the\n following attached items:

\n \n \n

Make sure that you do not have any Amazon EC2 instances running with the role you\n are about to delete. Deleting a role or instance profile that is associated with a\n running instance will break any applications running on the instance.

\n
", + "smithy.api#documentation": "

Deletes the specified role. Unlike the Amazon Web Services Management Console, when you delete a role\n programmatically, you must delete the items attached to the role manually, or the\n deletion fails. For more information, see Deleting an IAM role. Before attempting to delete a role, remove the\n following attached items:

\n \n \n

Make sure that you do not have any Amazon EC2 instances running with the role you are\n about to delete. Deleting a role or instance profile that is associated with a\n running instance will break any applications running on the instance.

\n
", "smithy.api#examples": [ { "title": "To delete an IAM role", @@ -11286,6 +11288,23 @@ } } }, + "com.amazonaws.iam#OpenIdIdpCommunicationErrorException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.iam#openIdIdpCommunicationErrorExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "OpenIdIdpCommunicationError", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The request failed because IAM cannot connect to the OpenID Connect identity provider URL.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.iam#OrganizationsDecisionDetail": { "type": "structure", "members": { @@ -12199,7 +12218,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes the specified IAM role from the specified EC2 instance profile.

\n \n

Make sure that you do not have any Amazon EC2 instances running with the role you\n are about to remove from the instance profile. Removing a role from an instance\n profile that is associated with a running instance might break any applications\n running on the instance.

\n
\n

For more information about roles, see IAM roles in the\n IAM User Guide. For more information about instance profiles,\n see Using\n instance profiles in the IAM User Guide.

", + "smithy.api#documentation": "

Removes the specified IAM role from the specified Amazon EC2 instance profile.

\n \n

Make sure that you do not have any Amazon EC2 instances running with the role you are\n about to remove from the instance profile. Removing a role from an instance profile\n that is associated with a running instance might break any applications running on\n the instance.

\n
\n

For more information about roles, see IAM roles in the\n IAM User Guide. For more information about instance profiles,\n see Using\n instance profiles in the IAM User Guide.

", "smithy.api#examples": [ { "title": "To remove a role from an instance profile", @@ -13383,7 +13402,7 @@ "ResourceHandlingOption": { "target": "com.amazonaws.iam#ResourceHandlingOptionType", "traits": { - "smithy.api#documentation": "

Specifies the type of simulation to run. Different API operations that support\n resource-based policies require different combinations of resources. By specifying the\n type of simulation to run, you enable the policy simulator to enforce the presence of\n the required resources to ensure reliable simulation results. If your simulation does\n not match one of the following scenarios, then you can omit this parameter. The\n following list shows each of the supported scenario values and the resources that you\n must define to run the simulation.

\n

Each of the EC2 scenarios requires that you specify instance, image, and security\n group resources. If your scenario includes an EBS volume, then you must specify that\n volume as a resource. If the EC2 scenario includes VPC, then you must supply the network\n interface resource. If it includes an IP subnet, then you must specify the subnet\n resource. For more information on the EC2 scenario options, see Supported platforms in the Amazon EC2 User\n Guide.

\n
    \n
  • \n

    \n EC2-VPC-InstanceStore\n

    \n

    instance, image, security group, network interface

    \n
  • \n
  • \n

    \n EC2-VPC-InstanceStore-Subnet\n

    \n

    instance, image, security group, network interface, subnet

    \n
  • \n
  • \n

    \n EC2-VPC-EBS\n

    \n

    instance, image, security group, network interface, volume

    \n
  • \n
  • \n

    \n EC2-VPC-EBS-Subnet\n

    \n

    instance, image, security group, network interface, subnet, volume

    \n
  • \n
" + "smithy.api#documentation": "

Specifies the type of simulation to run. Different API operations that support\n resource-based policies require different combinations of resources. By specifying the\n type of simulation to run, you enable the policy simulator to enforce the presence of\n the required resources to ensure reliable simulation results. If your simulation does\n not match one of the following scenarios, then you can omit this parameter. The\n following list shows each of the supported scenario values and the resources that you\n must define to run the simulation.

\n

Each of the Amazon EC2 scenarios requires that you specify instance, image, and security\n group resources. If your scenario includes an EBS volume, then you must specify that\n volume as a resource. If the Amazon EC2 scenario includes VPC, then you must supply the\n network interface resource. If it includes an IP subnet, then you must specify the\n subnet resource. For more information on the Amazon EC2 scenario options, see Supported platforms in the Amazon EC2 User Guide.

\n
    \n
  • \n

    \n EC2-VPC-InstanceStore\n

    \n

    instance, image, security group, network interface

    \n
  • \n
  • \n

    \n EC2-VPC-InstanceStore-Subnet\n

    \n

    instance, image, security group, network interface, subnet

    \n
  • \n
  • \n

    \n EC2-VPC-EBS\n

    \n

    instance, image, security group, network interface, volume

    \n
  • \n
  • \n

    \n EC2-VPC-EBS-Subnet\n

    \n

    instance, image, security group, network interface, subnet, volume

    \n
  • \n
" } }, "MaxItems": { @@ -13521,7 +13540,7 @@ "ResourceHandlingOption": { "target": "com.amazonaws.iam#ResourceHandlingOptionType", "traits": { - "smithy.api#documentation": "

Specifies the type of simulation to run. Different API operations that support\n resource-based policies require different combinations of resources. By specifying the\n type of simulation to run, you enable the policy simulator to enforce the presence of\n the required resources to ensure reliable simulation results. If your simulation does\n not match one of the following scenarios, then you can omit this parameter. The\n following list shows each of the supported scenario values and the resources that you\n must define to run the simulation.

\n

Each of the EC2 scenarios requires that you specify instance, image, and security\n group resources. If your scenario includes an EBS volume, then you must specify that\n volume as a resource. If the EC2 scenario includes VPC, then you must supply the network\n interface resource. If it includes an IP subnet, then you must specify the subnet\n resource. For more information on the EC2 scenario options, see Supported platforms in the Amazon EC2 User\n Guide.

\n
    \n
  • \n

    \n EC2-VPC-InstanceStore\n

    \n

    instance, image, security group, network interface

    \n
  • \n
  • \n

    \n EC2-VPC-InstanceStore-Subnet\n

    \n

    instance, image, security group, network interface, subnet

    \n
  • \n
  • \n

    \n EC2-VPC-EBS\n

    \n

    instance, image, security group, network interface, volume

    \n
  • \n
  • \n

    \n EC2-VPC-EBS-Subnet\n

    \n

    instance, image, security group, network interface, subnet, volume

    \n
  • \n
" + "smithy.api#documentation": "

Specifies the type of simulation to run. Different API operations that support\n resource-based policies require different combinations of resources. By specifying the\n type of simulation to run, you enable the policy simulator to enforce the presence of\n the required resources to ensure reliable simulation results. If your simulation does\n not match one of the following scenarios, then you can omit this parameter. The\n following list shows each of the supported scenario values and the resources that you\n must define to run the simulation.

\n

Each of the Amazon EC2 scenarios requires that you specify instance, image, and security\n group resources. If your scenario includes an EBS volume, then you must specify that\n volume as a resource. If the Amazon EC2 scenario includes VPC, then you must supply the\n network interface resource. If it includes an IP subnet, then you must specify the\n subnet resource. For more information on the Amazon EC2 scenario options, see Supported platforms in the Amazon EC2 User Guide.

\n
    \n
  • \n

    \n EC2-VPC-InstanceStore\n

    \n

    instance, image, security group, network interface

    \n
  • \n
  • \n

    \n EC2-VPC-InstanceStore-Subnet\n

    \n

    instance, image, security group, network interface, subnet

    \n
  • \n
  • \n

    \n EC2-VPC-EBS\n

    \n

    instance, image, security group, network interface, volume

    \n
  • \n
  • \n

    \n EC2-VPC-EBS-Subnet\n

    \n

    instance, image, security group, network interface, subnet, volume

    \n
  • \n
" } }, "MaxItems": { @@ -14899,7 +14918,7 @@ } ], "traits": { - "smithy.api#documentation": "

Replaces the existing list of server certificate thumbprints associated with an OpenID\n Connect (OIDC) provider resource object with a new list of thumbprints.

\n

The list that you pass with this operation completely replaces the existing list of\n thumbprints. (The lists are not merged.)

\n

Typically, you need to update a thumbprint only when the identity provider certificate\n changes, which occurs rarely. However, if the provider's certificate\n does change, any attempt to assume an IAM role that specifies\n the OIDC provider as a principal fails until the certificate thumbprint is\n updated.

\n \n

Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library\n of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to\n verify your IdP server certificate. In these cases, your legacy thumbprint remains in your\n configuration, but is no longer used for validation. These OIDC IdPs include Auth0, GitHub,\n GitLab, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS)\n endpoint.

\n
\n \n

Trust for the OIDC provider is derived from the provider certificate and is\n validated by the thumbprint. Therefore, it is best to limit access to the\n UpdateOpenIDConnectProviderThumbprint operation to highly\n privileged users.

\n
" + "smithy.api#documentation": "

Replaces the existing list of server certificate thumbprints associated with an OpenID\n Connect (OIDC) provider resource object with a new list of thumbprints.

\n

The list that you pass with this operation completely replaces the existing list of\n thumbprints. (The lists are not merged.)

\n

Typically, you need to update a thumbprint only when the identity provider certificate\n changes, which occurs rarely. However, if the provider's certificate\n does change, any attempt to assume an IAM role that specifies\n the OIDC provider as a principal fails until the certificate thumbprint is\n updated.

\n \n

Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library\n of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to\n verify your IdP server certificate. In these cases, your legacy thumbprint remains in your\n configuration, but is no longer used for validation. These OIDC IdPs include Auth0, GitHub,\n GitLab, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS)\n endpoint.

\n
\n \n

Trust for the OIDC provider is derived from the provider certificate and is\n validated by the thumbprint. Therefore, it is best to limit access to the\n UpdateOpenIDConnectProviderThumbprint operation to highly\n privileged users.

\n
" } }, "com.amazonaws.iam#UpdateOpenIDConnectProviderThumbprintRequest": { @@ -15025,7 +15044,7 @@ "MaxSessionDuration": { "target": "com.amazonaws.iam#roleMaxSessionDurationType", "traits": { - "smithy.api#documentation": "

The maximum session duration (in seconds) that you want to set for the specified role.\n If you do not specify a value for this setting, the default value of one hour is\n applied. This setting can have a value from 1 hour to 12 hours.

\n

Anyone who assumes the role from the CLI or API can use the\n DurationSeconds API parameter or the duration-seconds\n CLI parameter to request a longer session. The MaxSessionDuration setting\n determines the maximum duration that can be requested using the\n DurationSeconds parameter. If users don't specify a value for the\n DurationSeconds parameter, their security credentials are valid for one\n hour by default. This applies when you use the AssumeRole* API operations\n or the assume-role* CLI operations but does not apply when you use those\n operations to create a console URL. For more information, see Using IAM\n roles in the IAM User Guide.

" + "smithy.api#documentation": "

The maximum session duration (in seconds) that you want to set for the specified role.\n If you do not specify a value for this setting, the default value of one hour is\n applied. This setting can have a value from 1 hour to 12 hours.

\n

Anyone who assumes the role from the CLI or API can use the\n DurationSeconds API parameter or the duration-seconds\n CLI parameter to request a longer session. The MaxSessionDuration setting\n determines the maximum duration that can be requested using the\n DurationSeconds parameter. If users don't specify a value for the\n DurationSeconds parameter, their security credentials are valid for one\n hour by default. This applies when you use the AssumeRole* API operations\n or the assume-role* CLI operations but does not apply when you use those\n operations to create a console URL. For more information, see Using IAM\n roles in the IAM User Guide.

\n \n

IAM role credentials provided by Amazon EC2 instances assigned to the role are not\n subject to the specified maximum session duration.

\n
" } } }, @@ -16270,6 +16289,9 @@ "com.amazonaws.iam#noSuchEntityMessage": { "type": "string" }, + "com.amazonaws.iam#openIdIdpCommunicationErrorExceptionMessage": { + "type": "string" + }, "com.amazonaws.iam#organizationsEntityPathType": { "type": "string", "traits": { diff --git a/models/inspector2.json b/models/inspector2.json index 9ae0a85b88..3efe5ed0c9 100644 --- a/models/inspector2.json +++ b/models/inspector2.json @@ -1869,6 +1869,23 @@ "smithy.api#pattern": "^\\d{12}|o-[a-z0-9]{10,32}$" } }, + "com.amazonaws.inspector2#CisReportFormat": { + "type": "enum", + "members": { + "PDF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PDF" + } + }, + "CSV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CSV" + } + } + } + }, "com.amazonaws.inspector2#CisReportStatus": { "type": "enum", "members": { @@ -3530,6 +3547,12 @@ "smithy.api#documentation": "

Filters Amazon Web Services resources based on whether Amazon Inspector has checked them for vulnerabilities within the specified time range.

" } }, + "scanMode": { + "target": "com.amazonaws.inspector2#CoverageStringFilterList", + "traits": { + "smithy.api#documentation": "

The filter to search for Amazon EC2 instance coverage by scan mode. Valid values are EC2_SSM_AGENT_BASED and EC2_HYBRID.

" + } + }, "imagePulledAt": { "target": "com.amazonaws.inspector2#CoverageDateFilterList", "traits": { @@ -3721,6 +3744,12 @@ "traits": { "smithy.api#documentation": "

The date and time the resource was last checked for vulnerabilities.

" } + }, + "scanMode": { + "target": "com.amazonaws.inspector2#ScanMode", + "traits": { + "smithy.api#documentation": "

The scan method that is applied to the instance.

" + } } }, "traits": { @@ -4952,6 +4981,35 @@ } } }, + "com.amazonaws.inspector2#Ec2Configuration": { + "type": "structure", + "members": { + "scanMode": { + "target": "com.amazonaws.inspector2#Ec2ScanMode", + "traits": { + "smithy.api#documentation": "

The scan method that is applied to the instance.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Enables agent-based scanning, which scans instances that are not managed by SSM.

" + } + }, + "com.amazonaws.inspector2#Ec2ConfigurationState": { + "type": "structure", + "members": { + "scanModeState": { + "target": "com.amazonaws.inspector2#Ec2ScanModeState", + "traits": { + "smithy.api#documentation": "

An object that contains details about the state of the Amazon EC2 scan mode.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about the state of the EC2 scan configuration for your environment.

" + } + }, "com.amazonaws.inspector2#Ec2DeepInspectionStatus": { "type": "string", "traits": { @@ -5142,6 +5200,56 @@ ] } }, + "com.amazonaws.inspector2#Ec2ScanMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "EC2_SSM_AGENT_BASED", + "name": "EC2_SSM_AGENT_BASED" + }, + { + "value": "EC2_HYBRID", + "name": "EC2_HYBRID" + } + ] + } + }, + "com.amazonaws.inspector2#Ec2ScanModeState": { + "type": "structure", + "members": { + "scanMode": { + "target": "com.amazonaws.inspector2#Ec2ScanMode", + "traits": { + "smithy.api#documentation": "

The scan method that is applied to the instance.

" + } + }, + "scanModeStatus": { + "target": "com.amazonaws.inspector2#Ec2ScanModeStatus", + "traits": { + "smithy.api#documentation": "

The status of the Amazon EC2 scan mode setting.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The state of your Amazon EC2 scan mode configuration.

" + } + }, + "com.amazonaws.inspector2#Ec2ScanModeStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SUCCESS", + "name": "SUCCESS" + }, + { + "value": "PENDING", + "name": "PENDING" + } + ] + } + }, "com.amazonaws.inspector2#EcrConfiguration": { "type": "structure", "members": { @@ -6308,7 +6416,7 @@ "lastObservedAt": { "target": "com.amazonaws.inspector2#DateTimeTimestamp", "traits": { - "smithy.api#documentation": "

The date and time that the finding was last observed.

", + "smithy.api#documentation": "

\n The date and time the finding was last observed. \n This timestamp for this field remains unchanged until a finding is updated.\n

", "smithy.api#required": {} } }, @@ -6889,6 +6997,9 @@ { "target": "com.amazonaws.inspector2#InternalServerException" }, + { + "target": "com.amazonaws.inspector2#ResourceNotFoundException" + }, { "target": "com.amazonaws.inspector2#ThrottlingException" }, @@ -6902,7 +7013,8 @@ { "title": "Sample GetCisScanReport Call", "input": { - "scanArn": "arn:aws:inspector2:us-east-1:123412341234:owner/123412341234/cis-scan/624b746d-e080-44ae-8c1d-48e653365a38" + "scanArn": "arn:aws:inspector2:us-east-1:123412341234:owner/123412341234/cis-scan/624b746d-e080-44ae-8c1d-48e653365a38", + "reportFormat": "PDF" }, "output": { "url": "www.s3.amazon.com/abcdef", @@ -6932,6 +7044,13 @@ "traits": { "smithy.api#documentation": "

The target accounts.

" } + }, + "reportFormat": { + "target": "com.amazonaws.inspector2#CisReportFormat", + "traits": { + "smithy.api#default": "PDF", + "smithy.api#documentation": "

\n The format of the report. \n Valid values are PDF and CSV. \n If no value is specified, the report format defaults to PDF.\n

" + } } }, "traits": { @@ -6944,7 +7063,7 @@ "url": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

\n The URL where the CIS scan report PDF can be downloaded.\n

" + "smithy.api#documentation": "

\n The URL where a PDF or CSV of the CIS scan report can be downloaded.\n

" } }, "status": { @@ -7151,6 +7270,12 @@ "traits": { "smithy.api#documentation": "

Specifies how the ECR automated re-scan duration is currently configured for your environment.

" } + }, + "ec2Configuration": { + "target": "com.amazonaws.inspector2#Ec2ConfigurationState", + "traits": { + "smithy.api#documentation": "

Specifies how the Amazon EC2 automated scan mode is currently configured for your environment.

" + } } } }, @@ -12454,6 +12579,21 @@ ] } }, + "com.amazonaws.inspector2#ScanMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "EC2_SSM_AGENT_BASED", + "name": "EC2_SSM_AGENT_BASED" + }, + { + "value": "EC2_AGENTLESS", + "name": "EC2_AGENTLESS" + } + ] + } + }, "com.amazonaws.inspector2#ScanStatus": { "type": "structure", "members": { @@ -14393,8 +14533,13 @@ "ecrConfiguration": { "target": "com.amazonaws.inspector2#EcrConfiguration", "traits": { - "smithy.api#documentation": "

Specifies how the ECR automated re-scan will be updated for your environment.

", - "smithy.api#required": {} + "smithy.api#documentation": "

Specifies how the ECR automated re-scan will be updated for your environment.

" + } + }, + "ec2Configuration": { + "target": "com.amazonaws.inspector2#Ec2Configuration", + "traits": { + "smithy.api#documentation": "

Specifies how the Amazon EC2 automated scan will be updated for your environment.

" } } } diff --git a/models/internetmonitor.json b/models/internetmonitor.json index b1abe12ad5..9333daf2b1 100644 --- a/models/internetmonitor.json +++ b/models/internetmonitor.json @@ -72,6 +72,68 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.internetmonitor#ClientLocation": { + "type": "structure", + "members": { + "ASName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the internet service provider (ISP) or network (ASN).

", + "smithy.api#required": {} + } + }, + "ASNumber": { + "target": "smithy.api#Long", + "traits": { + "smithy.api#documentation": "

The Autonomous System Number (ASN) of the network at an impacted location.

", + "smithy.api#required": {} + } + }, + "Country": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the country where the internet event is located.

", + "smithy.api#required": {} + } + }, + "Subdivision": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The subdivision location where the health event is located. The subdivision usually maps to states in most countries \n\t\t\t(including the United States). For United Kingdom, it maps to a country (England, Scotland, Wales) or province (Northern Ireland).

" + } + }, + "Metro": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The metro area where the health event is located.

\n

Metro indicates a metropolitan region in the United States, such as the region around New York City. In non-US countries, \n\t\t\tthis is a second-level subdivision. For example, in the United Kingdom, it could be a county, a London borough, a unitary \n\t\t\tauthority, council area, and so on.

" + } + }, + "City": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the city where the internet event is located.

", + "smithy.api#required": {} + } + }, + "Latitude": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

The latitude where the internet event is located.

", + "smithy.api#required": {} + } + }, + "Longitude": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

The longitude where the internet event is located.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The impacted location, such as a city, that Amazon Web Services clients access application resources from.

" + } + }, "com.amazonaws.internetmonitor#ConflictException": { "type": "structure", "members": { @@ -321,7 +383,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information the Amazon CloudWatch Internet Monitor has created and stored about a health event for a specified monitor. This information includes the impacted locations,\n\t\t\tand all the information related to the event, by location.

\n

The information returned includes the impact on performance, availability, and round-trip time, information about the network providers (ASNs),\n\t\t\tthe event type, and so on.

\n

Information rolled up at the global traffic level is also returned, including the impact type and total traffic impact.

", + "smithy.api#documentation": "

Gets information that Amazon CloudWatch Internet Monitor has created and stored about a health event for a specified monitor. This information includes the impacted locations,\n\t\t\tand all the information related to the event, by location.

\n

The information returned includes the impact on performance, availability, and round-trip time, information about the network providers (ASNs),\n\t\t\tthe event type, and so on.

\n

Information rolled up at the global traffic level is also returned, including the impact type and total traffic impact.

", "smithy.api#http": { "uri": "/v20210603/Monitors/{MonitorName}/HealthEvents/{EventId}", "method": "GET" @@ -351,7 +413,7 @@ "LinkedAccountId": { "target": "com.amazonaws.internetmonitor#AccountId", "traits": { - "smithy.api#documentation": "

TBD

", + "smithy.api#documentation": "

The account ID for an account that you've set up cross-account sharing for in Amazon CloudWatch Internet Monitor. You configure cross-account\n\t\t\tsharing by using Amazon CloudWatch Observability Access Manager. For more information, see \n\t\t\tInternet Monitor cross-account\n\t\t\tobservability in the Amazon CloudWatch Internet Monitor User Guide.

", "smithy.api#httpQuery": "LinkedAccountId" } } @@ -440,6 +502,111 @@ } } }, + "com.amazonaws.internetmonitor#GetInternetEvent": { + "type": "operation", + "input": { + "target": "com.amazonaws.internetmonitor#GetInternetEventInput" + }, + "output": { + "target": "com.amazonaws.internetmonitor#GetInternetEventOutput" + }, + "errors": [ + { + "target": "com.amazonaws.internetmonitor#AccessDeniedException" + }, + { + "target": "com.amazonaws.internetmonitor#InternalServerException" + }, + { + "target": "com.amazonaws.internetmonitor#ThrottlingException" + }, + { + "target": "com.amazonaws.internetmonitor#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets information that Amazon CloudWatch Internet Monitor has generated about an internet event. Internet Monitor displays information about \n\t\t\trecent global health events, called internet events, on a global outages map that is available to all Amazon Web Services\n\t\t\tcustomers.

\n

The information returned here includes the impacted location,\n\t\t\twhen the event started and (if the event is over) ended, the type of event (PERFORMANCE or AVAILABILITY),\n\t\t\tand the status (ACTIVE or RESOLVED).

", + "smithy.api#http": { + "uri": "/v20210603/InternetEvents/{EventId}", + "method": "GET" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.internetmonitor#GetInternetEventInput": { + "type": "structure", + "members": { + "EventId": { + "target": "com.amazonaws.internetmonitor#InternetEventId", + "traits": { + "smithy.api#documentation": "

The EventId of the internet event to return information for.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.internetmonitor#GetInternetEventOutput": { + "type": "structure", + "members": { + "EventId": { + "target": "com.amazonaws.internetmonitor#InternetEventId", + "traits": { + "smithy.api#documentation": "

The internally-generated identifier of an internet event.

", + "smithy.api#required": {} + } + }, + "EventArn": { + "target": "com.amazonaws.internetmonitor#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the internet event.

", + "smithy.api#required": {} + } + }, + "StartedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the internet event started.

", + "smithy.api#required": {}, + "smithy.api#timestampFormat": "date-time" + } + }, + "EndedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the internet event ended. If the event hasn't ended yet, this value is empty.

", + "smithy.api#timestampFormat": "date-time" + } + }, + "ClientLocation": { + "target": "com.amazonaws.internetmonitor#ClientLocation", + "traits": { + "smithy.api#documentation": "

The impacted location, such as a city, where clients access Amazon Web Services application resources.

", + "smithy.api#required": {} + } + }, + "EventType": { + "target": "com.amazonaws.internetmonitor#InternetEventType", + "traits": { + "smithy.api#documentation": "

The type of network impairment.

", + "smithy.api#required": {} + } + }, + "EventStatus": { + "target": "com.amazonaws.internetmonitor#InternetEventStatus", + "traits": { + "smithy.api#documentation": "

The status of the internet event.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.internetmonitor#GetMonitor": { "type": "operation", "input": { @@ -485,7 +652,7 @@ "LinkedAccountId": { "target": "com.amazonaws.internetmonitor#AccountId", "traits": { - "smithy.api#documentation": "

TBD

", + "smithy.api#documentation": "

The account ID for an account that you've set up cross-account sharing for in Amazon CloudWatch Internet Monitor. You configure cross-account\n\t\t\tsharing by using Amazon CloudWatch Observability Access Manager. For more information, see \n\t\t\tInternet Monitor cross-account\n\t\t\t\tobservability in the Amazon CloudWatch Internet Monitor User Guide.

", "smithy.api#httpQuery": "LinkedAccountId" } } @@ -823,7 +990,7 @@ "Status": { "target": "com.amazonaws.internetmonitor#HealthEventStatus", "traits": { - "smithy.api#documentation": "

Health event list member.

", + "smithy.api#documentation": "

The status of a health event.

", "smithy.api#required": {} } }, @@ -969,7 +1136,7 @@ "ASName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the network at an impacted location.

", + "smithy.api#documentation": "

The name of the internet service provider (ISP) or network (ASN).

", "smithy.api#required": {} } }, @@ -1099,6 +1266,142 @@ "smithy.api#retryable": {} } }, + "com.amazonaws.internetmonitor#InternetEventId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-]+$" + } + }, + "com.amazonaws.internetmonitor#InternetEventMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.internetmonitor#InternetEventResource": { + "type": "resource", + "identifiers": { + "EventId": { + "target": "com.amazonaws.internetmonitor#InternetEventId" + } + }, + "read": { + "target": "com.amazonaws.internetmonitor#GetInternetEvent" + }, + "list": { + "target": "com.amazonaws.internetmonitor#ListInternetEvents" + }, + "traits": { + "aws.api#arn": { + "template": "internet-event/{EventId}", + "noRegion": true, + "noAccount": false + }, + "aws.iam#disableConditionKeyInference": {}, + "smithy.api#documentation": "Represents an internet event for a specific city+AS location" + } + }, + "com.amazonaws.internetmonitor#InternetEventStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ACTIVE", + "value": "ACTIVE" + }, + { + "name": "RESOLVED", + "value": "RESOLVED" + } + ] + } + }, + "com.amazonaws.internetmonitor#InternetEventSummary": { + "type": "structure", + "members": { + "EventId": { + "target": "com.amazonaws.internetmonitor#InternetEventId", + "traits": { + "smithy.api#documentation": "

The internally-generated identifier of an internet event.

", + "smithy.api#required": {} + } + }, + "EventArn": { + "target": "com.amazonaws.internetmonitor#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the internet event.

", + "smithy.api#required": {} + } + }, + "StartedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when an internet event started.

", + "smithy.api#required": {}, + "smithy.api#timestampFormat": "date-time" + } + }, + "EndedAt": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when an internet event ended. If the event hasn't ended yet, this value\n\t\tis empty.

", + "smithy.api#timestampFormat": "date-time" + } + }, + "ClientLocation": { + "target": "com.amazonaws.internetmonitor#ClientLocation", + "traits": { + "smithy.api#documentation": "

The impacted location, such as a city, that Amazon Web Services clients access application resources from.

", + "smithy.api#required": {} + } + }, + "EventType": { + "target": "com.amazonaws.internetmonitor#InternetEventType", + "traits": { + "smithy.api#documentation": "

The type of network impairment.

", + "smithy.api#required": {} + } + }, + "EventStatus": { + "target": "com.amazonaws.internetmonitor#InternetEventStatus", + "traits": { + "smithy.api#documentation": "

The status of an internet event.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of information about an internet event in Amazon CloudWatch Internet Monitor. Internet events are issues that cause performance degradation\n\t\t\tor availability problems for impacted Amazon Web Services client locations. Internet Monitor displays information about \n\t\t\trecent global health events, called internet events, on a global outages map that is available to all Amazon Web Services\n\t\t\tcustomers.

" + } + }, + "com.amazonaws.internetmonitor#InternetEventType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "AVAILABILITY", + "name": "AVAILABILITY" + }, + { + "value": "PERFORMANCE", + "name": "PERFORMANCE" + } + ] + } + }, + "com.amazonaws.internetmonitor#InternetEventsList": { + "type": "list", + "member": { + "target": "com.amazonaws.internetmonitor#InternetEventSummary" + } + }, "com.amazonaws.internetmonitor#InternetHealth": { "type": "structure", "members": { @@ -1148,6 +1451,9 @@ } ], "resources": [ + { + "target": "com.amazonaws.internetmonitor#InternetEventResource" + }, { "target": "com.amazonaws.internetmonitor#MonitorResource" } @@ -1866,7 +2172,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all health events for a monitor in Amazon CloudWatch Internet Monitor. Returns information for health events including the event start and end time and \n\t\t\tthe status.

\n \n

Health events that have start times during the time frame that is requested are not included in the list of health events.

\n
", + "smithy.api#documentation": "

Lists all health events for a monitor in Amazon CloudWatch Internet Monitor. Returns information for health events including the event start and end times, and \n\t\t\tthe status.

\n \n

Health events that have start times during the time frame that is requested are not included in the list of health events.

\n
", "smithy.api#http": { "uri": "/v20210603/Monitors/{MonitorName}/HealthEvents", "method": "GET" @@ -1931,7 +2237,7 @@ "LinkedAccountId": { "target": "com.amazonaws.internetmonitor#AccountId", "traits": { - "smithy.api#documentation": "

TBD

", + "smithy.api#documentation": "

The account ID for an account that you've set up cross-account sharing for in Amazon CloudWatch Internet Monitor. You configure cross-account\n\t\t\tsharing by using Amazon CloudWatch Observability Access Manager. For more information, see \n\t\t\tInternet Monitor cross-account\n\t\t\t\tobservability in the Amazon CloudWatch Internet Monitor User Guide.

", "smithy.api#httpQuery": "LinkedAccountId" } } @@ -1955,6 +2261,116 @@ } } }, + "com.amazonaws.internetmonitor#ListInternetEvents": { + "type": "operation", + "input": { + "target": "com.amazonaws.internetmonitor#ListInternetEventsInput" + }, + "output": { + "target": "com.amazonaws.internetmonitor#ListInternetEventsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.internetmonitor#AccessDeniedException" + }, + { + "target": "com.amazonaws.internetmonitor#InternalServerException" + }, + { + "target": "com.amazonaws.internetmonitor#ThrottlingException" + }, + { + "target": "com.amazonaws.internetmonitor#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists internet events that cause performance or availability issues for client locations. Amazon CloudWatch Internet Monitor displays information about \n\t\t\trecent global health events, called internet events, on a global outages map that is available to all Amazon Web Services\n\t\t\tcustomers.

\n

You can constrain the list of internet events returned by providing a start time and end time to define a total \n\t\t\ttime frame for events you want to list. Both start time and end time specify the time when an event started. End time\n\t\t\tis optional. If you don't include it, the default end time is the current time.

\n

You can also limit the events returned to a specific status\n\t\t\t(ACTIVE or RESOLVED) or type (PERFORMANCE or AVAILABILITY).

", + "smithy.api#http": { + "uri": "/v20210603/InternetEvents", + "method": "GET" + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "InternetEvents" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.internetmonitor#ListInternetEventsInput": { + "type": "structure", + "members": { + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The token for the next set of results. You receive this token from a previous call.

", + "smithy.api#httpQuery": "NextToken" + } + }, + "MaxResults": { + "target": "com.amazonaws.internetmonitor#InternetEventMaxResults", + "traits": { + "smithy.api#documentation": "

The number of query results that you want to return with this call.

", + "smithy.api#httpQuery": "InternetEventMaxResults" + } + }, + "StartTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The start time of the time window that you want to get a list of internet events for.

", + "smithy.api#httpQuery": "StartTime", + "smithy.api#timestampFormat": "date-time" + } + }, + "EndTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The end time of the time window that you want to get a list of internet events for.

", + "smithy.api#httpQuery": "EndTime", + "smithy.api#timestampFormat": "date-time" + } + }, + "EventStatus": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The status of an internet event.

", + "smithy.api#httpQuery": "EventStatus" + } + }, + "EventType": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The type of network impairment.

", + "smithy.api#httpQuery": "EventType" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.internetmonitor#ListInternetEventsOutput": { + "type": "structure", + "members": { + "InternetEvents": { + "target": "com.amazonaws.internetmonitor#InternetEventsList", + "traits": { + "smithy.api#documentation": "

A set of internet events returned for the list operation.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The token for the next set of results. You receive this token from a previous call.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.internetmonitor#ListMonitors": { "type": "operation", "input": { @@ -2019,7 +2435,7 @@ "IncludeLinkedAccounts": { "target": "smithy.api#Boolean", "traits": { - "smithy.api#documentation": "

TBD

", + "smithy.api#documentation": "

A boolean option that you can set to TRUE to include monitors for linked accounts in a list of\n\t\t\tmonitors, when you've set up cross-account sharing in Amazon CloudWatch Internet Monitor. You configure cross-account\n\t\t\tsharing by using Amazon CloudWatch Observability Access Manager. For more information, see \n\t\t\tInternet Monitor cross-account\n\t\t\t\tobservability in the Amazon CloudWatch Internet Monitor User Guide.

", "smithy.api#httpQuery": "IncludeLinkedAccounts" } } @@ -2358,7 +2774,7 @@ "ASName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The internet provider name or network name.

", + "smithy.api#documentation": "

The name of the internet service provider (ISP) or network (ASN).

", "smithy.api#required": {} } }, @@ -2371,7 +2787,7 @@ } }, "traits": { - "smithy.api#documentation": "

An internet service provider (ISP) or network in Amazon CloudWatch Internet Monitor.

" + "smithy.api#documentation": "

An internet service provider (ISP) or network (ASN) in Amazon CloudWatch Internet Monitor.

" } }, "com.amazonaws.internetmonitor#NetworkImpairment": { @@ -2394,7 +2810,7 @@ "NetworkEventType": { "target": "com.amazonaws.internetmonitor#TriangulationEventType", "traits": { - "smithy.api#documentation": "

Type of network impairment.

", + "smithy.api#documentation": "

The type of network impairment.

", "smithy.api#required": {} } } @@ -2733,7 +3149,7 @@ "LinkedAccountId": { "target": "com.amazonaws.internetmonitor#AccountId", "traits": { - "smithy.api#documentation": "

TBD

" + "smithy.api#documentation": "

The account ID for an account that you've set up cross-account sharing for in Amazon CloudWatch Internet Monitor. You configure cross-account\n\t\t\tsharing by using Amazon CloudWatch Observability Access Manager. For more information, see \n\t\t\tInternet Monitor cross-account\n\t\t\t\tobservability in the Amazon CloudWatch Internet Monitor User Guide.

" } } }, diff --git a/models/iot-wireless.json b/models/iot-wireless.json index 3cdccfe195..e703a56407 100644 --- a/models/iot-wireless.json +++ b/models/iot-wireless.json @@ -328,7 +328,7 @@ "ClientRequestToken": { "target": "com.amazonaws.iotwireless#ClientRequestToken", "traits": { - "smithy.api#documentation": "

Each resource must have a unique client request token. If you try to create a new\n resource with the same token as a resource that already exists, an exception occurs. If\n you omit this value, AWS SDKs will automatically generate a unique client request.\n

", + "smithy.api#documentation": "

Each resource must have a unique client request token. The client token is used to implement\n idempotency. It ensures that the request completes no more than one time. If you retry a request\n with the same token and the same parameters, the request will complete successfully. However, if\n you try to create a new resource using the same token but different parameters, an HTTP 409\n conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request.\n For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests.

", "smithy.api#idempotencyToken": {} } }, @@ -1231,7 +1231,7 @@ "com.amazonaws.iotwireless#ClientRequestToken": { "type": "string", "traits": { - "smithy.api#documentation": "

Each resource must have a unique client request token. If you try to create a new\n resource with the same token as a resource that already exists, an exception occurs. If\n you omit this value, AWS SDKs will automatically generate a unique client\n request.

", + "smithy.api#documentation": "

Each resource must have a unique client request token. The client token is used to implement\n idempotency. It ensures that the request completes no more than one time. If you retry a request\n with the same token and the same parameters, the request will complete successfully. However, if\n you try to create a new resource using the same token but different parameters, an HTTP 409\n conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request.\n For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests.

", "smithy.api#length": { "min": 1, "max": 64 @@ -1410,7 +1410,7 @@ "ClientRequestToken": { "target": "com.amazonaws.iotwireless#ClientRequestToken", "traits": { - "smithy.api#documentation": "

Each resource must have a unique client request token. If you try to create a new\n resource with the same token as a resource that already exists, an exception occurs. If\n you omit this value, AWS SDKs will automatically generate a unique client request.\n

", + "smithy.api#documentation": "

Each resource must have a unique client request token. The client token is used to implement\n idempotency. It ensures that the request completes no more than one time. If you retry a request\n with the same token and the same parameters, the request will complete successfully. However, if\n you try to create a new resource using the same token but different parameters, an HTTP 409\n conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request.\n For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests.

", "smithy.api#idempotencyToken": {} } } @@ -1497,7 +1497,7 @@ "ClientRequestToken": { "target": "com.amazonaws.iotwireless#ClientRequestToken", "traits": { - "smithy.api#documentation": "

Each resource must have a unique client request token. If you try to create a new\n resource with the same token as a resource that already exists, an exception occurs. If\n you omit this value, AWS SDKs will automatically generate a unique client request.\n

", + "smithy.api#documentation": "

Each resource must have a unique client request token. The client token is used to implement\n idempotency. It ensures that the request completes no more than one time. If you retry a request\n with the same token and the same parameters, the request will complete successfully. However, if\n you try to create a new resource using the same token but different parameters, an HTTP 409\n conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request.\n For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests.

", "smithy.api#idempotencyToken": {} } }, @@ -1682,7 +1682,7 @@ "ClientRequestToken": { "target": "com.amazonaws.iotwireless#ClientRequestToken", "traits": { - "smithy.api#documentation": "

Each resource must have a unique client request token. If you try to create a new\n resource with the same token as a resource that already exists, an exception occurs. If\n you omit this value, AWS SDKs will automatically generate a unique client request.\n

", + "smithy.api#documentation": "

Each resource must have a unique client request token. The client token is used to implement\n idempotency. It ensures that the request completes no more than one time. If you retry a request\n with the same token and the same parameters, the request will complete successfully. However, if\n you try to create a new resource using the same token but different parameters, an HTTP 409\n conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request.\n For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests.

", "smithy.api#idempotencyToken": {} } }, @@ -1873,7 +1873,7 @@ "ClientRequestToken": { "target": "com.amazonaws.iotwireless#ClientRequestToken", "traits": { - "smithy.api#documentation": "

Each resource must have a unique client request token. If you try to create a new\n resource with the same token as a resource that already exists, an exception occurs. If\n you omit this value, AWS SDKs will automatically generate a unique client request.\n

", + "smithy.api#documentation": "

Each resource must have a unique client request token. The client token is used to implement\n idempotency. It ensures that the request completes no more than one time. If you retry a request\n with the same token and the same parameters, the request will complete successfully. However, if\n you try to create a new resource using the same token but different parameters, an HTTP 409\n conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request.\n For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests.

", "smithy.api#idempotencyToken": {} } } @@ -1971,7 +1971,7 @@ "ClientRequestToken": { "target": "com.amazonaws.iotwireless#ClientRequestToken", "traits": { - "smithy.api#documentation": "

Each resource must have a unique client request token. If you try to create a new\n resource with the same token as a resource that already exists, an exception occurs. If\n you omit this value, AWS SDKs will automatically generate a unique client request.\n

", + "smithy.api#documentation": "

Each resource must have a unique client request token. The client token is used to implement\n idempotency. It ensures that the request completes no more than one time. If you retry a request\n with the same token and the same parameters, the request will complete successfully. However, if\n you try to create a new resource using the same token but different parameters, an HTTP 409\n conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request.\n For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests.

", "smithy.api#idempotencyToken": {} } }, @@ -2050,7 +2050,7 @@ } ], "traits": { - "smithy.api#documentation": "

Provisions a wireless gateway.

", + "smithy.api#documentation": "

Provisions a wireless gateway.

\n \n

When provisioning a wireless gateway, you might run into duplication errors\n for the following reasons.

\n
    \n
  • \n

    If you specify a GatewayEui value that already exists.

    \n
  • \n
  • \n

    If you used a ClientRequestToken with the same parameters \n within the last 10 minutes.

    \n
  • \n
\n

To avoid this error, make sure that you use unique identifiers and parameters\n for each request within the specified time period.

\n
", "smithy.api#http": { "method": "POST", "uri": "/wireless-gateways", @@ -2089,7 +2089,7 @@ "ClientRequestToken": { "target": "com.amazonaws.iotwireless#ClientRequestToken", "traits": { - "smithy.api#documentation": "

Each resource must have a unique client request token. If you try to create a new\n resource with the same token as a resource that already exists, an exception occurs. If\n you omit this value, AWS SDKs will automatically generate a unique client request.\n

", + "smithy.api#documentation": "

Each resource must have a unique client request token. The client token is used to implement\n idempotency. It ensures that the request completes no more than one time. If you retry a request\n with the same token and the same parameters, the request will complete successfully. However, if\n you try to create a new resource using the same token but different parameters, an HTTP 409\n conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request.\n For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests.

", "smithy.api#idempotencyToken": {} } } @@ -2218,7 +2218,7 @@ "ClientRequestToken": { "target": "com.amazonaws.iotwireless#ClientRequestToken", "traits": { - "smithy.api#documentation": "

Each resource must have a unique client request token. If you try to create a new\n resource with the same token as a resource that already exists, an exception occurs. If\n you omit this value, AWS SDKs will automatically generate a unique client request.\n

", + "smithy.api#documentation": "

Each resource must have a unique client request token. The client token is used to implement\n idempotency. It ensures that the request completes no more than one time. If you retry a request\n with the same token and the same parameters, the request will complete successfully. However, if\n you try to create a new resource using the same token but different parameters, an HTTP 409\n conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request.\n For more information about idempotency, see Ensuring idempotency in Amazon EC2 API requests.

", "smithy.api#idempotencyToken": {} } }, @@ -2934,7 +2934,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a wireless gateway.

", + "smithy.api#documentation": "

Deletes a wireless gateway.

\n \n

When deleting a wireless gateway, you might run into duplication errors\n for the following reasons.

\n
    \n
  • \n

    If you specify a GatewayEui value that already exists.

    \n
  • \n
  • \n

    If you used a ClientRequestToken with the same parameters \n within the last 10 minutes.

    \n
  • \n
\n

To avoid this error, make sure that you use unique identifiers and parameters\n for each request within the specified time period.

\n
", "smithy.api#http": { "method": "DELETE", "uri": "/wireless-gateways/{Id}", @@ -3895,6 +3895,9 @@ "smithy.api#output": {} } }, + "com.amazonaws.iotwireless#DlAllowed": { + "type": "boolean" + }, "com.amazonaws.iotwireless#DlBucketSize": { "type": "integer", "traits": { @@ -5075,7 +5078,7 @@ } ], "traits": { - "smithy.api#documentation": "

Get the metric configuration status for this account.

", + "smithy.api#documentation": "

Get the metric configuration status for this AWS account.

", "smithy.api#http": { "method": "GET", "uri": "/metric-configuration", @@ -5096,7 +5099,7 @@ "SummaryMetric": { "target": "com.amazonaws.iotwireless#SummaryMetricConfiguration", "traits": { - "smithy.api#documentation": "

The account's configuration status for summary metric aggregation.

" + "smithy.api#documentation": "

The configuration status of the AWS account for summary metric aggregation.

" } } }, @@ -5133,7 +5136,7 @@ } ], "traits": { - "smithy.api#documentation": "

Get metrics.

", + "smithy.api#documentation": "

Get the summary metrics for this AWS account.

", "smithy.api#http": { "method": "POST", "uri": "/metrics", @@ -5147,7 +5150,7 @@ "SummaryMetricQueries": { "target": "com.amazonaws.iotwireless#SummaryMetricQueries", "traits": { - "smithy.api#documentation": "

The list of queries to retrieve summary metrics.

" + "smithy.api#documentation": "

The list of queries to retrieve the summary metrics.

" } } }, @@ -5161,7 +5164,7 @@ "SummaryMetricQueryResults": { "target": "com.amazonaws.iotwireless#SummaryMetricQueryResults", "traits": { - "smithy.api#documentation": "

The list of retrieved metrics.

" + "smithy.api#documentation": "

The list of summary metrics that were retrieved.

" } } }, @@ -7235,6 +7238,15 @@ "smithy.api#pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$" } }, + "com.amazonaws.iotwireless#Id": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } + }, "com.amazonaws.iotwireless#Identifier": { "type": "string", "traits": { @@ -9058,6 +9070,12 @@ "traits": { "smithy.api#documentation": "

Information about the gateways accessed by the device.

" } + }, + "PublicGateways": { + "target": "com.amazonaws.iotwireless#LoRaWANPublicGatewayMetadataList", + "traits": { + "smithy.api#documentation": "

Information about the LoRaWAN public network accessed by the device.

" + } } }, "traits": { @@ -9572,6 +9590,53 @@ "smithy.api#documentation": "

The LoRaWAN information used with the multicast session.

" } }, + "com.amazonaws.iotwireless#LoRaWANPublicGatewayMetadata": { + "type": "structure", + "members": { + "ProviderNetId": { + "target": "com.amazonaws.iotwireless#ProviderNetId", + "traits": { + "smithy.api#documentation": "

The ID of the LoRaWAN public network provider.

" + } + }, + "Id": { + "target": "com.amazonaws.iotwireless#Id", + "traits": { + "smithy.api#documentation": "

The ID of the gateways that are operated by the network provider.

" + } + }, + "Rssi": { + "target": "com.amazonaws.iotwireless#Double", + "traits": { + "smithy.api#documentation": "

The RSSI (received signal strength indicator) value.

" + } + }, + "Snr": { + "target": "com.amazonaws.iotwireless#Double", + "traits": { + "smithy.api#documentation": "

The SNR (signal to noise ratio) value.

" + } + }, + "RfRegion": { + "target": "com.amazonaws.iotwireless#RfRegion" + }, + "DlAllowed": { + "target": "com.amazonaws.iotwireless#DlAllowed", + "traits": { + "smithy.api#documentation": "

Boolean that indicates whether downlink is allowed using the network.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

LoRaWAN public gateway metadata.

" + } + }, + "com.amazonaws.iotwireless#LoRaWANPublicGatewayMetadataList": { + "type": "list", + "member": { + "target": "com.amazonaws.iotwireless#LoRaWANPublicGatewayMetadata" + } + }, "com.amazonaws.iotwireless#LoRaWANSendDataToDevice": { "type": "structure", "members": { @@ -10326,37 +10391,37 @@ "Min": { "target": "com.amazonaws.iotwireless#Min", "traits": { - "smithy.api#documentation": "

The minimum of the values of the all data points collected during the period.

" + "smithy.api#documentation": "

The minimum of the values of all data points collected during the aggregation\n period.

" } }, "Max": { "target": "com.amazonaws.iotwireless#Max", "traits": { - "smithy.api#documentation": "

The maximum of the values of the all data points collected during the period.

" + "smithy.api#documentation": "

The maximum of the values of all the data points collected during the aggregation\n period.

" } }, "Sum": { "target": "com.amazonaws.iotwireless#Sum", "traits": { - "smithy.api#documentation": "

The sum of the values of the all data points collected during the period.

" + "smithy.api#documentation": "

The sum of the values of all data points collected during the aggregation\n period.

" } }, "Avg": { "target": "com.amazonaws.iotwireless#Avg", "traits": { - "smithy.api#documentation": "

The average of the values of the all data points collected during the period.

" + "smithy.api#documentation": "

The average of the values of all data points collected during the aggregation\n period.

" } }, "Std": { "target": "com.amazonaws.iotwireless#Std", "traits": { - "smithy.api#documentation": "

The standard deviation of the values of the all data points collected during the period.

" + "smithy.api#documentation": "

The standard deviation of the values of all data points collected during the\n aggregation period.

" } }, "P90": { "target": "com.amazonaws.iotwireless#P90", "traits": { - "smithy.api#documentation": "

The 90th percentile of the values of the all data points collected during the period.

" + "smithy.api#documentation": "

The 90th percentile of the values of all data points collected during the aggregation\n period.

" } } }, @@ -10426,7 +10491,7 @@ } }, "traits": { - "smithy.api#documentation": "

\n FrameInfo of your multicast group resources for the trace content. Use\n FrameInfo to debug the multicast communication between your multicast groups and the network server.

" + "smithy.api#documentation": "

\n FrameInfo of your multicast group resources for the trace content. Use\n FrameInfo to debug the multicast communication between your multicast groups and the\n network server.

" } }, "com.amazonaws.iotwireless#MulticastGroup": { @@ -10715,13 +10780,13 @@ "AppEui": { "target": "com.amazonaws.iotwireless#AppEui", "traits": { - "smithy.api#documentation": "

The AppEUI value. You specify this value when using LoRaWAN versions v1.0.2 or v1.0.3.

" + "smithy.api#documentation": "

The AppEUI value. You specify this value when using LoRaWAN versions v1.0.2 or\n v1.0.3.

" } }, "JoinEui": { "target": "com.amazonaws.iotwireless#JoinEui", "traits": { - "smithy.api#documentation": "

The JoinEUI value. You specify this value instead of the AppEUI when using LoRaWAN \n version v1.0.4.

" + "smithy.api#documentation": "

The JoinEUI value. You specify this value instead of the AppEUI when using LoRaWAN\n version v1.0.4.

" } }, "GenAppKey": { @@ -11126,6 +11191,15 @@ "target": "com.amazonaws.iotwireless#CertificateList" } }, + "com.amazonaws.iotwireless#ProviderNetId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } + }, "com.amazonaws.iotwireless#ProximityEventConfiguration": { "type": "structure", "members": { @@ -12879,12 +12953,12 @@ "Status": { "target": "com.amazonaws.iotwireless#SummaryMetricConfigurationStatus", "traits": { - "smithy.api#documentation": "

The configuration of summary metric.

" + "smithy.api#documentation": "

The status of the configuration of summary metrics.

" } } }, "traits": { - "smithy.api#documentation": "

The configuration of summary metric.

" + "smithy.api#documentation": "

The configuration of summary metrics.

" } }, "com.amazonaws.iotwireless#SummaryMetricConfigurationStatus": { @@ -12916,7 +12990,7 @@ "QueryId": { "target": "com.amazonaws.iotwireless#MetricQueryId", "traits": { - "smithy.api#documentation": "

The id of the query.

" + "smithy.api#documentation": "

The id of the summary metric query.

" } }, "MetricName": { @@ -12928,30 +13002,30 @@ "Dimensions": { "target": "com.amazonaws.iotwireless#Dimensions", "traits": { - "smithy.api#documentation": "

The dimensions of the metric.

" + "smithy.api#documentation": "

The dimensions of the summary metric.

" } }, "AggregationPeriod": { "target": "com.amazonaws.iotwireless#AggregationPeriod", "traits": { - "smithy.api#documentation": "

The aggregation period of the metric.

" + "smithy.api#documentation": "

The aggregation period of the summary metric.

" } }, "StartTimestamp": { "target": "com.amazonaws.iotwireless#MetricQueryStartTimestamp", "traits": { - "smithy.api#documentation": "

The start timestamp for summary metric query.

" + "smithy.api#documentation": "

The start timestamp for the summary metric query.

" } }, "EndTimestamp": { "target": "com.amazonaws.iotwireless#MetricQueryEndTimestamp", "traits": { - "smithy.api#documentation": "

The end timestamp for summary metric query.

" + "smithy.api#documentation": "

The end timestamp for the summary metric query.

" } } }, "traits": { - "smithy.api#documentation": "

The metric query object.

" + "smithy.api#documentation": "

The summary metric query object.

" } }, "com.amazonaws.iotwireless#SummaryMetricQueryResult": { @@ -12960,25 +13034,25 @@ "QueryId": { "target": "com.amazonaws.iotwireless#MetricQueryId", "traits": { - "smithy.api#documentation": "

The id of the query.

" + "smithy.api#documentation": "

The ID of the summary metric results query operation.

" } }, "QueryStatus": { "target": "com.amazonaws.iotwireless#MetricQueryStatus", "traits": { - "smithy.api#documentation": "

The status of the metric query.

" + "smithy.api#documentation": "

The status of the summary metric query result.

" } }, "Error": { "target": "com.amazonaws.iotwireless#MetricQueryError", "traits": { - "smithy.api#documentation": "

The error message for the summary metric query.

" + "smithy.api#documentation": "

The error message for the summary metric query result.

" } }, "MetricName": { "target": "com.amazonaws.iotwireless#MetricName", "traits": { - "smithy.api#documentation": "

The name of the metric.

" + "smithy.api#documentation": "

The name of the summary metric query result.

" } }, "Dimensions": { @@ -12996,13 +13070,13 @@ "StartTimestamp": { "target": "com.amazonaws.iotwireless#MetricQueryStartTimestamp", "traits": { - "smithy.api#documentation": "

The start timestamp for summary metric query.

" + "smithy.api#documentation": "

The start timestamp for the summary metric query.

" } }, "EndTimestamp": { "target": "com.amazonaws.iotwireless#MetricQueryEndTimestamp", "traits": { - "smithy.api#documentation": "

The end timestamp for summary metric query.

" + "smithy.api#documentation": "

The end timestamp for the summary metric query.

" } }, "Timestamps": { @@ -13014,7 +13088,7 @@ "Values": { "target": "com.amazonaws.iotwireless#MetricQueryValues", "traits": { - "smithy.api#documentation": "

The list of aggregated metrics.

" + "smithy.api#documentation": "

The list of aggregated summary metric query results.

" } }, "Unit": { @@ -13025,7 +13099,7 @@ } }, "traits": { - "smithy.api#documentation": "

The result of metrics aggregation operation.

" + "smithy.api#documentation": "

The result of the summary metrics aggregation operation.

" } }, "com.amazonaws.iotwireless#SummaryMetricQueryResults": { @@ -14092,7 +14166,7 @@ } ], "traits": { - "smithy.api#documentation": "

Update the metric configuration.

", + "smithy.api#documentation": "

Update the summary metric configuration.

", "smithy.api#http": { "method": "PUT", "uri": "/metric-configuration", @@ -14267,13 +14341,13 @@ "MulticastGroupsToAdd": { "target": "com.amazonaws.iotwireless#NetworkAnalyzerMulticastGroupList", "traits": { - "smithy.api#documentation": "

Multicast group resources to add to the network analyzer configuration. Provide the\n MulticastGroupId of the resource to add in the input array.

" + "smithy.api#documentation": "

Multicast group resources to add to the network analyzer configuration. Provide the\n MulticastGroupId of the resource to add in the input array.

" } }, "MulticastGroupsToRemove": { "target": "com.amazonaws.iotwireless#NetworkAnalyzerMulticastGroupList", "traits": { - "smithy.api#documentation": "

Multicast group resources to remove from the network analyzer configuration. Provide the\n MulticastGroupId of the resources to remove in the input array.

" + "smithy.api#documentation": "

Multicast group resources to remove from the network analyzer configuration. Provide\n the MulticastGroupId of the resources to remove in the input array.

" } } }, diff --git a/models/iotfleethub.json b/models/iotfleethub.json index 0fc1ba33e8..b336891cfd 100644 --- a/models/iotfleethub.json +++ b/models/iotfleethub.json @@ -70,7 +70,7 @@ "name": "iotfleethub" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

With Fleet Hub for AWS IoT Device Management you can build stand-alone web applications for monitoring the health of your device fleets.

\n \n

Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.

\n
", + "smithy.api#documentation": "

With Fleet Hub for IoT Device Management you can build stand-alone web applications for monitoring the health of your device fleets.

", "smithy.api#title": "AWS IoT Fleet Hub", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -114,7 +114,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -157,7 +156,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -170,7 +170,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -184,7 +183,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -207,7 +205,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -242,7 +239,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -253,14 +249,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -274,14 +272,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -290,11 +286,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -305,14 +301,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -326,7 +324,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -346,7 +343,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -357,14 +353,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -375,9 +373,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -990,7 +990,7 @@ } }, "traits": { - "smithy.api#documentation": "

A summary of information about a AWS IoT Device Management web application.

\n \n

Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.

\n
" + "smithy.api#documentation": "

A summary of information about a Fleet Hub for IoT Device Management web application.

" } }, "com.amazonaws.iotfleethub#Arn": { @@ -1049,7 +1049,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a Fleet Hub for AWS IoT Device Management web application.

\n \n

Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.

\n
", + "smithy.api#documentation": "

Creates a Fleet Hub for IoT Device Management web application.

\n

When creating a Fleet Hub application, you must create an organization instance of\n IAM Identity Center if you don't already have one. The Fleet Hub application you create must also be in\n the same Amazon Web Services Region of the organization instance of IAM Identity Center. For more information see Enabling\n IAM Identity Center and Organization instances of IAM Identity Center.

", "smithy.api#http": { "method": "POST", "uri": "/applications", @@ -1083,7 +1083,7 @@ "roleArn": { "target": "com.amazonaws.iotfleethub#Arn", "traits": { - "smithy.api#documentation": "

The ARN of the role that the web application assumes when it interacts with AWS IoT Core.

\n \n

The name of the role must be in the form AWSIotFleetHub_random_string\n .

\n
", + "smithy.api#documentation": "

The ARN of the role that the web application assumes when it interacts with Amazon Web Services IoT Core.

\n \n

The name of the role must be in the form AWSIotFleetHub_random_string\n .

\n
", "smithy.api#required": {} } }, @@ -1143,7 +1143,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a Fleet Hub for AWS IoT Device Management web application.

\n \n

Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.

\n
", + "smithy.api#documentation": "

Deletes a Fleet Hub for IoT Device Management web application.

", "smithy.api#http": { "method": "DELETE", "uri": "/applications/{applicationId}", @@ -1205,7 +1205,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about a Fleet Hub for AWS IoT Device Management web application.

\n \n

Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.

\n
", + "smithy.api#documentation": "

Gets information about a Fleet Hub for IoT Device Management web application.

", "smithy.api#http": { "method": "GET", "uri": "/applications/{applicationId}", @@ -1292,7 +1292,7 @@ "roleArn": { "target": "com.amazonaws.iotfleethub#Arn", "traits": { - "smithy.api#documentation": "

The ARN of the role that the web application assumes when it interacts with AWS IoT Core.

", + "smithy.api#documentation": "

The ARN of the role that the web application assumes when it interacts with Amazon Web Services IoT Core.

", "smithy.api#required": {} } }, @@ -1305,7 +1305,7 @@ "errorMessage": { "target": "com.amazonaws.iotfleethub#ErrorMessage", "traits": { - "smithy.api#documentation": "

A message indicating why the DescribeApplication API failed.

" + "smithy.api#documentation": "

A message that explains any failures included in the applicationState response field. This message \n explains failures in the CreateApplication and DeleteApplication actions.

" } }, "tags": { @@ -1401,7 +1401,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a list of Fleet Hub for AWS IoT Device Management web applications for the current account.

\n \n

Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.

\n
", + "smithy.api#documentation": "

Gets a list of Fleet Hub for IoT Device Management web applications for the current account.

", "smithy.api#http": { "method": "GET", "uri": "/applications", @@ -1469,7 +1469,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the tags for the specified resource.

\n \n

Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.

\n
", + "smithy.api#documentation": "

Lists the tags for the specified resource.

", "smithy.api#http": { "method": "GET", "uri": "/tags/{resourceArn}", @@ -1597,7 +1597,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds to or modifies the tags of the specified resource. Tags are metadata which can be used to manage a resource.

\n \n

Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.

\n
", + "smithy.api#documentation": "

Adds to or modifies the tags of the specified resource. Tags are metadata which can be used to manage a resource.

", "smithy.api#http": { "method": "POST", "uri": "/tags/{resourceArn}", @@ -1683,7 +1683,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes the specified tags (metadata) from the resource.

\n \n

Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.

\n
", + "smithy.api#documentation": "

Removes the specified tags (metadata) from the resource.

", "smithy.api#http": { "method": "DELETE", "uri": "/tags/{resourceArn}", @@ -1748,7 +1748,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates information about a Fleet Hub for a AWS IoT Device Management web application.

\n \n

Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.

\n
", + "smithy.api#documentation": "

Updates information about a Fleet Hub for IoT Device Management web application.

", "smithy.api#http": { "method": "PATCH", "uri": "/applications/{applicationId}", diff --git a/models/ivs-realtime.json b/models/ivs-realtime.json index 48f09f35dc..8f144a2e2c 100644 --- a/models/ivs-realtime.json +++ b/models/ivs-realtime.json @@ -828,7 +828,7 @@ "min": 1, "max": 128 }, - "smithy.api#pattern": "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$" + "smithy.api#pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$" } }, "com.amazonaws.ivsrealtime#ChannelDestinationConfiguration": { @@ -3731,7 +3731,7 @@ "min": 1, "max": 128 }, - "smithy.api#pattern": "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$" + "smithy.api#pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$" } }, "com.amazonaws.ivsrealtime#ResourceNotFoundException": { @@ -4407,6 +4407,9 @@ { "target": "com.amazonaws.ivsrealtime#AccessDeniedException" }, + { + "target": "com.amazonaws.ivsrealtime#ConflictException" + }, { "target": "com.amazonaws.ivsrealtime#PendingVerification" }, diff --git a/models/ivs.json b/models/ivs.json index 94571f6d47..3f00894941 100644 --- a/models/ivs.json +++ b/models/ivs.json @@ -908,7 +908,7 @@ "arn": { "target": "com.amazonaws.ivs#ResourceArn", "traits": { - "smithy.api#documentation": "

Channel ARN.

" + "smithy.api#documentation": "

ARN of an IVS resource; e.g., channel.

" } }, "code": { @@ -1262,7 +1262,7 @@ "min": 1, "max": 128 }, - "smithy.api#pattern": "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$" + "smithy.api#pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$" } }, "com.amazonaws.ivs#ChannelArnList": { @@ -3249,7 +3249,7 @@ "min": 1, "max": 128 }, - "smithy.api#pattern": "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:playback-key/[a-zA-Z0-9-]+$" + "smithy.api#pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:playback-key/[a-zA-Z0-9-]+$" } }, "com.amazonaws.ivs#PlaybackKeyPairFingerprint": { @@ -3755,7 +3755,7 @@ "min": 1, "max": 128 }, - "smithy.api#pattern": "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$" + "smithy.api#pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$" } }, "com.amazonaws.ivs#ResourceNotFoundException": { @@ -4130,7 +4130,7 @@ "min": 1, "max": 128 }, - "smithy.api#pattern": "^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:stream-key/[a-zA-Z0-9-]+$" + "smithy.api#pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:stream-key/[a-zA-Z0-9-]+$" } }, "com.amazonaws.ivs#StreamKeyArnList": { diff --git a/models/kms.json b/models/kms.json index 0534f4c3ee..e6e77c9ae7 100644 --- a/models/kms.json +++ b/models/kms.json @@ -336,6 +336,23 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.kms#ConflictException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.kms#ErrorMessageType" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ConflictException", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

The request was rejected because an automatic rotation of this key is currently in \n progress or scheduled to begin within the next 20 minutes.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, "com.amazonaws.kms#ConnectCustomKeyStore": { "type": "operation", "input": { @@ -1819,7 +1836,7 @@ "target": "com.amazonaws.kms#BooleanType", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in thisresponse to the Marker parameter in a\n subsequent request.

" + "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in this response to the Marker parameter in a\n subsequent request.

" } } }, @@ -2149,7 +2166,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disables automatic\n rotation of the key material of the specified symmetric encryption KMS key.

\n

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

\n

You can enable (EnableKeyRotation) and disable automatic rotation of the\n key material in customer managed KMS keys. Key material rotation of Amazon Web Services managed KMS keys is not\n configurable. KMS always rotates the key material for every year. Rotation of Amazon Web Services owned KMS\n keys varies.

\n \n

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

\n
\n

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

\n

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

\n

\n Required permissions: kms:DisableKeyRotation (key policy)

\n

\n Related operations:\n

\n \n

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

", + "smithy.api#documentation": "

Disables automatic\n rotation of the key material of the specified symmetric encryption KMS key.

\n

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

\n

You can enable (EnableKeyRotation) and disable automatic rotation of the\n key material in customer managed KMS keys. Key material rotation of Amazon Web Services managed KMS keys is not\n configurable. KMS always rotates the key material for every year. Rotation of Amazon Web Services owned KMS\n keys varies.

\n \n

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

\n
\n

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

\n

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

\n

\n Required permissions: kms:DisableKeyRotation (key policy)

\n

\n Related operations:\n

\n \n

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

", "smithy.api#examples": [ { "title": "To disable automatic rotation of key material", @@ -2353,13 +2370,14 @@ } ], "traits": { - "smithy.api#documentation": "

Enables automatic rotation\n of the key material of the specified symmetric encryption KMS key.

\n

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

\n

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

\n

You cannot enable or disable automatic rotation Amazon Web Services managed KMS keys. KMS\n always rotates the key material of Amazon Web Services managed keys every year. Rotation of Amazon Web Services owned KMS\n keys varies.

\n \n

In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three\n years (approximately 1,095 days) to every year (approximately 365 days).

\n

New Amazon Web Services managed keys are automatically rotated one year after they are created, and\n approximately every year thereafter.

\n

Existing Amazon Web Services managed keys are automatically rotated one year after their most recent\n rotation, and every year thereafter.

\n
\n

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

\n

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

\n

\n Required permissions: kms:EnableKeyRotation (key policy)

\n

\n Related operations:\n

\n \n

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

", + "smithy.api#documentation": "

Enables automatic rotation\n of the key material of the specified symmetric encryption KMS key.

\n

By default, when you enable automatic rotation of a customer managed KMS key, KMS\n rotates the key material of the KMS key one year (approximately 365 days) from the enable date\n and every year thereafter. You can use the optional RotationPeriodInDays\n parameter to specify a custom rotation period when you enable key rotation, or you can use \n RotationPeriodInDays to modify the rotation period of a key that you previously \n enabled automatic key rotation on.

\n

You can monitor rotation of the key material\n for your KMS keys in CloudTrail and Amazon CloudWatch. To disable rotation of the key\n material in a customer managed KMS key, use the DisableKeyRotation\n operation. You can use the GetKeyRotationStatus operation to identify any in progress \n rotations. You can use the ListKeyRotations operation to view the details of\n completed rotations.

\n

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

\n

You cannot enable or disable automatic rotation of Amazon Web Services managed KMS keys. KMS\n always rotates the key material of Amazon Web Services managed keys every year. Rotation of Amazon Web Services owned KMS\n keys is managed by the Amazon Web Services service that owns the key.

\n \n

In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three\n years (approximately 1,095 days) to every year (approximately 365 days).

\n

New Amazon Web Services managed keys are automatically rotated one year after they are created, and\n approximately every year thereafter.

\n

Existing Amazon Web Services managed keys are automatically rotated one year after their most recent\n rotation, and every year thereafter.

\n
\n

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

\n

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

\n

\n Required permissions: kms:EnableKeyRotation (key policy)

\n

\n Related operations:\n

\n \n

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

", "smithy.api#examples": [ { "title": "To enable automatic rotation of key material", - "documentation": "The following example enables automatic annual rotation of the key material for the specified KMS key.", + "documentation": "The following example enables automatic rotation with a rotation period of 365 days for the specified KMS key.", "input": { - "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "RotationPeriodInDays": 365 } } ] @@ -2374,6 +2392,12 @@ "smithy.api#documentation": "

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

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", "smithy.api#required": {} } + }, + "RotationPeriodInDays": { + "target": "com.amazonaws.kms#RotationPeriodInDaysType", + "traits": { + "smithy.api#documentation": "

Use this parameter to specify a custom period of time between each rotation date. If no\n value is specified, the default value is 365 days.

\n

The rotation period defines the number of days after you enable automatic key rotation\n that KMS will rotate your key material, and the number of days between each automatic\n rotation thereafter.

\n

You can use the \n kms:RotationPeriodInDays\n condition key to further constrain the \n values that principals can specify in the RotationPeriodInDays parameter.

\n

" + } } }, "traits": { @@ -3471,19 +3495,7 @@ } ], "traits": { - "smithy.api#documentation": "

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

\n

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

\n

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

\n

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

\n \n

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

\n
\n

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

\n
    \n
  • \n

    Disabled: The key rotation status does not change when you disable a KMS key. However,\n while the KMS key is disabled, KMS does not rotate the key material. When you re-enable\n the KMS key, rotation resumes. If the key material in the re-enabled KMS key hasn't been\n rotated in one year, KMS rotates it immediately, and every year thereafter. If it's been\n less than a year since the key material in the re-enabled KMS key was rotated, the KMS key\n resumes its prior rotation schedule.

    \n
  • \n
  • \n

    Pending deletion: While a KMS key is pending deletion, its key rotation status is\n false and KMS does not rotate the key material. If you cancel the\n deletion, the original key rotation status returns to true.

    \n
  • \n
\n

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

\n

\n Required permissions: kms:GetKeyRotationStatus (key policy)

\n

\n Related operations:\n

\n \n

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

", - "smithy.api#examples": [ - { - "title": "To retrieve the rotation status for a KMS key", - "documentation": "The following example retrieves the status of automatic annual rotation of the key material for the specified KMS key.", - "input": { - "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" - }, - "output": { - "KeyRotationEnabled": true - } - } - ] + "smithy.api#documentation": "

Provides detailed information about the rotation status for a KMS key, including \n whether automatic rotation of the key material is enabled for the specified KMS key, the\n rotation period, and the next scheduled\n rotation date.

\n

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

\n

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

\n

You can perform on-demand (RotateKeyOnDemand) rotation of the \n key material in customer managed KMS keys, regardless of whether or not automatic key rotation is enabled. \n You can use GetKeyRotationStatus to identify the date and time that an in progress on-demand rotation\n was initiated. You can use ListKeyRotations to view the details of completed rotations.

\n \n

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

\n
\n

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

\n
    \n
  • \n

    Disabled: The key rotation status does not change when you disable a KMS key. However,\n while the KMS key is disabled, KMS does not rotate the key material. When you re-enable\n the KMS key, rotation resumes. If the key material in the re-enabled KMS key hasn't been\n rotated in one year, KMS rotates it immediately, and every year thereafter. If it's been\n less than a year since the key material in the re-enabled KMS key was rotated, the KMS key\n resumes its prior rotation schedule.

    \n
  • \n
  • \n

    Pending deletion: While a KMS key is pending deletion, its key rotation status is\n false and KMS does not rotate the key material. If you cancel the\n deletion, the original key rotation status returns to true.

    \n
  • \n
\n

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

\n

\n Required permissions: kms:GetKeyRotationStatus (key policy)

\n

\n Related operations:\n

\n \n

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

" } }, "com.amazonaws.kms#GetKeyRotationStatusRequest": { @@ -3510,6 +3522,30 @@ "smithy.api#default": false, "smithy.api#documentation": "

A Boolean value that specifies whether key rotation is enabled.

" } + }, + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the specified symmetric encryption KMS key.

" + } + }, + "RotationPeriodInDays": { + "target": "com.amazonaws.kms#RotationPeriodInDaysType", + "traits": { + "smithy.api#documentation": "

The number of days between each automatic rotation. The default value is 365 days.

" + } + }, + "NextRotationDate": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

The next date that KMS will automatically rotate the key material.

" + } + }, + "OnDemandRotationStartDate": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

Identifies the date and time that an in progress on-demand rotation was initiated.

\n

The KMS API follows an eventual consistency model\n due to the distributed nature of the system. As a result, there might be a slight delay\n between initiating on-demand key rotation and the rotation's completion. Once the on-demand\n rotation is complete, use ListKeyRotations to view the details of the\n on-demand rotation.

" + } } }, "traits": { @@ -4903,7 +4939,7 @@ "target": "com.amazonaws.kms#BooleanType", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in thisresponse to the Marker parameter in a\n subsequent request.

" + "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in this response to the Marker parameter in a\n subsequent request.

" } } }, @@ -5010,7 +5046,7 @@ "target": "com.amazonaws.kms#BooleanType", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in thisresponse to the Marker parameter in a\n subsequent request.

" + "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in this response to the Marker parameter in a\n subsequent request.

" } } } @@ -5111,7 +5147,99 @@ "target": "com.amazonaws.kms#BooleanType", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in thisresponse to the Marker parameter in a\n subsequent request.

" + "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in this response to the Marker parameter in a\n subsequent request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#ListKeyRotations": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#ListKeyRotationsRequest" + }, + "output": { + "target": "com.amazonaws.kms#ListKeyRotationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#InvalidMarkerException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about all completed key material rotations for the specified KMS\n key.

\n

You must specify the KMS key in all requests. You can refine the key rotations list by\n limiting the number of rotations returned.

\n

For detailed information about automatic and on-demand key rotations, see Rotating KMS keys in the\n Key Management Service Developer Guide.

\n

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

\n

\n Required permissions: kms:ListKeyRotations (key policy)

\n

\n Related operations:\n

\n \n

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

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "items": "Rotations", + "pageSize": "Limit" + } + } + }, + "com.amazonaws.kms#ListKeyRotationsRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Gets the key rotations for the specified KMS key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + }, + "Limit": { + "target": "com.amazonaws.kms#LimitType", + "traits": { + "smithy.api#documentation": "

Use this parameter to specify the maximum number of items to return. When this\n value is present, KMS does not return more than the specified number of items, but it might\n return fewer.

\n

This value is optional. If you include a value, it must be between\n 1 and 1000, inclusive. If you do not include a value, it defaults to 100.

" + } + }, + "Marker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

Use this parameter in a subsequent request after you receive a response with\n truncated results. Set it to the value of NextMarker from the truncated response\n you just received.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#ListKeyRotationsResponse": { + "type": "structure", + "members": { + "Rotations": { + "target": "com.amazonaws.kms#RotationsList", + "traits": { + "smithy.api#documentation": "

A list of completed key material rotations.

" + } + }, + "NextMarker": { + "target": "com.amazonaws.kms#MarkerType", + "traits": { + "smithy.api#documentation": "

When Truncated is true, this element is present and contains the\n value to use for the Marker parameter in a subsequent request.

" + } + }, + "Truncated": { + "target": "com.amazonaws.kms#BooleanType", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in this response to the Marker parameter in a\n subsequent request.

" } } }, @@ -5226,7 +5354,7 @@ "target": "com.amazonaws.kms#BooleanType", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in thisresponse to the Marker parameter in a\n subsequent request.

" + "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in this response to the Marker parameter in a\n subsequent request.

" } } }, @@ -5338,7 +5466,7 @@ "target": "com.amazonaws.kms#BooleanType", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in thisresponse to the Marker parameter in a\n subsequent request.

" + "smithy.api#documentation": "

A flag that indicates whether there are more items in the list. When this\n value is true, the list in this response is truncated. To get more items, pass the value of\n the NextMarker element in this response to the Marker parameter in a\n subsequent request.

" } } }, @@ -6270,6 +6398,146 @@ "smithy.api#input": {} } }, + "com.amazonaws.kms#RotateKeyOnDemand": { + "type": "operation", + "input": { + "target": "com.amazonaws.kms#RotateKeyOnDemandRequest" + }, + "output": { + "target": "com.amazonaws.kms#RotateKeyOnDemandResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kms#ConflictException" + }, + { + "target": "com.amazonaws.kms#DependencyTimeoutException" + }, + { + "target": "com.amazonaws.kms#DisabledException" + }, + { + "target": "com.amazonaws.kms#InvalidArnException" + }, + { + "target": "com.amazonaws.kms#KMSInternalException" + }, + { + "target": "com.amazonaws.kms#KMSInvalidStateException" + }, + { + "target": "com.amazonaws.kms#LimitExceededException" + }, + { + "target": "com.amazonaws.kms#NotFoundException" + }, + { + "target": "com.amazonaws.kms#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

Immediately initiates rotation of the key material of the specified symmetric encryption\n KMS key.

\n

You can perform on-demand rotation\n of the key material in customer managed KMS keys, \n regardless of whether or not automatic key rotation is enabled.\n On-demand rotations do not change existing automatic rotation schedules. For example, consider a KMS key that\n has automatic key rotation enabled with a rotation period of 730 days. If the key is scheduled to \n automatically rotate on April 14, 2024, and you perform an on-demand rotation on April 10, 2024, the key will automatically rotate,\n as scheduled, on April 14, 2024 and every 730 days thereafter.

\n \n

You can perform on-demand key rotation a maximum of 10 times\n per KMS key. You can use the KMS console \n to view the number of remaining on-demand rotations available for a KMS key.

\n
\n

You can use GetKeyRotationStatus to identify any in progress \n on-demand rotations. You can use ListKeyRotations to identify the date that\n completed on-demand rotations were performed. You can monitor rotation of the key material \n for your KMS keys in CloudTrail and Amazon CloudWatch.

\n

On-demand key rotation is supported only on symmetric encryption KMS keys.\n You cannot perform on-demand rotation of asymmetric KMS keys,\n HMAC KMS keys, \n KMS keys with imported key material, or KMS keys in a custom key store. To perform\n on-demand rotation of a set of related multi-Region keys,\n invoke the on-demand rotation on the primary key.

\n

You cannot initiate on-demand rotation of Amazon Web Services managed KMS keys. KMS\n always rotates the key material of Amazon Web Services managed keys every year. Rotation of Amazon Web Services owned KMS\n keys is managed by the Amazon Web Services service that owns the key.

\n

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

\n

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

\n

\n Required permissions: kms:RotateKeyOnDemand (key policy)

\n

\n Related operations:\n

\n \n

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

", + "smithy.api#examples": [ + { + "title": "To perform on-demand rotation of key material", + "documentation": "The following example immediately initiates rotation of the key material for the specified KMS key.", + "input": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + }, + "output": { + "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" + } + } + ] + } + }, + "com.amazonaws.kms#RotateKeyOnDemandRequest": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies a symmetric encryption KMS key. You cannot perform on-demand rotation of asymmetric KMS keys,\n HMAC KMS keys, \n KMS keys with imported key material, or KMS keys in a custom key store. To perform\n on-demand rotation of a set of related multi-Region keys,\n invoke the on-demand rotation on the primary key.

\n

Specify the key ID or key ARN of the KMS key.

\n

For example:

\n
    \n
  • \n

    Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
  • \n

    Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

    \n
  • \n
\n

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.kms#RotateKeyOnDemandResponse": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Identifies the symmetric encryption KMS key that you initiated on-demand rotation\n on.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.kms#RotationPeriodInDaysType": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 90, + "max": 2560 + } + } + }, + "com.amazonaws.kms#RotationType": { + "type": "enum", + "members": { + "AUTOMATIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTOMATIC" + } + }, + "ON_DEMAND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ON_DEMAND" + } + } + } + }, + "com.amazonaws.kms#RotationsList": { + "type": "list", + "member": { + "target": "com.amazonaws.kms#RotationsListEntry" + } + }, + "com.amazonaws.kms#RotationsListEntry": { + "type": "structure", + "members": { + "KeyId": { + "target": "com.amazonaws.kms#KeyIdType", + "traits": { + "smithy.api#documentation": "

Unique identifier of the key.

" + } + }, + "RotationDate": { + "target": "com.amazonaws.kms#DateType", + "traits": { + "smithy.api#documentation": "

Date and time that the key material rotation completed. Formatted as Unix time.

" + } + }, + "RotationType": { + "target": "com.amazonaws.kms#RotationType", + "traits": { + "smithy.api#documentation": "

Identifies whether the key material rotation was a scheduled automatic rotation or an on-demand rotation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about completed key material rotations.

" + } + }, "com.amazonaws.kms#ScheduleKeyDeletion": { "type": "operation", "input": { @@ -6807,6 +7075,9 @@ { "target": "com.amazonaws.kms#ListKeyPolicies" }, + { + "target": "com.amazonaws.kms#ListKeyRotations" + }, { "target": "com.amazonaws.kms#ListKeys" }, @@ -6831,6 +7102,9 @@ { "target": "com.amazonaws.kms#RevokeGrant" }, + { + "target": "com.amazonaws.kms#RotateKeyOnDemand" + }, { "target": "com.amazonaws.kms#ScheduleKeyDeletion" }, @@ -9132,7 +9406,7 @@ "code": "XksProxyUriEndpointInUseException", "httpResponseCode": 400 }, - "smithy.api#documentation": "

The request was rejected because the XksProxyUriEndpoint is already\n associated with another external key store in this Amazon Web Services Region. To identify the cause,\n see the error message that accompanies the exception.

", + "smithy.api#documentation": "

The request was rejected because the XksProxyUriEndpoint is already\n associated with another external key store in this Amazon Web Services Region. To identify the cause, see\n the error message that accompanies the exception.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } diff --git a/models/lakeformation.json b/models/lakeformation.json index f9f73a60ea..00919566a0 100644 --- a/models/lakeformation.json +++ b/models/lakeformation.json @@ -2174,6 +2174,12 @@ "traits": { "smithy.api#documentation": "

A list of the account IDs of Amazon Web Services accounts of third-party applications\n that are allowed to access data managed by Lake Formation.

" } + }, + "ShareRecipients": { + "target": "com.amazonaws.lakeformation#DataLakePrincipalList", + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services account IDs and/or Amazon Web Services organization/organizational unit ARNs\n that are allowed to access data managed by Lake Formation.

\n

If the ShareRecipients list includes valid values, a resource share is created with the principals you want to have access to the resources.

\n

If the ShareRecipients value is null or the list is empty, no resource share is created.

" + } } }, "traits": { @@ -2186,7 +2192,7 @@ "ApplicationArn": { "target": "com.amazonaws.lakeformation#ApplicationArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the integrated application.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Lake Formation application integrated with IAM Identity Center.

" } } }, @@ -3070,7 +3076,7 @@ "ApplicationArn": { "target": "com.amazonaws.lakeformation#ApplicationArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the integrated application.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Lake Formation application integrated with IAM Identity Center.

" } }, "ExternalFiltering": { @@ -3078,6 +3084,18 @@ "traits": { "smithy.api#documentation": "

Indicates if external filtering is enabled.

" } + }, + "ShareRecipients": { + "target": "com.amazonaws.lakeformation#DataLakePrincipalList", + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services account IDs or Amazon Web Services organization/organizational unit ARNs that\n are allowed to access data managed by Lake Formation.

\n

If the ShareRecipients list includes valid values, a resource share is created with the principals you want to have access to the resources as the ShareRecipients.

\n

If the ShareRecipients value is null or the list is empty, no resource share is created.

" + } + }, + "ResourceShare": { + "target": "com.amazonaws.lakeformation#RAMResourceShareArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the RAM share.

" + } } }, "traits": { @@ -7778,6 +7796,12 @@ "smithy.api#documentation": "

The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the\n persistent metadata store. It contains database definitions, table definitions, view\n definitions, and other control information to manage your Lake Formation\n environment.

" } }, + "ShareRecipients": { + "target": "com.amazonaws.lakeformation#DataLakePrincipalList", + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services account IDs or Amazon Web Services organization/organizational unit ARNs that\n are allowed to access to access data managed by Lake Formation.

\n

If the ShareRecipients list includes valid values, then the resource share is updated with the principals you want to have access to the resources.

\n

If the ShareRecipients value is null, both the list of share recipients and\n the resource share remain unchanged.

\n

If the ShareRecipients value is an empty list, then the existing share\n recipients list will be cleared, and the resource share will be deleted.

" + } + }, "ApplicationStatus": { "target": "com.amazonaws.lakeformation#ApplicationStatus", "traits": { diff --git a/models/m2.json b/models/m2.json index fc016a0914..1eb1f017a7 100644 --- a/models/m2.json +++ b/models/m2.json @@ -119,6 +119,9 @@ { "target": "com.amazonaws.m2#ListBatchJobExecutions" }, + { + "target": "com.amazonaws.m2#ListBatchJobRestartPoints" + }, { "target": "com.amazonaws.m2#ListDataSetImportHistory" }, @@ -1223,6 +1226,10 @@ "value": "Failed", "name": "FAILED" }, + { + "value": "Purged", + "name": "PURGED" + }, { "value": "Succeeded With Warning", "name": "SUCCEEDED_WITH_WARNING" @@ -1328,6 +1335,12 @@ "traits": { "smithy.api#documentation": "

Specifies an Amazon S3 location that identifies the batch jobs that you want to run. Use this identifier to run ad hoc batch jobs.

" } + }, + "restartBatchJobIdentifier": { + "target": "com.amazonaws.m2#RestartBatchJobIdentifier", + "traits": { + "smithy.api#documentation": "

Specifies the required information for restart, including execution ID and jobsteprestartmarker.

" + } } }, "traits": { @@ -1350,6 +1363,12 @@ } } }, + "com.amazonaws.m2#BatchJobStepList": { + "type": "list", + "member": { + "target": "com.amazonaws.m2#JobStep" + } + }, "com.amazonaws.m2#BatchJobType": { "type": "string", "traits": { @@ -3381,6 +3400,12 @@ "traits": { "smithy.api#documentation": "

The unique identifier of this batch job.

" } + }, + "jobStepRestartMarker": { + "target": "com.amazonaws.m2#JobStepRestartMarker", + "traits": { + "smithy.api#documentation": "

The restart steps information for the most recent restart operation.

" + } } } }, @@ -4039,6 +4064,86 @@ "smithy.api#documentation": "

Identifies a specific batch job.

" } }, + "com.amazonaws.m2#JobStep": { + "type": "structure", + "members": { + "stepNumber": { + "target": "com.amazonaws.m2#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of a step.

" + } + }, + "stepName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of a step.

" + } + }, + "procStepNumber": { + "target": "com.amazonaws.m2#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of a procedure step.

" + } + }, + "procStepName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of a procedure step.

" + } + }, + "stepCondCode": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The condition code of a step.

" + } + }, + "stepRestartable": { + "target": "com.amazonaws.m2#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Specifies if a step can be restarted or not.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides information related to a job step.

" + } + }, + "com.amazonaws.m2#JobStepRestartMarker": { + "type": "structure", + "members": { + "fromStep": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The step name that a batch job restart was from.

", + "smithy.api#required": {} + } + }, + "fromProcStep": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The procedure step name that a job was restarted from.

" + } + }, + "toStep": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The step name that a job was restarted to.

" + } + }, + "toProcStep": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The procedure step name that a batch job was restarted to.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides restart step information for the most recent restart operation.

" + } + }, "com.amazonaws.m2#ListApplicationVersions": { "type": "operation", "input": { @@ -4459,6 +4564,83 @@ } } }, + "com.amazonaws.m2#ListBatchJobRestartPoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.m2#ListBatchJobRestartPointsRequest" + }, + "output": { + "target": "com.amazonaws.m2#ListBatchJobRestartPointsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.m2#AccessDeniedException" + }, + { + "target": "com.amazonaws.m2#ConflictException" + }, + { + "target": "com.amazonaws.m2#InternalServerException" + }, + { + "target": "com.amazonaws.m2#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.m2#ThrottlingException" + }, + { + "target": "com.amazonaws.m2#ValidationException" + } + ], + "traits": { + "aws.api#controlPlane": {}, + "smithy.api#documentation": "

Lists all the job steps for JCL files to restart a batch job. This is only applicable for Micro Focus engine with versions 8.0.6 and above.

", + "smithy.api#http": { + "method": "GET", + "uri": "/applications/{applicationId}/batch-job-executions/{executionId}/steps", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.m2#ListBatchJobRestartPointsRequest": { + "type": "structure", + "members": { + "applicationId": { + "target": "com.amazonaws.m2#Identifier", + "traits": { + "smithy.api#documentation": "

The unique identifier of the application.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "executionId": { + "target": "com.amazonaws.m2#Identifier", + "traits": { + "smithy.api#documentation": "

The unique identifier of each batch job execution.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.m2#ListBatchJobRestartPointsResponse": { + "type": "structure", + "members": { + "batchJobSteps": { + "target": "com.amazonaws.m2#BatchJobStepList", + "traits": { + "smithy.api#documentation": "

Returns all the batch job steps and related information for a batch job that previously ran.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.m2#ListDataSetImportHistory": { "type": "operation", "input": { @@ -5283,6 +5465,28 @@ "smithy.api#httpError": 404 } }, + "com.amazonaws.m2#RestartBatchJobIdentifier": { + "type": "structure", + "members": { + "executionId": { + "target": "com.amazonaws.m2#Identifier", + "traits": { + "smithy.api#documentation": "

The executionId from the StartBatchJob response when the job ran for the first time.

", + "smithy.api#required": {} + } + }, + "jobStepRestartMarker": { + "target": "com.amazonaws.m2#JobStepRestartMarker", + "traits": { + "smithy.api#documentation": "

The restart step information for the most recent restart operation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An identifier for the StartBatchJob API to show that it is a restart operation.

" + } + }, "com.amazonaws.m2#S3BatchJobIdentifier": { "type": "structure", "members": { @@ -6144,6 +6348,14 @@ "value": "cannotParse", "name": "CANNOT_PARSE" }, + { + "value": "featureNotAvailable", + "name": "FEATURE_NOT_AVAILABLE" + }, + { + "value": "unsupportedEngineVersion", + "name": "UNSUPPORTED_ENGINE_VERSION" + }, { "value": "fieldValidationFailed", "name": "FIELD_VALIDATION_FAILED" diff --git a/models/marketplace-entitlement-service.json b/models/marketplace-entitlement-service.json index 4e908dd8f2..216f9a9406 100644 --- a/models/marketplace-entitlement-service.json +++ b/models/marketplace-entitlement-service.json @@ -344,6 +344,25 @@ ], "type": "tree" }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-northwest-1" + ] + } + ], + "endpoint": { + "url": "https://entitlement-marketplace.cn-northwest-1.amazonaws.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [ { @@ -445,6 +464,19 @@ "UseDualStack": true } }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://entitlement-marketplace.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, { "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { diff --git a/models/mediaconvert.json b/models/mediaconvert.json index 8dd14fe52d..f895d5fced 100644 --- a/models/mediaconvert.json +++ b/models/mediaconvert.json @@ -2689,7 +2689,7 @@ } }, "traits": { - "smithy.api#documentation": "Set Style passthrough to ENABLED to use the available style, color, and position information from your input captions. MediaConvert uses default settings for any missing style and position information in your input captions. Set Style passthrough to DISABLED, or leave blank, to ignore the style and position information from your input captions and use default settings: white text with black outlining, bottom-center positioning, and automatic sizing. Whether you set Style passthrough to enabled or not, you can also choose to manually override any of the individual style and position settings." + "smithy.api#documentation": "To use the available style, color, and position information from your input captions: Set Style passthrough to Enabled. Note that MediaConvert uses default settings for any missing style or position information in your input captions To ignore the style and position information from your input captions and use default settings: Leave blank or keep the default value, Disabled. Default settings include white text with black outlining, bottom-center positioning, and automatic sizing. Whether you set Style passthrough to enabled or not, you can also choose to manually override any of the individual style and position settings. You can also override any fonts by manually specifying custom font files." } }, "com.amazonaws.mediaconvert#BurninDestinationSettings": { @@ -2737,6 +2737,34 @@ "smithy.api#jsonName": "fontColor" } }, + "FontFileBold": { + "target": "com.amazonaws.mediaconvert#__stringPatternS3TtfHttpsTtf", + "traits": { + "smithy.api#documentation": "Specify a bold TrueType font file to use when rendering your output captions. Enter an S3, HTTP, or HTTPS URL. When you do, you must also separately specify a regular, an italic, and a bold italic font file.", + "smithy.api#jsonName": "fontFileBold" + } + }, + "FontFileBoldItalic": { + "target": "com.amazonaws.mediaconvert#__string", + "traits": { + "smithy.api#documentation": "Specify a bold italic TrueType font file to use when rendering your output captions.\nEnter an S3, HTTP, or HTTPS URL.\nWhen you do, you must also separately specify a regular, a bold, and an italic font file.", + "smithy.api#jsonName": "fontFileBoldItalic" + } + }, + "FontFileItalic": { + "target": "com.amazonaws.mediaconvert#__stringPatternS3TtfHttpsTtf", + "traits": { + "smithy.api#documentation": "Specify an italic TrueType font file to use when rendering your output captions. Enter an S3, HTTP, or HTTPS URL. When you do, you must also separately specify a regular, a bold, and a bold italic font file.", + "smithy.api#jsonName": "fontFileItalic" + } + }, + "FontFileRegular": { + "target": "com.amazonaws.mediaconvert#__stringPatternS3TtfHttpsTtf", + "traits": { + "smithy.api#documentation": "Specify a regular TrueType font file to use when rendering your output captions. Enter an S3, HTTP, or HTTPS URL. When you do, you must also separately specify a bold, an italic, and a bold italic font file.", + "smithy.api#jsonName": "fontFileRegular" + } + }, "FontOpacity": { "target": "com.amazonaws.mediaconvert#__integerMin0Max255", "traits": { @@ -2817,7 +2845,7 @@ "StylePassthrough": { "target": "com.amazonaws.mediaconvert#BurnInSubtitleStylePassthrough", "traits": { - "smithy.api#documentation": "Set Style passthrough to ENABLED to use the available style, color, and position information from your input captions. MediaConvert uses default settings for any missing style and position information in your input captions. Set Style passthrough to DISABLED, or leave blank, to ignore the style and position information from your input captions and use default settings: white text with black outlining, bottom-center positioning, and automatic sizing. Whether you set Style passthrough to enabled or not, you can also choose to manually override any of the individual style and position settings.", + "smithy.api#documentation": "To use the available style, color, and position information from your input captions: Set Style passthrough to Enabled. Note that MediaConvert uses default settings for any missing style or position information in your input captions To ignore the style and position information from your input captions and use default settings: Leave blank or keep the default value, Disabled. Default settings include white text with black outlining, bottom-center positioning, and automatic sizing. Whether you set Style passthrough to enabled or not, you can also choose to manually override any of the individual style and position settings. You can also override any fonts by manually specifying custom font files.", "smithy.api#jsonName": "stylePassthrough" } }, @@ -6720,7 +6748,6 @@ "smithy.api#deprecated": { "message": "DescribeEndpoints and account specific endpoints are no longer required. We recommend that you send your requests directly to the regional endpoint instead." }, - "smithy.api#documentation": "DescribeEndpointsRequest", "smithy.api#input": {} } }, @@ -7099,6 +7126,34 @@ "smithy.api#jsonName": "fontColor" } }, + "FontFileBold": { + "target": "com.amazonaws.mediaconvert#__stringPatternS3TtfHttpsTtf", + "traits": { + "smithy.api#documentation": "Specify a bold TrueType font file to use when rendering your output captions. Enter an S3, HTTP, or HTTPS URL. When you do, you must also separately specify a regular, an italic, and a bold italic font file.", + "smithy.api#jsonName": "fontFileBold" + } + }, + "FontFileBoldItalic": { + "target": "com.amazonaws.mediaconvert#__stringPatternS3TtfHttpsTtf", + "traits": { + "smithy.api#documentation": "Specify a bold italic TrueType font file to use when rendering your output captions.\nEnter an S3, HTTP, or HTTPS URL.\nWhen you do, you must also separately specify a regular, a bold, and an italic font file.", + "smithy.api#jsonName": "fontFileBoldItalic" + } + }, + "FontFileItalic": { + "target": "com.amazonaws.mediaconvert#__stringPatternS3TtfHttpsTtf", + "traits": { + "smithy.api#documentation": "Specify an italic TrueType font file to use when rendering your output captions. Enter an S3, HTTP, or HTTPS URL. When you do, you must also separately specify a regular, a bold, and a bold italic font file.", + "smithy.api#jsonName": "fontFileItalic" + } + }, + "FontFileRegular": { + "target": "com.amazonaws.mediaconvert#__stringPatternS3TtfHttpsTtf", + "traits": { + "smithy.api#documentation": "Specify a regular TrueType font file to use when rendering your output captions. Enter an S3, HTTP, or HTTPS URL. When you do, you must also separately specify a bold, an italic, and a bold italic font file.", + "smithy.api#jsonName": "fontFileRegular" + } + }, "FontOpacity": { "target": "com.amazonaws.mediaconvert#__integerMin0Max255", "traits": { @@ -7186,7 +7241,7 @@ "StylePassthrough": { "target": "com.amazonaws.mediaconvert#DvbSubtitleStylePassthrough", "traits": { - "smithy.api#documentation": "Set Style passthrough to ENABLED to use the available style, color, and position information from your input captions. MediaConvert uses default settings for any missing style and position information in your input captions. Set Style passthrough to DISABLED, or leave blank, to ignore the style and position information from your input captions and use default settings: white text with black outlining, bottom-center positioning, and automatic sizing. Whether you set Style passthrough to enabled or not, you can also choose to manually override any of the individual style and position settings.", + "smithy.api#documentation": "To use the available style, color, and position information from your input captions: Set Style passthrough to Enabled. Note that MediaConvert uses default settings for any missing style or position information in your input captions To ignore the style and position information from your input captions and use default settings: Leave blank or keep the default value, Disabled. Default settings include white text with black outlining, bottom-center positioning, and automatic sizing. Whether you set Style passthrough to enabled or not, you can also choose to manually override any of the individual style and position settings. You can also override any fonts by manually specifying custom font files.", "smithy.api#jsonName": "stylePassthrough" } }, @@ -7516,7 +7571,7 @@ } }, "traits": { - "smithy.api#documentation": "Set Style passthrough to ENABLED to use the available style, color, and position information from your input captions. MediaConvert uses default settings for any missing style and position information in your input captions. Set Style passthrough to DISABLED, or leave blank, to ignore the style and position information from your input captions and use default settings: white text with black outlining, bottom-center positioning, and automatic sizing. Whether you set Style passthrough to enabled or not, you can also choose to manually override any of the individual style and position settings." + "smithy.api#documentation": "To use the available style, color, and position information from your input captions: Set Style passthrough to Enabled. Note that MediaConvert uses default settings for any missing style or position information in your input captions To ignore the style and position information from your input captions and use default settings: Leave blank or keep the default value, Disabled. Default settings include white text with black outlining, bottom-center positioning, and automatic sizing. Whether you set Style passthrough to enabled or not, you can also choose to manually override any of the individual style and position settings. You can also override any fonts by manually specifying custom font files." } }, "com.amazonaws.mediaconvert#DvbSubtitleTeletextSpacing": { @@ -13798,7 +13853,7 @@ "ColorConversion3DLUTSettings": { "target": "com.amazonaws.mediaconvert#__listOfColorConversion3DLUTSetting", "traits": { - "smithy.api#documentation": "Use 3D LUTs to specify custom color mapping behavior when you convert from one color space into another. You can include up to 8 different 3D LUTs.", + "smithy.api#documentation": "Use 3D LUTs to specify custom color mapping behavior when you convert from one color space into another. You can include up to 8 different 3D LUTs. For more information, see: https://docs.aws.amazon.com/mediaconvert/latest/ug/3d-luts.html", "smithy.api#jsonName": "colorConversion3DLUTSettings" } }, @@ -14071,7 +14126,7 @@ "ColorConversion3DLUTSettings": { "target": "com.amazonaws.mediaconvert#__listOfColorConversion3DLUTSetting", "traits": { - "smithy.api#documentation": "Use 3D LUTs to specify custom color mapping behavior when you convert from one color space into another. You can include up to 8 different 3D LUTs.", + "smithy.api#documentation": "Use 3D LUTs to specify custom color mapping behavior when you convert from one color space into another. You can include up to 8 different 3D LUTs. For more information, see: https://docs.aws.amazon.com/mediaconvert/latest/ug/3d-luts.html", "smithy.api#jsonName": "colorConversion3DLUTSettings" } }, @@ -16129,6 +16184,26 @@ "smithy.api#documentation": "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." } }, + "com.amazonaws.mediaconvert#M2tsPreventBufferUnderflow": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + }, + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + } + }, + "traits": { + "smithy.api#documentation": "Specify whether MediaConvert automatically attempts to prevent decoder buffer underflows in your transport stream output. Use if you are seeing decoder buffer underflows in your output and are unable to increase your transport stream's bitrate. For most workflows: We recommend that you keep the default value, Disabled. To prevent decoder buffer underflows in your output, when possible: Choose Enabled. Note that if MediaConvert prevents a decoder buffer underflow in your output, output video quality is reduced and your job will take longer to complete." + } + }, "com.amazonaws.mediaconvert#M2tsRateMode": { "type": "enum", "members": { @@ -16440,6 +16515,13 @@ "smithy.api#jsonName": "pmtPid" } }, + "PreventBufferUnderflow": { + "target": "com.amazonaws.mediaconvert#M2tsPreventBufferUnderflow", + "traits": { + "smithy.api#documentation": "Specify whether MediaConvert automatically attempts to prevent decoder buffer underflows in your transport stream output. Use if you are seeing decoder buffer underflows in your output and are unable to increase your transport stream's bitrate. For most workflows: We recommend that you keep the default value, Disabled. To prevent decoder buffer underflows in your output, when possible: Choose Enabled. Note that if MediaConvert prevents a decoder buffer underflow in your output, output video quality is reduced and your job will take longer to complete.", + "smithy.api#jsonName": "preventBufferUnderflow" + } + }, "PrivateMetadataPid": { "target": "com.amazonaws.mediaconvert#__integerMin32Max8182", "traits": { @@ -26990,6 +27072,12 @@ "smithy.api#pattern": "^s3://([^\\/]+\\/+)+((([^\\/]*)))|^https?://[^\\/].*[^&]$" } }, + "com.amazonaws.mediaconvert#__stringPatternS3TtfHttpsTtf": { + "type": "string", + "traits": { + "smithy.api#pattern": "^((s3://(.*?)\\.(ttf))|(https?://(.*?)\\.(ttf)(\\?([^&=]+=[^&]+&)*[^&=]+=[^&]+)?))$" + } + }, "com.amazonaws.mediaconvert#__stringPatternSNManifestConfirmConditionNotificationNS": { "type": "string", "traits": { diff --git a/models/medialive.json b/models/medialive.json index 126e76a18e..08e24986a1 100644 --- a/models/medialive.json +++ b/models/medialive.json @@ -3395,6 +3395,381 @@ "smithy.api#output": {} } }, + "com.amazonaws.medialive#CloudWatchAlarmTemplateComparisonOperator": { + "type": "enum", + "members": { + "GreaterThanOrEqualToThreshold": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GreaterThanOrEqualToThreshold" + } + }, + "GreaterThanThreshold": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GreaterThanThreshold" + } + }, + "LessThanThreshold": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LessThanThreshold" + } + }, + "LessThanOrEqualToThreshold": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LessThanOrEqualToThreshold" + } + } + }, + "traits": { + "smithy.api#documentation": "The comparison operator used to compare the specified statistic and the threshold." + } + }, + "com.amazonaws.medialive#CloudWatchAlarmTemplateGroupSummary": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveCloudwatchAlarmTemplateGroup", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A cloudwatch alarm template group's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn", + "smithy.api#required": {} + } + }, + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "createdAt", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", + "traits": { + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" + } + }, + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-`", + "smithy.api#jsonName": "id", + "smithy.api#required": {} + } + }, + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "modifiedAt" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.medialive#TagMap", + "traits": { + "smithy.api#jsonName": "tags" + } + }, + "TemplateCount": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The number of templates in a group.", + "smithy.api#jsonName": "templateCount", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for CloudWatchAlarmTemplateGroupSummary" + } + }, + "com.amazonaws.medialive#CloudWatchAlarmTemplateStatistic": { + "type": "enum", + "members": { + "SampleCount": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SampleCount" + } + }, + "Average": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Average" + } + }, + "Sum": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Sum" + } + }, + "Minimum": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Minimum" + } + }, + "Maximum": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Maximum" + } + } + }, + "traits": { + "smithy.api#documentation": "The statistic to apply to the alarm's metric data." + } + }, + "com.amazonaws.medialive#CloudWatchAlarmTemplateSummary": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveCloudwatchAlarmTemplate", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A cloudwatch alarm template's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn", + "smithy.api#required": {} + } + }, + "ComparisonOperator": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateComparisonOperator", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "comparisonOperator", + "smithy.api#required": {} + } + }, + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "createdAt", + "smithy.api#required": {} + } + }, + "DatapointsToAlarm": { + "target": "com.amazonaws.medialive#__integerMin1", + "traits": { + "smithy.api#documentation": "The number of datapoints within the evaluation period that must be breaching to trigger the alarm.", + "smithy.api#jsonName": "datapointsToAlarm" + } + }, + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", + "traits": { + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" + } + }, + "EvaluationPeriods": { + "target": "com.amazonaws.medialive#__integerMin1", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The number of periods over which data is compared to the specified threshold.", + "smithy.api#jsonName": "evaluationPeriods", + "smithy.api#required": {} + } + }, + "GroupId": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-`", + "smithy.api#jsonName": "groupId", + "smithy.api#required": {} + } + }, + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A cloudwatch alarm template's id. AWS provided templates have ids that start with `aws-`", + "smithy.api#jsonName": "id", + "smithy.api#required": {} + } + }, + "MetricName": { + "target": "com.amazonaws.medialive#__stringMax64", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The name of the metric associated with the alarm. Must be compatible with targetResourceType.", + "smithy.api#jsonName": "metricName", + "smithy.api#required": {} + } + }, + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "modifiedAt" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name", + "smithy.api#required": {} + } + }, + "Period": { + "target": "com.amazonaws.medialive#__integerMin10Max86400", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The period, in seconds, over which the specified statistic is applied.", + "smithy.api#jsonName": "period", + "smithy.api#required": {} + } + }, + "Statistic": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateStatistic", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "statistic", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.medialive#TagMap", + "traits": { + "smithy.api#jsonName": "tags" + } + }, + "TargetResourceType": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateTargetResourceType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "targetResourceType", + "smithy.api#required": {} + } + }, + "Threshold": { + "target": "com.amazonaws.medialive#__double", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The threshold value to compare with the specified statistic.", + "smithy.api#jsonName": "threshold", + "smithy.api#required": {} + } + }, + "TreatMissingData": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateTreatMissingData", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "treatMissingData", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for CloudWatchAlarmTemplateSummary" + } + }, + "com.amazonaws.medialive#CloudWatchAlarmTemplateTargetResourceType": { + "type": "enum", + "members": { + "CLOUDFRONT_DISTRIBUTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLOUDFRONT_DISTRIBUTION" + } + }, + "MEDIALIVE_MULTIPLEX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MEDIALIVE_MULTIPLEX" + } + }, + "MEDIALIVE_CHANNEL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MEDIALIVE_CHANNEL" + } + }, + "MEDIALIVE_INPUT_DEVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MEDIALIVE_INPUT_DEVICE" + } + }, + "MEDIAPACKAGE_CHANNEL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MEDIAPACKAGE_CHANNEL" + } + }, + "MEDIAPACKAGE_ORIGIN_ENDPOINT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MEDIAPACKAGE_ORIGIN_ENDPOINT" + } + }, + "MEDIACONNECT_FLOW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MEDIACONNECT_FLOW" + } + }, + "S3_BUCKET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "S3_BUCKET" + } + } + }, + "traits": { + "smithy.api#documentation": "The resource type this template should dynamically generate cloudwatch metric alarms for." + } + }, + "com.amazonaws.medialive#CloudWatchAlarmTemplateTreatMissingData": { + "type": "enum", + "members": { + "notBreaching": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "notBreaching" + } + }, + "breaching": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "breaching" + } + }, + "ignore": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ignore" + } + }, + "missing": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "missing" + } + } + }, + "traits": { + "smithy.api#documentation": "Specifies how missing data points are treated when evaluating the alarm's condition." + } + }, "com.amazonaws.medialive#CmafIngestGroupSettings": { "type": "structure", "members": { @@ -3788,230 +4163,448 @@ "smithy.api#output": {} } }, - "com.amazonaws.medialive#CreateInput": { + "com.amazonaws.medialive#CreateCloudWatchAlarmTemplate": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#CreateInputRequest" + "target": "com.amazonaws.medialive#CreateCloudWatchAlarmTemplateRequest" }, "output": { - "target": "com.amazonaws.medialive#CreateInputResponse" + "target": "com.amazonaws.medialive#CreateCloudWatchAlarmTemplateResponse" }, "errors": [ { - "target": "com.amazonaws.medialive#BadGatewayException" + "target": "com.amazonaws.medialive#BadRequestException" }, { - "target": "com.amazonaws.medialive#BadRequestException" + "target": "com.amazonaws.medialive#ConflictException" }, { "target": "com.amazonaws.medialive#ForbiddenException" }, { - "target": "com.amazonaws.medialive#GatewayTimeoutException" + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Creates a cloudwatch alarm template to dynamically generate cloudwatch metric alarms on targeted resource types.", + "smithy.api#http": { + "method": "POST", + "uri": "/prod/cloudwatch-alarm-templates", + "code": 201 + } + } + }, + "com.amazonaws.medialive#CreateCloudWatchAlarmTemplateGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#CreateCloudWatchAlarmTemplateGroupRequest" + }, + "output": { + "target": "com.amazonaws.medialive#CreateCloudWatchAlarmTemplateGroupResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ConflictException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" }, { "target": "com.amazonaws.medialive#InternalServerErrorException" }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, { "target": "com.amazonaws.medialive#TooManyRequestsException" } ], "traits": { - "smithy.api#documentation": "Create an input", + "smithy.api#documentation": "Creates a cloudwatch alarm template group to group your cloudwatch alarm templates and to attach to signal maps for dynamically creating alarms.", "smithy.api#http": { "method": "POST", - "uri": "/prod/inputs", + "uri": "/prod/cloudwatch-alarm-template-groups", "code": 201 } } }, - "com.amazonaws.medialive#CreateInputRequest": { + "com.amazonaws.medialive#CreateCloudWatchAlarmTemplateGroupRequest": { "type": "structure", "members": { - "Destinations": { - "target": "com.amazonaws.medialive#__listOfInputDestinationRequest", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#documentation": "Destination settings for PUSH type inputs.", - "smithy.api#jsonName": "destinations" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "InputDevices": { - "target": "com.amazonaws.medialive#__listOfInputDeviceSettings", + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", "traits": { - "smithy.api#documentation": "Settings for the devices.", - "smithy.api#jsonName": "inputDevices" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name", + "smithy.api#required": {} } }, - "InputSecurityGroups": { - "target": "com.amazonaws.medialive#__listOf__string", + "Tags": { + "target": "com.amazonaws.medialive#TagMap", "traits": { - "smithy.api#documentation": "A list of security groups referenced by IDs to attach to the input.", - "smithy.api#jsonName": "inputSecurityGroups" + "smithy.api#jsonName": "tags" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for CreateCloudWatchAlarmTemplateGroupRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#CreateCloudWatchAlarmTemplateGroupResponse": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveCloudwatchAlarmTemplateGroup", + "traits": { + "smithy.api#documentation": "A cloudwatch alarm template group's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" } }, - "MediaConnectFlows": { - "target": "com.amazonaws.medialive#__listOfMediaConnectFlowRequest", + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#documentation": "A list of the MediaConnect Flows that you want to use in this input. You can specify as few as one\nFlow and presently, as many as two. The only requirement is when you have more than one is that each Flow is in a\nseparate Availability Zone as this ensures your EML input is redundant to AZ issues.", - "smithy.api#jsonName": "mediaConnectFlows" + "smithy.api#jsonName": "createdAt" + } + }, + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", + "traits": { + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" + } + }, + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", + "traits": { + "smithy.api#documentation": "A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-`", + "smithy.api#jsonName": "id" + } + }, + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "modifiedAt" } }, "Name": { - "target": "com.amazonaws.medialive#__string", + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", "traits": { - "smithy.api#documentation": "Name of the input.", + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", "smithy.api#jsonName": "name" } }, - "RequestId": { - "target": "com.amazonaws.medialive#__string", + "Tags": { + "target": "com.amazonaws.medialive#TagMap", "traits": { - "smithy.api#documentation": "Unique identifier of the request to ensure the request is handled\nexactly once in case of retries.", - "smithy.api#idempotencyToken": {}, - "smithy.api#jsonName": "requestId" + "smithy.api#jsonName": "tags" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for CreateCloudWatchAlarmTemplateGroupResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#CreateCloudWatchAlarmTemplateRequest": { + "type": "structure", + "members": { + "ComparisonOperator": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateComparisonOperator", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "comparisonOperator", + "smithy.api#required": {} } }, - "RoleArn": { - "target": "com.amazonaws.medialive#__string", + "DatapointsToAlarm": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#documentation": "The Amazon Resource Name (ARN) of the role this input assumes during and after creation.", - "smithy.api#jsonName": "roleArn" + "smithy.api#documentation": "The number of datapoints within the evaluation period that must be breaching to trigger the alarm.", + "smithy.api#jsonName": "datapointsToAlarm" } }, - "Sources": { - "target": "com.amazonaws.medialive#__listOfInputSourceRequest", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#documentation": "The source URLs for a PULL-type input. Every PULL type input needs\nexactly two source URLs for redundancy.\nOnly specify sources for PULL type Inputs. Leave Destinations empty.", - "smithy.api#jsonName": "sources" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" + } + }, + "EvaluationPeriods": { + "target": "com.amazonaws.medialive#__integerMin1", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The number of periods over which data is compared to the specified threshold.", + "smithy.api#jsonName": "evaluationPeriods", + "smithy.api#required": {} + } + }, + "GroupIdentifier": { + "target": "com.amazonaws.medialive#__stringPatternS", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A cloudwatch alarm template group's identifier. Can be either be its id or current name.", + "smithy.api#jsonName": "groupIdentifier", + "smithy.api#required": {} + } + }, + "MetricName": { + "target": "com.amazonaws.medialive#__stringMax64", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The name of the metric associated with the alarm. Must be compatible with targetResourceType.", + "smithy.api#jsonName": "metricName", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name", + "smithy.api#required": {} + } + }, + "Period": { + "target": "com.amazonaws.medialive#__integerMin10Max86400", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The period, in seconds, over which the specified statistic is applied.", + "smithy.api#jsonName": "period", + "smithy.api#required": {} + } + }, + "Statistic": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateStatistic", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "statistic", + "smithy.api#required": {} } }, "Tags": { - "target": "com.amazonaws.medialive#Tags", + "target": "com.amazonaws.medialive#TagMap", "traits": { - "smithy.api#documentation": "A collection of key-value pairs.", "smithy.api#jsonName": "tags" } }, - "Type": { - "target": "com.amazonaws.medialive#InputType", + "TargetResourceType": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateTargetResourceType", "traits": { - "smithy.api#jsonName": "type" + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "targetResourceType", + "smithy.api#required": {} } }, - "Vpc": { - "target": "com.amazonaws.medialive#InputVpcRequest", + "Threshold": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#jsonName": "vpc" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The threshold value to compare with the specified statistic.", + "smithy.api#jsonName": "threshold", + "smithy.api#required": {} + } + }, + "TreatMissingData": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateTreatMissingData", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "treatMissingData", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "The name of the input", + "smithy.api#documentation": "Placeholder documentation for CreateCloudWatchAlarmTemplateRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#CreateInputResponse": { + "com.amazonaws.medialive#CreateCloudWatchAlarmTemplateResponse": { "type": "structure", "members": { - "Input": { - "target": "com.amazonaws.medialive#Input", + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveCloudwatchAlarmTemplate", "traits": { - "smithy.api#jsonName": "input" + "smithy.api#documentation": "A cloudwatch alarm template's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" + } + }, + "ComparisonOperator": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateComparisonOperator", + "traits": { + "smithy.api#jsonName": "comparisonOperator" + } + }, + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "createdAt" + } + }, + "DatapointsToAlarm": { + "target": "com.amazonaws.medialive#__integerMin1", + "traits": { + "smithy.api#documentation": "The number of datapoints within the evaluation period that must be breaching to trigger the alarm.", + "smithy.api#jsonName": "datapointsToAlarm" + } + }, + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", + "traits": { + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" + } + }, + "EvaluationPeriods": { + "target": "com.amazonaws.medialive#__integerMin1", + "traits": { + "smithy.api#documentation": "The number of periods over which data is compared to the specified threshold.", + "smithy.api#jsonName": "evaluationPeriods" + } + }, + "GroupId": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", + "traits": { + "smithy.api#documentation": "A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-`", + "smithy.api#jsonName": "groupId" + } + }, + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", + "traits": { + "smithy.api#documentation": "A cloudwatch alarm template's id. AWS provided templates have ids that start with `aws-`", + "smithy.api#jsonName": "id" + } + }, + "MetricName": { + "target": "com.amazonaws.medialive#__stringMax64", + "traits": { + "smithy.api#documentation": "The name of the metric associated with the alarm. Must be compatible with targetResourceType.", + "smithy.api#jsonName": "metricName" + } + }, + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "modifiedAt" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" + } + }, + "Period": { + "target": "com.amazonaws.medialive#__integerMin10Max86400", + "traits": { + "smithy.api#documentation": "The period, in seconds, over which the specified statistic is applied.", + "smithy.api#jsonName": "period" + } + }, + "Statistic": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateStatistic", + "traits": { + "smithy.api#jsonName": "statistic" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#TagMap", + "traits": { + "smithy.api#jsonName": "tags" + } + }, + "TargetResourceType": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateTargetResourceType", + "traits": { + "smithy.api#jsonName": "targetResourceType" + } + }, + "Threshold": { + "target": "com.amazonaws.medialive#__double", + "traits": { + "smithy.api#documentation": "The threshold value to compare with the specified statistic.", + "smithy.api#jsonName": "threshold" + } + }, + "TreatMissingData": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateTreatMissingData", + "traits": { + "smithy.api#jsonName": "treatMissingData" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for CreateInputResponse", + "smithy.api#documentation": "Placeholder documentation for CreateCloudWatchAlarmTemplateResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#CreateInputSecurityGroup": { + "com.amazonaws.medialive#CreateEventBridgeRuleTemplate": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#CreateInputSecurityGroupRequest" + "target": "com.amazonaws.medialive#CreateEventBridgeRuleTemplateRequest" }, "output": { - "target": "com.amazonaws.medialive#CreateInputSecurityGroupResponse" + "target": "com.amazonaws.medialive#CreateEventBridgeRuleTemplateResponse" }, "errors": [ { - "target": "com.amazonaws.medialive#BadGatewayException" + "target": "com.amazonaws.medialive#BadRequestException" }, { - "target": "com.amazonaws.medialive#BadRequestException" + "target": "com.amazonaws.medialive#ConflictException" }, { "target": "com.amazonaws.medialive#ForbiddenException" }, { - "target": "com.amazonaws.medialive#GatewayTimeoutException" + "target": "com.amazonaws.medialive#InternalServerErrorException" }, { - "target": "com.amazonaws.medialive#InternalServerErrorException" + "target": "com.amazonaws.medialive#NotFoundException" }, { "target": "com.amazonaws.medialive#TooManyRequestsException" } ], "traits": { - "smithy.api#documentation": "Creates a Input Security Group", + "smithy.api#documentation": "Creates an eventbridge rule template to monitor events and send notifications to your targeted resources.", "smithy.api#http": { "method": "POST", - "uri": "/prod/inputSecurityGroups", - "code": 200 + "uri": "/prod/eventbridge-rule-templates", + "code": 201 } } }, - "com.amazonaws.medialive#CreateInputSecurityGroupRequest": { - "type": "structure", - "members": { - "Tags": { - "target": "com.amazonaws.medialive#Tags", - "traits": { - "smithy.api#documentation": "A collection of key-value pairs.", - "smithy.api#jsonName": "tags" - } - }, - "WhitelistRules": { - "target": "com.amazonaws.medialive#__listOfInputWhitelistRuleCidr", - "traits": { - "smithy.api#documentation": "List of IPv4 CIDR addresses to whitelist", - "smithy.api#jsonName": "whitelistRules" - } - } - }, - "traits": { - "smithy.api#documentation": "The IPv4 CIDRs to whitelist for this Input Security Group", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#CreateInputSecurityGroupResponse": { - "type": "structure", - "members": { - "SecurityGroup": { - "target": "com.amazonaws.medialive#InputSecurityGroup", - "traits": { - "smithy.api#jsonName": "securityGroup" - } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for CreateInputSecurityGroupResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#CreateMultiplex": { + "com.amazonaws.medialive#CreateEventBridgeRuleTemplateGroup": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#CreateMultiplexRequest" + "target": "com.amazonaws.medialive#CreateEventBridgeRuleTemplateGroupRequest" }, "output": { - "target": "com.amazonaws.medialive#CreateMultiplexResponse" + "target": "com.amazonaws.medialive#CreateEventBridgeRuleTemplateGroupResponse" }, "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, { "target": "com.amazonaws.medialive#BadRequestException" }, @@ -4021,208 +4614,246 @@ { "target": "com.amazonaws.medialive#ForbiddenException" }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, { "target": "com.amazonaws.medialive#InternalServerErrorException" }, { - "target": "com.amazonaws.medialive#TooManyRequestsException" - }, - { - "target": "com.amazonaws.medialive#UnprocessableEntityException" - } - ], - "traits": { - "smithy.api#documentation": "Create a new multiplex.", - "smithy.api#http": { - "method": "POST", - "uri": "/prod/multiplexes", - "code": 201 - } - } - }, - "com.amazonaws.medialive#CreateMultiplexProgram": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#CreateMultiplexProgramRequest" - }, - "output": { - "target": "com.amazonaws.medialive#CreateMultiplexProgramResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ConflictException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" - }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" + "target": "com.amazonaws.medialive#NotFoundException" }, { "target": "com.amazonaws.medialive#TooManyRequestsException" - }, - { - "target": "com.amazonaws.medialive#UnprocessableEntityException" } ], "traits": { - "smithy.api#documentation": "Create a new program in the multiplex.", + "smithy.api#documentation": "Creates an eventbridge rule template group to group your eventbridge rule templates and to attach to signal maps for dynamically creating notification rules.", "smithy.api#http": { "method": "POST", - "uri": "/prod/multiplexes/{MultiplexId}/programs", + "uri": "/prod/eventbridge-rule-template-groups", "code": 201 } } }, - "com.amazonaws.medialive#CreateMultiplexProgramRequest": { + "com.amazonaws.medialive#CreateEventBridgeRuleTemplateGroupRequest": { "type": "structure", "members": { - "MultiplexId": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "ID of the multiplex where the program is to be created.", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - }, - "MultiplexProgramSettings": { - "target": "com.amazonaws.medialive#MultiplexProgramSettings", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The settings for this multiplex program.", - "smithy.api#jsonName": "multiplexProgramSettings", - "smithy.api#required": {} + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "ProgramName": { - "target": "com.amazonaws.medialive#__string", + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Name of multiplex program.", - "smithy.api#jsonName": "programName", + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name", "smithy.api#required": {} } }, - "RequestId": { - "target": "com.amazonaws.medialive#__string", + "Tags": { + "target": "com.amazonaws.medialive#TagMap", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Unique request ID. This prevents retries from creating multiple\nresources.", - "smithy.api#idempotencyToken": {}, - "smithy.api#jsonName": "requestId", - "smithy.api#required": {} + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "A request to create a program in a multiplex.", + "smithy.api#documentation": "Placeholder documentation for CreateEventBridgeRuleTemplateGroupRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#CreateMultiplexProgramResponse": { + "com.amazonaws.medialive#CreateEventBridgeRuleTemplateGroupResponse": { "type": "structure", "members": { - "MultiplexProgram": { - "target": "com.amazonaws.medialive#MultiplexProgram", + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveEventbridgeRuleTemplateGroup", "traits": { - "smithy.api#documentation": "The newly created multiplex program.", - "smithy.api#jsonName": "multiplexProgram" + "smithy.api#documentation": "An eventbridge rule template group's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" + } + }, + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "createdAt" + } + }, + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", + "traits": { + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" + } + }, + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", + "traits": { + "smithy.api#documentation": "An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-`", + "smithy.api#jsonName": "id" + } + }, + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "modifiedAt" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#TagMap", + "traits": { + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for CreateMultiplexProgramResponse", + "smithy.api#documentation": "Placeholder documentation for CreateEventBridgeRuleTemplateGroupResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#CreateMultiplexRequest": { + "com.amazonaws.medialive#CreateEventBridgeRuleTemplateRequest": { "type": "structure", "members": { - "AvailabilityZones": { - "target": "com.amazonaws.medialive#__listOf__string", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "A list of availability zones for the multiplex. You must specify exactly two.", - "smithy.api#jsonName": "availabilityZones", - "smithy.api#required": {} + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "MultiplexSettings": { - "target": "com.amazonaws.medialive#MultiplexSettings", + "EventTargets": { + "target": "com.amazonaws.medialive#__listOfEventBridgeRuleTemplateTarget", + "traits": { + "smithy.api#jsonName": "eventTargets" + } + }, + "EventType": { + "target": "com.amazonaws.medialive#EventBridgeRuleTemplateEventType", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Configuration for a multiplex event.", - "smithy.api#jsonName": "multiplexSettings", + "smithy.api#jsonName": "eventType", "smithy.api#required": {} } }, - "Name": { - "target": "com.amazonaws.medialive#__string", + "GroupIdentifier": { + "target": "com.amazonaws.medialive#__stringPatternS", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Name of multiplex.", - "smithy.api#jsonName": "name", + "smithy.api#documentation": "An eventbridge rule template group's identifier. Can be either be its id or current name.", + "smithy.api#jsonName": "groupIdentifier", "smithy.api#required": {} } }, - "RequestId": { - "target": "com.amazonaws.medialive#__string", + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Unique request ID. This prevents retries from creating multiple\nresources.", - "smithy.api#idempotencyToken": {}, - "smithy.api#jsonName": "requestId", + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name", "smithy.api#required": {} } }, "Tags": { - "target": "com.amazonaws.medialive#Tags", + "target": "com.amazonaws.medialive#TagMap", "traits": { - "smithy.api#documentation": "A collection of key-value pairs.", "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "A request to create a multiplex.", + "smithy.api#documentation": "Placeholder documentation for CreateEventBridgeRuleTemplateRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#CreateMultiplexResponse": { + "com.amazonaws.medialive#CreateEventBridgeRuleTemplateResponse": { "type": "structure", "members": { - "Multiplex": { - "target": "com.amazonaws.medialive#Multiplex", + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveEventbridgeRuleTemplate", "traits": { - "smithy.api#documentation": "The newly created multiplex.", - "smithy.api#jsonName": "multiplex" + "smithy.api#documentation": "An eventbridge rule template's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" + } + }, + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "createdAt" + } + }, + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", + "traits": { + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" + } + }, + "EventTargets": { + "target": "com.amazonaws.medialive#__listOfEventBridgeRuleTemplateTarget", + "traits": { + "smithy.api#jsonName": "eventTargets" + } + }, + "EventType": { + "target": "com.amazonaws.medialive#EventBridgeRuleTemplateEventType", + "traits": { + "smithy.api#jsonName": "eventType" + } + }, + "GroupId": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", + "traits": { + "smithy.api#documentation": "An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-`", + "smithy.api#jsonName": "groupId" + } + }, + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", + "traits": { + "smithy.api#documentation": "An eventbridge rule template's id. AWS provided templates have ids that start with `aws-`", + "smithy.api#jsonName": "id" + } + }, + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "modifiedAt" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#TagMap", + "traits": { + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for CreateMultiplexResponse", + "smithy.api#documentation": "Placeholder documentation for CreateEventBridgeRuleTemplateResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#CreatePartnerInput": { + "com.amazonaws.medialive#CreateInput": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#CreatePartnerInputRequest" + "target": "com.amazonaws.medialive#CreateInputRequest" }, "output": { - "target": "com.amazonaws.medialive#CreatePartnerInputResponse" + "target": "com.amazonaws.medialive#CreateInputResponse" }, "errors": [ { @@ -4245,47 +4876,100 @@ } ], "traits": { - "smithy.api#documentation": "Create a partner input", + "smithy.api#documentation": "Create an input", "smithy.api#http": { "method": "POST", - "uri": "/prod/inputs/{InputId}/partners", + "uri": "/prod/inputs", "code": 201 } } }, - "com.amazonaws.medialive#CreatePartnerInputRequest": { + "com.amazonaws.medialive#CreateInputRequest": { "type": "structure", "members": { - "InputId": { - "target": "com.amazonaws.medialive#__string", + "Destinations": { + "target": "com.amazonaws.medialive#__listOfInputDestinationRequest", "traits": { - "smithy.api#documentation": "Unique ID of the input.", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "Destination settings for PUSH type inputs.", + "smithy.api#jsonName": "destinations" } }, - "RequestId": { - "target": "com.amazonaws.medialive#__string", + "InputDevices": { + "target": "com.amazonaws.medialive#__listOfInputDeviceSettings", "traits": { - "smithy.api#documentation": "Unique identifier of the request to ensure the request is handled\nexactly once in case of retries.", - "smithy.api#idempotencyToken": {}, + "smithy.api#documentation": "Settings for the devices.", + "smithy.api#jsonName": "inputDevices" + } + }, + "InputSecurityGroups": { + "target": "com.amazonaws.medialive#__listOf__string", + "traits": { + "smithy.api#documentation": "A list of security groups referenced by IDs to attach to the input.", + "smithy.api#jsonName": "inputSecurityGroups" + } + }, + "MediaConnectFlows": { + "target": "com.amazonaws.medialive#__listOfMediaConnectFlowRequest", + "traits": { + "smithy.api#documentation": "A list of the MediaConnect Flows that you want to use in this input. You can specify as few as one\nFlow and presently, as many as two. The only requirement is when you have more than one is that each Flow is in a\nseparate Availability Zone as this ensures your EML input is redundant to AZ issues.", + "smithy.api#jsonName": "mediaConnectFlows" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Name of the input.", + "smithy.api#jsonName": "name" + } + }, + "RequestId": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Unique identifier of the request to ensure the request is handled\nexactly once in case of retries.", + "smithy.api#idempotencyToken": {}, "smithy.api#jsonName": "requestId" } }, + "RoleArn": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The Amazon Resource Name (ARN) of the role this input assumes during and after creation.", + "smithy.api#jsonName": "roleArn" + } + }, + "Sources": { + "target": "com.amazonaws.medialive#__listOfInputSourceRequest", + "traits": { + "smithy.api#documentation": "The source URLs for a PULL-type input. Every PULL type input needs\nexactly two source URLs for redundancy.\nOnly specify sources for PULL type Inputs. Leave Destinations empty.", + "smithy.api#jsonName": "sources" + } + }, "Tags": { "target": "com.amazonaws.medialive#Tags", "traits": { "smithy.api#documentation": "A collection of key-value pairs.", "smithy.api#jsonName": "tags" } + }, + "Type": { + "target": "com.amazonaws.medialive#InputType", + "traits": { + "smithy.api#jsonName": "type" + } + }, + "Vpc": { + "target": "com.amazonaws.medialive#InputVpcRequest", + "traits": { + "smithy.api#jsonName": "vpc" + } } }, "traits": { - "smithy.api#documentation": "A request to create a partner input", + "smithy.api#documentation": "The name of the input", "smithy.api#input": {} } }, - "com.amazonaws.medialive#CreatePartnerInputResponse": { + "com.amazonaws.medialive#CreateInputResponse": { "type": "structure", "members": { "Input": { @@ -4296,218 +4980,92 @@ } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for CreatePartnerInputResponse", + "smithy.api#documentation": "Placeholder documentation for CreateInputResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#CreateTags": { + "com.amazonaws.medialive#CreateInputSecurityGroup": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#CreateTagsRequest" + "target": "com.amazonaws.medialive#CreateInputSecurityGroupRequest" }, "output": { - "target": "smithy.api#Unit" + "target": "com.amazonaws.medialive#CreateInputSecurityGroupResponse" }, "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" + }, { "target": "com.amazonaws.medialive#BadRequestException" }, { "target": "com.amazonaws.medialive#ForbiddenException" }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, { "target": "com.amazonaws.medialive#InternalServerErrorException" }, { - "target": "com.amazonaws.medialive#NotFoundException" + "target": "com.amazonaws.medialive#TooManyRequestsException" } ], "traits": { - "smithy.api#documentation": "Create tags for a resource", + "smithy.api#documentation": "Creates a Input Security Group", "smithy.api#http": { "method": "POST", - "uri": "/prod/tags/{ResourceArn}", - "code": 204 + "uri": "/prod/inputSecurityGroups", + "code": 200 } } }, - "com.amazonaws.medialive#CreateTagsRequest": { + "com.amazonaws.medialive#CreateInputSecurityGroupRequest": { "type": "structure", "members": { - "ResourceArn": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - }, "Tags": { "target": "com.amazonaws.medialive#Tags", "traits": { + "smithy.api#documentation": "A collection of key-value pairs.", "smithy.api#jsonName": "tags" } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for CreateTagsRequest", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#DashRoleAudio": { - "type": "enum", - "members": { - "ALTERNATE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ALTERNATE" - } - }, - "COMMENTARY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "COMMENTARY" - } - }, - "DESCRIPTION": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DESCRIPTION" - } - }, - "DUB": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DUB" - } - }, - "EMERGENCY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "EMERGENCY" - } - }, - "ENHANCED_AUDIO_INTELLIGIBILITY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ENHANCED-AUDIO-INTELLIGIBILITY" - } - }, - "KARAOKE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "KARAOKE" - } - }, - "MAIN": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "MAIN" - } }, - "SUPPLEMENTARY": { - "target": "smithy.api#Unit", + "WhitelistRules": { + "target": "com.amazonaws.medialive#__listOfInputWhitelistRuleCidr", "traits": { - "smithy.api#enumValue": "SUPPLEMENTARY" + "smithy.api#documentation": "List of IPv4 CIDR addresses to whitelist", + "smithy.api#jsonName": "whitelistRules" } } }, "traits": { - "smithy.api#documentation": "Dash Role Audio" + "smithy.api#documentation": "The IPv4 CIDRs to whitelist for this Input Security Group", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#DashRoleCaption": { - "type": "enum", + "com.amazonaws.medialive#CreateInputSecurityGroupResponse": { + "type": "structure", "members": { - "ALTERNATE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ALTERNATE" - } - }, - "CAPTION": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CAPTION" - } - }, - "COMMENTARY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "COMMENTARY" - } - }, - "DESCRIPTION": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DESCRIPTION" - } - }, - "DUB": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DUB" - } - }, - "EASYREADER": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "EASYREADER" - } - }, - "EMERGENCY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "EMERGENCY" - } - }, - "FORCED_SUBTITLE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "FORCED-SUBTITLE" - } - }, - "KARAOKE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "KARAOKE" - } - }, - "MAIN": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "MAIN" - } - }, - "METADATA": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "METADATA" - } - }, - "SUBTITLE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SUBTITLE" - } - }, - "SUPPLEMENTARY": { - "target": "smithy.api#Unit", + "SecurityGroup": { + "target": "com.amazonaws.medialive#InputSecurityGroup", "traits": { - "smithy.api#enumValue": "SUPPLEMENTARY" + "smithy.api#jsonName": "securityGroup" } } }, "traits": { - "smithy.api#documentation": "Dash Role Caption" + "smithy.api#documentation": "Placeholder documentation for CreateInputSecurityGroupResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#DeleteChannel": { + "com.amazonaws.medialive#CreateMultiplex": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DeleteChannelRequest" + "target": "com.amazonaws.medialive#CreateMultiplexRequest" }, "output": { - "target": "com.amazonaws.medialive#DeleteChannelResponse" + "target": "com.amazonaws.medialive#CreateMultiplexResponse" }, "errors": [ { @@ -4529,149 +5087,163 @@ "target": "com.amazonaws.medialive#InternalServerErrorException" }, { - "target": "com.amazonaws.medialive#NotFoundException" + "target": "com.amazonaws.medialive#TooManyRequestsException" }, { - "target": "com.amazonaws.medialive#TooManyRequestsException" + "target": "com.amazonaws.medialive#UnprocessableEntityException" } ], "traits": { - "smithy.api#documentation": "Starts deletion of channel. The associated outputs are also deleted.", + "smithy.api#documentation": "Create a new multiplex.", "smithy.api#http": { - "method": "DELETE", - "uri": "/prod/channels/{ChannelId}", - "code": 200 + "method": "POST", + "uri": "/prod/multiplexes", + "code": 201 } } }, - "com.amazonaws.medialive#DeleteChannelRequest": { - "type": "structure", - "members": { - "ChannelId": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Unique ID of the channel.", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - } + "com.amazonaws.medialive#CreateMultiplexProgram": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#CreateMultiplexProgramRequest" + }, + "output": { + "target": "com.amazonaws.medialive#CreateMultiplexProgramResponse" }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" + }, + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ConflictException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + }, + { + "target": "com.amazonaws.medialive#UnprocessableEntityException" + } + ], "traits": { - "smithy.api#documentation": "Placeholder documentation for DeleteChannelRequest", - "smithy.api#input": {} + "smithy.api#documentation": "Create a new program in the multiplex.", + "smithy.api#http": { + "method": "POST", + "uri": "/prod/multiplexes/{MultiplexId}/programs", + "code": 201 + } } }, - "com.amazonaws.medialive#DeleteChannelResponse": { + "com.amazonaws.medialive#CreateMultiplexProgramRequest": { "type": "structure", "members": { - "Arn": { + "MultiplexId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The unique arn of the channel.", - "smithy.api#jsonName": "arn" - } - }, - "CdiInputSpecification": { - "target": "com.amazonaws.medialive#CdiInputSpecification", - "traits": { - "smithy.api#documentation": "Specification of CDI inputs for this channel", - "smithy.api#jsonName": "cdiInputSpecification" - } - }, - "ChannelClass": { - "target": "com.amazonaws.medialive#ChannelClass", - "traits": { - "smithy.api#documentation": "The class for this channel. STANDARD for a channel with two pipelines or SINGLE_PIPELINE for a channel with one pipeline.", - "smithy.api#jsonName": "channelClass" - } - }, - "Destinations": { - "target": "com.amazonaws.medialive#__listOfOutputDestination", - "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "destinations" - } - }, - "EgressEndpoints": { - "target": "com.amazonaws.medialive#__listOfChannelEgressEndpoint", - "traits": { - "smithy.api#documentation": "The endpoints where outgoing connections initiate from", - "smithy.api#jsonName": "egressEndpoints" + "smithy.api#documentation": "ID of the multiplex where the program is to be created.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, - "EncoderSettings": { - "target": "com.amazonaws.medialive#EncoderSettings", + "MultiplexProgramSettings": { + "target": "com.amazonaws.medialive#MultiplexProgramSettings", "traits": { - "smithy.api#jsonName": "encoderSettings" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The settings for this multiplex program.", + "smithy.api#jsonName": "multiplexProgramSettings", + "smithy.api#required": {} } }, - "Id": { + "ProgramName": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The unique id of the channel.", - "smithy.api#jsonName": "id" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Name of multiplex program.", + "smithy.api#jsonName": "programName", + "smithy.api#required": {} } }, - "InputAttachments": { - "target": "com.amazonaws.medialive#__listOfInputAttachment", + "RequestId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "List of input attachments for channel.", - "smithy.api#jsonName": "inputAttachments" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Unique request ID. This prevents retries from creating multiple\nresources.", + "smithy.api#idempotencyToken": {}, + "smithy.api#jsonName": "requestId", + "smithy.api#required": {} } - }, - "InputSpecification": { - "target": "com.amazonaws.medialive#InputSpecification", + } + }, + "traits": { + "smithy.api#documentation": "A request to create a program in a multiplex.", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#CreateMultiplexProgramResponse": { + "type": "structure", + "members": { + "MultiplexProgram": { + "target": "com.amazonaws.medialive#MultiplexProgram", "traits": { - "smithy.api#documentation": "Specification of network and file inputs for this channel", - "smithy.api#jsonName": "inputSpecification" + "smithy.api#documentation": "The newly created multiplex program.", + "smithy.api#jsonName": "multiplexProgram" } - }, - "LogLevel": { - "target": "com.amazonaws.medialive#LogLevel", + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for CreateMultiplexProgramResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#CreateMultiplexRequest": { + "type": "structure", + "members": { + "AvailabilityZones": { + "target": "com.amazonaws.medialive#__listOf__string", "traits": { - "smithy.api#documentation": "The log level being written to CloudWatch Logs.", - "smithy.api#jsonName": "logLevel" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A list of availability zones for the multiplex. You must specify exactly two.", + "smithy.api#jsonName": "availabilityZones", + "smithy.api#required": {} } }, - "Maintenance": { - "target": "com.amazonaws.medialive#MaintenanceStatus", + "MultiplexSettings": { + "target": "com.amazonaws.medialive#MultiplexSettings", "traits": { - "smithy.api#documentation": "Maintenance settings for this channel.", - "smithy.api#jsonName": "maintenance" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Configuration for a multiplex event.", + "smithy.api#jsonName": "multiplexSettings", + "smithy.api#required": {} } }, "Name": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The name of the channel. (user-mutable)", - "smithy.api#jsonName": "name" - } - }, - "PipelineDetails": { - "target": "com.amazonaws.medialive#__listOfPipelineDetail", - "traits": { - "smithy.api#documentation": "Runtime details for the pipelines of a running channel.", - "smithy.api#jsonName": "pipelineDetails" - } - }, - "PipelinesRunningCount": { - "target": "com.amazonaws.medialive#__integer", - "traits": { - "smithy.api#documentation": "The number of currently healthy pipelines.", - "smithy.api#jsonName": "pipelinesRunningCount" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Name of multiplex.", + "smithy.api#jsonName": "name", + "smithy.api#required": {} } }, - "RoleArn": { + "RequestId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The Amazon Resource Name (ARN) of the role assumed when running the Channel.", - "smithy.api#jsonName": "roleArn" - } - }, - "State": { - "target": "com.amazonaws.medialive#ChannelState", - "traits": { - "smithy.api#jsonName": "state" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Unique request ID. This prevents retries from creating multiple\nresources.", + "smithy.api#idempotencyToken": {}, + "smithy.api#jsonName": "requestId", + "smithy.api#required": {} } }, "Tags": { @@ -4680,27 +5252,36 @@ "smithy.api#documentation": "A collection of key-value pairs.", "smithy.api#jsonName": "tags" } - }, - "Vpc": { - "target": "com.amazonaws.medialive#VpcOutputSettingsDescription", + } + }, + "traits": { + "smithy.api#documentation": "A request to create a multiplex.", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#CreateMultiplexResponse": { + "type": "structure", + "members": { + "Multiplex": { + "target": "com.amazonaws.medialive#Multiplex", "traits": { - "smithy.api#documentation": "Settings for VPC output", - "smithy.api#jsonName": "vpc" + "smithy.api#documentation": "The newly created multiplex.", + "smithy.api#jsonName": "multiplex" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DeleteChannelResponse", + "smithy.api#documentation": "Placeholder documentation for CreateMultiplexResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#DeleteInput": { + "com.amazonaws.medialive#CreatePartnerInput": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DeleteInputRequest" + "target": "com.amazonaws.medialive#CreatePartnerInputRequest" }, "output": { - "target": "com.amazonaws.medialive#DeleteInputResponse" + "target": "com.amazonaws.medialive#CreatePartnerInputResponse" }, "errors": [ { @@ -4709,9 +5290,6 @@ { "target": "com.amazonaws.medialive#BadRequestException" }, - { - "target": "com.amazonaws.medialive#ConflictException" - }, { "target": "com.amazonaws.medialive#ForbiddenException" }, @@ -4721,67 +5299,83 @@ { "target": "com.amazonaws.medialive#InternalServerErrorException" }, - { - "target": "com.amazonaws.medialive#NotFoundException" - }, { "target": "com.amazonaws.medialive#TooManyRequestsException" } ], "traits": { - "smithy.api#documentation": "Deletes the input end point", + "smithy.api#documentation": "Create a partner input", "smithy.api#http": { - "method": "DELETE", - "uri": "/prod/inputs/{InputId}", - "code": 200 + "method": "POST", + "uri": "/prod/inputs/{InputId}/partners", + "code": 201 } } }, - "com.amazonaws.medialive#DeleteInputRequest": { + "com.amazonaws.medialive#CreatePartnerInputRequest": { "type": "structure", "members": { "InputId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Unique ID of the input", + "smithy.api#documentation": "Unique ID of the input.", "smithy.api#httpLabel": {}, "smithy.api#required": {} } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for DeleteInputRequest", + }, + "RequestId": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Unique identifier of the request to ensure the request is handled\nexactly once in case of retries.", + "smithy.api#idempotencyToken": {}, + "smithy.api#jsonName": "requestId" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#Tags", + "traits": { + "smithy.api#documentation": "A collection of key-value pairs.", + "smithy.api#jsonName": "tags" + } + } + }, + "traits": { + "smithy.api#documentation": "A request to create a partner input", "smithy.api#input": {} } }, - "com.amazonaws.medialive#DeleteInputResponse": { + "com.amazonaws.medialive#CreatePartnerInputResponse": { "type": "structure", - "members": {}, + "members": { + "Input": { + "target": "com.amazonaws.medialive#Input", + "traits": { + "smithy.api#jsonName": "input" + } + } + }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DeleteInputResponse", + "smithy.api#documentation": "Placeholder documentation for CreatePartnerInputResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#DeleteInputSecurityGroup": { + "com.amazonaws.medialive#CreateSignalMap": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DeleteInputSecurityGroupRequest" + "target": "com.amazonaws.medialive#CreateSignalMapRequest" }, "output": { - "target": "com.amazonaws.medialive#DeleteInputSecurityGroupResponse" + "target": "com.amazonaws.medialive#CreateSignalMapResponse" }, "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, { "target": "com.amazonaws.medialive#BadRequestException" }, { - "target": "com.amazonaws.medialive#ForbiddenException" + "target": "com.amazonaws.medialive#ConflictException" }, { - "target": "com.amazonaws.medialive#GatewayTimeoutException" + "target": "com.amazonaws.medialive#ForbiddenException" }, { "target": "com.amazonaws.medialive#InternalServerErrorException" @@ -4794,297 +5388,398 @@ } ], "traits": { - "smithy.api#documentation": "Deletes an Input Security Group", + "smithy.api#documentation": "Initiates the creation of a new signal map. Will discover a new mediaResourceMap based on the provided discoveryEntryPointArn.", "smithy.api#http": { - "method": "DELETE", - "uri": "/prod/inputSecurityGroups/{InputSecurityGroupId}", - "code": 200 + "method": "POST", + "uri": "/prod/signal-maps", + "code": 201 } } }, - "com.amazonaws.medialive#DeleteInputSecurityGroupRequest": { + "com.amazonaws.medialive#CreateSignalMapRequest": { "type": "structure", "members": { - "InputSecurityGroupId": { - "target": "com.amazonaws.medialive#__string", + "CloudWatchAlarmTemplateGroupIdentifiers": { + "target": "com.amazonaws.medialive#__listOf__stringPatternS", "traits": { - "smithy.api#documentation": "The Input Security Group to delete", - "smithy.api#httpLabel": {}, + "smithy.api#jsonName": "cloudWatchAlarmTemplateGroupIdentifiers" + } + }, + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", + "traits": { + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" + } + }, + "DiscoveryEntryPointArn": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A top-level supported AWS resource ARN to discovery a signal map from.", + "smithy.api#jsonName": "discoveryEntryPointArn", + "smithy.api#required": {} + } + }, + "EventBridgeRuleTemplateGroupIdentifiers": { + "target": "com.amazonaws.medialive#__listOf__stringPatternS", + "traits": { + "smithy.api#jsonName": "eventBridgeRuleTemplateGroupIdentifiers" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name", "smithy.api#required": {} } + }, + "Tags": { + "target": "com.amazonaws.medialive#TagMap", + "traits": { + "smithy.api#jsonName": "tags" + } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DeleteInputSecurityGroupRequest", + "smithy.api#documentation": "Placeholder documentation for CreateSignalMapRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#DeleteInputSecurityGroupResponse": { + "com.amazonaws.medialive#CreateSignalMapResponse": { "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Placeholder documentation for DeleteInputSecurityGroupResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#DeleteMultiplex": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#DeleteMultiplexRequest" - }, - "output": { - "target": "com.amazonaws.medialive#DeleteMultiplexResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" + "members": { + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveSignalMap", + "traits": { + "smithy.api#documentation": "A signal map's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" + } }, - { - "target": "com.amazonaws.medialive#BadRequestException" + "CloudWatchAlarmTemplateGroupIds": { + "target": "com.amazonaws.medialive#__listOf__stringMin7Max11PatternAws097", + "traits": { + "smithy.api#jsonName": "cloudWatchAlarmTemplateGroupIds" + } }, - { - "target": "com.amazonaws.medialive#ConflictException" + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "createdAt" + } }, - { - "target": "com.amazonaws.medialive#ForbiddenException" + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", + "traits": { + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" + } }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" + "DiscoveryEntryPointArn": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", + "traits": { + "smithy.api#documentation": "A top-level supported AWS resource ARN to discovery a signal map from.", + "smithy.api#jsonName": "discoveryEntryPointArn" + } }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" + "ErrorMessage": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", + "traits": { + "smithy.api#documentation": "Error message associated with a failed creation or failed update attempt of a signal map.", + "smithy.api#jsonName": "errorMessage" + } }, - { - "target": "com.amazonaws.medialive#NotFoundException" + "EventBridgeRuleTemplateGroupIds": { + "target": "com.amazonaws.medialive#__listOf__stringMin7Max11PatternAws097", + "traits": { + "smithy.api#jsonName": "eventBridgeRuleTemplateGroupIds" + } }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" + "FailedMediaResourceMap": { + "target": "com.amazonaws.medialive#FailedMediaResourceMap", + "traits": { + "smithy.api#jsonName": "failedMediaResourceMap" + } + }, + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", + "traits": { + "smithy.api#documentation": "A signal map's id.", + "smithy.api#jsonName": "id" + } + }, + "LastDiscoveredAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "lastDiscoveredAt" + } + }, + "LastSuccessfulMonitorDeployment": { + "target": "com.amazonaws.medialive#SuccessfulMonitorDeployment", + "traits": { + "smithy.api#jsonName": "lastSuccessfulMonitorDeployment" + } + }, + "MediaResourceMap": { + "target": "com.amazonaws.medialive#MediaResourceMap", + "traits": { + "smithy.api#jsonName": "mediaResourceMap" + } + }, + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "modifiedAt" + } + }, + "MonitorChangesPendingDeployment": { + "target": "com.amazonaws.medialive#__boolean", + "traits": { + "smithy.api#documentation": "If true, there are pending monitor changes for this signal map that can be deployed.", + "smithy.api#jsonName": "monitorChangesPendingDeployment" + } + }, + "MonitorDeployment": { + "target": "com.amazonaws.medialive#MonitorDeployment", + "traits": { + "smithy.api#jsonName": "monitorDeployment" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" + } + }, + "Status": { + "target": "com.amazonaws.medialive#SignalMapStatus", + "traits": { + "smithy.api#jsonName": "status" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#TagMap", + "traits": { + "smithy.api#jsonName": "tags" + } } - ], + }, "traits": { - "smithy.api#documentation": "Delete a multiplex. The multiplex must be idle.", - "smithy.api#http": { - "method": "DELETE", - "uri": "/prod/multiplexes/{MultiplexId}", - "code": 202 - } + "smithy.api#documentation": "Placeholder documentation for CreateSignalMapResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#DeleteMultiplexProgram": { + "com.amazonaws.medialive#CreateTags": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DeleteMultiplexProgramRequest" + "target": "com.amazonaws.medialive#CreateTagsRequest" }, "output": { - "target": "com.amazonaws.medialive#DeleteMultiplexProgramResponse" + "target": "smithy.api#Unit" }, "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, { "target": "com.amazonaws.medialive#BadRequestException" }, - { - "target": "com.amazonaws.medialive#ConflictException" - }, { "target": "com.amazonaws.medialive#ForbiddenException" }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, { "target": "com.amazonaws.medialive#InternalServerErrorException" }, { "target": "com.amazonaws.medialive#NotFoundException" - }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" } ], "traits": { - "smithy.api#documentation": "Delete a program from a multiplex.", + "smithy.api#documentation": "Create tags for a resource", "smithy.api#http": { - "method": "DELETE", - "uri": "/prod/multiplexes/{MultiplexId}/programs/{ProgramName}", - "code": 200 + "method": "POST", + "uri": "/prod/tags/{ResourceArn}", + "code": 204 } } }, - "com.amazonaws.medialive#DeleteMultiplexProgramRequest": { + "com.amazonaws.medialive#CreateTagsRequest": { "type": "structure", "members": { - "MultiplexId": { + "ResourceArn": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The ID of the multiplex that the program belongs to.", "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "ProgramName": { - "target": "com.amazonaws.medialive#__string", + "Tags": { + "target": "com.amazonaws.medialive#Tags", "traits": { - "smithy.api#documentation": "The multiplex program name.", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DeleteMultiplexProgramRequest", + "smithy.api#documentation": "Placeholder documentation for CreateTagsRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#DeleteMultiplexProgramResponse": { - "type": "structure", + "com.amazonaws.medialive#DashRoleAudio": { + "type": "enum", "members": { - "ChannelId": { - "target": "com.amazonaws.medialive#__string", + "ALTERNATE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The MediaLive channel associated with the program.", - "smithy.api#jsonName": "channelId" + "smithy.api#enumValue": "ALTERNATE" } }, - "MultiplexProgramSettings": { - "target": "com.amazonaws.medialive#MultiplexProgramSettings", + "COMMENTARY": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The settings for this multiplex program.", - "smithy.api#jsonName": "multiplexProgramSettings" + "smithy.api#enumValue": "COMMENTARY" } }, - "PacketIdentifiersMap": { - "target": "com.amazonaws.medialive#MultiplexProgramPacketIdentifiersMap", + "DESCRIPTION": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The packet identifier map for this multiplex program.", - "smithy.api#jsonName": "packetIdentifiersMap" + "smithy.api#enumValue": "DESCRIPTION" } }, - "PipelineDetails": { - "target": "com.amazonaws.medialive#__listOfMultiplexProgramPipelineDetail", + "DUB": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Contains information about the current sources for the specified program in the specified multiplex. Keep in mind that each multiplex pipeline connects to both pipelines in a given source channel (the channel identified by the program). But only one of those channel pipelines is ever active at one time.", - "smithy.api#jsonName": "pipelineDetails" + "smithy.api#enumValue": "DUB" } }, - "ProgramName": { - "target": "com.amazonaws.medialive#__string", + "EMERGENCY": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The name of the multiplex program.", - "smithy.api#jsonName": "programName" + "smithy.api#enumValue": "EMERGENCY" } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for DeleteMultiplexProgramResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#DeleteMultiplexRequest": { - "type": "structure", - "members": { - "MultiplexId": { - "target": "com.amazonaws.medialive#__string", + }, + "ENHANCED_AUDIO_INTELLIGIBILITY": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The ID of the multiplex.", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#enumValue": "ENHANCED-AUDIO-INTELLIGIBILITY" + } + }, + "KARAOKE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KARAOKE" + } + }, + "MAIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MAIN" + } + }, + "SUPPLEMENTARY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUPPLEMENTARY" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DeleteMultiplexRequest", - "smithy.api#input": {} + "smithy.api#documentation": "Dash Role Audio" } }, - "com.amazonaws.medialive#DeleteMultiplexResponse": { - "type": "structure", + "com.amazonaws.medialive#DashRoleCaption": { + "type": "enum", "members": { - "Arn": { - "target": "com.amazonaws.medialive#__string", + "ALTERNATE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The unique arn of the multiplex.", - "smithy.api#jsonName": "arn" + "smithy.api#enumValue": "ALTERNATE" } }, - "AvailabilityZones": { - "target": "com.amazonaws.medialive#__listOf__string", + "CAPTION": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "A list of availability zones for the multiplex.", - "smithy.api#jsonName": "availabilityZones" + "smithy.api#enumValue": "CAPTION" } }, - "Destinations": { - "target": "com.amazonaws.medialive#__listOfMultiplexOutputDestination", + "COMMENTARY": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "A list of the multiplex output destinations.", - "smithy.api#jsonName": "destinations" + "smithy.api#enumValue": "COMMENTARY" } }, - "Id": { - "target": "com.amazonaws.medialive#__string", + "DESCRIPTION": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The unique id of the multiplex.", - "smithy.api#jsonName": "id" + "smithy.api#enumValue": "DESCRIPTION" } }, - "MultiplexSettings": { - "target": "com.amazonaws.medialive#MultiplexSettings", + "DUB": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Configuration for a multiplex event.", - "smithy.api#jsonName": "multiplexSettings" + "smithy.api#enumValue": "DUB" } }, - "Name": { - "target": "com.amazonaws.medialive#__string", + "EASYREADER": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The name of the multiplex.", - "smithy.api#jsonName": "name" + "smithy.api#enumValue": "EASYREADER" } }, - "PipelinesRunningCount": { - "target": "com.amazonaws.medialive#__integer", + "EMERGENCY": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The number of currently healthy pipelines.", - "smithy.api#jsonName": "pipelinesRunningCount" + "smithy.api#enumValue": "EMERGENCY" } }, - "ProgramCount": { - "target": "com.amazonaws.medialive#__integer", + "FORCED_SUBTITLE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The number of programs in the multiplex.", - "smithy.api#jsonName": "programCount" + "smithy.api#enumValue": "FORCED-SUBTITLE" } }, - "State": { - "target": "com.amazonaws.medialive#MultiplexState", + "KARAOKE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The current state of the multiplex.", - "smithy.api#jsonName": "state" + "smithy.api#enumValue": "KARAOKE" } }, - "Tags": { - "target": "com.amazonaws.medialive#Tags", + "MAIN": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "A collection of key-value pairs.", - "smithy.api#jsonName": "tags" + "smithy.api#enumValue": "MAIN" + } + }, + "METADATA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "METADATA" + } + }, + "SUBTITLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUBTITLE" + } + }, + "SUPPLEMENTARY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUPPLEMENTARY" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DeleteMultiplexResponse", - "smithy.api#output": {} + "smithy.api#documentation": "Dash Role Caption" } }, - "com.amazonaws.medialive#DeleteReservation": { + "com.amazonaws.medialive#DeleteChannel": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DeleteReservationRequest" + "target": "com.amazonaws.medialive#DeleteChannelRequest" }, "output": { - "target": "com.amazonaws.medialive#DeleteReservationResponse" + "target": "com.amazonaws.medialive#DeleteChannelResponse" }, "errors": [ { @@ -5113,193 +5808,218 @@ } ], "traits": { - "smithy.api#documentation": "Delete an expired reservation.", + "smithy.api#documentation": "Starts deletion of channel. The associated outputs are also deleted.", "smithy.api#http": { "method": "DELETE", - "uri": "/prod/reservations/{ReservationId}", + "uri": "/prod/channels/{ChannelId}", "code": 200 } } }, - "com.amazonaws.medialive#DeleteReservationRequest": { + "com.amazonaws.medialive#DeleteChannelRequest": { "type": "structure", "members": { - "ReservationId": { + "ChannelId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Unique reservation ID, e.g. '1234567'", + "smithy.api#documentation": "Unique ID of the channel.", "smithy.api#httpLabel": {}, "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DeleteReservationRequest", + "smithy.api#documentation": "Placeholder documentation for DeleteChannelRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#DeleteReservationResponse": { + "com.amazonaws.medialive#DeleteChannelResponse": { "type": "structure", "members": { "Arn": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Unique reservation ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'", + "smithy.api#documentation": "The unique arn of the channel.", "smithy.api#jsonName": "arn" } }, - "Count": { - "target": "com.amazonaws.medialive#__integer", + "CdiInputSpecification": { + "target": "com.amazonaws.medialive#CdiInputSpecification", "traits": { - "smithy.api#documentation": "Number of reserved resources", - "smithy.api#jsonName": "count" + "smithy.api#documentation": "Specification of CDI inputs for this channel", + "smithy.api#jsonName": "cdiInputSpecification" } }, - "CurrencyCode": { - "target": "com.amazonaws.medialive#__string", + "ChannelClass": { + "target": "com.amazonaws.medialive#ChannelClass", "traits": { - "smithy.api#documentation": "Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'", - "smithy.api#jsonName": "currencyCode" + "smithy.api#documentation": "The class for this channel. STANDARD for a channel with two pipelines or SINGLE_PIPELINE for a channel with one pipeline.", + "smithy.api#jsonName": "channelClass" } }, - "Duration": { - "target": "com.amazonaws.medialive#__integer", + "Destinations": { + "target": "com.amazonaws.medialive#__listOfOutputDestination", "traits": { - "smithy.api#documentation": "Lease duration, e.g. '12'", - "smithy.api#jsonName": "duration" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "destinations" } }, - "DurationUnits": { - "target": "com.amazonaws.medialive#OfferingDurationUnits", + "EgressEndpoints": { + "target": "com.amazonaws.medialive#__listOfChannelEgressEndpoint", "traits": { - "smithy.api#documentation": "Units for duration, e.g. 'MONTHS'", - "smithy.api#jsonName": "durationUnits" + "smithy.api#documentation": "The endpoints where outgoing connections initiate from", + "smithy.api#jsonName": "egressEndpoints" } }, - "End": { - "target": "com.amazonaws.medialive#__string", + "EncoderSettings": { + "target": "com.amazonaws.medialive#EncoderSettings", "traits": { - "smithy.api#documentation": "Reservation UTC end date and time in ISO-8601 format, e.g. '2019-03-01T00:00:00'", - "smithy.api#jsonName": "end" + "smithy.api#jsonName": "encoderSettings" } }, - "FixedPrice": { - "target": "com.amazonaws.medialive#__double", + "Id": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering", - "smithy.api#jsonName": "fixedPrice" + "smithy.api#documentation": "The unique id of the channel.", + "smithy.api#jsonName": "id" } }, - "Name": { - "target": "com.amazonaws.medialive#__string", + "InputAttachments": { + "target": "com.amazonaws.medialive#__listOfInputAttachment", "traits": { - "smithy.api#documentation": "User specified reservation name", - "smithy.api#jsonName": "name" + "smithy.api#documentation": "List of input attachments for channel.", + "smithy.api#jsonName": "inputAttachments" } }, - "OfferingDescription": { - "target": "com.amazonaws.medialive#__string", + "InputSpecification": { + "target": "com.amazonaws.medialive#InputSpecification", "traits": { - "smithy.api#documentation": "Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'", - "smithy.api#jsonName": "offeringDescription" + "smithy.api#documentation": "Specification of network and file inputs for this channel", + "smithy.api#jsonName": "inputSpecification" } }, - "OfferingId": { - "target": "com.amazonaws.medialive#__string", + "LogLevel": { + "target": "com.amazonaws.medialive#LogLevel", "traits": { - "smithy.api#documentation": "Unique offering ID, e.g. '87654321'", - "smithy.api#jsonName": "offeringId" + "smithy.api#documentation": "The log level being written to CloudWatch Logs.", + "smithy.api#jsonName": "logLevel" } }, - "OfferingType": { - "target": "com.amazonaws.medialive#OfferingType", + "Maintenance": { + "target": "com.amazonaws.medialive#MaintenanceStatus", "traits": { - "smithy.api#documentation": "Offering type, e.g. 'NO_UPFRONT'", - "smithy.api#jsonName": "offeringType" + "smithy.api#documentation": "Maintenance settings for this channel.", + "smithy.api#jsonName": "maintenance" } }, - "Region": { + "Name": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "AWS region, e.g. 'us-west-2'", - "smithy.api#jsonName": "region" + "smithy.api#documentation": "The name of the channel. (user-mutable)", + "smithy.api#jsonName": "name" } }, - "RenewalSettings": { - "target": "com.amazonaws.medialive#RenewalSettings", + "PipelineDetails": { + "target": "com.amazonaws.medialive#__listOfPipelineDetail", "traits": { - "smithy.api#documentation": "Renewal settings for the reservation", - "smithy.api#jsonName": "renewalSettings" + "smithy.api#documentation": "Runtime details for the pipelines of a running channel.", + "smithy.api#jsonName": "pipelineDetails" } }, - "ReservationId": { - "target": "com.amazonaws.medialive#__string", + "PipelinesRunningCount": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#documentation": "Unique reservation ID, e.g. '1234567'", - "smithy.api#jsonName": "reservationId" - } - }, - "ResourceSpecification": { - "target": "com.amazonaws.medialive#ReservationResourceSpecification", - "traits": { - "smithy.api#documentation": "Resource configuration details", - "smithy.api#jsonName": "resourceSpecification" + "smithy.api#documentation": "The number of currently healthy pipelines.", + "smithy.api#jsonName": "pipelinesRunningCount" } }, - "Start": { + "RoleArn": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Reservation UTC start date and time in ISO-8601 format, e.g. '2018-03-01T00:00:00'", - "smithy.api#jsonName": "start" + "smithy.api#documentation": "The Amazon Resource Name (ARN) of the role assumed when running the Channel.", + "smithy.api#jsonName": "roleArn" } }, "State": { - "target": "com.amazonaws.medialive#ReservationState", + "target": "com.amazonaws.medialive#ChannelState", "traits": { - "smithy.api#documentation": "Current state of reservation, e.g. 'ACTIVE'", "smithy.api#jsonName": "state" } }, "Tags": { "target": "com.amazonaws.medialive#Tags", "traits": { - "smithy.api#documentation": "A collection of key-value pairs", + "smithy.api#documentation": "A collection of key-value pairs.", "smithy.api#jsonName": "tags" } }, - "UsagePrice": { - "target": "com.amazonaws.medialive#__double", + "Vpc": { + "target": "com.amazonaws.medialive#VpcOutputSettingsDescription", "traits": { - "smithy.api#documentation": "Recurring usage charge for each reserved resource, e.g. '157.0'", - "smithy.api#jsonName": "usagePrice" + "smithy.api#documentation": "Settings for VPC output", + "smithy.api#jsonName": "vpc" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DeleteReservationResponse", + "smithy.api#documentation": "Placeholder documentation for DeleteChannelResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#DeleteSchedule": { + "com.amazonaws.medialive#DeleteCloudWatchAlarmTemplate": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DeleteScheduleRequest" + "target": "com.amazonaws.medialive#DeleteCloudWatchAlarmTemplateRequest" }, "output": { - "target": "com.amazonaws.medialive#DeleteScheduleResponse" + "target": "smithy.api#Unit" }, "errors": [ { - "target": "com.amazonaws.medialive#BadGatewayException" + "target": "com.amazonaws.medialive#BadRequestException" }, { - "target": "com.amazonaws.medialive#BadRequestException" + "target": "com.amazonaws.medialive#ConflictException" }, { "target": "com.amazonaws.medialive#ForbiddenException" }, { - "target": "com.amazonaws.medialive#GatewayTimeoutException" + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Deletes a cloudwatch alarm template.", + "smithy.api#http": { + "method": "DELETE", + "uri": "/prod/cloudwatch-alarm-templates/{Identifier}", + "code": 204 + } + } + }, + "com.amazonaws.medialive#DeleteCloudWatchAlarmTemplateGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#DeleteCloudWatchAlarmTemplateGroupRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ConflictException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" }, { "target": "com.amazonaws.medialive#InternalServerErrorException" @@ -5312,43 +6032,52 @@ } ], "traits": { - "smithy.api#documentation": "Delete all schedule actions on a channel.", + "smithy.api#documentation": "Deletes a cloudwatch alarm template group. You must detach this group from all signal maps and ensure its existing templates are moved to another group or deleted.", "smithy.api#http": { "method": "DELETE", - "uri": "/prod/channels/{ChannelId}/schedule", - "code": 200 + "uri": "/prod/cloudwatch-alarm-template-groups/{Identifier}", + "code": 204 } } }, - "com.amazonaws.medialive#DeleteScheduleRequest": { + "com.amazonaws.medialive#DeleteCloudWatchAlarmTemplateGroupRequest": { "type": "structure", "members": { - "ChannelId": { + "Identifier": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Id of the channel whose schedule is being deleted.", + "smithy.api#documentation": "A cloudwatch alarm template group's identifier. Can be either be its id or current name.", "smithy.api#httpLabel": {}, "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DeleteScheduleRequest", + "smithy.api#documentation": "Placeholder documentation for DeleteCloudWatchAlarmTemplateGroupRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#DeleteScheduleResponse": { + "com.amazonaws.medialive#DeleteCloudWatchAlarmTemplateRequest": { "type": "structure", - "members": {}, + "members": { + "Identifier": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "A cloudwatch alarm template's identifier. Can be either be its id or current name.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DeleteScheduleResponse", - "smithy.api#output": {} + "smithy.api#documentation": "Placeholder documentation for DeleteCloudWatchAlarmTemplateRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#DeleteTags": { + "com.amazonaws.medialive#DeleteEventBridgeRuleTemplate": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DeleteTagsRequest" + "target": "com.amazonaws.medialive#DeleteEventBridgeRuleTemplateRequest" }, "output": { "target": "smithy.api#Unit" @@ -5357,6 +6086,9 @@ { "target": "com.amazonaws.medialive#BadRequestException" }, + { + "target": "com.amazonaws.medialive#ConflictException" + }, { "target": "com.amazonaws.medialive#ForbiddenException" }, @@ -5365,49 +6097,98 @@ }, { "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" } ], "traits": { - "smithy.api#documentation": "Removes tags for a resource", + "smithy.api#documentation": "Deletes an eventbridge rule template.", "smithy.api#http": { "method": "DELETE", - "uri": "/prod/tags/{ResourceArn}", + "uri": "/prod/eventbridge-rule-templates/{Identifier}", "code": 204 } } }, - "com.amazonaws.medialive#DeleteTagsRequest": { + "com.amazonaws.medialive#DeleteEventBridgeRuleTemplateGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#DeleteEventBridgeRuleTemplateGroupRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ConflictException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Deletes an eventbridge rule template group. You must detach this group from all signal maps and ensure its existing templates are moved to another group or deleted.", + "smithy.api#http": { + "method": "DELETE", + "uri": "/prod/eventbridge-rule-template-groups/{Identifier}", + "code": 204 + } + } + }, + "com.amazonaws.medialive#DeleteEventBridgeRuleTemplateGroupRequest": { "type": "structure", "members": { - "ResourceArn": { + "Identifier": { "target": "com.amazonaws.medialive#__string", "traits": { + "smithy.api#documentation": "An eventbridge rule template group's identifier. Can be either be its id or current name.", "smithy.api#httpLabel": {}, "smithy.api#required": {} } - }, - "TagKeys": { - "target": "com.amazonaws.medialive#__listOf__string", + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for DeleteEventBridgeRuleTemplateGroupRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#DeleteEventBridgeRuleTemplateRequest": { + "type": "structure", + "members": { + "Identifier": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "An array of tag keys to delete", - "smithy.api#httpQuery": "tagKeys", + "smithy.api#documentation": "An eventbridge rule template's identifier. Can be either be its id or current name.", + "smithy.api#httpLabel": {}, "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DeleteTagsRequest", + "smithy.api#documentation": "Placeholder documentation for DeleteEventBridgeRuleTemplateRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#DescribeAccountConfiguration": { + "com.amazonaws.medialive#DeleteInput": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DescribeAccountConfigurationRequest" + "target": "com.amazonaws.medialive#DeleteInputRequest" }, "output": { - "target": "com.amazonaws.medialive#DescribeAccountConfigurationResponse" + "target": "com.amazonaws.medialive#DeleteInputResponse" }, "errors": [ { @@ -5416,6 +6197,9 @@ { "target": "com.amazonaws.medialive#BadRequestException" }, + { + "target": "com.amazonaws.medialive#ConflictException" + }, { "target": "com.amazonaws.medialive#ForbiddenException" }, @@ -5425,49 +6209,54 @@ { "target": "com.amazonaws.medialive#InternalServerErrorException" }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, { "target": "com.amazonaws.medialive#TooManyRequestsException" } ], "traits": { - "smithy.api#documentation": "Describe account configuration", + "smithy.api#documentation": "Deletes the input end point", "smithy.api#http": { - "method": "GET", - "uri": "/prod/accountConfiguration", + "method": "DELETE", + "uri": "/prod/inputs/{InputId}", "code": 200 } } }, - "com.amazonaws.medialive#DescribeAccountConfigurationRequest": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeAccountConfigurationRequest", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#DescribeAccountConfigurationResponse": { + "com.amazonaws.medialive#DeleteInputRequest": { "type": "structure", "members": { - "AccountConfiguration": { - "target": "com.amazonaws.medialive#AccountConfiguration", + "InputId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#jsonName": "accountConfiguration" + "smithy.api#documentation": "Unique ID of the input", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeAccountConfigurationResponse", + "smithy.api#documentation": "Placeholder documentation for DeleteInputRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#DeleteInputResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Placeholder documentation for DeleteInputResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#DescribeChannel": { + "com.amazonaws.medialive#DeleteInputSecurityGroup": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DescribeChannelRequest" + "target": "com.amazonaws.medialive#DeleteInputSecurityGroupRequest" }, "output": { - "target": "com.amazonaws.medialive#DescribeChannelResponse" + "target": "com.amazonaws.medialive#DeleteInputSecurityGroupResponse" }, "errors": [ { @@ -5493,264 +6282,256 @@ } ], "traits": { - "smithy.api#documentation": "Gets details about a channel", + "smithy.api#documentation": "Deletes an Input Security Group", "smithy.api#http": { - "method": "GET", - "uri": "/prod/channels/{ChannelId}", + "method": "DELETE", + "uri": "/prod/inputSecurityGroups/{InputSecurityGroupId}", "code": 200 + } + } + }, + "com.amazonaws.medialive#DeleteInputSecurityGroupRequest": { + "type": "structure", + "members": { + "InputSecurityGroupId": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The Input Security Group to delete", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for DeleteInputSecurityGroupRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#DeleteInputSecurityGroupResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Placeholder documentation for DeleteInputSecurityGroupResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#DeleteMultiplex": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#DeleteMultiplexRequest" + }, + "output": { + "target": "com.amazonaws.medialive#DeleteMultiplexResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" }, - "smithy.waiters#waitable": { - "ChannelCreated": { - "documentation": "Wait until a channel has been created", - "acceptors": [ - { - "state": "success", - "matcher": { - "output": { - "path": "State", - "expected": "IDLE", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "output": { - "path": "State", - "expected": "CREATING", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "errorType": "InternalServerErrorException" - } - }, - { - "state": "failure", - "matcher": { - "output": { - "path": "State", - "expected": "CREATE_FAILED", - "comparator": "stringEquals" - } - } - } - ], - "minDelay": 3 - }, - "ChannelDeleted": { - "documentation": "Wait until a channel has been deleted", - "acceptors": [ - { - "state": "success", - "matcher": { - "output": { - "path": "State", - "expected": "DELETED", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "output": { - "path": "State", - "expected": "DELETING", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "errorType": "InternalServerErrorException" - } - } - ], - "minDelay": 5 - }, - "ChannelRunning": { - "documentation": "Wait until a channel is running", - "acceptors": [ - { - "state": "success", - "matcher": { - "output": { - "path": "State", - "expected": "RUNNING", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "output": { - "path": "State", - "expected": "STARTING", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "errorType": "InternalServerErrorException" - } - } - ], - "minDelay": 5 - }, - "ChannelStopped": { - "documentation": "Wait until a channel has is stopped", - "acceptors": [ - { - "state": "success", - "matcher": { - "output": { - "path": "State", - "expected": "IDLE", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "output": { - "path": "State", - "expected": "STOPPING", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "errorType": "InternalServerErrorException" - } - } - ], - "minDelay": 5 - } + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ConflictException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Delete a multiplex. The multiplex must be idle.", + "smithy.api#http": { + "method": "DELETE", + "uri": "/prod/multiplexes/{MultiplexId}", + "code": 202 } } }, - "com.amazonaws.medialive#DescribeChannelRequest": { + "com.amazonaws.medialive#DeleteMultiplexProgram": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#DeleteMultiplexProgramRequest" + }, + "output": { + "target": "com.amazonaws.medialive#DeleteMultiplexProgramResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" + }, + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ConflictException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Delete a program from a multiplex.", + "smithy.api#http": { + "method": "DELETE", + "uri": "/prod/multiplexes/{MultiplexId}/programs/{ProgramName}", + "code": 200 + } + } + }, + "com.amazonaws.medialive#DeleteMultiplexProgramRequest": { "type": "structure", "members": { - "ChannelId": { + "MultiplexId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "channel ID", + "smithy.api#documentation": "The ID of the multiplex that the program belongs to.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ProgramName": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The multiplex program name.", "smithy.api#httpLabel": {}, "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeChannelRequest", + "smithy.api#documentation": "Placeholder documentation for DeleteMultiplexProgramRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#DescribeChannelResponse": { + "com.amazonaws.medialive#DeleteMultiplexProgramResponse": { "type": "structure", "members": { - "Arn": { + "ChannelId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The unique arn of the channel.", - "smithy.api#jsonName": "arn" + "smithy.api#documentation": "The MediaLive channel associated with the program.", + "smithy.api#jsonName": "channelId" } }, - "CdiInputSpecification": { - "target": "com.amazonaws.medialive#CdiInputSpecification", + "MultiplexProgramSettings": { + "target": "com.amazonaws.medialive#MultiplexProgramSettings", "traits": { - "smithy.api#documentation": "Specification of CDI inputs for this channel", - "smithy.api#jsonName": "cdiInputSpecification" + "smithy.api#documentation": "The settings for this multiplex program.", + "smithy.api#jsonName": "multiplexProgramSettings" } }, - "ChannelClass": { - "target": "com.amazonaws.medialive#ChannelClass", + "PacketIdentifiersMap": { + "target": "com.amazonaws.medialive#MultiplexProgramPacketIdentifiersMap", "traits": { - "smithy.api#documentation": "The class for this channel. STANDARD for a channel with two pipelines or SINGLE_PIPELINE for a channel with one pipeline.", - "smithy.api#jsonName": "channelClass" + "smithy.api#documentation": "The packet identifier map for this multiplex program.", + "smithy.api#jsonName": "packetIdentifiersMap" } }, - "Destinations": { - "target": "com.amazonaws.medialive#__listOfOutputDestination", + "PipelineDetails": { + "target": "com.amazonaws.medialive#__listOfMultiplexProgramPipelineDetail", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "destinations" + "smithy.api#documentation": "Contains information about the current sources for the specified program in the specified multiplex. Keep in mind that each multiplex pipeline connects to both pipelines in a given source channel (the channel identified by the program). But only one of those channel pipelines is ever active at one time.", + "smithy.api#jsonName": "pipelineDetails" } }, - "EgressEndpoints": { - "target": "com.amazonaws.medialive#__listOfChannelEgressEndpoint", + "ProgramName": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The endpoints where outgoing connections initiate from", - "smithy.api#jsonName": "egressEndpoints" + "smithy.api#documentation": "The name of the multiplex program.", + "smithy.api#jsonName": "programName" } - }, - "EncoderSettings": { - "target": "com.amazonaws.medialive#EncoderSettings", + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for DeleteMultiplexProgramResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#DeleteMultiplexRequest": { + "type": "structure", + "members": { + "MultiplexId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#jsonName": "encoderSettings" + "smithy.api#documentation": "The ID of the multiplex.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } - }, - "Id": { + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for DeleteMultiplexRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#DeleteMultiplexResponse": { + "type": "structure", + "members": { + "Arn": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The unique id of the channel.", - "smithy.api#jsonName": "id" + "smithy.api#documentation": "The unique arn of the multiplex.", + "smithy.api#jsonName": "arn" } }, - "InputAttachments": { - "target": "com.amazonaws.medialive#__listOfInputAttachment", + "AvailabilityZones": { + "target": "com.amazonaws.medialive#__listOf__string", "traits": { - "smithy.api#documentation": "List of input attachments for channel.", - "smithy.api#jsonName": "inputAttachments" + "smithy.api#documentation": "A list of availability zones for the multiplex.", + "smithy.api#jsonName": "availabilityZones" } }, - "InputSpecification": { - "target": "com.amazonaws.medialive#InputSpecification", + "Destinations": { + "target": "com.amazonaws.medialive#__listOfMultiplexOutputDestination", "traits": { - "smithy.api#documentation": "Specification of network and file inputs for this channel", - "smithy.api#jsonName": "inputSpecification" + "smithy.api#documentation": "A list of the multiplex output destinations.", + "smithy.api#jsonName": "destinations" } }, - "LogLevel": { - "target": "com.amazonaws.medialive#LogLevel", + "Id": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The log level being written to CloudWatch Logs.", - "smithy.api#jsonName": "logLevel" + "smithy.api#documentation": "The unique id of the multiplex.", + "smithy.api#jsonName": "id" } }, - "Maintenance": { - "target": "com.amazonaws.medialive#MaintenanceStatus", + "MultiplexSettings": { + "target": "com.amazonaws.medialive#MultiplexSettings", "traits": { - "smithy.api#documentation": "Maintenance settings for this channel.", - "smithy.api#jsonName": "maintenance" + "smithy.api#documentation": "Configuration for a multiplex event.", + "smithy.api#jsonName": "multiplexSettings" } }, "Name": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The name of the channel. (user-mutable)", + "smithy.api#documentation": "The name of the multiplex.", "smithy.api#jsonName": "name" } }, - "PipelineDetails": { - "target": "com.amazonaws.medialive#__listOfPipelineDetail", - "traits": { - "smithy.api#documentation": "Runtime details for the pipelines of a running channel.", - "smithy.api#jsonName": "pipelineDetails" - } - }, "PipelinesRunningCount": { "target": "com.amazonaws.medialive#__integer", "traits": { @@ -5758,16 +6539,17 @@ "smithy.api#jsonName": "pipelinesRunningCount" } }, - "RoleArn": { - "target": "com.amazonaws.medialive#__string", + "ProgramCount": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#documentation": "The Amazon Resource Name (ARN) of the role assumed when running the Channel.", - "smithy.api#jsonName": "roleArn" + "smithy.api#documentation": "The number of programs in the multiplex.", + "smithy.api#jsonName": "programCount" } }, "State": { - "target": "com.amazonaws.medialive#ChannelState", + "target": "com.amazonaws.medialive#MultiplexState", "traits": { + "smithy.api#documentation": "The current state of the multiplex.", "smithy.api#jsonName": "state" } }, @@ -5777,27 +6559,20 @@ "smithy.api#documentation": "A collection of key-value pairs.", "smithy.api#jsonName": "tags" } - }, - "Vpc": { - "target": "com.amazonaws.medialive#VpcOutputSettingsDescription", - "traits": { - "smithy.api#documentation": "Settings for VPC output", - "smithy.api#jsonName": "vpc" - } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeChannelResponse", + "smithy.api#documentation": "Placeholder documentation for DeleteMultiplexResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#DescribeInput": { + "com.amazonaws.medialive#DeleteReservation": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DescribeInputRequest" + "target": "com.amazonaws.medialive#DeleteReservationRequest" }, "output": { - "target": "com.amazonaws.medialive#DescribeInputResponse" + "target": "com.amazonaws.medialive#DeleteReservationResponse" }, "errors": [ { @@ -5806,6 +6581,9 @@ { "target": "com.amazonaws.medialive#BadRequestException" }, + { + "target": "com.amazonaws.medialive#ConflictException" + }, { "target": "com.amazonaws.medialive#ForbiddenException" }, @@ -5823,307 +6601,180 @@ } ], "traits": { - "smithy.api#documentation": "Produces details about an input", + "smithy.api#documentation": "Delete an expired reservation.", "smithy.api#http": { - "method": "GET", - "uri": "/prod/inputs/{InputId}", + "method": "DELETE", + "uri": "/prod/reservations/{ReservationId}", "code": 200 - }, - "smithy.waiters#waitable": { - "InputAttached": { - "documentation": "Wait until an input has been attached", - "acceptors": [ - { - "state": "success", - "matcher": { - "output": { - "path": "State", - "expected": "ATTACHED", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "output": { - "path": "State", - "expected": "DETACHED", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "errorType": "InternalServerErrorException" - } - } - ], - "minDelay": 5 - }, - "InputDeleted": { - "documentation": "Wait until an input has been deleted", - "acceptors": [ - { - "state": "success", - "matcher": { - "output": { - "path": "State", - "expected": "DELETED", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "output": { - "path": "State", - "expected": "DELETING", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "errorType": "InternalServerErrorException" - } - } - ], - "minDelay": 5 - }, - "InputDetached": { - "documentation": "Wait until an input has been detached", - "acceptors": [ - { - "state": "success", - "matcher": { - "output": { - "path": "State", - "expected": "DETACHED", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "output": { - "path": "State", - "expected": "CREATING", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "output": { - "path": "State", - "expected": "ATTACHED", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "errorType": "InternalServerErrorException" - } - } - ], - "minDelay": 5 - } } } }, - "com.amazonaws.medialive#DescribeInputDevice": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#DescribeInputDeviceRequest" - }, - "output": { - "target": "com.amazonaws.medialive#DescribeInputDeviceResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" - }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" - }, - { - "target": "com.amazonaws.medialive#NotFoundException" - }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" - } - ], - "traits": { - "smithy.api#documentation": "Gets the details for the input device", - "smithy.api#http": { - "method": "GET", - "uri": "/prod/inputDevices/{InputDeviceId}", - "code": 200 - } - } - }, - "com.amazonaws.medialive#DescribeInputDeviceRequest": { - "type": "structure", - "members": { - "InputDeviceId": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The unique ID of this input device. For example, hd-123456789abcdef.", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - } + "com.amazonaws.medialive#DeleteReservationRequest": { + "type": "structure", + "members": { + "ReservationId": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Unique reservation ID, e.g. '1234567'", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeInputDeviceRequest", + "smithy.api#documentation": "Placeholder documentation for DeleteReservationRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#DescribeInputDeviceResponse": { + "com.amazonaws.medialive#DeleteReservationResponse": { "type": "structure", "members": { "Arn": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The unique ARN of the input device.", + "smithy.api#documentation": "Unique reservation ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'", "smithy.api#jsonName": "arn" } }, - "ConnectionState": { - "target": "com.amazonaws.medialive#InputDeviceConnectionState", + "Count": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#documentation": "The state of the connection between the input device and AWS.", - "smithy.api#jsonName": "connectionState" + "smithy.api#documentation": "Number of reserved resources", + "smithy.api#jsonName": "count" } }, - "DeviceSettingsSyncState": { - "target": "com.amazonaws.medialive#DeviceSettingsSyncState", + "CurrencyCode": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The status of the action to synchronize the device configuration. If you change the configuration of the input device (for example, the maximum bitrate), MediaLive sends the new data to the device. The device might not update itself immediately. SYNCED means the device has updated its configuration. SYNCING means that it has not updated its configuration.", - "smithy.api#jsonName": "deviceSettingsSyncState" + "smithy.api#documentation": "Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'", + "smithy.api#jsonName": "currencyCode" } }, - "DeviceUpdateStatus": { - "target": "com.amazonaws.medialive#DeviceUpdateStatus", + "Duration": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#documentation": "The status of software on the input device.", - "smithy.api#jsonName": "deviceUpdateStatus" + "smithy.api#documentation": "Lease duration, e.g. '12'", + "smithy.api#jsonName": "duration" } }, - "HdDeviceSettings": { - "target": "com.amazonaws.medialive#InputDeviceHdSettings", + "DurationUnits": { + "target": "com.amazonaws.medialive#OfferingDurationUnits", "traits": { - "smithy.api#documentation": "Settings that describe an input device that is type HD.", - "smithy.api#jsonName": "hdDeviceSettings" + "smithy.api#documentation": "Units for duration, e.g. 'MONTHS'", + "smithy.api#jsonName": "durationUnits" } }, - "Id": { + "End": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The unique ID of the input device.", - "smithy.api#jsonName": "id" + "smithy.api#documentation": "Reservation UTC end date and time in ISO-8601 format, e.g. '2019-03-01T00:00:00'", + "smithy.api#jsonName": "end" } }, - "MacAddress": { - "target": "com.amazonaws.medialive#__string", + "FixedPrice": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#documentation": "The network MAC address of the input device.", - "smithy.api#jsonName": "macAddress" + "smithy.api#documentation": "One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering", + "smithy.api#jsonName": "fixedPrice" } }, "Name": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "A name that you specify for the input device.", + "smithy.api#documentation": "User specified reservation name", "smithy.api#jsonName": "name" } }, - "NetworkSettings": { - "target": "com.amazonaws.medialive#InputDeviceNetworkSettings", + "OfferingDescription": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The network settings for the input device.", - "smithy.api#jsonName": "networkSettings" + "smithy.api#documentation": "Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'", + "smithy.api#jsonName": "offeringDescription" } }, - "SerialNumber": { + "OfferingId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The unique serial number of the input device.", - "smithy.api#jsonName": "serialNumber" + "smithy.api#documentation": "Unique offering ID, e.g. '87654321'", + "smithy.api#jsonName": "offeringId" } }, - "Type": { - "target": "com.amazonaws.medialive#InputDeviceType", + "OfferingType": { + "target": "com.amazonaws.medialive#OfferingType", "traits": { - "smithy.api#documentation": "The type of the input device.", - "smithy.api#jsonName": "type" + "smithy.api#documentation": "Offering type, e.g. 'NO_UPFRONT'", + "smithy.api#jsonName": "offeringType" } }, - "UhdDeviceSettings": { - "target": "com.amazonaws.medialive#InputDeviceUhdSettings", + "Region": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Settings that describe an input device that is type UHD.", - "smithy.api#jsonName": "uhdDeviceSettings" + "smithy.api#documentation": "AWS region, e.g. 'us-west-2'", + "smithy.api#jsonName": "region" } }, - "Tags": { - "target": "com.amazonaws.medialive#Tags", + "RenewalSettings": { + "target": "com.amazonaws.medialive#RenewalSettings", "traits": { - "smithy.api#documentation": "A collection of key-value pairs.", - "smithy.api#jsonName": "tags" + "smithy.api#documentation": "Renewal settings for the reservation", + "smithy.api#jsonName": "renewalSettings" } }, - "AvailabilityZone": { + "ReservationId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The Availability Zone associated with this input device.", - "smithy.api#jsonName": "availabilityZone" + "smithy.api#documentation": "Unique reservation ID, e.g. '1234567'", + "smithy.api#jsonName": "reservationId" } }, - "MedialiveInputArns": { - "target": "com.amazonaws.medialive#__listOf__string", + "ResourceSpecification": { + "target": "com.amazonaws.medialive#ReservationResourceSpecification", "traits": { - "smithy.api#documentation": "An array of the ARNs for the MediaLive inputs attached to the device. Returned only if the outputType is MEDIALIVE_INPUT.", - "smithy.api#jsonName": "medialiveInputArns" + "smithy.api#documentation": "Resource configuration details", + "smithy.api#jsonName": "resourceSpecification" } }, - "OutputType": { - "target": "com.amazonaws.medialive#InputDeviceOutputType", + "Start": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The output attachment type of the input device. Specifies MEDIACONNECT_FLOW if this device is the source for a MediaConnect flow. Specifies MEDIALIVE_INPUT if this device is the source for a MediaLive input.", - "smithy.api#jsonName": "outputType" + "smithy.api#documentation": "Reservation UTC start date and time in ISO-8601 format, e.g. '2018-03-01T00:00:00'", + "smithy.api#jsonName": "start" + } + }, + "State": { + "target": "com.amazonaws.medialive#ReservationState", + "traits": { + "smithy.api#documentation": "Current state of reservation, e.g. 'ACTIVE'", + "smithy.api#jsonName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#Tags", + "traits": { + "smithy.api#documentation": "A collection of key-value pairs", + "smithy.api#jsonName": "tags" + } + }, + "UsagePrice": { + "target": "com.amazonaws.medialive#__double", + "traits": { + "smithy.api#documentation": "Recurring usage charge for each reserved resource, e.g. '157.0'", + "smithy.api#jsonName": "usagePrice" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeInputDeviceResponse", + "smithy.api#documentation": "Placeholder documentation for DeleteReservationResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#DescribeInputDeviceThumbnail": { + "com.amazonaws.medialive#DeleteSchedule": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DescribeInputDeviceThumbnailRequest" + "target": "com.amazonaws.medialive#DeleteScheduleRequest" }, "output": { - "target": "com.amazonaws.medialive#DescribeInputDeviceThumbnailResponse" + "target": "com.amazonaws.medialive#DeleteScheduleResponse" }, "errors": [ { @@ -6149,337 +6800,156 @@ } ], "traits": { - "smithy.api#documentation": "Get the latest thumbnail data for the input device.", + "smithy.api#documentation": "Delete all schedule actions on a channel.", "smithy.api#http": { - "method": "GET", - "uri": "/prod/inputDevices/{InputDeviceId}/thumbnailData", + "method": "DELETE", + "uri": "/prod/channels/{ChannelId}/schedule", "code": 200 } } }, - "com.amazonaws.medialive#DescribeInputDeviceThumbnailRequest": { + "com.amazonaws.medialive#DeleteScheduleRequest": { "type": "structure", "members": { - "InputDeviceId": { + "ChannelId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The unique ID of this input device. For example, hd-123456789abcdef.", + "smithy.api#documentation": "Id of the channel whose schedule is being deleted.", "smithy.api#httpLabel": {}, "smithy.api#required": {} } - }, - "Accept": { - "target": "com.amazonaws.medialive#AcceptHeader", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The HTTP Accept header. Indicates the requested type for the thumbnail.", - "smithy.api#httpHeader": "accept", - "smithy.api#required": {} - } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeInputDeviceThumbnailRequest", + "smithy.api#documentation": "Placeholder documentation for DeleteScheduleRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#DescribeInputDeviceThumbnailResponse": { + "com.amazonaws.medialive#DeleteScheduleResponse": { "type": "structure", - "members": { - "Body": { - "target": "com.amazonaws.medialive#InputDeviceThumbnail", - "traits": { - "smithy.api#default": "", - "smithy.api#documentation": "The binary data for the thumbnail that the Link device has most recently sent to MediaLive.", - "smithy.api#httpPayload": {}, - "smithy.api#jsonName": "body" - } - }, - "ContentType": { - "target": "com.amazonaws.medialive#ContentType", - "traits": { - "smithy.api#documentation": "Specifies the media type of the thumbnail.", - "smithy.api#httpHeader": "Content-Type" - } - }, - "ContentLength": { - "target": "com.amazonaws.medialive#__long", - "traits": { - "smithy.api#documentation": "The length of the content.", - "smithy.api#httpHeader": "Content-Length" - } - }, - "ETag": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The unique, cacheable version of this thumbnail.", - "smithy.api#httpHeader": "ETag" - } - }, - "LastModified": { - "target": "com.amazonaws.medialive#__timestamp", - "traits": { - "smithy.api#documentation": "The date and time the thumbnail was last updated at the device.", - "smithy.api#httpHeader": "Last-Modified" - } - } - }, + "members": {}, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeInputDeviceThumbnailResponse", + "smithy.api#documentation": "Placeholder documentation for DeleteScheduleResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#DescribeInputRequest": { - "type": "structure", - "members": { - "InputId": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Unique ID of the input", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - } + "com.amazonaws.medialive#DeleteSignalMap": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#DeleteSignalMapRequest" }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeInputRequest", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#DescribeInputResponse": { - "type": "structure", - "members": { - "Arn": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The Unique ARN of the input (generated, immutable).", - "smithy.api#jsonName": "arn" - } - }, - "AttachedChannels": { - "target": "com.amazonaws.medialive#__listOf__string", - "traits": { - "smithy.api#documentation": "A list of channel IDs that that input is attached to (currently an input can only be attached to one channel).", - "smithy.api#jsonName": "attachedChannels" - } - }, - "Destinations": { - "target": "com.amazonaws.medialive#__listOfInputDestination", - "traits": { - "smithy.api#documentation": "A list of the destinations of the input (PUSH-type).", - "smithy.api#jsonName": "destinations" - } - }, - "Id": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The generated ID of the input (unique for user account, immutable).", - "smithy.api#jsonName": "id" - } - }, - "InputClass": { - "target": "com.amazonaws.medialive#InputClass", - "traits": { - "smithy.api#documentation": "STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails.\nSINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input.", - "smithy.api#jsonName": "inputClass" - } - }, - "InputDevices": { - "target": "com.amazonaws.medialive#__listOfInputDeviceSettings", - "traits": { - "smithy.api#documentation": "Settings for the input devices.", - "smithy.api#jsonName": "inputDevices" - } + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "InputPartnerIds": { - "target": "com.amazonaws.medialive#__listOf__string", - "traits": { - "smithy.api#documentation": "A list of IDs for all Inputs which are partners of this one.", - "smithy.api#jsonName": "inputPartnerIds" - } + { + "target": "com.amazonaws.medialive#ConflictException" }, - "InputSourceType": { - "target": "com.amazonaws.medialive#InputSourceType", - "traits": { - "smithy.api#documentation": "Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes\nduring input switch actions. Presently, this functionality only works with MP4_FILE and TS_FILE inputs.", - "smithy.api#jsonName": "inputSourceType" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" }, - "MediaConnectFlows": { - "target": "com.amazonaws.medialive#__listOfMediaConnectFlow", - "traits": { - "smithy.api#documentation": "A list of MediaConnect Flows for this input.", - "smithy.api#jsonName": "mediaConnectFlows" - } + { + "target": "com.amazonaws.medialive#InternalServerErrorException" }, - "Name": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The user-assigned name (This is a mutable value).", - "smithy.api#jsonName": "name" - } + { + "target": "com.amazonaws.medialive#NotFoundException" }, - "RoleArn": { + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Deletes the specified signal map.", + "smithy.api#http": { + "method": "DELETE", + "uri": "/prod/signal-maps/{Identifier}", + "code": 204 + } + } + }, + "com.amazonaws.medialive#DeleteSignalMapRequest": { + "type": "structure", + "members": { + "Identifier": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The Amazon Resource Name (ARN) of the role this input assumes during and after creation.", - "smithy.api#jsonName": "roleArn" - } - }, - "SecurityGroups": { - "target": "com.amazonaws.medialive#__listOf__string", - "traits": { - "smithy.api#documentation": "A list of IDs for all the Input Security Groups attached to the input.", - "smithy.api#jsonName": "securityGroups" - } - }, - "Sources": { - "target": "com.amazonaws.medialive#__listOfInputSource", - "traits": { - "smithy.api#documentation": "A list of the sources of the input (PULL-type).", - "smithy.api#jsonName": "sources" - } - }, - "State": { - "target": "com.amazonaws.medialive#InputState", - "traits": { - "smithy.api#jsonName": "state" - } - }, - "Tags": { - "target": "com.amazonaws.medialive#Tags", - "traits": { - "smithy.api#documentation": "A collection of key-value pairs.", - "smithy.api#jsonName": "tags" - } - }, - "Type": { - "target": "com.amazonaws.medialive#InputType", - "traits": { - "smithy.api#jsonName": "type" + "smithy.api#documentation": "A signal map's identifier. Can be either be its id or current name.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeInputResponse", - "smithy.api#output": {} + "smithy.api#documentation": "Placeholder documentation for DeleteSignalMapRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#DescribeInputSecurityGroup": { + "com.amazonaws.medialive#DeleteTags": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DescribeInputSecurityGroupRequest" + "target": "com.amazonaws.medialive#DeleteTagsRequest" }, "output": { - "target": "com.amazonaws.medialive#DescribeInputSecurityGroupResponse" + "target": "smithy.api#Unit" }, "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, { "target": "com.amazonaws.medialive#BadRequestException" }, { "target": "com.amazonaws.medialive#ForbiddenException" }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, { "target": "com.amazonaws.medialive#InternalServerErrorException" }, { "target": "com.amazonaws.medialive#NotFoundException" - }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" } ], "traits": { - "smithy.api#documentation": "Produces a summary of an Input Security Group", + "smithy.api#documentation": "Removes tags for a resource", "smithy.api#http": { - "method": "GET", - "uri": "/prod/inputSecurityGroups/{InputSecurityGroupId}", - "code": 200 + "method": "DELETE", + "uri": "/prod/tags/{ResourceArn}", + "code": 204 } } }, - "com.amazonaws.medialive#DescribeInputSecurityGroupRequest": { + "com.amazonaws.medialive#DeleteTagsRequest": { "type": "structure", "members": { - "InputSecurityGroupId": { + "ResourceArn": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The id of the Input Security Group to describe", "smithy.api#httpLabel": {}, "smithy.api#required": {} } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeInputSecurityGroupRequest", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#DescribeInputSecurityGroupResponse": { - "type": "structure", - "members": { - "Arn": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Unique ARN of Input Security Group", - "smithy.api#jsonName": "arn" - } }, - "Id": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The Id of the Input Security Group", - "smithy.api#jsonName": "id" - } - }, - "Inputs": { + "TagKeys": { "target": "com.amazonaws.medialive#__listOf__string", "traits": { - "smithy.api#documentation": "The list of inputs currently using this Input Security Group.", - "smithy.api#jsonName": "inputs" - } - }, - "State": { - "target": "com.amazonaws.medialive#InputSecurityGroupState", - "traits": { - "smithy.api#documentation": "The current state of the Input Security Group.", - "smithy.api#jsonName": "state" - } - }, - "Tags": { - "target": "com.amazonaws.medialive#Tags", - "traits": { - "smithy.api#documentation": "A collection of key-value pairs.", - "smithy.api#jsonName": "tags" - } - }, - "WhitelistRules": { - "target": "com.amazonaws.medialive#__listOfInputWhitelistRule", - "traits": { - "smithy.api#documentation": "Whitelist rules and their sync status", - "smithy.api#jsonName": "whitelistRules" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "An array of tag keys to delete", + "smithy.api#httpQuery": "tagKeys", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeInputSecurityGroupResponse", - "smithy.api#output": {} + "smithy.api#documentation": "Placeholder documentation for DeleteTagsRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#DescribeMultiplex": { + "com.amazonaws.medialive#DescribeAccountConfiguration": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DescribeMultiplexRequest" + "target": "com.amazonaws.medialive#DescribeAccountConfigurationRequest" }, "output": { - "target": "com.amazonaws.medialive#DescribeMultiplexResponse" + "target": "com.amazonaws.medialive#DescribeAccountConfigurationResponse" }, "errors": [ { @@ -6497,38 +6967,98 @@ { "target": "com.amazonaws.medialive#InternalServerErrorException" }, - { - "target": "com.amazonaws.medialive#NotFoundException" - }, { "target": "com.amazonaws.medialive#TooManyRequestsException" } ], "traits": { - "smithy.api#documentation": "Gets details about a multiplex.", + "smithy.api#documentation": "Describe account configuration", "smithy.api#http": { "method": "GET", - "uri": "/prod/multiplexes/{MultiplexId}", + "uri": "/prod/accountConfiguration", "code": 200 - }, - "smithy.waiters#waitable": { - "MultiplexCreated": { - "documentation": "Wait until a multiplex has been created", - "acceptors": [ - { - "state": "success", - "matcher": { - "output": { - "path": "State", - "expected": "IDLE", - "comparator": "stringEquals" - } - } - }, - { - "state": "retry", - "matcher": { - "output": { + } + } + }, + "com.amazonaws.medialive#DescribeAccountConfigurationRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Placeholder documentation for DescribeAccountConfigurationRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#DescribeAccountConfigurationResponse": { + "type": "structure", + "members": { + "AccountConfiguration": { + "target": "com.amazonaws.medialive#AccountConfiguration", + "traits": { + "smithy.api#jsonName": "accountConfiguration" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for DescribeAccountConfigurationResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#DescribeChannel": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#DescribeChannelRequest" + }, + "output": { + "target": "com.amazonaws.medialive#DescribeChannelResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" + }, + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Gets details about a channel", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/channels/{ChannelId}", + "code": 200 + }, + "smithy.waiters#waitable": { + "ChannelCreated": { + "documentation": "Wait until a channel has been created", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "State", + "expected": "IDLE", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { "path": "State", "expected": "CREATING", "comparator": "stringEquals" @@ -6554,8 +7084,8 @@ ], "minDelay": 3 }, - "MultiplexDeleted": { - "documentation": "Wait until a multiplex has been deleted", + "ChannelDeleted": { + "documentation": "Wait until a channel has been deleted", "acceptors": [ { "state": "success", @@ -6586,8 +7116,8 @@ ], "minDelay": 5 }, - "MultiplexRunning": { - "documentation": "Wait until a multiplex is running", + "ChannelRunning": { + "documentation": "Wait until a channel is running", "acceptors": [ { "state": "success", @@ -6618,8 +7148,8 @@ ], "minDelay": 5 }, - "MultiplexStopped": { - "documentation": "Wait until a multiplex has is stopped", + "ChannelStopped": { + "documentation": "Wait until a channel has is stopped", "acceptors": [ { "state": "success", @@ -6653,195 +7183,133 @@ } } }, - "com.amazonaws.medialive#DescribeMultiplexProgram": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#DescribeMultiplexProgramRequest" - }, - "output": { - "target": "com.amazonaws.medialive#DescribeMultiplexProgramResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" - }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" - }, - { - "target": "com.amazonaws.medialive#NotFoundException" - }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" - } - ], - "traits": { - "smithy.api#documentation": "Get the details for a program in a multiplex.", - "smithy.api#http": { - "method": "GET", - "uri": "/prod/multiplexes/{MultiplexId}/programs/{ProgramName}", - "code": 200 - } - } - }, - "com.amazonaws.medialive#DescribeMultiplexProgramRequest": { + "com.amazonaws.medialive#DescribeChannelRequest": { "type": "structure", "members": { - "MultiplexId": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The ID of the multiplex that the program belongs to.", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - }, - "ProgramName": { + "ChannelId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The name of the program.", + "smithy.api#documentation": "channel ID", "smithy.api#httpLabel": {}, "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeMultiplexProgramRequest", + "smithy.api#documentation": "Placeholder documentation for DescribeChannelRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#DescribeMultiplexProgramResponse": { + "com.amazonaws.medialive#DescribeChannelResponse": { "type": "structure", "members": { - "ChannelId": { + "Arn": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The MediaLive channel associated with the program.", - "smithy.api#jsonName": "channelId" - } - }, - "MultiplexProgramSettings": { - "target": "com.amazonaws.medialive#MultiplexProgramSettings", - "traits": { - "smithy.api#documentation": "The settings for this multiplex program.", - "smithy.api#jsonName": "multiplexProgramSettings" + "smithy.api#documentation": "The unique arn of the channel.", + "smithy.api#jsonName": "arn" } }, - "PacketIdentifiersMap": { - "target": "com.amazonaws.medialive#MultiplexProgramPacketIdentifiersMap", + "CdiInputSpecification": { + "target": "com.amazonaws.medialive#CdiInputSpecification", "traits": { - "smithy.api#documentation": "The packet identifier map for this multiplex program.", - "smithy.api#jsonName": "packetIdentifiersMap" + "smithy.api#documentation": "Specification of CDI inputs for this channel", + "smithy.api#jsonName": "cdiInputSpecification" } }, - "PipelineDetails": { - "target": "com.amazonaws.medialive#__listOfMultiplexProgramPipelineDetail", + "ChannelClass": { + "target": "com.amazonaws.medialive#ChannelClass", "traits": { - "smithy.api#documentation": "Contains information about the current sources for the specified program in the specified multiplex. Keep in mind that each multiplex pipeline connects to both pipelines in a given source channel (the channel identified by the program). But only one of those channel pipelines is ever active at one time.", - "smithy.api#jsonName": "pipelineDetails" + "smithy.api#documentation": "The class for this channel. STANDARD for a channel with two pipelines or SINGLE_PIPELINE for a channel with one pipeline.", + "smithy.api#jsonName": "channelClass" } }, - "ProgramName": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The name of the multiplex program.", - "smithy.api#jsonName": "programName" - } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeMultiplexProgramResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#DescribeMultiplexRequest": { - "type": "structure", - "members": { - "MultiplexId": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The ID of the multiplex.", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeMultiplexRequest", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#DescribeMultiplexResponse": { - "type": "structure", - "members": { - "Arn": { - "target": "com.amazonaws.medialive#__string", + "Destinations": { + "target": "com.amazonaws.medialive#__listOfOutputDestination", "traits": { - "smithy.api#documentation": "The unique arn of the multiplex.", - "smithy.api#jsonName": "arn" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "destinations" } }, - "AvailabilityZones": { - "target": "com.amazonaws.medialive#__listOf__string", + "EgressEndpoints": { + "target": "com.amazonaws.medialive#__listOfChannelEgressEndpoint", "traits": { - "smithy.api#documentation": "A list of availability zones for the multiplex.", - "smithy.api#jsonName": "availabilityZones" + "smithy.api#documentation": "The endpoints where outgoing connections initiate from", + "smithy.api#jsonName": "egressEndpoints" } }, - "Destinations": { - "target": "com.amazonaws.medialive#__listOfMultiplexOutputDestination", + "EncoderSettings": { + "target": "com.amazonaws.medialive#EncoderSettings", "traits": { - "smithy.api#documentation": "A list of the multiplex output destinations.", - "smithy.api#jsonName": "destinations" + "smithy.api#jsonName": "encoderSettings" } }, "Id": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The unique id of the multiplex.", + "smithy.api#documentation": "The unique id of the channel.", "smithy.api#jsonName": "id" } }, - "MultiplexSettings": { - "target": "com.amazonaws.medialive#MultiplexSettings", + "InputAttachments": { + "target": "com.amazonaws.medialive#__listOfInputAttachment", "traits": { - "smithy.api#documentation": "Configuration for a multiplex event.", - "smithy.api#jsonName": "multiplexSettings" + "smithy.api#documentation": "List of input attachments for channel.", + "smithy.api#jsonName": "inputAttachments" } }, - "Name": { - "target": "com.amazonaws.medialive#__string", + "InputSpecification": { + "target": "com.amazonaws.medialive#InputSpecification", "traits": { - "smithy.api#documentation": "The name of the multiplex.", - "smithy.api#jsonName": "name" + "smithy.api#documentation": "Specification of network and file inputs for this channel", + "smithy.api#jsonName": "inputSpecification" } }, - "PipelinesRunningCount": { + "LogLevel": { + "target": "com.amazonaws.medialive#LogLevel", + "traits": { + "smithy.api#documentation": "The log level being written to CloudWatch Logs.", + "smithy.api#jsonName": "logLevel" + } + }, + "Maintenance": { + "target": "com.amazonaws.medialive#MaintenanceStatus", + "traits": { + "smithy.api#documentation": "Maintenance settings for this channel.", + "smithy.api#jsonName": "maintenance" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The name of the channel. (user-mutable)", + "smithy.api#jsonName": "name" + } + }, + "PipelineDetails": { + "target": "com.amazonaws.medialive#__listOfPipelineDetail", + "traits": { + "smithy.api#documentation": "Runtime details for the pipelines of a running channel.", + "smithy.api#jsonName": "pipelineDetails" + } + }, + "PipelinesRunningCount": { "target": "com.amazonaws.medialive#__integer", "traits": { "smithy.api#documentation": "The number of currently healthy pipelines.", "smithy.api#jsonName": "pipelinesRunningCount" } }, - "ProgramCount": { - "target": "com.amazonaws.medialive#__integer", + "RoleArn": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The number of programs in the multiplex.", - "smithy.api#jsonName": "programCount" + "smithy.api#documentation": "The Amazon Resource Name (ARN) of the role assumed when running the Channel.", + "smithy.api#jsonName": "roleArn" } }, "State": { - "target": "com.amazonaws.medialive#MultiplexState", + "target": "com.amazonaws.medialive#ChannelState", "traits": { - "smithy.api#documentation": "The current state of the multiplex.", "smithy.api#jsonName": "state" } }, @@ -6851,20 +7319,27 @@ "smithy.api#documentation": "A collection of key-value pairs.", "smithy.api#jsonName": "tags" } + }, + "Vpc": { + "target": "com.amazonaws.medialive#VpcOutputSettingsDescription", + "traits": { + "smithy.api#documentation": "Settings for VPC output", + "smithy.api#jsonName": "vpc" + } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeMultiplexResponse", + "smithy.api#documentation": "Placeholder documentation for DescribeChannelResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#DescribeOffering": { + "com.amazonaws.medialive#DescribeInput": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DescribeOfferingRequest" + "target": "com.amazonaws.medialive#DescribeInputRequest" }, "output": { - "target": "com.amazonaws.medialive#DescribeOfferingResponse" + "target": "com.amazonaws.medialive#DescribeInputResponse" }, "errors": [ { @@ -6890,124 +7365,307 @@ } ], "traits": { - "smithy.api#documentation": "Get details for an offering.", + "smithy.api#documentation": "Produces details about an input", "smithy.api#http": { "method": "GET", - "uri": "/prod/offerings/{OfferingId}", + "uri": "/prod/inputs/{InputId}", + "code": 200 + }, + "smithy.waiters#waitable": { + "InputAttached": { + "documentation": "Wait until an input has been attached", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "State", + "expected": "ATTACHED", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "State", + "expected": "DETACHED", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InternalServerErrorException" + } + } + ], + "minDelay": 5 + }, + "InputDeleted": { + "documentation": "Wait until an input has been deleted", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "State", + "expected": "DELETED", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "State", + "expected": "DELETING", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InternalServerErrorException" + } + } + ], + "minDelay": 5 + }, + "InputDetached": { + "documentation": "Wait until an input has been detached", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "State", + "expected": "DETACHED", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "State", + "expected": "CREATING", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "State", + "expected": "ATTACHED", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InternalServerErrorException" + } + } + ], + "minDelay": 5 + } + } + } + }, + "com.amazonaws.medialive#DescribeInputDevice": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#DescribeInputDeviceRequest" + }, + "output": { + "target": "com.amazonaws.medialive#DescribeInputDeviceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" + }, + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Gets the details for the input device", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/inputDevices/{InputDeviceId}", "code": 200 } } }, - "com.amazonaws.medialive#DescribeOfferingRequest": { + "com.amazonaws.medialive#DescribeInputDeviceRequest": { "type": "structure", "members": { - "OfferingId": { + "InputDeviceId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Unique offering ID, e.g. '87654321'", + "smithy.api#documentation": "The unique ID of this input device. For example, hd-123456789abcdef.", "smithy.api#httpLabel": {}, "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeOfferingRequest", + "smithy.api#documentation": "Placeholder documentation for DescribeInputDeviceRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#DescribeOfferingResponse": { + "com.amazonaws.medialive#DescribeInputDeviceResponse": { "type": "structure", "members": { "Arn": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Unique offering ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:offering:87654321'", + "smithy.api#documentation": "The unique ARN of the input device.", "smithy.api#jsonName": "arn" } }, - "CurrencyCode": { - "target": "com.amazonaws.medialive#__string", + "ConnectionState": { + "target": "com.amazonaws.medialive#InputDeviceConnectionState", "traits": { - "smithy.api#documentation": "Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'", - "smithy.api#jsonName": "currencyCode" + "smithy.api#documentation": "The state of the connection between the input device and AWS.", + "smithy.api#jsonName": "connectionState" } }, - "Duration": { - "target": "com.amazonaws.medialive#__integer", + "DeviceSettingsSyncState": { + "target": "com.amazonaws.medialive#DeviceSettingsSyncState", "traits": { - "smithy.api#documentation": "Lease duration, e.g. '12'", - "smithy.api#jsonName": "duration" + "smithy.api#documentation": "The status of the action to synchronize the device configuration. If you change the configuration of the input device (for example, the maximum bitrate), MediaLive sends the new data to the device. The device might not update itself immediately. SYNCED means the device has updated its configuration. SYNCING means that it has not updated its configuration.", + "smithy.api#jsonName": "deviceSettingsSyncState" } }, - "DurationUnits": { - "target": "com.amazonaws.medialive#OfferingDurationUnits", + "DeviceUpdateStatus": { + "target": "com.amazonaws.medialive#DeviceUpdateStatus", "traits": { - "smithy.api#documentation": "Units for duration, e.g. 'MONTHS'", - "smithy.api#jsonName": "durationUnits" + "smithy.api#documentation": "The status of software on the input device.", + "smithy.api#jsonName": "deviceUpdateStatus" } }, - "FixedPrice": { - "target": "com.amazonaws.medialive#__double", + "HdDeviceSettings": { + "target": "com.amazonaws.medialive#InputDeviceHdSettings", "traits": { - "smithy.api#documentation": "One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering", - "smithy.api#jsonName": "fixedPrice" + "smithy.api#documentation": "Settings that describe an input device that is type HD.", + "smithy.api#jsonName": "hdDeviceSettings" } }, - "OfferingDescription": { + "Id": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'", - "smithy.api#jsonName": "offeringDescription" - } + "smithy.api#documentation": "The unique ID of the input device.", + "smithy.api#jsonName": "id" + } }, - "OfferingId": { + "MacAddress": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Unique offering ID, e.g. '87654321'", - "smithy.api#jsonName": "offeringId" + "smithy.api#documentation": "The network MAC address of the input device.", + "smithy.api#jsonName": "macAddress" } }, - "OfferingType": { - "target": "com.amazonaws.medialive#OfferingType", + "Name": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Offering type, e.g. 'NO_UPFRONT'", - "smithy.api#jsonName": "offeringType" + "smithy.api#documentation": "A name that you specify for the input device.", + "smithy.api#jsonName": "name" } }, - "Region": { + "NetworkSettings": { + "target": "com.amazonaws.medialive#InputDeviceNetworkSettings", + "traits": { + "smithy.api#documentation": "The network settings for the input device.", + "smithy.api#jsonName": "networkSettings" + } + }, + "SerialNumber": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "AWS region, e.g. 'us-west-2'", - "smithy.api#jsonName": "region" + "smithy.api#documentation": "The unique serial number of the input device.", + "smithy.api#jsonName": "serialNumber" } }, - "ResourceSpecification": { - "target": "com.amazonaws.medialive#ReservationResourceSpecification", + "Type": { + "target": "com.amazonaws.medialive#InputDeviceType", "traits": { - "smithy.api#documentation": "Resource configuration details", - "smithy.api#jsonName": "resourceSpecification" + "smithy.api#documentation": "The type of the input device.", + "smithy.api#jsonName": "type" } }, - "UsagePrice": { - "target": "com.amazonaws.medialive#__double", + "UhdDeviceSettings": { + "target": "com.amazonaws.medialive#InputDeviceUhdSettings", "traits": { - "smithy.api#documentation": "Recurring usage charge for each reserved resource, e.g. '157.0'", - "smithy.api#jsonName": "usagePrice" + "smithy.api#documentation": "Settings that describe an input device that is type UHD.", + "smithy.api#jsonName": "uhdDeviceSettings" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#Tags", + "traits": { + "smithy.api#documentation": "A collection of key-value pairs.", + "smithy.api#jsonName": "tags" + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The Availability Zone associated with this input device.", + "smithy.api#jsonName": "availabilityZone" + } + }, + "MedialiveInputArns": { + "target": "com.amazonaws.medialive#__listOf__string", + "traits": { + "smithy.api#documentation": "An array of the ARNs for the MediaLive inputs attached to the device. Returned only if the outputType is MEDIALIVE_INPUT.", + "smithy.api#jsonName": "medialiveInputArns" + } + }, + "OutputType": { + "target": "com.amazonaws.medialive#InputDeviceOutputType", + "traits": { + "smithy.api#documentation": "The output attachment type of the input device. Specifies MEDIACONNECT_FLOW if this device is the source for a MediaConnect flow. Specifies MEDIALIVE_INPUT if this device is the source for a MediaLive input.", + "smithy.api#jsonName": "outputType" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeOfferingResponse", + "smithy.api#documentation": "Placeholder documentation for DescribeInputDeviceResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#DescribeReservation": { + "com.amazonaws.medialive#DescribeInputDeviceThumbnail": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DescribeReservationRequest" + "target": "com.amazonaws.medialive#DescribeInputDeviceThumbnailRequest" }, "output": { - "target": "com.amazonaws.medialive#DescribeReservationResponse" + "target": "com.amazonaws.medialive#DescribeInputDeviceThumbnailResponse" }, "errors": [ { @@ -7033,180 +7691,229 @@ } ], "traits": { - "smithy.api#documentation": "Get details for a reservation.", + "smithy.api#documentation": "Get the latest thumbnail data for the input device.", "smithy.api#http": { "method": "GET", - "uri": "/prod/reservations/{ReservationId}", + "uri": "/prod/inputDevices/{InputDeviceId}/thumbnailData", "code": 200 } } }, - "com.amazonaws.medialive#DescribeReservationRequest": { + "com.amazonaws.medialive#DescribeInputDeviceThumbnailRequest": { "type": "structure", "members": { - "ReservationId": { + "InputDeviceId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Unique reservation ID, e.g. '1234567'", + "smithy.api#documentation": "The unique ID of this input device. For example, hd-123456789abcdef.", "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "Accept": { + "target": "com.amazonaws.medialive#AcceptHeader", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The HTTP Accept header. Indicates the requested type for the thumbnail.", + "smithy.api#httpHeader": "accept", + "smithy.api#required": {} + } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeReservationRequest", + "smithy.api#documentation": "Placeholder documentation for DescribeInputDeviceThumbnailRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#DescribeReservationResponse": { + "com.amazonaws.medialive#DescribeInputDeviceThumbnailResponse": { "type": "structure", "members": { - "Arn": { - "target": "com.amazonaws.medialive#__string", + "Body": { + "target": "com.amazonaws.medialive#InputDeviceThumbnail", "traits": { - "smithy.api#documentation": "Unique reservation ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'", - "smithy.api#jsonName": "arn" + "smithy.api#default": "", + "smithy.api#documentation": "The binary data for the thumbnail that the Link device has most recently sent to MediaLive.", + "smithy.api#httpPayload": {}, + "smithy.api#jsonName": "body" } }, - "Count": { - "target": "com.amazonaws.medialive#__integer", + "ContentType": { + "target": "com.amazonaws.medialive#ContentType", "traits": { - "smithy.api#documentation": "Number of reserved resources", - "smithy.api#jsonName": "count" + "smithy.api#documentation": "Specifies the media type of the thumbnail.", + "smithy.api#httpHeader": "Content-Type" } }, - "CurrencyCode": { - "target": "com.amazonaws.medialive#__string", + "ContentLength": { + "target": "com.amazonaws.medialive#__long", "traits": { - "smithy.api#documentation": "Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'", - "smithy.api#jsonName": "currencyCode" + "smithy.api#documentation": "The length of the content.", + "smithy.api#httpHeader": "Content-Length" } }, - "Duration": { - "target": "com.amazonaws.medialive#__integer", + "ETag": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Lease duration, e.g. '12'", - "smithy.api#jsonName": "duration" + "smithy.api#documentation": "The unique, cacheable version of this thumbnail.", + "smithy.api#httpHeader": "ETag" } }, - "DurationUnits": { - "target": "com.amazonaws.medialive#OfferingDurationUnits", + "LastModified": { + "target": "com.amazonaws.medialive#__timestamp", "traits": { - "smithy.api#documentation": "Units for duration, e.g. 'MONTHS'", - "smithy.api#jsonName": "durationUnits" + "smithy.api#documentation": "The date and time the thumbnail was last updated at the device.", + "smithy.api#httpHeader": "Last-Modified" } - }, - "End": { + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for DescribeInputDeviceThumbnailResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#DescribeInputRequest": { + "type": "structure", + "members": { + "InputId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Reservation UTC end date and time in ISO-8601 format, e.g. '2019-03-01T00:00:00'", - "smithy.api#jsonName": "end" + "smithy.api#documentation": "Unique ID of the input", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } - }, - "FixedPrice": { - "target": "com.amazonaws.medialive#__double", + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for DescribeInputRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#DescribeInputResponse": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering", - "smithy.api#jsonName": "fixedPrice" + "smithy.api#documentation": "The Unique ARN of the input (generated, immutable).", + "smithy.api#jsonName": "arn" } }, - "Name": { - "target": "com.amazonaws.medialive#__string", + "AttachedChannels": { + "target": "com.amazonaws.medialive#__listOf__string", "traits": { - "smithy.api#documentation": "User specified reservation name", - "smithy.api#jsonName": "name" + "smithy.api#documentation": "A list of channel IDs that that input is attached to (currently an input can only be attached to one channel).", + "smithy.api#jsonName": "attachedChannels" } }, - "OfferingDescription": { - "target": "com.amazonaws.medialive#__string", + "Destinations": { + "target": "com.amazonaws.medialive#__listOfInputDestination", "traits": { - "smithy.api#documentation": "Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'", - "smithy.api#jsonName": "offeringDescription" + "smithy.api#documentation": "A list of the destinations of the input (PUSH-type).", + "smithy.api#jsonName": "destinations" } }, - "OfferingId": { + "Id": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Unique offering ID, e.g. '87654321'", - "smithy.api#jsonName": "offeringId" + "smithy.api#documentation": "The generated ID of the input (unique for user account, immutable).", + "smithy.api#jsonName": "id" } }, - "OfferingType": { - "target": "com.amazonaws.medialive#OfferingType", + "InputClass": { + "target": "com.amazonaws.medialive#InputClass", "traits": { - "smithy.api#documentation": "Offering type, e.g. 'NO_UPFRONT'", - "smithy.api#jsonName": "offeringType" + "smithy.api#documentation": "STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails.\nSINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input.", + "smithy.api#jsonName": "inputClass" } }, - "Region": { - "target": "com.amazonaws.medialive#__string", + "InputDevices": { + "target": "com.amazonaws.medialive#__listOfInputDeviceSettings", "traits": { - "smithy.api#documentation": "AWS region, e.g. 'us-west-2'", - "smithy.api#jsonName": "region" + "smithy.api#documentation": "Settings for the input devices.", + "smithy.api#jsonName": "inputDevices" } }, - "RenewalSettings": { - "target": "com.amazonaws.medialive#RenewalSettings", + "InputPartnerIds": { + "target": "com.amazonaws.medialive#__listOf__string", "traits": { - "smithy.api#documentation": "Renewal settings for the reservation", - "smithy.api#jsonName": "renewalSettings" + "smithy.api#documentation": "A list of IDs for all Inputs which are partners of this one.", + "smithy.api#jsonName": "inputPartnerIds" } }, - "ReservationId": { - "target": "com.amazonaws.medialive#__string", + "InputSourceType": { + "target": "com.amazonaws.medialive#InputSourceType", "traits": { - "smithy.api#documentation": "Unique reservation ID, e.g. '1234567'", - "smithy.api#jsonName": "reservationId" + "smithy.api#documentation": "Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes\nduring input switch actions. Presently, this functionality only works with MP4_FILE and TS_FILE inputs.", + "smithy.api#jsonName": "inputSourceType" } }, - "ResourceSpecification": { - "target": "com.amazonaws.medialive#ReservationResourceSpecification", + "MediaConnectFlows": { + "target": "com.amazonaws.medialive#__listOfMediaConnectFlow", "traits": { - "smithy.api#documentation": "Resource configuration details", - "smithy.api#jsonName": "resourceSpecification" + "smithy.api#documentation": "A list of MediaConnect Flows for this input.", + "smithy.api#jsonName": "mediaConnectFlows" } }, - "Start": { + "Name": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Reservation UTC start date and time in ISO-8601 format, e.g. '2018-03-01T00:00:00'", - "smithy.api#jsonName": "start" + "smithy.api#documentation": "The user-assigned name (This is a mutable value).", + "smithy.api#jsonName": "name" } }, - "State": { - "target": "com.amazonaws.medialive#ReservationState", + "RoleArn": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The Amazon Resource Name (ARN) of the role this input assumes during and after creation.", + "smithy.api#jsonName": "roleArn" + } + }, + "SecurityGroups": { + "target": "com.amazonaws.medialive#__listOf__string", + "traits": { + "smithy.api#documentation": "A list of IDs for all the Input Security Groups attached to the input.", + "smithy.api#jsonName": "securityGroups" + } + }, + "Sources": { + "target": "com.amazonaws.medialive#__listOfInputSource", + "traits": { + "smithy.api#documentation": "A list of the sources of the input (PULL-type).", + "smithy.api#jsonName": "sources" + } + }, + "State": { + "target": "com.amazonaws.medialive#InputState", "traits": { - "smithy.api#documentation": "Current state of reservation, e.g. 'ACTIVE'", "smithy.api#jsonName": "state" } }, "Tags": { "target": "com.amazonaws.medialive#Tags", "traits": { - "smithy.api#documentation": "A collection of key-value pairs", + "smithy.api#documentation": "A collection of key-value pairs.", "smithy.api#jsonName": "tags" } }, - "UsagePrice": { - "target": "com.amazonaws.medialive#__double", + "Type": { + "target": "com.amazonaws.medialive#InputType", "traits": { - "smithy.api#documentation": "Recurring usage charge for each reserved resource, e.g. '157.0'", - "smithy.api#jsonName": "usagePrice" + "smithy.api#jsonName": "type" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeReservationResponse", + "smithy.api#documentation": "Placeholder documentation for DescribeInputResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#DescribeSchedule": { + "com.amazonaws.medialive#DescribeInputSecurityGroup": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DescribeScheduleRequest" + "target": "com.amazonaws.medialive#DescribeInputSecurityGroupRequest" }, "output": { - "target": "com.amazonaws.medialive#DescribeScheduleResponse" + "target": "com.amazonaws.medialive#DescribeInputSecurityGroupResponse" }, "errors": [ { @@ -7232,79 +7939,89 @@ } ], "traits": { - "smithy.api#documentation": "Get a channel schedule", + "smithy.api#documentation": "Produces a summary of an Input Security Group", "smithy.api#http": { "method": "GET", - "uri": "/prod/channels/{ChannelId}/schedule", + "uri": "/prod/inputSecurityGroups/{InputSecurityGroupId}", "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "items": "ScheduleActions", - "pageSize": "MaxResults" } } }, - "com.amazonaws.medialive#DescribeScheduleRequest": { + "com.amazonaws.medialive#DescribeInputSecurityGroupRequest": { "type": "structure", "members": { - "ChannelId": { + "InputSecurityGroupId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Id of the channel whose schedule is being updated.", + "smithy.api#documentation": "The id of the Input Security Group to describe", "smithy.api#httpLabel": {}, "smithy.api#required": {} } - }, - "MaxResults": { - "target": "com.amazonaws.medialive#MaxResults", - "traits": { - "smithy.api#httpQuery": "maxResults" - } - }, - "NextToken": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#httpQuery": "nextToken" - } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeScheduleRequest", + "smithy.api#documentation": "Placeholder documentation for DescribeInputSecurityGroupRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#DescribeScheduleResponse": { + "com.amazonaws.medialive#DescribeInputSecurityGroupResponse": { "type": "structure", "members": { - "NextToken": { + "Arn": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The next token; for use in pagination.", - "smithy.api#jsonName": "nextToken" + "smithy.api#documentation": "Unique ARN of Input Security Group", + "smithy.api#jsonName": "arn" } }, - "ScheduleActions": { - "target": "com.amazonaws.medialive#__listOfScheduleAction", + "Id": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The list of actions in the schedule.", - "smithy.api#jsonName": "scheduleActions" + "smithy.api#documentation": "The Id of the Input Security Group", + "smithy.api#jsonName": "id" + } + }, + "Inputs": { + "target": "com.amazonaws.medialive#__listOf__string", + "traits": { + "smithy.api#documentation": "The list of inputs currently using this Input Security Group.", + "smithy.api#jsonName": "inputs" + } + }, + "State": { + "target": "com.amazonaws.medialive#InputSecurityGroupState", + "traits": { + "smithy.api#documentation": "The current state of the Input Security Group.", + "smithy.api#jsonName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#Tags", + "traits": { + "smithy.api#documentation": "A collection of key-value pairs.", + "smithy.api#jsonName": "tags" + } + }, + "WhitelistRules": { + "target": "com.amazonaws.medialive#__listOfInputWhitelistRule", + "traits": { + "smithy.api#documentation": "Whitelist rules and their sync status", + "smithy.api#jsonName": "whitelistRules" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeScheduleResponse", + "smithy.api#documentation": "Placeholder documentation for DescribeInputSecurityGroupResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#DescribeThumbnails": { + "com.amazonaws.medialive#DescribeMultiplex": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#DescribeThumbnailsRequest" + "target": "com.amazonaws.medialive#DescribeMultiplexRequest" }, "output": { - "target": "com.amazonaws.medialive#DescribeThumbnailsResponse" + "target": "com.amazonaws.medialive#DescribeMultiplexResponse" }, "errors": [ { @@ -7313,9 +8030,6 @@ { "target": "com.amazonaws.medialive#BadRequestException" }, - { - "target": "com.amazonaws.medialive#ConflictException" - }, { "target": "com.amazonaws.medialive#ForbiddenException" }, @@ -7333,1476 +8047,1808 @@ } ], "traits": { - "smithy.api#documentation": "Describe the latest thumbnails data.", + "smithy.api#documentation": "Gets details about a multiplex.", "smithy.api#http": { "method": "GET", - "uri": "/prod/channels/{ChannelId}/thumbnails", + "uri": "/prod/multiplexes/{MultiplexId}", "code": 200 - } - } - }, - "com.amazonaws.medialive#DescribeThumbnailsRequest": { - "type": "structure", - "members": { - "ChannelId": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Unique ID of the channel", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - }, - "PipelineId": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Pipeline ID (\"0\" or \"1\")", - "smithy.api#httpQuery": "pipelineId", - "smithy.api#required": {} - } - }, - "ThumbnailType": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "thumbnail type", - "smithy.api#httpQuery": "thumbnailType", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeThumbnailsRequest", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#DescribeThumbnailsResponse": { - "type": "structure", - "members": { - "ThumbnailDetails": { - "target": "com.amazonaws.medialive#__listOfThumbnailDetail", - "traits": { - "smithy.api#jsonName": "thumbnailDetails" - } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for DescribeThumbnailsResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#DeviceSettingsSyncState": { - "type": "enum", - "members": { - "SYNCED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SYNCED" - } - }, - "SYNCING": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SYNCING" - } - } - }, - "traits": { - "smithy.api#documentation": "The status of the action to synchronize the device configuration. If you change the configuration of the input device (for example, the maximum bitrate), MediaLive sends the new data to the device. The device might not update itself immediately. SYNCED means the device has updated its configuration. SYNCING means that it has not updated its configuration." - } - }, - "com.amazonaws.medialive#DeviceUpdateStatus": { - "type": "enum", - "members": { - "UP_TO_DATE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "UP_TO_DATE" - } - }, - "NOT_UP_TO_DATE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "NOT_UP_TO_DATE" - } - }, - "UPDATING": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "UPDATING" - } - } - }, - "traits": { - "smithy.api#documentation": "The status of software on the input device." - } - }, - "com.amazonaws.medialive#DolbyEProgramSelection": { - "type": "enum", - "members": { - "ALL_CHANNELS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ALL_CHANNELS" - } - }, - "PROGRAM_1": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PROGRAM_1" - } - }, - "PROGRAM_2": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PROGRAM_2" - } - }, - "PROGRAM_3": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PROGRAM_3" - } }, - "PROGRAM_4": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PROGRAM_4" + "smithy.waiters#waitable": { + "MultiplexCreated": { + "documentation": "Wait until a multiplex has been created", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "State", + "expected": "IDLE", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "State", + "expected": "CREATING", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InternalServerErrorException" + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "State", + "expected": "CREATE_FAILED", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 3 + }, + "MultiplexDeleted": { + "documentation": "Wait until a multiplex has been deleted", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "State", + "expected": "DELETED", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "State", + "expected": "DELETING", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InternalServerErrorException" + } + } + ], + "minDelay": 5 + }, + "MultiplexRunning": { + "documentation": "Wait until a multiplex is running", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "State", + "expected": "RUNNING", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "State", + "expected": "STARTING", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InternalServerErrorException" + } + } + ], + "minDelay": 5 + }, + "MultiplexStopped": { + "documentation": "Wait until a multiplex has is stopped", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "State", + "expected": "IDLE", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "State", + "expected": "STOPPING", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InternalServerErrorException" + } + } + ], + "minDelay": 5 } + } + } + }, + "com.amazonaws.medialive#DescribeMultiplexProgram": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#DescribeMultiplexProgramRequest" + }, + "output": { + "target": "com.amazonaws.medialive#DescribeMultiplexProgramResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" }, - "PROGRAM_5": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PROGRAM_5" - } + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "PROGRAM_6": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PROGRAM_6" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" }, - "PROGRAM_7": { - "target": "smithy.api#Unit", + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Get the details for a program in a multiplex.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/multiplexes/{MultiplexId}/programs/{ProgramName}", + "code": 200 + } + } + }, + "com.amazonaws.medialive#DescribeMultiplexProgramRequest": { + "type": "structure", + "members": { + "MultiplexId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "PROGRAM_7" + "smithy.api#documentation": "The ID of the multiplex that the program belongs to.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, - "PROGRAM_8": { - "target": "smithy.api#Unit", + "ProgramName": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "PROGRAM_8" + "smithy.api#documentation": "The name of the program.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Dolby EProgram Selection" + "smithy.api#documentation": "Placeholder documentation for DescribeMultiplexProgramRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#DolbyVision81Settings": { + "com.amazonaws.medialive#DescribeMultiplexProgramResponse": { "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Dolby Vision81 Settings" - } - }, - "com.amazonaws.medialive#DvbDashAccessibility": { - "type": "enum", "members": { - "DVBDASH_1_VISUALLY_IMPAIRED": { - "target": "smithy.api#Unit", + "ChannelId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "DVBDASH_1_VISUALLY_IMPAIRED" + "smithy.api#documentation": "The MediaLive channel associated with the program.", + "smithy.api#jsonName": "channelId" } }, - "DVBDASH_2_HARD_OF_HEARING": { - "target": "smithy.api#Unit", + "MultiplexProgramSettings": { + "target": "com.amazonaws.medialive#MultiplexProgramSettings", "traits": { - "smithy.api#enumValue": "DVBDASH_2_HARD_OF_HEARING" + "smithy.api#documentation": "The settings for this multiplex program.", + "smithy.api#jsonName": "multiplexProgramSettings" } }, - "DVBDASH_3_SUPPLEMENTAL_COMMENTARY": { - "target": "smithy.api#Unit", + "PacketIdentifiersMap": { + "target": "com.amazonaws.medialive#MultiplexProgramPacketIdentifiersMap", "traits": { - "smithy.api#enumValue": "DVBDASH_3_SUPPLEMENTAL_COMMENTARY" + "smithy.api#documentation": "The packet identifier map for this multiplex program.", + "smithy.api#jsonName": "packetIdentifiersMap" } }, - "DVBDASH_4_DIRECTORS_COMMENTARY": { - "target": "smithy.api#Unit", + "PipelineDetails": { + "target": "com.amazonaws.medialive#__listOfMultiplexProgramPipelineDetail", "traits": { - "smithy.api#enumValue": "DVBDASH_4_DIRECTORS_COMMENTARY" + "smithy.api#documentation": "Contains information about the current sources for the specified program in the specified multiplex. Keep in mind that each multiplex pipeline connects to both pipelines in a given source channel (the channel identified by the program). But only one of those channel pipelines is ever active at one time.", + "smithy.api#jsonName": "pipelineDetails" } }, - "DVBDASH_5_EDUCATIONAL_NOTES": { - "target": "smithy.api#Unit", + "ProgramName": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "DVBDASH_5_EDUCATIONAL_NOTES" - } - }, - "DVBDASH_6_MAIN_PROGRAM": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DVBDASH_6_MAIN_PROGRAM" - } - }, - "DVBDASH_7_CLEAN_FEED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DVBDASH_7_CLEAN_FEED" + "smithy.api#documentation": "The name of the multiplex program.", + "smithy.api#jsonName": "programName" } } }, "traits": { - "smithy.api#documentation": "Dvb Dash Accessibility" + "smithy.api#documentation": "Placeholder documentation for DescribeMultiplexProgramResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#DvbNitSettings": { + "com.amazonaws.medialive#DescribeMultiplexRequest": { "type": "structure", "members": { - "NetworkId": { - "target": "com.amazonaws.medialive#__integerMin0Max65536", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The numeric value placed in the Network Information Table (NIT).", - "smithy.api#jsonName": "networkId", - "smithy.api#required": {} - } - }, - "NetworkName": { - "target": "com.amazonaws.medialive#__stringMin1Max256", + "MultiplexId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The network name text placed in the networkNameDescriptor inside the Network Information Table. Maximum length is 256 characters.", - "smithy.api#jsonName": "networkName", + "smithy.api#documentation": "The ID of the multiplex.", + "smithy.api#httpLabel": {}, "smithy.api#required": {} } - }, - "RepInterval": { - "target": "com.amazonaws.medialive#__integerMin25Max10000", - "traits": { - "smithy.api#documentation": "The number of milliseconds between instances of this table in the output transport stream.", - "smithy.api#jsonName": "repInterval" - } } }, "traits": { - "smithy.api#documentation": "DVB Network Information Table (NIT)" + "smithy.api#documentation": "Placeholder documentation for DescribeMultiplexRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#DvbSdtOutputSdt": { - "type": "enum", + "com.amazonaws.medialive#DescribeMultiplexResponse": { + "type": "structure", "members": { - "SDT_FOLLOW": { - "target": "smithy.api#Unit", + "Arn": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "SDT_FOLLOW" + "smithy.api#documentation": "The unique arn of the multiplex.", + "smithy.api#jsonName": "arn" } }, - "SDT_FOLLOW_IF_PRESENT": { - "target": "smithy.api#Unit", + "AvailabilityZones": { + "target": "com.amazonaws.medialive#__listOf__string", "traits": { - "smithy.api#enumValue": "SDT_FOLLOW_IF_PRESENT" + "smithy.api#documentation": "A list of availability zones for the multiplex.", + "smithy.api#jsonName": "availabilityZones" } }, - "SDT_MANUAL": { - "target": "smithy.api#Unit", + "Destinations": { + "target": "com.amazonaws.medialive#__listOfMultiplexOutputDestination", "traits": { - "smithy.api#enumValue": "SDT_MANUAL" + "smithy.api#documentation": "A list of the multiplex output destinations.", + "smithy.api#jsonName": "destinations" } }, - "SDT_NONE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SDT_NONE" - } - } - }, - "traits": { - "smithy.api#documentation": "Dvb Sdt Output Sdt" - } - }, - "com.amazonaws.medialive#DvbSdtSettings": { - "type": "structure", - "members": { - "OutputSdt": { - "target": "com.amazonaws.medialive#DvbSdtOutputSdt", + "Id": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "outputSdt" + "smithy.api#documentation": "The unique id of the multiplex.", + "smithy.api#jsonName": "id" } }, - "RepInterval": { - "target": "com.amazonaws.medialive#__integerMin25Max2000", + "MultiplexSettings": { + "target": "com.amazonaws.medialive#MultiplexSettings", "traits": { - "smithy.api#documentation": "The number of milliseconds between instances of this table in the output transport stream.", - "smithy.api#jsonName": "repInterval" + "smithy.api#documentation": "Configuration for a multiplex event.", + "smithy.api#jsonName": "multiplexSettings" } }, - "ServiceName": { - "target": "com.amazonaws.medialive#__stringMin1Max256", + "Name": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The service name placed in the serviceDescriptor in the Service Description Table. Maximum length is 256 characters.", - "smithy.api#jsonName": "serviceName" + "smithy.api#documentation": "The name of the multiplex.", + "smithy.api#jsonName": "name" } }, - "ServiceProviderName": { - "target": "com.amazonaws.medialive#__stringMin1Max256", + "PipelinesRunningCount": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#documentation": "The service provider name placed in the serviceDescriptor in the Service Description Table. Maximum length is 256 characters.", - "smithy.api#jsonName": "serviceProviderName" + "smithy.api#documentation": "The number of currently healthy pipelines.", + "smithy.api#jsonName": "pipelinesRunningCount" } - } - }, - "traits": { - "smithy.api#documentation": "DVB Service Description Table (SDT)" - } - }, - "com.amazonaws.medialive#DvbSubDestinationAlignment": { - "type": "enum", - "members": { - "CENTERED": { - "target": "smithy.api#Unit", + }, + "ProgramCount": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#enumValue": "CENTERED" + "smithy.api#documentation": "The number of programs in the multiplex.", + "smithy.api#jsonName": "programCount" } }, - "LEFT": { - "target": "smithy.api#Unit", + "State": { + "target": "com.amazonaws.medialive#MultiplexState", "traits": { - "smithy.api#enumValue": "LEFT" + "smithy.api#documentation": "The current state of the multiplex.", + "smithy.api#jsonName": "state" } }, - "SMART": { - "target": "smithy.api#Unit", + "Tags": { + "target": "com.amazonaws.medialive#Tags", "traits": { - "smithy.api#enumValue": "SMART" + "smithy.api#documentation": "A collection of key-value pairs.", + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "Dvb Sub Destination Alignment" + "smithy.api#documentation": "Placeholder documentation for DescribeMultiplexResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#DvbSubDestinationBackgroundColor": { - "type": "enum", - "members": { - "BLACK": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "BLACK" - } + "com.amazonaws.medialive#DescribeOffering": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#DescribeOfferingRequest" + }, + "output": { + "target": "com.amazonaws.medialive#DescribeOfferingResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" }, - "NONE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "NONE" - } + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "WHITE": { - "target": "smithy.api#Unit", + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Get details for an offering.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/offerings/{OfferingId}", + "code": 200 + } + } + }, + "com.amazonaws.medialive#DescribeOfferingRequest": { + "type": "structure", + "members": { + "OfferingId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "WHITE" + "smithy.api#documentation": "Unique offering ID, e.g. '87654321'", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Dvb Sub Destination Background Color" + "smithy.api#documentation": "Placeholder documentation for DescribeOfferingRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#DvbSubDestinationFontColor": { - "type": "enum", + "com.amazonaws.medialive#DescribeOfferingResponse": { + "type": "structure", "members": { - "BLACK": { - "target": "smithy.api#Unit", + "Arn": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "BLACK" + "smithy.api#documentation": "Unique offering ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:offering:87654321'", + "smithy.api#jsonName": "arn" } }, - "BLUE": { - "target": "smithy.api#Unit", + "CurrencyCode": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "BLUE" + "smithy.api#documentation": "Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'", + "smithy.api#jsonName": "currencyCode" } }, - "GREEN": { - "target": "smithy.api#Unit", + "Duration": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#enumValue": "GREEN" + "smithy.api#documentation": "Lease duration, e.g. '12'", + "smithy.api#jsonName": "duration" } }, - "RED": { - "target": "smithy.api#Unit", + "DurationUnits": { + "target": "com.amazonaws.medialive#OfferingDurationUnits", "traits": { - "smithy.api#enumValue": "RED" + "smithy.api#documentation": "Units for duration, e.g. 'MONTHS'", + "smithy.api#jsonName": "durationUnits" } }, - "WHITE": { - "target": "smithy.api#Unit", + "FixedPrice": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#enumValue": "WHITE" + "smithy.api#documentation": "One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering", + "smithy.api#jsonName": "fixedPrice" } }, - "YELLOW": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "YELLOW" + "OfferingDescription": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'", + "smithy.api#jsonName": "offeringDescription" } - } - }, - "traits": { - "smithy.api#documentation": "Dvb Sub Destination Font Color" - } - }, - "com.amazonaws.medialive#DvbSubDestinationOutlineColor": { - "type": "enum", - "members": { - "BLACK": { - "target": "smithy.api#Unit", + }, + "OfferingId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "BLACK" + "smithy.api#documentation": "Unique offering ID, e.g. '87654321'", + "smithy.api#jsonName": "offeringId" } }, - "BLUE": { - "target": "smithy.api#Unit", + "OfferingType": { + "target": "com.amazonaws.medialive#OfferingType", "traits": { - "smithy.api#enumValue": "BLUE" + "smithy.api#documentation": "Offering type, e.g. 'NO_UPFRONT'", + "smithy.api#jsonName": "offeringType" } }, - "GREEN": { - "target": "smithy.api#Unit", + "Region": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "GREEN" + "smithy.api#documentation": "AWS region, e.g. 'us-west-2'", + "smithy.api#jsonName": "region" } }, - "RED": { - "target": "smithy.api#Unit", + "ResourceSpecification": { + "target": "com.amazonaws.medialive#ReservationResourceSpecification", "traits": { - "smithy.api#enumValue": "RED" + "smithy.api#documentation": "Resource configuration details", + "smithy.api#jsonName": "resourceSpecification" } }, - "WHITE": { - "target": "smithy.api#Unit", + "UsagePrice": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#enumValue": "WHITE" + "smithy.api#documentation": "Recurring usage charge for each reserved resource, e.g. '157.0'", + "smithy.api#jsonName": "usagePrice" } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for DescribeOfferingResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#DescribeReservation": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#DescribeReservationRequest" + }, + "output": { + "target": "com.amazonaws.medialive#DescribeReservationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" }, - "YELLOW": { - "target": "smithy.api#Unit", + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Get details for a reservation.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/reservations/{ReservationId}", + "code": 200 + } + } + }, + "com.amazonaws.medialive#DescribeReservationRequest": { + "type": "structure", + "members": { + "ReservationId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "YELLOW" + "smithy.api#documentation": "Unique reservation ID, e.g. '1234567'", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Dvb Sub Destination Outline Color" + "smithy.api#documentation": "Placeholder documentation for DescribeReservationRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#DvbSubDestinationSettings": { + "com.amazonaws.medialive#DescribeReservationResponse": { "type": "structure", "members": { - "Alignment": { - "target": "com.amazonaws.medialive#DvbSubDestinationAlignment", + "Arn": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "alignment" + "smithy.api#documentation": "Unique reservation ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'", + "smithy.api#jsonName": "arn" } }, - "BackgroundColor": { - "target": "com.amazonaws.medialive#DvbSubDestinationBackgroundColor", + "Count": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#documentation": "Specifies the color of the rectangle behind the captions. All burn-in and DVB-Sub font settings must match.", - "smithy.api#jsonName": "backgroundColor" + "smithy.api#documentation": "Number of reserved resources", + "smithy.api#jsonName": "count" } }, - "BackgroundOpacity": { - "target": "com.amazonaws.medialive#__integerMin0Max255", + "CurrencyCode": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "backgroundOpacity" + "smithy.api#documentation": "Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'", + "smithy.api#jsonName": "currencyCode" } }, - "Font": { - "target": "com.amazonaws.medialive#InputLocation", + "Duration": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "font" + "smithy.api#documentation": "Lease duration, e.g. '12'", + "smithy.api#jsonName": "duration" } }, - "FontColor": { - "target": "com.amazonaws.medialive#DvbSubDestinationFontColor", + "DurationUnits": { + "target": "com.amazonaws.medialive#OfferingDurationUnits", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "fontColor" + "smithy.api#documentation": "Units for duration, e.g. 'MONTHS'", + "smithy.api#jsonName": "durationUnits" } }, - "FontOpacity": { - "target": "com.amazonaws.medialive#__integerMin0Max255", + "End": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Specifies the opacity of the burned-in captions. 255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.", - "smithy.api#jsonName": "fontOpacity" + "smithy.api#documentation": "Reservation UTC end date and time in ISO-8601 format, e.g. '2019-03-01T00:00:00'", + "smithy.api#jsonName": "end" } }, - "FontResolution": { - "target": "com.amazonaws.medialive#__integerMin96Max600", + "FixedPrice": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#documentation": "Font resolution in DPI (dots per inch); default is 96 dpi. All burn-in and DVB-Sub font settings must match.", - "smithy.api#jsonName": "fontResolution" + "smithy.api#documentation": "One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering", + "smithy.api#jsonName": "fixedPrice" } }, - "FontSize": { + "Name": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "fontSize" + "smithy.api#documentation": "User specified reservation name", + "smithy.api#jsonName": "name" } }, - "OutlineColor": { - "target": "com.amazonaws.medialive#DvbSubDestinationOutlineColor", + "OfferingDescription": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "outlineColor" + "smithy.api#documentation": "Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'", + "smithy.api#jsonName": "offeringDescription" } }, - "OutlineSize": { - "target": "com.amazonaws.medialive#__integerMin0Max10", + "OfferingId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "outlineSize" + "smithy.api#documentation": "Unique offering ID, e.g. '87654321'", + "smithy.api#jsonName": "offeringId" } }, - "ShadowColor": { - "target": "com.amazonaws.medialive#DvbSubDestinationShadowColor", + "OfferingType": { + "target": "com.amazonaws.medialive#OfferingType", "traits": { - "smithy.api#documentation": "Specifies the color of the shadow cast by the captions. All burn-in and DVB-Sub font settings must match.", - "smithy.api#jsonName": "shadowColor" + "smithy.api#documentation": "Offering type, e.g. 'NO_UPFRONT'", + "smithy.api#jsonName": "offeringType" } }, - "ShadowOpacity": { - "target": "com.amazonaws.medialive#__integerMin0Max255", + "Region": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "shadowOpacity" + "smithy.api#documentation": "AWS region, e.g. 'us-west-2'", + "smithy.api#jsonName": "region" } }, - "ShadowXOffset": { - "target": "com.amazonaws.medialive#__integer", + "RenewalSettings": { + "target": "com.amazonaws.medialive#RenewalSettings", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "shadowXOffset" + "smithy.api#documentation": "Renewal settings for the reservation", + "smithy.api#jsonName": "renewalSettings" } }, - "ShadowYOffset": { - "target": "com.amazonaws.medialive#__integer", + "ReservationId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "shadowYOffset" + "smithy.api#documentation": "Unique reservation ID, e.g. '1234567'", + "smithy.api#jsonName": "reservationId" } }, - "TeletextGridControl": { - "target": "com.amazonaws.medialive#DvbSubDestinationTeletextGridControl", + "ResourceSpecification": { + "target": "com.amazonaws.medialive#ReservationResourceSpecification", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "teletextGridControl" + "smithy.api#documentation": "Resource configuration details", + "smithy.api#jsonName": "resourceSpecification" } }, - "XPosition": { - "target": "com.amazonaws.medialive#__integerMin0", + "Start": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "xPosition" + "smithy.api#documentation": "Reservation UTC start date and time in ISO-8601 format, e.g. '2018-03-01T00:00:00'", + "smithy.api#jsonName": "start" } }, - "YPosition": { - "target": "com.amazonaws.medialive#__integerMin0", + "State": { + "target": "com.amazonaws.medialive#ReservationState", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "yPosition" - } - } - }, - "traits": { - "smithy.api#documentation": "Dvb Sub Destination Settings" - } - }, - "com.amazonaws.medialive#DvbSubDestinationShadowColor": { - "type": "enum", - "members": { - "BLACK": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "BLACK" + "smithy.api#documentation": "Current state of reservation, e.g. 'ACTIVE'", + "smithy.api#jsonName": "state" } }, - "NONE": { - "target": "smithy.api#Unit", + "Tags": { + "target": "com.amazonaws.medialive#Tags", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#documentation": "A collection of key-value pairs", + "smithy.api#jsonName": "tags" } }, - "WHITE": { - "target": "smithy.api#Unit", + "UsagePrice": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#enumValue": "WHITE" + "smithy.api#documentation": "Recurring usage charge for each reserved resource, e.g. '157.0'", + "smithy.api#jsonName": "usagePrice" } } }, "traits": { - "smithy.api#documentation": "Dvb Sub Destination Shadow Color" + "smithy.api#documentation": "Placeholder documentation for DescribeReservationResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#DvbSubDestinationTeletextGridControl": { - "type": "enum", + "com.amazonaws.medialive#DescribeSchedule": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#DescribeScheduleRequest" + }, + "output": { + "target": "com.amazonaws.medialive#DescribeScheduleResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" + }, + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Get a channel schedule", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/channels/{ChannelId}/schedule", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ScheduleActions", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.medialive#DescribeScheduleRequest": { + "type": "structure", "members": { - "FIXED": { - "target": "smithy.api#Unit", + "ChannelId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "FIXED" + "smithy.api#documentation": "Id of the channel whose schedule is being updated.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, - "SCALED": { - "target": "smithy.api#Unit", + "MaxResults": { + "target": "com.amazonaws.medialive#MaxResults", "traits": { - "smithy.api#enumValue": "SCALED" + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#httpQuery": "nextToken" } } }, "traits": { - "smithy.api#documentation": "Dvb Sub Destination Teletext Grid Control" + "smithy.api#documentation": "Placeholder documentation for DescribeScheduleRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#DvbSubOcrLanguage": { - "type": "enum", + "com.amazonaws.medialive#DescribeScheduleResponse": { + "type": "structure", "members": { - "DEU": { - "target": "smithy.api#Unit", + "NextToken": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "DEU" + "smithy.api#documentation": "The next token; for use in pagination.", + "smithy.api#jsonName": "nextToken" } }, - "ENG": { - "target": "smithy.api#Unit", + "ScheduleActions": { + "target": "com.amazonaws.medialive#__listOfScheduleAction", "traits": { - "smithy.api#enumValue": "ENG" + "smithy.api#documentation": "The list of actions in the schedule.", + "smithy.api#jsonName": "scheduleActions" } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for DescribeScheduleResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#DescribeThumbnails": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#DescribeThumbnailsRequest" + }, + "output": { + "target": "com.amazonaws.medialive#DescribeThumbnailsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" }, - "FRA": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "FRA" - } + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "NLD": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "NLD" - } + { + "target": "com.amazonaws.medialive#ConflictException" }, - "POR": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "POR" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" }, - "SPA": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SPA" - } + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" } - }, + ], "traits": { - "smithy.api#documentation": "Dvb Sub Ocr Language" + "smithy.api#documentation": "Describe the latest thumbnails data.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/channels/{ChannelId}/thumbnails", + "code": 200 + } } }, - "com.amazonaws.medialive#DvbSubSourceSettings": { + "com.amazonaws.medialive#DescribeThumbnailsRequest": { "type": "structure", "members": { - "OcrLanguage": { - "target": "com.amazonaws.medialive#DvbSubOcrLanguage", + "ChannelId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "If you will configure a WebVTT caption description that references this caption selector, use this field to\nprovide the language to consider when translating the image-based source to text.", - "smithy.api#jsonName": "ocrLanguage" + "smithy.api#documentation": "Unique ID of the channel", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, - "Pid": { - "target": "com.amazonaws.medialive#__integerMin1", + "PipelineId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "pid" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Pipeline ID (\"0\" or \"1\")", + "smithy.api#httpQuery": "pipelineId", + "smithy.api#required": {} + } + }, + "ThumbnailType": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "thumbnail type", + "smithy.api#httpQuery": "thumbnailType", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Dvb Sub Source Settings" + "smithy.api#documentation": "Placeholder documentation for DescribeThumbnailsRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#DvbTdtSettings": { + "com.amazonaws.medialive#DescribeThumbnailsResponse": { "type": "structure", "members": { - "RepInterval": { - "target": "com.amazonaws.medialive#__integerMin1000Max30000", + "ThumbnailDetails": { + "target": "com.amazonaws.medialive#__listOfThumbnailDetail", "traits": { - "smithy.api#documentation": "The number of milliseconds between instances of this table in the output transport stream.", - "smithy.api#jsonName": "repInterval" + "smithy.api#jsonName": "thumbnailDetails" } } }, "traits": { - "smithy.api#documentation": "DVB Time and Date Table (SDT)" + "smithy.api#documentation": "Placeholder documentation for DescribeThumbnailsResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#Eac3AtmosCodingMode": { + "com.amazonaws.medialive#DeviceSettingsSyncState": { "type": "enum", "members": { - "CODING_MODE_5_1_4": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CODING_MODE_5_1_4" - } - }, - "CODING_MODE_7_1_4": { + "SYNCED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CODING_MODE_7_1_4" + "smithy.api#enumValue": "SYNCED" } }, - "CODING_MODE_9_1_6": { + "SYNCING": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CODING_MODE_9_1_6" + "smithy.api#enumValue": "SYNCING" } } }, "traits": { - "smithy.api#documentation": "Eac3 Atmos Coding Mode" + "smithy.api#documentation": "The status of the action to synchronize the device configuration. If you change the configuration of the input device (for example, the maximum bitrate), MediaLive sends the new data to the device. The device might not update itself immediately. SYNCED means the device has updated its configuration. SYNCING means that it has not updated its configuration." } }, - "com.amazonaws.medialive#Eac3AtmosDrcLine": { + "com.amazonaws.medialive#DeviceUpdateStatus": { "type": "enum", "members": { - "FILM_LIGHT": { + "UP_TO_DATE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FILM_LIGHT" + "smithy.api#enumValue": "UP_TO_DATE" } }, - "FILM_STANDARD": { + "NOT_UP_TO_DATE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FILM_STANDARD" + "smithy.api#enumValue": "NOT_UP_TO_DATE" } }, - "MUSIC_LIGHT": { + "UPDATING": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MUSIC_LIGHT" + "smithy.api#enumValue": "UPDATING" } - }, - "MUSIC_STANDARD": { + } + }, + "traits": { + "smithy.api#documentation": "The status of software on the input device." + } + }, + "com.amazonaws.medialive#DolbyEProgramSelection": { + "type": "enum", + "members": { + "ALL_CHANNELS": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MUSIC_STANDARD" + "smithy.api#enumValue": "ALL_CHANNELS" } }, - "NONE": { + "PROGRAM_1": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#enumValue": "PROGRAM_1" } }, - "SPEECH": { + "PROGRAM_2": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SPEECH" + "smithy.api#enumValue": "PROGRAM_2" } - } - }, - "traits": { - "smithy.api#documentation": "Eac3 Atmos Drc Line" - } - }, - "com.amazonaws.medialive#Eac3AtmosDrcRf": { - "type": "enum", - "members": { - "FILM_LIGHT": { + }, + "PROGRAM_3": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FILM_LIGHT" + "smithy.api#enumValue": "PROGRAM_3" } }, - "FILM_STANDARD": { + "PROGRAM_4": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FILM_STANDARD" + "smithy.api#enumValue": "PROGRAM_4" } }, - "MUSIC_LIGHT": { + "PROGRAM_5": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MUSIC_LIGHT" + "smithy.api#enumValue": "PROGRAM_5" } }, - "MUSIC_STANDARD": { + "PROGRAM_6": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MUSIC_STANDARD" + "smithy.api#enumValue": "PROGRAM_6" } }, - "NONE": { + "PROGRAM_7": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#enumValue": "PROGRAM_7" } }, - "SPEECH": { + "PROGRAM_8": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SPEECH" + "smithy.api#enumValue": "PROGRAM_8" } } }, "traits": { - "smithy.api#documentation": "Eac3 Atmos Drc Rf" + "smithy.api#documentation": "Dolby EProgram Selection" } }, - "com.amazonaws.medialive#Eac3AtmosSettings": { + "com.amazonaws.medialive#DolbyVision81Settings": { "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Dolby Vision81 Settings" + } + }, + "com.amazonaws.medialive#DvbDashAccessibility": { + "type": "enum", "members": { - "Bitrate": { - "target": "com.amazonaws.medialive#__double", + "DVBDASH_1_VISUALLY_IMPAIRED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Average bitrate in bits/second. Valid bitrates depend on the coding mode.\n// * @affectsRightSizing true", - "smithy.api#jsonName": "bitrate" + "smithy.api#enumValue": "DVBDASH_1_VISUALLY_IMPAIRED" } }, - "CodingMode": { - "target": "com.amazonaws.medialive#Eac3AtmosCodingMode", + "DVBDASH_2_HARD_OF_HEARING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Dolby Digital Plus with Dolby Atmos coding mode. Determines number of channels.", - "smithy.api#jsonName": "codingMode" + "smithy.api#enumValue": "DVBDASH_2_HARD_OF_HEARING" } }, - "Dialnorm": { - "target": "com.amazonaws.medialive#__integerMin1Max31", + "DVBDASH_3_SUPPLEMENTAL_COMMENTARY": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Sets the dialnorm for the output. Default 23.", - "smithy.api#jsonName": "dialnorm" + "smithy.api#enumValue": "DVBDASH_3_SUPPLEMENTAL_COMMENTARY" } }, - "DrcLine": { - "target": "com.amazonaws.medialive#Eac3AtmosDrcLine", + "DVBDASH_4_DIRECTORS_COMMENTARY": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Sets the Dolby dynamic range compression profile.", - "smithy.api#jsonName": "drcLine" + "smithy.api#enumValue": "DVBDASH_4_DIRECTORS_COMMENTARY" } }, - "DrcRf": { - "target": "com.amazonaws.medialive#Eac3AtmosDrcRf", + "DVBDASH_5_EDUCATIONAL_NOTES": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Sets the profile for heavy Dolby dynamic range compression, ensures that the instantaneous signal peaks do not exceed specified levels.", - "smithy.api#jsonName": "drcRf" + "smithy.api#enumValue": "DVBDASH_5_EDUCATIONAL_NOTES" } }, - "HeightTrim": { - "target": "com.amazonaws.medialive#__double", + "DVBDASH_6_MAIN_PROGRAM": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Height dimensional trim. Sets the maximum amount to attenuate the height channels when the downstream player isn??t configured to handle Dolby Digital Plus with Dolby Atmos and must remix the channels.", - "smithy.api#jsonName": "heightTrim" + "smithy.api#enumValue": "DVBDASH_6_MAIN_PROGRAM" } }, - "SurroundTrim": { - "target": "com.amazonaws.medialive#__double", + "DVBDASH_7_CLEAN_FEED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Surround dimensional trim. Sets the maximum amount to attenuate the surround channels when the downstream player isn't configured to handle Dolby Digital Plus with Dolby Atmos and must remix the channels.", - "smithy.api#jsonName": "surroundTrim" + "smithy.api#enumValue": "DVBDASH_7_CLEAN_FEED" } } }, "traits": { - "smithy.api#documentation": "Eac3 Atmos Settings" + "smithy.api#documentation": "Dvb Dash Accessibility" } }, - "com.amazonaws.medialive#Eac3AttenuationControl": { - "type": "enum", + "com.amazonaws.medialive#DvbNitSettings": { + "type": "structure", "members": { - "ATTENUATE_3_DB": { - "target": "smithy.api#Unit", + "NetworkId": { + "target": "com.amazonaws.medialive#__integerMin0Max65536", "traits": { - "smithy.api#enumValue": "ATTENUATE_3_DB" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The numeric value placed in the Network Information Table (NIT).", + "smithy.api#jsonName": "networkId", + "smithy.api#required": {} } }, - "NONE": { - "target": "smithy.api#Unit", + "NetworkName": { + "target": "com.amazonaws.medialive#__stringMin1Max256", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The network name text placed in the networkNameDescriptor inside the Network Information Table. Maximum length is 256 characters.", + "smithy.api#jsonName": "networkName", + "smithy.api#required": {} + } + }, + "RepInterval": { + "target": "com.amazonaws.medialive#__integerMin25Max10000", + "traits": { + "smithy.api#documentation": "The number of milliseconds between instances of this table in the output transport stream.", + "smithy.api#jsonName": "repInterval" } } }, "traits": { - "smithy.api#documentation": "Eac3 Attenuation Control" + "smithy.api#documentation": "DVB Network Information Table (NIT)" } }, - "com.amazonaws.medialive#Eac3BitstreamMode": { + "com.amazonaws.medialive#DvbSdtOutputSdt": { "type": "enum", "members": { - "COMMENTARY": { + "SDT_FOLLOW": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "COMMENTARY" + "smithy.api#enumValue": "SDT_FOLLOW" } }, - "COMPLETE_MAIN": { + "SDT_FOLLOW_IF_PRESENT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "COMPLETE_MAIN" + "smithy.api#enumValue": "SDT_FOLLOW_IF_PRESENT" } }, - "EMERGENCY": { + "SDT_MANUAL": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EMERGENCY" + "smithy.api#enumValue": "SDT_MANUAL" } }, - "HEARING_IMPAIRED": { + "SDT_NONE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "HEARING_IMPAIRED" + "smithy.api#enumValue": "SDT_NONE" + } + } + }, + "traits": { + "smithy.api#documentation": "Dvb Sdt Output Sdt" + } + }, + "com.amazonaws.medialive#DvbSdtSettings": { + "type": "structure", + "members": { + "OutputSdt": { + "target": "com.amazonaws.medialive#DvbSdtOutputSdt", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "outputSdt" } }, - "VISUALLY_IMPAIRED": { - "target": "smithy.api#Unit", + "RepInterval": { + "target": "com.amazonaws.medialive#__integerMin25Max2000", "traits": { - "smithy.api#enumValue": "VISUALLY_IMPAIRED" + "smithy.api#documentation": "The number of milliseconds between instances of this table in the output transport stream.", + "smithy.api#jsonName": "repInterval" + } + }, + "ServiceName": { + "target": "com.amazonaws.medialive#__stringMin1Max256", + "traits": { + "smithy.api#documentation": "The service name placed in the serviceDescriptor in the Service Description Table. Maximum length is 256 characters.", + "smithy.api#jsonName": "serviceName" + } + }, + "ServiceProviderName": { + "target": "com.amazonaws.medialive#__stringMin1Max256", + "traits": { + "smithy.api#documentation": "The service provider name placed in the serviceDescriptor in the Service Description Table. Maximum length is 256 characters.", + "smithy.api#jsonName": "serviceProviderName" } } }, "traits": { - "smithy.api#documentation": "Eac3 Bitstream Mode" + "smithy.api#documentation": "DVB Service Description Table (SDT)" } }, - "com.amazonaws.medialive#Eac3CodingMode": { + "com.amazonaws.medialive#DvbSubDestinationAlignment": { "type": "enum", "members": { - "CODING_MODE_1_0": { + "CENTERED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CODING_MODE_1_0" + "smithy.api#enumValue": "CENTERED" } }, - "CODING_MODE_2_0": { + "LEFT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CODING_MODE_2_0" + "smithy.api#enumValue": "LEFT" } }, - "CODING_MODE_3_2": { + "SMART": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CODING_MODE_3_2" + "smithy.api#enumValue": "SMART" } } }, "traits": { - "smithy.api#documentation": "Eac3 Coding Mode" + "smithy.api#documentation": "Dvb Sub Destination Alignment" } }, - "com.amazonaws.medialive#Eac3DcFilter": { + "com.amazonaws.medialive#DvbSubDestinationBackgroundColor": { "type": "enum", "members": { - "DISABLED": { + "BLACK": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "BLACK" } }, - "ENABLED": { + "NONE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "NONE" + } + }, + "WHITE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WHITE" } } }, "traits": { - "smithy.api#documentation": "Eac3 Dc Filter" + "smithy.api#documentation": "Dvb Sub Destination Background Color" } }, - "com.amazonaws.medialive#Eac3DrcLine": { + "com.amazonaws.medialive#DvbSubDestinationFontColor": { "type": "enum", "members": { - "FILM_LIGHT": { + "BLACK": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FILM_LIGHT" + "smithy.api#enumValue": "BLACK" } }, - "FILM_STANDARD": { + "BLUE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FILM_STANDARD" + "smithy.api#enumValue": "BLUE" } }, - "MUSIC_LIGHT": { + "GREEN": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MUSIC_LIGHT" + "smithy.api#enumValue": "GREEN" } }, - "MUSIC_STANDARD": { + "RED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MUSIC_STANDARD" + "smithy.api#enumValue": "RED" } }, - "NONE": { + "WHITE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#enumValue": "WHITE" } }, - "SPEECH": { + "YELLOW": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SPEECH" + "smithy.api#enumValue": "YELLOW" } } }, "traits": { - "smithy.api#documentation": "Eac3 Drc Line" + "smithy.api#documentation": "Dvb Sub Destination Font Color" } }, - "com.amazonaws.medialive#Eac3DrcRf": { + "com.amazonaws.medialive#DvbSubDestinationOutlineColor": { "type": "enum", "members": { - "FILM_LIGHT": { + "BLACK": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FILM_LIGHT" + "smithy.api#enumValue": "BLACK" } }, - "FILM_STANDARD": { + "BLUE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FILM_STANDARD" + "smithy.api#enumValue": "BLUE" } }, - "MUSIC_LIGHT": { + "GREEN": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MUSIC_LIGHT" + "smithy.api#enumValue": "GREEN" } }, - "MUSIC_STANDARD": { + "RED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MUSIC_STANDARD" + "smithy.api#enumValue": "RED" } }, - "NONE": { + "WHITE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#enumValue": "WHITE" } }, - "SPEECH": { + "YELLOW": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SPEECH" + "smithy.api#enumValue": "YELLOW" } } }, "traits": { - "smithy.api#documentation": "Eac3 Drc Rf" + "smithy.api#documentation": "Dvb Sub Destination Outline Color" } }, - "com.amazonaws.medialive#Eac3LfeControl": { - "type": "enum", + "com.amazonaws.medialive#DvbSubDestinationSettings": { + "type": "structure", "members": { - "LFE": { - "target": "smithy.api#Unit", + "Alignment": { + "target": "com.amazonaws.medialive#DvbSubDestinationAlignment", "traits": { - "smithy.api#enumValue": "LFE" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "alignment" } }, - "NO_LFE": { - "target": "smithy.api#Unit", + "BackgroundColor": { + "target": "com.amazonaws.medialive#DvbSubDestinationBackgroundColor", "traits": { - "smithy.api#enumValue": "NO_LFE" + "smithy.api#documentation": "Specifies the color of the rectangle behind the captions. All burn-in and DVB-Sub font settings must match.", + "smithy.api#jsonName": "backgroundColor" + } + }, + "BackgroundOpacity": { + "target": "com.amazonaws.medialive#__integerMin0Max255", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "backgroundOpacity" + } + }, + "Font": { + "target": "com.amazonaws.medialive#InputLocation", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "font" + } + }, + "FontColor": { + "target": "com.amazonaws.medialive#DvbSubDestinationFontColor", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "fontColor" + } + }, + "FontOpacity": { + "target": "com.amazonaws.medialive#__integerMin0Max255", + "traits": { + "smithy.api#documentation": "Specifies the opacity of the burned-in captions. 255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.", + "smithy.api#jsonName": "fontOpacity" + } + }, + "FontResolution": { + "target": "com.amazonaws.medialive#__integerMin96Max600", + "traits": { + "smithy.api#documentation": "Font resolution in DPI (dots per inch); default is 96 dpi. All burn-in and DVB-Sub font settings must match.", + "smithy.api#jsonName": "fontResolution" + } + }, + "FontSize": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "fontSize" + } + }, + "OutlineColor": { + "target": "com.amazonaws.medialive#DvbSubDestinationOutlineColor", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "outlineColor" + } + }, + "OutlineSize": { + "target": "com.amazonaws.medialive#__integerMin0Max10", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "outlineSize" + } + }, + "ShadowColor": { + "target": "com.amazonaws.medialive#DvbSubDestinationShadowColor", + "traits": { + "smithy.api#documentation": "Specifies the color of the shadow cast by the captions. All burn-in and DVB-Sub font settings must match.", + "smithy.api#jsonName": "shadowColor" + } + }, + "ShadowOpacity": { + "target": "com.amazonaws.medialive#__integerMin0Max255", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "shadowOpacity" + } + }, + "ShadowXOffset": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "shadowXOffset" + } + }, + "ShadowYOffset": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "shadowYOffset" + } + }, + "TeletextGridControl": { + "target": "com.amazonaws.medialive#DvbSubDestinationTeletextGridControl", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "teletextGridControl" + } + }, + "XPosition": { + "target": "com.amazonaws.medialive#__integerMin0", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "xPosition" + } + }, + "YPosition": { + "target": "com.amazonaws.medialive#__integerMin0", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "yPosition" } } }, "traits": { - "smithy.api#documentation": "Eac3 Lfe Control" + "smithy.api#documentation": "Dvb Sub Destination Settings" } }, - "com.amazonaws.medialive#Eac3LfeFilter": { + "com.amazonaws.medialive#DvbSubDestinationShadowColor": { "type": "enum", "members": { - "DISABLED": { + "BLACK": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "BLACK" } }, - "ENABLED": { + "NONE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "NONE" + } + }, + "WHITE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WHITE" } } }, "traits": { - "smithy.api#documentation": "Eac3 Lfe Filter" + "smithy.api#documentation": "Dvb Sub Destination Shadow Color" } }, - "com.amazonaws.medialive#Eac3MetadataControl": { + "com.amazonaws.medialive#DvbSubDestinationTeletextGridControl": { "type": "enum", "members": { - "FOLLOW_INPUT": { + "FIXED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FOLLOW_INPUT" + "smithy.api#enumValue": "FIXED" } }, - "USE_CONFIGURED": { + "SCALED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "USE_CONFIGURED" + "smithy.api#enumValue": "SCALED" } } }, "traits": { - "smithy.api#documentation": "Eac3 Metadata Control" + "smithy.api#documentation": "Dvb Sub Destination Teletext Grid Control" } }, - "com.amazonaws.medialive#Eac3PassthroughControl": { + "com.amazonaws.medialive#DvbSubOcrLanguage": { "type": "enum", "members": { - "NO_PASSTHROUGH": { + "DEU": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NO_PASSTHROUGH" + "smithy.api#enumValue": "DEU" } }, - "WHEN_POSSIBLE": { + "ENG": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "WHEN_POSSIBLE" + "smithy.api#enumValue": "ENG" } - } - }, - "traits": { - "smithy.api#documentation": "Eac3 Passthrough Control" - } - }, - "com.amazonaws.medialive#Eac3PhaseControl": { - "type": "enum", - "members": { - "NO_SHIFT": { + }, + "FRA": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NO_SHIFT" + "smithy.api#enumValue": "FRA" } }, - "SHIFT_90_DEGREES": { + "NLD": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SHIFT_90_DEGREES" + "smithy.api#enumValue": "NLD" + } + }, + "POR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "POR" + } + }, + "SPA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SPA" } } }, "traits": { - "smithy.api#documentation": "Eac3 Phase Control" + "smithy.api#documentation": "Dvb Sub Ocr Language" } }, - "com.amazonaws.medialive#Eac3Settings": { + "com.amazonaws.medialive#DvbSubSourceSettings": { "type": "structure", "members": { - "AttenuationControl": { - "target": "com.amazonaws.medialive#Eac3AttenuationControl", + "OcrLanguage": { + "target": "com.amazonaws.medialive#DvbSubOcrLanguage", "traits": { - "smithy.api#documentation": "When set to attenuate3Db, applies a 3 dB attenuation to the surround channels. Only used for 3/2 coding mode.", - "smithy.api#jsonName": "attenuationControl" + "smithy.api#documentation": "If you will configure a WebVTT caption description that references this caption selector, use this field to\nprovide the language to consider when translating the image-based source to text.", + "smithy.api#jsonName": "ocrLanguage" } }, - "Bitrate": { - "target": "com.amazonaws.medialive#__double", + "Pid": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#documentation": "Average bitrate in bits/second. Valid bitrates depend on the coding mode.", - "smithy.api#jsonName": "bitrate" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "pid" } - }, - "BitstreamMode": { - "target": "com.amazonaws.medialive#Eac3BitstreamMode", - "traits": { - "smithy.api#documentation": "Specifies the bitstream mode (bsmod) for the emitted E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.", - "smithy.api#jsonName": "bitstreamMode" - } - }, - "CodingMode": { - "target": "com.amazonaws.medialive#Eac3CodingMode", - "traits": { - "smithy.api#documentation": "Dolby Digital Plus coding mode. Determines number of channels.", - "smithy.api#jsonName": "codingMode" - } - }, - "DcFilter": { - "target": "com.amazonaws.medialive#Eac3DcFilter", + } + }, + "traits": { + "smithy.api#documentation": "Dvb Sub Source Settings" + } + }, + "com.amazonaws.medialive#DvbTdtSettings": { + "type": "structure", + "members": { + "RepInterval": { + "target": "com.amazonaws.medialive#__integerMin1000Max30000", "traits": { - "smithy.api#documentation": "When set to enabled, activates a DC highpass filter for all input channels.", - "smithy.api#jsonName": "dcFilter" + "smithy.api#documentation": "The number of milliseconds between instances of this table in the output transport stream.", + "smithy.api#jsonName": "repInterval" } - }, - "Dialnorm": { - "target": "com.amazonaws.medialive#__integerMin1Max31", + } + }, + "traits": { + "smithy.api#documentation": "DVB Time and Date Table (SDT)" + } + }, + "com.amazonaws.medialive#Eac3AtmosCodingMode": { + "type": "enum", + "members": { + "CODING_MODE_5_1_4": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Sets the dialnorm for the output. If blank and input audio is Dolby Digital Plus, dialnorm will be passed through.", - "smithy.api#jsonName": "dialnorm" + "smithy.api#enumValue": "CODING_MODE_5_1_4" } }, - "DrcLine": { - "target": "com.amazonaws.medialive#Eac3DrcLine", + "CODING_MODE_7_1_4": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Sets the Dolby dynamic range compression profile.", - "smithy.api#jsonName": "drcLine" + "smithy.api#enumValue": "CODING_MODE_7_1_4" } }, - "DrcRf": { - "target": "com.amazonaws.medialive#Eac3DrcRf", + "CODING_MODE_9_1_6": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Sets the profile for heavy Dolby dynamic range compression, ensures that the instantaneous signal peaks do not exceed specified levels.", - "smithy.api#jsonName": "drcRf" + "smithy.api#enumValue": "CODING_MODE_9_1_6" } - }, - "LfeControl": { - "target": "com.amazonaws.medialive#Eac3LfeControl", + } + }, + "traits": { + "smithy.api#documentation": "Eac3 Atmos Coding Mode" + } + }, + "com.amazonaws.medialive#Eac3AtmosDrcLine": { + "type": "enum", + "members": { + "FILM_LIGHT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "When encoding 3/2 audio, setting to lfe enables the LFE channel", - "smithy.api#jsonName": "lfeControl" + "smithy.api#enumValue": "FILM_LIGHT" } }, - "LfeFilter": { - "target": "com.amazonaws.medialive#Eac3LfeFilter", + "FILM_STANDARD": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding. Only valid with codingMode32 coding mode.", - "smithy.api#jsonName": "lfeFilter" + "smithy.api#enumValue": "FILM_STANDARD" } }, - "LoRoCenterMixLevel": { - "target": "com.amazonaws.medialive#__double", + "MUSIC_LIGHT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Left only/Right only center mix level. Only used for 3/2 coding mode.", - "smithy.api#jsonName": "loRoCenterMixLevel" + "smithy.api#enumValue": "MUSIC_LIGHT" } }, - "LoRoSurroundMixLevel": { - "target": "com.amazonaws.medialive#__double", + "MUSIC_STANDARD": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Left only/Right only surround mix level. Only used for 3/2 coding mode.", - "smithy.api#jsonName": "loRoSurroundMixLevel" + "smithy.api#enumValue": "MUSIC_STANDARD" } }, - "LtRtCenterMixLevel": { - "target": "com.amazonaws.medialive#__double", + "NONE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Left total/Right total center mix level. Only used for 3/2 coding mode.", - "smithy.api#jsonName": "ltRtCenterMixLevel" + "smithy.api#enumValue": "NONE" } }, - "LtRtSurroundMixLevel": { - "target": "com.amazonaws.medialive#__double", + "SPEECH": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Left total/Right total surround mix level. Only used for 3/2 coding mode.", - "smithy.api#jsonName": "ltRtSurroundMixLevel" + "smithy.api#enumValue": "SPEECH" } - }, - "MetadataControl": { - "target": "com.amazonaws.medialive#Eac3MetadataControl", + } + }, + "traits": { + "smithy.api#documentation": "Eac3 Atmos Drc Line" + } + }, + "com.amazonaws.medialive#Eac3AtmosDrcRf": { + "type": "enum", + "members": { + "FILM_LIGHT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "metadataControl" + "smithy.api#enumValue": "FILM_LIGHT" } }, - "PassthroughControl": { - "target": "com.amazonaws.medialive#Eac3PassthroughControl", + "FILM_STANDARD": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "passthroughControl" + "smithy.api#enumValue": "FILM_STANDARD" } }, - "PhaseControl": { - "target": "com.amazonaws.medialive#Eac3PhaseControl", + "MUSIC_LIGHT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "When set to shift90Degrees, applies a 90-degree phase shift to the surround channels. Only used for 3/2 coding mode.", - "smithy.api#jsonName": "phaseControl" + "smithy.api#enumValue": "MUSIC_LIGHT" } }, - "StereoDownmix": { - "target": "com.amazonaws.medialive#Eac3StereoDownmix", + "MUSIC_STANDARD": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Stereo downmix preference. Only used for 3/2 coding mode.", - "smithy.api#jsonName": "stereoDownmix" + "smithy.api#enumValue": "MUSIC_STANDARD" } }, - "SurroundExMode": { - "target": "com.amazonaws.medialive#Eac3SurroundExMode", + "NONE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "When encoding 3/2 audio, sets whether an extra center back surround channel is matrix encoded into the left and right surround channels.", - "smithy.api#jsonName": "surroundExMode" + "smithy.api#enumValue": "NONE" } }, - "SurroundMode": { - "target": "com.amazonaws.medialive#Eac3SurroundMode", + "SPEECH": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "When encoding 2/0 audio, sets whether Dolby Surround is matrix encoded into the two channels.", - "smithy.api#jsonName": "surroundMode" + "smithy.api#enumValue": "SPEECH" } } }, "traits": { - "smithy.api#documentation": "Eac3 Settings" + "smithy.api#documentation": "Eac3 Atmos Drc Rf" } }, - "com.amazonaws.medialive#Eac3StereoDownmix": { - "type": "enum", + "com.amazonaws.medialive#Eac3AtmosSettings": { + "type": "structure", "members": { - "DPL2": { - "target": "smithy.api#Unit", + "Bitrate": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#enumValue": "DPL2" + "smithy.api#documentation": "Average bitrate in bits/second. Valid bitrates depend on the coding mode.\n// * @affectsRightSizing true", + "smithy.api#jsonName": "bitrate" } }, - "LO_RO": { - "target": "smithy.api#Unit", + "CodingMode": { + "target": "com.amazonaws.medialive#Eac3AtmosCodingMode", "traits": { - "smithy.api#enumValue": "LO_RO" + "smithy.api#documentation": "Dolby Digital Plus with Dolby Atmos coding mode. Determines number of channels.", + "smithy.api#jsonName": "codingMode" } }, - "LT_RT": { - "target": "smithy.api#Unit", + "Dialnorm": { + "target": "com.amazonaws.medialive#__integerMin1Max31", "traits": { - "smithy.api#enumValue": "LT_RT" + "smithy.api#documentation": "Sets the dialnorm for the output. Default 23.", + "smithy.api#jsonName": "dialnorm" } }, - "NOT_INDICATED": { - "target": "smithy.api#Unit", + "DrcLine": { + "target": "com.amazonaws.medialive#Eac3AtmosDrcLine", "traits": { - "smithy.api#enumValue": "NOT_INDICATED" + "smithy.api#documentation": "Sets the Dolby dynamic range compression profile.", + "smithy.api#jsonName": "drcLine" + } + }, + "DrcRf": { + "target": "com.amazonaws.medialive#Eac3AtmosDrcRf", + "traits": { + "smithy.api#documentation": "Sets the profile for heavy Dolby dynamic range compression, ensures that the instantaneous signal peaks do not exceed specified levels.", + "smithy.api#jsonName": "drcRf" + } + }, + "HeightTrim": { + "target": "com.amazonaws.medialive#__double", + "traits": { + "smithy.api#documentation": "Height dimensional trim. Sets the maximum amount to attenuate the height channels when the downstream player isn??t configured to handle Dolby Digital Plus with Dolby Atmos and must remix the channels.", + "smithy.api#jsonName": "heightTrim" + } + }, + "SurroundTrim": { + "target": "com.amazonaws.medialive#__double", + "traits": { + "smithy.api#documentation": "Surround dimensional trim. Sets the maximum amount to attenuate the surround channels when the downstream player isn't configured to handle Dolby Digital Plus with Dolby Atmos and must remix the channels.", + "smithy.api#jsonName": "surroundTrim" } } }, "traits": { - "smithy.api#documentation": "Eac3 Stereo Downmix" + "smithy.api#documentation": "Eac3 Atmos Settings" } }, - "com.amazonaws.medialive#Eac3SurroundExMode": { + "com.amazonaws.medialive#Eac3AttenuationControl": { "type": "enum", "members": { - "DISABLED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DISABLED" - } - }, - "ENABLED": { + "ATTENUATE_3_DB": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "ATTENUATE_3_DB" } }, - "NOT_INDICATED": { + "NONE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NOT_INDICATED" + "smithy.api#enumValue": "NONE" } } }, "traits": { - "smithy.api#documentation": "Eac3 Surround Ex Mode" + "smithy.api#documentation": "Eac3 Attenuation Control" } }, - "com.amazonaws.medialive#Eac3SurroundMode": { + "com.amazonaws.medialive#Eac3BitstreamMode": { "type": "enum", "members": { - "DISABLED": { + "COMMENTARY": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "COMMENTARY" } }, - "ENABLED": { + "COMPLETE_MAIN": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "COMPLETE_MAIN" } }, - "NOT_INDICATED": { + "EMERGENCY": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NOT_INDICATED" - } - } - }, - "traits": { - "smithy.api#documentation": "Eac3 Surround Mode" - } - }, - "com.amazonaws.medialive#EbuTtDDestinationSettings": { - "type": "structure", - "members": { - "CopyrightHolder": { - "target": "com.amazonaws.medialive#__stringMax1000", - "traits": { - "smithy.api#documentation": "Complete this field if you want to include the name of the copyright holder in the copyright tag in the captions metadata.", - "smithy.api#jsonName": "copyrightHolder" - } - }, - "FillLineGap": { - "target": "com.amazonaws.medialive#EbuTtDFillLineGapControl", - "traits": { - "smithy.api#documentation": "Specifies how to handle the gap between the lines (in multi-line captions).\n\n- enabled: Fill with the captions background color (as specified in the input captions).\n- disabled: Leave the gap unfilled.", - "smithy.api#jsonName": "fillLineGap" + "smithy.api#enumValue": "EMERGENCY" } }, - "FontFamily": { - "target": "com.amazonaws.medialive#__string", + "HEARING_IMPAIRED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Specifies the font family to include in the font data attached to the EBU-TT captions. Valid only if styleControl is set to include. If you leave this field empty, the font family is set to \"monospaced\". (If styleControl is set to exclude, the font family is always set to \"monospaced\".)\n\nYou specify only the font family. All other style information (color, bold, position and so on) is copied from the input captions. The size is always set to 100% to allow the downstream player to choose the size.\n\n- Enter a list of font families, as a comma-separated list of font names, in order of preference. The name can be a font family (such as “Arial”), or a generic font family (such as “serif”), or “default” (to let the downstream player choose the font).\n- Leave blank to set the family to “monospace”.", - "smithy.api#jsonName": "fontFamily" + "smithy.api#enumValue": "HEARING_IMPAIRED" } }, - "StyleControl": { - "target": "com.amazonaws.medialive#EbuTtDDestinationStyleControl", + "VISUALLY_IMPAIRED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Specifies the style information (font color, font position, and so on) to include in the font data that is attached to the EBU-TT captions.\n\n- include: Take the style information (font color, font position, and so on) from the source captions and include that information in the font data attached to the EBU-TT captions. This option is valid only if the source captions are Embedded or Teletext.\n- exclude: In the font data attached to the EBU-TT captions, set the font family to \"monospaced\". Do not include any other style information.", - "smithy.api#jsonName": "styleControl" + "smithy.api#enumValue": "VISUALLY_IMPAIRED" } } }, "traits": { - "smithy.api#documentation": "Ebu Tt DDestination Settings" + "smithy.api#documentation": "Eac3 Bitstream Mode" } }, - "com.amazonaws.medialive#EbuTtDDestinationStyleControl": { + "com.amazonaws.medialive#Eac3CodingMode": { "type": "enum", "members": { - "EXCLUDE": { + "CODING_MODE_1_0": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EXCLUDE" + "smithy.api#enumValue": "CODING_MODE_1_0" } }, - "INCLUDE": { + "CODING_MODE_2_0": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "INCLUDE" + "smithy.api#enumValue": "CODING_MODE_2_0" + } + }, + "CODING_MODE_3_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CODING_MODE_3_2" } } }, "traits": { - "smithy.api#documentation": "Ebu Tt DDestination Style Control" + "smithy.api#documentation": "Eac3 Coding Mode" } }, - "com.amazonaws.medialive#EbuTtDFillLineGapControl": { + "com.amazonaws.medialive#Eac3DcFilter": { "type": "enum", "members": { "DISABLED": { @@ -8819,1131 +9865,1123 @@ } }, "traits": { - "smithy.api#documentation": "Ebu Tt DFill Line Gap Control" + "smithy.api#documentation": "Eac3 Dc Filter" } }, - "com.amazonaws.medialive#EmbeddedConvert608To708": { + "com.amazonaws.medialive#Eac3DrcLine": { "type": "enum", "members": { - "DISABLED": { + "FILM_LIGHT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "FILM_LIGHT" } }, - "UPCONVERT": { + "FILM_STANDARD": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "UPCONVERT" + "smithy.api#enumValue": "FILM_STANDARD" + } + }, + "MUSIC_LIGHT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MUSIC_LIGHT" + } + }, + "MUSIC_STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MUSIC_STANDARD" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + }, + "SPEECH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SPEECH" } } }, "traits": { - "smithy.api#documentation": "Embedded Convert608 To708" - } - }, - "com.amazonaws.medialive#EmbeddedDestinationSettings": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Embedded Destination Settings" - } - }, - "com.amazonaws.medialive#EmbeddedPlusScte20DestinationSettings": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Embedded Plus Scte20 Destination Settings" + "smithy.api#documentation": "Eac3 Drc Line" } }, - "com.amazonaws.medialive#EmbeddedScte20Detection": { + "com.amazonaws.medialive#Eac3DrcRf": { "type": "enum", "members": { - "AUTO": { + "FILM_LIGHT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "AUTO" + "smithy.api#enumValue": "FILM_LIGHT" } }, - "OFF": { + "FILM_STANDARD": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "OFF" + "smithy.api#enumValue": "FILM_STANDARD" } - } - }, - "traits": { - "smithy.api#documentation": "Embedded Scte20 Detection" - } - }, - "com.amazonaws.medialive#EmbeddedSourceSettings": { - "type": "structure", - "members": { - "Convert608To708": { - "target": "com.amazonaws.medialive#EmbeddedConvert608To708", + }, + "MUSIC_LIGHT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "convert608To708" + "smithy.api#enumValue": "MUSIC_LIGHT" } }, - "Scte20Detection": { - "target": "com.amazonaws.medialive#EmbeddedScte20Detection", + "MUSIC_STANDARD": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Set to \"auto\" to handle streams with intermittent and/or non-aligned SCTE-20 and Embedded captions.", - "smithy.api#jsonName": "scte20Detection" + "smithy.api#enumValue": "MUSIC_STANDARD" } }, - "Source608ChannelNumber": { - "target": "com.amazonaws.medialive#__integerMin1Max4", + "NONE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough.", - "smithy.api#jsonName": "source608ChannelNumber" + "smithy.api#enumValue": "NONE" } }, - "Source608TrackNumber": { - "target": "com.amazonaws.medialive#__integerMin1Max5", + "SPEECH": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "This field is unused and deprecated.", - "smithy.api#jsonName": "source608TrackNumber" + "smithy.api#enumValue": "SPEECH" } } }, "traits": { - "smithy.api#documentation": "Embedded Source Settings" + "smithy.api#documentation": "Eac3 Drc Rf" } }, - "com.amazonaws.medialive#EncoderSettings": { - "type": "structure", + "com.amazonaws.medialive#Eac3LfeControl": { + "type": "enum", "members": { - "AudioDescriptions": { - "target": "com.amazonaws.medialive#__listOfAudioDescription", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#jsonName": "audioDescriptions", - "smithy.api#required": {} - } - }, - "AvailBlanking": { - "target": "com.amazonaws.medialive#AvailBlanking", + "LFE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Settings for ad avail blanking.", - "smithy.api#jsonName": "availBlanking" + "smithy.api#enumValue": "LFE" } }, - "AvailConfiguration": { - "target": "com.amazonaws.medialive#AvailConfiguration", + "NO_LFE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Event-wide configuration settings for ad avail insertion.", - "smithy.api#jsonName": "availConfiguration" + "smithy.api#enumValue": "NO_LFE" } - }, - "BlackoutSlate": { - "target": "com.amazonaws.medialive#BlackoutSlate", + } + }, + "traits": { + "smithy.api#documentation": "Eac3 Lfe Control" + } + }, + "com.amazonaws.medialive#Eac3LfeFilter": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Settings for blackout slate.", - "smithy.api#jsonName": "blackoutSlate" + "smithy.api#enumValue": "DISABLED" } }, - "CaptionDescriptions": { - "target": "com.amazonaws.medialive#__listOfCaptionDescription", + "ENABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Settings for caption decriptions", - "smithy.api#jsonName": "captionDescriptions" + "smithy.api#enumValue": "ENABLED" } - }, - "FeatureActivations": { - "target": "com.amazonaws.medialive#FeatureActivations", + } + }, + "traits": { + "smithy.api#documentation": "Eac3 Lfe Filter" + } + }, + "com.amazonaws.medialive#Eac3MetadataControl": { + "type": "enum", + "members": { + "FOLLOW_INPUT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Feature Activations", - "smithy.api#jsonName": "featureActivations" + "smithy.api#enumValue": "FOLLOW_INPUT" } }, - "GlobalConfiguration": { - "target": "com.amazonaws.medialive#GlobalConfiguration", + "USE_CONFIGURED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Configuration settings that apply to the event as a whole.", - "smithy.api#jsonName": "globalConfiguration" + "smithy.api#enumValue": "USE_CONFIGURED" } - }, - "MotionGraphicsConfiguration": { - "target": "com.amazonaws.medialive#MotionGraphicsConfiguration", + } + }, + "traits": { + "smithy.api#documentation": "Eac3 Metadata Control" + } + }, + "com.amazonaws.medialive#Eac3PassthroughControl": { + "type": "enum", + "members": { + "NO_PASSTHROUGH": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Settings for motion graphics.", - "smithy.api#jsonName": "motionGraphicsConfiguration" + "smithy.api#enumValue": "NO_PASSTHROUGH" } }, - "NielsenConfiguration": { - "target": "com.amazonaws.medialive#NielsenConfiguration", + "WHEN_POSSIBLE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Nielsen configuration settings.", - "smithy.api#jsonName": "nielsenConfiguration" + "smithy.api#enumValue": "WHEN_POSSIBLE" } - }, - "OutputGroups": { - "target": "com.amazonaws.medialive#__listOfOutputGroup", + } + }, + "traits": { + "smithy.api#documentation": "Eac3 Passthrough Control" + } + }, + "com.amazonaws.medialive#Eac3PhaseControl": { + "type": "enum", + "members": { + "NO_SHIFT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#jsonName": "outputGroups", - "smithy.api#required": {} + "smithy.api#enumValue": "NO_SHIFT" } }, - "TimecodeConfig": { - "target": "com.amazonaws.medialive#TimecodeConfig", + "SHIFT_90_DEGREES": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Contains settings used to acquire and adjust timecode information from inputs.", - "smithy.api#jsonName": "timecodeConfig", - "smithy.api#required": {} + "smithy.api#enumValue": "SHIFT_90_DEGREES" + } + } + }, + "traits": { + "smithy.api#documentation": "Eac3 Phase Control" + } + }, + "com.amazonaws.medialive#Eac3Settings": { + "type": "structure", + "members": { + "AttenuationControl": { + "target": "com.amazonaws.medialive#Eac3AttenuationControl", + "traits": { + "smithy.api#documentation": "When set to attenuate3Db, applies a 3 dB attenuation to the surround channels. Only used for 3/2 coding mode.", + "smithy.api#jsonName": "attenuationControl" } }, - "VideoDescriptions": { - "target": "com.amazonaws.medialive#__listOfVideoDescription", + "Bitrate": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#jsonName": "videoDescriptions", - "smithy.api#required": {} + "smithy.api#documentation": "Average bitrate in bits/second. Valid bitrates depend on the coding mode.", + "smithy.api#jsonName": "bitrate" } }, - "ThumbnailConfiguration": { - "target": "com.amazonaws.medialive#ThumbnailConfiguration", + "BitstreamMode": { + "target": "com.amazonaws.medialive#Eac3BitstreamMode", "traits": { - "smithy.api#documentation": "Thumbnail configuration settings.", - "smithy.api#jsonName": "thumbnailConfiguration" + "smithy.api#documentation": "Specifies the bitstream mode (bsmod) for the emitted E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.", + "smithy.api#jsonName": "bitstreamMode" } }, - "ColorCorrectionSettings": { - "target": "com.amazonaws.medialive#ColorCorrectionSettings", + "CodingMode": { + "target": "com.amazonaws.medialive#Eac3CodingMode", "traits": { - "smithy.api#documentation": "Color Correction Settings", - "smithy.api#jsonName": "colorCorrectionSettings" + "smithy.api#documentation": "Dolby Digital Plus coding mode. Determines number of channels.", + "smithy.api#jsonName": "codingMode" } - } - }, - "traits": { - "smithy.api#documentation": "Encoder Settings" - } - }, - "com.amazonaws.medialive#EpochLockingSettings": { - "type": "structure", - "members": { - "CustomEpoch": { - "target": "com.amazonaws.medialive#__string", + }, + "DcFilter": { + "target": "com.amazonaws.medialive#Eac3DcFilter", "traits": { - "smithy.api#documentation": "Optional. Enter a value here to use a custom epoch, instead of the standard epoch (which started at 1970-01-01T00:00:00 UTC). Specify the start time of the custom epoch, in YYYY-MM-DDTHH:MM:SS in UTC. The time must be 2000-01-01T00:00:00 or later. Always set the MM:SS portion to 00:00.", - "smithy.api#jsonName": "customEpoch" + "smithy.api#documentation": "When set to enabled, activates a DC highpass filter for all input channels.", + "smithy.api#jsonName": "dcFilter" } }, - "JamSyncTime": { - "target": "com.amazonaws.medialive#__string", + "Dialnorm": { + "target": "com.amazonaws.medialive#__integerMin1Max31", "traits": { - "smithy.api#documentation": "Optional. Enter a time for the jam sync. The default is midnight UTC. When epoch locking is enabled, MediaLive performs a daily jam sync on every output encode to ensure timecodes don’t diverge from the wall clock. The jam sync applies only to encodes with frame rate of 29.97 or 59.94 FPS. To override, enter a time in HH:MM:SS in UTC. Always set the MM:SS portion to 00:00.", - "smithy.api#jsonName": "jamSyncTime" + "smithy.api#documentation": "Sets the dialnorm for the output. If blank and input audio is Dolby Digital Plus, dialnorm will be passed through.", + "smithy.api#jsonName": "dialnorm" } - } - }, - "traits": { - "smithy.api#documentation": "Epoch Locking Settings" - } - }, - "com.amazonaws.medialive#Esam": { - "type": "structure", - "members": { - "AcquisitionPointId": { - "target": "com.amazonaws.medialive#__stringMax256", + }, + "DrcLine": { + "target": "com.amazonaws.medialive#Eac3DrcLine", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Sent as acquisitionPointIdentity to identify the MediaLive channel to the POIS.", - "smithy.api#jsonName": "acquisitionPointId", - "smithy.api#required": {} + "smithy.api#documentation": "Sets the Dolby dynamic range compression profile.", + "smithy.api#jsonName": "drcLine" } }, - "AdAvailOffset": { - "target": "com.amazonaws.medialive#__integerMinNegative1000Max1000", + "DrcRf": { + "target": "com.amazonaws.medialive#Eac3DrcRf", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "adAvailOffset" + "smithy.api#documentation": "Sets the profile for heavy Dolby dynamic range compression, ensures that the instantaneous signal peaks do not exceed specified levels.", + "smithy.api#jsonName": "drcRf" } }, - "PasswordParam": { - "target": "com.amazonaws.medialive#__string", + "LfeControl": { + "target": "com.amazonaws.medialive#Eac3LfeControl", "traits": { - "smithy.api#documentation": "Documentation update needed", - "smithy.api#jsonName": "passwordParam" + "smithy.api#documentation": "When encoding 3/2 audio, setting to lfe enables the LFE channel", + "smithy.api#jsonName": "lfeControl" } }, - "PoisEndpoint": { - "target": "com.amazonaws.medialive#__stringMax2048", + "LfeFilter": { + "target": "com.amazonaws.medialive#Eac3LfeFilter", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The URL of the signal conditioner endpoint on the Placement Opportunity Information System (POIS). MediaLive sends SignalProcessingEvents here when SCTE-35 messages are read.", - "smithy.api#jsonName": "poisEndpoint", - "smithy.api#required": {} + "smithy.api#documentation": "When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding. Only valid with codingMode32 coding mode.", + "smithy.api#jsonName": "lfeFilter" } }, - "Username": { - "target": "com.amazonaws.medialive#__string", + "LoRoCenterMixLevel": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#documentation": "Documentation update needed", - "smithy.api#jsonName": "username" + "smithy.api#documentation": "Left only/Right only center mix level. Only used for 3/2 coding mode.", + "smithy.api#jsonName": "loRoCenterMixLevel" } }, - "ZoneIdentity": { - "target": "com.amazonaws.medialive#__stringMax256", + "LoRoSurroundMixLevel": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#documentation": "Optional data sent as zoneIdentity to identify the MediaLive channel to the POIS.", - "smithy.api#jsonName": "zoneIdentity" + "smithy.api#documentation": "Left only/Right only surround mix level. Only used for 3/2 coding mode.", + "smithy.api#jsonName": "loRoSurroundMixLevel" } - } - }, - "traits": { - "smithy.api#documentation": "Esam" - } - }, - "com.amazonaws.medialive#FailoverCondition": { - "type": "structure", - "members": { - "FailoverConditionSettings": { - "target": "com.amazonaws.medialive#FailoverConditionSettings", + }, + "LtRtCenterMixLevel": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#documentation": "Failover condition type-specific settings.", - "smithy.api#jsonName": "failoverConditionSettings" + "smithy.api#documentation": "Left total/Right total center mix level. Only used for 3/2 coding mode.", + "smithy.api#jsonName": "ltRtCenterMixLevel" } - } - }, - "traits": { - "smithy.api#documentation": "Failover Condition settings. There can be multiple failover conditions inside AutomaticInputFailoverSettings." - } - }, - "com.amazonaws.medialive#FailoverConditionSettings": { - "type": "structure", - "members": { - "AudioSilenceSettings": { - "target": "com.amazonaws.medialive#AudioSilenceFailoverSettings", + }, + "LtRtSurroundMixLevel": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#documentation": "MediaLive will perform a failover if the specified audio selector is silent for the specified period.", - "smithy.api#jsonName": "audioSilenceSettings" + "smithy.api#documentation": "Left total/Right total surround mix level. Only used for 3/2 coding mode.", + "smithy.api#jsonName": "ltRtSurroundMixLevel" } }, - "InputLossSettings": { - "target": "com.amazonaws.medialive#InputLossFailoverSettings", + "MetadataControl": { + "target": "com.amazonaws.medialive#Eac3MetadataControl", "traits": { - "smithy.api#documentation": "MediaLive will perform a failover if content is not detected in this input for the specified period.", - "smithy.api#jsonName": "inputLossSettings" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "metadataControl" } }, - "VideoBlackSettings": { - "target": "com.amazonaws.medialive#VideoBlackFailoverSettings", + "PassthroughControl": { + "target": "com.amazonaws.medialive#Eac3PassthroughControl", "traits": { - "smithy.api#documentation": "MediaLive will perform a failover if content is considered black for the specified period.", - "smithy.api#jsonName": "videoBlackSettings" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "passthroughControl" } - } - }, - "traits": { - "smithy.api#documentation": "Settings for one failover condition." - } - }, - "com.amazonaws.medialive#FeatureActivations": { - "type": "structure", - "members": { - "InputPrepareScheduleActions": { - "target": "com.amazonaws.medialive#FeatureActivationsInputPrepareScheduleActions", + }, + "PhaseControl": { + "target": "com.amazonaws.medialive#Eac3PhaseControl", "traits": { - "smithy.api#documentation": "Enables the Input Prepare feature. You can create Input Prepare actions in the schedule only if this feature is enabled.\nIf you disable the feature on an existing schedule, make sure that you first delete all input prepare actions from the schedule.", - "smithy.api#jsonName": "inputPrepareScheduleActions" + "smithy.api#documentation": "When set to shift90Degrees, applies a 90-degree phase shift to the surround channels. Only used for 3/2 coding mode.", + "smithy.api#jsonName": "phaseControl" } }, - "OutputStaticImageOverlayScheduleActions": { - "target": "com.amazonaws.medialive#FeatureActivationsOutputStaticImageOverlayScheduleActions", + "StereoDownmix": { + "target": "com.amazonaws.medialive#Eac3StereoDownmix", "traits": { - "smithy.api#documentation": "Enables the output static image overlay feature. Enabling this feature allows you to send channel schedule updates\nto display/clear/modify image overlays on an output-by-output bases.", - "smithy.api#jsonName": "outputStaticImageOverlayScheduleActions" + "smithy.api#documentation": "Stereo downmix preference. Only used for 3/2 coding mode.", + "smithy.api#jsonName": "stereoDownmix" + } + }, + "SurroundExMode": { + "target": "com.amazonaws.medialive#Eac3SurroundExMode", + "traits": { + "smithy.api#documentation": "When encoding 3/2 audio, sets whether an extra center back surround channel is matrix encoded into the left and right surround channels.", + "smithy.api#jsonName": "surroundExMode" + } + }, + "SurroundMode": { + "target": "com.amazonaws.medialive#Eac3SurroundMode", + "traits": { + "smithy.api#documentation": "When encoding 2/0 audio, sets whether Dolby Surround is matrix encoded into the two channels.", + "smithy.api#jsonName": "surroundMode" } } }, "traits": { - "smithy.api#documentation": "Feature Activations" + "smithy.api#documentation": "Eac3 Settings" } }, - "com.amazonaws.medialive#FeatureActivationsInputPrepareScheduleActions": { + "com.amazonaws.medialive#Eac3StereoDownmix": { "type": "enum", "members": { - "DISABLED": { + "DPL2": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "DPL2" } }, - "ENABLED": { + "LO_RO": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "LO_RO" } - } - }, - "traits": { - "smithy.api#documentation": "Feature Activations Input Prepare Schedule Actions" - } - }, - "com.amazonaws.medialive#FeatureActivationsOutputStaticImageOverlayScheduleActions": { - "type": "enum", - "members": { - "DISABLED": { + }, + "LT_RT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "LT_RT" } }, - "ENABLED": { + "NOT_INDICATED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "NOT_INDICATED" } } }, "traits": { - "smithy.api#documentation": "Feature Activations Output Static Image Overlay Schedule Actions" + "smithy.api#documentation": "Eac3 Stereo Downmix" } }, - "com.amazonaws.medialive#FecOutputIncludeFec": { + "com.amazonaws.medialive#Eac3SurroundExMode": { "type": "enum", "members": { - "COLUMN": { + "DISABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "COLUMN" + "smithy.api#enumValue": "DISABLED" } }, - "COLUMN_AND_ROW": { + "ENABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "COLUMN_AND_ROW" - } - } - }, - "traits": { - "smithy.api#documentation": "Fec Output Include Fec" - } - }, - "com.amazonaws.medialive#FecOutputSettings": { - "type": "structure", - "members": { - "ColumnDepth": { - "target": "com.amazonaws.medialive#__integerMin4Max20", - "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "columnDepth" - } - }, - "IncludeFec": { - "target": "com.amazonaws.medialive#FecOutputIncludeFec", - "traits": { - "smithy.api#documentation": "Enables column only or column and row based FEC", - "smithy.api#jsonName": "includeFec" + "smithy.api#enumValue": "ENABLED" } }, - "RowLength": { - "target": "com.amazonaws.medialive#__integerMin1Max20", + "NOT_INDICATED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "rowLength" + "smithy.api#enumValue": "NOT_INDICATED" } } }, "traits": { - "smithy.api#documentation": "Fec Output Settings" + "smithy.api#documentation": "Eac3 Surround Ex Mode" } }, - "com.amazonaws.medialive#FixedAfd": { + "com.amazonaws.medialive#Eac3SurroundMode": { "type": "enum", "members": { - "AFD_0000": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AFD_0000" - } - }, - "AFD_0010": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AFD_0010" - } - }, - "AFD_0011": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AFD_0011" - } - }, - "AFD_0100": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AFD_0100" - } - }, - "AFD_1000": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AFD_1000" - } - }, - "AFD_1001": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AFD_1001" - } - }, - "AFD_1010": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AFD_1010" - } - }, - "AFD_1011": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AFD_1011" - } - }, - "AFD_1101": { + "DISABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "AFD_1101" + "smithy.api#enumValue": "DISABLED" } }, - "AFD_1110": { + "ENABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "AFD_1110" + "smithy.api#enumValue": "ENABLED" } }, - "AFD_1111": { + "NOT_INDICATED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "AFD_1111" + "smithy.api#enumValue": "NOT_INDICATED" } } }, "traits": { - "smithy.api#documentation": "Fixed Afd" + "smithy.api#documentation": "Eac3 Surround Mode" } }, - "com.amazonaws.medialive#FixedModeScheduleActionStartSettings": { + "com.amazonaws.medialive#EbuTtDDestinationSettings": { "type": "structure", "members": { - "Time": { - "target": "com.amazonaws.medialive#__string", + "CopyrightHolder": { + "target": "com.amazonaws.medialive#__stringMax1000", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Start time for the action to start in the channel. (Not the time for the action to be added to the schedule: actions are always added to the schedule immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example, mm might be 01) except for the two constants \"T\" for time and \"Z\" for \"UTC format\".", - "smithy.api#jsonName": "time", - "smithy.api#required": {} + "smithy.api#documentation": "Complete this field if you want to include the name of the copyright holder in the copyright tag in the captions metadata.", + "smithy.api#jsonName": "copyrightHolder" } - } - }, - "traits": { - "smithy.api#documentation": "Start time for the action." - } - }, - "com.amazonaws.medialive#Fmp4HlsSettings": { - "type": "structure", - "members": { - "AudioRenditionSets": { - "target": "com.amazonaws.medialive#__string", + }, + "FillLineGap": { + "target": "com.amazonaws.medialive#EbuTtDFillLineGapControl", "traits": { - "smithy.api#documentation": "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 ','.", - "smithy.api#jsonName": "audioRenditionSets" + "smithy.api#documentation": "Specifies how to handle the gap between the lines (in multi-line captions).\n\n- enabled: Fill with the captions background color (as specified in the input captions).\n- disabled: Leave the gap unfilled.", + "smithy.api#jsonName": "fillLineGap" } }, - "NielsenId3Behavior": { - "target": "com.amazonaws.medialive#Fmp4NielsenId3Behavior", + "FontFamily": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output.", - "smithy.api#jsonName": "nielsenId3Behavior" + "smithy.api#documentation": "Specifies the font family to include in the font data attached to the EBU-TT captions. Valid only if styleControl is set to include. If you leave this field empty, the font family is set to \"monospaced\". (If styleControl is set to exclude, the font family is always set to \"monospaced\".)\n\nYou specify only the font family. All other style information (color, bold, position and so on) is copied from the input captions. The size is always set to 100% to allow the downstream player to choose the size.\n\n- Enter a list of font families, as a comma-separated list of font names, in order of preference. The name can be a font family (such as “Arial”), or a generic font family (such as “serif”), or “default” (to let the downstream player choose the font).\n- Leave blank to set the family to “monospace”.", + "smithy.api#jsonName": "fontFamily" } }, - "TimedMetadataBehavior": { - "target": "com.amazonaws.medialive#Fmp4TimedMetadataBehavior", + "StyleControl": { + "target": "com.amazonaws.medialive#EbuTtDDestinationStyleControl", "traits": { - "smithy.api#documentation": "When set to passthrough, timed metadata is passed through from input to output.", - "smithy.api#jsonName": "timedMetadataBehavior" + "smithy.api#documentation": "Specifies the style information (font color, font position, and so on) to include in the font data that is attached to the EBU-TT captions.\n\n- include: Take the style information (font color, font position, and so on) from the source captions and include that information in the font data attached to the EBU-TT captions. This option is valid only if the source captions are Embedded or Teletext.\n- exclude: In the font data attached to the EBU-TT captions, set the font family to \"monospaced\". Do not include any other style information.", + "smithy.api#jsonName": "styleControl" } } }, "traits": { - "smithy.api#documentation": "Fmp4 Hls Settings" + "smithy.api#documentation": "Ebu Tt DDestination Settings" } }, - "com.amazonaws.medialive#Fmp4NielsenId3Behavior": { + "com.amazonaws.medialive#EbuTtDDestinationStyleControl": { "type": "enum", "members": { - "NO_PASSTHROUGH": { + "EXCLUDE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NO_PASSTHROUGH" + "smithy.api#enumValue": "EXCLUDE" } }, - "PASSTHROUGH": { + "INCLUDE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PASSTHROUGH" + "smithy.api#enumValue": "INCLUDE" } } }, "traits": { - "smithy.api#documentation": "Fmp4 Nielsen Id3 Behavior" + "smithy.api#documentation": "Ebu Tt DDestination Style Control" } }, - "com.amazonaws.medialive#Fmp4TimedMetadataBehavior": { + "com.amazonaws.medialive#EbuTtDFillLineGapControl": { "type": "enum", "members": { - "NO_PASSTHROUGH": { + "DISABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NO_PASSTHROUGH" + "smithy.api#enumValue": "DISABLED" } }, - "PASSTHROUGH": { + "ENABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PASSTHROUGH" + "smithy.api#enumValue": "ENABLED" } } }, "traits": { - "smithy.api#documentation": "Fmp4 Timed Metadata Behavior" + "smithy.api#documentation": "Ebu Tt DFill Line Gap Control" } }, - "com.amazonaws.medialive#FollowModeScheduleActionStartSettings": { - "type": "structure", + "com.amazonaws.medialive#EmbeddedConvert608To708": { + "type": "enum", "members": { - "FollowPoint": { - "target": "com.amazonaws.medialive#FollowPoint", + "DISABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Identifies whether this action starts relative to the start or relative to the end of the reference action.", - "smithy.api#jsonName": "followPoint", - "smithy.api#required": {} + "smithy.api#enumValue": "DISABLED" } }, - "ReferenceActionName": { - "target": "com.amazonaws.medialive#__string", + "UPCONVERT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The action name of another action that this one refers to.", - "smithy.api#jsonName": "referenceActionName", - "smithy.api#required": {} + "smithy.api#enumValue": "UPCONVERT" } } }, "traits": { - "smithy.api#documentation": "Settings to specify if an action follows another." + "smithy.api#documentation": "Embedded Convert608 To708" } }, - "com.amazonaws.medialive#FollowPoint": { + "com.amazonaws.medialive#EmbeddedDestinationSettings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Embedded Destination Settings" + } + }, + "com.amazonaws.medialive#EmbeddedPlusScte20DestinationSettings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Embedded Plus Scte20 Destination Settings" + } + }, + "com.amazonaws.medialive#EmbeddedScte20Detection": { "type": "enum", "members": { - "END": { + "AUTO": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "END" + "smithy.api#enumValue": "AUTO" } }, - "START": { + "OFF": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "START" + "smithy.api#enumValue": "OFF" } } }, "traits": { - "smithy.api#documentation": "Follow reference point." + "smithy.api#documentation": "Embedded Scte20 Detection" } }, - "com.amazonaws.medialive#ForbiddenException": { + "com.amazonaws.medialive#EmbeddedSourceSettings": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.medialive#__string", + "Convert608To708": { + "target": "com.amazonaws.medialive#EmbeddedConvert608To708", "traits": { - "smithy.api#jsonName": "message" - } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for ForbiddenException", - "smithy.api#error": "client", - "smithy.api#httpError": 403 - } - }, - "com.amazonaws.medialive#FrameCaptureCdnSettings": { - "type": "structure", - "members": { - "FrameCaptureS3Settings": { - "target": "com.amazonaws.medialive#FrameCaptureS3Settings", + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "convert608To708" + } + }, + "Scte20Detection": { + "target": "com.amazonaws.medialive#EmbeddedScte20Detection", "traits": { - "smithy.api#jsonName": "frameCaptureS3Settings" + "smithy.api#documentation": "Set to \"auto\" to handle streams with intermittent and/or non-aligned SCTE-20 and Embedded captions.", + "smithy.api#jsonName": "scte20Detection" } - } - }, - "traits": { - "smithy.api#documentation": "Frame Capture Cdn Settings" - } - }, - "com.amazonaws.medialive#FrameCaptureGroupSettings": { - "type": "structure", - "members": { - "Destination": { - "target": "com.amazonaws.medialive#OutputLocationRef", + }, + "Source608ChannelNumber": { + "target": "com.amazonaws.medialive#__integerMin1Max4", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The destination for the frame capture files. Either the URI for an Amazon S3 bucket and object, plus a file name prefix (for example, s3ssl://sportsDelivery/highlights/20180820/curling-) or the URI for a MediaStore container, plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling-). The final file names consist of the prefix from the destination field (for example, \"curling-\") + name modifier + the counter (5 digits, starting from 00001) + extension (which is always .jpg). For example, curling-low.00001.jpg", - "smithy.api#jsonName": "destination", - "smithy.api#required": {} + "smithy.api#documentation": "Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough.", + "smithy.api#jsonName": "source608ChannelNumber" } }, - "FrameCaptureCdnSettings": { - "target": "com.amazonaws.medialive#FrameCaptureCdnSettings", + "Source608TrackNumber": { + "target": "com.amazonaws.medialive#__integerMin1Max5", "traits": { - "smithy.api#documentation": "Parameters that control interactions with the CDN.", - "smithy.api#jsonName": "frameCaptureCdnSettings" + "smithy.api#documentation": "This field is unused and deprecated.", + "smithy.api#jsonName": "source608TrackNumber" } } }, "traits": { - "smithy.api#documentation": "Frame Capture Group Settings" + "smithy.api#documentation": "Embedded Source Settings" } }, - "com.amazonaws.medialive#FrameCaptureHlsSettings": { + "com.amazonaws.medialive#EncoderSettings": { "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Frame Capture Hls Settings" - } - }, - "com.amazonaws.medialive#FrameCaptureIntervalUnit": { - "type": "enum", "members": { - "MILLISECONDS": { - "target": "smithy.api#Unit", + "AudioDescriptions": { + "target": "com.amazonaws.medialive#__listOfAudioDescription", "traits": { - "smithy.api#enumValue": "MILLISECONDS" + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "audioDescriptions", + "smithy.api#required": {} } }, - "SECONDS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SECONDS" - } - } - }, - "traits": { - "smithy.api#documentation": "Frame Capture Interval Unit" - } - }, - "com.amazonaws.medialive#FrameCaptureOutputSettings": { - "type": "structure", - "members": { - "NameModifier": { - "target": "com.amazonaws.medialive#__string", + "AvailBlanking": { + "target": "com.amazonaws.medialive#AvailBlanking", "traits": { - "smithy.api#documentation": "Required if the output group contains more than one output. This modifier forms part of the output file name.", - "smithy.api#jsonName": "nameModifier" + "smithy.api#documentation": "Settings for ad avail blanking.", + "smithy.api#jsonName": "availBlanking" } - } - }, - "traits": { - "smithy.api#documentation": "Frame Capture Output Settings" - } - }, - "com.amazonaws.medialive#FrameCaptureS3Settings": { - "type": "structure", - "members": { - "CannedAcl": { - "target": "com.amazonaws.medialive#S3CannedAcl", + }, + "AvailConfiguration": { + "target": "com.amazonaws.medialive#AvailConfiguration", "traits": { - "smithy.api#documentation": "Specify the canned ACL to apply to each S3 request. Defaults to none.", - "smithy.api#jsonName": "cannedAcl" + "smithy.api#documentation": "Event-wide configuration settings for ad avail insertion.", + "smithy.api#jsonName": "availConfiguration" } - } - }, - "traits": { - "smithy.api#documentation": "Frame Capture S3 Settings" - } - }, - "com.amazonaws.medialive#FrameCaptureSettings": { - "type": "structure", - "members": { - "CaptureInterval": { - "target": "com.amazonaws.medialive#__integerMin1Max3600000", + }, + "BlackoutSlate": { + "target": "com.amazonaws.medialive#BlackoutSlate", "traits": { - "smithy.api#documentation": "The frequency at which to capture frames for inclusion in the output. May be specified in either seconds or milliseconds, as specified by captureIntervalUnits.", - "smithy.api#jsonName": "captureInterval" + "smithy.api#documentation": "Settings for blackout slate.", + "smithy.api#jsonName": "blackoutSlate" } }, - "CaptureIntervalUnits": { - "target": "com.amazonaws.medialive#FrameCaptureIntervalUnit", + "CaptionDescriptions": { + "target": "com.amazonaws.medialive#__listOfCaptionDescription", "traits": { - "smithy.api#documentation": "Unit for the frame capture interval.", - "smithy.api#jsonName": "captureIntervalUnits" + "smithy.api#documentation": "Settings for caption decriptions", + "smithy.api#jsonName": "captionDescriptions" } }, - "TimecodeBurninSettings": { - "target": "com.amazonaws.medialive#TimecodeBurninSettings", + "FeatureActivations": { + "target": "com.amazonaws.medialive#FeatureActivations", "traits": { - "smithy.api#documentation": "Timecode burn-in settings", - "smithy.api#jsonName": "timecodeBurninSettings" + "smithy.api#documentation": "Feature Activations", + "smithy.api#jsonName": "featureActivations" } - } - }, - "traits": { - "smithy.api#documentation": "Frame Capture Settings" - } - }, - "com.amazonaws.medialive#GatewayTimeoutException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.medialive#__string", + }, + "GlobalConfiguration": { + "target": "com.amazonaws.medialive#GlobalConfiguration", "traits": { - "smithy.api#jsonName": "message" + "smithy.api#documentation": "Configuration settings that apply to the event as a whole.", + "smithy.api#jsonName": "globalConfiguration" } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for GatewayTimeoutException", - "smithy.api#error": "server", - "smithy.api#httpError": 504 - } - }, - "com.amazonaws.medialive#GlobalConfiguration": { - "type": "structure", - "members": { - "InitialAudioGain": { - "target": "com.amazonaws.medialive#__integerMinNegative60Max60", + }, + "MotionGraphicsConfiguration": { + "target": "com.amazonaws.medialive#MotionGraphicsConfiguration", "traits": { - "smithy.api#documentation": "Value to set the initial audio gain for the Live Event.", - "smithy.api#jsonName": "initialAudioGain" + "smithy.api#documentation": "Settings for motion graphics.", + "smithy.api#jsonName": "motionGraphicsConfiguration" } }, - "InputEndAction": { - "target": "com.amazonaws.medialive#GlobalConfigurationInputEndAction", + "NielsenConfiguration": { + "target": "com.amazonaws.medialive#NielsenConfiguration", "traits": { - "smithy.api#documentation": "Indicates the action to take when the current input completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the beginning of the first input. When \"none\" is configured the encoder will transcode either black, a solid color, or a user specified slate images per the \"Input Loss Behavior\" configuration until the next input switch occurs (which is controlled through the Channel Schedule API).", - "smithy.api#jsonName": "inputEndAction" + "smithy.api#documentation": "Nielsen configuration settings.", + "smithy.api#jsonName": "nielsenConfiguration" } }, - "InputLossBehavior": { - "target": "com.amazonaws.medialive#InputLossBehavior", + "OutputGroups": { + "target": "com.amazonaws.medialive#__listOfOutputGroup", "traits": { - "smithy.api#documentation": "Settings for system actions when input is lost.", - "smithy.api#jsonName": "inputLossBehavior" + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "outputGroups", + "smithy.api#required": {} } }, - "OutputLockingMode": { - "target": "com.amazonaws.medialive#GlobalConfigurationOutputLockingMode", + "TimecodeConfig": { + "target": "com.amazonaws.medialive#TimecodeConfig", "traits": { - "smithy.api#documentation": "Indicates how MediaLive pipelines are synchronized.\n\nPIPELINE_LOCKING - MediaLive will attempt to synchronize the output of each pipeline to the other.\nEPOCH_LOCKING - MediaLive will attempt to synchronize the output of each pipeline to the Unix epoch.", - "smithy.api#jsonName": "outputLockingMode" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Contains settings used to acquire and adjust timecode information from inputs.", + "smithy.api#jsonName": "timecodeConfig", + "smithy.api#required": {} } }, - "OutputTimingSource": { - "target": "com.amazonaws.medialive#GlobalConfigurationOutputTimingSource", + "VideoDescriptions": { + "target": "com.amazonaws.medialive#__listOfVideoDescription", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "outputTimingSource" + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "videoDescriptions", + "smithy.api#required": {} } }, - "SupportLowFramerateInputs": { - "target": "com.amazonaws.medialive#GlobalConfigurationLowFramerateInputs", + "ThumbnailConfiguration": { + "target": "com.amazonaws.medialive#ThumbnailConfiguration", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "supportLowFramerateInputs" + "smithy.api#documentation": "Thumbnail configuration settings.", + "smithy.api#jsonName": "thumbnailConfiguration" } }, - "OutputLockingSettings": { - "target": "com.amazonaws.medialive#OutputLockingSettings", + "ColorCorrectionSettings": { + "target": "com.amazonaws.medialive#ColorCorrectionSettings", "traits": { - "smithy.api#documentation": "Advanced output locking settings", - "smithy.api#jsonName": "outputLockingSettings" + "smithy.api#documentation": "Color Correction Settings", + "smithy.api#jsonName": "colorCorrectionSettings" } } }, "traits": { - "smithy.api#documentation": "Global Configuration" + "smithy.api#documentation": "Encoder Settings" } }, - "com.amazonaws.medialive#GlobalConfigurationInputEndAction": { - "type": "enum", + "com.amazonaws.medialive#EpochLockingSettings": { + "type": "structure", "members": { - "NONE": { - "target": "smithy.api#Unit", + "CustomEpoch": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#documentation": "Optional. Enter a value here to use a custom epoch, instead of the standard epoch (which started at 1970-01-01T00:00:00 UTC). Specify the start time of the custom epoch, in YYYY-MM-DDTHH:MM:SS in UTC. The time must be 2000-01-01T00:00:00 or later. Always set the MM:SS portion to 00:00.", + "smithy.api#jsonName": "customEpoch" } }, - "SWITCH_AND_LOOP_INPUTS": { - "target": "smithy.api#Unit", + "JamSyncTime": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "SWITCH_AND_LOOP_INPUTS" + "smithy.api#documentation": "Optional. Enter a time for the jam sync. The default is midnight UTC. When epoch locking is enabled, MediaLive performs a daily jam sync on every output encode to ensure timecodes don’t diverge from the wall clock. The jam sync applies only to encodes with frame rate of 29.97 or 59.94 FPS. To override, enter a time in HH:MM:SS in UTC. Always set the MM:SS portion to 00:00.", + "smithy.api#jsonName": "jamSyncTime" } } }, "traits": { - "smithy.api#documentation": "Global Configuration Input End Action" + "smithy.api#documentation": "Epoch Locking Settings" } }, - "com.amazonaws.medialive#GlobalConfigurationLowFramerateInputs": { - "type": "enum", + "com.amazonaws.medialive#Esam": { + "type": "structure", "members": { - "DISABLED": { - "target": "smithy.api#Unit", + "AcquisitionPointId": { + "target": "com.amazonaws.medialive#__stringMax256", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Sent as acquisitionPointIdentity to identify the MediaLive channel to the POIS.", + "smithy.api#jsonName": "acquisitionPointId", + "smithy.api#required": {} } }, - "ENABLED": { - "target": "smithy.api#Unit", + "AdAvailOffset": { + "target": "com.amazonaws.medialive#__integerMinNegative1000Max1000", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "adAvailOffset" + } + }, + "PasswordParam": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Documentation update needed", + "smithy.api#jsonName": "passwordParam" + } + }, + "PoisEndpoint": { + "target": "com.amazonaws.medialive#__stringMax2048", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The URL of the signal conditioner endpoint on the Placement Opportunity Information System (POIS). MediaLive sends SignalProcessingEvents here when SCTE-35 messages are read.", + "smithy.api#jsonName": "poisEndpoint", + "smithy.api#required": {} + } + }, + "Username": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Documentation update needed", + "smithy.api#jsonName": "username" + } + }, + "ZoneIdentity": { + "target": "com.amazonaws.medialive#__stringMax256", + "traits": { + "smithy.api#documentation": "Optional data sent as zoneIdentity to identify the MediaLive channel to the POIS.", + "smithy.api#jsonName": "zoneIdentity" } } }, "traits": { - "smithy.api#documentation": "Global Configuration Low Framerate Inputs" + "smithy.api#documentation": "Esam" } }, - "com.amazonaws.medialive#GlobalConfigurationOutputLockingMode": { + "com.amazonaws.medialive#EventBridgeRuleTemplateEventType": { "type": "enum", "members": { - "EPOCH_LOCKING": { + "MEDIALIVE_MULTIPLEX_ALERT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EPOCH_LOCKING" + "smithy.api#enumValue": "MEDIALIVE_MULTIPLEX_ALERT" } }, - "PIPELINE_LOCKING": { + "MEDIALIVE_MULTIPLEX_STATE_CHANGE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PIPELINE_LOCKING" + "smithy.api#enumValue": "MEDIALIVE_MULTIPLEX_STATE_CHANGE" } - } - }, - "traits": { - "smithy.api#documentation": "Global Configuration Output Locking Mode" - } - }, - "com.amazonaws.medialive#GlobalConfigurationOutputTimingSource": { - "type": "enum", - "members": { - "INPUT_CLOCK": { + }, + "MEDIALIVE_CHANNEL_ALERT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "INPUT_CLOCK" + "smithy.api#enumValue": "MEDIALIVE_CHANNEL_ALERT" } }, - "SYSTEM_CLOCK": { + "MEDIALIVE_CHANNEL_INPUT_CHANGE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SYSTEM_CLOCK" + "smithy.api#enumValue": "MEDIALIVE_CHANNEL_INPUT_CHANGE" } - } - }, - "traits": { - "smithy.api#documentation": "Global Configuration Output Timing Source" - } - }, - "com.amazonaws.medialive#H264AdaptiveQuantization": { - "type": "enum", - "members": { - "AUTO": { + }, + "MEDIALIVE_CHANNEL_STATE_CHANGE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "AUTO" + "smithy.api#enumValue": "MEDIALIVE_CHANNEL_STATE_CHANGE" } }, - "HIGH": { + "MEDIAPACKAGE_INPUT_NOTIFICATION": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "HIGH" + "smithy.api#enumValue": "MEDIAPACKAGE_INPUT_NOTIFICATION" } }, - "HIGHER": { + "MEDIAPACKAGE_KEY_PROVIDER_NOTIFICATION": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "HIGHER" + "smithy.api#enumValue": "MEDIAPACKAGE_KEY_PROVIDER_NOTIFICATION" } }, - "LOW": { + "MEDIAPACKAGE_HARVEST_JOB_NOTIFICATION": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "LOW" + "smithy.api#enumValue": "MEDIAPACKAGE_HARVEST_JOB_NOTIFICATION" } }, - "MAX": { + "SIGNAL_MAP_ACTIVE_ALARM": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MAX" + "smithy.api#enumValue": "SIGNAL_MAP_ACTIVE_ALARM" } }, - "MEDIUM": { + "MEDIACONNECT_ALERT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MEDIUM" + "smithy.api#enumValue": "MEDIACONNECT_ALERT" } }, - "OFF": { + "MEDIACONNECT_SOURCE_HEALTH": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "OFF" + "smithy.api#enumValue": "MEDIACONNECT_SOURCE_HEALTH" } - } - }, - "traits": { - "smithy.api#documentation": "H264 Adaptive Quantization" - } - }, - "com.amazonaws.medialive#H264ColorMetadata": { - "type": "enum", - "members": { - "IGNORE": { + }, + "MEDIACONNECT_OUTPUT_HEALTH": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "IGNORE" + "smithy.api#enumValue": "MEDIACONNECT_OUTPUT_HEALTH" } }, - "INSERT": { + "MEDIACONNECT_FLOW_STATUS_CHANGE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "INSERT" + "smithy.api#enumValue": "MEDIACONNECT_FLOW_STATUS_CHANGE" } } }, "traits": { - "smithy.api#documentation": "H264 Color Metadata" + "smithy.api#documentation": "The type of event to match with the rule." } }, - "com.amazonaws.medialive#H264ColorSpaceSettings": { + "com.amazonaws.medialive#EventBridgeRuleTemplateGroupSummary": { "type": "structure", "members": { - "ColorSpacePassthroughSettings": { - "target": "com.amazonaws.medialive#ColorSpacePassthroughSettings", + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveEventbridgeRuleTemplateGroup", "traits": { - "smithy.api#jsonName": "colorSpacePassthroughSettings" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "An eventbridge rule template group's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn", + "smithy.api#required": {} } }, - "Rec601Settings": { - "target": "com.amazonaws.medialive#Rec601Settings", + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#jsonName": "rec601Settings" + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "createdAt", + "smithy.api#required": {} } }, - "Rec709Settings": { - "target": "com.amazonaws.medialive#Rec709Settings", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#jsonName": "rec709Settings" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } - } - }, - "traits": { - "smithy.api#documentation": "H264 Color Space Settings" - } - }, - "com.amazonaws.medialive#H264EntropyEncoding": { - "type": "enum", - "members": { - "CABAC": { - "target": "smithy.api#Unit", + }, + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#enumValue": "CABAC" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-`", + "smithy.api#jsonName": "id", + "smithy.api#required": {} } }, - "CAVLC": { - "target": "smithy.api#Unit", + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#enumValue": "CAVLC" + "smithy.api#jsonName": "modifiedAt" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.medialive#TagMap", + "traits": { + "smithy.api#jsonName": "tags" + } + }, + "TemplateCount": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The number of templates in a group.", + "smithy.api#jsonName": "templateCount", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "H264 Entropy Encoding" + "smithy.api#documentation": "Placeholder documentation for EventBridgeRuleTemplateGroupSummary" } }, - "com.amazonaws.medialive#H264FilterSettings": { + "com.amazonaws.medialive#EventBridgeRuleTemplateSummary": { "type": "structure", "members": { - "TemporalFilterSettings": { - "target": "com.amazonaws.medialive#TemporalFilterSettings", + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveEventbridgeRuleTemplate", "traits": { - "smithy.api#jsonName": "temporalFilterSettings" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "An eventbridge rule template's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn", + "smithy.api#required": {} } - } - }, - "traits": { - "smithy.api#documentation": "H264 Filter Settings" - } - }, - "com.amazonaws.medialive#H264FlickerAq": { - "type": "enum", - "members": { - "DISABLED": { - "target": "smithy.api#Unit", + }, + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "createdAt", + "smithy.api#required": {} } }, - "ENABLED": { - "target": "smithy.api#Unit", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } - } - }, - "traits": { - "smithy.api#documentation": "H264 Flicker Aq" - } - }, - "com.amazonaws.medialive#H264ForceFieldPictures": { - "type": "enum", - "members": { - "DISABLED": { - "target": "smithy.api#Unit", + }, + "EventTargetCount": { + "target": "com.amazonaws.medialive#__integerMax5", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The number of targets configured to send matching events.", + "smithy.api#jsonName": "eventTargetCount", + "smithy.api#required": {} } }, - "ENABLED": { - "target": "smithy.api#Unit", + "EventType": { + "target": "com.amazonaws.medialive#EventBridgeRuleTemplateEventType", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "eventType", + "smithy.api#required": {} + } + }, + "GroupId": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-`", + "smithy.api#jsonName": "groupId", + "smithy.api#required": {} + } + }, + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "An eventbridge rule template's id. AWS provided templates have ids that start with `aws-`", + "smithy.api#jsonName": "id", + "smithy.api#required": {} + } + }, + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "modifiedAt" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.medialive#TagMap", + "traits": { + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "H264 Force Field Pictures" + "smithy.api#documentation": "Placeholder documentation for EventBridgeRuleTemplateSummary" } }, - "com.amazonaws.medialive#H264FramerateControl": { - "type": "enum", + "com.amazonaws.medialive#EventBridgeRuleTemplateTarget": { + "type": "structure", "members": { - "INITIALIZE_FROM_SOURCE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "INITIALIZE_FROM_SOURCE" - } - }, - "SPECIFIED": { - "target": "smithy.api#Unit", + "Arn": { + "target": "com.amazonaws.medialive#__stringMin1Max2048PatternArn", "traits": { - "smithy.api#enumValue": "SPECIFIED" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Target ARNs must be either an SNS topic or CloudWatch log group.", + "smithy.api#jsonName": "arn", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "H264 Framerate Control" + "smithy.api#documentation": "The target to which to send matching events." } }, - "com.amazonaws.medialive#H264GopBReference": { + "com.amazonaws.medialive#FailedMediaResourceMap": { + "type": "map", + "key": { + "target": "com.amazonaws.medialive#__string" + }, + "value": { + "target": "com.amazonaws.medialive#MediaResource" + }, + "traits": { + "smithy.api#documentation": "A map representing an incomplete AWS media workflow as a graph." + } + }, + "com.amazonaws.medialive#FailoverCondition": { + "type": "structure", + "members": { + "FailoverConditionSettings": { + "target": "com.amazonaws.medialive#FailoverConditionSettings", + "traits": { + "smithy.api#documentation": "Failover condition type-specific settings.", + "smithy.api#jsonName": "failoverConditionSettings" + } + } + }, + "traits": { + "smithy.api#documentation": "Failover Condition settings. There can be multiple failover conditions inside AutomaticInputFailoverSettings." + } + }, + "com.amazonaws.medialive#FailoverConditionSettings": { + "type": "structure", + "members": { + "AudioSilenceSettings": { + "target": "com.amazonaws.medialive#AudioSilenceFailoverSettings", + "traits": { + "smithy.api#documentation": "MediaLive will perform a failover if the specified audio selector is silent for the specified period.", + "smithy.api#jsonName": "audioSilenceSettings" + } + }, + "InputLossSettings": { + "target": "com.amazonaws.medialive#InputLossFailoverSettings", + "traits": { + "smithy.api#documentation": "MediaLive will perform a failover if content is not detected in this input for the specified period.", + "smithy.api#jsonName": "inputLossSettings" + } + }, + "VideoBlackSettings": { + "target": "com.amazonaws.medialive#VideoBlackFailoverSettings", + "traits": { + "smithy.api#documentation": "MediaLive will perform a failover if content is considered black for the specified period.", + "smithy.api#jsonName": "videoBlackSettings" + } + } + }, + "traits": { + "smithy.api#documentation": "Settings for one failover condition." + } + }, + "com.amazonaws.medialive#FeatureActivations": { + "type": "structure", + "members": { + "InputPrepareScheduleActions": { + "target": "com.amazonaws.medialive#FeatureActivationsInputPrepareScheduleActions", + "traits": { + "smithy.api#documentation": "Enables the Input Prepare feature. You can create Input Prepare actions in the schedule only if this feature is enabled.\nIf you disable the feature on an existing schedule, make sure that you first delete all input prepare actions from the schedule.", + "smithy.api#jsonName": "inputPrepareScheduleActions" + } + }, + "OutputStaticImageOverlayScheduleActions": { + "target": "com.amazonaws.medialive#FeatureActivationsOutputStaticImageOverlayScheduleActions", + "traits": { + "smithy.api#documentation": "Enables the output static image overlay feature. Enabling this feature allows you to send channel schedule updates\nto display/clear/modify image overlays on an output-by-output bases.", + "smithy.api#jsonName": "outputStaticImageOverlayScheduleActions" + } + } + }, + "traits": { + "smithy.api#documentation": "Feature Activations" + } + }, + "com.amazonaws.medialive#FeatureActivationsInputPrepareScheduleActions": { "type": "enum", "members": { "DISABLED": { @@ -9960,1044 +10998,1388 @@ } }, "traits": { - "smithy.api#documentation": "H264 Gop BReference" + "smithy.api#documentation": "Feature Activations Input Prepare Schedule Actions" } }, - "com.amazonaws.medialive#H264GopSizeUnits": { + "com.amazonaws.medialive#FeatureActivationsOutputStaticImageOverlayScheduleActions": { "type": "enum", "members": { - "FRAMES": { + "DISABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FRAMES" + "smithy.api#enumValue": "DISABLED" } }, - "SECONDS": { + "ENABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SECONDS" + "smithy.api#enumValue": "ENABLED" } } }, "traits": { - "smithy.api#documentation": "H264 Gop Size Units" + "smithy.api#documentation": "Feature Activations Output Static Image Overlay Schedule Actions" } }, - "com.amazonaws.medialive#H264Level": { + "com.amazonaws.medialive#FecOutputIncludeFec": { "type": "enum", "members": { - "H264_LEVEL_1": { + "COLUMN": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "H264_LEVEL_1" + "smithy.api#enumValue": "COLUMN" } }, - "H264_LEVEL_1_1": { + "COLUMN_AND_ROW": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "H264_LEVEL_1_1" + "smithy.api#enumValue": "COLUMN_AND_ROW" } - }, - "H264_LEVEL_1_2": { - "target": "smithy.api#Unit", + } + }, + "traits": { + "smithy.api#documentation": "Fec Output Include Fec" + } + }, + "com.amazonaws.medialive#FecOutputSettings": { + "type": "structure", + "members": { + "ColumnDepth": { + "target": "com.amazonaws.medialive#__integerMin4Max20", "traits": { - "smithy.api#enumValue": "H264_LEVEL_1_2" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "columnDepth" } }, - "H264_LEVEL_1_3": { - "target": "smithy.api#Unit", + "IncludeFec": { + "target": "com.amazonaws.medialive#FecOutputIncludeFec", "traits": { - "smithy.api#enumValue": "H264_LEVEL_1_3" + "smithy.api#documentation": "Enables column only or column and row based FEC", + "smithy.api#jsonName": "includeFec" } }, - "H264_LEVEL_2": { - "target": "smithy.api#Unit", + "RowLength": { + "target": "com.amazonaws.medialive#__integerMin1Max20", "traits": { - "smithy.api#enumValue": "H264_LEVEL_2" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "rowLength" } - }, - "H264_LEVEL_2_1": { + } + }, + "traits": { + "smithy.api#documentation": "Fec Output Settings" + } + }, + "com.amazonaws.medialive#FixedAfd": { + "type": "enum", + "members": { + "AFD_0000": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "H264_LEVEL_2_1" + "smithy.api#enumValue": "AFD_0000" } }, - "H264_LEVEL_2_2": { + "AFD_0010": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "H264_LEVEL_2_2" + "smithy.api#enumValue": "AFD_0010" } }, - "H264_LEVEL_3": { + "AFD_0011": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "H264_LEVEL_3" + "smithy.api#enumValue": "AFD_0011" } }, - "H264_LEVEL_3_1": { + "AFD_0100": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "H264_LEVEL_3_1" + "smithy.api#enumValue": "AFD_0100" } }, - "H264_LEVEL_3_2": { + "AFD_1000": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "H264_LEVEL_3_2" + "smithy.api#enumValue": "AFD_1000" } }, - "H264_LEVEL_4": { + "AFD_1001": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "H264_LEVEL_4" + "smithy.api#enumValue": "AFD_1001" } }, - "H264_LEVEL_4_1": { + "AFD_1010": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "H264_LEVEL_4_1" + "smithy.api#enumValue": "AFD_1010" } }, - "H264_LEVEL_4_2": { + "AFD_1011": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "H264_LEVEL_4_2" + "smithy.api#enumValue": "AFD_1011" } }, - "H264_LEVEL_5": { + "AFD_1101": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "H264_LEVEL_5" + "smithy.api#enumValue": "AFD_1101" } }, - "H264_LEVEL_5_1": { + "AFD_1110": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "H264_LEVEL_5_1" + "smithy.api#enumValue": "AFD_1110" } }, - "H264_LEVEL_5_2": { + "AFD_1111": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "H264_LEVEL_5_2" + "smithy.api#enumValue": "AFD_1111" } - }, - "H264_LEVEL_AUTO": { - "target": "smithy.api#Unit", + } + }, + "traits": { + "smithy.api#documentation": "Fixed Afd" + } + }, + "com.amazonaws.medialive#FixedModeScheduleActionStartSettings": { + "type": "structure", + "members": { + "Time": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "H264_LEVEL_AUTO" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Start time for the action to start in the channel. (Not the time for the action to be added to the schedule: actions are always added to the schedule immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example, mm might be 01) except for the two constants \"T\" for time and \"Z\" for \"UTC format\".", + "smithy.api#jsonName": "time", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "H264 Level" + "smithy.api#documentation": "Start time for the action." } }, - "com.amazonaws.medialive#H264LookAheadRateControl": { - "type": "enum", + "com.amazonaws.medialive#Fmp4HlsSettings": { + "type": "structure", "members": { - "HIGH": { - "target": "smithy.api#Unit", + "AudioRenditionSets": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "HIGH" + "smithy.api#documentation": "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 ','.", + "smithy.api#jsonName": "audioRenditionSets" } }, - "LOW": { - "target": "smithy.api#Unit", + "NielsenId3Behavior": { + "target": "com.amazonaws.medialive#Fmp4NielsenId3Behavior", "traits": { - "smithy.api#enumValue": "LOW" + "smithy.api#documentation": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output.", + "smithy.api#jsonName": "nielsenId3Behavior" } }, - "MEDIUM": { - "target": "smithy.api#Unit", + "TimedMetadataBehavior": { + "target": "com.amazonaws.medialive#Fmp4TimedMetadataBehavior", "traits": { - "smithy.api#enumValue": "MEDIUM" + "smithy.api#documentation": "When set to passthrough, timed metadata is passed through from input to output.", + "smithy.api#jsonName": "timedMetadataBehavior" } } }, "traits": { - "smithy.api#documentation": "H264 Look Ahead Rate Control" + "smithy.api#documentation": "Fmp4 Hls Settings" } }, - "com.amazonaws.medialive#H264ParControl": { + "com.amazonaws.medialive#Fmp4NielsenId3Behavior": { "type": "enum", "members": { - "INITIALIZE_FROM_SOURCE": { + "NO_PASSTHROUGH": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "INITIALIZE_FROM_SOURCE" + "smithy.api#enumValue": "NO_PASSTHROUGH" } }, - "SPECIFIED": { + "PASSTHROUGH": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SPECIFIED" + "smithy.api#enumValue": "PASSTHROUGH" } } }, "traits": { - "smithy.api#documentation": "H264 Par Control" + "smithy.api#documentation": "Fmp4 Nielsen Id3 Behavior" } }, - "com.amazonaws.medialive#H264Profile": { + "com.amazonaws.medialive#Fmp4TimedMetadataBehavior": { "type": "enum", "members": { - "BASELINE": { + "NO_PASSTHROUGH": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "BASELINE" + "smithy.api#enumValue": "NO_PASSTHROUGH" } }, - "HIGH": { + "PASSTHROUGH": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "HIGH" - } - }, - "HIGH_10BIT": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "HIGH_10BIT" - } - }, - "HIGH_422": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "HIGH_422" - } - }, - "HIGH_422_10BIT": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "HIGH_422_10BIT" - } - }, - "MAIN": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "MAIN" + "smithy.api#enumValue": "PASSTHROUGH" } } }, "traits": { - "smithy.api#documentation": "H264 Profile" + "smithy.api#documentation": "Fmp4 Timed Metadata Behavior" } }, - "com.amazonaws.medialive#H264QualityLevel": { - "type": "enum", + "com.amazonaws.medialive#FollowModeScheduleActionStartSettings": { + "type": "structure", "members": { - "ENHANCED_QUALITY": { - "target": "smithy.api#Unit", + "FollowPoint": { + "target": "com.amazonaws.medialive#FollowPoint", "traits": { - "smithy.api#enumValue": "ENHANCED_QUALITY" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Identifies whether this action starts relative to the start or relative to the end of the reference action.", + "smithy.api#jsonName": "followPoint", + "smithy.api#required": {} } }, - "STANDARD_QUALITY": { - "target": "smithy.api#Unit", + "ReferenceActionName": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "STANDARD_QUALITY" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The action name of another action that this one refers to.", + "smithy.api#jsonName": "referenceActionName", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "H264 Quality Level" + "smithy.api#documentation": "Settings to specify if an action follows another." } }, - "com.amazonaws.medialive#H264RateControlMode": { + "com.amazonaws.medialive#FollowPoint": { "type": "enum", "members": { - "CBR": { + "END": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CBR" + "smithy.api#enumValue": "END" } }, - "MULTIPLEX": { + "START": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MULTIPLEX" + "smithy.api#enumValue": "START" } - }, - "QVBR": { - "target": "smithy.api#Unit", + } + }, + "traits": { + "smithy.api#documentation": "Follow reference point." + } + }, + "com.amazonaws.medialive#ForbiddenException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "QVBR" + "smithy.api#jsonName": "message" } - }, - "VBR": { - "target": "smithy.api#Unit", + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ForbiddenException", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.medialive#FrameCaptureCdnSettings": { + "type": "structure", + "members": { + "FrameCaptureS3Settings": { + "target": "com.amazonaws.medialive#FrameCaptureS3Settings", "traits": { - "smithy.api#enumValue": "VBR" + "smithy.api#jsonName": "frameCaptureS3Settings" } } }, "traits": { - "smithy.api#documentation": "H264 Rate Control Mode" + "smithy.api#documentation": "Frame Capture Cdn Settings" } }, - "com.amazonaws.medialive#H264ScanType": { - "type": "enum", + "com.amazonaws.medialive#FrameCaptureGroupSettings": { + "type": "structure", "members": { - "INTERLACED": { - "target": "smithy.api#Unit", + "Destination": { + "target": "com.amazonaws.medialive#OutputLocationRef", "traits": { - "smithy.api#enumValue": "INTERLACED" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The destination for the frame capture files. Either the URI for an Amazon S3 bucket and object, plus a file name prefix (for example, s3ssl://sportsDelivery/highlights/20180820/curling-) or the URI for a MediaStore container, plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling-). The final file names consist of the prefix from the destination field (for example, \"curling-\") + name modifier + the counter (5 digits, starting from 00001) + extension (which is always .jpg). For example, curling-low.00001.jpg", + "smithy.api#jsonName": "destination", + "smithy.api#required": {} } }, - "PROGRESSIVE": { - "target": "smithy.api#Unit", + "FrameCaptureCdnSettings": { + "target": "com.amazonaws.medialive#FrameCaptureCdnSettings", "traits": { - "smithy.api#enumValue": "PROGRESSIVE" + "smithy.api#documentation": "Parameters that control interactions with the CDN.", + "smithy.api#jsonName": "frameCaptureCdnSettings" } } }, "traits": { - "smithy.api#documentation": "H264 Scan Type" + "smithy.api#documentation": "Frame Capture Group Settings" } }, - "com.amazonaws.medialive#H264SceneChangeDetect": { + "com.amazonaws.medialive#FrameCaptureHlsSettings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Frame Capture Hls Settings" + } + }, + "com.amazonaws.medialive#FrameCaptureIntervalUnit": { "type": "enum", "members": { - "DISABLED": { + "MILLISECONDS": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "MILLISECONDS" } }, - "ENABLED": { + "SECONDS": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "SECONDS" } } }, "traits": { - "smithy.api#documentation": "H264 Scene Change Detect" + "smithy.api#documentation": "Frame Capture Interval Unit" } }, - "com.amazonaws.medialive#H264Settings": { + "com.amazonaws.medialive#FrameCaptureOutputSettings": { "type": "structure", "members": { - "AdaptiveQuantization": { - "target": "com.amazonaws.medialive#H264AdaptiveQuantization", + "NameModifier": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Enables or disables adaptive quantization, which is a technique MediaLive can apply to video on a frame-by-frame basis to produce more compression without losing quality. There are three types of adaptive quantization: flicker, spatial, and temporal. Set the field in one of these ways: Set to Auto. Recommended. For each type of AQ, MediaLive will determine if AQ is needed, and if so, the appropriate strength. Set a strength (a value other than Auto or Disable). This strength will apply to any of the AQ fields that you choose to enable. Set to Disabled to disable all types of adaptive quantization.", - "smithy.api#jsonName": "adaptiveQuantization" + "smithy.api#documentation": "Required if the output group contains more than one output. This modifier forms part of the output file name.", + "smithy.api#jsonName": "nameModifier" } - }, - "AfdSignaling": { - "target": "com.amazonaws.medialive#AfdSignaling", + } + }, + "traits": { + "smithy.api#documentation": "Frame Capture Output Settings" + } + }, + "com.amazonaws.medialive#FrameCaptureS3Settings": { + "type": "structure", + "members": { + "CannedAcl": { + "target": "com.amazonaws.medialive#S3CannedAcl", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "afdSignaling" + "smithy.api#documentation": "Specify the canned ACL to apply to each S3 request. Defaults to none.", + "smithy.api#jsonName": "cannedAcl" } - }, - "Bitrate": { - "target": "com.amazonaws.medialive#__integerMin1000", + } + }, + "traits": { + "smithy.api#documentation": "Frame Capture S3 Settings" + } + }, + "com.amazonaws.medialive#FrameCaptureSettings": { + "type": "structure", + "members": { + "CaptureInterval": { + "target": "com.amazonaws.medialive#__integerMin1Max3600000", "traits": { - "smithy.api#documentation": "Average bitrate in bits/second. Required when the rate control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique value when its bitrate is rounded down to the nearest multiple of 1000.", - "smithy.api#jsonName": "bitrate" + "smithy.api#documentation": "The frequency at which to capture frames for inclusion in the output. May be specified in either seconds or milliseconds, as specified by captureIntervalUnits.", + "smithy.api#jsonName": "captureInterval" } }, - "BufFillPct": { - "target": "com.amazonaws.medialive#__integerMin0Max100", + "CaptureIntervalUnits": { + "target": "com.amazonaws.medialive#FrameCaptureIntervalUnit", "traits": { - "smithy.api#documentation": "Percentage of the buffer that should initially be filled (HRD buffer model).", - "smithy.api#jsonName": "bufFillPct" + "smithy.api#documentation": "Unit for the frame capture interval.", + "smithy.api#jsonName": "captureIntervalUnits" } }, - "BufSize": { - "target": "com.amazonaws.medialive#__integerMin0", + "TimecodeBurninSettings": { + "target": "com.amazonaws.medialive#TimecodeBurninSettings", "traits": { - "smithy.api#documentation": "Size of buffer (HRD buffer model) in bits.", - "smithy.api#jsonName": "bufSize" + "smithy.api#documentation": "Timecode burn-in settings", + "smithy.api#jsonName": "timecodeBurninSettings" } - }, - "ColorMetadata": { - "target": "com.amazonaws.medialive#H264ColorMetadata", + } + }, + "traits": { + "smithy.api#documentation": "Frame Capture Settings" + } + }, + "com.amazonaws.medialive#GatewayTimeoutException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Includes colorspace metadata in the output.", - "smithy.api#jsonName": "colorMetadata" + "smithy.api#jsonName": "message" } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for GatewayTimeoutException", + "smithy.api#error": "server", + "smithy.api#httpError": 504 + } + }, + "com.amazonaws.medialive#GetCloudWatchAlarmTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#GetCloudWatchAlarmTemplateRequest" + }, + "output": { + "target": "com.amazonaws.medialive#GetCloudWatchAlarmTemplateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "ColorSpaceSettings": { - "target": "com.amazonaws.medialive#H264ColorSpaceSettings", - "traits": { - "smithy.api#documentation": "Color Space settings", - "smithy.api#jsonName": "colorSpaceSettings" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" }, - "EntropyEncoding": { - "target": "com.amazonaws.medialive#H264EntropyEncoding", - "traits": { - "smithy.api#documentation": "Entropy encoding mode. Use cabac (must be in Main or High profile) or cavlc.", - "smithy.api#jsonName": "entropyEncoding" - } + { + "target": "com.amazonaws.medialive#InternalServerErrorException" }, - "FilterSettings": { - "target": "com.amazonaws.medialive#H264FilterSettings", - "traits": { - "smithy.api#documentation": "Optional filters that you can apply to an encode.", - "smithy.api#jsonName": "filterSettings" - } + { + "target": "com.amazonaws.medialive#NotFoundException" }, - "FixedAfd": { - "target": "com.amazonaws.medialive#FixedAfd", - "traits": { - "smithy.api#documentation": "Four bit AFD value to write on all frames of video in the output stream. Only valid when afdSignaling is set to 'Fixed'.", - "smithy.api#jsonName": "fixedAfd" - } - }, - "FlickerAq": { - "target": "com.amazonaws.medialive#H264FlickerAq", - "traits": { - "smithy.api#documentation": "Flicker AQ makes adjustments within each frame to reduce flicker or 'pop' on I-frames. The value to enter in this field depends on the value in the Adaptive quantization field: If you have set the Adaptive quantization field to Auto, MediaLive ignores any value in this field. MediaLive will determine if flicker AQ is appropriate and will apply the appropriate strength. If you have set the Adaptive quantization field to a strength, you can set this field to Enabled or Disabled. Enabled: MediaLive will apply flicker AQ using the specified strength. Disabled: MediaLive won't apply flicker AQ. If you have set the Adaptive quantization to Disabled, MediaLive ignores any value in this field and doesn't apply flicker AQ.", - "smithy.api#jsonName": "flickerAq" - } - }, - "ForceFieldPictures": { - "target": "com.amazonaws.medialive#H264ForceFieldPictures", - "traits": { - "smithy.api#documentation": "This setting applies only when scan type is \"interlaced.\" It controls whether coding is performed on a field basis or on a frame basis. (When the video is progressive, the coding is always performed on a frame basis.)\nenabled: Force MediaLive to code on a field basis, so that odd and even sets of fields are coded separately.\ndisabled: Code the two sets of fields separately (on a field basis) or together (on a frame basis using PAFF), depending on what is most appropriate for the content.", - "smithy.api#jsonName": "forceFieldPictures" - } + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Retrieves the specified cloudwatch alarm template.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/cloudwatch-alarm-templates/{Identifier}", + "code": 200 + } + } + }, + "com.amazonaws.medialive#GetCloudWatchAlarmTemplateGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#GetCloudWatchAlarmTemplateGroupRequest" + }, + "output": { + "target": "com.amazonaws.medialive#GetCloudWatchAlarmTemplateGroupResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "FramerateControl": { - "target": "com.amazonaws.medialive#H264FramerateControl", - "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "framerateControl" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" }, - "FramerateDenominator": { - "target": "com.amazonaws.medialive#__integerMin1", - "traits": { - "smithy.api#documentation": "Framerate denominator.", - "smithy.api#jsonName": "framerateDenominator" - } + { + "target": "com.amazonaws.medialive#InternalServerErrorException" }, - "FramerateNumerator": { - "target": "com.amazonaws.medialive#__integerMin1", - "traits": { - "smithy.api#documentation": "Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps.", - "smithy.api#jsonName": "framerateNumerator" - } + { + "target": "com.amazonaws.medialive#NotFoundException" }, - "GopBReference": { - "target": "com.amazonaws.medialive#H264GopBReference", + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Retrieves the specified cloudwatch alarm template group.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/cloudwatch-alarm-template-groups/{Identifier}", + "code": 200 + } + } + }, + "com.amazonaws.medialive#GetCloudWatchAlarmTemplateGroupRequest": { + "type": "structure", + "members": { + "Identifier": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Documentation update needed", - "smithy.api#jsonName": "gopBReference" + "smithy.api#documentation": "A cloudwatch alarm template group's identifier. Can be either be its id or current name.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } - }, - "GopClosedCadence": { - "target": "com.amazonaws.medialive#__integerMin0", + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for GetCloudWatchAlarmTemplateGroupRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#GetCloudWatchAlarmTemplateGroupResponse": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveCloudwatchAlarmTemplateGroup", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "gopClosedCadence" + "smithy.api#documentation": "A cloudwatch alarm template group's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" } }, - "GopNumBFrames": { - "target": "com.amazonaws.medialive#__integerMin0Max7", + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#documentation": "Number of B-frames between reference frames.", - "smithy.api#jsonName": "gopNumBFrames" + "smithy.api#jsonName": "createdAt" } }, - "GopSize": { - "target": "com.amazonaws.medialive#__double", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#documentation": "GOP size (keyframe interval) in units of either frames or seconds per gopSizeUnits.\nIf gopSizeUnits is frames, gopSize must be an integer and must be greater than or equal to 1.\nIf gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an integer.", - "smithy.api#jsonName": "gopSize" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "GopSizeUnits": { - "target": "com.amazonaws.medialive#H264GopSizeUnits", + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "gopSizeUnits" + "smithy.api#documentation": "A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-`", + "smithy.api#jsonName": "id" } }, - "Level": { - "target": "com.amazonaws.medialive#H264Level", + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#documentation": "H.264 Level.", - "smithy.api#jsonName": "level" + "smithy.api#jsonName": "modifiedAt" } }, - "LookAheadRateControl": { - "target": "com.amazonaws.medialive#H264LookAheadRateControl", + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", "traits": { - "smithy.api#documentation": "Amount of lookahead. A value of low can decrease latency and memory usage, while high can produce better quality for certain content.", - "smithy.api#jsonName": "lookAheadRateControl" + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" } }, - "MaxBitrate": { - "target": "com.amazonaws.medialive#__integerMin1000", + "Tags": { + "target": "com.amazonaws.medialive#TagMap", "traits": { - "smithy.api#documentation": "For QVBR: See the tooltip for Quality level\n\nFor VBR: Set the maximum bitrate in order to accommodate expected spikes in the complexity of the video.", - "smithy.api#jsonName": "maxBitrate" + "smithy.api#jsonName": "tags" } - }, - "MinIInterval": { - "target": "com.amazonaws.medialive#__integerMin0Max30", + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for GetCloudWatchAlarmTemplateGroupResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#GetCloudWatchAlarmTemplateRequest": { + "type": "structure", + "members": { + "Identifier": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Only meaningful if sceneChangeDetect is set to enabled. Defaults to 5 if multiplex rate control is used. 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", - "smithy.api#jsonName": "minIInterval" + "smithy.api#documentation": "A cloudwatch alarm template's identifier. Can be either be its id or current name.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } - }, - "NumRefFrames": { - "target": "com.amazonaws.medialive#__integerMin1Max6", + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for GetCloudWatchAlarmTemplateRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#GetCloudWatchAlarmTemplateResponse": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveCloudwatchAlarmTemplate", "traits": { - "smithy.api#documentation": "Number of reference frames to use. The encoder may use more than requested if using B-frames and/or interlaced encoding.", - "smithy.api#jsonName": "numRefFrames" + "smithy.api#documentation": "A cloudwatch alarm template's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" } }, - "ParControl": { - "target": "com.amazonaws.medialive#H264ParControl", + "ComparisonOperator": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateComparisonOperator", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "parControl" + "smithy.api#jsonName": "comparisonOperator" } }, - "ParDenominator": { - "target": "com.amazonaws.medialive#__integerMin1", + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#documentation": "Pixel Aspect Ratio denominator.", - "smithy.api#jsonName": "parDenominator" + "smithy.api#jsonName": "createdAt" } }, - "ParNumerator": { + "DatapointsToAlarm": { "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#documentation": "Pixel Aspect Ratio numerator.", - "smithy.api#jsonName": "parNumerator" - } - }, - "Profile": { - "target": "com.amazonaws.medialive#H264Profile", - "traits": { - "smithy.api#documentation": "H.264 Profile.", - "smithy.api#jsonName": "profile" + "smithy.api#documentation": "The number of datapoints within the evaluation period that must be breaching to trigger the alarm.", + "smithy.api#jsonName": "datapointsToAlarm" } }, - "QualityLevel": { - "target": "com.amazonaws.medialive#H264QualityLevel", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#documentation": "Leave as STANDARD_QUALITY or choose a different value (which might result in additional costs to run the channel).\n- ENHANCED_QUALITY: Produces a slightly better video quality without an increase in the bitrate. Has an effect only when the Rate control mode is QVBR or CBR. If this channel is in a MediaLive multiplex, the value must be ENHANCED_QUALITY.\n- STANDARD_QUALITY: Valid for any Rate control mode.", - "smithy.api#jsonName": "qualityLevel" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "QvbrQualityLevel": { - "target": "com.amazonaws.medialive#__integerMin1Max10", + "EvaluationPeriods": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#documentation": "Controls the target quality for the video encode. Applies only when the rate control mode is QVBR. You can set a target quality or you can let MediaLive determine the best quality. To set a target quality, enter values in the QVBR quality level field and the Max bitrate field. Enter values that suit your most important viewing devices. Recommended values are:\n- Primary screen: Quality level: 8 to 10. Max bitrate: 4M\n- PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M\n- Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M\nTo let MediaLive decide, leave the QVBR quality level field empty, and in Max bitrate enter the maximum rate you want in the video. For more information, see the section called \"Video - rate control mode\" in the MediaLive user guide", - "smithy.api#jsonName": "qvbrQualityLevel" + "smithy.api#documentation": "The number of periods over which data is compared to the specified threshold.", + "smithy.api#jsonName": "evaluationPeriods" } }, - "RateControlMode": { - "target": "com.amazonaws.medialive#H264RateControlMode", + "GroupId": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#documentation": "Rate control mode.\n\nQVBR: Quality will match the specified quality level except when it is constrained by the\nmaximum bitrate. Recommended if you or your viewers pay for bandwidth.\n\nVBR: Quality and bitrate vary, depending on the video complexity. Recommended instead of QVBR\nif you want to maintain a specific average bitrate over the duration of the channel.\n\nCBR: Quality varies, depending on the video complexity. Recommended only if you distribute\nyour assets to devices that cannot handle variable bitrates.\n\nMultiplex: This rate control mode is only supported (and is required) when the video is being\ndelivered to a MediaLive Multiplex in which case the rate control configuration is controlled\nby the properties within the Multiplex Program.", - "smithy.api#jsonName": "rateControlMode" + "smithy.api#documentation": "A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-`", + "smithy.api#jsonName": "groupId" } }, - "ScanType": { - "target": "com.amazonaws.medialive#H264ScanType", + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#documentation": "Sets the scan type of the output to progressive or top-field-first interlaced.", - "smithy.api#jsonName": "scanType" + "smithy.api#documentation": "A cloudwatch alarm template's id. AWS provided templates have ids that start with `aws-`", + "smithy.api#jsonName": "id" } }, - "SceneChangeDetect": { - "target": "com.amazonaws.medialive#H264SceneChangeDetect", + "MetricName": { + "target": "com.amazonaws.medialive#__stringMax64", "traits": { - "smithy.api#documentation": "Scene change detection.\n\n- On: inserts I-frames when scene change is detected.\n- Off: does not force an I-frame when scene change is detected.", - "smithy.api#jsonName": "sceneChangeDetect" + "smithy.api#documentation": "The name of the metric associated with the alarm. Must be compatible with targetResourceType.", + "smithy.api#jsonName": "metricName" } }, - "Slices": { - "target": "com.amazonaws.medialive#__integerMin1Max32", + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "slices" + "smithy.api#jsonName": "modifiedAt" } }, - "Softness": { - "target": "com.amazonaws.medialive#__integerMin0Max128", + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", "traits": { - "smithy.api#documentation": "Softness. Selects quantizer matrix, larger values reduce high-frequency content in the encoded image. If not set to zero, must be greater than 15.", - "smithy.api#jsonName": "softness" + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" } }, - "SpatialAq": { - "target": "com.amazonaws.medialive#H264SpatialAq", + "Period": { + "target": "com.amazonaws.medialive#__integerMin10Max86400", "traits": { - "smithy.api#documentation": "Spatial AQ makes adjustments within each frame based on spatial variation of content complexity. The value to enter in this field depends on the value in the Adaptive quantization field: If you have set the Adaptive quantization field to Auto, MediaLive ignores any value in this field. MediaLive will determine if spatial AQ is appropriate and will apply the appropriate strength. If you have set the Adaptive quantization field to a strength, you can set this field to Enabled or Disabled. Enabled: MediaLive will apply spatial AQ using the specified strength. Disabled: MediaLive won't apply spatial AQ. If you have set the Adaptive quantization to Disabled, MediaLive ignores any value in this field and doesn't apply spatial AQ.", - "smithy.api#jsonName": "spatialAq" + "smithy.api#documentation": "The period, in seconds, over which the specified statistic is applied.", + "smithy.api#jsonName": "period" } }, - "SubgopLength": { - "target": "com.amazonaws.medialive#H264SubGopLength", + "Statistic": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateStatistic", "traits": { - "smithy.api#documentation": "If set to fixed, use gopNumBFrames B-frames per sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual quality.", - "smithy.api#jsonName": "subgopLength" + "smithy.api#jsonName": "statistic" } }, - "Syntax": { - "target": "com.amazonaws.medialive#H264Syntax", + "Tags": { + "target": "com.amazonaws.medialive#TagMap", "traits": { - "smithy.api#documentation": "Produces a bitstream compliant with SMPTE RP-2027.", - "smithy.api#jsonName": "syntax" + "smithy.api#jsonName": "tags" } }, - "TemporalAq": { - "target": "com.amazonaws.medialive#H264TemporalAq", + "TargetResourceType": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateTargetResourceType", "traits": { - "smithy.api#documentation": "Temporal makes adjustments within each frame based on temporal variation of content complexity. The value to enter in this field depends on the value in the Adaptive quantization field: If you have set the Adaptive quantization field to Auto, MediaLive ignores any value in this field. MediaLive will determine if temporal AQ is appropriate and will apply the appropriate strength. If you have set the Adaptive quantization field to a strength, you can set this field to Enabled or Disabled. Enabled: MediaLive will apply temporal AQ using the specified strength. Disabled: MediaLive won't apply temporal AQ. If you have set the Adaptive quantization to Disabled, MediaLive ignores any value in this field and doesn't apply temporal AQ.", - "smithy.api#jsonName": "temporalAq" + "smithy.api#jsonName": "targetResourceType" } }, - "TimecodeInsertion": { - "target": "com.amazonaws.medialive#H264TimecodeInsertionBehavior", + "Threshold": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#documentation": "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", - "smithy.api#jsonName": "timecodeInsertion" + "smithy.api#documentation": "The threshold value to compare with the specified statistic.", + "smithy.api#jsonName": "threshold" } }, - "TimecodeBurninSettings": { - "target": "com.amazonaws.medialive#TimecodeBurninSettings", + "TreatMissingData": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateTreatMissingData", "traits": { - "smithy.api#documentation": "Timecode burn-in settings", - "smithy.api#jsonName": "timecodeBurninSettings" + "smithy.api#jsonName": "treatMissingData" } } }, "traits": { - "smithy.api#documentation": "H264 Settings" + "smithy.api#documentation": "Placeholder documentation for GetCloudWatchAlarmTemplateResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#H264SpatialAq": { - "type": "enum", - "members": { - "DISABLED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DISABLED" - } - }, - "ENABLED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ENABLED" - } - } + "com.amazonaws.medialive#GetEventBridgeRuleTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#GetEventBridgeRuleTemplateRequest" }, - "traits": { - "smithy.api#documentation": "H264 Spatial Aq" - } - }, - "com.amazonaws.medialive#H264SubGopLength": { - "type": "enum", - "members": { - "DYNAMIC": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DYNAMIC" - } - }, - "FIXED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "FIXED" - } - } + "output": { + "target": "com.amazonaws.medialive#GetEventBridgeRuleTemplateResponse" }, - "traits": { - "smithy.api#documentation": "H264 Sub Gop Length" - } - }, - "com.amazonaws.medialive#H264Syntax": { - "type": "enum", - "members": { - "DEFAULT": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DEFAULT" - } + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "RP2027": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "RP2027" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" } - }, + ], "traits": { - "smithy.api#documentation": "H264 Syntax" + "smithy.api#documentation": "Retrieves the specified eventbridge rule template.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/eventbridge-rule-templates/{Identifier}", + "code": 200 + } } }, - "com.amazonaws.medialive#H264TemporalAq": { - "type": "enum", - "members": { - "DISABLED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DISABLED" - } + "com.amazonaws.medialive#GetEventBridgeRuleTemplateGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#GetEventBridgeRuleTemplateGroupRequest" + }, + "output": { + "target": "com.amazonaws.medialive#GetEventBridgeRuleTemplateGroupResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "ENABLED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ENABLED" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" } - }, + ], "traits": { - "smithy.api#documentation": "H264 Temporal Aq" + "smithy.api#documentation": "Retrieves the specified eventbridge rule template group.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/eventbridge-rule-template-groups/{Identifier}", + "code": 200 + } } }, - "com.amazonaws.medialive#H264TimecodeInsertionBehavior": { - "type": "enum", + "com.amazonaws.medialive#GetEventBridgeRuleTemplateGroupRequest": { + "type": "structure", "members": { - "DISABLED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DISABLED" - } - }, - "PIC_TIMING_SEI": { - "target": "smithy.api#Unit", + "Identifier": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "PIC_TIMING_SEI" + "smithy.api#documentation": "An eventbridge rule template group's identifier. Can be either be its id or current name.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "H264 Timecode Insertion Behavior" + "smithy.api#documentation": "Placeholder documentation for GetEventBridgeRuleTemplateGroupRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#H265AdaptiveQuantization": { - "type": "enum", + "com.amazonaws.medialive#GetEventBridgeRuleTemplateGroupResponse": { + "type": "structure", "members": { - "AUTO": { - "target": "smithy.api#Unit", + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveEventbridgeRuleTemplateGroup", "traits": { - "smithy.api#enumValue": "AUTO" + "smithy.api#documentation": "An eventbridge rule template group's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" } }, - "HIGH": { - "target": "smithy.api#Unit", + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#enumValue": "HIGH" + "smithy.api#jsonName": "createdAt" } }, - "HIGHER": { - "target": "smithy.api#Unit", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#enumValue": "HIGHER" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "LOW": { - "target": "smithy.api#Unit", + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#enumValue": "LOW" + "smithy.api#documentation": "An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-`", + "smithy.api#jsonName": "id" } }, - "MAX": { - "target": "smithy.api#Unit", + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#enumValue": "MAX" + "smithy.api#jsonName": "modifiedAt" } }, - "MEDIUM": { - "target": "smithy.api#Unit", + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", "traits": { - "smithy.api#enumValue": "MEDIUM" + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" } }, - "OFF": { - "target": "smithy.api#Unit", + "Tags": { + "target": "com.amazonaws.medialive#TagMap", "traits": { - "smithy.api#enumValue": "OFF" + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "H265 Adaptive Quantization" + "smithy.api#documentation": "Placeholder documentation for GetEventBridgeRuleTemplateGroupResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#H265AlternativeTransferFunction": { - "type": "enum", + "com.amazonaws.medialive#GetEventBridgeRuleTemplateRequest": { + "type": "structure", "members": { - "INSERT": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "INSERT" - } - }, - "OMIT": { - "target": "smithy.api#Unit", + "Identifier": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "OMIT" + "smithy.api#documentation": "An eventbridge rule template's identifier. Can be either be its id or current name.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "H265 Alternative Transfer Function" + "smithy.api#documentation": "Placeholder documentation for GetEventBridgeRuleTemplateRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#H265ColorMetadata": { - "type": "enum", + "com.amazonaws.medialive#GetEventBridgeRuleTemplateResponse": { + "type": "structure", "members": { - "IGNORE": { - "target": "smithy.api#Unit", + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveEventbridgeRuleTemplate", "traits": { - "smithy.api#enumValue": "IGNORE" + "smithy.api#documentation": "An eventbridge rule template's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" } }, - "INSERT": { - "target": "smithy.api#Unit", + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#enumValue": "INSERT" + "smithy.api#jsonName": "createdAt" } - } - }, - "traits": { - "smithy.api#documentation": "H265 Color Metadata" - } - }, - "com.amazonaws.medialive#H265ColorSpaceSettings": { - "type": "structure", - "members": { - "ColorSpacePassthroughSettings": { - "target": "com.amazonaws.medialive#ColorSpacePassthroughSettings", + }, + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#jsonName": "colorSpacePassthroughSettings" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "DolbyVision81Settings": { - "target": "com.amazonaws.medialive#DolbyVision81Settings", + "EventTargets": { + "target": "com.amazonaws.medialive#__listOfEventBridgeRuleTemplateTarget", "traits": { - "smithy.api#jsonName": "dolbyVision81Settings" + "smithy.api#jsonName": "eventTargets" } }, - "Hdr10Settings": { - "target": "com.amazonaws.medialive#Hdr10Settings", + "EventType": { + "target": "com.amazonaws.medialive#EventBridgeRuleTemplateEventType", "traits": { - "smithy.api#jsonName": "hdr10Settings" + "smithy.api#jsonName": "eventType" } }, - "Rec601Settings": { - "target": "com.amazonaws.medialive#Rec601Settings", + "GroupId": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#jsonName": "rec601Settings" + "smithy.api#documentation": "An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-`", + "smithy.api#jsonName": "groupId" } }, - "Rec709Settings": { - "target": "com.amazonaws.medialive#Rec709Settings", + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#jsonName": "rec709Settings" + "smithy.api#documentation": "An eventbridge rule template's id. AWS provided templates have ids that start with `aws-`", + "smithy.api#jsonName": "id" } - } - }, - "traits": { - "smithy.api#documentation": "H265 Color Space Settings" - } - }, - "com.amazonaws.medialive#H265FilterSettings": { - "type": "structure", - "members": { - "TemporalFilterSettings": { - "target": "com.amazonaws.medialive#TemporalFilterSettings", + }, + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#jsonName": "temporalFilterSettings" + "smithy.api#jsonName": "modifiedAt" } - } - }, - "traits": { - "smithy.api#documentation": "H265 Filter Settings" - } - }, - "com.amazonaws.medialive#H265FlickerAq": { - "type": "enum", - "members": { - "DISABLED": { - "target": "smithy.api#Unit", + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" } }, - "ENABLED": { - "target": "smithy.api#Unit", + "Tags": { + "target": "com.amazonaws.medialive#TagMap", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "H265 Flicker Aq" + "smithy.api#documentation": "Placeholder documentation for GetEventBridgeRuleTemplateResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#H265GopSizeUnits": { - "type": "enum", - "members": { - "FRAMES": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "FRAMES" - } - }, - "SECONDS": { - "target": "smithy.api#Unit", + "com.amazonaws.medialive#GetSignalMap": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#GetSignalMapRequest" + }, + "output": { + "target": "com.amazonaws.medialive#GetSignalMapResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Retrieves the specified signal map.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/signal-maps/{Identifier}", + "code": 200 + }, + "smithy.waiters#waitable": { + "SignalMapCreated": { + "documentation": "Wait until a signal map has been created", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Status", + "expected": "CREATE_COMPLETE", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "Status", + "expected": "CREATE_IN_PROGRESS", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Status", + "expected": "CREATE_FAILED", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 5 + }, + "SignalMapMonitorDeleted": { + "documentation": "Wait until a signal map's monitor has been deleted", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "MonitorDeployment.Status", + "expected": "DELETE_COMPLETE", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "MonitorDeployment.Status", + "expected": "DELETE_IN_PROGRESS", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "MonitorDeployment.Status", + "expected": "DELETE_FAILED", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 5 + }, + "SignalMapMonitorDeployed": { + "documentation": "Wait until a signal map's monitor has been deployed", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "MonitorDeployment.Status", + "expected": "DRY_RUN_DEPLOYMENT_COMPLETE", + "comparator": "stringEquals" + } + } + }, + { + "state": "success", + "matcher": { + "output": { + "path": "MonitorDeployment.Status", + "expected": "DEPLOYMENT_COMPLETE", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "MonitorDeployment.Status", + "expected": "DRY_RUN_DEPLOYMENT_IN_PROGRESS", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "MonitorDeployment.Status", + "expected": "DEPLOYMENT_IN_PROGRESS", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "MonitorDeployment.Status", + "expected": "DRY_RUN_DEPLOYMENT_FAILED", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "MonitorDeployment.Status", + "expected": "DEPLOYMENT_FAILED", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 5 + }, + "SignalMapUpdated": { + "documentation": "Wait until a signal map has been updated", + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Status", + "expected": "UPDATE_COMPLETE", + "comparator": "stringEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "output": { + "path": "Status", + "expected": "UPDATE_IN_PROGRESS", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Status", + "expected": "UPDATE_FAILED", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Status", + "expected": "UPDATE_REVERTED", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 5 + } + } + } + }, + "com.amazonaws.medialive#GetSignalMapRequest": { + "type": "structure", + "members": { + "Identifier": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "SECONDS" + "smithy.api#documentation": "A signal map's identifier. Can be either be its id or current name.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "H265 Gop Size Units" + "smithy.api#documentation": "Placeholder documentation for GetSignalMapRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#H265Level": { - "type": "enum", + "com.amazonaws.medialive#GetSignalMapResponse": { + "type": "structure", "members": { - "H265_LEVEL_1": { - "target": "smithy.api#Unit", + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveSignalMap", "traits": { - "smithy.api#enumValue": "H265_LEVEL_1" + "smithy.api#documentation": "A signal map's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" } }, - "H265_LEVEL_2": { - "target": "smithy.api#Unit", + "CloudWatchAlarmTemplateGroupIds": { + "target": "com.amazonaws.medialive#__listOf__stringMin7Max11PatternAws097", "traits": { - "smithy.api#enumValue": "H265_LEVEL_2" + "smithy.api#jsonName": "cloudWatchAlarmTemplateGroupIds" } }, - "H265_LEVEL_2_1": { - "target": "smithy.api#Unit", + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#enumValue": "H265_LEVEL_2_1" + "smithy.api#jsonName": "createdAt" } }, - "H265_LEVEL_3": { - "target": "smithy.api#Unit", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#enumValue": "H265_LEVEL_3" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "H265_LEVEL_3_1": { - "target": "smithy.api#Unit", + "DiscoveryEntryPointArn": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", "traits": { - "smithy.api#enumValue": "H265_LEVEL_3_1" + "smithy.api#documentation": "A top-level supported AWS resource ARN to discovery a signal map from.", + "smithy.api#jsonName": "discoveryEntryPointArn" } }, - "H265_LEVEL_4": { - "target": "smithy.api#Unit", + "ErrorMessage": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", "traits": { - "smithy.api#enumValue": "H265_LEVEL_4" + "smithy.api#documentation": "Error message associated with a failed creation or failed update attempt of a signal map.", + "smithy.api#jsonName": "errorMessage" } }, - "H265_LEVEL_4_1": { - "target": "smithy.api#Unit", + "EventBridgeRuleTemplateGroupIds": { + "target": "com.amazonaws.medialive#__listOf__stringMin7Max11PatternAws097", "traits": { - "smithy.api#enumValue": "H265_LEVEL_4_1" + "smithy.api#jsonName": "eventBridgeRuleTemplateGroupIds" } }, - "H265_LEVEL_5": { - "target": "smithy.api#Unit", + "FailedMediaResourceMap": { + "target": "com.amazonaws.medialive#FailedMediaResourceMap", "traits": { - "smithy.api#enumValue": "H265_LEVEL_5" + "smithy.api#jsonName": "failedMediaResourceMap" } }, - "H265_LEVEL_5_1": { - "target": "smithy.api#Unit", + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#enumValue": "H265_LEVEL_5_1" + "smithy.api#documentation": "A signal map's id.", + "smithy.api#jsonName": "id" } }, - "H265_LEVEL_5_2": { - "target": "smithy.api#Unit", + "LastDiscoveredAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#enumValue": "H265_LEVEL_5_2" + "smithy.api#jsonName": "lastDiscoveredAt" } }, - "H265_LEVEL_6": { - "target": "smithy.api#Unit", + "LastSuccessfulMonitorDeployment": { + "target": "com.amazonaws.medialive#SuccessfulMonitorDeployment", "traits": { - "smithy.api#enumValue": "H265_LEVEL_6" + "smithy.api#jsonName": "lastSuccessfulMonitorDeployment" } }, - "H265_LEVEL_6_1": { - "target": "smithy.api#Unit", + "MediaResourceMap": { + "target": "com.amazonaws.medialive#MediaResourceMap", "traits": { - "smithy.api#enumValue": "H265_LEVEL_6_1" + "smithy.api#jsonName": "mediaResourceMap" } }, - "H265_LEVEL_6_2": { - "target": "smithy.api#Unit", + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#enumValue": "H265_LEVEL_6_2" + "smithy.api#jsonName": "modifiedAt" } }, - "H265_LEVEL_AUTO": { - "target": "smithy.api#Unit", + "MonitorChangesPendingDeployment": { + "target": "com.amazonaws.medialive#__boolean", "traits": { - "smithy.api#enumValue": "H265_LEVEL_AUTO" + "smithy.api#documentation": "If true, there are pending monitor changes for this signal map that can be deployed.", + "smithy.api#jsonName": "monitorChangesPendingDeployment" } - } - }, - "traits": { - "smithy.api#documentation": "H265 Level" - } - }, - "com.amazonaws.medialive#H265LookAheadRateControl": { - "type": "enum", - "members": { - "HIGH": { - "target": "smithy.api#Unit", + }, + "MonitorDeployment": { + "target": "com.amazonaws.medialive#MonitorDeployment", "traits": { - "smithy.api#enumValue": "HIGH" + "smithy.api#jsonName": "monitorDeployment" } }, - "LOW": { - "target": "smithy.api#Unit", + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", "traits": { - "smithy.api#enumValue": "LOW" + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" } }, - "MEDIUM": { - "target": "smithy.api#Unit", + "Status": { + "target": "com.amazonaws.medialive#SignalMapStatus", "traits": { - "smithy.api#enumValue": "MEDIUM" + "smithy.api#jsonName": "status" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#TagMap", + "traits": { + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "H265 Look Ahead Rate Control" + "smithy.api#documentation": "Placeholder documentation for GetSignalMapResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#H265MvOverPictureBoundaries": { + "com.amazonaws.medialive#GlobalConfiguration": { + "type": "structure", + "members": { + "InitialAudioGain": { + "target": "com.amazonaws.medialive#__integerMinNegative60Max60", + "traits": { + "smithy.api#documentation": "Value to set the initial audio gain for the Live Event.", + "smithy.api#jsonName": "initialAudioGain" + } + }, + "InputEndAction": { + "target": "com.amazonaws.medialive#GlobalConfigurationInputEndAction", + "traits": { + "smithy.api#documentation": "Indicates the action to take when the current input completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the beginning of the first input. When \"none\" is configured the encoder will transcode either black, a solid color, or a user specified slate images per the \"Input Loss Behavior\" configuration until the next input switch occurs (which is controlled through the Channel Schedule API).", + "smithy.api#jsonName": "inputEndAction" + } + }, + "InputLossBehavior": { + "target": "com.amazonaws.medialive#InputLossBehavior", + "traits": { + "smithy.api#documentation": "Settings for system actions when input is lost.", + "smithy.api#jsonName": "inputLossBehavior" + } + }, + "OutputLockingMode": { + "target": "com.amazonaws.medialive#GlobalConfigurationOutputLockingMode", + "traits": { + "smithy.api#documentation": "Indicates how MediaLive pipelines are synchronized.\n\nPIPELINE_LOCKING - MediaLive will attempt to synchronize the output of each pipeline to the other.\nEPOCH_LOCKING - MediaLive will attempt to synchronize the output of each pipeline to the Unix epoch.", + "smithy.api#jsonName": "outputLockingMode" + } + }, + "OutputTimingSource": { + "target": "com.amazonaws.medialive#GlobalConfigurationOutputTimingSource", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "outputTimingSource" + } + }, + "SupportLowFramerateInputs": { + "target": "com.amazonaws.medialive#GlobalConfigurationLowFramerateInputs", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "supportLowFramerateInputs" + } + }, + "OutputLockingSettings": { + "target": "com.amazonaws.medialive#OutputLockingSettings", + "traits": { + "smithy.api#documentation": "Advanced output locking settings", + "smithy.api#jsonName": "outputLockingSettings" + } + } + }, + "traits": { + "smithy.api#documentation": "Global Configuration" + } + }, + "com.amazonaws.medialive#GlobalConfigurationInputEndAction": { "type": "enum", "members": { - "DISABLED": { + "NONE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "NONE" } }, - "ENABLED": { + "SWITCH_AND_LOOP_INPUTS": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "SWITCH_AND_LOOP_INPUTS" } } }, "traits": { - "smithy.api#documentation": "H265 Mv Over Picture Boundaries" + "smithy.api#documentation": "Global Configuration Input End Action" } }, - "com.amazonaws.medialive#H265MvTemporalPredictor": { + "com.amazonaws.medialive#GlobalConfigurationLowFramerateInputs": { "type": "enum", "members": { "DISABLED": { @@ -11014,360 +12396,390 @@ } }, "traits": { - "smithy.api#documentation": "H265 Mv Temporal Predictor" + "smithy.api#documentation": "Global Configuration Low Framerate Inputs" } }, - "com.amazonaws.medialive#H265Profile": { + "com.amazonaws.medialive#GlobalConfigurationOutputLockingMode": { "type": "enum", "members": { - "MAIN": { + "EPOCH_LOCKING": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MAIN" + "smithy.api#enumValue": "EPOCH_LOCKING" } }, - "MAIN_10BIT": { + "PIPELINE_LOCKING": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MAIN_10BIT" + "smithy.api#enumValue": "PIPELINE_LOCKING" } } }, "traits": { - "smithy.api#documentation": "H265 Profile" + "smithy.api#documentation": "Global Configuration Output Locking Mode" } }, - "com.amazonaws.medialive#H265RateControlMode": { + "com.amazonaws.medialive#GlobalConfigurationOutputTimingSource": { "type": "enum", "members": { - "CBR": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CBR" - } - }, - "MULTIPLEX": { + "INPUT_CLOCK": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MULTIPLEX" + "smithy.api#enumValue": "INPUT_CLOCK" } }, - "QVBR": { + "SYSTEM_CLOCK": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "QVBR" + "smithy.api#enumValue": "SYSTEM_CLOCK" } } }, "traits": { - "smithy.api#documentation": "H265 Rate Control Mode" + "smithy.api#documentation": "Global Configuration Output Timing Source" } }, - "com.amazonaws.medialive#H265ScanType": { + "com.amazonaws.medialive#H264AdaptiveQuantization": { "type": "enum", "members": { - "INTERLACED": { + "AUTO": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "INTERLACED" + "smithy.api#enumValue": "AUTO" } }, - "PROGRESSIVE": { + "HIGH": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PROGRESSIVE" + "smithy.api#enumValue": "HIGH" + } + }, + "HIGHER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HIGHER" + } + }, + "LOW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LOW" + } + }, + "MAX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MAX" + } + }, + "MEDIUM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MEDIUM" + } + }, + "OFF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OFF" } } }, "traits": { - "smithy.api#documentation": "H265 Scan Type" + "smithy.api#documentation": "H264 Adaptive Quantization" } }, - "com.amazonaws.medialive#H265SceneChangeDetect": { + "com.amazonaws.medialive#H264ColorMetadata": { "type": "enum", "members": { - "DISABLED": { + "IGNORE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "IGNORE" } }, - "ENABLED": { + "INSERT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "INSERT" } } }, "traits": { - "smithy.api#documentation": "H265 Scene Change Detect" + "smithy.api#documentation": "H264 Color Metadata" } }, - "com.amazonaws.medialive#H265Settings": { + "com.amazonaws.medialive#H264ColorSpaceSettings": { "type": "structure", "members": { - "AdaptiveQuantization": { - "target": "com.amazonaws.medialive#H265AdaptiveQuantization", + "ColorSpacePassthroughSettings": { + "target": "com.amazonaws.medialive#ColorSpacePassthroughSettings", "traits": { - "smithy.api#documentation": "Adaptive quantization. Allows intra-frame quantizers to vary to improve visual quality.", - "smithy.api#jsonName": "adaptiveQuantization" + "smithy.api#jsonName": "colorSpacePassthroughSettings" } }, - "AfdSignaling": { - "target": "com.amazonaws.medialive#AfdSignaling", + "Rec601Settings": { + "target": "com.amazonaws.medialive#Rec601Settings", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "afdSignaling" + "smithy.api#jsonName": "rec601Settings" } }, - "AlternativeTransferFunction": { - "target": "com.amazonaws.medialive#H265AlternativeTransferFunction", + "Rec709Settings": { + "target": "com.amazonaws.medialive#Rec709Settings", "traits": { - "smithy.api#documentation": "Whether or not EML should insert an Alternative Transfer Function SEI message to support backwards compatibility with non-HDR decoders and displays.", - "smithy.api#jsonName": "alternativeTransferFunction" + "smithy.api#jsonName": "rec709Settings" } - }, - "Bitrate": { - "target": "com.amazonaws.medialive#__integerMin100000Max40000000", + } + }, + "traits": { + "smithy.api#documentation": "H264 Color Space Settings" + } + }, + "com.amazonaws.medialive#H264EntropyEncoding": { + "type": "enum", + "members": { + "CABAC": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Average bitrate in bits/second. Required when the rate control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique value when its bitrate is rounded down to the nearest multiple of 1000.", - "smithy.api#jsonName": "bitrate" + "smithy.api#enumValue": "CABAC" } }, - "BufSize": { - "target": "com.amazonaws.medialive#__integerMin100000Max80000000", + "CAVLC": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Size of buffer (HRD buffer model) in bits.", - "smithy.api#jsonName": "bufSize" + "smithy.api#enumValue": "CAVLC" } - }, - "ColorMetadata": { - "target": "com.amazonaws.medialive#H265ColorMetadata", + } + }, + "traits": { + "smithy.api#documentation": "H264 Entropy Encoding" + } + }, + "com.amazonaws.medialive#H264FilterSettings": { + "type": "structure", + "members": { + "TemporalFilterSettings": { + "target": "com.amazonaws.medialive#TemporalFilterSettings", "traits": { - "smithy.api#documentation": "Includes colorspace metadata in the output.", - "smithy.api#jsonName": "colorMetadata" + "smithy.api#jsonName": "temporalFilterSettings" } - }, - "ColorSpaceSettings": { - "target": "com.amazonaws.medialive#H265ColorSpaceSettings", + } + }, + "traits": { + "smithy.api#documentation": "H264 Filter Settings" + } + }, + "com.amazonaws.medialive#H264FlickerAq": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Color Space settings", - "smithy.api#jsonName": "colorSpaceSettings" + "smithy.api#enumValue": "DISABLED" } }, - "FilterSettings": { - "target": "com.amazonaws.medialive#H265FilterSettings", + "ENABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Optional filters that you can apply to an encode.", - "smithy.api#jsonName": "filterSettings" - } - }, - "FixedAfd": { - "target": "com.amazonaws.medialive#FixedAfd", - "traits": { - "smithy.api#documentation": "Four bit AFD value to write on all frames of video in the output stream. Only valid when afdSignaling is set to 'Fixed'.", - "smithy.api#jsonName": "fixedAfd" - } - }, - "FlickerAq": { - "target": "com.amazonaws.medialive#H265FlickerAq", - "traits": { - "smithy.api#documentation": "If set to enabled, adjust quantization within each frame to reduce flicker or 'pop' on I-frames.", - "smithy.api#jsonName": "flickerAq" - } - }, - "FramerateDenominator": { - "target": "com.amazonaws.medialive#__integerMin1Max3003", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Framerate denominator.", - "smithy.api#jsonName": "framerateDenominator", - "smithy.api#required": {} + "smithy.api#enumValue": "ENABLED" } - }, - "FramerateNumerator": { - "target": "com.amazonaws.medialive#__integerMin1", + } + }, + "traits": { + "smithy.api#documentation": "H264 Flicker Aq" + } + }, + "com.amazonaws.medialive#H264ForceFieldPictures": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps.", - "smithy.api#jsonName": "framerateNumerator", - "smithy.api#required": {} + "smithy.api#enumValue": "DISABLED" } }, - "GopClosedCadence": { - "target": "com.amazonaws.medialive#__integerMin0", + "ENABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "gopClosedCadence" + "smithy.api#enumValue": "ENABLED" } - }, - "GopSize": { - "target": "com.amazonaws.medialive#__double", + } + }, + "traits": { + "smithy.api#documentation": "H264 Force Field Pictures" + } + }, + "com.amazonaws.medialive#H264FramerateControl": { + "type": "enum", + "members": { + "INITIALIZE_FROM_SOURCE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "GOP size (keyframe interval) in units of either frames or seconds per gopSizeUnits.\nIf gopSizeUnits is frames, gopSize must be an integer and must be greater than or equal to 1.\nIf gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an integer.", - "smithy.api#jsonName": "gopSize" + "smithy.api#enumValue": "INITIALIZE_FROM_SOURCE" } }, - "GopSizeUnits": { - "target": "com.amazonaws.medialive#H265GopSizeUnits", + "SPECIFIED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "gopSizeUnits" + "smithy.api#enumValue": "SPECIFIED" } - }, - "Level": { - "target": "com.amazonaws.medialive#H265Level", + } + }, + "traits": { + "smithy.api#documentation": "H264 Framerate Control" + } + }, + "com.amazonaws.medialive#H264GopBReference": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "H.265 Level.", - "smithy.api#jsonName": "level" + "smithy.api#enumValue": "DISABLED" } }, - "LookAheadRateControl": { - "target": "com.amazonaws.medialive#H265LookAheadRateControl", + "ENABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Amount of lookahead. A value of low can decrease latency and memory usage, while high can produce better quality for certain content.", - "smithy.api#jsonName": "lookAheadRateControl" + "smithy.api#enumValue": "ENABLED" } - }, - "MaxBitrate": { - "target": "com.amazonaws.medialive#__integerMin100000Max40000000", + } + }, + "traits": { + "smithy.api#documentation": "H264 Gop BReference" + } + }, + "com.amazonaws.medialive#H264GopSizeUnits": { + "type": "enum", + "members": { + "FRAMES": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "For QVBR: See the tooltip for Quality level", - "smithy.api#jsonName": "maxBitrate" + "smithy.api#enumValue": "FRAMES" } }, - "MinIInterval": { - "target": "com.amazonaws.medialive#__integerMin0Max30", + "SECONDS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Only meaningful if sceneChangeDetect is set to enabled. Defaults to 5 if multiplex rate control is used. 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", - "smithy.api#jsonName": "minIInterval" + "smithy.api#enumValue": "SECONDS" } - }, - "ParDenominator": { - "target": "com.amazonaws.medialive#__integerMin1", + } + }, + "traits": { + "smithy.api#documentation": "H264 Gop Size Units" + } + }, + "com.amazonaws.medialive#H264Level": { + "type": "enum", + "members": { + "H264_LEVEL_1": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Pixel Aspect Ratio denominator.", - "smithy.api#jsonName": "parDenominator" + "smithy.api#enumValue": "H264_LEVEL_1" } }, - "ParNumerator": { - "target": "com.amazonaws.medialive#__integerMin1", + "H264_LEVEL_1_1": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Pixel Aspect Ratio numerator.", - "smithy.api#jsonName": "parNumerator" + "smithy.api#enumValue": "H264_LEVEL_1_1" } }, - "Profile": { - "target": "com.amazonaws.medialive#H265Profile", + "H264_LEVEL_1_2": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "H.265 Profile.", - "smithy.api#jsonName": "profile" + "smithy.api#enumValue": "H264_LEVEL_1_2" } }, - "QvbrQualityLevel": { - "target": "com.amazonaws.medialive#__integerMin1Max10", + "H264_LEVEL_1_3": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Controls the target quality for the video encode. Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max bitrate field that suit your most important viewing devices. Recommended values are:\n- Primary screen: Quality level: 8 to 10. Max bitrate: 4M\n- PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M\n- Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M", - "smithy.api#jsonName": "qvbrQualityLevel" + "smithy.api#enumValue": "H264_LEVEL_1_3" } }, - "RateControlMode": { - "target": "com.amazonaws.medialive#H265RateControlMode", + "H264_LEVEL_2": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Rate control mode.\n\nQVBR: Quality will match the specified quality level except when it is constrained by the\nmaximum bitrate. Recommended if you or your viewers pay for bandwidth.\n\nCBR: Quality varies, depending on the video complexity. Recommended only if you distribute\nyour assets to devices that cannot handle variable bitrates.\n\nMultiplex: This rate control mode is only supported (and is required) when the video is being\ndelivered to a MediaLive Multiplex in which case the rate control configuration is controlled\nby the properties within the Multiplex Program.", - "smithy.api#jsonName": "rateControlMode" + "smithy.api#enumValue": "H264_LEVEL_2" } }, - "ScanType": { - "target": "com.amazonaws.medialive#H265ScanType", + "H264_LEVEL_2_1": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Sets the scan type of the output to progressive or top-field-first interlaced.", - "smithy.api#jsonName": "scanType" + "smithy.api#enumValue": "H264_LEVEL_2_1" } }, - "SceneChangeDetect": { - "target": "com.amazonaws.medialive#H265SceneChangeDetect", + "H264_LEVEL_2_2": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Scene change detection.", - "smithy.api#jsonName": "sceneChangeDetect" + "smithy.api#enumValue": "H264_LEVEL_2_2" } }, - "Slices": { - "target": "com.amazonaws.medialive#__integerMin1Max16", + "H264_LEVEL_3": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "slices" + "smithy.api#enumValue": "H264_LEVEL_3" } }, - "Tier": { - "target": "com.amazonaws.medialive#H265Tier", + "H264_LEVEL_3_1": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "H.265 Tier.", - "smithy.api#jsonName": "tier" + "smithy.api#enumValue": "H264_LEVEL_3_1" } }, - "TimecodeInsertion": { - "target": "com.amazonaws.medialive#H265TimecodeInsertionBehavior", + "H264_LEVEL_3_2": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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", - "smithy.api#jsonName": "timecodeInsertion" + "smithy.api#enumValue": "H264_LEVEL_3_2" } }, - "TimecodeBurninSettings": { - "target": "com.amazonaws.medialive#TimecodeBurninSettings", + "H264_LEVEL_4": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Timecode burn-in settings", - "smithy.api#jsonName": "timecodeBurninSettings" + "smithy.api#enumValue": "H264_LEVEL_4" } }, - "MvOverPictureBoundaries": { - "target": "com.amazonaws.medialive#H265MvOverPictureBoundaries", + "H264_LEVEL_4_1": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "If you are setting up the picture as a tile, you must set this to \"disabled\". In all other configurations, you typically enter \"enabled\".", - "smithy.api#jsonName": "mvOverPictureBoundaries" + "smithy.api#enumValue": "H264_LEVEL_4_1" } }, - "MvTemporalPredictor": { - "target": "com.amazonaws.medialive#H265MvTemporalPredictor", + "H264_LEVEL_4_2": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "If you are setting up the picture as a tile, you must set this to \"disabled\". In other configurations, you typically enter \"enabled\".", - "smithy.api#jsonName": "mvTemporalPredictor" + "smithy.api#enumValue": "H264_LEVEL_4_2" } }, - "TileHeight": { - "target": "com.amazonaws.medialive#__integerMin64Max2160", + "H264_LEVEL_5": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Set this field to set up the picture as a tile. You must also set tileWidth.\nThe tile height must result in 22 or fewer rows in the frame. The tile width\nmust result in 20 or fewer columns in the frame. And finally, the product of the\ncolumn count and row count must be 64 of less.\nIf the tile width and height are specified, MediaLive will override the video\ncodec slices field with a value that MediaLive calculates", - "smithy.api#jsonName": "tileHeight" + "smithy.api#enumValue": "H264_LEVEL_5" } }, - "TilePadding": { - "target": "com.amazonaws.medialive#H265TilePadding", + "H264_LEVEL_5_1": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Set to \"padded\" to force MediaLive to add padding to the frame, to obtain a frame that is a whole multiple of the tile size.\nIf you are setting up the picture as a tile, you must enter \"padded\".\nIn all other configurations, you typically enter \"none\".", - "smithy.api#jsonName": "tilePadding" + "smithy.api#enumValue": "H264_LEVEL_5_1" } }, - "TileWidth": { - "target": "com.amazonaws.medialive#__integerMin256Max3840", + "H264_LEVEL_5_2": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Set this field to set up the picture as a tile. See tileHeight for more information.", - "smithy.api#jsonName": "tileWidth" + "smithy.api#enumValue": "H264_LEVEL_5_2" } }, - "TreeblockSize": { - "target": "com.amazonaws.medialive#H265TreeblockSize", + "H264_LEVEL_AUTO": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Select the tree block size used for encoding. If you enter \"auto\", the encoder will pick the best size. If you are setting up the picture as a tile, you must set this to 32x32. In all other configurations, you typically enter \"auto\".", - "smithy.api#jsonName": "treeblockSize" + "smithy.api#enumValue": "H264_LEVEL_AUTO" } } }, "traits": { - "smithy.api#documentation": "H265 Settings" + "smithy.api#documentation": "H264 Level" } }, - "com.amazonaws.medialive#H265Tier": { + "com.amazonaws.medialive#H264LookAheadRateControl": { "type": "enum", "members": { "HIGH": { @@ -11376,756 +12788,542 @@ "smithy.api#enumValue": "HIGH" } }, - "MAIN": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "MAIN" - } - } - }, - "traits": { - "smithy.api#documentation": "H265 Tier" - } - }, - "com.amazonaws.medialive#H265TilePadding": { - "type": "enum", - "members": { - "NONE": { + "LOW": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#enumValue": "LOW" } }, - "PADDED": { + "MEDIUM": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PADDED" + "smithy.api#enumValue": "MEDIUM" } } }, "traits": { - "smithy.api#documentation": "H265 Tile Padding" + "smithy.api#documentation": "H264 Look Ahead Rate Control" } }, - "com.amazonaws.medialive#H265TimecodeInsertionBehavior": { + "com.amazonaws.medialive#H264ParControl": { "type": "enum", "members": { - "DISABLED": { + "INITIALIZE_FROM_SOURCE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "INITIALIZE_FROM_SOURCE" } }, - "PIC_TIMING_SEI": { + "SPECIFIED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PIC_TIMING_SEI" + "smithy.api#enumValue": "SPECIFIED" } } }, "traits": { - "smithy.api#documentation": "H265 Timecode Insertion Behavior" + "smithy.api#documentation": "H264 Par Control" } }, - "com.amazonaws.medialive#H265TreeblockSize": { + "com.amazonaws.medialive#H264Profile": { "type": "enum", "members": { - "AUTO": { + "BASELINE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "AUTO" + "smithy.api#enumValue": "BASELINE" } }, - "TREE_SIZE_32X32": { + "HIGH": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "TREE_SIZE_32X32" - } - } - }, - "traits": { - "smithy.api#documentation": "H265 Treeblock Size" - } - }, - "com.amazonaws.medialive#Hdr10Settings": { - "type": "structure", - "members": { - "MaxCll": { - "target": "com.amazonaws.medialive#__integerMin0Max32768", - "traits": { - "smithy.api#documentation": "Maximum Content Light Level\nAn integer metadata value defining the maximum light level, in nits,\nof any single pixel within an encoded HDR video stream or file.", - "smithy.api#jsonName": "maxCll" + "smithy.api#enumValue": "HIGH" } }, - "MaxFall": { - "target": "com.amazonaws.medialive#__integerMin0Max32768", + "HIGH_10BIT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Maximum Frame Average Light Level\nAn integer metadata value defining the maximum average light level, in nits,\nfor any single frame within an encoded HDR video stream or file.", - "smithy.api#jsonName": "maxFall" + "smithy.api#enumValue": "HIGH_10BIT" } - } - }, - "traits": { - "smithy.api#documentation": "Hdr10 Settings" - } - }, - "com.amazonaws.medialive#HlsAdMarkers": { - "type": "enum", - "members": { - "ADOBE": { + }, + "HIGH_422": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ADOBE" + "smithy.api#enumValue": "HIGH_422" } }, - "ELEMENTAL": { + "HIGH_422_10BIT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ELEMENTAL" + "smithy.api#enumValue": "HIGH_422_10BIT" } }, - "ELEMENTAL_SCTE35": { + "MAIN": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ELEMENTAL_SCTE35" + "smithy.api#enumValue": "MAIN" } } }, "traits": { - "smithy.api#documentation": "Hls Ad Markers" + "smithy.api#documentation": "H264 Profile" } }, - "com.amazonaws.medialive#HlsAkamaiHttpTransferMode": { + "com.amazonaws.medialive#H264QualityLevel": { "type": "enum", "members": { - "CHUNKED": { + "ENHANCED_QUALITY": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CHUNKED" + "smithy.api#enumValue": "ENHANCED_QUALITY" } }, - "NON_CHUNKED": { + "STANDARD_QUALITY": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NON_CHUNKED" + "smithy.api#enumValue": "STANDARD_QUALITY" } } }, "traits": { - "smithy.api#documentation": "Hls Akamai Http Transfer Mode" + "smithy.api#documentation": "H264 Quality Level" } }, - "com.amazonaws.medialive#HlsAkamaiSettings": { - "type": "structure", + "com.amazonaws.medialive#H264RateControlMode": { + "type": "enum", "members": { - "ConnectionRetryInterval": { - "target": "com.amazonaws.medialive#__integerMin0", - "traits": { - "smithy.api#documentation": "Number of seconds to wait before retrying connection to the CDN if the connection is lost.", - "smithy.api#jsonName": "connectionRetryInterval" - } - }, - "FilecacheDuration": { - "target": "com.amazonaws.medialive#__integerMin0Max600", - "traits": { - "smithy.api#documentation": "Size in seconds of file cache for streaming outputs.", - "smithy.api#jsonName": "filecacheDuration" - } - }, - "HttpTransferMode": { - "target": "com.amazonaws.medialive#HlsAkamaiHttpTransferMode", - "traits": { - "smithy.api#documentation": "Specify whether or not to use chunked transfer encoding to Akamai. User should contact Akamai to enable this feature.", - "smithy.api#jsonName": "httpTransferMode" - } - }, - "NumRetries": { - "target": "com.amazonaws.medialive#__integerMin0", + "CBR": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Number of retry attempts that will be made before the Live Event is put into an error state. Applies only if the CDN destination URI begins with \"s3\" or \"mediastore\". For other URIs, the value is always 3.", - "smithy.api#jsonName": "numRetries" + "smithy.api#enumValue": "CBR" } }, - "RestartDelay": { - "target": "com.amazonaws.medialive#__integerMin0Max15", + "MULTIPLEX": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart.", - "smithy.api#jsonName": "restartDelay" + "smithy.api#enumValue": "MULTIPLEX" } }, - "Salt": { - "target": "com.amazonaws.medialive#__string", + "QVBR": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Salt for authenticated Akamai.", - "smithy.api#jsonName": "salt" + "smithy.api#enumValue": "QVBR" } }, - "Token": { - "target": "com.amazonaws.medialive#__string", + "VBR": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Token parameter for authenticated akamai. If not specified, _gda_ is used.", - "smithy.api#jsonName": "token" + "smithy.api#enumValue": "VBR" } } }, "traits": { - "smithy.api#documentation": "Hls Akamai Settings" + "smithy.api#documentation": "H264 Rate Control Mode" } }, - "com.amazonaws.medialive#HlsBasicPutSettings": { - "type": "structure", + "com.amazonaws.medialive#H264ScanType": { + "type": "enum", "members": { - "ConnectionRetryInterval": { - "target": "com.amazonaws.medialive#__integerMin0", - "traits": { - "smithy.api#documentation": "Number of seconds to wait before retrying connection to the CDN if the connection is lost.", - "smithy.api#jsonName": "connectionRetryInterval" - } - }, - "FilecacheDuration": { - "target": "com.amazonaws.medialive#__integerMin0Max600", - "traits": { - "smithy.api#documentation": "Size in seconds of file cache for streaming outputs.", - "smithy.api#jsonName": "filecacheDuration" - } - }, - "NumRetries": { - "target": "com.amazonaws.medialive#__integerMin0", + "INTERLACED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Number of retry attempts that will be made before the Live Event is put into an error state. Applies only if the CDN destination URI begins with \"s3\" or \"mediastore\". For other URIs, the value is always 3.", - "smithy.api#jsonName": "numRetries" + "smithy.api#enumValue": "INTERLACED" } }, - "RestartDelay": { - "target": "com.amazonaws.medialive#__integerMin0Max15", + "PROGRESSIVE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart.", - "smithy.api#jsonName": "restartDelay" + "smithy.api#enumValue": "PROGRESSIVE" } } }, "traits": { - "smithy.api#documentation": "Hls Basic Put Settings" + "smithy.api#documentation": "H264 Scan Type" } }, - "com.amazonaws.medialive#HlsCaptionLanguageSetting": { + "com.amazonaws.medialive#H264SceneChangeDetect": { "type": "enum", "members": { - "INSERT": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "INSERT" - } - }, - "NONE": { + "DISABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#enumValue": "DISABLED" } }, - "OMIT": { + "ENABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "OMIT" + "smithy.api#enumValue": "ENABLED" } } }, "traits": { - "smithy.api#documentation": "Hls Caption Language Setting" + "smithy.api#documentation": "H264 Scene Change Detect" } }, - "com.amazonaws.medialive#HlsCdnSettings": { + "com.amazonaws.medialive#H264Settings": { "type": "structure", "members": { - "HlsAkamaiSettings": { - "target": "com.amazonaws.medialive#HlsAkamaiSettings", + "AdaptiveQuantization": { + "target": "com.amazonaws.medialive#H264AdaptiveQuantization", "traits": { - "smithy.api#jsonName": "hlsAkamaiSettings" + "smithy.api#documentation": "Enables or disables adaptive quantization, which is a technique MediaLive can apply to video on a frame-by-frame basis to produce more compression without losing quality. There are three types of adaptive quantization: flicker, spatial, and temporal. Set the field in one of these ways: Set to Auto. Recommended. For each type of AQ, MediaLive will determine if AQ is needed, and if so, the appropriate strength. Set a strength (a value other than Auto or Disable). This strength will apply to any of the AQ fields that you choose to enable. Set to Disabled to disable all types of adaptive quantization.", + "smithy.api#jsonName": "adaptiveQuantization" } }, - "HlsBasicPutSettings": { - "target": "com.amazonaws.medialive#HlsBasicPutSettings", + "AfdSignaling": { + "target": "com.amazonaws.medialive#AfdSignaling", "traits": { - "smithy.api#jsonName": "hlsBasicPutSettings" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "afdSignaling" } }, - "HlsMediaStoreSettings": { - "target": "com.amazonaws.medialive#HlsMediaStoreSettings", + "Bitrate": { + "target": "com.amazonaws.medialive#__integerMin1000", "traits": { - "smithy.api#jsonName": "hlsMediaStoreSettings" + "smithy.api#documentation": "Average bitrate in bits/second. Required when the rate control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique value when its bitrate is rounded down to the nearest multiple of 1000.", + "smithy.api#jsonName": "bitrate" } }, - "HlsS3Settings": { - "target": "com.amazonaws.medialive#HlsS3Settings", + "BufFillPct": { + "target": "com.amazonaws.medialive#__integerMin0Max100", "traits": { - "smithy.api#jsonName": "hlsS3Settings" + "smithy.api#documentation": "Percentage of the buffer that should initially be filled (HRD buffer model).", + "smithy.api#jsonName": "bufFillPct" } }, - "HlsWebdavSettings": { - "target": "com.amazonaws.medialive#HlsWebdavSettings", + "BufSize": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#jsonName": "hlsWebdavSettings" - } - } - }, - "traits": { - "smithy.api#documentation": "Hls Cdn Settings" - } - }, - "com.amazonaws.medialive#HlsClientCache": { - "type": "enum", - "members": { - "DISABLED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#documentation": "Size of buffer (HRD buffer model) in bits.", + "smithy.api#jsonName": "bufSize" } }, - "ENABLED": { - "target": "smithy.api#Unit", + "ColorMetadata": { + "target": "com.amazonaws.medialive#H264ColorMetadata", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#documentation": "Includes colorspace metadata in the output.", + "smithy.api#jsonName": "colorMetadata" } - } - }, - "traits": { - "smithy.api#documentation": "Hls Client Cache" - } - }, - "com.amazonaws.medialive#HlsCodecSpecification": { - "type": "enum", - "members": { - "RFC_4281": { - "target": "smithy.api#Unit", + }, + "ColorSpaceSettings": { + "target": "com.amazonaws.medialive#H264ColorSpaceSettings", "traits": { - "smithy.api#enumValue": "RFC_4281" + "smithy.api#documentation": "Color Space settings", + "smithy.api#jsonName": "colorSpaceSettings" } }, - "RFC_6381": { - "target": "smithy.api#Unit", + "EntropyEncoding": { + "target": "com.amazonaws.medialive#H264EntropyEncoding", "traits": { - "smithy.api#enumValue": "RFC_6381" + "smithy.api#documentation": "Entropy encoding mode. Use cabac (must be in Main or High profile) or cavlc.", + "smithy.api#jsonName": "entropyEncoding" } - } - }, - "traits": { - "smithy.api#documentation": "Hls Codec Specification" - } - }, - "com.amazonaws.medialive#HlsDirectoryStructure": { - "type": "enum", - "members": { - "SINGLE_DIRECTORY": { - "target": "smithy.api#Unit", + }, + "FilterSettings": { + "target": "com.amazonaws.medialive#H264FilterSettings", "traits": { - "smithy.api#enumValue": "SINGLE_DIRECTORY" + "smithy.api#documentation": "Optional filters that you can apply to an encode.", + "smithy.api#jsonName": "filterSettings" } }, - "SUBDIRECTORY_PER_STREAM": { - "target": "smithy.api#Unit", + "FixedAfd": { + "target": "com.amazonaws.medialive#FixedAfd", "traits": { - "smithy.api#enumValue": "SUBDIRECTORY_PER_STREAM" + "smithy.api#documentation": "Four bit AFD value to write on all frames of video in the output stream. Only valid when afdSignaling is set to 'Fixed'.", + "smithy.api#jsonName": "fixedAfd" } - } - }, - "traits": { - "smithy.api#documentation": "Hls Directory Structure" - } - }, - "com.amazonaws.medialive#HlsDiscontinuityTags": { - "type": "enum", - "members": { - "INSERT": { - "target": "smithy.api#Unit", + }, + "FlickerAq": { + "target": "com.amazonaws.medialive#H264FlickerAq", "traits": { - "smithy.api#enumValue": "INSERT" + "smithy.api#documentation": "Flicker AQ makes adjustments within each frame to reduce flicker or 'pop' on I-frames. The value to enter in this field depends on the value in the Adaptive quantization field: If you have set the Adaptive quantization field to Auto, MediaLive ignores any value in this field. MediaLive will determine if flicker AQ is appropriate and will apply the appropriate strength. If you have set the Adaptive quantization field to a strength, you can set this field to Enabled or Disabled. Enabled: MediaLive will apply flicker AQ using the specified strength. Disabled: MediaLive won't apply flicker AQ. If you have set the Adaptive quantization to Disabled, MediaLive ignores any value in this field and doesn't apply flicker AQ.", + "smithy.api#jsonName": "flickerAq" } }, - "NEVER_INSERT": { - "target": "smithy.api#Unit", + "ForceFieldPictures": { + "target": "com.amazonaws.medialive#H264ForceFieldPictures", "traits": { - "smithy.api#enumValue": "NEVER_INSERT" + "smithy.api#documentation": "This setting applies only when scan type is \"interlaced.\" It controls whether coding is performed on a field basis or on a frame basis. (When the video is progressive, the coding is always performed on a frame basis.)\nenabled: Force MediaLive to code on a field basis, so that odd and even sets of fields are coded separately.\ndisabled: Code the two sets of fields separately (on a field basis) or together (on a frame basis using PAFF), depending on what is most appropriate for the content.", + "smithy.api#jsonName": "forceFieldPictures" } - } - }, - "traits": { - "smithy.api#documentation": "Hls Discontinuity Tags" - } - }, - "com.amazonaws.medialive#HlsEncryptionType": { - "type": "enum", - "members": { - "AES128": { - "target": "smithy.api#Unit", + }, + "FramerateControl": { + "target": "com.amazonaws.medialive#H264FramerateControl", "traits": { - "smithy.api#enumValue": "AES128" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "framerateControl" } }, - "SAMPLE_AES": { - "target": "smithy.api#Unit", + "FramerateDenominator": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#enumValue": "SAMPLE_AES" + "smithy.api#documentation": "Framerate denominator.", + "smithy.api#jsonName": "framerateDenominator" } - } - }, - "traits": { - "smithy.api#documentation": "Hls Encryption Type" - } - }, - "com.amazonaws.medialive#HlsGroupSettings": { - "type": "structure", - "members": { - "AdMarkers": { - "target": "com.amazonaws.medialive#__listOfHlsAdMarkers", + }, + "FramerateNumerator": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#documentation": "Choose one or more ad marker types to pass SCTE35 signals through to this group of Apple HLS outputs.", - "smithy.api#jsonName": "adMarkers" + "smithy.api#documentation": "Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps.", + "smithy.api#jsonName": "framerateNumerator" } }, - "BaseUrlContent": { - "target": "com.amazonaws.medialive#__string", + "GopBReference": { + "target": "com.amazonaws.medialive#H264GopBReference", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "baseUrlContent" + "smithy.api#documentation": "Documentation update needed", + "smithy.api#jsonName": "gopBReference" } }, - "BaseUrlContent1": { - "target": "com.amazonaws.medialive#__string", + "GopClosedCadence": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#documentation": "Optional. One value per output group.\n\nThis field is required only if you are completing Base URL content A, and the downstream system has notified you that the media files for pipeline 1 of all outputs are in a location different from the media files for pipeline 0.", - "smithy.api#jsonName": "baseUrlContent1" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "gopClosedCadence" } }, - "BaseUrlManifest": { - "target": "com.amazonaws.medialive#__string", + "GopNumBFrames": { + "target": "com.amazonaws.medialive#__integerMin0Max7", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "baseUrlManifest" + "smithy.api#documentation": "Number of B-frames between reference frames.", + "smithy.api#jsonName": "gopNumBFrames" } }, - "BaseUrlManifest1": { - "target": "com.amazonaws.medialive#__string", + "GopSize": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#documentation": "Optional. One value per output group.\n\nComplete this field only if you are completing Base URL manifest A, and the downstream system has notified you that the child manifest files for pipeline 1 of all outputs are in a location different from the child manifest files for pipeline 0.", - "smithy.api#jsonName": "baseUrlManifest1" + "smithy.api#documentation": "GOP size (keyframe interval) in units of either frames or seconds per gopSizeUnits.\nIf gopSizeUnits is frames, gopSize must be an integer and must be greater than or equal to 1.\nIf gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an integer.", + "smithy.api#jsonName": "gopSize" } }, - "CaptionLanguageMappings": { - "target": "com.amazonaws.medialive#__listOfCaptionLanguageMapping", + "GopSizeUnits": { + "target": "com.amazonaws.medialive#H264GopSizeUnits", "traits": { - "smithy.api#documentation": "Mapping of up to 4 caption channels to caption languages. Is only meaningful if captionLanguageSetting is set to \"insert\".", - "smithy.api#jsonName": "captionLanguageMappings" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "gopSizeUnits" } }, - "CaptionLanguageSetting": { - "target": "com.amazonaws.medialive#HlsCaptionLanguageSetting", + "Level": { + "target": "com.amazonaws.medialive#H264Level", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "captionLanguageSetting" + "smithy.api#documentation": "H.264 Level.", + "smithy.api#jsonName": "level" } }, - "ClientCache": { - "target": "com.amazonaws.medialive#HlsClientCache", + "LookAheadRateControl": { + "target": "com.amazonaws.medialive#H264LookAheadRateControl", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "clientCache" + "smithy.api#documentation": "Amount of lookahead. A value of low can decrease latency and memory usage, while high can produce better quality for certain content.", + "smithy.api#jsonName": "lookAheadRateControl" } }, - "CodecSpecification": { - "target": "com.amazonaws.medialive#HlsCodecSpecification", + "MaxBitrate": { + "target": "com.amazonaws.medialive#__integerMin1000", "traits": { - "smithy.api#documentation": "Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist generation.", - "smithy.api#jsonName": "codecSpecification" + "smithy.api#documentation": "For QVBR: See the tooltip for Quality level\n\nFor VBR: Set the maximum bitrate in order to accommodate expected spikes in the complexity of the video.", + "smithy.api#jsonName": "maxBitrate" } }, - "ConstantIv": { - "target": "com.amazonaws.medialive#__stringMin32Max32", + "MinIInterval": { + "target": "com.amazonaws.medialive#__integerMin0Max30", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "constantIv" + "smithy.api#documentation": "Only meaningful if sceneChangeDetect is set to enabled. Defaults to 5 if multiplex rate control is used. 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", + "smithy.api#jsonName": "minIInterval" } }, - "Destination": { - "target": "com.amazonaws.medialive#OutputLocationRef", + "NumRefFrames": { + "target": "com.amazonaws.medialive#__integerMin1Max6", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "A directory or HTTP destination for the HLS segments, manifest files, and encryption keys (if enabled).", - "smithy.api#jsonName": "destination", - "smithy.api#required": {} + "smithy.api#documentation": "Number of reference frames to use. The encoder may use more than requested if using B-frames and/or interlaced encoding.", + "smithy.api#jsonName": "numRefFrames" } }, - "DirectoryStructure": { - "target": "com.amazonaws.medialive#HlsDirectoryStructure", + "ParControl": { + "target": "com.amazonaws.medialive#H264ParControl", "traits": { - "smithy.api#documentation": "Place segments in subdirectories.", - "smithy.api#jsonName": "directoryStructure" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "parControl" } }, - "DiscontinuityTags": { - "target": "com.amazonaws.medialive#HlsDiscontinuityTags", + "ParDenominator": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#documentation": "Specifies whether to insert EXT-X-DISCONTINUITY tags in the HLS child manifests for this output group.\nTypically, choose Insert because these tags are required in the manifest (according to the HLS specification) and serve an important purpose.\nChoose Never Insert only if the downstream system is doing real-time failover (without using the MediaLive automatic failover feature) and only if that downstream system has advised you to exclude the tags.", - "smithy.api#jsonName": "discontinuityTags" + "smithy.api#documentation": "Pixel Aspect Ratio denominator.", + "smithy.api#jsonName": "parDenominator" } }, - "EncryptionType": { - "target": "com.amazonaws.medialive#HlsEncryptionType", + "ParNumerator": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#documentation": "Encrypts the segments with the given encryption scheme. Exclude this parameter if no encryption is desired.", - "smithy.api#jsonName": "encryptionType" + "smithy.api#documentation": "Pixel Aspect Ratio numerator.", + "smithy.api#jsonName": "parNumerator" } }, - "HlsCdnSettings": { - "target": "com.amazonaws.medialive#HlsCdnSettings", + "Profile": { + "target": "com.amazonaws.medialive#H264Profile", "traits": { - "smithy.api#documentation": "Parameters that control interactions with the CDN.", - "smithy.api#jsonName": "hlsCdnSettings" + "smithy.api#documentation": "H.264 Profile.", + "smithy.api#jsonName": "profile" } }, - "HlsId3SegmentTagging": { - "target": "com.amazonaws.medialive#HlsId3SegmentTaggingState", + "QualityLevel": { + "target": "com.amazonaws.medialive#H264QualityLevel", "traits": { - "smithy.api#documentation": "State of HLS ID3 Segment Tagging", - "smithy.api#jsonName": "hlsId3SegmentTagging" + "smithy.api#documentation": "Leave as STANDARD_QUALITY or choose a different value (which might result in additional costs to run the channel).\n- ENHANCED_QUALITY: Produces a slightly better video quality without an increase in the bitrate. Has an effect only when the Rate control mode is QVBR or CBR. If this channel is in a MediaLive multiplex, the value must be ENHANCED_QUALITY.\n- STANDARD_QUALITY: Valid for any Rate control mode.", + "smithy.api#jsonName": "qualityLevel" } }, - "IFrameOnlyPlaylists": { - "target": "com.amazonaws.medialive#IFrameOnlyPlaylistType", + "QvbrQualityLevel": { + "target": "com.amazonaws.medialive#__integerMin1Max10", "traits": { - "smithy.api#documentation": "DISABLED: Do not create an I-frame-only manifest, but do create the master and media manifests (according to the Output Selection field).\n\nSTANDARD: Create an I-frame-only manifest for each output that contains video, as well as the other manifests (according to the Output Selection field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888\"", - "smithy.api#jsonName": "iFrameOnlyPlaylists" + "smithy.api#documentation": "Controls the target quality for the video encode. Applies only when the rate control mode is QVBR. You can set a target quality or you can let MediaLive determine the best quality. To set a target quality, enter values in the QVBR quality level field and the Max bitrate field. Enter values that suit your most important viewing devices. Recommended values are:\n- Primary screen: Quality level: 8 to 10. Max bitrate: 4M\n- PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M\n- Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M\nTo let MediaLive decide, leave the QVBR quality level field empty, and in Max bitrate enter the maximum rate you want in the video. For more information, see the section called \"Video - rate control mode\" in the MediaLive user guide", + "smithy.api#jsonName": "qvbrQualityLevel" } }, - "IncompleteSegmentBehavior": { - "target": "com.amazonaws.medialive#HlsIncompleteSegmentBehavior", - "traits": { - "smithy.api#documentation": "Specifies whether to include the final (incomplete) segment in the media output when the pipeline stops producing output because of a channel stop, a channel pause or a loss of input to the pipeline.\nAuto means that MediaLive decides whether to include the final segment, depending on the channel class and the types of output groups.\nSuppress means to never include the incomplete segment. We recommend you choose Auto and let MediaLive control the behavior.", - "smithy.api#jsonName": "incompleteSegmentBehavior" - } - }, - "IndexNSegments": { - "target": "com.amazonaws.medialive#__integerMin3", - "traits": { - "smithy.api#documentation": "Applies only if Mode field is LIVE.\n\nSpecifies the maximum number of segments in the media manifest file. After this maximum, older segments are removed from the media manifest. This number must be smaller than the number in the Keep Segments field.", - "smithy.api#jsonName": "indexNSegments" - } - }, - "InputLossAction": { - "target": "com.amazonaws.medialive#InputLossActionForHlsOut", - "traits": { - "smithy.api#documentation": "Parameter that control output group behavior on input loss.", - "smithy.api#jsonName": "inputLossAction" - } - }, - "IvInManifest": { - "target": "com.amazonaws.medialive#HlsIvInManifest", - "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "ivInManifest" - } - }, - "IvSource": { - "target": "com.amazonaws.medialive#HlsIvSource", - "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "ivSource" - } - }, - "KeepSegments": { - "target": "com.amazonaws.medialive#__integerMin1", - "traits": { - "smithy.api#documentation": "Applies only if Mode field is LIVE.\n\nSpecifies the number of media segments to retain in the destination directory. This number should be bigger than indexNSegments (Num segments). We recommend (value = (2 x indexNsegments) + 1).\n\nIf this \"keep segments\" number is too low, the following might happen: the player is still reading a media manifest file that lists this segment, but that segment has been removed from the destination directory (as directed by indexNSegments). This situation would result in a 404 HTTP error on the player.", - "smithy.api#jsonName": "keepSegments" - } - }, - "KeyFormat": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "keyFormat" - } - }, - "KeyFormatVersions": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Either a single positive integer version value or a slash delimited list of version values (1/2/3).", - "smithy.api#jsonName": "keyFormatVersions" - } - }, - "KeyProviderSettings": { - "target": "com.amazonaws.medialive#KeyProviderSettings", - "traits": { - "smithy.api#documentation": "The key provider settings.", - "smithy.api#jsonName": "keyProviderSettings" - } - }, - "ManifestCompression": { - "target": "com.amazonaws.medialive#HlsManifestCompression", - "traits": { - "smithy.api#documentation": "When set to gzip, compresses HLS playlist.", - "smithy.api#jsonName": "manifestCompression" - } - }, - "ManifestDurationFormat": { - "target": "com.amazonaws.medialive#HlsManifestDurationFormat", - "traits": { - "smithy.api#documentation": "Indicates whether the output manifest should use floating point or integer values for segment duration.", - "smithy.api#jsonName": "manifestDurationFormat" - } - }, - "MinSegmentLength": { - "target": "com.amazonaws.medialive#__integerMin0", - "traits": { - "smithy.api#documentation": "Minimum length of MPEG-2 Transport Stream segments in seconds. When set, minimum segment length is enforced by looking ahead and back within the specified range for a nearby avail and extending the segment size if needed.", - "smithy.api#jsonName": "minSegmentLength" - } - }, - "Mode": { - "target": "com.amazonaws.medialive#HlsMode", - "traits": { - "smithy.api#documentation": "If \"vod\", all segments are indexed and kept permanently in the destination and manifest. If \"live\", only the number segments specified in keepSegments and indexNSegments are kept; newer segments replace older segments, which may prevent players from rewinding all the way to the beginning of the event.\n\nVOD mode uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a \"VOD\" type manifest on completion of the stream.", - "smithy.api#jsonName": "mode" - } - }, - "OutputSelection": { - "target": "com.amazonaws.medialive#HlsOutputSelection", + "RateControlMode": { + "target": "com.amazonaws.medialive#H264RateControlMode", "traits": { - "smithy.api#documentation": "MANIFESTS_AND_SEGMENTS: Generates manifests (master manifest, if applicable, and media manifests) for this output group.\n\nVARIANT_MANIFESTS_AND_SEGMENTS: Generates media manifests for this output group, but not a master manifest.\n\nSEGMENTS_ONLY: Does not generate any manifests for this output group.", - "smithy.api#jsonName": "outputSelection" + "smithy.api#documentation": "Rate control mode.\n\nQVBR: Quality will match the specified quality level except when it is constrained by the\nmaximum bitrate. Recommended if you or your viewers pay for bandwidth.\n\nVBR: Quality and bitrate vary, depending on the video complexity. Recommended instead of QVBR\nif you want to maintain a specific average bitrate over the duration of the channel.\n\nCBR: Quality varies, depending on the video complexity. Recommended only if you distribute\nyour assets to devices that cannot handle variable bitrates.\n\nMultiplex: This rate control mode is only supported (and is required) when the video is being\ndelivered to a MediaLive Multiplex in which case the rate control configuration is controlled\nby the properties within the Multiplex Program.", + "smithy.api#jsonName": "rateControlMode" } }, - "ProgramDateTime": { - "target": "com.amazonaws.medialive#HlsProgramDateTime", + "ScanType": { + "target": "com.amazonaws.medialive#H264ScanType", "traits": { - "smithy.api#documentation": "Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The value is calculated using the program date time clock.", - "smithy.api#jsonName": "programDateTime" + "smithy.api#documentation": "Sets the scan type of the output to progressive or top-field-first interlaced.", + "smithy.api#jsonName": "scanType" } }, - "ProgramDateTimeClock": { - "target": "com.amazonaws.medialive#HlsProgramDateTimeClock", + "SceneChangeDetect": { + "target": "com.amazonaws.medialive#H264SceneChangeDetect", "traits": { - "smithy.api#documentation": "Specifies the algorithm used to drive the HLS EXT-X-PROGRAM-DATE-TIME clock. Options include:\n\nINITIALIZE_FROM_OUTPUT_TIMECODE: The PDT clock is initialized as a function of the first output timecode, then incremented by the EXTINF duration of each encoded segment.\n\nSYSTEM_CLOCK: The PDT clock is initialized as a function of the UTC wall clock, then incremented by the EXTINF duration of each encoded segment. If the PDT clock diverges from the wall clock by more than 500ms, it is resynchronized to the wall clock.", - "smithy.api#jsonName": "programDateTimeClock" + "smithy.api#documentation": "Scene change detection.\n\n- On: inserts I-frames when scene change is detected.\n- Off: does not force an I-frame when scene change is detected.", + "smithy.api#jsonName": "sceneChangeDetect" } }, - "ProgramDateTimePeriod": { - "target": "com.amazonaws.medialive#__integerMin0Max3600", + "Slices": { + "target": "com.amazonaws.medialive#__integerMin1Max32", "traits": { - "smithy.api#documentation": "Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.", - "smithy.api#jsonName": "programDateTimePeriod" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "slices" } }, - "RedundantManifest": { - "target": "com.amazonaws.medialive#HlsRedundantManifest", + "Softness": { + "target": "com.amazonaws.medialive#__integerMin0Max128", "traits": { - "smithy.api#documentation": "ENABLED: The master manifest (.m3u8 file) for each pipeline includes information about both pipelines: first its own media files, then the media files of the other pipeline. This feature allows playout device that support stale manifest detection to switch from one manifest to the other, when the current manifest seems to be stale. There are still two destinations and two master manifests, but both master manifests reference the media files from both pipelines.\n\nDISABLED: The master manifest (.m3u8 file) for each pipeline includes information about its own pipeline only.\n\nFor an HLS output group with MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage regenerates the manifests it serves to players so a redundant manifest from MediaLive is irrelevant.", - "smithy.api#jsonName": "redundantManifest" + "smithy.api#documentation": "Softness. Selects quantizer matrix, larger values reduce high-frequency content in the encoded image. If not set to zero, must be greater than 15.", + "smithy.api#jsonName": "softness" } }, - "SegmentLength": { - "target": "com.amazonaws.medialive#__integerMin1", + "SpatialAq": { + "target": "com.amazonaws.medialive#H264SpatialAq", "traits": { - "smithy.api#documentation": "Length of MPEG-2 Transport Stream segments to create in seconds. Note that segments will end on the next keyframe after this duration, so actual segment length may be longer.", - "smithy.api#jsonName": "segmentLength" + "smithy.api#documentation": "Spatial AQ makes adjustments within each frame based on spatial variation of content complexity. The value to enter in this field depends on the value in the Adaptive quantization field: If you have set the Adaptive quantization field to Auto, MediaLive ignores any value in this field. MediaLive will determine if spatial AQ is appropriate and will apply the appropriate strength. If you have set the Adaptive quantization field to a strength, you can set this field to Enabled or Disabled. Enabled: MediaLive will apply spatial AQ using the specified strength. Disabled: MediaLive won't apply spatial AQ. If you have set the Adaptive quantization to Disabled, MediaLive ignores any value in this field and doesn't apply spatial AQ.", + "smithy.api#jsonName": "spatialAq" } }, - "SegmentationMode": { - "target": "com.amazonaws.medialive#HlsSegmentationMode", + "SubgopLength": { + "target": "com.amazonaws.medialive#H264SubGopLength", "traits": { - "smithy.api#documentation": "useInputSegmentation has been deprecated. The configured segment size is always used.", - "smithy.api#jsonName": "segmentationMode" + "smithy.api#documentation": "If set to fixed, use gopNumBFrames B-frames per sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual quality.", + "smithy.api#jsonName": "subgopLength" } }, - "SegmentsPerSubdirectory": { - "target": "com.amazonaws.medialive#__integerMin1", + "Syntax": { + "target": "com.amazonaws.medialive#H264Syntax", "traits": { - "smithy.api#documentation": "Number of segments to write to a subdirectory before starting a new one. directoryStructure must be subdirectoryPerStream for this setting to have an effect.", - "smithy.api#jsonName": "segmentsPerSubdirectory" + "smithy.api#documentation": "Produces a bitstream compliant with SMPTE RP-2027.", + "smithy.api#jsonName": "syntax" } }, - "StreamInfResolution": { - "target": "com.amazonaws.medialive#HlsStreamInfResolution", + "TemporalAq": { + "target": "com.amazonaws.medialive#H264TemporalAq", "traits": { - "smithy.api#documentation": "Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of variant manifest.", - "smithy.api#jsonName": "streamInfResolution" + "smithy.api#documentation": "Temporal makes adjustments within each frame based on temporal variation of content complexity. The value to enter in this field depends on the value in the Adaptive quantization field: If you have set the Adaptive quantization field to Auto, MediaLive ignores any value in this field. MediaLive will determine if temporal AQ is appropriate and will apply the appropriate strength. If you have set the Adaptive quantization field to a strength, you can set this field to Enabled or Disabled. Enabled: MediaLive will apply temporal AQ using the specified strength. Disabled: MediaLive won't apply temporal AQ. If you have set the Adaptive quantization to Disabled, MediaLive ignores any value in this field and doesn't apply temporal AQ.", + "smithy.api#jsonName": "temporalAq" } }, - "TimedMetadataId3Frame": { - "target": "com.amazonaws.medialive#HlsTimedMetadataId3Frame", + "TimecodeInsertion": { + "target": "com.amazonaws.medialive#H264TimecodeInsertionBehavior", "traits": { - "smithy.api#documentation": "Indicates ID3 frame that has the timecode.", - "smithy.api#jsonName": "timedMetadataId3Frame" + "smithy.api#documentation": "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", + "smithy.api#jsonName": "timecodeInsertion" } }, - "TimedMetadataId3Period": { - "target": "com.amazonaws.medialive#__integerMin0", + "TimecodeBurninSettings": { + "target": "com.amazonaws.medialive#TimecodeBurninSettings", "traits": { - "smithy.api#documentation": "Timed Metadata interval in seconds.", - "smithy.api#jsonName": "timedMetadataId3Period" + "smithy.api#documentation": "Timecode burn-in settings", + "smithy.api#jsonName": "timecodeBurninSettings" } - }, - "TimestampDeltaMilliseconds": { - "target": "com.amazonaws.medialive#__integerMin0", + } + }, + "traits": { + "smithy.api#documentation": "H264 Settings" + } + }, + "com.amazonaws.medialive#H264SpatialAq": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Provides an extra millisecond delta offset to fine tune the timestamps.", - "smithy.api#jsonName": "timestampDeltaMilliseconds" + "smithy.api#enumValue": "DISABLED" } }, - "TsFileMode": { - "target": "com.amazonaws.medialive#HlsTsFileMode", + "ENABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "SEGMENTED_FILES: Emit the program as segments - multiple .ts media files.\n\nSINGLE_FILE: Applies only if Mode field is VOD. Emit the program as a single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback. A typical use for this value is when sending the output to AWS Elemental MediaConvert, which can accept only a single media file. Playback while the channel is running is not guaranteed due to HTTP server caching.", - "smithy.api#jsonName": "tsFileMode" + "smithy.api#enumValue": "ENABLED" } } }, "traits": { - "smithy.api#documentation": "Hls Group Settings" + "smithy.api#documentation": "H264 Spatial Aq" } }, - "com.amazonaws.medialive#HlsH265PackagingType": { + "com.amazonaws.medialive#H264SubGopLength": { "type": "enum", "members": { - "HEV1": { + "DYNAMIC": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "HEV1" + "smithy.api#enumValue": "DYNAMIC" } }, - "HVC1": { + "FIXED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "HVC1" + "smithy.api#enumValue": "FIXED" } } }, "traits": { - "smithy.api#documentation": "Hls H265 Packaging Type" + "smithy.api#documentation": "H264 Sub Gop Length" } }, - "com.amazonaws.medialive#HlsId3SegmentTaggingScheduleActionSettings": { - "type": "structure", + "com.amazonaws.medialive#H264Syntax": { + "type": "enum", "members": { - "Tag": { - "target": "com.amazonaws.medialive#__string", + "DEFAULT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "ID3 tag to insert into each segment. Supports special keyword identifiers to substitute in segment-related values.\\nSupported keyword identifiers: https://docs.aws.amazon.com/medialive/latest/ug/variable-data-identifiers.html", - "smithy.api#jsonName": "tag" + "smithy.api#enumValue": "DEFAULT" } }, - "Id3": { - "target": "com.amazonaws.medialive#__string", + "RP2027": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Base64 string formatted according to the ID3 specification: http://id3.org/id3v2.4.0-structure", - "smithy.api#jsonName": "id3" + "smithy.api#enumValue": "RP2027" } } }, "traits": { - "smithy.api#documentation": "Settings for the action to insert a user-defined ID3 tag in each HLS segment" + "smithy.api#documentation": "H264 Syntax" } }, - "com.amazonaws.medialive#HlsId3SegmentTaggingState": { + "com.amazonaws.medialive#H264TemporalAq": { "type": "enum", "members": { "DISABLED": { @@ -12142,924 +13340,760 @@ } }, "traits": { - "smithy.api#documentation": "State of HLS ID3 Segment Tagging" + "smithy.api#documentation": "H264 Temporal Aq" } }, - "com.amazonaws.medialive#HlsIncompleteSegmentBehavior": { + "com.amazonaws.medialive#H264TimecodeInsertionBehavior": { "type": "enum", "members": { - "AUTO": { + "DISABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "AUTO" + "smithy.api#enumValue": "DISABLED" } }, - "SUPPRESS": { + "PIC_TIMING_SEI": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SUPPRESS" + "smithy.api#enumValue": "PIC_TIMING_SEI" } } }, "traits": { - "smithy.api#documentation": "Hls Incomplete Segment Behavior" + "smithy.api#documentation": "H264 Timecode Insertion Behavior" } }, - "com.amazonaws.medialive#HlsInputSettings": { - "type": "structure", - "members": { - "Bandwidth": { - "target": "com.amazonaws.medialive#__integerMin0", - "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "bandwidth" - } - }, - "BufferSegments": { - "target": "com.amazonaws.medialive#__integerMin0", + "com.amazonaws.medialive#H265AdaptiveQuantization": { + "type": "enum", + "members": { + "AUTO": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "bufferSegments" + "smithy.api#enumValue": "AUTO" } }, - "Retries": { - "target": "com.amazonaws.medialive#__integerMin0", + "HIGH": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The number of consecutive times that attempts to read a manifest or segment must fail before the input is considered unavailable.", - "smithy.api#jsonName": "retries" + "smithy.api#enumValue": "HIGH" } }, - "RetryInterval": { - "target": "com.amazonaws.medialive#__integerMin0", + "HIGHER": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The number of seconds between retries when an attempt to read a manifest or segment fails.", - "smithy.api#jsonName": "retryInterval" + "smithy.api#enumValue": "HIGHER" } }, - "Scte35Source": { - "target": "com.amazonaws.medialive#HlsScte35SourceType", - "traits": { - "smithy.api#documentation": "Identifies the source for the SCTE-35 messages that MediaLive will ingest. Messages can be ingested from the content segments (in the stream) or from tags in the playlist (the HLS manifest). MediaLive ignores SCTE-35 information in the source that is not selected.", - "smithy.api#jsonName": "scte35Source" - } - } - }, - "traits": { - "smithy.api#documentation": "Hls Input Settings" - } - }, - "com.amazonaws.medialive#HlsIvInManifest": { - "type": "enum", - "members": { - "EXCLUDE": { + "LOW": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EXCLUDE" + "smithy.api#enumValue": "LOW" } }, - "INCLUDE": { + "MAX": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "INCLUDE" + "smithy.api#enumValue": "MAX" } - } - }, - "traits": { - "smithy.api#documentation": "Hls Iv In Manifest" - } - }, - "com.amazonaws.medialive#HlsIvSource": { - "type": "enum", - "members": { - "EXPLICIT": { + }, + "MEDIUM": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EXPLICIT" + "smithy.api#enumValue": "MEDIUM" } }, - "FOLLOWS_SEGMENT_NUMBER": { + "OFF": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FOLLOWS_SEGMENT_NUMBER" + "smithy.api#enumValue": "OFF" } } }, "traits": { - "smithy.api#documentation": "Hls Iv Source" + "smithy.api#documentation": "H265 Adaptive Quantization" } }, - "com.amazonaws.medialive#HlsManifestCompression": { + "com.amazonaws.medialive#H265AlternativeTransferFunction": { "type": "enum", "members": { - "GZIP": { + "INSERT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "GZIP" + "smithy.api#enumValue": "INSERT" } }, - "NONE": { + "OMIT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#enumValue": "OMIT" } } }, "traits": { - "smithy.api#documentation": "Hls Manifest Compression" + "smithy.api#documentation": "H265 Alternative Transfer Function" } }, - "com.amazonaws.medialive#HlsManifestDurationFormat": { + "com.amazonaws.medialive#H265ColorMetadata": { "type": "enum", "members": { - "FLOATING_POINT": { + "IGNORE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FLOATING_POINT" + "smithy.api#enumValue": "IGNORE" } }, - "INTEGER": { + "INSERT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "INTEGER" + "smithy.api#enumValue": "INSERT" } } }, "traits": { - "smithy.api#documentation": "Hls Manifest Duration Format" + "smithy.api#documentation": "H265 Color Metadata" } }, - "com.amazonaws.medialive#HlsMediaStoreSettings": { + "com.amazonaws.medialive#H265ColorSpaceSettings": { "type": "structure", "members": { - "ConnectionRetryInterval": { - "target": "com.amazonaws.medialive#__integerMin0", + "ColorSpacePassthroughSettings": { + "target": "com.amazonaws.medialive#ColorSpacePassthroughSettings", "traits": { - "smithy.api#documentation": "Number of seconds to wait before retrying connection to the CDN if the connection is lost.", - "smithy.api#jsonName": "connectionRetryInterval" + "smithy.api#jsonName": "colorSpacePassthroughSettings" } }, - "FilecacheDuration": { - "target": "com.amazonaws.medialive#__integerMin0Max600", + "DolbyVision81Settings": { + "target": "com.amazonaws.medialive#DolbyVision81Settings", "traits": { - "smithy.api#documentation": "Size in seconds of file cache for streaming outputs.", - "smithy.api#jsonName": "filecacheDuration" + "smithy.api#jsonName": "dolbyVision81Settings" } }, - "MediaStoreStorageClass": { - "target": "com.amazonaws.medialive#HlsMediaStoreStorageClass", + "Hdr10Settings": { + "target": "com.amazonaws.medialive#Hdr10Settings", "traits": { - "smithy.api#documentation": "When set to temporal, output files are stored in non-persistent memory for faster reading and writing.", - "smithy.api#jsonName": "mediaStoreStorageClass" + "smithy.api#jsonName": "hdr10Settings" } }, - "NumRetries": { - "target": "com.amazonaws.medialive#__integerMin0", + "Rec601Settings": { + "target": "com.amazonaws.medialive#Rec601Settings", "traits": { - "smithy.api#documentation": "Number of retry attempts that will be made before the Live Event is put into an error state. Applies only if the CDN destination URI begins with \"s3\" or \"mediastore\". For other URIs, the value is always 3.", - "smithy.api#jsonName": "numRetries" + "smithy.api#jsonName": "rec601Settings" } }, - "RestartDelay": { - "target": "com.amazonaws.medialive#__integerMin0Max15", + "Rec709Settings": { + "target": "com.amazonaws.medialive#Rec709Settings", "traits": { - "smithy.api#documentation": "If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart.", - "smithy.api#jsonName": "restartDelay" + "smithy.api#jsonName": "rec709Settings" } } }, "traits": { - "smithy.api#documentation": "Hls Media Store Settings" + "smithy.api#documentation": "H265 Color Space Settings" } }, - "com.amazonaws.medialive#HlsMediaStoreStorageClass": { - "type": "enum", + "com.amazonaws.medialive#H265FilterSettings": { + "type": "structure", "members": { - "TEMPORAL": { - "target": "smithy.api#Unit", + "TemporalFilterSettings": { + "target": "com.amazonaws.medialive#TemporalFilterSettings", "traits": { - "smithy.api#enumValue": "TEMPORAL" + "smithy.api#jsonName": "temporalFilterSettings" } } }, "traits": { - "smithy.api#documentation": "Hls Media Store Storage Class" + "smithy.api#documentation": "H265 Filter Settings" } }, - "com.amazonaws.medialive#HlsMode": { + "com.amazonaws.medialive#H265FlickerAq": { "type": "enum", "members": { - "LIVE": { + "DISABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "LIVE" + "smithy.api#enumValue": "DISABLED" } }, - "VOD": { + "ENABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "VOD" + "smithy.api#enumValue": "ENABLED" } } }, "traits": { - "smithy.api#documentation": "Hls Mode" + "smithy.api#documentation": "H265 Flicker Aq" } }, - "com.amazonaws.medialive#HlsOutputSelection": { + "com.amazonaws.medialive#H265GopSizeUnits": { "type": "enum", "members": { - "MANIFESTS_AND_SEGMENTS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "MANIFESTS_AND_SEGMENTS" - } - }, - "SEGMENTS_ONLY": { + "FRAMES": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SEGMENTS_ONLY" + "smithy.api#enumValue": "FRAMES" } }, - "VARIANT_MANIFESTS_AND_SEGMENTS": { + "SECONDS": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "VARIANT_MANIFESTS_AND_SEGMENTS" + "smithy.api#enumValue": "SECONDS" } } }, "traits": { - "smithy.api#documentation": "Hls Output Selection" + "smithy.api#documentation": "H265 Gop Size Units" } }, - "com.amazonaws.medialive#HlsOutputSettings": { - "type": "structure", + "com.amazonaws.medialive#H265Level": { + "type": "enum", "members": { - "H265PackagingType": { - "target": "com.amazonaws.medialive#HlsH265PackagingType", + "H265_LEVEL_1": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Only applicable when this output is referencing an H.265 video description.\nSpecifies whether MP4 segments should be packaged as HEV1 or HVC1.", - "smithy.api#jsonName": "h265PackagingType" + "smithy.api#enumValue": "H265_LEVEL_1" } }, - "HlsSettings": { - "target": "com.amazonaws.medialive#HlsSettings", + "H265_LEVEL_2": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Settings regarding the underlying stream. These settings are different for audio-only outputs.", - "smithy.api#jsonName": "hlsSettings", - "smithy.api#required": {} + "smithy.api#enumValue": "H265_LEVEL_2" } }, - "NameModifier": { - "target": "com.amazonaws.medialive#__stringMin1", + "H265_LEVEL_2_1": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "String concatenated to the end of the destination filename. Accepts \\\"Format Identifiers\\\":#formatIdentifierParameters.", - "smithy.api#jsonName": "nameModifier" + "smithy.api#enumValue": "H265_LEVEL_2_1" } }, - "SegmentModifier": { - "target": "com.amazonaws.medialive#__string", + "H265_LEVEL_3": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "String concatenated to end of segment filenames.", - "smithy.api#jsonName": "segmentModifier" + "smithy.api#enumValue": "H265_LEVEL_3" } - } - }, - "traits": { - "smithy.api#documentation": "Hls Output Settings" - } - }, - "com.amazonaws.medialive#HlsProgramDateTime": { - "type": "enum", - "members": { - "EXCLUDE": { + }, + "H265_LEVEL_3_1": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EXCLUDE" + "smithy.api#enumValue": "H265_LEVEL_3_1" } }, - "INCLUDE": { + "H265_LEVEL_4": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "INCLUDE" + "smithy.api#enumValue": "H265_LEVEL_4" } - } - }, - "traits": { - "smithy.api#documentation": "Hls Program Date Time" - } - }, - "com.amazonaws.medialive#HlsProgramDateTimeClock": { - "type": "enum", - "members": { - "INITIALIZE_FROM_OUTPUT_TIMECODE": { + }, + "H265_LEVEL_4_1": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "INITIALIZE_FROM_OUTPUT_TIMECODE" + "smithy.api#enumValue": "H265_LEVEL_4_1" } }, - "SYSTEM_CLOCK": { + "H265_LEVEL_5": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SYSTEM_CLOCK" + "smithy.api#enumValue": "H265_LEVEL_5" } - } - }, - "traits": { - "smithy.api#documentation": "Hls Program Date Time Clock" - } - }, - "com.amazonaws.medialive#HlsRedundantManifest": { - "type": "enum", - "members": { - "DISABLED": { + }, + "H265_LEVEL_5_1": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "H265_LEVEL_5_1" } }, - "ENABLED": { + "H265_LEVEL_5_2": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "H265_LEVEL_5_2" } - } - }, - "traits": { - "smithy.api#documentation": "Hls Redundant Manifest" - } - }, - "com.amazonaws.medialive#HlsS3Settings": { - "type": "structure", - "members": { - "CannedAcl": { - "target": "com.amazonaws.medialive#S3CannedAcl", + }, + "H265_LEVEL_6": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Specify the canned ACL to apply to each S3 request. Defaults to none.", - "smithy.api#jsonName": "cannedAcl" + "smithy.api#enumValue": "H265_LEVEL_6" + } + }, + "H265_LEVEL_6_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "H265_LEVEL_6_1" + } + }, + "H265_LEVEL_6_2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "H265_LEVEL_6_2" + } + }, + "H265_LEVEL_AUTO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "H265_LEVEL_AUTO" } } }, "traits": { - "smithy.api#documentation": "Hls S3 Settings" + "smithy.api#documentation": "H265 Level" } }, - "com.amazonaws.medialive#HlsScte35SourceType": { + "com.amazonaws.medialive#H265LookAheadRateControl": { "type": "enum", "members": { - "MANIFEST": { + "HIGH": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MANIFEST" + "smithy.api#enumValue": "HIGH" } }, - "SEGMENTS": { + "LOW": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SEGMENTS" + "smithy.api#enumValue": "LOW" + } + }, + "MEDIUM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MEDIUM" } } }, "traits": { - "smithy.api#documentation": "Hls Scte35 Source Type" + "smithy.api#documentation": "H265 Look Ahead Rate Control" } }, - "com.amazonaws.medialive#HlsSegmentationMode": { + "com.amazonaws.medialive#H265MvOverPictureBoundaries": { "type": "enum", "members": { - "USE_INPUT_SEGMENTATION": { + "DISABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "USE_INPUT_SEGMENTATION" + "smithy.api#enumValue": "DISABLED" } }, - "USE_SEGMENT_DURATION": { + "ENABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "USE_SEGMENT_DURATION" + "smithy.api#enumValue": "ENABLED" } } }, "traits": { - "smithy.api#documentation": "Hls Segmentation Mode" + "smithy.api#documentation": "H265 Mv Over Picture Boundaries" } }, - "com.amazonaws.medialive#HlsSettings": { - "type": "structure", + "com.amazonaws.medialive#H265MvTemporalPredictor": { + "type": "enum", "members": { - "AudioOnlyHlsSettings": { - "target": "com.amazonaws.medialive#AudioOnlyHlsSettings", - "traits": { - "smithy.api#jsonName": "audioOnlyHlsSettings" - } - }, - "Fmp4HlsSettings": { - "target": "com.amazonaws.medialive#Fmp4HlsSettings", - "traits": { - "smithy.api#jsonName": "fmp4HlsSettings" - } - }, - "FrameCaptureHlsSettings": { - "target": "com.amazonaws.medialive#FrameCaptureHlsSettings", + "DISABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "frameCaptureHlsSettings" + "smithy.api#enumValue": "DISABLED" } }, - "StandardHlsSettings": { - "target": "com.amazonaws.medialive#StandardHlsSettings", + "ENABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "standardHlsSettings" + "smithy.api#enumValue": "ENABLED" } } }, "traits": { - "smithy.api#documentation": "Hls Settings" + "smithy.api#documentation": "H265 Mv Temporal Predictor" } }, - "com.amazonaws.medialive#HlsStreamInfResolution": { + "com.amazonaws.medialive#H265Profile": { "type": "enum", "members": { - "EXCLUDE": { + "MAIN": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EXCLUDE" + "smithy.api#enumValue": "MAIN" } }, - "INCLUDE": { + "MAIN_10BIT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "INCLUDE" + "smithy.api#enumValue": "MAIN_10BIT" } } }, "traits": { - "smithy.api#documentation": "Hls Stream Inf Resolution" + "smithy.api#documentation": "H265 Profile" } }, - "com.amazonaws.medialive#HlsTimedMetadataId3Frame": { + "com.amazonaws.medialive#H265RateControlMode": { "type": "enum", "members": { - "NONE": { + "CBR": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#enumValue": "CBR" } }, - "PRIV": { + "MULTIPLEX": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PRIV" + "smithy.api#enumValue": "MULTIPLEX" } }, - "TDRL": { + "QVBR": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "TDRL" - } - } - }, - "traits": { - "smithy.api#documentation": "Hls Timed Metadata Id3 Frame" - } - }, - "com.amazonaws.medialive#HlsTimedMetadataScheduleActionSettings": { - "type": "structure", - "members": { - "Id3": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Base64 string formatted according to the ID3 specification: http://id3.org/id3v2.4.0-structure", - "smithy.api#jsonName": "id3", - "smithy.api#required": {} + "smithy.api#enumValue": "QVBR" } } }, "traits": { - "smithy.api#documentation": "Settings for the action to emit HLS metadata" + "smithy.api#documentation": "H265 Rate Control Mode" } }, - "com.amazonaws.medialive#HlsTsFileMode": { + "com.amazonaws.medialive#H265ScanType": { "type": "enum", "members": { - "SEGMENTED_FILES": { + "INTERLACED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SEGMENTED_FILES" + "smithy.api#enumValue": "INTERLACED" } }, - "SINGLE_FILE": { + "PROGRESSIVE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SINGLE_FILE" + "smithy.api#enumValue": "PROGRESSIVE" } } }, "traits": { - "smithy.api#documentation": "Hls Ts File Mode" + "smithy.api#documentation": "H265 Scan Type" } }, - "com.amazonaws.medialive#HlsWebdavHttpTransferMode": { + "com.amazonaws.medialive#H265SceneChangeDetect": { "type": "enum", "members": { - "CHUNKED": { + "DISABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CHUNKED" + "smithy.api#enumValue": "DISABLED" } }, - "NON_CHUNKED": { + "ENABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NON_CHUNKED" + "smithy.api#enumValue": "ENABLED" } } }, "traits": { - "smithy.api#documentation": "Hls Webdav Http Transfer Mode" + "smithy.api#documentation": "H265 Scene Change Detect" } }, - "com.amazonaws.medialive#HlsWebdavSettings": { + "com.amazonaws.medialive#H265Settings": { "type": "structure", "members": { - "ConnectionRetryInterval": { - "target": "com.amazonaws.medialive#__integerMin0", + "AdaptiveQuantization": { + "target": "com.amazonaws.medialive#H265AdaptiveQuantization", "traits": { - "smithy.api#documentation": "Number of seconds to wait before retrying connection to the CDN if the connection is lost.", - "smithy.api#jsonName": "connectionRetryInterval" + "smithy.api#documentation": "Adaptive quantization. Allows intra-frame quantizers to vary to improve visual quality.", + "smithy.api#jsonName": "adaptiveQuantization" } }, - "FilecacheDuration": { - "target": "com.amazonaws.medialive#__integerMin0Max600", + "AfdSignaling": { + "target": "com.amazonaws.medialive#AfdSignaling", "traits": { - "smithy.api#documentation": "Size in seconds of file cache for streaming outputs.", - "smithy.api#jsonName": "filecacheDuration" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "afdSignaling" } }, - "HttpTransferMode": { - "target": "com.amazonaws.medialive#HlsWebdavHttpTransferMode", + "AlternativeTransferFunction": { + "target": "com.amazonaws.medialive#H265AlternativeTransferFunction", "traits": { - "smithy.api#documentation": "Specify whether or not to use chunked transfer encoding to WebDAV.", - "smithy.api#jsonName": "httpTransferMode" + "smithy.api#documentation": "Whether or not EML should insert an Alternative Transfer Function SEI message to support backwards compatibility with non-HDR decoders and displays.", + "smithy.api#jsonName": "alternativeTransferFunction" } }, - "NumRetries": { - "target": "com.amazonaws.medialive#__integerMin0", + "Bitrate": { + "target": "com.amazonaws.medialive#__integerMin100000Max40000000", "traits": { - "smithy.api#documentation": "Number of retry attempts that will be made before the Live Event is put into an error state. Applies only if the CDN destination URI begins with \"s3\" or \"mediastore\". For other URIs, the value is always 3.", - "smithy.api#jsonName": "numRetries" + "smithy.api#documentation": "Average bitrate in bits/second. Required when the rate control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique value when its bitrate is rounded down to the nearest multiple of 1000.", + "smithy.api#jsonName": "bitrate" } }, - "RestartDelay": { - "target": "com.amazonaws.medialive#__integerMin0Max15", + "BufSize": { + "target": "com.amazonaws.medialive#__integerMin100000Max80000000", "traits": { - "smithy.api#documentation": "If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart.", - "smithy.api#jsonName": "restartDelay" + "smithy.api#documentation": "Size of buffer (HRD buffer model) in bits.", + "smithy.api#jsonName": "bufSize" } - } - }, - "traits": { - "smithy.api#documentation": "Hls Webdav Settings" - } - }, - "com.amazonaws.medialive#HtmlMotionGraphicsSettings": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Html Motion Graphics Settings" - } - }, - "com.amazonaws.medialive#IFrameOnlyPlaylistType": { - "type": "enum", - "members": { - "DISABLED": { - "target": "smithy.api#Unit", + }, + "ColorMetadata": { + "target": "com.amazonaws.medialive#H265ColorMetadata", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#documentation": "Includes colorspace metadata in the output.", + "smithy.api#jsonName": "colorMetadata" } }, - "STANDARD": { - "target": "smithy.api#Unit", + "ColorSpaceSettings": { + "target": "com.amazonaws.medialive#H265ColorSpaceSettings", "traits": { - "smithy.api#enumValue": "STANDARD" + "smithy.api#documentation": "Color Space settings", + "smithy.api#jsonName": "colorSpaceSettings" } - } - }, - "traits": { - "smithy.api#documentation": "When set to \"standard\", an I-Frame only playlist will be written out for each video output in the output group. This I-Frame only playlist will contain byte range offsets pointing to the I-frame(s) in each segment." - } - }, - "com.amazonaws.medialive#ImmediateModeScheduleActionStartSettings": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Settings to configure an action so that it occurs as soon as possible." - } - }, - "com.amazonaws.medialive#IncludeFillerNalUnits": { - "type": "enum", - "members": { - "AUTO": { - "target": "smithy.api#Unit", + }, + "FilterSettings": { + "target": "com.amazonaws.medialive#H265FilterSettings", "traits": { - "smithy.api#enumValue": "AUTO" + "smithy.api#documentation": "Optional filters that you can apply to an encode.", + "smithy.api#jsonName": "filterSettings" } }, - "DROP": { - "target": "smithy.api#Unit", + "FixedAfd": { + "target": "com.amazonaws.medialive#FixedAfd", "traits": { - "smithy.api#enumValue": "DROP" + "smithy.api#documentation": "Four bit AFD value to write on all frames of video in the output stream. Only valid when afdSignaling is set to 'Fixed'.", + "smithy.api#jsonName": "fixedAfd" } }, - "INCLUDE": { - "target": "smithy.api#Unit", + "FlickerAq": { + "target": "com.amazonaws.medialive#H265FlickerAq", "traits": { - "smithy.api#enumValue": "INCLUDE" + "smithy.api#documentation": "If set to enabled, adjust quantization within each frame to reduce flicker or 'pop' on I-frames.", + "smithy.api#jsonName": "flickerAq" } - } - }, - "traits": { - "smithy.api#documentation": "Include Filler Nal Units" - } - }, - "com.amazonaws.medialive#Input": { - "type": "structure", - "members": { - "Arn": { - "target": "com.amazonaws.medialive#__string", + }, + "FramerateDenominator": { + "target": "com.amazonaws.medialive#__integerMin1Max3003", "traits": { - "smithy.api#documentation": "The Unique ARN of the input (generated, immutable).", - "smithy.api#jsonName": "arn" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Framerate denominator.", + "smithy.api#jsonName": "framerateDenominator", + "smithy.api#required": {} } }, - "AttachedChannels": { - "target": "com.amazonaws.medialive#__listOf__string", + "FramerateNumerator": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#documentation": "A list of channel IDs that that input is attached to (currently an input can only be attached to one channel).", - "smithy.api#jsonName": "attachedChannels" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps.", + "smithy.api#jsonName": "framerateNumerator", + "smithy.api#required": {} } }, - "Destinations": { - "target": "com.amazonaws.medialive#__listOfInputDestination", + "GopClosedCadence": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#documentation": "A list of the destinations of the input (PUSH-type).", - "smithy.api#jsonName": "destinations" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "gopClosedCadence" } }, - "Id": { - "target": "com.amazonaws.medialive#__string", + "GopSize": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#documentation": "The generated ID of the input (unique for user account, immutable).", - "smithy.api#jsonName": "id" + "smithy.api#documentation": "GOP size (keyframe interval) in units of either frames or seconds per gopSizeUnits.\nIf gopSizeUnits is frames, gopSize must be an integer and must be greater than or equal to 1.\nIf gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an integer.", + "smithy.api#jsonName": "gopSize" } }, - "InputClass": { - "target": "com.amazonaws.medialive#InputClass", + "GopSizeUnits": { + "target": "com.amazonaws.medialive#H265GopSizeUnits", "traits": { - "smithy.api#documentation": "STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails.\nSINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input.", - "smithy.api#jsonName": "inputClass" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "gopSizeUnits" } }, - "InputDevices": { - "target": "com.amazonaws.medialive#__listOfInputDeviceSettings", + "Level": { + "target": "com.amazonaws.medialive#H265Level", "traits": { - "smithy.api#documentation": "Settings for the input devices.", - "smithy.api#jsonName": "inputDevices" + "smithy.api#documentation": "H.265 Level.", + "smithy.api#jsonName": "level" } }, - "InputPartnerIds": { - "target": "com.amazonaws.medialive#__listOf__string", + "LookAheadRateControl": { + "target": "com.amazonaws.medialive#H265LookAheadRateControl", "traits": { - "smithy.api#documentation": "A list of IDs for all Inputs which are partners of this one.", - "smithy.api#jsonName": "inputPartnerIds" + "smithy.api#documentation": "Amount of lookahead. A value of low can decrease latency and memory usage, while high can produce better quality for certain content.", + "smithy.api#jsonName": "lookAheadRateControl" } }, - "InputSourceType": { - "target": "com.amazonaws.medialive#InputSourceType", + "MaxBitrate": { + "target": "com.amazonaws.medialive#__integerMin100000Max40000000", "traits": { - "smithy.api#documentation": "Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes\nduring input switch actions. Presently, this functionality only works with MP4_FILE and TS_FILE inputs.", - "smithy.api#jsonName": "inputSourceType" + "smithy.api#documentation": "For QVBR: See the tooltip for Quality level", + "smithy.api#jsonName": "maxBitrate" } }, - "MediaConnectFlows": { - "target": "com.amazonaws.medialive#__listOfMediaConnectFlow", + "MinIInterval": { + "target": "com.amazonaws.medialive#__integerMin0Max30", "traits": { - "smithy.api#documentation": "A list of MediaConnect Flows for this input.", - "smithy.api#jsonName": "mediaConnectFlows" + "smithy.api#documentation": "Only meaningful if sceneChangeDetect is set to enabled. Defaults to 5 if multiplex rate control is used. 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", + "smithy.api#jsonName": "minIInterval" } }, - "Name": { - "target": "com.amazonaws.medialive#__string", + "ParDenominator": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#documentation": "The user-assigned name (This is a mutable value).", - "smithy.api#jsonName": "name" + "smithy.api#documentation": "Pixel Aspect Ratio denominator.", + "smithy.api#jsonName": "parDenominator" } }, - "RoleArn": { - "target": "com.amazonaws.medialive#__string", + "ParNumerator": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#documentation": "The Amazon Resource Name (ARN) of the role this input assumes during and after creation.", - "smithy.api#jsonName": "roleArn" + "smithy.api#documentation": "Pixel Aspect Ratio numerator.", + "smithy.api#jsonName": "parNumerator" } }, - "SecurityGroups": { - "target": "com.amazonaws.medialive#__listOf__string", + "Profile": { + "target": "com.amazonaws.medialive#H265Profile", "traits": { - "smithy.api#documentation": "A list of IDs for all the Input Security Groups attached to the input.", - "smithy.api#jsonName": "securityGroups" + "smithy.api#documentation": "H.265 Profile.", + "smithy.api#jsonName": "profile" } }, - "Sources": { - "target": "com.amazonaws.medialive#__listOfInputSource", + "QvbrQualityLevel": { + "target": "com.amazonaws.medialive#__integerMin1Max10", "traits": { - "smithy.api#documentation": "A list of the sources of the input (PULL-type).", - "smithy.api#jsonName": "sources" + "smithy.api#documentation": "Controls the target quality for the video encode. Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max bitrate field that suit your most important viewing devices. Recommended values are:\n- Primary screen: Quality level: 8 to 10. Max bitrate: 4M\n- PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M\n- Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M", + "smithy.api#jsonName": "qvbrQualityLevel" } }, - "State": { - "target": "com.amazonaws.medialive#InputState", + "RateControlMode": { + "target": "com.amazonaws.medialive#H265RateControlMode", "traits": { - "smithy.api#jsonName": "state" + "smithy.api#documentation": "Rate control mode.\n\nQVBR: Quality will match the specified quality level except when it is constrained by the\nmaximum bitrate. Recommended if you or your viewers pay for bandwidth.\n\nCBR: Quality varies, depending on the video complexity. Recommended only if you distribute\nyour assets to devices that cannot handle variable bitrates.\n\nMultiplex: This rate control mode is only supported (and is required) when the video is being\ndelivered to a MediaLive Multiplex in which case the rate control configuration is controlled\nby the properties within the Multiplex Program.", + "smithy.api#jsonName": "rateControlMode" } }, - "Tags": { - "target": "com.amazonaws.medialive#Tags", + "ScanType": { + "target": "com.amazonaws.medialive#H265ScanType", "traits": { - "smithy.api#documentation": "A collection of key-value pairs.", - "smithy.api#jsonName": "tags" + "smithy.api#documentation": "Sets the scan type of the output to progressive or top-field-first interlaced.", + "smithy.api#jsonName": "scanType" } }, - "Type": { - "target": "com.amazonaws.medialive#InputType", + "SceneChangeDetect": { + "target": "com.amazonaws.medialive#H265SceneChangeDetect", "traits": { - "smithy.api#jsonName": "type" + "smithy.api#documentation": "Scene change detection.", + "smithy.api#jsonName": "sceneChangeDetect" } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for Input" - } - }, - "com.amazonaws.medialive#InputAttachment": { - "type": "structure", - "members": { - "AutomaticInputFailoverSettings": { - "target": "com.amazonaws.medialive#AutomaticInputFailoverSettings", + }, + "Slices": { + "target": "com.amazonaws.medialive#__integerMin1Max16", "traits": { - "smithy.api#documentation": "User-specified settings for defining what the conditions are for declaring the input unhealthy and failing over to a different input.", - "smithy.api#jsonName": "automaticInputFailoverSettings" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "slices" } }, - "InputAttachmentName": { - "target": "com.amazonaws.medialive#__string", + "Tier": { + "target": "com.amazonaws.medialive#H265Tier", "traits": { - "smithy.api#documentation": "User-specified name for the attachment. This is required if the user wants to use this input in an input switch action.", - "smithy.api#jsonName": "inputAttachmentName" + "smithy.api#documentation": "H.265 Tier.", + "smithy.api#jsonName": "tier" } }, - "InputId": { - "target": "com.amazonaws.medialive#__string", + "TimecodeInsertion": { + "target": "com.amazonaws.medialive#H265TimecodeInsertionBehavior", "traits": { - "smithy.api#documentation": "The ID of the input", - "smithy.api#jsonName": "inputId" + "smithy.api#documentation": "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", + "smithy.api#jsonName": "timecodeInsertion" } }, - "InputSettings": { - "target": "com.amazonaws.medialive#InputSettings", + "TimecodeBurninSettings": { + "target": "com.amazonaws.medialive#TimecodeBurninSettings", "traits": { - "smithy.api#documentation": "Settings of an input (caption selector, etc.)", - "smithy.api#jsonName": "inputSettings" + "smithy.api#documentation": "Timecode burn-in settings", + "smithy.api#jsonName": "timecodeBurninSettings" } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for InputAttachment" - } - }, - "com.amazonaws.medialive#InputChannelLevel": { - "type": "structure", - "members": { - "Gain": { - "target": "com.amazonaws.medialive#__integerMinNegative60Max6", + }, + "MvOverPictureBoundaries": { + "target": "com.amazonaws.medialive#H265MvOverPictureBoundaries", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Remixing value. Units are in dB and acceptable values are within the range from -60 (mute) and 6 dB.", - "smithy.api#jsonName": "gain", - "smithy.api#required": {} + "smithy.api#documentation": "If you are setting up the picture as a tile, you must set this to \"disabled\". In all other configurations, you typically enter \"enabled\".", + "smithy.api#jsonName": "mvOverPictureBoundaries" } }, - "InputChannel": { - "target": "com.amazonaws.medialive#__integerMin0Max15", + "MvTemporalPredictor": { + "target": "com.amazonaws.medialive#H265MvTemporalPredictor", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The index of the input channel used as a source.", - "smithy.api#jsonName": "inputChannel", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "Input Channel Level" - } - }, - "com.amazonaws.medialive#InputClass": { - "type": "enum", - "members": { - "STANDARD": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "STANDARD" + "smithy.api#documentation": "If you are setting up the picture as a tile, you must set this to \"disabled\". In other configurations, you typically enter \"enabled\".", + "smithy.api#jsonName": "mvTemporalPredictor" } }, - "SINGLE_PIPELINE": { - "target": "smithy.api#Unit", + "TileHeight": { + "target": "com.amazonaws.medialive#__integerMin64Max2160", "traits": { - "smithy.api#enumValue": "SINGLE_PIPELINE" + "smithy.api#documentation": "Set this field to set up the picture as a tile. You must also set tileWidth.\nThe tile height must result in 22 or fewer rows in the frame. The tile width\nmust result in 20 or fewer columns in the frame. And finally, the product of the\ncolumn count and row count must be 64 of less.\nIf the tile width and height are specified, MediaLive will override the video\ncodec slices field with a value that MediaLive calculates", + "smithy.api#jsonName": "tileHeight" } - } - }, - "traits": { - "smithy.api#documentation": "A standard input has two sources and a single pipeline input only has one." - } - }, - "com.amazonaws.medialive#InputClippingSettings": { - "type": "structure", - "members": { - "InputTimecodeSource": { - "target": "com.amazonaws.medialive#InputTimecodeSource", + }, + "TilePadding": { + "target": "com.amazonaws.medialive#H265TilePadding", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The source of the timecodes in the source being clipped.", - "smithy.api#jsonName": "inputTimecodeSource", - "smithy.api#required": {} + "smithy.api#documentation": "Set to \"padded\" to force MediaLive to add padding to the frame, to obtain a frame that is a whole multiple of the tile size.\nIf you are setting up the picture as a tile, you must enter \"padded\".\nIn all other configurations, you typically enter \"none\".", + "smithy.api#jsonName": "tilePadding" } }, - "StartTimecode": { - "target": "com.amazonaws.medialive#StartTimecode", + "TileWidth": { + "target": "com.amazonaws.medialive#__integerMin256Max3840", "traits": { - "smithy.api#documentation": "Settings to identify the start of the clip.", - "smithy.api#jsonName": "startTimecode" + "smithy.api#documentation": "Set this field to set up the picture as a tile. See tileHeight for more information.", + "smithy.api#jsonName": "tileWidth" } }, - "StopTimecode": { - "target": "com.amazonaws.medialive#StopTimecode", + "TreeblockSize": { + "target": "com.amazonaws.medialive#H265TreeblockSize", "traits": { - "smithy.api#documentation": "Settings to identify the end of the clip.", - "smithy.api#jsonName": "stopTimecode" + "smithy.api#documentation": "Select the tree block size used for encoding. If you enter \"auto\", the encoder will pick the best size. If you are setting up the picture as a tile, you must set this to 32x32. In all other configurations, you typically enter \"auto\".", + "smithy.api#jsonName": "treeblockSize" } } }, "traits": { - "smithy.api#documentation": "Settings to let you create a clip of the file input, in order to set up the input to ingest only a portion of the file." + "smithy.api#documentation": "H265 Settings" } }, - "com.amazonaws.medialive#InputCodec": { + "com.amazonaws.medialive#H265Tier": { "type": "enum", "members": { - "MPEG2": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "MPEG2" - } - }, - "AVC": { + "HIGH": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "AVC" + "smithy.api#enumValue": "HIGH" } }, - "HEVC": { + "MAIN": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "HEVC" + "smithy.api#enumValue": "MAIN" } } }, "traits": { - "smithy.api#documentation": "codec in increasing order of complexity" + "smithy.api#documentation": "H265 Tier" } }, - "com.amazonaws.medialive#InputDeblockFilter": { + "com.amazonaws.medialive#H265TilePadding": { "type": "enum", "members": { - "DISABLED": { + "NONE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "NONE" } }, - "ENABLED": { + "PADDED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "PADDED" } } }, "traits": { - "smithy.api#documentation": "Input Deblock Filter" + "smithy.api#documentation": "H265 Tile Padding" } }, - "com.amazonaws.medialive#InputDenoiseFilter": { + "com.amazonaws.medialive#H265TimecodeInsertionBehavior": { "type": "enum", "members": { "DISABLED": { @@ -13068,795 +14102,716 @@ "smithy.api#enumValue": "DISABLED" } }, - "ENABLED": { + "PIC_TIMING_SEI": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "PIC_TIMING_SEI" } } }, "traits": { - "smithy.api#documentation": "Input Denoise Filter" + "smithy.api#documentation": "H265 Timecode Insertion Behavior" } }, - "com.amazonaws.medialive#InputDestination": { - "type": "structure", + "com.amazonaws.medialive#H265TreeblockSize": { + "type": "enum", "members": { - "Ip": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The system-generated static IP address of endpoint.\nIt remains fixed for the lifetime of the input.", - "smithy.api#jsonName": "ip" - } - }, - "Port": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The port number for the input.", - "smithy.api#jsonName": "port" - } - }, - "Url": { - "target": "com.amazonaws.medialive#__string", + "AUTO": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "This represents the endpoint that the customer stream will be\npushed to.", - "smithy.api#jsonName": "url" + "smithy.api#enumValue": "AUTO" } }, - "Vpc": { - "target": "com.amazonaws.medialive#InputDestinationVpc", - "traits": { - "smithy.api#jsonName": "vpc" - } - } - }, - "traits": { - "smithy.api#documentation": "The settings for a PUSH type input." - } - }, - "com.amazonaws.medialive#InputDestinationRequest": { - "type": "structure", - "members": { - "StreamName": { - "target": "com.amazonaws.medialive#__string", + "TREE_SIZE_32X32": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "A unique name for the location the RTMP stream is being pushed\nto.", - "smithy.api#jsonName": "streamName" + "smithy.api#enumValue": "TREE_SIZE_32X32" } } }, "traits": { - "smithy.api#documentation": "Endpoint settings for a PUSH type input." + "smithy.api#documentation": "H265 Treeblock Size" } }, - "com.amazonaws.medialive#InputDestinationVpc": { + "com.amazonaws.medialive#Hdr10Settings": { "type": "structure", "members": { - "AvailabilityZone": { - "target": "com.amazonaws.medialive#__string", + "MaxCll": { + "target": "com.amazonaws.medialive#__integerMin0Max32768", "traits": { - "smithy.api#documentation": "The availability zone of the Input destination.", - "smithy.api#jsonName": "availabilityZone" + "smithy.api#documentation": "Maximum Content Light Level\nAn integer metadata value defining the maximum light level, in nits,\nof any single pixel within an encoded HDR video stream or file.", + "smithy.api#jsonName": "maxCll" } }, - "NetworkInterfaceId": { - "target": "com.amazonaws.medialive#__string", + "MaxFall": { + "target": "com.amazonaws.medialive#__integerMin0Max32768", "traits": { - "smithy.api#documentation": "The network interface ID of the Input destination in the VPC.", - "smithy.api#jsonName": "networkInterfaceId" + "smithy.api#documentation": "Maximum Frame Average Light Level\nAn integer metadata value defining the maximum average light level, in nits,\nfor any single frame within an encoded HDR video stream or file.", + "smithy.api#jsonName": "maxFall" } } }, "traits": { - "smithy.api#documentation": "The properties for a VPC type input destination." + "smithy.api#documentation": "Hdr10 Settings" } }, - "com.amazonaws.medialive#InputDeviceActiveInput": { + "com.amazonaws.medialive#HlsAdMarkers": { "type": "enum", "members": { - "HDMI": { + "ADOBE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "HDMI" + "smithy.api#enumValue": "ADOBE" } }, - "SDI": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SDI" - } - } - }, - "traits": { - "smithy.api#documentation": "The source at the input device that is currently active." - } - }, - "com.amazonaws.medialive#InputDeviceCodec": { - "type": "enum", - "members": { - "HEVC": { + "ELEMENTAL": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "HEVC" + "smithy.api#enumValue": "ELEMENTAL" } }, - "AVC": { + "ELEMENTAL_SCTE35": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "AVC" + "smithy.api#enumValue": "ELEMENTAL_SCTE35" } } }, "traits": { - "smithy.api#documentation": "The codec to use on the video that the device produces." + "smithy.api#documentation": "Hls Ad Markers" } }, - "com.amazonaws.medialive#InputDeviceConfigurableAudioChannelPairConfig": { - "type": "structure", + "com.amazonaws.medialive#HlsAkamaiHttpTransferMode": { + "type": "enum", "members": { - "Id": { - "target": "com.amazonaws.medialive#__integer", + "CHUNKED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The ID for one audio pair configuration, a value from 1 to 8.", - "smithy.api#jsonName": "id" + "smithy.api#enumValue": "CHUNKED" } }, - "Profile": { - "target": "com.amazonaws.medialive#InputDeviceConfigurableAudioChannelPairProfile", + "NON_CHUNKED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The profile to set for one audio pair configuration. Choose an enumeration value. Each value describes one audio configuration using the format (rate control algorithm)-(codec)_(quality)-(bitrate in bytes). For example, CBR-AAC_HQ-192000. Or choose DISABLED, in which case the device won't produce audio for this pair.", - "smithy.api#jsonName": "profile" + "smithy.api#enumValue": "NON_CHUNKED" } } }, "traits": { - "smithy.api#documentation": "One audio configuration that specifies the format for one audio pair that the device produces as output." + "smithy.api#documentation": "Hls Akamai Http Transfer Mode" } }, - "com.amazonaws.medialive#InputDeviceConfigurableAudioChannelPairProfile": { - "type": "enum", + "com.amazonaws.medialive#HlsAkamaiSettings": { + "type": "structure", "members": { - "DISABLED": { - "target": "smithy.api#Unit", + "ConnectionRetryInterval": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#documentation": "Number of seconds to wait before retrying connection to the CDN if the connection is lost.", + "smithy.api#jsonName": "connectionRetryInterval" } }, - "VBR_AAC_HHE_16000": { - "target": "smithy.api#Unit", + "FilecacheDuration": { + "target": "com.amazonaws.medialive#__integerMin0Max600", "traits": { - "smithy.api#enumValue": "VBR-AAC_HHE-16000" + "smithy.api#documentation": "Size in seconds of file cache for streaming outputs.", + "smithy.api#jsonName": "filecacheDuration" } }, - "VBR_AAC_HE_64000": { - "target": "smithy.api#Unit", + "HttpTransferMode": { + "target": "com.amazonaws.medialive#HlsAkamaiHttpTransferMode", "traits": { - "smithy.api#enumValue": "VBR-AAC_HE-64000" + "smithy.api#documentation": "Specify whether or not to use chunked transfer encoding to Akamai. User should contact Akamai to enable this feature.", + "smithy.api#jsonName": "httpTransferMode" } }, - "VBR_AAC_LC_128000": { - "target": "smithy.api#Unit", + "NumRetries": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "VBR-AAC_LC-128000" + "smithy.api#documentation": "Number of retry attempts that will be made before the Live Event is put into an error state. Applies only if the CDN destination URI begins with \"s3\" or \"mediastore\". For other URIs, the value is always 3.", + "smithy.api#jsonName": "numRetries" } }, - "CBR_AAC_HQ_192000": { - "target": "smithy.api#Unit", + "RestartDelay": { + "target": "com.amazonaws.medialive#__integerMin0Max15", "traits": { - "smithy.api#enumValue": "CBR-AAC_HQ-192000" + "smithy.api#documentation": "If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart.", + "smithy.api#jsonName": "restartDelay" } }, - "CBR_AAC_HQ_256000": { - "target": "smithy.api#Unit", + "Salt": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "CBR-AAC_HQ-256000" + "smithy.api#documentation": "Salt for authenticated Akamai.", + "smithy.api#jsonName": "salt" } }, - "CBR_AAC_HQ_384000": { - "target": "smithy.api#Unit", + "Token": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "CBR-AAC_HQ-384000" - } - }, - "CBR_AAC_HQ_512000": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CBR-AAC_HQ-512000" + "smithy.api#documentation": "Token parameter for authenticated akamai. If not specified, _gda_ is used.", + "smithy.api#jsonName": "token" } } }, "traits": { - "smithy.api#documentation": "Property of InputDeviceConfigurableAudioChannelPairConfig, which configures one audio channel that the device produces." + "smithy.api#documentation": "Hls Akamai Settings" } }, - "com.amazonaws.medialive#InputDeviceConfigurableSettings": { + "com.amazonaws.medialive#HlsBasicPutSettings": { "type": "structure", "members": { - "ConfiguredInput": { - "target": "com.amazonaws.medialive#InputDeviceConfiguredInput", - "traits": { - "smithy.api#documentation": "The input source that you want to use. If the device has a source connected to only one of its input ports, or if you don't care which source the device sends, specify Auto. If the device has sources connected to both its input ports, and you want to use a specific source, specify the source.", - "smithy.api#jsonName": "configuredInput" - } - }, - "MaxBitrate": { - "target": "com.amazonaws.medialive#__integer", - "traits": { - "smithy.api#documentation": "The maximum bitrate in bits per second. Set a value here to throttle the bitrate of the source video.", - "smithy.api#jsonName": "maxBitrate" - } - }, - "LatencyMs": { - "target": "com.amazonaws.medialive#__integer", + "ConnectionRetryInterval": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#documentation": "The Link device's buffer size (latency) in milliseconds (ms).", - "smithy.api#jsonName": "latencyMs" + "smithy.api#documentation": "Number of seconds to wait before retrying connection to the CDN if the connection is lost.", + "smithy.api#jsonName": "connectionRetryInterval" } }, - "Codec": { - "target": "com.amazonaws.medialive#InputDeviceCodec", + "FilecacheDuration": { + "target": "com.amazonaws.medialive#__integerMin0Max600", "traits": { - "smithy.api#documentation": "Choose the codec for the video that the device produces. Only UHD devices can specify this parameter.", - "smithy.api#jsonName": "codec" + "smithy.api#documentation": "Size in seconds of file cache for streaming outputs.", + "smithy.api#jsonName": "filecacheDuration" } }, - "MediaconnectSettings": { - "target": "com.amazonaws.medialive#InputDeviceMediaConnectConfigurableSettings", + "NumRetries": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#documentation": "To attach this device to a MediaConnect flow, specify these parameters. To detach an existing flow, enter {} for the value of mediaconnectSettings. Only UHD devices can specify this parameter.", - "smithy.api#jsonName": "mediaconnectSettings" + "smithy.api#documentation": "Number of retry attempts that will be made before the Live Event is put into an error state. Applies only if the CDN destination URI begins with \"s3\" or \"mediastore\". For other URIs, the value is always 3.", + "smithy.api#jsonName": "numRetries" } }, - "AudioChannelPairs": { - "target": "com.amazonaws.medialive#__listOfInputDeviceConfigurableAudioChannelPairConfig", + "RestartDelay": { + "target": "com.amazonaws.medialive#__integerMin0Max15", "traits": { - "smithy.api#documentation": "An array of eight audio configurations, one for each audio pair in the source. Set up each audio configuration either to exclude the pair, or to format it and include it in the output from the device. This parameter applies only to UHD devices, and only when the device is configured as the source for a MediaConnect flow. For an HD device, you configure the audio by setting up audio selectors in the channel configuration.", - "smithy.api#jsonName": "audioChannelPairs" + "smithy.api#documentation": "If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart.", + "smithy.api#jsonName": "restartDelay" } } }, "traits": { - "smithy.api#documentation": "Configurable settings for the input device." + "smithy.api#documentation": "Hls Basic Put Settings" } }, - "com.amazonaws.medialive#InputDeviceConfiguredInput": { + "com.amazonaws.medialive#HlsCaptionLanguageSetting": { "type": "enum", "members": { - "AUTO": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AUTO" - } - }, - "HDMI": { + "INSERT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "HDMI" + "smithy.api#enumValue": "INSERT" } }, - "SDI": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SDI" - } - } - }, - "traits": { - "smithy.api#documentation": "The source to activate (use) from the input device." - } - }, - "com.amazonaws.medialive#InputDeviceConnectionState": { - "type": "enum", - "members": { - "DISCONNECTED": { + "NONE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISCONNECTED" + "smithy.api#enumValue": "NONE" } }, - "CONNECTED": { + "OMIT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CONNECTED" + "smithy.api#enumValue": "OMIT" } } }, "traits": { - "smithy.api#documentation": "The state of the connection between the input device and AWS." + "smithy.api#documentation": "Hls Caption Language Setting" } }, - "com.amazonaws.medialive#InputDeviceHdSettings": { + "com.amazonaws.medialive#HlsCdnSettings": { "type": "structure", "members": { - "ActiveInput": { - "target": "com.amazonaws.medialive#InputDeviceActiveInput", + "HlsAkamaiSettings": { + "target": "com.amazonaws.medialive#HlsAkamaiSettings", "traits": { - "smithy.api#documentation": "If you specified Auto as the configured input, specifies which of the sources is currently active (SDI or HDMI).", - "smithy.api#jsonName": "activeInput" + "smithy.api#jsonName": "hlsAkamaiSettings" } }, - "ConfiguredInput": { - "target": "com.amazonaws.medialive#InputDeviceConfiguredInput", + "HlsBasicPutSettings": { + "target": "com.amazonaws.medialive#HlsBasicPutSettings", "traits": { - "smithy.api#documentation": "The source at the input device that is currently active. You can specify this source.", - "smithy.api#jsonName": "configuredInput" + "smithy.api#jsonName": "hlsBasicPutSettings" } }, - "DeviceState": { - "target": "com.amazonaws.medialive#InputDeviceState", + "HlsMediaStoreSettings": { + "target": "com.amazonaws.medialive#HlsMediaStoreSettings", "traits": { - "smithy.api#documentation": "The state of the input device.", - "smithy.api#jsonName": "deviceState" + "smithy.api#jsonName": "hlsMediaStoreSettings" } }, - "Framerate": { - "target": "com.amazonaws.medialive#__double", + "HlsS3Settings": { + "target": "com.amazonaws.medialive#HlsS3Settings", "traits": { - "smithy.api#documentation": "The frame rate of the video source.", - "smithy.api#jsonName": "framerate" + "smithy.api#jsonName": "hlsS3Settings" } }, - "Height": { - "target": "com.amazonaws.medialive#__integer", + "HlsWebdavSettings": { + "target": "com.amazonaws.medialive#HlsWebdavSettings", "traits": { - "smithy.api#documentation": "The height of the video source, in pixels.", - "smithy.api#jsonName": "height" + "smithy.api#jsonName": "hlsWebdavSettings" } - }, - "MaxBitrate": { - "target": "com.amazonaws.medialive#__integer", + } + }, + "traits": { + "smithy.api#documentation": "Hls Cdn Settings" + } + }, + "com.amazonaws.medialive#HlsClientCache": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The current maximum bitrate for ingesting this source, in bits per second. You can specify this maximum.", - "smithy.api#jsonName": "maxBitrate" + "smithy.api#enumValue": "DISABLED" } }, - "ScanType": { - "target": "com.amazonaws.medialive#InputDeviceScanType", + "ENABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The scan type of the video source.", - "smithy.api#jsonName": "scanType" + "smithy.api#enumValue": "ENABLED" } - }, - "Width": { - "target": "com.amazonaws.medialive#__integer", + } + }, + "traits": { + "smithy.api#documentation": "Hls Client Cache" + } + }, + "com.amazonaws.medialive#HlsCodecSpecification": { + "type": "enum", + "members": { + "RFC_4281": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The width of the video source, in pixels.", - "smithy.api#jsonName": "width" + "smithy.api#enumValue": "RFC_4281" } }, - "LatencyMs": { - "target": "com.amazonaws.medialive#__integer", + "RFC_6381": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The Link device's buffer size (latency) in milliseconds (ms). You can specify this value.", - "smithy.api#jsonName": "latencyMs" + "smithy.api#enumValue": "RFC_6381" } } }, "traits": { - "smithy.api#documentation": "Settings that describe the active source from the input device, and the video characteristics of that source." + "smithy.api#documentation": "Hls Codec Specification" } }, - "com.amazonaws.medialive#InputDeviceIpScheme": { + "com.amazonaws.medialive#HlsDirectoryStructure": { "type": "enum", "members": { - "STATIC": { + "SINGLE_DIRECTORY": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "STATIC" + "smithy.api#enumValue": "SINGLE_DIRECTORY" } }, - "DHCP": { + "SUBDIRECTORY_PER_STREAM": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DHCP" + "smithy.api#enumValue": "SUBDIRECTORY_PER_STREAM" } } }, "traits": { - "smithy.api#documentation": "Specifies whether the input device has been configured (outside of MediaLive) to use a dynamic IP address assignment (DHCP) or a static IP address." + "smithy.api#documentation": "Hls Directory Structure" } }, - "com.amazonaws.medialive#InputDeviceMediaConnectConfigurableSettings": { - "type": "structure", + "com.amazonaws.medialive#HlsDiscontinuityTags": { + "type": "enum", "members": { - "FlowArn": { - "target": "com.amazonaws.medialive#__string", + "INSERT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The ARN of the MediaConnect flow to attach this device to.", - "smithy.api#jsonName": "flowArn" + "smithy.api#enumValue": "INSERT" } }, - "RoleArn": { - "target": "com.amazonaws.medialive#__string", + "NEVER_INSERT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The ARN for the role that MediaLive assumes to access the attached flow and secret. For more information about how to create this role, see the MediaLive user guide.", - "smithy.api#jsonName": "roleArn" + "smithy.api#enumValue": "NEVER_INSERT" } - }, - "SecretArn": { - "target": "com.amazonaws.medialive#__string", + } + }, + "traits": { + "smithy.api#documentation": "Hls Discontinuity Tags" + } + }, + "com.amazonaws.medialive#HlsEncryptionType": { + "type": "enum", + "members": { + "AES128": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The ARN for the secret that holds the encryption key to encrypt the content output by the device.", - "smithy.api#jsonName": "secretArn" + "smithy.api#enumValue": "AES128" } }, - "SourceName": { - "target": "com.amazonaws.medialive#__string", + "SAMPLE_AES": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The name of the MediaConnect Flow source to stream to.", - "smithy.api#jsonName": "sourceName" + "smithy.api#enumValue": "SAMPLE_AES" } } }, "traits": { - "smithy.api#documentation": "Parameters required to attach a MediaConnect flow to the device." + "smithy.api#documentation": "Hls Encryption Type" } }, - "com.amazonaws.medialive#InputDeviceMediaConnectSettings": { + "com.amazonaws.medialive#HlsGroupSettings": { "type": "structure", "members": { - "FlowArn": { - "target": "com.amazonaws.medialive#__string", + "AdMarkers": { + "target": "com.amazonaws.medialive#__listOfHlsAdMarkers", "traits": { - "smithy.api#documentation": "The ARN of the MediaConnect flow.", - "smithy.api#jsonName": "flowArn" + "smithy.api#documentation": "Choose one or more ad marker types to pass SCTE35 signals through to this group of Apple HLS outputs.", + "smithy.api#jsonName": "adMarkers" } }, - "RoleArn": { + "BaseUrlContent": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The ARN for the role that MediaLive assumes to access the attached flow and secret.", - "smithy.api#jsonName": "roleArn" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "baseUrlContent" } }, - "SecretArn": { + "BaseUrlContent1": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The ARN of the secret used to encrypt the stream.", - "smithy.api#jsonName": "secretArn" + "smithy.api#documentation": "Optional. One value per output group.\n\nThis field is required only if you are completing Base URL content A, and the downstream system has notified you that the media files for pipeline 1 of all outputs are in a location different from the media files for pipeline 0.", + "smithy.api#jsonName": "baseUrlContent1" } }, - "SourceName": { + "BaseUrlManifest": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The name of the MediaConnect flow source.", - "smithy.api#jsonName": "sourceName" - } - } - }, - "traits": { - "smithy.api#documentation": "Information about the MediaConnect flow attached to the device." - } - }, - "com.amazonaws.medialive#InputDeviceNetworkSettings": { - "type": "structure", - "members": { - "DnsAddresses": { - "target": "com.amazonaws.medialive#__listOf__string", - "traits": { - "smithy.api#documentation": "The DNS addresses of the input device.", - "smithy.api#jsonName": "dnsAddresses" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "baseUrlManifest" } }, - "Gateway": { + "BaseUrlManifest1": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The network gateway IP address.", - "smithy.api#jsonName": "gateway" + "smithy.api#documentation": "Optional. One value per output group.\n\nComplete this field only if you are completing Base URL manifest A, and the downstream system has notified you that the child manifest files for pipeline 1 of all outputs are in a location different from the child manifest files for pipeline 0.", + "smithy.api#jsonName": "baseUrlManifest1" } }, - "IpAddress": { - "target": "com.amazonaws.medialive#__string", + "CaptionLanguageMappings": { + "target": "com.amazonaws.medialive#__listOfCaptionLanguageMapping", "traits": { - "smithy.api#documentation": "The IP address of the input device.", - "smithy.api#jsonName": "ipAddress" + "smithy.api#documentation": "Mapping of up to 4 caption channels to caption languages. Is only meaningful if captionLanguageSetting is set to \"insert\".", + "smithy.api#jsonName": "captionLanguageMappings" } }, - "IpScheme": { - "target": "com.amazonaws.medialive#InputDeviceIpScheme", + "CaptionLanguageSetting": { + "target": "com.amazonaws.medialive#HlsCaptionLanguageSetting", "traits": { - "smithy.api#documentation": "Specifies whether the input device has been configured (outside of MediaLive) to use a dynamic IP address assignment (DHCP) or a static IP address.", - "smithy.api#jsonName": "ipScheme" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "captionLanguageSetting" } }, - "SubnetMask": { - "target": "com.amazonaws.medialive#__string", + "ClientCache": { + "target": "com.amazonaws.medialive#HlsClientCache", "traits": { - "smithy.api#documentation": "The subnet mask of the input device.", - "smithy.api#jsonName": "subnetMask" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "clientCache" } - } - }, - "traits": { - "smithy.api#documentation": "The network settings for the input device." - } - }, - "com.amazonaws.medialive#InputDeviceOutputType": { - "type": "enum", - "members": { - "NONE": { - "target": "smithy.api#Unit", + }, + "CodecSpecification": { + "target": "com.amazonaws.medialive#HlsCodecSpecification", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#documentation": "Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist generation.", + "smithy.api#jsonName": "codecSpecification" } }, - "MEDIALIVE_INPUT": { - "target": "smithy.api#Unit", + "ConstantIv": { + "target": "com.amazonaws.medialive#__stringMin32Max32", "traits": { - "smithy.api#enumValue": "MEDIALIVE_INPUT" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "constantIv" } }, - "MEDIACONNECT_FLOW": { - "target": "smithy.api#Unit", + "Destination": { + "target": "com.amazonaws.medialive#OutputLocationRef", "traits": { - "smithy.api#enumValue": "MEDIACONNECT_FLOW" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A directory or HTTP destination for the HLS segments, manifest files, and encryption keys (if enabled).", + "smithy.api#jsonName": "destination", + "smithy.api#required": {} } - } - }, - "traits": { - "smithy.api#documentation": "The output attachment type of the input device." - } - }, - "com.amazonaws.medialive#InputDeviceRequest": { - "type": "structure", - "members": { - "Id": { - "target": "com.amazonaws.medialive#__string", + }, + "DirectoryStructure": { + "target": "com.amazonaws.medialive#HlsDirectoryStructure", "traits": { - "smithy.api#documentation": "The unique ID for the device.", - "smithy.api#jsonName": "id" + "smithy.api#documentation": "Place segments in subdirectories.", + "smithy.api#jsonName": "directoryStructure" } - } - }, - "traits": { - "smithy.api#documentation": "Settings for an input device." - } - }, - "com.amazonaws.medialive#InputDeviceScanType": { - "type": "enum", - "members": { - "INTERLACED": { - "target": "smithy.api#Unit", + }, + "DiscontinuityTags": { + "target": "com.amazonaws.medialive#HlsDiscontinuityTags", "traits": { - "smithy.api#enumValue": "INTERLACED" + "smithy.api#documentation": "Specifies whether to insert EXT-X-DISCONTINUITY tags in the HLS child manifests for this output group.\nTypically, choose Insert because these tags are required in the manifest (according to the HLS specification) and serve an important purpose.\nChoose Never Insert only if the downstream system is doing real-time failover (without using the MediaLive automatic failover feature) and only if that downstream system has advised you to exclude the tags.", + "smithy.api#jsonName": "discontinuityTags" } }, - "PROGRESSIVE": { - "target": "smithy.api#Unit", + "EncryptionType": { + "target": "com.amazonaws.medialive#HlsEncryptionType", "traits": { - "smithy.api#enumValue": "PROGRESSIVE" + "smithy.api#documentation": "Encrypts the segments with the given encryption scheme. Exclude this parameter if no encryption is desired.", + "smithy.api#jsonName": "encryptionType" } - } - }, - "traits": { - "smithy.api#documentation": "The scan type of the video source." - } - }, - "com.amazonaws.medialive#InputDeviceSettings": { - "type": "structure", - "members": { - "Id": { - "target": "com.amazonaws.medialive#__string", + }, + "HlsCdnSettings": { + "target": "com.amazonaws.medialive#HlsCdnSettings", "traits": { - "smithy.api#documentation": "The unique ID for the device.", - "smithy.api#jsonName": "id" + "smithy.api#documentation": "Parameters that control interactions with the CDN.", + "smithy.api#jsonName": "hlsCdnSettings" } - } - }, - "traits": { - "smithy.api#documentation": "Settings for an input device." - } - }, - "com.amazonaws.medialive#InputDeviceState": { - "type": "enum", - "members": { - "IDLE": { - "target": "smithy.api#Unit", + }, + "HlsId3SegmentTagging": { + "target": "com.amazonaws.medialive#HlsId3SegmentTaggingState", "traits": { - "smithy.api#enumValue": "IDLE" + "smithy.api#documentation": "State of HLS ID3 Segment Tagging", + "smithy.api#jsonName": "hlsId3SegmentTagging" } }, - "STREAMING": { - "target": "smithy.api#Unit", + "IFrameOnlyPlaylists": { + "target": "com.amazonaws.medialive#IFrameOnlyPlaylistType", "traits": { - "smithy.api#enumValue": "STREAMING" + "smithy.api#documentation": "DISABLED: Do not create an I-frame-only manifest, but do create the master and media manifests (according to the Output Selection field).\n\nSTANDARD: Create an I-frame-only manifest for each output that contains video, as well as the other manifests (according to the Output Selection field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888\"", + "smithy.api#jsonName": "iFrameOnlyPlaylists" } - } - }, - "traits": { - "smithy.api#documentation": "The state of the input device." - } - }, - "com.amazonaws.medialive#InputDeviceSummary": { - "type": "structure", - "members": { - "Arn": { - "target": "com.amazonaws.medialive#__string", + }, + "IncompleteSegmentBehavior": { + "target": "com.amazonaws.medialive#HlsIncompleteSegmentBehavior", "traits": { - "smithy.api#documentation": "The unique ARN of the input device.", - "smithy.api#jsonName": "arn" + "smithy.api#documentation": "Specifies whether to include the final (incomplete) segment in the media output when the pipeline stops producing output because of a channel stop, a channel pause or a loss of input to the pipeline.\nAuto means that MediaLive decides whether to include the final segment, depending on the channel class and the types of output groups.\nSuppress means to never include the incomplete segment. We recommend you choose Auto and let MediaLive control the behavior.", + "smithy.api#jsonName": "incompleteSegmentBehavior" } }, - "ConnectionState": { - "target": "com.amazonaws.medialive#InputDeviceConnectionState", + "IndexNSegments": { + "target": "com.amazonaws.medialive#__integerMin3", "traits": { - "smithy.api#documentation": "The state of the connection between the input device and AWS.", - "smithy.api#jsonName": "connectionState" + "smithy.api#documentation": "Applies only if Mode field is LIVE.\n\nSpecifies the maximum number of segments in the media manifest file. After this maximum, older segments are removed from the media manifest. This number must be smaller than the number in the Keep Segments field.", + "smithy.api#jsonName": "indexNSegments" } }, - "DeviceSettingsSyncState": { - "target": "com.amazonaws.medialive#DeviceSettingsSyncState", + "InputLossAction": { + "target": "com.amazonaws.medialive#InputLossActionForHlsOut", "traits": { - "smithy.api#documentation": "The status of the action to synchronize the device configuration. If you change the configuration of the input device (for example, the maximum bitrate), MediaLive sends the new data to the device. The device might not update itself immediately. SYNCED means the device has updated its configuration. SYNCING means that it has not updated its configuration.", - "smithy.api#jsonName": "deviceSettingsSyncState" + "smithy.api#documentation": "Parameter that control output group behavior on input loss.", + "smithy.api#jsonName": "inputLossAction" } }, - "DeviceUpdateStatus": { - "target": "com.amazonaws.medialive#DeviceUpdateStatus", + "IvInManifest": { + "target": "com.amazonaws.medialive#HlsIvInManifest", "traits": { - "smithy.api#documentation": "The status of software on the input device.", - "smithy.api#jsonName": "deviceUpdateStatus" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "ivInManifest" } }, - "HdDeviceSettings": { - "target": "com.amazonaws.medialive#InputDeviceHdSettings", + "IvSource": { + "target": "com.amazonaws.medialive#HlsIvSource", "traits": { - "smithy.api#documentation": "Settings that describe an input device that is type HD.", - "smithy.api#jsonName": "hdDeviceSettings" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "ivSource" } }, - "Id": { - "target": "com.amazonaws.medialive#__string", + "KeepSegments": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#documentation": "The unique ID of the input device.", - "smithy.api#jsonName": "id" + "smithy.api#documentation": "Applies only if Mode field is LIVE.\n\nSpecifies the number of media segments to retain in the destination directory. This number should be bigger than indexNSegments (Num segments). We recommend (value = (2 x indexNsegments) + 1).\n\nIf this \"keep segments\" number is too low, the following might happen: the player is still reading a media manifest file that lists this segment, but that segment has been removed from the destination directory (as directed by indexNSegments). This situation would result in a 404 HTTP error on the player.", + "smithy.api#jsonName": "keepSegments" } }, - "MacAddress": { + "KeyFormat": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The network MAC address of the input device.", - "smithy.api#jsonName": "macAddress" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "keyFormat" } }, - "Name": { + "KeyFormatVersions": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "A name that you specify for the input device.", - "smithy.api#jsonName": "name" + "smithy.api#documentation": "Either a single positive integer version value or a slash delimited list of version values (1/2/3).", + "smithy.api#jsonName": "keyFormatVersions" } }, - "NetworkSettings": { - "target": "com.amazonaws.medialive#InputDeviceNetworkSettings", + "KeyProviderSettings": { + "target": "com.amazonaws.medialive#KeyProviderSettings", "traits": { - "smithy.api#documentation": "Network settings for the input device.", - "smithy.api#jsonName": "networkSettings" + "smithy.api#documentation": "The key provider settings.", + "smithy.api#jsonName": "keyProviderSettings" } }, - "SerialNumber": { - "target": "com.amazonaws.medialive#__string", + "ManifestCompression": { + "target": "com.amazonaws.medialive#HlsManifestCompression", "traits": { - "smithy.api#documentation": "The unique serial number of the input device.", - "smithy.api#jsonName": "serialNumber" - } + "smithy.api#documentation": "When set to gzip, compresses HLS playlist.", + "smithy.api#jsonName": "manifestCompression" + } }, - "Type": { - "target": "com.amazonaws.medialive#InputDeviceType", + "ManifestDurationFormat": { + "target": "com.amazonaws.medialive#HlsManifestDurationFormat", "traits": { - "smithy.api#documentation": "The type of the input device.", - "smithy.api#jsonName": "type" + "smithy.api#documentation": "Indicates whether the output manifest should use floating point or integer values for segment duration.", + "smithy.api#jsonName": "manifestDurationFormat" } }, - "UhdDeviceSettings": { - "target": "com.amazonaws.medialive#InputDeviceUhdSettings", + "MinSegmentLength": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#documentation": "Settings that describe an input device that is type UHD.", - "smithy.api#jsonName": "uhdDeviceSettings" + "smithy.api#documentation": "Minimum length of MPEG-2 Transport Stream segments in seconds. When set, minimum segment length is enforced by looking ahead and back within the specified range for a nearby avail and extending the segment size if needed.", + "smithy.api#jsonName": "minSegmentLength" } }, - "Tags": { - "target": "com.amazonaws.medialive#Tags", + "Mode": { + "target": "com.amazonaws.medialive#HlsMode", "traits": { - "smithy.api#documentation": "A collection of key-value pairs.", - "smithy.api#jsonName": "tags" + "smithy.api#documentation": "If \"vod\", all segments are indexed and kept permanently in the destination and manifest. If \"live\", only the number segments specified in keepSegments and indexNSegments are kept; newer segments replace older segments, which may prevent players from rewinding all the way to the beginning of the event.\n\nVOD mode uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a \"VOD\" type manifest on completion of the stream.", + "smithy.api#jsonName": "mode" } }, - "AvailabilityZone": { - "target": "com.amazonaws.medialive#__string", + "OutputSelection": { + "target": "com.amazonaws.medialive#HlsOutputSelection", "traits": { - "smithy.api#documentation": "The Availability Zone associated with this input device.", - "smithy.api#jsonName": "availabilityZone" + "smithy.api#documentation": "MANIFESTS_AND_SEGMENTS: Generates manifests (master manifest, if applicable, and media manifests) for this output group.\n\nVARIANT_MANIFESTS_AND_SEGMENTS: Generates media manifests for this output group, but not a master manifest.\n\nSEGMENTS_ONLY: Does not generate any manifests for this output group.", + "smithy.api#jsonName": "outputSelection" } }, - "MedialiveInputArns": { - "target": "com.amazonaws.medialive#__listOf__string", + "ProgramDateTime": { + "target": "com.amazonaws.medialive#HlsProgramDateTime", "traits": { - "smithy.api#documentation": "An array of the ARNs for the MediaLive inputs attached to the device. Returned only if the outputType is MEDIALIVE_INPUT.", - "smithy.api#jsonName": "medialiveInputArns" + "smithy.api#documentation": "Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The value is calculated using the program date time clock.", + "smithy.api#jsonName": "programDateTime" } }, - "OutputType": { - "target": "com.amazonaws.medialive#InputDeviceOutputType", + "ProgramDateTimeClock": { + "target": "com.amazonaws.medialive#HlsProgramDateTimeClock", "traits": { - "smithy.api#documentation": "The output attachment type of the input device. Specifies MEDIACONNECT_FLOW if this device is the source for a MediaConnect flow. Specifies MEDIALIVE_INPUT if this device is the source for a MediaLive input.", - "smithy.api#jsonName": "outputType" + "smithy.api#documentation": "Specifies the algorithm used to drive the HLS EXT-X-PROGRAM-DATE-TIME clock. Options include:\n\nINITIALIZE_FROM_OUTPUT_TIMECODE: The PDT clock is initialized as a function of the first output timecode, then incremented by the EXTINF duration of each encoded segment.\n\nSYSTEM_CLOCK: The PDT clock is initialized as a function of the UTC wall clock, then incremented by the EXTINF duration of each encoded segment. If the PDT clock diverges from the wall clock by more than 500ms, it is resynchronized to the wall clock.", + "smithy.api#jsonName": "programDateTimeClock" } - } - }, - "traits": { - "smithy.api#documentation": "Details of the input device." - } - }, - "com.amazonaws.medialive#InputDeviceThumbnail": { - "type": "blob", - "traits": { - "smithy.api#documentation": "The binary data for the thumbnail that the Link device has most recently sent to MediaLive.", - "smithy.api#streaming": {} - } - }, - "com.amazonaws.medialive#InputDeviceTransferType": { - "type": "enum", - "members": { - "OUTGOING": { - "target": "smithy.api#Unit", + }, + "ProgramDateTimePeriod": { + "target": "com.amazonaws.medialive#__integerMin0Max3600", "traits": { - "smithy.api#enumValue": "OUTGOING" + "smithy.api#documentation": "Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.", + "smithy.api#jsonName": "programDateTimePeriod" } }, - "INCOMING": { - "target": "smithy.api#Unit", + "RedundantManifest": { + "target": "com.amazonaws.medialive#HlsRedundantManifest", "traits": { - "smithy.api#enumValue": "INCOMING" + "smithy.api#documentation": "ENABLED: The master manifest (.m3u8 file) for each pipeline includes information about both pipelines: first its own media files, then the media files of the other pipeline. This feature allows playout device that support stale manifest detection to switch from one manifest to the other, when the current manifest seems to be stale. There are still two destinations and two master manifests, but both master manifests reference the media files from both pipelines.\n\nDISABLED: The master manifest (.m3u8 file) for each pipeline includes information about its own pipeline only.\n\nFor an HLS output group with MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage regenerates the manifests it serves to players so a redundant manifest from MediaLive is irrelevant.", + "smithy.api#jsonName": "redundantManifest" + } + }, + "SegmentLength": { + "target": "com.amazonaws.medialive#__integerMin1", + "traits": { + "smithy.api#documentation": "Length of MPEG-2 Transport Stream segments to create in seconds. Note that segments will end on the next keyframe after this duration, so actual segment length may be longer.", + "smithy.api#jsonName": "segmentLength" + } + }, + "SegmentationMode": { + "target": "com.amazonaws.medialive#HlsSegmentationMode", + "traits": { + "smithy.api#documentation": "useInputSegmentation has been deprecated. The configured segment size is always used.", + "smithy.api#jsonName": "segmentationMode" + } + }, + "SegmentsPerSubdirectory": { + "target": "com.amazonaws.medialive#__integerMin1", + "traits": { + "smithy.api#documentation": "Number of segments to write to a subdirectory before starting a new one. directoryStructure must be subdirectoryPerStream for this setting to have an effect.", + "smithy.api#jsonName": "segmentsPerSubdirectory" + } + }, + "StreamInfResolution": { + "target": "com.amazonaws.medialive#HlsStreamInfResolution", + "traits": { + "smithy.api#documentation": "Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of variant manifest.", + "smithy.api#jsonName": "streamInfResolution" + } + }, + "TimedMetadataId3Frame": { + "target": "com.amazonaws.medialive#HlsTimedMetadataId3Frame", + "traits": { + "smithy.api#documentation": "Indicates ID3 frame that has the timecode.", + "smithy.api#jsonName": "timedMetadataId3Frame" + } + }, + "TimedMetadataId3Period": { + "target": "com.amazonaws.medialive#__integerMin0", + "traits": { + "smithy.api#documentation": "Timed Metadata interval in seconds.", + "smithy.api#jsonName": "timedMetadataId3Period" + } + }, + "TimestampDeltaMilliseconds": { + "target": "com.amazonaws.medialive#__integerMin0", + "traits": { + "smithy.api#documentation": "Provides an extra millisecond delta offset to fine tune the timestamps.", + "smithy.api#jsonName": "timestampDeltaMilliseconds" + } + }, + "TsFileMode": { + "target": "com.amazonaws.medialive#HlsTsFileMode", + "traits": { + "smithy.api#documentation": "SEGMENTED_FILES: Emit the program as segments - multiple .ts media files.\n\nSINGLE_FILE: Applies only if Mode field is VOD. Emit the program as a single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback. A typical use for this value is when sending the output to AWS Elemental MediaConvert, which can accept only a single media file. Playback while the channel is running is not guaranteed due to HTTP server caching.", + "smithy.api#jsonName": "tsFileMode" } } }, "traits": { - "smithy.api#documentation": "The type of device transfer. INCOMING for an input device that is being transferred to you, OUTGOING for an input device that you are transferring to another AWS account." + "smithy.api#documentation": "Hls Group Settings" } }, - "com.amazonaws.medialive#InputDeviceType": { + "com.amazonaws.medialive#HlsH265PackagingType": { "type": "enum", "members": { - "HD": { + "HEV1": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "HD" + "smithy.api#enumValue": "HEV1" } }, - "UHD": { + "HVC1": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "UHD" + "smithy.api#enumValue": "HVC1" } } }, "traits": { - "smithy.api#documentation": "The type of the input device. For an AWS Elemental Link device that outputs resolutions up to 1080, choose \"HD\"." + "smithy.api#documentation": "Hls H265 Packaging Type" } }, - "com.amazonaws.medialive#InputDeviceUhdAudioChannelPairConfig": { + "com.amazonaws.medialive#HlsId3SegmentTaggingScheduleActionSettings": { "type": "structure", "members": { - "Id": { - "target": "com.amazonaws.medialive#__integer", + "Tag": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The ID for one audio pair configuration, a value from 1 to 8.", - "smithy.api#jsonName": "id" + "smithy.api#documentation": "ID3 tag to insert into each segment. Supports special keyword identifiers to substitute in segment-related values.\\nSupported keyword identifiers: https://docs.aws.amazon.com/medialive/latest/ug/variable-data-identifiers.html", + "smithy.api#jsonName": "tag" } }, - "Profile": { - "target": "com.amazonaws.medialive#InputDeviceUhdAudioChannelPairProfile", + "Id3": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The profile for one audio pair configuration. This property describes one audio configuration in the format (rate control algorithm)-(codec)_(quality)-(bitrate in bytes). For example, CBR-AAC_HQ-192000. Or DISABLED, in which case the device won't produce audio for this pair.", - "smithy.api#jsonName": "profile" + "smithy.api#documentation": "Base64 string formatted according to the ID3 specification: http://id3.org/id3v2.4.0-structure", + "smithy.api#jsonName": "id3" } } }, "traits": { - "smithy.api#documentation": "One audio configuration that specifies the format for one audio pair that the device produces as output." + "smithy.api#documentation": "Settings for the action to insert a user-defined ID3 tag in each HLS segment" } }, - "com.amazonaws.medialive#InputDeviceUhdAudioChannelPairProfile": { + "com.amazonaws.medialive#HlsId3SegmentTaggingState": { "type": "enum", "members": { "DISABLED": { @@ -13865,3470 +14820,5772 @@ "smithy.api#enumValue": "DISABLED" } }, - "VBR_AAC_HHE_16000": { + "ENABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "VBR-AAC_HHE-16000" + "smithy.api#enumValue": "ENABLED" } - }, - "VBR_AAC_HE_64000": { + } + }, + "traits": { + "smithy.api#documentation": "State of HLS ID3 Segment Tagging" + } + }, + "com.amazonaws.medialive#HlsIncompleteSegmentBehavior": { + "type": "enum", + "members": { + "AUTO": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "VBR-AAC_HE-64000" + "smithy.api#enumValue": "AUTO" } }, - "VBR_AAC_LC_128000": { + "SUPPRESS": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "VBR-AAC_LC-128000" + "smithy.api#enumValue": "SUPPRESS" + } + } + }, + "traits": { + "smithy.api#documentation": "Hls Incomplete Segment Behavior" + } + }, + "com.amazonaws.medialive#HlsInputSettings": { + "type": "structure", + "members": { + "Bandwidth": { + "target": "com.amazonaws.medialive#__integerMin0", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "bandwidth" } }, - "CBR_AAC_HQ_192000": { - "target": "smithy.api#Unit", + "BufferSegments": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "CBR-AAC_HQ-192000" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "bufferSegments" } }, - "CBR_AAC_HQ_256000": { - "target": "smithy.api#Unit", + "Retries": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "CBR-AAC_HQ-256000" + "smithy.api#documentation": "The number of consecutive times that attempts to read a manifest or segment must fail before the input is considered unavailable.", + "smithy.api#jsonName": "retries" } }, - "CBR_AAC_HQ_384000": { - "target": "smithy.api#Unit", + "RetryInterval": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "CBR-AAC_HQ-384000" + "smithy.api#documentation": "The number of seconds between retries when an attempt to read a manifest or segment fails.", + "smithy.api#jsonName": "retryInterval" } }, - "CBR_AAC_HQ_512000": { - "target": "smithy.api#Unit", + "Scte35Source": { + "target": "com.amazonaws.medialive#HlsScte35SourceType", "traits": { - "smithy.api#enumValue": "CBR-AAC_HQ-512000" + "smithy.api#documentation": "Identifies the source for the SCTE-35 messages that MediaLive will ingest. Messages can be ingested from the content segments (in the stream) or from tags in the playlist (the HLS manifest). MediaLive ignores SCTE-35 information in the source that is not selected.", + "smithy.api#jsonName": "scte35Source" } } }, "traits": { - "smithy.api#documentation": "Property of InputDeviceUhdAudioChannelPairConfig, which describes one audio channel that the device is configured to produce." + "smithy.api#documentation": "Hls Input Settings" } }, - "com.amazonaws.medialive#InputDeviceUhdSettings": { - "type": "structure", + "com.amazonaws.medialive#HlsIvInManifest": { + "type": "enum", "members": { - "ActiveInput": { - "target": "com.amazonaws.medialive#InputDeviceActiveInput", + "EXCLUDE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "If you specified Auto as the configured input, specifies which of the sources is currently active (SDI or HDMI).", - "smithy.api#jsonName": "activeInput" + "smithy.api#enumValue": "EXCLUDE" } }, - "ConfiguredInput": { - "target": "com.amazonaws.medialive#InputDeviceConfiguredInput", + "INCLUDE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The source at the input device that is currently active. You can specify this source.", - "smithy.api#jsonName": "configuredInput" + "smithy.api#enumValue": "INCLUDE" } - }, - "DeviceState": { - "target": "com.amazonaws.medialive#InputDeviceState", + } + }, + "traits": { + "smithy.api#documentation": "Hls Iv In Manifest" + } + }, + "com.amazonaws.medialive#HlsIvSource": { + "type": "enum", + "members": { + "EXPLICIT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The state of the input device.", - "smithy.api#jsonName": "deviceState" + "smithy.api#enumValue": "EXPLICIT" } }, - "Framerate": { - "target": "com.amazonaws.medialive#__double", + "FOLLOWS_SEGMENT_NUMBER": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The frame rate of the video source.", - "smithy.api#jsonName": "framerate" + "smithy.api#enumValue": "FOLLOWS_SEGMENT_NUMBER" } - }, - "Height": { - "target": "com.amazonaws.medialive#__integer", + } + }, + "traits": { + "smithy.api#documentation": "Hls Iv Source" + } + }, + "com.amazonaws.medialive#HlsManifestCompression": { + "type": "enum", + "members": { + "GZIP": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The height of the video source, in pixels.", - "smithy.api#jsonName": "height" + "smithy.api#enumValue": "GZIP" } }, - "MaxBitrate": { - "target": "com.amazonaws.medialive#__integer", + "NONE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The current maximum bitrate for ingesting this source, in bits per second. You can specify this maximum.", - "smithy.api#jsonName": "maxBitrate" + "smithy.api#enumValue": "NONE" } - }, - "ScanType": { - "target": "com.amazonaws.medialive#InputDeviceScanType", + } + }, + "traits": { + "smithy.api#documentation": "Hls Manifest Compression" + } + }, + "com.amazonaws.medialive#HlsManifestDurationFormat": { + "type": "enum", + "members": { + "FLOATING_POINT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The scan type of the video source.", - "smithy.api#jsonName": "scanType" + "smithy.api#enumValue": "FLOATING_POINT" } }, - "Width": { - "target": "com.amazonaws.medialive#__integer", + "INTEGER": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The width of the video source, in pixels.", - "smithy.api#jsonName": "width" + "smithy.api#enumValue": "INTEGER" + } + } + }, + "traits": { + "smithy.api#documentation": "Hls Manifest Duration Format" + } + }, + "com.amazonaws.medialive#HlsMediaStoreSettings": { + "type": "structure", + "members": { + "ConnectionRetryInterval": { + "target": "com.amazonaws.medialive#__integerMin0", + "traits": { + "smithy.api#documentation": "Number of seconds to wait before retrying connection to the CDN if the connection is lost.", + "smithy.api#jsonName": "connectionRetryInterval" } }, - "LatencyMs": { - "target": "com.amazonaws.medialive#__integer", + "FilecacheDuration": { + "target": "com.amazonaws.medialive#__integerMin0Max600", "traits": { - "smithy.api#documentation": "The Link device's buffer size (latency) in milliseconds (ms). You can specify this value.", - "smithy.api#jsonName": "latencyMs" + "smithy.api#documentation": "Size in seconds of file cache for streaming outputs.", + "smithy.api#jsonName": "filecacheDuration" } }, - "Codec": { - "target": "com.amazonaws.medialive#InputDeviceCodec", + "MediaStoreStorageClass": { + "target": "com.amazonaws.medialive#HlsMediaStoreStorageClass", "traits": { - "smithy.api#documentation": "The codec for the video that the device produces.", - "smithy.api#jsonName": "codec" + "smithy.api#documentation": "When set to temporal, output files are stored in non-persistent memory for faster reading and writing.", + "smithy.api#jsonName": "mediaStoreStorageClass" } }, - "MediaconnectSettings": { - "target": "com.amazonaws.medialive#InputDeviceMediaConnectSettings", + "NumRetries": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#documentation": "Information about the MediaConnect flow attached to the device. Returned only if the outputType is MEDIACONNECT_FLOW.", - "smithy.api#jsonName": "mediaconnectSettings" + "smithy.api#documentation": "Number of retry attempts that will be made before the Live Event is put into an error state. Applies only if the CDN destination URI begins with \"s3\" or \"mediastore\". For other URIs, the value is always 3.", + "smithy.api#jsonName": "numRetries" } }, - "AudioChannelPairs": { - "target": "com.amazonaws.medialive#__listOfInputDeviceUhdAudioChannelPairConfig", + "RestartDelay": { + "target": "com.amazonaws.medialive#__integerMin0Max15", "traits": { - "smithy.api#documentation": "An array of eight audio configurations, one for each audio pair in the source. Each audio configuration specifies either to exclude the pair, or to format it and include it in the output from the UHD device. Applies only when the device is configured as the source for a MediaConnect flow.", - "smithy.api#jsonName": "audioChannelPairs" + "smithy.api#documentation": "If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart.", + "smithy.api#jsonName": "restartDelay" } } }, "traits": { - "smithy.api#documentation": "Settings that describe the active source from the input device, and the video characteristics of that source." + "smithy.api#documentation": "Hls Media Store Settings" } }, - "com.amazonaws.medialive#InputFilter": { + "com.amazonaws.medialive#HlsMediaStoreStorageClass": { "type": "enum", "members": { - "AUTO": { + "TEMPORAL": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "AUTO" + "smithy.api#enumValue": "TEMPORAL" } - }, - "DISABLED": { + } + }, + "traits": { + "smithy.api#documentation": "Hls Media Store Storage Class" + } + }, + "com.amazonaws.medialive#HlsMode": { + "type": "enum", + "members": { + "LIVE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "LIVE" } }, - "FORCED": { + "VOD": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FORCED" + "smithy.api#enumValue": "VOD" } } }, "traits": { - "smithy.api#documentation": "Input Filter" + "smithy.api#documentation": "Hls Mode" } }, - "com.amazonaws.medialive#InputLocation": { - "type": "structure", + "com.amazonaws.medialive#HlsOutputSelection": { + "type": "enum", "members": { - "PasswordParam": { - "target": "com.amazonaws.medialive#__string", + "MANIFESTS_AND_SEGMENTS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "key used to extract the password from EC2 Parameter store", - "smithy.api#jsonName": "passwordParam" + "smithy.api#enumValue": "MANIFESTS_AND_SEGMENTS" } }, - "Uri": { - "target": "com.amazonaws.medialive#__stringMax2048", + "SEGMENTS_ONLY": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "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 RTMP destination should have a uri simliar to: \"rtmp://fmsserver/live\".", - "smithy.api#jsonName": "uri", - "smithy.api#required": {} + "smithy.api#enumValue": "SEGMENTS_ONLY" } }, - "Username": { - "target": "com.amazonaws.medialive#__string", + "VARIANT_MANIFESTS_AND_SEGMENTS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Documentation update needed", - "smithy.api#jsonName": "username" + "smithy.api#enumValue": "VARIANT_MANIFESTS_AND_SEGMENTS" } } }, "traits": { - "smithy.api#documentation": "Input Location" + "smithy.api#documentation": "Hls Output Selection" } }, - "com.amazonaws.medialive#InputLossActionForHlsOut": { - "type": "enum", + "com.amazonaws.medialive#HlsOutputSettings": { + "type": "structure", "members": { - "EMIT_OUTPUT": { - "target": "smithy.api#Unit", + "H265PackagingType": { + "target": "com.amazonaws.medialive#HlsH265PackagingType", "traits": { - "smithy.api#enumValue": "EMIT_OUTPUT" + "smithy.api#documentation": "Only applicable when this output is referencing an H.265 video description.\nSpecifies whether MP4 segments should be packaged as HEV1 or HVC1.", + "smithy.api#jsonName": "h265PackagingType" } }, - "PAUSE_OUTPUT": { - "target": "smithy.api#Unit", + "HlsSettings": { + "target": "com.amazonaws.medialive#HlsSettings", "traits": { - "smithy.api#enumValue": "PAUSE_OUTPUT" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Settings regarding the underlying stream. These settings are different for audio-only outputs.", + "smithy.api#jsonName": "hlsSettings", + "smithy.api#required": {} + } + }, + "NameModifier": { + "target": "com.amazonaws.medialive#__stringMin1", + "traits": { + "smithy.api#documentation": "String concatenated to the end of the destination filename. Accepts \\\"Format Identifiers\\\":#formatIdentifierParameters.", + "smithy.api#jsonName": "nameModifier" + } + }, + "SegmentModifier": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "String concatenated to end of segment filenames.", + "smithy.api#jsonName": "segmentModifier" } } }, "traits": { - "smithy.api#documentation": "Input Loss Action For Hls Out" + "smithy.api#documentation": "Hls Output Settings" } }, - "com.amazonaws.medialive#InputLossActionForMsSmoothOut": { + "com.amazonaws.medialive#HlsProgramDateTime": { "type": "enum", "members": { - "EMIT_OUTPUT": { + "EXCLUDE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EMIT_OUTPUT" + "smithy.api#enumValue": "EXCLUDE" } }, - "PAUSE_OUTPUT": { + "INCLUDE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PAUSE_OUTPUT" + "smithy.api#enumValue": "INCLUDE" } } }, "traits": { - "smithy.api#documentation": "Input Loss Action For Ms Smooth Out" + "smithy.api#documentation": "Hls Program Date Time" } }, - "com.amazonaws.medialive#InputLossActionForRtmpOut": { + "com.amazonaws.medialive#HlsProgramDateTimeClock": { "type": "enum", "members": { - "EMIT_OUTPUT": { + "INITIALIZE_FROM_OUTPUT_TIMECODE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EMIT_OUTPUT" + "smithy.api#enumValue": "INITIALIZE_FROM_OUTPUT_TIMECODE" } }, - "PAUSE_OUTPUT": { + "SYSTEM_CLOCK": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PAUSE_OUTPUT" + "smithy.api#enumValue": "SYSTEM_CLOCK" } } }, "traits": { - "smithy.api#documentation": "Input Loss Action For Rtmp Out" + "smithy.api#documentation": "Hls Program Date Time Clock" } }, - "com.amazonaws.medialive#InputLossActionForUdpOut": { + "com.amazonaws.medialive#HlsRedundantManifest": { "type": "enum", "members": { - "DROP_PROGRAM": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DROP_PROGRAM" - } - }, - "DROP_TS": { + "DISABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DROP_TS" + "smithy.api#enumValue": "DISABLED" } }, - "EMIT_PROGRAM": { + "ENABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EMIT_PROGRAM" + "smithy.api#enumValue": "ENABLED" } } }, "traits": { - "smithy.api#documentation": "Input Loss Action For Udp Out" + "smithy.api#documentation": "Hls Redundant Manifest" } }, - "com.amazonaws.medialive#InputLossBehavior": { + "com.amazonaws.medialive#HlsS3Settings": { "type": "structure", "members": { - "BlackFrameMsec": { - "target": "com.amazonaws.medialive#__integerMin0Max1000000", + "CannedAcl": { + "target": "com.amazonaws.medialive#S3CannedAcl", "traits": { - "smithy.api#documentation": "Documentation update needed", - "smithy.api#jsonName": "blackFrameMsec" + "smithy.api#documentation": "Specify the canned ACL to apply to each S3 request. Defaults to none.", + "smithy.api#jsonName": "cannedAcl" } - }, - "InputLossImageColor": { - "target": "com.amazonaws.medialive#__stringMin6Max6", + } + }, + "traits": { + "smithy.api#documentation": "Hls S3 Settings" + } + }, + "com.amazonaws.medialive#HlsScte35SourceType": { + "type": "enum", + "members": { + "MANIFEST": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "When input loss image type is \"color\" this field specifies the color to use. Value: 6 hex characters representing the values of RGB.", - "smithy.api#jsonName": "inputLossImageColor" + "smithy.api#enumValue": "MANIFEST" } }, - "InputLossImageSlate": { - "target": "com.amazonaws.medialive#InputLocation", + "SEGMENTS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "When input loss image type is \"slate\" these fields specify the parameters for accessing the slate.", - "smithy.api#jsonName": "inputLossImageSlate" + "smithy.api#enumValue": "SEGMENTS" } - }, - "InputLossImageType": { - "target": "com.amazonaws.medialive#InputLossImageType", + } + }, + "traits": { + "smithy.api#documentation": "Hls Scte35 Source Type" + } + }, + "com.amazonaws.medialive#HlsSegmentationMode": { + "type": "enum", + "members": { + "USE_INPUT_SEGMENTATION": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Indicates whether to substitute a solid color or a slate into the output after input loss exceeds blackFrameMsec.", - "smithy.api#jsonName": "inputLossImageType" + "smithy.api#enumValue": "USE_INPUT_SEGMENTATION" } }, - "RepeatFrameMsec": { - "target": "com.amazonaws.medialive#__integerMin0Max1000000", + "USE_SEGMENT_DURATION": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Documentation update needed", - "smithy.api#jsonName": "repeatFrameMsec" + "smithy.api#enumValue": "USE_SEGMENT_DURATION" } } }, "traits": { - "smithy.api#documentation": "Input Loss Behavior" + "smithy.api#documentation": "Hls Segmentation Mode" } }, - "com.amazonaws.medialive#InputLossFailoverSettings": { + "com.amazonaws.medialive#HlsSettings": { "type": "structure", "members": { - "InputLossThresholdMsec": { - "target": "com.amazonaws.medialive#__integerMin100", + "AudioOnlyHlsSettings": { + "target": "com.amazonaws.medialive#AudioOnlyHlsSettings", "traits": { - "smithy.api#documentation": "The amount of time (in milliseconds) that no input is detected. After that time, an input failover will occur.", - "smithy.api#jsonName": "inputLossThresholdMsec" + "smithy.api#jsonName": "audioOnlyHlsSettings" + } + }, + "Fmp4HlsSettings": { + "target": "com.amazonaws.medialive#Fmp4HlsSettings", + "traits": { + "smithy.api#jsonName": "fmp4HlsSettings" + } + }, + "FrameCaptureHlsSettings": { + "target": "com.amazonaws.medialive#FrameCaptureHlsSettings", + "traits": { + "smithy.api#jsonName": "frameCaptureHlsSettings" + } + }, + "StandardHlsSettings": { + "target": "com.amazonaws.medialive#StandardHlsSettings", + "traits": { + "smithy.api#jsonName": "standardHlsSettings" } } }, "traits": { - "smithy.api#documentation": "MediaLive will perform a failover if content is not detected in this input for the specified period." + "smithy.api#documentation": "Hls Settings" } }, - "com.amazonaws.medialive#InputLossImageType": { + "com.amazonaws.medialive#HlsStreamInfResolution": { "type": "enum", "members": { - "COLOR": { + "EXCLUDE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "COLOR" + "smithy.api#enumValue": "EXCLUDE" } }, - "SLATE": { + "INCLUDE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SLATE" + "smithy.api#enumValue": "INCLUDE" } } }, "traits": { - "smithy.api#documentation": "Input Loss Image Type" + "smithy.api#documentation": "Hls Stream Inf Resolution" } }, - "com.amazonaws.medialive#InputMaximumBitrate": { + "com.amazonaws.medialive#HlsTimedMetadataId3Frame": { "type": "enum", "members": { - "MAX_10_MBPS": { + "NONE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MAX_10_MBPS" + "smithy.api#enumValue": "NONE" } }, - "MAX_20_MBPS": { + "PRIV": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MAX_20_MBPS" + "smithy.api#enumValue": "PRIV" } }, - "MAX_50_MBPS": { + "TDRL": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MAX_50_MBPS" + "smithy.api#enumValue": "TDRL" } } }, "traits": { - "smithy.api#documentation": "Maximum input bitrate in megabits per second. Bitrates up to 50 Mbps are supported currently." + "smithy.api#documentation": "Hls Timed Metadata Id3 Frame" } }, - "com.amazonaws.medialive#InputPreference": { - "type": "enum", + "com.amazonaws.medialive#HlsTimedMetadataScheduleActionSettings": { + "type": "structure", "members": { - "EQUAL_INPUT_PREFERENCE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "EQUAL_INPUT_PREFERENCE" - } - }, - "PRIMARY_INPUT_PREFERRED": { - "target": "smithy.api#Unit", + "Id3": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "PRIMARY_INPUT_PREFERRED" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Base64 string formatted according to the ID3 specification: http://id3.org/id3v2.4.0-structure", + "smithy.api#jsonName": "id3", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Input preference when deciding which input to make active when a previously failed input has recovered.\nIf \\\"EQUAL_INPUT_PREFERENCE\\\", then the active input will stay active as long as it is healthy.\nIf \\\"PRIMARY_INPUT_PREFERRED\\\", then always switch back to the primary input when it is healthy." + "smithy.api#documentation": "Settings for the action to emit HLS metadata" } }, - "com.amazonaws.medialive#InputPrepareScheduleActionSettings": { - "type": "structure", + "com.amazonaws.medialive#HlsTsFileMode": { + "type": "enum", "members": { - "InputAttachmentNameReference": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The name of the input attachment that should be prepared by this action. If no name is provided, the action will stop the most recent prepare (if any) when activated.", - "smithy.api#jsonName": "inputAttachmentNameReference" - } - }, - "InputClippingSettings": { - "target": "com.amazonaws.medialive#InputClippingSettings", + "SEGMENTED_FILES": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Settings to let you create a clip of the file input, in order to set up the input to ingest only a portion of the file.", - "smithy.api#jsonName": "inputClippingSettings" + "smithy.api#enumValue": "SEGMENTED_FILES" } }, - "UrlPath": { - "target": "com.amazonaws.medialive#__listOf__string", + "SINGLE_FILE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The value for the variable portion of the URL for the dynamic input, for this instance of the input. Each time you use the same dynamic input in an input switch action, you can provide a different value, in order to connect the input to a different content source.", - "smithy.api#jsonName": "urlPath" + "smithy.api#enumValue": "SINGLE_FILE" } } }, "traits": { - "smithy.api#documentation": "Action to prepare an input for a future immediate input switch." + "smithy.api#documentation": "Hls Ts File Mode" } }, - "com.amazonaws.medialive#InputResolution": { + "com.amazonaws.medialive#HlsWebdavHttpTransferMode": { "type": "enum", "members": { - "SD": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SD" - } - }, - "HD": { + "CHUNKED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "HD" + "smithy.api#enumValue": "CHUNKED" } }, - "UHD": { + "NON_CHUNKED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "UHD" + "smithy.api#enumValue": "NON_CHUNKED" } } }, "traits": { - "smithy.api#documentation": "Input resolution based on lines of vertical resolution in the input; SD is less than 720 lines, HD is 720 to 1080 lines, UHD is greater than 1080 lines" + "smithy.api#documentation": "Hls Webdav Http Transfer Mode" } }, - "com.amazonaws.medialive#InputSecurityGroup": { + "com.amazonaws.medialive#HlsWebdavSettings": { "type": "structure", "members": { - "Arn": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Unique ARN of Input Security Group", - "smithy.api#jsonName": "arn" - } - }, - "Id": { - "target": "com.amazonaws.medialive#__string", + "ConnectionRetryInterval": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#documentation": "The Id of the Input Security Group", - "smithy.api#jsonName": "id" + "smithy.api#documentation": "Number of seconds to wait before retrying connection to the CDN if the connection is lost.", + "smithy.api#jsonName": "connectionRetryInterval" } }, - "Inputs": { - "target": "com.amazonaws.medialive#__listOf__string", + "FilecacheDuration": { + "target": "com.amazonaws.medialive#__integerMin0Max600", "traits": { - "smithy.api#documentation": "The list of inputs currently using this Input Security Group.", - "smithy.api#jsonName": "inputs" + "smithy.api#documentation": "Size in seconds of file cache for streaming outputs.", + "smithy.api#jsonName": "filecacheDuration" } }, - "State": { - "target": "com.amazonaws.medialive#InputSecurityGroupState", + "HttpTransferMode": { + "target": "com.amazonaws.medialive#HlsWebdavHttpTransferMode", "traits": { - "smithy.api#documentation": "The current state of the Input Security Group.", - "smithy.api#jsonName": "state" + "smithy.api#documentation": "Specify whether or not to use chunked transfer encoding to WebDAV.", + "smithy.api#jsonName": "httpTransferMode" } }, - "Tags": { - "target": "com.amazonaws.medialive#Tags", + "NumRetries": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#documentation": "A collection of key-value pairs.", - "smithy.api#jsonName": "tags" + "smithy.api#documentation": "Number of retry attempts that will be made before the Live Event is put into an error state. Applies only if the CDN destination URI begins with \"s3\" or \"mediastore\". For other URIs, the value is always 3.", + "smithy.api#jsonName": "numRetries" } }, - "WhitelistRules": { - "target": "com.amazonaws.medialive#__listOfInputWhitelistRule", + "RestartDelay": { + "target": "com.amazonaws.medialive#__integerMin0Max15", "traits": { - "smithy.api#documentation": "Whitelist rules and their sync status", - "smithy.api#jsonName": "whitelistRules" + "smithy.api#documentation": "If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart.", + "smithy.api#jsonName": "restartDelay" } } }, "traits": { - "smithy.api#documentation": "An Input Security Group" + "smithy.api#documentation": "Hls Webdav Settings" } }, - "com.amazonaws.medialive#InputSecurityGroupState": { + "com.amazonaws.medialive#HtmlMotionGraphicsSettings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Html Motion Graphics Settings" + } + }, + "com.amazonaws.medialive#IFrameOnlyPlaylistType": { "type": "enum", "members": { - "IDLE": { + "DISABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "IDLE" + "smithy.api#enumValue": "DISABLED" } }, - "IN_USE": { + "STANDARD": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "IN_USE" + "smithy.api#enumValue": "STANDARD" } - }, - "UPDATING": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "UPDATING" + } + }, + "traits": { + "smithy.api#documentation": "When set to \"standard\", an I-Frame only playlist will be written out for each video output in the output group. This I-Frame only playlist will contain byte range offsets pointing to the I-frame(s) in each segment." + } + }, + "com.amazonaws.medialive#ImmediateModeScheduleActionStartSettings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Settings to configure an action so that it occurs as soon as possible." + } + }, + "com.amazonaws.medialive#IncludeFillerNalUnits": { + "type": "enum", + "members": { + "AUTO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTO" } }, - "DELETED": { + "DROP": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DELETED" + "smithy.api#enumValue": "DROP" + } + }, + "INCLUDE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INCLUDE" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for InputSecurityGroupState" + "smithy.api#documentation": "Include Filler Nal Units" } }, - "com.amazonaws.medialive#InputSettings": { + "com.amazonaws.medialive#Input": { "type": "structure", "members": { - "AudioSelectors": { - "target": "com.amazonaws.medialive#__listOfAudioSelector", + "Arn": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Used to select the audio stream to decode for inputs that have multiple available.", - "smithy.api#jsonName": "audioSelectors" + "smithy.api#documentation": "The Unique ARN of the input (generated, immutable).", + "smithy.api#jsonName": "arn" } }, - "CaptionSelectors": { - "target": "com.amazonaws.medialive#__listOfCaptionSelector", + "AttachedChannels": { + "target": "com.amazonaws.medialive#__listOf__string", "traits": { - "smithy.api#documentation": "Used to select the caption input to use for inputs that have multiple available.", - "smithy.api#jsonName": "captionSelectors" + "smithy.api#documentation": "A list of channel IDs that that input is attached to (currently an input can only be attached to one channel).", + "smithy.api#jsonName": "attachedChannels" } }, - "DeblockFilter": { - "target": "com.amazonaws.medialive#InputDeblockFilter", + "Destinations": { + "target": "com.amazonaws.medialive#__listOfInputDestination", "traits": { - "smithy.api#documentation": "Enable or disable the deblock filter when filtering.", - "smithy.api#jsonName": "deblockFilter" + "smithy.api#documentation": "A list of the destinations of the input (PUSH-type).", + "smithy.api#jsonName": "destinations" } }, - "DenoiseFilter": { - "target": "com.amazonaws.medialive#InputDenoiseFilter", + "Id": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Enable or disable the denoise filter when filtering.", - "smithy.api#jsonName": "denoiseFilter" + "smithy.api#documentation": "The generated ID of the input (unique for user account, immutable).", + "smithy.api#jsonName": "id" } }, - "FilterStrength": { - "target": "com.amazonaws.medialive#__integerMin1Max5", + "InputClass": { + "target": "com.amazonaws.medialive#InputClass", "traits": { - "smithy.api#documentation": "Adjusts the magnitude of filtering from 1 (minimal) to 5 (strongest).", - "smithy.api#jsonName": "filterStrength" + "smithy.api#documentation": "STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails.\nSINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input.", + "smithy.api#jsonName": "inputClass" } }, - "InputFilter": { - "target": "com.amazonaws.medialive#InputFilter", + "InputDevices": { + "target": "com.amazonaws.medialive#__listOfInputDeviceSettings", "traits": { - "smithy.api#documentation": "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", - "smithy.api#jsonName": "inputFilter" + "smithy.api#documentation": "Settings for the input devices.", + "smithy.api#jsonName": "inputDevices" } }, - "NetworkInputSettings": { - "target": "com.amazonaws.medialive#NetworkInputSettings", + "InputPartnerIds": { + "target": "com.amazonaws.medialive#__listOf__string", "traits": { - "smithy.api#documentation": "Input settings.", - "smithy.api#jsonName": "networkInputSettings" + "smithy.api#documentation": "A list of IDs for all Inputs which are partners of this one.", + "smithy.api#jsonName": "inputPartnerIds" } }, - "Scte35Pid": { - "target": "com.amazonaws.medialive#__integerMin32Max8191", + "InputSourceType": { + "target": "com.amazonaws.medialive#InputSourceType", "traits": { - "smithy.api#documentation": "PID from which to read SCTE-35 messages. If left undefined, EML will select the first SCTE-35 PID found in the input.", - "smithy.api#jsonName": "scte35Pid" + "smithy.api#documentation": "Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes\nduring input switch actions. Presently, this functionality only works with MP4_FILE and TS_FILE inputs.", + "smithy.api#jsonName": "inputSourceType" } }, - "Smpte2038DataPreference": { - "target": "com.amazonaws.medialive#Smpte2038DataPreference", + "MediaConnectFlows": { + "target": "com.amazonaws.medialive#__listOfMediaConnectFlow", "traits": { - "smithy.api#documentation": "Specifies whether to extract applicable ancillary data from a SMPTE-2038 source in this input. Applicable data types are captions, timecode, AFD, and SCTE-104 messages.\n- PREFER: Extract from SMPTE-2038 if present in this input, otherwise extract from another source (if any).\n- IGNORE: Never extract any ancillary data from SMPTE-2038.", - "smithy.api#jsonName": "smpte2038DataPreference" + "smithy.api#documentation": "A list of MediaConnect Flows for this input.", + "smithy.api#jsonName": "mediaConnectFlows" } }, - "SourceEndBehavior": { - "target": "com.amazonaws.medialive#InputSourceEndBehavior", + "Name": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Loop input if it is a file. This allows a file input to be streamed indefinitely.", - "smithy.api#jsonName": "sourceEndBehavior" + "smithy.api#documentation": "The user-assigned name (This is a mutable value).", + "smithy.api#jsonName": "name" } }, - "VideoSelector": { - "target": "com.amazonaws.medialive#VideoSelector", + "RoleArn": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Informs which video elementary stream to decode for input types that have multiple available.", - "smithy.api#jsonName": "videoSelector" + "smithy.api#documentation": "The Amazon Resource Name (ARN) of the role this input assumes during and after creation.", + "smithy.api#jsonName": "roleArn" + } + }, + "SecurityGroups": { + "target": "com.amazonaws.medialive#__listOf__string", + "traits": { + "smithy.api#documentation": "A list of IDs for all the Input Security Groups attached to the input.", + "smithy.api#jsonName": "securityGroups" + } + }, + "Sources": { + "target": "com.amazonaws.medialive#__listOfInputSource", + "traits": { + "smithy.api#documentation": "A list of the sources of the input (PULL-type).", + "smithy.api#jsonName": "sources" + } + }, + "State": { + "target": "com.amazonaws.medialive#InputState", + "traits": { + "smithy.api#jsonName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#Tags", + "traits": { + "smithy.api#documentation": "A collection of key-value pairs.", + "smithy.api#jsonName": "tags" + } + }, + "Type": { + "target": "com.amazonaws.medialive#InputType", + "traits": { + "smithy.api#jsonName": "type" } } }, "traits": { - "smithy.api#documentation": "Live Event input parameters. There can be multiple inputs in a single Live Event." + "smithy.api#documentation": "Placeholder documentation for Input" } }, - "com.amazonaws.medialive#InputSource": { + "com.amazonaws.medialive#InputAttachment": { "type": "structure", "members": { - "PasswordParam": { - "target": "com.amazonaws.medialive#__string", + "AutomaticInputFailoverSettings": { + "target": "com.amazonaws.medialive#AutomaticInputFailoverSettings", "traits": { - "smithy.api#documentation": "The key used to extract the password from EC2 Parameter store.", - "smithy.api#jsonName": "passwordParam" + "smithy.api#documentation": "User-specified settings for defining what the conditions are for declaring the input unhealthy and failing over to a different input.", + "smithy.api#jsonName": "automaticInputFailoverSettings" } }, - "Url": { + "InputAttachmentName": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "This represents the customer's source URL where stream is\npulled from.", - "smithy.api#jsonName": "url" + "smithy.api#documentation": "User-specified name for the attachment. This is required if the user wants to use this input in an input switch action.", + "smithy.api#jsonName": "inputAttachmentName" } }, - "Username": { + "InputId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The username for the input source.", - "smithy.api#jsonName": "username" - } - } - }, - "traits": { - "smithy.api#documentation": "The settings for a PULL type input." - } - }, - "com.amazonaws.medialive#InputSourceEndBehavior": { - "type": "enum", - "members": { - "CONTINUE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CONTINUE" + "smithy.api#documentation": "The ID of the input", + "smithy.api#jsonName": "inputId" } }, - "LOOP": { - "target": "smithy.api#Unit", + "InputSettings": { + "target": "com.amazonaws.medialive#InputSettings", "traits": { - "smithy.api#enumValue": "LOOP" + "smithy.api#documentation": "Settings of an input (caption selector, etc.)", + "smithy.api#jsonName": "inputSettings" } } }, "traits": { - "smithy.api#documentation": "Input Source End Behavior" + "smithy.api#documentation": "Placeholder documentation for InputAttachment" } }, - "com.amazonaws.medialive#InputSourceRequest": { + "com.amazonaws.medialive#InputChannelLevel": { "type": "structure", "members": { - "PasswordParam": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The key used to extract the password from EC2 Parameter store.", - "smithy.api#jsonName": "passwordParam" - } - }, - "Url": { - "target": "com.amazonaws.medialive#__string", + "Gain": { + "target": "com.amazonaws.medialive#__integerMinNegative60Max6", "traits": { - "smithy.api#documentation": "This represents the customer's source URL where stream is\npulled from.", - "smithy.api#jsonName": "url" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Remixing value. Units are in dB and acceptable values are within the range from -60 (mute) and 6 dB.", + "smithy.api#jsonName": "gain", + "smithy.api#required": {} } }, - "Username": { - "target": "com.amazonaws.medialive#__string", + "InputChannel": { + "target": "com.amazonaws.medialive#__integerMin0Max15", "traits": { - "smithy.api#documentation": "The username for the input source.", - "smithy.api#jsonName": "username" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The index of the input channel used as a source.", + "smithy.api#jsonName": "inputChannel", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Settings for for a PULL type input." + "smithy.api#documentation": "Input Channel Level" } }, - "com.amazonaws.medialive#InputSourceType": { + "com.amazonaws.medialive#InputClass": { "type": "enum", "members": { - "STATIC": { + "STANDARD": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "STATIC" + "smithy.api#enumValue": "STANDARD" } }, - "DYNAMIC": { + "SINGLE_PIPELINE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DYNAMIC" + "smithy.api#enumValue": "SINGLE_PIPELINE" } } }, "traits": { - "smithy.api#documentation": "There are two types of input sources, static and dynamic. If an input source is dynamic you can\nchange the source url of the input dynamically using an input switch action. Currently, two input types\nsupport a dynamic url at this time, MP4_FILE and TS_FILE. By default all input sources are static." + "smithy.api#documentation": "A standard input has two sources and a single pipeline input only has one." } }, - "com.amazonaws.medialive#InputSpecification": { + "com.amazonaws.medialive#InputClippingSettings": { "type": "structure", "members": { - "Codec": { - "target": "com.amazonaws.medialive#InputCodec", + "InputTimecodeSource": { + "target": "com.amazonaws.medialive#InputTimecodeSource", "traits": { - "smithy.api#documentation": "Input codec", - "smithy.api#jsonName": "codec" - } - }, - "MaximumBitrate": { - "target": "com.amazonaws.medialive#InputMaximumBitrate", + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The source of the timecodes in the source being clipped.", + "smithy.api#jsonName": "inputTimecodeSource", + "smithy.api#required": {} + } + }, + "StartTimecode": { + "target": "com.amazonaws.medialive#StartTimecode", "traits": { - "smithy.api#documentation": "Maximum input bitrate, categorized coarsely", - "smithy.api#jsonName": "maximumBitrate" + "smithy.api#documentation": "Settings to identify the start of the clip.", + "smithy.api#jsonName": "startTimecode" } }, - "Resolution": { - "target": "com.amazonaws.medialive#InputResolution", + "StopTimecode": { + "target": "com.amazonaws.medialive#StopTimecode", "traits": { - "smithy.api#documentation": "Input resolution, categorized coarsely", - "smithy.api#jsonName": "resolution" + "smithy.api#documentation": "Settings to identify the end of the clip.", + "smithy.api#jsonName": "stopTimecode" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for InputSpecification" + "smithy.api#documentation": "Settings to let you create a clip of the file input, in order to set up the input to ingest only a portion of the file." } }, - "com.amazonaws.medialive#InputState": { + "com.amazonaws.medialive#InputCodec": { "type": "enum", "members": { - "CREATING": { + "MPEG2": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CREATING" + "smithy.api#enumValue": "MPEG2" } }, - "DETACHED": { + "AVC": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DETACHED" + "smithy.api#enumValue": "AVC" } }, - "ATTACHED": { + "HEVC": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ATTACHED" + "smithy.api#enumValue": "HEVC" + } + } + }, + "traits": { + "smithy.api#documentation": "codec in increasing order of complexity" + } + }, + "com.amazonaws.medialive#InputDeblockFilter": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" } }, - "DELETING": { + "ENABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DELETING" + "smithy.api#enumValue": "ENABLED" + } + } + }, + "traits": { + "smithy.api#documentation": "Input Deblock Filter" + } + }, + "com.amazonaws.medialive#InputDenoiseFilter": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" } }, - "DELETED": { + "ENABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DELETED" + "smithy.api#enumValue": "ENABLED" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for InputState" + "smithy.api#documentation": "Input Denoise Filter" } }, - "com.amazonaws.medialive#InputSwitchScheduleActionSettings": { + "com.amazonaws.medialive#InputDestination": { "type": "structure", "members": { - "InputAttachmentNameReference": { + "Ip": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The name of the input attachment (not the name of the input!) to switch to. The name is specified in the channel configuration.", - "smithy.api#jsonName": "inputAttachmentNameReference", - "smithy.api#required": {} + "smithy.api#documentation": "The system-generated static IP address of endpoint.\nIt remains fixed for the lifetime of the input.", + "smithy.api#jsonName": "ip" } }, - "InputClippingSettings": { - "target": "com.amazonaws.medialive#InputClippingSettings", + "Port": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Settings to let you create a clip of the file input, in order to set up the input to ingest only a portion of the file.", - "smithy.api#jsonName": "inputClippingSettings" + "smithy.api#documentation": "The port number for the input.", + "smithy.api#jsonName": "port" } }, - "UrlPath": { - "target": "com.amazonaws.medialive#__listOf__string", + "Url": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The value for the variable portion of the URL for the dynamic input, for this instance of the input. Each time you use the same dynamic input in an input switch action, you can provide a different value, in order to connect the input to a different content source.", - "smithy.api#jsonName": "urlPath" + "smithy.api#documentation": "This represents the endpoint that the customer stream will be\npushed to.", + "smithy.api#jsonName": "url" + } + }, + "Vpc": { + "target": "com.amazonaws.medialive#InputDestinationVpc", + "traits": { + "smithy.api#jsonName": "vpc" } } }, "traits": { - "smithy.api#documentation": "Settings for the \"switch input\" action: to switch from ingesting one input to ingesting another input." + "smithy.api#documentation": "The settings for a PUSH type input." } }, - "com.amazonaws.medialive#InputTimecodeSource": { + "com.amazonaws.medialive#InputDestinationRequest": { + "type": "structure", + "members": { + "StreamName": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "A unique name for the location the RTMP stream is being pushed\nto.", + "smithy.api#jsonName": "streamName" + } + } + }, + "traits": { + "smithy.api#documentation": "Endpoint settings for a PUSH type input." + } + }, + "com.amazonaws.medialive#InputDestinationVpc": { + "type": "structure", + "members": { + "AvailabilityZone": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The availability zone of the Input destination.", + "smithy.api#jsonName": "availabilityZone" + } + }, + "NetworkInterfaceId": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The network interface ID of the Input destination in the VPC.", + "smithy.api#jsonName": "networkInterfaceId" + } + } + }, + "traits": { + "smithy.api#documentation": "The properties for a VPC type input destination." + } + }, + "com.amazonaws.medialive#InputDeviceActiveInput": { "type": "enum", "members": { - "ZEROBASED": { + "HDMI": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ZEROBASED" + "smithy.api#enumValue": "HDMI" } }, - "EMBEDDED": { + "SDI": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EMBEDDED" + "smithy.api#enumValue": "SDI" } } }, "traits": { - "smithy.api#documentation": "Documentation update needed" + "smithy.api#documentation": "The source at the input device that is currently active." } }, - "com.amazonaws.medialive#InputType": { + "com.amazonaws.medialive#InputDeviceCodec": { "type": "enum", "members": { - "UDP_PUSH": { + "HEVC": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "UDP_PUSH" + "smithy.api#enumValue": "HEVC" } }, - "RTP_PUSH": { + "AVC": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "RTP_PUSH" + "smithy.api#enumValue": "AVC" + } + } + }, + "traits": { + "smithy.api#documentation": "The codec to use on the video that the device produces." + } + }, + "com.amazonaws.medialive#InputDeviceConfigurableAudioChannelPairConfig": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#documentation": "The ID for one audio pair configuration, a value from 1 to 8.", + "smithy.api#jsonName": "id" } }, - "RTMP_PUSH": { + "Profile": { + "target": "com.amazonaws.medialive#InputDeviceConfigurableAudioChannelPairProfile", + "traits": { + "smithy.api#documentation": "The profile to set for one audio pair configuration. Choose an enumeration value. Each value describes one audio configuration using the format (rate control algorithm)-(codec)_(quality)-(bitrate in bytes). For example, CBR-AAC_HQ-192000. Or choose DISABLED, in which case the device won't produce audio for this pair.", + "smithy.api#jsonName": "profile" + } + } + }, + "traits": { + "smithy.api#documentation": "One audio configuration that specifies the format for one audio pair that the device produces as output." + } + }, + "com.amazonaws.medialive#InputDeviceConfigurableAudioChannelPairProfile": { + "type": "enum", + "members": { + "DISABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "RTMP_PUSH" + "smithy.api#enumValue": "DISABLED" } }, - "RTMP_PULL": { + "VBR_AAC_HHE_16000": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "RTMP_PULL" + "smithy.api#enumValue": "VBR-AAC_HHE-16000" } }, - "URL_PULL": { + "VBR_AAC_HE_64000": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "URL_PULL" + "smithy.api#enumValue": "VBR-AAC_HE-64000" } }, - "MP4_FILE": { + "VBR_AAC_LC_128000": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MP4_FILE" + "smithy.api#enumValue": "VBR-AAC_LC-128000" } }, - "MEDIACONNECT": { + "CBR_AAC_HQ_192000": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MEDIACONNECT" + "smithy.api#enumValue": "CBR-AAC_HQ-192000" } }, - "INPUT_DEVICE": { + "CBR_AAC_HQ_256000": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "INPUT_DEVICE" + "smithy.api#enumValue": "CBR-AAC_HQ-256000" } }, - "AWS_CDI": { + "CBR_AAC_HQ_384000": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "AWS_CDI" + "smithy.api#enumValue": "CBR-AAC_HQ-384000" } }, - "TS_FILE": { + "CBR_AAC_HQ_512000": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "TS_FILE" + "smithy.api#enumValue": "CBR-AAC_HQ-512000" } } }, "traits": { - "smithy.api#documentation": "The different types of inputs that AWS Elemental MediaLive supports." + "smithy.api#documentation": "Property of InputDeviceConfigurableAudioChannelPairConfig, which configures one audio channel that the device produces." } }, - "com.amazonaws.medialive#InputVpcRequest": { + "com.amazonaws.medialive#InputDeviceConfigurableSettings": { "type": "structure", "members": { - "SecurityGroupIds": { - "target": "com.amazonaws.medialive#__listOf__string", + "ConfiguredInput": { + "target": "com.amazonaws.medialive#InputDeviceConfiguredInput", "traits": { - "smithy.api#documentation": "A list of up to 5 EC2 VPC security group IDs to attach to the Input VPC network interfaces.\nRequires subnetIds. If none are specified then the VPC default security group will be used.", - "smithy.api#jsonName": "securityGroupIds" + "smithy.api#documentation": "The input source that you want to use. If the device has a source connected to only one of its input ports, or if you don't care which source the device sends, specify Auto. If the device has sources connected to both its input ports, and you want to use a specific source, specify the source.", + "smithy.api#jsonName": "configuredInput" } }, - "SubnetIds": { - "target": "com.amazonaws.medialive#__listOf__string", + "MaxBitrate": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "A list of 2 VPC subnet IDs from the same VPC.\nSubnet IDs must be mapped to two unique availability zones (AZ).", - "smithy.api#jsonName": "subnetIds", - "smithy.api#required": {} + "smithy.api#documentation": "The maximum bitrate in bits per second. Set a value here to throttle the bitrate of the source video.", + "smithy.api#jsonName": "maxBitrate" } - } - }, - "traits": { - "smithy.api#documentation": "Settings for a private VPC Input.\nWhen this property is specified, the input destination addresses will be created in a VPC rather than with public Internet addresses.\nThis property requires setting the roleArn property on Input creation.\nNot compatible with the inputSecurityGroups property." - } - }, - "com.amazonaws.medialive#InputWhitelistRule": { - "type": "structure", - "members": { - "Cidr": { - "target": "com.amazonaws.medialive#__string", + }, + "LatencyMs": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#documentation": "The IPv4 CIDR that's whitelisted.", - "smithy.api#jsonName": "cidr" + "smithy.api#documentation": "The Link device's buffer size (latency) in milliseconds (ms).", + "smithy.api#jsonName": "latencyMs" + } + }, + "Codec": { + "target": "com.amazonaws.medialive#InputDeviceCodec", + "traits": { + "smithy.api#documentation": "Choose the codec for the video that the device produces. Only UHD devices can specify this parameter.", + "smithy.api#jsonName": "codec" + } + }, + "MediaconnectSettings": { + "target": "com.amazonaws.medialive#InputDeviceMediaConnectConfigurableSettings", + "traits": { + "smithy.api#documentation": "To attach this device to a MediaConnect flow, specify these parameters. To detach an existing flow, enter {} for the value of mediaconnectSettings. Only UHD devices can specify this parameter.", + "smithy.api#jsonName": "mediaconnectSettings" + } + }, + "AudioChannelPairs": { + "target": "com.amazonaws.medialive#__listOfInputDeviceConfigurableAudioChannelPairConfig", + "traits": { + "smithy.api#documentation": "An array of eight audio configurations, one for each audio pair in the source. Set up each audio configuration either to exclude the pair, or to format it and include it in the output from the device. This parameter applies only to UHD devices, and only when the device is configured as the source for a MediaConnect flow. For an HD device, you configure the audio by setting up audio selectors in the channel configuration.", + "smithy.api#jsonName": "audioChannelPairs" } } }, "traits": { - "smithy.api#documentation": "Whitelist rule" + "smithy.api#documentation": "Configurable settings for the input device." } }, - "com.amazonaws.medialive#InputWhitelistRuleCidr": { - "type": "structure", + "com.amazonaws.medialive#InputDeviceConfiguredInput": { + "type": "enum", "members": { - "Cidr": { - "target": "com.amazonaws.medialive#__string", + "AUTO": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The IPv4 CIDR to whitelist.", - "smithy.api#jsonName": "cidr" + "smithy.api#enumValue": "AUTO" + } + }, + "HDMI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HDMI" + } + }, + "SDI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SDI" } } }, "traits": { - "smithy.api#documentation": "An IPv4 CIDR to whitelist." + "smithy.api#documentation": "The source to activate (use) from the input device." } }, - "com.amazonaws.medialive#InternalServerErrorException": { - "type": "structure", + "com.amazonaws.medialive#InputDeviceConnectionState": { + "type": "enum", "members": { - "Message": { - "target": "com.amazonaws.medialive#__string", + "DISCONNECTED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "message" + "smithy.api#enumValue": "DISCONNECTED" + } + }, + "CONNECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONNECTED" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for InternalServerErrorException", - "smithy.api#error": "server", - "smithy.api#httpError": 500 + "smithy.api#documentation": "The state of the connection between the input device and AWS." } }, - "com.amazonaws.medialive#KeyProviderSettings": { + "com.amazonaws.medialive#InputDeviceHdSettings": { "type": "structure", "members": { - "StaticKeySettings": { - "target": "com.amazonaws.medialive#StaticKeySettings", + "ActiveInput": { + "target": "com.amazonaws.medialive#InputDeviceActiveInput", "traits": { - "smithy.api#jsonName": "staticKeySettings" + "smithy.api#documentation": "If you specified Auto as the configured input, specifies which of the sources is currently active (SDI or HDMI).", + "smithy.api#jsonName": "activeInput" + } + }, + "ConfiguredInput": { + "target": "com.amazonaws.medialive#InputDeviceConfiguredInput", + "traits": { + "smithy.api#documentation": "The source at the input device that is currently active. You can specify this source.", + "smithy.api#jsonName": "configuredInput" + } + }, + "DeviceState": { + "target": "com.amazonaws.medialive#InputDeviceState", + "traits": { + "smithy.api#documentation": "The state of the input device.", + "smithy.api#jsonName": "deviceState" + } + }, + "Framerate": { + "target": "com.amazonaws.medialive#__double", + "traits": { + "smithy.api#documentation": "The frame rate of the video source.", + "smithy.api#jsonName": "framerate" + } + }, + "Height": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#documentation": "The height of the video source, in pixels.", + "smithy.api#jsonName": "height" + } + }, + "MaxBitrate": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#documentation": "The current maximum bitrate for ingesting this source, in bits per second. You can specify this maximum.", + "smithy.api#jsonName": "maxBitrate" + } + }, + "ScanType": { + "target": "com.amazonaws.medialive#InputDeviceScanType", + "traits": { + "smithy.api#documentation": "The scan type of the video source.", + "smithy.api#jsonName": "scanType" + } + }, + "Width": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#documentation": "The width of the video source, in pixels.", + "smithy.api#jsonName": "width" + } + }, + "LatencyMs": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#documentation": "The Link device's buffer size (latency) in milliseconds (ms). You can specify this value.", + "smithy.api#jsonName": "latencyMs" } } }, "traits": { - "smithy.api#documentation": "Key Provider Settings" + "smithy.api#documentation": "Settings that describe the active source from the input device, and the video characteristics of that source." } }, - "com.amazonaws.medialive#LastFrameClippingBehavior": { + "com.amazonaws.medialive#InputDeviceIpScheme": { "type": "enum", "members": { - "EXCLUDE_LAST_FRAME": { + "STATIC": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EXCLUDE_LAST_FRAME" + "smithy.api#enumValue": "STATIC" } }, - "INCLUDE_LAST_FRAME": { + "DHCP": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "INCLUDE_LAST_FRAME" + "smithy.api#enumValue": "DHCP" } } }, "traits": { - "smithy.api#documentation": "If you specify a StopTimecode in an input (in order to clip the file), you can specify if you want the clip to exclude (the default) or include the frame specified by the timecode." - } - }, - "com.amazonaws.medialive#ListChannels": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#ListChannelsRequest" - }, - "output": { - "target": "com.amazonaws.medialive#ListChannelsResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" - }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" - }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" - } - ], - "traits": { - "smithy.api#documentation": "Produces list of channels that have been created", - "smithy.api#http": { - "method": "GET", - "uri": "/prod/channels", - "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "items": "Channels", - "pageSize": "MaxResults" - } + "smithy.api#documentation": "Specifies whether the input device has been configured (outside of MediaLive) to use a dynamic IP address assignment (DHCP) or a static IP address." } }, - "com.amazonaws.medialive#ListChannelsRequest": { + "com.amazonaws.medialive#InputDeviceMediaConnectConfigurableSettings": { "type": "structure", "members": { - "MaxResults": { - "target": "com.amazonaws.medialive#MaxResults", + "FlowArn": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#httpQuery": "maxResults" + "smithy.api#documentation": "The ARN of the MediaConnect flow to attach this device to.", + "smithy.api#jsonName": "flowArn" } }, - "NextToken": { + "RoleArn": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#httpQuery": "nextToken" + "smithy.api#documentation": "The ARN for the role that MediaLive assumes to access the attached flow and secret. For more information about how to create this role, see the MediaLive user guide.", + "smithy.api#jsonName": "roleArn" + } + }, + "SecretArn": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The ARN for the secret that holds the encryption key to encrypt the content output by the device.", + "smithy.api#jsonName": "secretArn" + } + }, + "SourceName": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The name of the MediaConnect Flow source to stream to.", + "smithy.api#jsonName": "sourceName" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for ListChannelsRequest", - "smithy.api#input": {} + "smithy.api#documentation": "Parameters required to attach a MediaConnect flow to the device." } }, - "com.amazonaws.medialive#ListChannelsResponse": { + "com.amazonaws.medialive#InputDeviceMediaConnectSettings": { "type": "structure", "members": { - "Channels": { - "target": "com.amazonaws.medialive#__listOfChannelSummary", + "FlowArn": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#jsonName": "channels" + "smithy.api#documentation": "The ARN of the MediaConnect flow.", + "smithy.api#jsonName": "flowArn" } }, - "NextToken": { + "RoleArn": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#jsonName": "nextToken" + "smithy.api#documentation": "The ARN for the role that MediaLive assumes to access the attached flow and secret.", + "smithy.api#jsonName": "roleArn" } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for ListChannelsResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#ListInputDeviceTransfers": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#ListInputDeviceTransfersRequest" - }, - "output": { - "target": "com.amazonaws.medialive#ListInputDeviceTransfersResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" - }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" + "SecretArn": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The ARN of the secret used to encrypt the stream.", + "smithy.api#jsonName": "secretArn" + } }, - { - "target": "com.amazonaws.medialive#UnprocessableEntityException" + "SourceName": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The name of the MediaConnect flow source.", + "smithy.api#jsonName": "sourceName" + } } - ], + }, "traits": { - "smithy.api#documentation": "List input devices that are currently being transferred. List input devices that you are transferring from your AWS account or input devices that another AWS account is transferring to you.", - "smithy.api#http": { - "method": "GET", - "uri": "/prod/inputDeviceTransfers", - "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "items": "InputDeviceTransfers", - "pageSize": "MaxResults" - } + "smithy.api#documentation": "Information about the MediaConnect flow attached to the device." } }, - "com.amazonaws.medialive#ListInputDeviceTransfersRequest": { + "com.amazonaws.medialive#InputDeviceNetworkSettings": { "type": "structure", "members": { - "MaxResults": { - "target": "com.amazonaws.medialive#MaxResults", + "DnsAddresses": { + "target": "com.amazonaws.medialive#__listOf__string", "traits": { - "smithy.api#httpQuery": "maxResults" + "smithy.api#documentation": "The DNS addresses of the input device.", + "smithy.api#jsonName": "dnsAddresses" } }, - "NextToken": { + "Gateway": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#httpQuery": "nextToken" + "smithy.api#documentation": "The network gateway IP address.", + "smithy.api#jsonName": "gateway" } }, - "TransferType": { + "IpAddress": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#httpQuery": "transferType", - "smithy.api#required": {} + "smithy.api#documentation": "The IP address of the input device.", + "smithy.api#jsonName": "ipAddress" } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for ListInputDeviceTransfersRequest", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#ListInputDeviceTransfersResponse": { - "type": "structure", - "members": { - "InputDeviceTransfers": { - "target": "com.amazonaws.medialive#__listOfTransferringInputDeviceSummary", + }, + "IpScheme": { + "target": "com.amazonaws.medialive#InputDeviceIpScheme", "traits": { - "smithy.api#documentation": "The list of devices that you are transferring or are being transferred to you.", - "smithy.api#jsonName": "inputDeviceTransfers" + "smithy.api#documentation": "Specifies whether the input device has been configured (outside of MediaLive) to use a dynamic IP address assignment (DHCP) or a static IP address.", + "smithy.api#jsonName": "ipScheme" } }, - "NextToken": { + "SubnetMask": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "A token to get additional list results.", - "smithy.api#jsonName": "nextToken" + "smithy.api#documentation": "The subnet mask of the input device.", + "smithy.api#jsonName": "subnetMask" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for ListInputDeviceTransfersResponse", - "smithy.api#output": {} + "smithy.api#documentation": "The network settings for the input device." } }, - "com.amazonaws.medialive#ListInputDevices": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#ListInputDevicesRequest" - }, - "output": { - "target": "com.amazonaws.medialive#ListInputDevicesResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" - }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" + "com.amazonaws.medialive#InputDeviceOutputType": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" + "MEDIALIVE_INPUT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MEDIALIVE_INPUT" + } }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" + "MEDIACONNECT_FLOW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MEDIACONNECT_FLOW" + } } - ], + }, "traits": { - "smithy.api#documentation": "List input devices", - "smithy.api#http": { - "method": "GET", - "uri": "/prod/inputDevices", - "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "items": "InputDevices", - "pageSize": "MaxResults" - } + "smithy.api#documentation": "The output attachment type of the input device." } }, - "com.amazonaws.medialive#ListInputDevicesRequest": { + "com.amazonaws.medialive#InputDeviceRequest": { "type": "structure", "members": { - "MaxResults": { - "target": "com.amazonaws.medialive#MaxResults", - "traits": { - "smithy.api#httpQuery": "maxResults" - } - }, - "NextToken": { + "Id": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#httpQuery": "nextToken" + "smithy.api#documentation": "The unique ID for the device.", + "smithy.api#jsonName": "id" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for ListInputDevicesRequest", - "smithy.api#input": {} + "smithy.api#documentation": "Settings for an input device." } }, - "com.amazonaws.medialive#ListInputDevicesResponse": { - "type": "structure", + "com.amazonaws.medialive#InputDeviceScanType": { + "type": "enum", "members": { - "InputDevices": { - "target": "com.amazonaws.medialive#__listOfInputDeviceSummary", + "INTERLACED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The list of input devices.", - "smithy.api#jsonName": "inputDevices" + "smithy.api#enumValue": "INTERLACED" } }, - "NextToken": { - "target": "com.amazonaws.medialive#__string", + "PROGRESSIVE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "A token to get additional list results.", - "smithy.api#jsonName": "nextToken" + "smithy.api#enumValue": "PROGRESSIVE" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for ListInputDevicesResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#ListInputSecurityGroups": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#ListInputSecurityGroupsRequest" - }, - "output": { - "target": "com.amazonaws.medialive#ListInputSecurityGroupsResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" - }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" - }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" - } - ], - "traits": { - "smithy.api#documentation": "Produces a list of Input Security Groups for an account", - "smithy.api#http": { - "method": "GET", - "uri": "/prod/inputSecurityGroups", - "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "items": "InputSecurityGroups", - "pageSize": "MaxResults" - } + "smithy.api#documentation": "The scan type of the video source." } }, - "com.amazonaws.medialive#ListInputSecurityGroupsRequest": { + "com.amazonaws.medialive#InputDeviceSettings": { "type": "structure", "members": { - "MaxResults": { - "target": "com.amazonaws.medialive#MaxResults", - "traits": { - "smithy.api#httpQuery": "maxResults" - } - }, - "NextToken": { + "Id": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#httpQuery": "nextToken" + "smithy.api#documentation": "The unique ID for the device.", + "smithy.api#jsonName": "id" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for ListInputSecurityGroupsRequest", - "smithy.api#input": {} + "smithy.api#documentation": "Settings for an input device." } }, - "com.amazonaws.medialive#ListInputSecurityGroupsResponse": { - "type": "structure", + "com.amazonaws.medialive#InputDeviceState": { + "type": "enum", "members": { - "InputSecurityGroups": { - "target": "com.amazonaws.medialive#__listOfInputSecurityGroup", + "IDLE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "List of input security groups", - "smithy.api#jsonName": "inputSecurityGroups" + "smithy.api#enumValue": "IDLE" } }, - "NextToken": { - "target": "com.amazonaws.medialive#__string", + "STREAMING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "nextToken" + "smithy.api#enumValue": "STREAMING" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for ListInputSecurityGroupsResponse", - "smithy.api#output": {} + "smithy.api#documentation": "The state of the input device." } }, - "com.amazonaws.medialive#ListInputs": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#ListInputsRequest" - }, - "output": { - "target": "com.amazonaws.medialive#ListInputsResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" + "com.amazonaws.medialive#InputDeviceSummary": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The unique ARN of the input device.", + "smithy.api#jsonName": "arn" + } }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" + "ConnectionState": { + "target": "com.amazonaws.medialive#InputDeviceConnectionState", + "traits": { + "smithy.api#documentation": "The state of the connection between the input device and AWS.", + "smithy.api#jsonName": "connectionState" + } }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" + "DeviceSettingsSyncState": { + "target": "com.amazonaws.medialive#DeviceSettingsSyncState", + "traits": { + "smithy.api#documentation": "The status of the action to synchronize the device configuration. If you change the configuration of the input device (for example, the maximum bitrate), MediaLive sends the new data to the device. The device might not update itself immediately. SYNCED means the device has updated its configuration. SYNCING means that it has not updated its configuration.", + "smithy.api#jsonName": "deviceSettingsSyncState" + } }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" - } - ], - "traits": { - "smithy.api#documentation": "Produces list of inputs that have been created", - "smithy.api#http": { - "method": "GET", - "uri": "/prod/inputs", - "code": 200 + "DeviceUpdateStatus": { + "target": "com.amazonaws.medialive#DeviceUpdateStatus", + "traits": { + "smithy.api#documentation": "The status of software on the input device.", + "smithy.api#jsonName": "deviceUpdateStatus" + } }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "items": "Inputs", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.medialive#ListInputsRequest": { - "type": "structure", - "members": { - "MaxResults": { - "target": "com.amazonaws.medialive#MaxResults", + "HdDeviceSettings": { + "target": "com.amazonaws.medialive#InputDeviceHdSettings", "traits": { - "smithy.api#httpQuery": "maxResults" + "smithy.api#documentation": "Settings that describe an input device that is type HD.", + "smithy.api#jsonName": "hdDeviceSettings" } }, - "NextToken": { + "Id": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#httpQuery": "nextToken" + "smithy.api#documentation": "The unique ID of the input device.", + "smithy.api#jsonName": "id" } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for ListInputsRequest", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#ListInputsResponse": { - "type": "structure", - "members": { - "Inputs": { - "target": "com.amazonaws.medialive#__listOfInput", + }, + "MacAddress": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#jsonName": "inputs" + "smithy.api#documentation": "The network MAC address of the input device.", + "smithy.api#jsonName": "macAddress" } }, - "NextToken": { + "Name": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#jsonName": "nextToken" + "smithy.api#documentation": "A name that you specify for the input device.", + "smithy.api#jsonName": "name" } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for ListInputsResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#ListMultiplexPrograms": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#ListMultiplexProgramsRequest" - }, - "output": { - "target": "com.amazonaws.medialive#ListMultiplexProgramsResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" + "NetworkSettings": { + "target": "com.amazonaws.medialive#InputDeviceNetworkSettings", + "traits": { + "smithy.api#documentation": "Network settings for the input device.", + "smithy.api#jsonName": "networkSettings" + } }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" + "SerialNumber": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The unique serial number of the input device.", + "smithy.api#jsonName": "serialNumber" + } }, - { - "target": "com.amazonaws.medialive#NotFoundException" + "Type": { + "target": "com.amazonaws.medialive#InputDeviceType", + "traits": { + "smithy.api#documentation": "The type of the input device.", + "smithy.api#jsonName": "type" + } }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" - } - ], - "traits": { - "smithy.api#documentation": "List the programs that currently exist for a specific multiplex.", - "smithy.api#http": { - "method": "GET", - "uri": "/prod/multiplexes/{MultiplexId}/programs", - "code": 200 + "UhdDeviceSettings": { + "target": "com.amazonaws.medialive#InputDeviceUhdSettings", + "traits": { + "smithy.api#documentation": "Settings that describe an input device that is type UHD.", + "smithy.api#jsonName": "uhdDeviceSettings" + } }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "items": "MultiplexPrograms", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.medialive#ListMultiplexProgramsRequest": { - "type": "structure", - "members": { - "MaxResults": { - "target": "com.amazonaws.medialive#MaxResults", + "Tags": { + "target": "com.amazonaws.medialive#Tags", "traits": { - "smithy.api#documentation": "The maximum number of items to return.", - "smithy.api#httpQuery": "maxResults" + "smithy.api#documentation": "A collection of key-value pairs.", + "smithy.api#jsonName": "tags" } }, - "MultiplexId": { + "AvailabilityZone": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The ID of the multiplex that the programs belong to.", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "The Availability Zone associated with this input device.", + "smithy.api#jsonName": "availabilityZone" } }, - "NextToken": { - "target": "com.amazonaws.medialive#__string", + "MedialiveInputArns": { + "target": "com.amazonaws.medialive#__listOf__string", "traits": { - "smithy.api#documentation": "The token to retrieve the next page of results.", - "smithy.api#httpQuery": "nextToken" + "smithy.api#documentation": "An array of the ARNs for the MediaLive inputs attached to the device. Returned only if the outputType is MEDIALIVE_INPUT.", + "smithy.api#jsonName": "medialiveInputArns" + } + }, + "OutputType": { + "target": "com.amazonaws.medialive#InputDeviceOutputType", + "traits": { + "smithy.api#documentation": "The output attachment type of the input device. Specifies MEDIACONNECT_FLOW if this device is the source for a MediaConnect flow. Specifies MEDIALIVE_INPUT if this device is the source for a MediaLive input.", + "smithy.api#jsonName": "outputType" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for ListMultiplexProgramsRequest", - "smithy.api#input": {} + "smithy.api#documentation": "Details of the input device." } }, - "com.amazonaws.medialive#ListMultiplexProgramsResponse": { - "type": "structure", + "com.amazonaws.medialive#InputDeviceThumbnail": { + "type": "blob", + "traits": { + "smithy.api#documentation": "The binary data for the thumbnail that the Link device has most recently sent to MediaLive.", + "smithy.api#streaming": {} + } + }, + "com.amazonaws.medialive#InputDeviceTransferType": { + "type": "enum", "members": { - "MultiplexPrograms": { - "target": "com.amazonaws.medialive#__listOfMultiplexProgramSummary", + "OUTGOING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "List of multiplex programs.", - "smithy.api#jsonName": "multiplexPrograms" + "smithy.api#enumValue": "OUTGOING" } }, - "NextToken": { - "target": "com.amazonaws.medialive#__string", + "INCOMING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Token for the next ListMultiplexProgram request.", - "smithy.api#jsonName": "nextToken" + "smithy.api#enumValue": "INCOMING" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for ListMultiplexProgramsResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#ListMultiplexes": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#ListMultiplexesRequest" - }, - "output": { - "target": "com.amazonaws.medialive#ListMultiplexesResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" - }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" - }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" - } - ], - "traits": { - "smithy.api#documentation": "Retrieve a list of the existing multiplexes.", - "smithy.api#http": { - "method": "GET", - "uri": "/prod/multiplexes", - "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "items": "Multiplexes", - "pageSize": "MaxResults" - } + "smithy.api#documentation": "The type of device transfer. INCOMING for an input device that is being transferred to you, OUTGOING for an input device that you are transferring to another AWS account." } }, - "com.amazonaws.medialive#ListMultiplexesRequest": { - "type": "structure", + "com.amazonaws.medialive#InputDeviceType": { + "type": "enum", "members": { - "MaxResults": { - "target": "com.amazonaws.medialive#MaxResults", + "HD": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The maximum number of items to return.", - "smithy.api#httpQuery": "maxResults" + "smithy.api#enumValue": "HD" } }, - "NextToken": { - "target": "com.amazonaws.medialive#__string", + "UHD": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The token to retrieve the next page of results.", - "smithy.api#httpQuery": "nextToken" + "smithy.api#enumValue": "UHD" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for ListMultiplexesRequest", - "smithy.api#input": {} + "smithy.api#documentation": "The type of the input device. For an AWS Elemental Link device that outputs resolutions up to 1080, choose \"HD\"." } }, - "com.amazonaws.medialive#ListMultiplexesResponse": { + "com.amazonaws.medialive#InputDeviceUhdAudioChannelPairConfig": { "type": "structure", "members": { - "Multiplexes": { - "target": "com.amazonaws.medialive#__listOfMultiplexSummary", + "Id": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#documentation": "List of multiplexes.", - "smithy.api#jsonName": "multiplexes" + "smithy.api#documentation": "The ID for one audio pair configuration, a value from 1 to 8.", + "smithy.api#jsonName": "id" } }, - "NextToken": { - "target": "com.amazonaws.medialive#__string", + "Profile": { + "target": "com.amazonaws.medialive#InputDeviceUhdAudioChannelPairProfile", "traits": { - "smithy.api#documentation": "Token for the next ListMultiplexes request.", - "smithy.api#jsonName": "nextToken" + "smithy.api#documentation": "The profile for one audio pair configuration. This property describes one audio configuration in the format (rate control algorithm)-(codec)_(quality)-(bitrate in bytes). For example, CBR-AAC_HQ-192000. Or DISABLED, in which case the device won't produce audio for this pair.", + "smithy.api#jsonName": "profile" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for ListMultiplexesResponse", - "smithy.api#output": {} + "smithy.api#documentation": "One audio configuration that specifies the format for one audio pair that the device produces as output." } }, - "com.amazonaws.medialive#ListOfferings": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#ListOfferingsRequest" - }, - "output": { - "target": "com.amazonaws.medialive#ListOfferingsResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" + "com.amazonaws.medialive#InputDeviceUhdAudioChannelPairProfile": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } }, - { - "target": "com.amazonaws.medialive#BadRequestException" + "VBR_AAC_HHE_16000": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VBR-AAC_HHE-16000" + } }, - { - "target": "com.amazonaws.medialive#ForbiddenException" + "VBR_AAC_HE_64000": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VBR-AAC_HE-64000" + } }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" + "VBR_AAC_LC_128000": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VBR-AAC_LC-128000" + } }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" + "CBR_AAC_HQ_192000": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CBR-AAC_HQ-192000" + } }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" - } - ], - "traits": { - "smithy.api#documentation": "List offerings available for purchase.", - "smithy.api#http": { - "method": "GET", - "uri": "/prod/offerings", - "code": 200 + "CBR_AAC_HQ_256000": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CBR-AAC_HQ-256000" + } }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "items": "Offerings", - "pageSize": "MaxResults" + "CBR_AAC_HQ_384000": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CBR-AAC_HQ-384000" + } + }, + "CBR_AAC_HQ_512000": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CBR-AAC_HQ-512000" + } } + }, + "traits": { + "smithy.api#documentation": "Property of InputDeviceUhdAudioChannelPairConfig, which describes one audio channel that the device is configured to produce." } }, - "com.amazonaws.medialive#ListOfferingsRequest": { + "com.amazonaws.medialive#InputDeviceUhdSettings": { "type": "structure", "members": { - "ChannelClass": { - "target": "com.amazonaws.medialive#__string", + "ActiveInput": { + "target": "com.amazonaws.medialive#InputDeviceActiveInput", "traits": { - "smithy.api#documentation": "Filter by channel class, 'STANDARD' or 'SINGLE_PIPELINE'", - "smithy.api#httpQuery": "channelClass" + "smithy.api#documentation": "If you specified Auto as the configured input, specifies which of the sources is currently active (SDI or HDMI).", + "smithy.api#jsonName": "activeInput" } }, - "ChannelConfiguration": { - "target": "com.amazonaws.medialive#__string", + "ConfiguredInput": { + "target": "com.amazonaws.medialive#InputDeviceConfiguredInput", "traits": { - "smithy.api#documentation": "Filter to offerings that match the configuration of an existing channel, e.g. '2345678' (a channel ID)", - "smithy.api#httpQuery": "channelConfiguration" + "smithy.api#documentation": "The source at the input device that is currently active. You can specify this source.", + "smithy.api#jsonName": "configuredInput" } }, - "Codec": { - "target": "com.amazonaws.medialive#__string", + "DeviceState": { + "target": "com.amazonaws.medialive#InputDeviceState", "traits": { - "smithy.api#documentation": "Filter by codec, 'AVC', 'HEVC', 'MPEG2', 'AUDIO', or 'LINK'", - "smithy.api#httpQuery": "codec" + "smithy.api#documentation": "The state of the input device.", + "smithy.api#jsonName": "deviceState" } }, - "Duration": { - "target": "com.amazonaws.medialive#__string", + "Framerate": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#documentation": "Filter by offering duration, e.g. '12'", - "smithy.api#httpQuery": "duration" + "smithy.api#documentation": "The frame rate of the video source.", + "smithy.api#jsonName": "framerate" } }, - "MaxResults": { - "target": "com.amazonaws.medialive#MaxResults", + "Height": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#httpQuery": "maxResults" + "smithy.api#documentation": "The height of the video source, in pixels.", + "smithy.api#jsonName": "height" } }, - "MaximumBitrate": { - "target": "com.amazonaws.medialive#__string", + "MaxBitrate": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#documentation": "Filter by bitrate, 'MAX_10_MBPS', 'MAX_20_MBPS', or 'MAX_50_MBPS'", - "smithy.api#httpQuery": "maximumBitrate" + "smithy.api#documentation": "The current maximum bitrate for ingesting this source, in bits per second. You can specify this maximum.", + "smithy.api#jsonName": "maxBitrate" } }, - "MaximumFramerate": { - "target": "com.amazonaws.medialive#__string", + "ScanType": { + "target": "com.amazonaws.medialive#InputDeviceScanType", "traits": { - "smithy.api#documentation": "Filter by framerate, 'MAX_30_FPS' or 'MAX_60_FPS'", - "smithy.api#httpQuery": "maximumFramerate" + "smithy.api#documentation": "The scan type of the video source.", + "smithy.api#jsonName": "scanType" } }, - "NextToken": { - "target": "com.amazonaws.medialive#__string", + "Width": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#httpQuery": "nextToken" + "smithy.api#documentation": "The width of the video source, in pixels.", + "smithy.api#jsonName": "width" } }, - "Resolution": { - "target": "com.amazonaws.medialive#__string", + "LatencyMs": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#documentation": "Filter by resolution, 'SD', 'HD', 'FHD', or 'UHD'", - "smithy.api#httpQuery": "resolution" + "smithy.api#documentation": "The Link device's buffer size (latency) in milliseconds (ms). You can specify this value.", + "smithy.api#jsonName": "latencyMs" } }, - "ResourceType": { - "target": "com.amazonaws.medialive#__string", + "Codec": { + "target": "com.amazonaws.medialive#InputDeviceCodec", "traits": { - "smithy.api#documentation": "Filter by resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'", - "smithy.api#httpQuery": "resourceType" + "smithy.api#documentation": "The codec for the video that the device produces.", + "smithy.api#jsonName": "codec" } }, - "SpecialFeature": { - "target": "com.amazonaws.medialive#__string", + "MediaconnectSettings": { + "target": "com.amazonaws.medialive#InputDeviceMediaConnectSettings", "traits": { - "smithy.api#documentation": "Filter by special feature, 'ADVANCED_AUDIO' or 'AUDIO_NORMALIZATION'", - "smithy.api#httpQuery": "specialFeature" + "smithy.api#documentation": "Information about the MediaConnect flow attached to the device. Returned only if the outputType is MEDIACONNECT_FLOW.", + "smithy.api#jsonName": "mediaconnectSettings" } }, - "VideoQuality": { - "target": "com.amazonaws.medialive#__string", + "AudioChannelPairs": { + "target": "com.amazonaws.medialive#__listOfInputDeviceUhdAudioChannelPairConfig", "traits": { - "smithy.api#documentation": "Filter by video quality, 'STANDARD', 'ENHANCED', or 'PREMIUM'", - "smithy.api#httpQuery": "videoQuality" + "smithy.api#documentation": "An array of eight audio configurations, one for each audio pair in the source. Each audio configuration specifies either to exclude the pair, or to format it and include it in the output from the UHD device. Applies only when the device is configured as the source for a MediaConnect flow.", + "smithy.api#jsonName": "audioChannelPairs" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for ListOfferingsRequest", - "smithy.api#input": {} + "smithy.api#documentation": "Settings that describe the active source from the input device, and the video characteristics of that source." } }, - "com.amazonaws.medialive#ListOfferingsResponse": { - "type": "structure", + "com.amazonaws.medialive#InputFilter": { + "type": "enum", "members": { - "NextToken": { - "target": "com.amazonaws.medialive#__string", + "AUTO": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Token to retrieve the next page of results", - "smithy.api#jsonName": "nextToken" + "smithy.api#enumValue": "AUTO" } }, - "Offerings": { - "target": "com.amazonaws.medialive#__listOfOffering", + "DISABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "List of offerings", - "smithy.api#jsonName": "offerings" + "smithy.api#enumValue": "DISABLED" } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for ListOfferingsResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#ListReservations": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#ListReservationsRequest" - }, - "output": { - "target": "com.amazonaws.medialive#ListReservationsResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" - }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" + "FORCED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FORCED" + } } - ], + }, "traits": { - "smithy.api#documentation": "List purchased reservations.", - "smithy.api#http": { - "method": "GET", - "uri": "/prod/reservations", - "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "items": "Reservations", - "pageSize": "MaxResults" - } + "smithy.api#documentation": "Input Filter" } }, - "com.amazonaws.medialive#ListReservationsRequest": { + "com.amazonaws.medialive#InputLocation": { "type": "structure", "members": { - "ChannelClass": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Filter by channel class, 'STANDARD' or 'SINGLE_PIPELINE'", - "smithy.api#httpQuery": "channelClass" - } - }, - "Codec": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Filter by codec, 'AVC', 'HEVC', 'MPEG2', 'AUDIO', or 'LINK'", - "smithy.api#httpQuery": "codec" - } - }, - "MaxResults": { - "target": "com.amazonaws.medialive#MaxResults", - "traits": { - "smithy.api#httpQuery": "maxResults" - } - }, - "MaximumBitrate": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Filter by bitrate, 'MAX_10_MBPS', 'MAX_20_MBPS', or 'MAX_50_MBPS'", - "smithy.api#httpQuery": "maximumBitrate" - } - }, - "MaximumFramerate": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Filter by framerate, 'MAX_30_FPS' or 'MAX_60_FPS'", - "smithy.api#httpQuery": "maximumFramerate" - } - }, - "NextToken": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#httpQuery": "nextToken" - } - }, - "Resolution": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Filter by resolution, 'SD', 'HD', 'FHD', or 'UHD'", - "smithy.api#httpQuery": "resolution" - } - }, - "ResourceType": { + "PasswordParam": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Filter by resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'", - "smithy.api#httpQuery": "resourceType" + "smithy.api#documentation": "key used to extract the password from EC2 Parameter store", + "smithy.api#jsonName": "passwordParam" } }, - "SpecialFeature": { - "target": "com.amazonaws.medialive#__string", + "Uri": { + "target": "com.amazonaws.medialive#__stringMax2048", "traits": { - "smithy.api#documentation": "Filter by special feature, 'ADVANCED_AUDIO' or 'AUDIO_NORMALIZATION'", - "smithy.api#httpQuery": "specialFeature" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "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 RTMP destination should have a uri simliar to: \"rtmp://fmsserver/live\".", + "smithy.api#jsonName": "uri", + "smithy.api#required": {} } }, - "VideoQuality": { + "Username": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Filter by video quality, 'STANDARD', 'ENHANCED', or 'PREMIUM'", - "smithy.api#httpQuery": "videoQuality" + "smithy.api#documentation": "Documentation update needed", + "smithy.api#jsonName": "username" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for ListReservationsRequest", - "smithy.api#input": {} + "smithy.api#documentation": "Input Location" } }, - "com.amazonaws.medialive#ListReservationsResponse": { - "type": "structure", + "com.amazonaws.medialive#InputLossActionForHlsOut": { + "type": "enum", "members": { - "NextToken": { - "target": "com.amazonaws.medialive#__string", + "EMIT_OUTPUT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Token to retrieve the next page of results", - "smithy.api#jsonName": "nextToken" + "smithy.api#enumValue": "EMIT_OUTPUT" } }, - "Reservations": { - "target": "com.amazonaws.medialive#__listOfReservation", + "PAUSE_OUTPUT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "List of reservations", - "smithy.api#jsonName": "reservations" + "smithy.api#enumValue": "PAUSE_OUTPUT" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for ListReservationsResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#ListTagsForResource": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#ListTagsForResourceRequest" - }, - "output": { - "target": "com.amazonaws.medialive#ListTagsForResourceResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" - }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" - }, - { - "target": "com.amazonaws.medialive#NotFoundException" - } - ], - "traits": { - "smithy.api#documentation": "Produces list of tags that have been created for a resource", - "smithy.api#http": { - "method": "GET", - "uri": "/prod/tags/{ResourceArn}", - "code": 200 - } + "smithy.api#documentation": "Input Loss Action For Hls Out" } }, - "com.amazonaws.medialive#ListTagsForResourceRequest": { - "type": "structure", + "com.amazonaws.medialive#InputLossActionForMsSmoothOut": { + "type": "enum", "members": { - "ResourceArn": { - "target": "com.amazonaws.medialive#__string", + "EMIT_OUTPUT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#enumValue": "EMIT_OUTPUT" + } + }, + "PAUSE_OUTPUT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PAUSE_OUTPUT" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for ListTagsForResourceRequest", - "smithy.api#input": {} + "smithy.api#documentation": "Input Loss Action For Ms Smooth Out" } }, - "com.amazonaws.medialive#ListTagsForResourceResponse": { - "type": "structure", + "com.amazonaws.medialive#InputLossActionForRtmpOut": { + "type": "enum", "members": { - "Tags": { - "target": "com.amazonaws.medialive#Tags", + "EMIT_OUTPUT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "tags" + "smithy.api#enumValue": "EMIT_OUTPUT" + } + }, + "PAUSE_OUTPUT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PAUSE_OUTPUT" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for ListTagsForResourceResponse", - "smithy.api#output": {} + "smithy.api#documentation": "Input Loss Action For Rtmp Out" } }, - "com.amazonaws.medialive#LogLevel": { + "com.amazonaws.medialive#InputLossActionForUdpOut": { "type": "enum", "members": { - "ERROR": { + "DROP_PROGRAM": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ERROR" + "smithy.api#enumValue": "DROP_PROGRAM" } }, - "WARNING": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "WARNING" - } - }, - "INFO": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "INFO" - } - }, - "DEBUG": { + "DROP_TS": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DEBUG" + "smithy.api#enumValue": "DROP_TS" } }, - "DISABLED": { + "EMIT_PROGRAM": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "EMIT_PROGRAM" } } }, "traits": { - "smithy.api#documentation": "The log level the user wants for their channel." + "smithy.api#documentation": "Input Loss Action For Udp Out" } }, - "com.amazonaws.medialive#M2tsAbsentInputAudioBehavior": { - "type": "enum", + "com.amazonaws.medialive#InputLossBehavior": { + "type": "structure", "members": { - "DROP": { - "target": "smithy.api#Unit", + "BlackFrameMsec": { + "target": "com.amazonaws.medialive#__integerMin0Max1000000", "traits": { - "smithy.api#enumValue": "DROP" + "smithy.api#documentation": "Documentation update needed", + "smithy.api#jsonName": "blackFrameMsec" } }, - "ENCODE_SILENCE": { - "target": "smithy.api#Unit", + "InputLossImageColor": { + "target": "com.amazonaws.medialive#__stringMin6Max6", "traits": { - "smithy.api#enumValue": "ENCODE_SILENCE" + "smithy.api#documentation": "When input loss image type is \"color\" this field specifies the color to use. Value: 6 hex characters representing the values of RGB.", + "smithy.api#jsonName": "inputLossImageColor" } - } - }, - "traits": { - "smithy.api#documentation": "M2ts Absent Input Audio Behavior" - } - }, - "com.amazonaws.medialive#M2tsArib": { - "type": "enum", - "members": { - "DISABLED": { - "target": "smithy.api#Unit", + }, + "InputLossImageSlate": { + "target": "com.amazonaws.medialive#InputLocation", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#documentation": "When input loss image type is \"slate\" these fields specify the parameters for accessing the slate.", + "smithy.api#jsonName": "inputLossImageSlate" } }, - "ENABLED": { - "target": "smithy.api#Unit", + "InputLossImageType": { + "target": "com.amazonaws.medialive#InputLossImageType", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#documentation": "Indicates whether to substitute a solid color or a slate into the output after input loss exceeds blackFrameMsec.", + "smithy.api#jsonName": "inputLossImageType" + } + }, + "RepeatFrameMsec": { + "target": "com.amazonaws.medialive#__integerMin0Max1000000", + "traits": { + "smithy.api#documentation": "Documentation update needed", + "smithy.api#jsonName": "repeatFrameMsec" } } }, "traits": { - "smithy.api#documentation": "M2ts Arib" + "smithy.api#documentation": "Input Loss Behavior" } }, - "com.amazonaws.medialive#M2tsAribCaptionsPidControl": { - "type": "enum", + "com.amazonaws.medialive#InputLossFailoverSettings": { + "type": "structure", "members": { - "AUTO": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AUTO" - } - }, - "USE_CONFIGURED": { - "target": "smithy.api#Unit", + "InputLossThresholdMsec": { + "target": "com.amazonaws.medialive#__integerMin100", "traits": { - "smithy.api#enumValue": "USE_CONFIGURED" + "smithy.api#documentation": "The amount of time (in milliseconds) that no input is detected. After that time, an input failover will occur.", + "smithy.api#jsonName": "inputLossThresholdMsec" } } }, "traits": { - "smithy.api#documentation": "M2ts Arib Captions Pid Control" + "smithy.api#documentation": "MediaLive will perform a failover if content is not detected in this input for the specified period." } }, - "com.amazonaws.medialive#M2tsAudioBufferModel": { + "com.amazonaws.medialive#InputLossImageType": { "type": "enum", "members": { - "ATSC": { + "COLOR": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ATSC" + "smithy.api#enumValue": "COLOR" } }, - "DVB": { + "SLATE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DVB" + "smithy.api#enumValue": "SLATE" } } }, "traits": { - "smithy.api#documentation": "M2ts Audio Buffer Model" + "smithy.api#documentation": "Input Loss Image Type" } }, - "com.amazonaws.medialive#M2tsAudioInterval": { + "com.amazonaws.medialive#InputMaximumBitrate": { "type": "enum", "members": { - "VIDEO_AND_FIXED_INTERVALS": { + "MAX_10_MBPS": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "VIDEO_AND_FIXED_INTERVALS" + "smithy.api#enumValue": "MAX_10_MBPS" } }, - "VIDEO_INTERVAL": { + "MAX_20_MBPS": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "VIDEO_INTERVAL" + "smithy.api#enumValue": "MAX_20_MBPS" + } + }, + "MAX_50_MBPS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MAX_50_MBPS" } } }, "traits": { - "smithy.api#documentation": "M2ts Audio Interval" + "smithy.api#documentation": "Maximum input bitrate in megabits per second. Bitrates up to 50 Mbps are supported currently." } }, - "com.amazonaws.medialive#M2tsAudioStreamType": { + "com.amazonaws.medialive#InputPreference": { "type": "enum", "members": { - "ATSC": { + "EQUAL_INPUT_PREFERENCE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ATSC" + "smithy.api#enumValue": "EQUAL_INPUT_PREFERENCE" } }, - "DVB": { + "PRIMARY_INPUT_PREFERRED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DVB" + "smithy.api#enumValue": "PRIMARY_INPUT_PREFERRED" } } }, "traits": { - "smithy.api#documentation": "M2ts Audio Stream Type" + "smithy.api#documentation": "Input preference when deciding which input to make active when a previously failed input has recovered.\nIf \\\"EQUAL_INPUT_PREFERENCE\\\", then the active input will stay active as long as it is healthy.\nIf \\\"PRIMARY_INPUT_PREFERRED\\\", then always switch back to the primary input when it is healthy." } }, - "com.amazonaws.medialive#M2tsBufferModel": { - "type": "enum", + "com.amazonaws.medialive#InputPrepareScheduleActionSettings": { + "type": "structure", "members": { - "MULTIPLEX": { - "target": "smithy.api#Unit", + "InputAttachmentNameReference": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "MULTIPLEX" + "smithy.api#documentation": "The name of the input attachment that should be prepared by this action. If no name is provided, the action will stop the most recent prepare (if any) when activated.", + "smithy.api#jsonName": "inputAttachmentNameReference" } }, - "NONE": { - "target": "smithy.api#Unit", + "InputClippingSettings": { + "target": "com.amazonaws.medialive#InputClippingSettings", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#documentation": "Settings to let you create a clip of the file input, in order to set up the input to ingest only a portion of the file.", + "smithy.api#jsonName": "inputClippingSettings" + } + }, + "UrlPath": { + "target": "com.amazonaws.medialive#__listOf__string", + "traits": { + "smithy.api#documentation": "The value for the variable portion of the URL for the dynamic input, for this instance of the input. Each time you use the same dynamic input in an input switch action, you can provide a different value, in order to connect the input to a different content source.", + "smithy.api#jsonName": "urlPath" } } }, "traits": { - "smithy.api#documentation": "M2ts Buffer Model" + "smithy.api#documentation": "Action to prepare an input for a future immediate input switch." } }, - "com.amazonaws.medialive#M2tsCcDescriptor": { + "com.amazonaws.medialive#InputResolution": { "type": "enum", "members": { - "DISABLED": { + "SD": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "SD" } }, - "ENABLED": { + "HD": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "HD" + } + }, + "UHD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UHD" } } }, "traits": { - "smithy.api#documentation": "M2ts Cc Descriptor" + "smithy.api#documentation": "Input resolution based on lines of vertical resolution in the input; SD is less than 720 lines, HD is 720 to 1080 lines, UHD is greater than 1080 lines" } }, - "com.amazonaws.medialive#M2tsEbifControl": { - "type": "enum", + "com.amazonaws.medialive#InputSecurityGroup": { + "type": "structure", "members": { - "NONE": { - "target": "smithy.api#Unit", + "Arn": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#documentation": "Unique ARN of Input Security Group", + "smithy.api#jsonName": "arn" } }, - "PASSTHROUGH": { - "target": "smithy.api#Unit", + "Id": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "PASSTHROUGH" + "smithy.api#documentation": "The Id of the Input Security Group", + "smithy.api#jsonName": "id" + } + }, + "Inputs": { + "target": "com.amazonaws.medialive#__listOf__string", + "traits": { + "smithy.api#documentation": "The list of inputs currently using this Input Security Group.", + "smithy.api#jsonName": "inputs" + } + }, + "State": { + "target": "com.amazonaws.medialive#InputSecurityGroupState", + "traits": { + "smithy.api#documentation": "The current state of the Input Security Group.", + "smithy.api#jsonName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#Tags", + "traits": { + "smithy.api#documentation": "A collection of key-value pairs.", + "smithy.api#jsonName": "tags" + } + }, + "WhitelistRules": { + "target": "com.amazonaws.medialive#__listOfInputWhitelistRule", + "traits": { + "smithy.api#documentation": "Whitelist rules and their sync status", + "smithy.api#jsonName": "whitelistRules" } } }, "traits": { - "smithy.api#documentation": "M2ts Ebif Control" + "smithy.api#documentation": "An Input Security Group" } }, - "com.amazonaws.medialive#M2tsEbpPlacement": { + "com.amazonaws.medialive#InputSecurityGroupState": { "type": "enum", "members": { - "VIDEO_AND_AUDIO_PIDS": { + "IDLE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "VIDEO_AND_AUDIO_PIDS" + "smithy.api#enumValue": "IDLE" } }, - "VIDEO_PID": { + "IN_USE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "VIDEO_PID" + "smithy.api#enumValue": "IN_USE" } - } - }, - "traits": { - "smithy.api#documentation": "M2ts Ebp Placement" - } - }, - "com.amazonaws.medialive#M2tsEsRateInPes": { - "type": "enum", - "members": { - "EXCLUDE": { + }, + "UPDATING": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EXCLUDE" + "smithy.api#enumValue": "UPDATING" } }, - "INCLUDE": { + "DELETED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "INCLUDE" + "smithy.api#enumValue": "DELETED" } } }, "traits": { - "smithy.api#documentation": "M2ts Es Rate In Pes" + "smithy.api#documentation": "Placeholder documentation for InputSecurityGroupState" } }, - "com.amazonaws.medialive#M2tsKlv": { - "type": "enum", + "com.amazonaws.medialive#InputSettings": { + "type": "structure", "members": { - "NONE": { - "target": "smithy.api#Unit", + "AudioSelectors": { + "target": "com.amazonaws.medialive#__listOfAudioSelector", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#documentation": "Used to select the audio stream to decode for inputs that have multiple available.", + "smithy.api#jsonName": "audioSelectors" } }, - "PASSTHROUGH": { - "target": "smithy.api#Unit", + "CaptionSelectors": { + "target": "com.amazonaws.medialive#__listOfCaptionSelector", "traits": { - "smithy.api#enumValue": "PASSTHROUGH" + "smithy.api#documentation": "Used to select the caption input to use for inputs that have multiple available.", + "smithy.api#jsonName": "captionSelectors" + } + }, + "DeblockFilter": { + "target": "com.amazonaws.medialive#InputDeblockFilter", + "traits": { + "smithy.api#documentation": "Enable or disable the deblock filter when filtering.", + "smithy.api#jsonName": "deblockFilter" + } + }, + "DenoiseFilter": { + "target": "com.amazonaws.medialive#InputDenoiseFilter", + "traits": { + "smithy.api#documentation": "Enable or disable the denoise filter when filtering.", + "smithy.api#jsonName": "denoiseFilter" + } + }, + "FilterStrength": { + "target": "com.amazonaws.medialive#__integerMin1Max5", + "traits": { + "smithy.api#documentation": "Adjusts the magnitude of filtering from 1 (minimal) to 5 (strongest).", + "smithy.api#jsonName": "filterStrength" + } + }, + "InputFilter": { + "target": "com.amazonaws.medialive#InputFilter", + "traits": { + "smithy.api#documentation": "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", + "smithy.api#jsonName": "inputFilter" + } + }, + "NetworkInputSettings": { + "target": "com.amazonaws.medialive#NetworkInputSettings", + "traits": { + "smithy.api#documentation": "Input settings.", + "smithy.api#jsonName": "networkInputSettings" + } + }, + "Scte35Pid": { + "target": "com.amazonaws.medialive#__integerMin32Max8191", + "traits": { + "smithy.api#documentation": "PID from which to read SCTE-35 messages. If left undefined, EML will select the first SCTE-35 PID found in the input.", + "smithy.api#jsonName": "scte35Pid" + } + }, + "Smpte2038DataPreference": { + "target": "com.amazonaws.medialive#Smpte2038DataPreference", + "traits": { + "smithy.api#documentation": "Specifies whether to extract applicable ancillary data from a SMPTE-2038 source in this input. Applicable data types are captions, timecode, AFD, and SCTE-104 messages.\n- PREFER: Extract from SMPTE-2038 if present in this input, otherwise extract from another source (if any).\n- IGNORE: Never extract any ancillary data from SMPTE-2038.", + "smithy.api#jsonName": "smpte2038DataPreference" + } + }, + "SourceEndBehavior": { + "target": "com.amazonaws.medialive#InputSourceEndBehavior", + "traits": { + "smithy.api#documentation": "Loop input if it is a file. This allows a file input to be streamed indefinitely.", + "smithy.api#jsonName": "sourceEndBehavior" + } + }, + "VideoSelector": { + "target": "com.amazonaws.medialive#VideoSelector", + "traits": { + "smithy.api#documentation": "Informs which video elementary stream to decode for input types that have multiple available.", + "smithy.api#jsonName": "videoSelector" } } }, "traits": { - "smithy.api#documentation": "M2ts Klv" + "smithy.api#documentation": "Live Event input parameters. There can be multiple inputs in a single Live Event." } }, - "com.amazonaws.medialive#M2tsNielsenId3Behavior": { - "type": "enum", + "com.amazonaws.medialive#InputSource": { + "type": "structure", "members": { - "NO_PASSTHROUGH": { - "target": "smithy.api#Unit", + "PasswordParam": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "NO_PASSTHROUGH" + "smithy.api#documentation": "The key used to extract the password from EC2 Parameter store.", + "smithy.api#jsonName": "passwordParam" } }, - "PASSTHROUGH": { - "target": "smithy.api#Unit", + "Url": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "PASSTHROUGH" + "smithy.api#documentation": "This represents the customer's source URL where stream is\npulled from.", + "smithy.api#jsonName": "url" + } + }, + "Username": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The username for the input source.", + "smithy.api#jsonName": "username" } } }, "traits": { - "smithy.api#documentation": "M2ts Nielsen Id3 Behavior" + "smithy.api#documentation": "The settings for a PULL type input." } }, - "com.amazonaws.medialive#M2tsPcrControl": { + "com.amazonaws.medialive#InputSourceEndBehavior": { "type": "enum", "members": { - "CONFIGURED_PCR_PERIOD": { + "CONTINUE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CONFIGURED_PCR_PERIOD" + "smithy.api#enumValue": "CONTINUE" } }, - "PCR_EVERY_PES_PACKET": { + "LOOP": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PCR_EVERY_PES_PACKET" + "smithy.api#enumValue": "LOOP" } } }, "traits": { - "smithy.api#documentation": "M2ts Pcr Control" + "smithy.api#documentation": "Input Source End Behavior" } }, - "com.amazonaws.medialive#M2tsRateMode": { - "type": "enum", + "com.amazonaws.medialive#InputSourceRequest": { + "type": "structure", "members": { - "CBR": { - "target": "smithy.api#Unit", + "PasswordParam": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "CBR" + "smithy.api#documentation": "The key used to extract the password from EC2 Parameter store.", + "smithy.api#jsonName": "passwordParam" } }, - "VBR": { - "target": "smithy.api#Unit", + "Url": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "VBR" + "smithy.api#documentation": "This represents the customer's source URL where stream is\npulled from.", + "smithy.api#jsonName": "url" + } + }, + "Username": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The username for the input source.", + "smithy.api#jsonName": "username" } } }, "traits": { - "smithy.api#documentation": "M2ts Rate Mode" + "smithy.api#documentation": "Settings for for a PULL type input." } }, - "com.amazonaws.medialive#M2tsScte35Control": { + "com.amazonaws.medialive#InputSourceType": { "type": "enum", "members": { - "NONE": { + "STATIC": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#enumValue": "STATIC" } }, - "PASSTHROUGH": { + "DYNAMIC": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PASSTHROUGH" + "smithy.api#enumValue": "DYNAMIC" } } }, "traits": { - "smithy.api#documentation": "M2ts Scte35 Control" + "smithy.api#documentation": "There are two types of input sources, static and dynamic. If an input source is dynamic you can\nchange the source url of the input dynamically using an input switch action. Currently, two input types\nsupport a dynamic url at this time, MP4_FILE and TS_FILE. By default all input sources are static." } }, - "com.amazonaws.medialive#M2tsSegmentationMarkers": { - "type": "enum", + "com.amazonaws.medialive#InputSpecification": { + "type": "structure", "members": { - "EBP": { - "target": "smithy.api#Unit", + "Codec": { + "target": "com.amazonaws.medialive#InputCodec", "traits": { - "smithy.api#enumValue": "EBP" + "smithy.api#documentation": "Input codec", + "smithy.api#jsonName": "codec" } }, - "EBP_LEGACY": { + "MaximumBitrate": { + "target": "com.amazonaws.medialive#InputMaximumBitrate", + "traits": { + "smithy.api#documentation": "Maximum input bitrate, categorized coarsely", + "smithy.api#jsonName": "maximumBitrate" + } + }, + "Resolution": { + "target": "com.amazonaws.medialive#InputResolution", + "traits": { + "smithy.api#documentation": "Input resolution, categorized coarsely", + "smithy.api#jsonName": "resolution" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for InputSpecification" + } + }, + "com.amazonaws.medialive#InputState": { + "type": "enum", + "members": { + "CREATING": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EBP_LEGACY" + "smithy.api#enumValue": "CREATING" } }, - "NONE": { + "DETACHED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#enumValue": "DETACHED" } }, - "PSI_SEGSTART": { + "ATTACHED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PSI_SEGSTART" + "smithy.api#enumValue": "ATTACHED" } }, - "RAI_ADAPT": { + "DELETING": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "RAI_ADAPT" + "smithy.api#enumValue": "DELETING" } }, - "RAI_SEGSTART": { + "DELETED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "RAI_SEGSTART" + "smithy.api#enumValue": "DELETED" } } }, "traits": { - "smithy.api#documentation": "M2ts Segmentation Markers" + "smithy.api#documentation": "Placeholder documentation for InputState" } }, - "com.amazonaws.medialive#M2tsSegmentationStyle": { - "type": "enum", + "com.amazonaws.medialive#InputSwitchScheduleActionSettings": { + "type": "structure", "members": { - "MAINTAIN_CADENCE": { - "target": "smithy.api#Unit", + "InputAttachmentNameReference": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "MAINTAIN_CADENCE" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The name of the input attachment (not the name of the input!) to switch to. The name is specified in the channel configuration.", + "smithy.api#jsonName": "inputAttachmentNameReference", + "smithy.api#required": {} } }, - "RESET_CADENCE": { - "target": "smithy.api#Unit", + "InputClippingSettings": { + "target": "com.amazonaws.medialive#InputClippingSettings", "traits": { - "smithy.api#enumValue": "RESET_CADENCE" + "smithy.api#documentation": "Settings to let you create a clip of the file input, in order to set up the input to ingest only a portion of the file.", + "smithy.api#jsonName": "inputClippingSettings" + } + }, + "UrlPath": { + "target": "com.amazonaws.medialive#__listOf__string", + "traits": { + "smithy.api#documentation": "The value for the variable portion of the URL for the dynamic input, for this instance of the input. Each time you use the same dynamic input in an input switch action, you can provide a different value, in order to connect the input to a different content source.", + "smithy.api#jsonName": "urlPath" } } }, "traits": { - "smithy.api#documentation": "M2ts Segmentation Style" + "smithy.api#documentation": "Settings for the \"switch input\" action: to switch from ingesting one input to ingesting another input." } }, - "com.amazonaws.medialive#M2tsSettings": { - "type": "structure", + "com.amazonaws.medialive#InputTimecodeSource": { + "type": "enum", "members": { - "AbsentInputAudioBehavior": { - "target": "com.amazonaws.medialive#M2tsAbsentInputAudioBehavior", + "ZEROBASED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "absentInputAudioBehavior" + "smithy.api#enumValue": "ZEROBASED" } }, - "Arib": { - "target": "com.amazonaws.medialive#M2tsArib", + "EMBEDDED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "When set to enabled, uses ARIB-compliant field muxing and removes video descriptor.", - "smithy.api#jsonName": "arib" + "smithy.api#enumValue": "EMBEDDED" } - }, - "AribCaptionsPid": { - "target": "com.amazonaws.medialive#__string", + } + }, + "traits": { + "smithy.api#documentation": "Documentation update needed" + } + }, + "com.amazonaws.medialive#InputType": { + "type": "enum", + "members": { + "UDP_PUSH": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "aribCaptionsPid" + "smithy.api#enumValue": "UDP_PUSH" } }, - "AribCaptionsPidControl": { - "target": "com.amazonaws.medialive#M2tsAribCaptionsPidControl", + "RTP_PUSH": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "aribCaptionsPidControl" + "smithy.api#enumValue": "RTP_PUSH" } }, - "AudioBufferModel": { - "target": "com.amazonaws.medialive#M2tsAudioBufferModel", + "RTMP_PUSH": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "When set to dvb, uses DVB buffer model for Dolby Digital audio. When set to atsc, the ATSC model is used.", - "smithy.api#jsonName": "audioBufferModel" + "smithy.api#enumValue": "RTMP_PUSH" } }, - "AudioFramesPerPes": { - "target": "com.amazonaws.medialive#__integerMin0", + "RTMP_PULL": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The number of audio frames to insert for each PES packet.", - "smithy.api#jsonName": "audioFramesPerPes" + "smithy.api#enumValue": "RTMP_PULL" } }, - "AudioPids": { - "target": "com.amazonaws.medialive#__string", + "URL_PULL": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "audioPids" + "smithy.api#enumValue": "URL_PULL" } }, - "AudioStreamType": { - "target": "com.amazonaws.medialive#M2tsAudioStreamType", + "MP4_FILE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.", - "smithy.api#jsonName": "audioStreamType" + "smithy.api#enumValue": "MP4_FILE" } }, - "Bitrate": { - "target": "com.amazonaws.medialive#__integerMin0", + "MEDIACONNECT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The output bitrate of the transport stream in bits per second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.", - "smithy.api#jsonName": "bitrate" + "smithy.api#enumValue": "MEDIACONNECT" } }, - "BufferModel": { - "target": "com.amazonaws.medialive#M2tsBufferModel", + "INPUT_DEVICE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to ensure accurate network packet timing. Or set to NONE, which might result in lower latency but will result in more variability in output network packet timing. This variability might cause interruptions, jitter, or bursty behavior in your playback or receiving devices.", - "smithy.api#jsonName": "bufferModel" + "smithy.api#enumValue": "INPUT_DEVICE" } }, - "CcDescriptor": { - "target": "com.amazonaws.medialive#M2tsCcDescriptor", + "AWS_CDI": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "When set to enabled, generates captionServiceDescriptor in PMT.", - "smithy.api#jsonName": "ccDescriptor" + "smithy.api#enumValue": "AWS_CDI" } }, - "DvbNitSettings": { - "target": "com.amazonaws.medialive#DvbNitSettings", + "TS_FILE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Inserts DVB Network Information Table (NIT) at the specified table repetition interval.", - "smithy.api#jsonName": "dvbNitSettings" + "smithy.api#enumValue": "TS_FILE" } - }, - "DvbSdtSettings": { - "target": "com.amazonaws.medialive#DvbSdtSettings", + } + }, + "traits": { + "smithy.api#documentation": "The different types of inputs that AWS Elemental MediaLive supports." + } + }, + "com.amazonaws.medialive#InputVpcRequest": { + "type": "structure", + "members": { + "SecurityGroupIds": { + "target": "com.amazonaws.medialive#__listOf__string", "traits": { - "smithy.api#documentation": "Inserts DVB Service Description Table (SDT) at the specified table repetition interval.", - "smithy.api#jsonName": "dvbSdtSettings" + "smithy.api#documentation": "A list of up to 5 EC2 VPC security group IDs to attach to the Input VPC network interfaces.\nRequires subnetIds. If none are specified then the VPC default security group will be used.", + "smithy.api#jsonName": "securityGroupIds" } }, - "DvbSubPids": { - "target": "com.amazonaws.medialive#__string", + "SubnetIds": { + "target": "com.amazonaws.medialive#__listOf__string", "traits": { - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "dvbSubPids" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A list of 2 VPC subnet IDs from the same VPC.\nSubnet IDs must be mapped to two unique availability zones (AZ).", + "smithy.api#jsonName": "subnetIds", + "smithy.api#required": {} } - }, - "DvbTdtSettings": { - "target": "com.amazonaws.medialive#DvbTdtSettings", + } + }, + "traits": { + "smithy.api#documentation": "Settings for a private VPC Input.\nWhen this property is specified, the input destination addresses will be created in a VPC rather than with public Internet addresses.\nThis property requires setting the roleArn property on Input creation.\nNot compatible with the inputSecurityGroups property." + } + }, + "com.amazonaws.medialive#InputWhitelistRule": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Inserts DVB Time and Date Table (TDT) at the specified table repetition interval.", - "smithy.api#jsonName": "dvbTdtSettings" + "smithy.api#documentation": "The IPv4 CIDR that's whitelisted.", + "smithy.api#jsonName": "cidr" } - }, - "DvbTeletextPid": { + } + }, + "traits": { + "smithy.api#documentation": "Whitelist rule" + } + }, + "com.amazonaws.medialive#InputWhitelistRuleCidr": { + "type": "structure", + "members": { + "Cidr": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "dvbTeletextPid" + "smithy.api#documentation": "The IPv4 CIDR to whitelist.", + "smithy.api#jsonName": "cidr" } - }, - "Ebif": { - "target": "com.amazonaws.medialive#M2tsEbifControl", + } + }, + "traits": { + "smithy.api#documentation": "An IPv4 CIDR to whitelist." + } + }, + "com.amazonaws.medialive#InternalServerErrorException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "If set to passthrough, passes any EBIF data from the input source to this output.", - "smithy.api#jsonName": "ebif" + "smithy.api#jsonName": "message" } - }, - "EbpAudioInterval": { - "target": "com.amazonaws.medialive#M2tsAudioInterval", + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for InternalServerErrorException", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.medialive#KeyProviderSettings": { + "type": "structure", + "members": { + "StaticKeySettings": { + "target": "com.amazonaws.medialive#StaticKeySettings", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "ebpAudioInterval" + "smithy.api#jsonName": "staticKeySettings" } - }, - "EbpLookaheadMs": { - "target": "com.amazonaws.medialive#__integerMin0Max10000", + } + }, + "traits": { + "smithy.api#documentation": "Key Provider Settings" + } + }, + "com.amazonaws.medialive#LastFrameClippingBehavior": { + "type": "enum", + "members": { + "EXCLUDE_LAST_FRAME": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "ebpLookaheadMs" + "smithy.api#enumValue": "EXCLUDE_LAST_FRAME" } }, - "EbpPlacement": { - "target": "com.amazonaws.medialive#M2tsEbpPlacement", + "INCLUDE_LAST_FRAME": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "ebpPlacement" + "smithy.api#enumValue": "INCLUDE_LAST_FRAME" } + } + }, + "traits": { + "smithy.api#documentation": "If you specify a StopTimecode in an input (in order to clip the file), you can specify if you want the clip to exclude (the default) or include the frame specified by the timecode." + } + }, + "com.amazonaws.medialive#ListChannels": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ListChannelsRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ListChannelsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" }, - "EcmPid": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "This field is unused and deprecated.", - "smithy.api#jsonName": "ecmPid" - } + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "EsRateInPes": { - "target": "com.amazonaws.medialive#M2tsEsRateInPes", - "traits": { - "smithy.api#documentation": "Include or exclude the ES Rate field in the PES header.", - "smithy.api#jsonName": "esRateInPes" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" }, - "EtvPlatformPid": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "etvPlatformPid" - } + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" }, - "EtvSignalPid": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "etvSignalPid" - } + { + "target": "com.amazonaws.medialive#InternalServerErrorException" }, - "FragmentTime": { - "target": "com.amazonaws.medialive#__doubleMin0", - "traits": { - "smithy.api#documentation": "The length in seconds of each fragment. Only used with EBP markers.", - "smithy.api#jsonName": "fragmentTime" - } + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Produces list of channels that have been created", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/channels", + "code": 200 }, - "Klv": { - "target": "com.amazonaws.medialive#M2tsKlv", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Channels", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.medialive#ListChannelsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.medialive#MaxResults", "traits": { - "smithy.api#documentation": "If set to passthrough, passes any KLV data from the input source to this output.", - "smithy.api#jsonName": "klv" + "smithy.api#httpQuery": "maxResults" } }, - "KlvDataPids": { + "NextToken": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "klvDataPids" + "smithy.api#httpQuery": "nextToken" } - }, - "NielsenId3Behavior": { - "target": "com.amazonaws.medialive#M2tsNielsenId3Behavior", + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListChannelsRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#ListChannelsResponse": { + "type": "structure", + "members": { + "Channels": { + "target": "com.amazonaws.medialive#__listOfChannelSummary", "traits": { - "smithy.api#documentation": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output.", - "smithy.api#jsonName": "nielsenId3Behavior" + "smithy.api#jsonName": "channels" } }, - "NullPacketBitrate": { - "target": "com.amazonaws.medialive#__doubleMin0", + "NextToken": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "nullPacketBitrate" + "smithy.api#jsonName": "nextToken" } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListChannelsResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#ListCloudWatchAlarmTemplateGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ListCloudWatchAlarmTemplateGroupsRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ListCloudWatchAlarmTemplateGroupsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "PatInterval": { - "target": "com.amazonaws.medialive#__integerMin0Max1000", - "traits": { - "smithy.api#documentation": "The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, 10..1000.", - "smithy.api#jsonName": "patInterval" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" }, - "PcrControl": { - "target": "com.amazonaws.medialive#M2tsPcrControl", - "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "pcrControl" - } + { + "target": "com.amazonaws.medialive#InternalServerErrorException" }, - "PcrPeriod": { - "target": "com.amazonaws.medialive#__integerMin0Max500", + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Lists cloudwatch alarm template groups.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/cloudwatch-alarm-template-groups", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CloudWatchAlarmTemplateGroups", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.medialive#ListCloudWatchAlarmTemplateGroupsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.medialive#MaxResults", "traits": { - "smithy.api#documentation": "Maximum time in milliseconds between Program Clock Reference (PCRs) inserted into the transport stream.", - "smithy.api#jsonName": "pcrPeriod" + "smithy.api#httpQuery": "maxResults" } }, - "PcrPid": { + "NextToken": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "pcrPid" + "smithy.api#documentation": "A token used to retrieve the next set of results in paginated list responses.", + "smithy.api#httpQuery": "nextToken" } }, - "PmtInterval": { - "target": "com.amazonaws.medialive#__integerMin0Max1000", + "Scope": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, 10..1000.", - "smithy.api#jsonName": "pmtInterval" + "smithy.api#documentation": "Represents the scope of a resource, with options for all scopes, AWS provided resources, or local resources.", + "smithy.api#httpQuery": "scope" } }, - "PmtPid": { + "SignalMapIdentifier": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "pmtPid" + "smithy.api#documentation": "A signal map's identifier. Can be either be its id or current name.", + "smithy.api#httpQuery": "signalMapIdentifier" } - }, - "ProgramNum": { - "target": "com.amazonaws.medialive#__integerMin0Max65535", + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListCloudWatchAlarmTemplateGroupsRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#ListCloudWatchAlarmTemplateGroupsResponse": { + "type": "structure", + "members": { + "CloudWatchAlarmTemplateGroups": { + "target": "com.amazonaws.medialive#__listOfCloudWatchAlarmTemplateGroupSummary", "traits": { - "smithy.api#documentation": "The value of the program number field in the Program Map Table.", - "smithy.api#jsonName": "programNum" + "smithy.api#jsonName": "cloudWatchAlarmTemplateGroups" } }, - "RateMode": { - "target": "com.amazonaws.medialive#M2tsRateMode", + "NextToken": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "rateMode" + "smithy.api#documentation": "A token used to retrieve the next set of results in paginated list responses.", + "smithy.api#jsonName": "nextToken" } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListCloudWatchAlarmTemplateGroupsResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#ListCloudWatchAlarmTemplates": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ListCloudWatchAlarmTemplatesRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ListCloudWatchAlarmTemplatesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "Scte27Pids": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "scte27Pids" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" }, - "Scte35Control": { - "target": "com.amazonaws.medialive#M2tsScte35Control", - "traits": { - "smithy.api#documentation": "Optionally pass SCTE-35 signals from the input source to this output.", - "smithy.api#jsonName": "scte35Control" - } + { + "target": "com.amazonaws.medialive#InternalServerErrorException" }, - "Scte35Pid": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "scte35Pid" - } + { + "target": "com.amazonaws.medialive#NotFoundException" }, - "SegmentationMarkers": { - "target": "com.amazonaws.medialive#M2tsSegmentationMarkers", + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Lists cloudwatch alarm templates.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/cloudwatch-alarm-templates", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CloudWatchAlarmTemplates", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.medialive#ListCloudWatchAlarmTemplatesRequest": { + "type": "structure", + "members": { + "GroupIdentifier": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "segmentationMarkers" + "smithy.api#documentation": "A cloudwatch alarm template group's identifier. Can be either be its id or current name.", + "smithy.api#httpQuery": "groupIdentifier" } }, - "SegmentationStyle": { - "target": "com.amazonaws.medialive#M2tsSegmentationStyle", + "MaxResults": { + "target": "com.amazonaws.medialive#MaxResults", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "segmentationStyle" + "smithy.api#httpQuery": "maxResults" } }, - "SegmentationTime": { - "target": "com.amazonaws.medialive#__doubleMin1", + "NextToken": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The length in seconds of each segment. Required unless markers is set to _none_.", - "smithy.api#jsonName": "segmentationTime" + "smithy.api#documentation": "A token used to retrieve the next set of results in paginated list responses.", + "smithy.api#httpQuery": "nextToken" } }, - "TimedMetadataBehavior": { - "target": "com.amazonaws.medialive#M2tsTimedMetadataBehavior", + "Scope": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "When set to passthrough, timed metadata will be passed through from input to output.", - "smithy.api#jsonName": "timedMetadataBehavior" + "smithy.api#documentation": "Represents the scope of a resource, with options for all scopes, AWS provided resources, or local resources.", + "smithy.api#httpQuery": "scope" } }, - "TimedMetadataPid": { + "SignalMapIdentifier": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "timedMetadataPid" + "smithy.api#documentation": "A signal map's identifier. Can be either be its id or current name.", + "smithy.api#httpQuery": "signalMapIdentifier" } - }, - "TransportStreamId": { - "target": "com.amazonaws.medialive#__integerMin0Max65535", + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListCloudWatchAlarmTemplatesRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#ListCloudWatchAlarmTemplatesResponse": { + "type": "structure", + "members": { + "CloudWatchAlarmTemplates": { + "target": "com.amazonaws.medialive#__listOfCloudWatchAlarmTemplateSummary", "traits": { - "smithy.api#documentation": "The value of the transport stream ID field in the Program Map Table.", - "smithy.api#jsonName": "transportStreamId" + "smithy.api#jsonName": "cloudWatchAlarmTemplates" } }, - "VideoPid": { - "target": "com.amazonaws.medialive#__string", + "NextToken": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", "traits": { - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "videoPid" - } - }, - "Scte35PrerollPullupMilliseconds": { - "target": "com.amazonaws.medialive#__doubleMin0Max5000", - "traits": { - "smithy.api#documentation": "Defines the amount SCTE-35 preroll will be increased (in milliseconds) on the output. Preroll is the amount of time between the presence of a SCTE-35 indication in a transport stream and the PTS of the video frame it references. Zero means don't add pullup (it doesn't mean set the preroll to zero). Negative pullup is not supported, which means that you can't make the preroll shorter. Be aware that latency in the output will increase by the pullup amount.", - "smithy.api#jsonName": "scte35PrerollPullupMilliseconds" + "smithy.api#documentation": "A token used to retrieve the next set of results in paginated list responses.", + "smithy.api#jsonName": "nextToken" } } }, "traits": { - "smithy.api#documentation": "M2ts Settings" + "smithy.api#documentation": "Placeholder documentation for ListCloudWatchAlarmTemplatesResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#M2tsTimedMetadataBehavior": { - "type": "enum", - "members": { - "NO_PASSTHROUGH": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "NO_PASSTHROUGH" - } + "com.amazonaws.medialive#ListEventBridgeRuleTemplateGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ListEventBridgeRuleTemplateGroupsRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ListEventBridgeRuleTemplateGroupsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "PASSTHROUGH": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PASSTHROUGH" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" } - }, + ], "traits": { - "smithy.api#documentation": "M2ts Timed Metadata Behavior" + "smithy.api#documentation": "Lists eventbridge rule template groups.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/eventbridge-rule-template-groups", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "EventBridgeRuleTemplateGroups", + "pageSize": "MaxResults" + } } }, - "com.amazonaws.medialive#M3u8KlvBehavior": { - "type": "enum", + "com.amazonaws.medialive#ListEventBridgeRuleTemplateGroupsRequest": { + "type": "structure", "members": { - "NO_PASSTHROUGH": { - "target": "smithy.api#Unit", + "MaxResults": { + "target": "com.amazonaws.medialive#MaxResults", "traits": { - "smithy.api#enumValue": "NO_PASSTHROUGH" + "smithy.api#httpQuery": "maxResults" } }, - "PASSTHROUGH": { - "target": "smithy.api#Unit", + "NextToken": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "PASSTHROUGH" + "smithy.api#documentation": "A token used to retrieve the next set of results in paginated list responses.", + "smithy.api#httpQuery": "nextToken" + } + }, + "SignalMapIdentifier": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "A signal map's identifier. Can be either be its id or current name.", + "smithy.api#httpQuery": "signalMapIdentifier" } } }, "traits": { - "smithy.api#documentation": "M3u8 Klv Behavior" + "smithy.api#documentation": "Placeholder documentation for ListEventBridgeRuleTemplateGroupsRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#M3u8NielsenId3Behavior": { - "type": "enum", + "com.amazonaws.medialive#ListEventBridgeRuleTemplateGroupsResponse": { + "type": "structure", "members": { - "NO_PASSTHROUGH": { - "target": "smithy.api#Unit", + "EventBridgeRuleTemplateGroups": { + "target": "com.amazonaws.medialive#__listOfEventBridgeRuleTemplateGroupSummary", "traits": { - "smithy.api#enumValue": "NO_PASSTHROUGH" + "smithy.api#jsonName": "eventBridgeRuleTemplateGroups" } }, - "PASSTHROUGH": { - "target": "smithy.api#Unit", + "NextToken": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", "traits": { - "smithy.api#enumValue": "PASSTHROUGH" + "smithy.api#documentation": "A token used to retrieve the next set of results in paginated list responses.", + "smithy.api#jsonName": "nextToken" } } }, "traits": { - "smithy.api#documentation": "M3u8 Nielsen Id3 Behavior" + "smithy.api#documentation": "Placeholder documentation for ListEventBridgeRuleTemplateGroupsResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#M3u8PcrControl": { - "type": "enum", + "com.amazonaws.medialive#ListEventBridgeRuleTemplates": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ListEventBridgeRuleTemplatesRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ListEventBridgeRuleTemplatesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Lists eventbridge rule templates.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/eventbridge-rule-templates", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "EventBridgeRuleTemplates", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.medialive#ListEventBridgeRuleTemplatesRequest": { + "type": "structure", "members": { - "CONFIGURED_PCR_PERIOD": { - "target": "smithy.api#Unit", + "GroupIdentifier": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "CONFIGURED_PCR_PERIOD" + "smithy.api#documentation": "An eventbridge rule template group's identifier. Can be either be its id or current name.", + "smithy.api#httpQuery": "groupIdentifier" } }, - "PCR_EVERY_PES_PACKET": { - "target": "smithy.api#Unit", + "MaxResults": { + "target": "com.amazonaws.medialive#MaxResults", "traits": { - "smithy.api#enumValue": "PCR_EVERY_PES_PACKET" + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "A token used to retrieve the next set of results in paginated list responses.", + "smithy.api#httpQuery": "nextToken" + } + }, + "SignalMapIdentifier": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "A signal map's identifier. Can be either be its id or current name.", + "smithy.api#httpQuery": "signalMapIdentifier" } } }, "traits": { - "smithy.api#documentation": "M3u8 Pcr Control" + "smithy.api#documentation": "Placeholder documentation for ListEventBridgeRuleTemplatesRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#M3u8Scte35Behavior": { - "type": "enum", + "com.amazonaws.medialive#ListEventBridgeRuleTemplatesResponse": { + "type": "structure", "members": { - "NO_PASSTHROUGH": { - "target": "smithy.api#Unit", + "EventBridgeRuleTemplates": { + "target": "com.amazonaws.medialive#__listOfEventBridgeRuleTemplateSummary", "traits": { - "smithy.api#enumValue": "NO_PASSTHROUGH" + "smithy.api#jsonName": "eventBridgeRuleTemplates" } }, - "PASSTHROUGH": { - "target": "smithy.api#Unit", + "NextToken": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", "traits": { - "smithy.api#enumValue": "PASSTHROUGH" + "smithy.api#documentation": "A token used to retrieve the next set of results in paginated list responses.", + "smithy.api#jsonName": "nextToken" } } }, "traits": { - "smithy.api#documentation": "M3u8 Scte35 Behavior" + "smithy.api#documentation": "Placeholder documentation for ListEventBridgeRuleTemplatesResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#M3u8Settings": { + "com.amazonaws.medialive#ListInputDeviceTransfers": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ListInputDeviceTransfersRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ListInputDeviceTransfersResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" + }, + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + }, + { + "target": "com.amazonaws.medialive#UnprocessableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "List input devices that are currently being transferred. List input devices that you are transferring from your AWS account or input devices that another AWS account is transferring to you.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/inputDeviceTransfers", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "InputDeviceTransfers", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.medialive#ListInputDeviceTransfersRequest": { "type": "structure", "members": { - "AudioFramesPerPes": { - "target": "com.amazonaws.medialive#__integerMin0", + "MaxResults": { + "target": "com.amazonaws.medialive#MaxResults", "traits": { - "smithy.api#documentation": "The number of audio frames to insert for each PES packet.", - "smithy.api#jsonName": "audioFramesPerPes" + "smithy.api#httpQuery": "maxResults" } }, - "AudioPids": { + "NextToken": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "audioPids" + "smithy.api#httpQuery": "nextToken" } }, - "EcmPid": { + "TransferType": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "This parameter is unused and deprecated.", - "smithy.api#jsonName": "ecmPid" + "smithy.api#clientOptional": {}, + "smithy.api#httpQuery": "transferType", + "smithy.api#required": {} } - }, - "NielsenId3Behavior": { - "target": "com.amazonaws.medialive#M3u8NielsenId3Behavior", + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListInputDeviceTransfersRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#ListInputDeviceTransfersResponse": { + "type": "structure", + "members": { + "InputDeviceTransfers": { + "target": "com.amazonaws.medialive#__listOfTransferringInputDeviceSummary", "traits": { - "smithy.api#documentation": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output.", - "smithy.api#jsonName": "nielsenId3Behavior" + "smithy.api#documentation": "The list of devices that you are transferring or are being transferred to you.", + "smithy.api#jsonName": "inputDeviceTransfers" } }, - "PatInterval": { - "target": "com.amazonaws.medialive#__integerMin0Max1000", + "NextToken": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "patInterval" - } - }, - "PcrControl": { - "target": "com.amazonaws.medialive#M3u8PcrControl", - "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "pcrControl" + "smithy.api#documentation": "A token to get additional list results.", + "smithy.api#jsonName": "nextToken" } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListInputDeviceTransfersResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#ListInputDevices": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ListInputDevicesRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ListInputDevicesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" }, - "PcrPeriod": { - "target": "com.amazonaws.medialive#__integerMin0Max500", - "traits": { - "smithy.api#documentation": "Maximum time in milliseconds between Program Clock References (PCRs) inserted into the transport stream.", - "smithy.api#jsonName": "pcrPeriod" - } + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "PcrPid": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "pcrPid" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" }, - "PmtInterval": { - "target": "com.amazonaws.medialive#__integerMin0Max1000", - "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "pmtInterval" - } + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" }, - "PmtPid": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.", - "smithy.api#jsonName": "pmtPid" - } + { + "target": "com.amazonaws.medialive#InternalServerErrorException" }, - "ProgramNum": { - "target": "com.amazonaws.medialive#__integerMin0Max65535", - "traits": { - "smithy.api#documentation": "The value of the program number field in the Program Map Table.", - "smithy.api#jsonName": "programNum" - } + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "List input devices", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/inputDevices", + "code": 200 }, - "Scte35Behavior": { - "target": "com.amazonaws.medialive#M3u8Scte35Behavior", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "InputDevices", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.medialive#ListInputDevicesRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.medialive#MaxResults", "traits": { - "smithy.api#documentation": "If set to passthrough, passes any SCTE-35 signals from the input source to this output.", - "smithy.api#jsonName": "scte35Behavior" + "smithy.api#httpQuery": "maxResults" } }, - "Scte35Pid": { + "NextToken": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or hexadecimal value.", - "smithy.api#jsonName": "scte35Pid" + "smithy.api#httpQuery": "nextToken" } - }, - "TimedMetadataBehavior": { - "target": "com.amazonaws.medialive#M3u8TimedMetadataBehavior", + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListInputDevicesRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#ListInputDevicesResponse": { + "type": "structure", + "members": { + "InputDevices": { + "target": "com.amazonaws.medialive#__listOfInputDeviceSummary", "traits": { - "smithy.api#documentation": "When set to passthrough, timed metadata is passed through from input to output.", - "smithy.api#jsonName": "timedMetadataBehavior" + "smithy.api#documentation": "The list of input devices.", + "smithy.api#jsonName": "inputDevices" } }, - "TimedMetadataPid": { + "NextToken": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "timedMetadataPid" + "smithy.api#documentation": "A token to get additional list results.", + "smithy.api#jsonName": "nextToken" } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListInputDevicesResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#ListInputSecurityGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ListInputSecurityGroupsRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ListInputSecurityGroupsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" }, - "TransportStreamId": { - "target": "com.amazonaws.medialive#__integerMin0Max65535", - "traits": { - "smithy.api#documentation": "The value of the transport stream ID field in the Program Map Table.", - "smithy.api#jsonName": "transportStreamId" - } + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "VideoPid": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a decimal or hexadecimal value.", - "smithy.api#jsonName": "videoPid" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" }, - "KlvBehavior": { - "target": "com.amazonaws.medialive#M3u8KlvBehavior", - "traits": { - "smithy.api#documentation": "If set to passthrough, passes any KLV data from the input source to this output.", - "smithy.api#jsonName": "klvBehavior" - } + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" }, - "KlvDataPids": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "klvDataPids" - } + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" } - }, + ], "traits": { - "smithy.api#documentation": "Settings information for the .m3u8 container" + "smithy.api#documentation": "Produces a list of Input Security Groups for an account", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/inputSecurityGroups", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "InputSecurityGroups", + "pageSize": "MaxResults" + } } }, - "com.amazonaws.medialive#M3u8TimedMetadataBehavior": { - "type": "enum", + "com.amazonaws.medialive#ListInputSecurityGroupsRequest": { + "type": "structure", "members": { - "NO_PASSTHROUGH": { - "target": "smithy.api#Unit", + "MaxResults": { + "target": "com.amazonaws.medialive#MaxResults", "traits": { - "smithy.api#enumValue": "NO_PASSTHROUGH" + "smithy.api#httpQuery": "maxResults" } }, - "PASSTHROUGH": { - "target": "smithy.api#Unit", + "NextToken": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "PASSTHROUGH" + "smithy.api#httpQuery": "nextToken" } } }, "traits": { - "smithy.api#documentation": "M3u8 Timed Metadata Behavior" + "smithy.api#documentation": "Placeholder documentation for ListInputSecurityGroupsRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#MaintenanceCreateSettings": { + "com.amazonaws.medialive#ListInputSecurityGroupsResponse": { "type": "structure", "members": { - "MaintenanceDay": { - "target": "com.amazonaws.medialive#MaintenanceDay", + "InputSecurityGroups": { + "target": "com.amazonaws.medialive#__listOfInputSecurityGroup", "traits": { - "smithy.api#documentation": "Choose one day of the week for maintenance. The chosen day is used for all future maintenance windows.", - "smithy.api#jsonName": "maintenanceDay" + "smithy.api#documentation": "List of input security groups", + "smithy.api#jsonName": "inputSecurityGroups" } }, - "MaintenanceStartTime": { - "target": "com.amazonaws.medialive#__stringPattern010920300", + "NextToken": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Choose the hour that maintenance will start. The chosen time is used for all future maintenance windows.", - "smithy.api#jsonName": "maintenanceStartTime" + "smithy.api#jsonName": "nextToken" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for MaintenanceCreateSettings" + "smithy.api#documentation": "Placeholder documentation for ListInputSecurityGroupsResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#MaintenanceDay": { - "type": "enum", - "members": { - "MONDAY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "MONDAY" - } + "com.amazonaws.medialive#ListInputs": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ListInputsRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ListInputsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" }, - "TUESDAY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "TUESDAY" - } + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "WEDNESDAY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "WEDNESDAY" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" }, - "THURSDAY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "THURSDAY" - } + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" }, - "FRIDAY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "FRIDAY" - } + { + "target": "com.amazonaws.medialive#InternalServerErrorException" }, - "SATURDAY": { - "target": "smithy.api#Unit", + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Produces list of inputs that have been created", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/inputs", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Inputs", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.medialive#ListInputsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.medialive#MaxResults", "traits": { - "smithy.api#enumValue": "SATURDAY" + "smithy.api#httpQuery": "maxResults" } }, - "SUNDAY": { - "target": "smithy.api#Unit", + "NextToken": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "SUNDAY" + "smithy.api#httpQuery": "nextToken" } } }, "traits": { - "smithy.api#documentation": "The currently selected maintenance day." + "smithy.api#documentation": "Placeholder documentation for ListInputsRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#MaintenanceStatus": { + "com.amazonaws.medialive#ListInputsResponse": { "type": "structure", "members": { - "MaintenanceDay": { - "target": "com.amazonaws.medialive#MaintenanceDay", + "Inputs": { + "target": "com.amazonaws.medialive#__listOfInput", "traits": { - "smithy.api#documentation": "The currently selected maintenance day.", - "smithy.api#jsonName": "maintenanceDay" + "smithy.api#jsonName": "inputs" } }, - "MaintenanceDeadline": { + "NextToken": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Maintenance is required by the displayed date and time. Date and time is in ISO.", - "smithy.api#jsonName": "maintenanceDeadline" + "smithy.api#jsonName": "nextToken" } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListInputsResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#ListMultiplexPrograms": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ListMultiplexProgramsRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ListMultiplexProgramsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" }, - "MaintenanceScheduledDate": { + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "List the programs that currently exist for a specific multiplex.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/multiplexes/{MultiplexId}/programs", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "MultiplexPrograms", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.medialive#ListMultiplexProgramsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.medialive#MaxResults", + "traits": { + "smithy.api#documentation": "The maximum number of items to return.", + "smithy.api#httpQuery": "maxResults" + } + }, + "MultiplexId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The currently scheduled maintenance date and time. Date and time is in ISO.", - "smithy.api#jsonName": "maintenanceScheduledDate" + "smithy.api#documentation": "The ID of the multiplex that the programs belong to.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, - "MaintenanceStartTime": { + "NextToken": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The currently selected maintenance start time. Time is in UTC.", - "smithy.api#jsonName": "maintenanceStartTime" + "smithy.api#documentation": "The token to retrieve the next page of results.", + "smithy.api#httpQuery": "nextToken" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for MaintenanceStatus" + "smithy.api#documentation": "Placeholder documentation for ListMultiplexProgramsRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#MaintenanceUpdateSettings": { + "com.amazonaws.medialive#ListMultiplexProgramsResponse": { "type": "structure", "members": { - "MaintenanceDay": { - "target": "com.amazonaws.medialive#MaintenanceDay", + "MultiplexPrograms": { + "target": "com.amazonaws.medialive#__listOfMultiplexProgramSummary", "traits": { - "smithy.api#documentation": "Choose one day of the week for maintenance. The chosen day is used for all future maintenance windows.", - "smithy.api#jsonName": "maintenanceDay" + "smithy.api#documentation": "List of multiplex programs.", + "smithy.api#jsonName": "multiplexPrograms" } }, - "MaintenanceScheduledDate": { + "NextToken": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Choose a specific date for maintenance to occur. The chosen date is used for the next maintenance window only.", - "smithy.api#jsonName": "maintenanceScheduledDate" - } - }, - "MaintenanceStartTime": { - "target": "com.amazonaws.medialive#__stringPattern010920300", - "traits": { - "smithy.api#documentation": "Choose the hour that maintenance will start. The chosen time is used for all future maintenance windows.", - "smithy.api#jsonName": "maintenanceStartTime" + "smithy.api#documentation": "Token for the next ListMultiplexProgram request.", + "smithy.api#jsonName": "nextToken" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for MaintenanceUpdateSettings" + "smithy.api#documentation": "Placeholder documentation for ListMultiplexProgramsResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#MaxResults": { - "type": "integer", + "com.amazonaws.medialive#ListMultiplexes": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ListMultiplexesRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ListMultiplexesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" + }, + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], "traits": { - "smithy.api#documentation": "Placeholder documentation for MaxResults", - "smithy.api#range": { - "min": 1, - "max": 1000 + "smithy.api#documentation": "Retrieve a list of the existing multiplexes.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/multiplexes", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Multiplexes", + "pageSize": "MaxResults" } } }, - "com.amazonaws.medialive#MediaConnectFlow": { + "com.amazonaws.medialive#ListMultiplexesRequest": { "type": "structure", "members": { - "FlowArn": { + "MaxResults": { + "target": "com.amazonaws.medialive#MaxResults", + "traits": { + "smithy.api#documentation": "The maximum number of items to return.", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The unique ARN of the MediaConnect Flow being used as a source.", - "smithy.api#jsonName": "flowArn" + "smithy.api#documentation": "The token to retrieve the next page of results.", + "smithy.api#httpQuery": "nextToken" } } }, "traits": { - "smithy.api#documentation": "The settings for a MediaConnect Flow." + "smithy.api#documentation": "Placeholder documentation for ListMultiplexesRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#MediaConnectFlowRequest": { + "com.amazonaws.medialive#ListMultiplexesResponse": { "type": "structure", "members": { - "FlowArn": { + "Multiplexes": { + "target": "com.amazonaws.medialive#__listOfMultiplexSummary", + "traits": { + "smithy.api#documentation": "List of multiplexes.", + "smithy.api#jsonName": "multiplexes" + } + }, + "NextToken": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The ARN of the MediaConnect Flow that you want to use as a source.", - "smithy.api#jsonName": "flowArn" + "smithy.api#documentation": "Token for the next ListMultiplexes request.", + "smithy.api#jsonName": "nextToken" } } }, "traits": { - "smithy.api#documentation": "The settings for a MediaConnect Flow." + "smithy.api#documentation": "Placeholder documentation for ListMultiplexesResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#MediaLive": { - "type": "service", - "version": "2017-10-14", - "operations": [ - { - "target": "com.amazonaws.medialive#AcceptInputDeviceTransfer" - }, + "com.amazonaws.medialive#ListOfferings": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ListOfferingsRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ListOfferingsResponse" + }, + "errors": [ { - "target": "com.amazonaws.medialive#BatchDelete" + "target": "com.amazonaws.medialive#BadGatewayException" }, { - "target": "com.amazonaws.medialive#BatchStart" + "target": "com.amazonaws.medialive#BadRequestException" }, { - "target": "com.amazonaws.medialive#BatchStop" + "target": "com.amazonaws.medialive#ForbiddenException" }, { - "target": "com.amazonaws.medialive#BatchUpdateSchedule" + "target": "com.amazonaws.medialive#GatewayTimeoutException" }, { - "target": "com.amazonaws.medialive#CancelInputDeviceTransfer" + "target": "com.amazonaws.medialive#InternalServerErrorException" }, { - "target": "com.amazonaws.medialive#ClaimDevice" + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "List offerings available for purchase.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/offerings", + "code": 200 }, - { - "target": "com.amazonaws.medialive#CreateChannel" + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Offerings", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.medialive#ListOfferingsRequest": { + "type": "structure", + "members": { + "ChannelClass": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by channel class, 'STANDARD' or 'SINGLE_PIPELINE'", + "smithy.api#httpQuery": "channelClass" + } }, - { - "target": "com.amazonaws.medialive#CreateInput" + "ChannelConfiguration": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter to offerings that match the configuration of an existing channel, e.g. '2345678' (a channel ID)", + "smithy.api#httpQuery": "channelConfiguration" + } }, - { - "target": "com.amazonaws.medialive#CreateInputSecurityGroup" + "Codec": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by codec, 'AVC', 'HEVC', 'MPEG2', 'AUDIO', or 'LINK'", + "smithy.api#httpQuery": "codec" + } }, - { - "target": "com.amazonaws.medialive#CreateMultiplex" + "Duration": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by offering duration, e.g. '12'", + "smithy.api#httpQuery": "duration" + } }, - { - "target": "com.amazonaws.medialive#CreateMultiplexProgram" + "MaxResults": { + "target": "com.amazonaws.medialive#MaxResults", + "traits": { + "smithy.api#httpQuery": "maxResults" + } }, - { - "target": "com.amazonaws.medialive#CreatePartnerInput" + "MaximumBitrate": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by bitrate, 'MAX_10_MBPS', 'MAX_20_MBPS', or 'MAX_50_MBPS'", + "smithy.api#httpQuery": "maximumBitrate" + } }, - { - "target": "com.amazonaws.medialive#CreateTags" + "MaximumFramerate": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by framerate, 'MAX_30_FPS' or 'MAX_60_FPS'", + "smithy.api#httpQuery": "maximumFramerate" + } }, - { - "target": "com.amazonaws.medialive#DeleteChannel" + "NextToken": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#httpQuery": "nextToken" + } }, - { - "target": "com.amazonaws.medialive#DeleteInput" + "Resolution": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by resolution, 'SD', 'HD', 'FHD', or 'UHD'", + "smithy.api#httpQuery": "resolution" + } }, - { - "target": "com.amazonaws.medialive#DeleteInputSecurityGroup" + "ResourceType": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'", + "smithy.api#httpQuery": "resourceType" + } }, - { - "target": "com.amazonaws.medialive#DeleteMultiplex" + "SpecialFeature": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by special feature, 'ADVANCED_AUDIO' or 'AUDIO_NORMALIZATION'", + "smithy.api#httpQuery": "specialFeature" + } }, - { - "target": "com.amazonaws.medialive#DeleteMultiplexProgram" + "VideoQuality": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by video quality, 'STANDARD', 'ENHANCED', or 'PREMIUM'", + "smithy.api#httpQuery": "videoQuality" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListOfferingsRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#ListOfferingsResponse": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Token to retrieve the next page of results", + "smithy.api#jsonName": "nextToken" + } }, + "Offerings": { + "target": "com.amazonaws.medialive#__listOfOffering", + "traits": { + "smithy.api#documentation": "List of offerings", + "smithy.api#jsonName": "offerings" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListOfferingsResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#ListReservations": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ListReservationsRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ListReservationsResponse" + }, + "errors": [ { - "target": "com.amazonaws.medialive#DeleteReservation" + "target": "com.amazonaws.medialive#BadGatewayException" }, { - "target": "com.amazonaws.medialive#DeleteSchedule" + "target": "com.amazonaws.medialive#BadRequestException" }, { - "target": "com.amazonaws.medialive#DeleteTags" + "target": "com.amazonaws.medialive#ForbiddenException" }, { - "target": "com.amazonaws.medialive#DescribeAccountConfiguration" + "target": "com.amazonaws.medialive#GatewayTimeoutException" }, { - "target": "com.amazonaws.medialive#DescribeChannel" + "target": "com.amazonaws.medialive#InternalServerErrorException" }, { - "target": "com.amazonaws.medialive#DescribeInput" + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "List purchased reservations.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/reservations", + "code": 200 }, - { - "target": "com.amazonaws.medialive#DescribeInputDevice" + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Reservations", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.medialive#ListReservationsRequest": { + "type": "structure", + "members": { + "ChannelClass": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by channel class, 'STANDARD' or 'SINGLE_PIPELINE'", + "smithy.api#httpQuery": "channelClass" + } }, - { - "target": "com.amazonaws.medialive#DescribeInputDeviceThumbnail" + "Codec": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by codec, 'AVC', 'HEVC', 'MPEG2', 'AUDIO', or 'LINK'", + "smithy.api#httpQuery": "codec" + } }, - { - "target": "com.amazonaws.medialive#DescribeInputSecurityGroup" + "MaxResults": { + "target": "com.amazonaws.medialive#MaxResults", + "traits": { + "smithy.api#httpQuery": "maxResults" + } }, - { - "target": "com.amazonaws.medialive#DescribeMultiplex" + "MaximumBitrate": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by bitrate, 'MAX_10_MBPS', 'MAX_20_MBPS', or 'MAX_50_MBPS'", + "smithy.api#httpQuery": "maximumBitrate" + } }, - { - "target": "com.amazonaws.medialive#DescribeMultiplexProgram" + "MaximumFramerate": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by framerate, 'MAX_30_FPS' or 'MAX_60_FPS'", + "smithy.api#httpQuery": "maximumFramerate" + } }, - { - "target": "com.amazonaws.medialive#DescribeOffering" + "NextToken": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#httpQuery": "nextToken" + } }, - { - "target": "com.amazonaws.medialive#DescribeReservation" - }, - { - "target": "com.amazonaws.medialive#DescribeSchedule" - }, - { - "target": "com.amazonaws.medialive#DescribeThumbnails" - }, - { - "target": "com.amazonaws.medialive#ListChannels" - }, - { - "target": "com.amazonaws.medialive#ListInputDevices" + "Resolution": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by resolution, 'SD', 'HD', 'FHD', or 'UHD'", + "smithy.api#httpQuery": "resolution" + } }, - { - "target": "com.amazonaws.medialive#ListInputDeviceTransfers" + "ResourceType": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'", + "smithy.api#httpQuery": "resourceType" + } }, - { - "target": "com.amazonaws.medialive#ListInputs" + "SpecialFeature": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by special feature, 'ADVANCED_AUDIO' or 'AUDIO_NORMALIZATION'", + "smithy.api#httpQuery": "specialFeature" + } }, - { - "target": "com.amazonaws.medialive#ListInputSecurityGroups" + "VideoQuality": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Filter by video quality, 'STANDARD', 'ENHANCED', or 'PREMIUM'", + "smithy.api#httpQuery": "videoQuality" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListReservationsRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#ListReservationsResponse": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Token to retrieve the next page of results", + "smithy.api#jsonName": "nextToken" + } }, + "Reservations": { + "target": "com.amazonaws.medialive#__listOfReservation", + "traits": { + "smithy.api#documentation": "List of reservations", + "smithy.api#jsonName": "reservations" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListReservationsResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#ListSignalMaps": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ListSignalMapsRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ListSignalMapsResponse" + }, + "errors": [ { - "target": "com.amazonaws.medialive#ListMultiplexes" + "target": "com.amazonaws.medialive#BadRequestException" }, { - "target": "com.amazonaws.medialive#ListMultiplexPrograms" + "target": "com.amazonaws.medialive#ForbiddenException" }, { - "target": "com.amazonaws.medialive#ListOfferings" + "target": "com.amazonaws.medialive#InternalServerErrorException" }, { - "target": "com.amazonaws.medialive#ListReservations" + "target": "com.amazonaws.medialive#NotFoundException" }, { - "target": "com.amazonaws.medialive#ListTagsForResource" + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Lists signal maps.", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/signal-maps", + "code": 200 }, - { - "target": "com.amazonaws.medialive#PurchaseOffering" + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "SignalMaps", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.medialive#ListSignalMapsRequest": { + "type": "structure", + "members": { + "CloudWatchAlarmTemplateGroupIdentifier": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "A cloudwatch alarm template group's identifier. Can be either be its id or current name.", + "smithy.api#httpQuery": "cloudWatchAlarmTemplateGroupIdentifier" + } }, - { - "target": "com.amazonaws.medialive#RebootInputDevice" + "EventBridgeRuleTemplateGroupIdentifier": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "An eventbridge rule template group's identifier. Can be either be its id or current name.", + "smithy.api#httpQuery": "eventBridgeRuleTemplateGroupIdentifier" + } }, - { - "target": "com.amazonaws.medialive#RejectInputDeviceTransfer" + "MaxResults": { + "target": "com.amazonaws.medialive#MaxResults", + "traits": { + "smithy.api#httpQuery": "maxResults" + } }, - { - "target": "com.amazonaws.medialive#RestartChannelPipelines" + "NextToken": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "A token used to retrieve the next set of results in paginated list responses.", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListSignalMapsRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#ListSignalMapsResponse": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", + "traits": { + "smithy.api#documentation": "A token used to retrieve the next set of results in paginated list responses.", + "smithy.api#jsonName": "nextToken" + } }, + "SignalMaps": { + "target": "com.amazonaws.medialive#__listOfSignalMapSummary", + "traits": { + "smithy.api#jsonName": "signalMaps" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListSignalMapsResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.medialive#ListTagsForResourceResponse" + }, + "errors": [ { - "target": "com.amazonaws.medialive#StartChannel" + "target": "com.amazonaws.medialive#BadRequestException" }, { - "target": "com.amazonaws.medialive#StartInputDevice" + "target": "com.amazonaws.medialive#ForbiddenException" }, { - "target": "com.amazonaws.medialive#StartInputDeviceMaintenanceWindow" + "target": "com.amazonaws.medialive#InternalServerErrorException" }, { - "target": "com.amazonaws.medialive#StartMultiplex" + "target": "com.amazonaws.medialive#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "Produces list of tags that have been created for a resource", + "smithy.api#http": { + "method": "GET", + "uri": "/prod/tags/{ResourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.medialive#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListTagsForResourceRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.medialive#Tags", + "traits": { + "smithy.api#jsonName": "tags" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for ListTagsForResourceResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#LogLevel": { + "type": "enum", + "members": { + "ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ERROR" + } }, - { - "target": "com.amazonaws.medialive#StopChannel" + "WARNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WARNING" + } }, - { - "target": "com.amazonaws.medialive#StopInputDevice" + "INFO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INFO" + } }, - { - "target": "com.amazonaws.medialive#StopMultiplex" + "DEBUG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEBUG" + } }, - { - "target": "com.amazonaws.medialive#TransferInputDevice" + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + }, + "traits": { + "smithy.api#documentation": "The log level the user wants for their channel." + } + }, + "com.amazonaws.medialive#M2tsAbsentInputAudioBehavior": { + "type": "enum", + "members": { + "DROP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DROP" + } }, - { - "target": "com.amazonaws.medialive#UpdateAccountConfiguration" + "ENCODE_SILENCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENCODE_SILENCE" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Absent Input Audio Behavior" + } + }, + "com.amazonaws.medialive#M2tsArib": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } }, - { - "target": "com.amazonaws.medialive#UpdateChannel" + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Arib" + } + }, + "com.amazonaws.medialive#M2tsAribCaptionsPidControl": { + "type": "enum", + "members": { + "AUTO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTO" + } }, - { - "target": "com.amazonaws.medialive#UpdateChannelClass" + "USE_CONFIGURED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USE_CONFIGURED" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Arib Captions Pid Control" + } + }, + "com.amazonaws.medialive#M2tsAudioBufferModel": { + "type": "enum", + "members": { + "ATSC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ATSC" + } }, - { - "target": "com.amazonaws.medialive#UpdateInput" + "DVB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DVB" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Audio Buffer Model" + } + }, + "com.amazonaws.medialive#M2tsAudioInterval": { + "type": "enum", + "members": { + "VIDEO_AND_FIXED_INTERVALS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VIDEO_AND_FIXED_INTERVALS" + } }, - { - "target": "com.amazonaws.medialive#UpdateInputDevice" + "VIDEO_INTERVAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VIDEO_INTERVAL" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Audio Interval" + } + }, + "com.amazonaws.medialive#M2tsAudioStreamType": { + "type": "enum", + "members": { + "ATSC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ATSC" + } }, - { - "target": "com.amazonaws.medialive#UpdateInputSecurityGroup" + "DVB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DVB" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Audio Stream Type" + } + }, + "com.amazonaws.medialive#M2tsBufferModel": { + "type": "enum", + "members": { + "MULTIPLEX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MULTIPLEX" + } }, - { - "target": "com.amazonaws.medialive#UpdateMultiplex" + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Buffer Model" + } + }, + "com.amazonaws.medialive#M2tsCcDescriptor": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } }, - { - "target": "com.amazonaws.medialive#UpdateMultiplexProgram" + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Cc Descriptor" + } + }, + "com.amazonaws.medialive#M2tsEbifControl": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } }, - { - "target": "com.amazonaws.medialive#UpdateReservation" + "PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PASSTHROUGH" + } } - ], + }, "traits": { - "aws.api#service": { - "sdkId": "MediaLive", - "arnNamespace": "medialive", - "cloudFormationName": "MediaLive", - "cloudTrailEventSource": "medialive.amazonaws.com", - "endpointPrefix": "medialive" + "smithy.api#documentation": "M2ts Ebif Control" + } + }, + "com.amazonaws.medialive#M2tsEbpPlacement": { + "type": "enum", + "members": { + "VIDEO_AND_AUDIO_PIDS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VIDEO_AND_AUDIO_PIDS" + } }, - "aws.auth#sigv4": { - "name": "medialive" + "VIDEO_PID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VIDEO_PID" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Ebp Placement" + } + }, + "com.amazonaws.medialive#M2tsEsRateInPes": { + "type": "enum", + "members": { + "EXCLUDE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXCLUDE" + } }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "API for AWS Elemental MediaLive", - "smithy.api#title": "AWS Elemental MediaLive", - "smithy.rules#endpointRuleSet": { - "version": "1.0", - "parameters": { - "Region": { - "builtIn": "AWS::Region", - "required": false, - "documentation": "The AWS region used to dispatch the request.", - "type": "String" - }, - "UseDualStack": { - "builtIn": "AWS::UseDualStack", - "required": true, - "default": false, - "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", - "type": "Boolean" - }, - "UseFIPS": { - "builtIn": "AWS::UseFIPS", - "required": true, - "default": false, - "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", - "type": "Boolean" - }, - "Endpoint": { - "builtIn": "SDK::Endpoint", - "required": false, - "documentation": "Override the endpoint used to send this request", - "type": "String" - } - }, - "rules": [ - { - "conditions": [ - { - "fn": "isSet", - "argv": [ - { - "ref": "Endpoint" + "INCLUDE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INCLUDE" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Es Rate In Pes" + } + }, + "com.amazonaws.medialive#M2tsKlv": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + }, + "PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PASSTHROUGH" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Klv" + } + }, + "com.amazonaws.medialive#M2tsNielsenId3Behavior": { + "type": "enum", + "members": { + "NO_PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NO_PASSTHROUGH" + } + }, + "PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PASSTHROUGH" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Nielsen Id3 Behavior" + } + }, + "com.amazonaws.medialive#M2tsPcrControl": { + "type": "enum", + "members": { + "CONFIGURED_PCR_PERIOD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONFIGURED_PCR_PERIOD" + } + }, + "PCR_EVERY_PES_PACKET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PCR_EVERY_PES_PACKET" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Pcr Control" + } + }, + "com.amazonaws.medialive#M2tsRateMode": { + "type": "enum", + "members": { + "CBR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CBR" + } + }, + "VBR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VBR" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Rate Mode" + } + }, + "com.amazonaws.medialive#M2tsScte35Control": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + }, + "PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PASSTHROUGH" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Scte35 Control" + } + }, + "com.amazonaws.medialive#M2tsSegmentationMarkers": { + "type": "enum", + "members": { + "EBP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EBP" + } + }, + "EBP_LEGACY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EBP_LEGACY" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + }, + "PSI_SEGSTART": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PSI_SEGSTART" + } + }, + "RAI_ADAPT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RAI_ADAPT" + } + }, + "RAI_SEGSTART": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RAI_SEGSTART" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Segmentation Markers" + } + }, + "com.amazonaws.medialive#M2tsSegmentationStyle": { + "type": "enum", + "members": { + "MAINTAIN_CADENCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MAINTAIN_CADENCE" + } + }, + "RESET_CADENCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESET_CADENCE" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Segmentation Style" + } + }, + "com.amazonaws.medialive#M2tsSettings": { + "type": "structure", + "members": { + "AbsentInputAudioBehavior": { + "target": "com.amazonaws.medialive#M2tsAbsentInputAudioBehavior", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "absentInputAudioBehavior" + } + }, + "Arib": { + "target": "com.amazonaws.medialive#M2tsArib", + "traits": { + "smithy.api#documentation": "When set to enabled, uses ARIB-compliant field muxing and removes video descriptor.", + "smithy.api#jsonName": "arib" + } + }, + "AribCaptionsPid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "aribCaptionsPid" + } + }, + "AribCaptionsPidControl": { + "target": "com.amazonaws.medialive#M2tsAribCaptionsPidControl", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "aribCaptionsPidControl" + } + }, + "AudioBufferModel": { + "target": "com.amazonaws.medialive#M2tsAudioBufferModel", + "traits": { + "smithy.api#documentation": "When set to dvb, uses DVB buffer model for Dolby Digital audio. When set to atsc, the ATSC model is used.", + "smithy.api#jsonName": "audioBufferModel" + } + }, + "AudioFramesPerPes": { + "target": "com.amazonaws.medialive#__integerMin0", + "traits": { + "smithy.api#documentation": "The number of audio frames to insert for each PES packet.", + "smithy.api#jsonName": "audioFramesPerPes" + } + }, + "AudioPids": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "audioPids" + } + }, + "AudioStreamType": { + "target": "com.amazonaws.medialive#M2tsAudioStreamType", + "traits": { + "smithy.api#documentation": "When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.", + "smithy.api#jsonName": "audioStreamType" + } + }, + "Bitrate": { + "target": "com.amazonaws.medialive#__integerMin0", + "traits": { + "smithy.api#documentation": "The output bitrate of the transport stream in bits per second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.", + "smithy.api#jsonName": "bitrate" + } + }, + "BufferModel": { + "target": "com.amazonaws.medialive#M2tsBufferModel", + "traits": { + "smithy.api#documentation": "Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to ensure accurate network packet timing. Or set to NONE, which might result in lower latency but will result in more variability in output network packet timing. This variability might cause interruptions, jitter, or bursty behavior in your playback or receiving devices.", + "smithy.api#jsonName": "bufferModel" + } + }, + "CcDescriptor": { + "target": "com.amazonaws.medialive#M2tsCcDescriptor", + "traits": { + "smithy.api#documentation": "When set to enabled, generates captionServiceDescriptor in PMT.", + "smithy.api#jsonName": "ccDescriptor" + } + }, + "DvbNitSettings": { + "target": "com.amazonaws.medialive#DvbNitSettings", + "traits": { + "smithy.api#documentation": "Inserts DVB Network Information Table (NIT) at the specified table repetition interval.", + "smithy.api#jsonName": "dvbNitSettings" + } + }, + "DvbSdtSettings": { + "target": "com.amazonaws.medialive#DvbSdtSettings", + "traits": { + "smithy.api#documentation": "Inserts DVB Service Description Table (SDT) at the specified table repetition interval.", + "smithy.api#jsonName": "dvbSdtSettings" + } + }, + "DvbSubPids": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "dvbSubPids" + } + }, + "DvbTdtSettings": { + "target": "com.amazonaws.medialive#DvbTdtSettings", + "traits": { + "smithy.api#documentation": "Inserts DVB Time and Date Table (TDT) at the specified table repetition interval.", + "smithy.api#jsonName": "dvbTdtSettings" + } + }, + "DvbTeletextPid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "dvbTeletextPid" + } + }, + "Ebif": { + "target": "com.amazonaws.medialive#M2tsEbifControl", + "traits": { + "smithy.api#documentation": "If set to passthrough, passes any EBIF data from the input source to this output.", + "smithy.api#jsonName": "ebif" + } + }, + "EbpAudioInterval": { + "target": "com.amazonaws.medialive#M2tsAudioInterval", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "ebpAudioInterval" + } + }, + "EbpLookaheadMs": { + "target": "com.amazonaws.medialive#__integerMin0Max10000", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "ebpLookaheadMs" + } + }, + "EbpPlacement": { + "target": "com.amazonaws.medialive#M2tsEbpPlacement", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "ebpPlacement" + } + }, + "EcmPid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "This field is unused and deprecated.", + "smithy.api#jsonName": "ecmPid" + } + }, + "EsRateInPes": { + "target": "com.amazonaws.medialive#M2tsEsRateInPes", + "traits": { + "smithy.api#documentation": "Include or exclude the ES Rate field in the PES header.", + "smithy.api#jsonName": "esRateInPes" + } + }, + "EtvPlatformPid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "etvPlatformPid" + } + }, + "EtvSignalPid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "etvSignalPid" + } + }, + "FragmentTime": { + "target": "com.amazonaws.medialive#__doubleMin0", + "traits": { + "smithy.api#documentation": "The length in seconds of each fragment. Only used with EBP markers.", + "smithy.api#jsonName": "fragmentTime" + } + }, + "Klv": { + "target": "com.amazonaws.medialive#M2tsKlv", + "traits": { + "smithy.api#documentation": "If set to passthrough, passes any KLV data from the input source to this output.", + "smithy.api#jsonName": "klv" + } + }, + "KlvDataPids": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "klvDataPids" + } + }, + "NielsenId3Behavior": { + "target": "com.amazonaws.medialive#M2tsNielsenId3Behavior", + "traits": { + "smithy.api#documentation": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output.", + "smithy.api#jsonName": "nielsenId3Behavior" + } + }, + "NullPacketBitrate": { + "target": "com.amazonaws.medialive#__doubleMin0", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "nullPacketBitrate" + } + }, + "PatInterval": { + "target": "com.amazonaws.medialive#__integerMin0Max1000", + "traits": { + "smithy.api#documentation": "The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, 10..1000.", + "smithy.api#jsonName": "patInterval" + } + }, + "PcrControl": { + "target": "com.amazonaws.medialive#M2tsPcrControl", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "pcrControl" + } + }, + "PcrPeriod": { + "target": "com.amazonaws.medialive#__integerMin0Max500", + "traits": { + "smithy.api#documentation": "Maximum time in milliseconds between Program Clock Reference (PCRs) inserted into the transport stream.", + "smithy.api#jsonName": "pcrPeriod" + } + }, + "PcrPid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "pcrPid" + } + }, + "PmtInterval": { + "target": "com.amazonaws.medialive#__integerMin0Max1000", + "traits": { + "smithy.api#documentation": "The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, 10..1000.", + "smithy.api#jsonName": "pmtInterval" + } + }, + "PmtPid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "pmtPid" + } + }, + "ProgramNum": { + "target": "com.amazonaws.medialive#__integerMin0Max65535", + "traits": { + "smithy.api#documentation": "The value of the program number field in the Program Map Table.", + "smithy.api#jsonName": "programNum" + } + }, + "RateMode": { + "target": "com.amazonaws.medialive#M2tsRateMode", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "rateMode" + } + }, + "Scte27Pids": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "scte27Pids" + } + }, + "Scte35Control": { + "target": "com.amazonaws.medialive#M2tsScte35Control", + "traits": { + "smithy.api#documentation": "Optionally pass SCTE-35 signals from the input source to this output.", + "smithy.api#jsonName": "scte35Control" + } + }, + "Scte35Pid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "scte35Pid" + } + }, + "SegmentationMarkers": { + "target": "com.amazonaws.medialive#M2tsSegmentationMarkers", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "segmentationMarkers" + } + }, + "SegmentationStyle": { + "target": "com.amazonaws.medialive#M2tsSegmentationStyle", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "segmentationStyle" + } + }, + "SegmentationTime": { + "target": "com.amazonaws.medialive#__doubleMin1", + "traits": { + "smithy.api#documentation": "The length in seconds of each segment. Required unless markers is set to _none_.", + "smithy.api#jsonName": "segmentationTime" + } + }, + "TimedMetadataBehavior": { + "target": "com.amazonaws.medialive#M2tsTimedMetadataBehavior", + "traits": { + "smithy.api#documentation": "When set to passthrough, timed metadata will be passed through from input to output.", + "smithy.api#jsonName": "timedMetadataBehavior" + } + }, + "TimedMetadataPid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "timedMetadataPid" + } + }, + "TransportStreamId": { + "target": "com.amazonaws.medialive#__integerMin0Max65535", + "traits": { + "smithy.api#documentation": "The value of the transport stream ID field in the Program Map Table.", + "smithy.api#jsonName": "transportStreamId" + } + }, + "VideoPid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "videoPid" + } + }, + "Scte35PrerollPullupMilliseconds": { + "target": "com.amazonaws.medialive#__doubleMin0Max5000", + "traits": { + "smithy.api#documentation": "Defines the amount SCTE-35 preroll will be increased (in milliseconds) on the output. Preroll is the amount of time between the presence of a SCTE-35 indication in a transport stream and the PTS of the video frame it references. Zero means don't add pullup (it doesn't mean set the preroll to zero). Negative pullup is not supported, which means that you can't make the preroll shorter. Be aware that latency in the output will increase by the pullup amount.", + "smithy.api#jsonName": "scte35PrerollPullupMilliseconds" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Settings" + } + }, + "com.amazonaws.medialive#M2tsTimedMetadataBehavior": { + "type": "enum", + "members": { + "NO_PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NO_PASSTHROUGH" + } + }, + "PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PASSTHROUGH" + } + } + }, + "traits": { + "smithy.api#documentation": "M2ts Timed Metadata Behavior" + } + }, + "com.amazonaws.medialive#M3u8KlvBehavior": { + "type": "enum", + "members": { + "NO_PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NO_PASSTHROUGH" + } + }, + "PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PASSTHROUGH" + } + } + }, + "traits": { + "smithy.api#documentation": "M3u8 Klv Behavior" + } + }, + "com.amazonaws.medialive#M3u8NielsenId3Behavior": { + "type": "enum", + "members": { + "NO_PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NO_PASSTHROUGH" + } + }, + "PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PASSTHROUGH" + } + } + }, + "traits": { + "smithy.api#documentation": "M3u8 Nielsen Id3 Behavior" + } + }, + "com.amazonaws.medialive#M3u8PcrControl": { + "type": "enum", + "members": { + "CONFIGURED_PCR_PERIOD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONFIGURED_PCR_PERIOD" + } + }, + "PCR_EVERY_PES_PACKET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PCR_EVERY_PES_PACKET" + } + } + }, + "traits": { + "smithy.api#documentation": "M3u8 Pcr Control" + } + }, + "com.amazonaws.medialive#M3u8Scte35Behavior": { + "type": "enum", + "members": { + "NO_PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NO_PASSTHROUGH" + } + }, + "PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PASSTHROUGH" + } + } + }, + "traits": { + "smithy.api#documentation": "M3u8 Scte35 Behavior" + } + }, + "com.amazonaws.medialive#M3u8Settings": { + "type": "structure", + "members": { + "AudioFramesPerPes": { + "target": "com.amazonaws.medialive#__integerMin0", + "traits": { + "smithy.api#documentation": "The number of audio frames to insert for each PES packet.", + "smithy.api#jsonName": "audioFramesPerPes" + } + }, + "AudioPids": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "audioPids" + } + }, + "EcmPid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "This parameter is unused and deprecated.", + "smithy.api#jsonName": "ecmPid" + } + }, + "NielsenId3Behavior": { + "target": "com.amazonaws.medialive#M3u8NielsenId3Behavior", + "traits": { + "smithy.api#documentation": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output.", + "smithy.api#jsonName": "nielsenId3Behavior" + } + }, + "PatInterval": { + "target": "com.amazonaws.medialive#__integerMin0Max1000", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "patInterval" + } + }, + "PcrControl": { + "target": "com.amazonaws.medialive#M3u8PcrControl", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "pcrControl" + } + }, + "PcrPeriod": { + "target": "com.amazonaws.medialive#__integerMin0Max500", + "traits": { + "smithy.api#documentation": "Maximum time in milliseconds between Program Clock References (PCRs) inserted into the transport stream.", + "smithy.api#jsonName": "pcrPeriod" + } + }, + "PcrPid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "pcrPid" + } + }, + "PmtInterval": { + "target": "com.amazonaws.medialive#__integerMin0Max1000", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "pmtInterval" + } + }, + "PmtPid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.", + "smithy.api#jsonName": "pmtPid" + } + }, + "ProgramNum": { + "target": "com.amazonaws.medialive#__integerMin0Max65535", + "traits": { + "smithy.api#documentation": "The value of the program number field in the Program Map Table.", + "smithy.api#jsonName": "programNum" + } + }, + "Scte35Behavior": { + "target": "com.amazonaws.medialive#M3u8Scte35Behavior", + "traits": { + "smithy.api#documentation": "If set to passthrough, passes any SCTE-35 signals from the input source to this output.", + "smithy.api#jsonName": "scte35Behavior" + } + }, + "Scte35Pid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or hexadecimal value.", + "smithy.api#jsonName": "scte35Pid" + } + }, + "TimedMetadataBehavior": { + "target": "com.amazonaws.medialive#M3u8TimedMetadataBehavior", + "traits": { + "smithy.api#documentation": "When set to passthrough, timed metadata is passed through from input to output.", + "smithy.api#jsonName": "timedMetadataBehavior" + } + }, + "TimedMetadataPid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "timedMetadataPid" + } + }, + "TransportStreamId": { + "target": "com.amazonaws.medialive#__integerMin0Max65535", + "traits": { + "smithy.api#documentation": "The value of the transport stream ID field in the Program Map Table.", + "smithy.api#jsonName": "transportStreamId" + } + }, + "VideoPid": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a decimal or hexadecimal value.", + "smithy.api#jsonName": "videoPid" + } + }, + "KlvBehavior": { + "target": "com.amazonaws.medialive#M3u8KlvBehavior", + "traits": { + "smithy.api#documentation": "If set to passthrough, passes any KLV data from the input source to this output.", + "smithy.api#jsonName": "klvBehavior" + } + }, + "KlvDataPids": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "klvDataPids" + } + } + }, + "traits": { + "smithy.api#documentation": "Settings information for the .m3u8 container" + } + }, + "com.amazonaws.medialive#M3u8TimedMetadataBehavior": { + "type": "enum", + "members": { + "NO_PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NO_PASSTHROUGH" + } + }, + "PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PASSTHROUGH" + } + } + }, + "traits": { + "smithy.api#documentation": "M3u8 Timed Metadata Behavior" + } + }, + "com.amazonaws.medialive#MaintenanceCreateSettings": { + "type": "structure", + "members": { + "MaintenanceDay": { + "target": "com.amazonaws.medialive#MaintenanceDay", + "traits": { + "smithy.api#documentation": "Choose one day of the week for maintenance. The chosen day is used for all future maintenance windows.", + "smithy.api#jsonName": "maintenanceDay" + } + }, + "MaintenanceStartTime": { + "target": "com.amazonaws.medialive#__stringPattern010920300", + "traits": { + "smithy.api#documentation": "Choose the hour that maintenance will start. The chosen time is used for all future maintenance windows.", + "smithy.api#jsonName": "maintenanceStartTime" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for MaintenanceCreateSettings" + } + }, + "com.amazonaws.medialive#MaintenanceDay": { + "type": "enum", + "members": { + "MONDAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MONDAY" + } + }, + "TUESDAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TUESDAY" + } + }, + "WEDNESDAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WEDNESDAY" + } + }, + "THURSDAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "THURSDAY" + } + }, + "FRIDAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FRIDAY" + } + }, + "SATURDAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SATURDAY" + } + }, + "SUNDAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUNDAY" + } + } + }, + "traits": { + "smithy.api#documentation": "The currently selected maintenance day." + } + }, + "com.amazonaws.medialive#MaintenanceStatus": { + "type": "structure", + "members": { + "MaintenanceDay": { + "target": "com.amazonaws.medialive#MaintenanceDay", + "traits": { + "smithy.api#documentation": "The currently selected maintenance day.", + "smithy.api#jsonName": "maintenanceDay" + } + }, + "MaintenanceDeadline": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Maintenance is required by the displayed date and time. Date and time is in ISO.", + "smithy.api#jsonName": "maintenanceDeadline" + } + }, + "MaintenanceScheduledDate": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The currently scheduled maintenance date and time. Date and time is in ISO.", + "smithy.api#jsonName": "maintenanceScheduledDate" + } + }, + "MaintenanceStartTime": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The currently selected maintenance start time. Time is in UTC.", + "smithy.api#jsonName": "maintenanceStartTime" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for MaintenanceStatus" + } + }, + "com.amazonaws.medialive#MaintenanceUpdateSettings": { + "type": "structure", + "members": { + "MaintenanceDay": { + "target": "com.amazonaws.medialive#MaintenanceDay", + "traits": { + "smithy.api#documentation": "Choose one day of the week for maintenance. The chosen day is used for all future maintenance windows.", + "smithy.api#jsonName": "maintenanceDay" + } + }, + "MaintenanceScheduledDate": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Choose a specific date for maintenance to occur. The chosen date is used for the next maintenance window only.", + "smithy.api#jsonName": "maintenanceScheduledDate" + } + }, + "MaintenanceStartTime": { + "target": "com.amazonaws.medialive#__stringPattern010920300", + "traits": { + "smithy.api#documentation": "Choose the hour that maintenance will start. The chosen time is used for all future maintenance windows.", + "smithy.api#jsonName": "maintenanceStartTime" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for MaintenanceUpdateSettings" + } + }, + "com.amazonaws.medialive#MaxResults": { + "type": "integer", + "traits": { + "smithy.api#documentation": "Placeholder documentation for MaxResults", + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.medialive#MediaConnectFlow": { + "type": "structure", + "members": { + "FlowArn": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The unique ARN of the MediaConnect Flow being used as a source.", + "smithy.api#jsonName": "flowArn" + } + } + }, + "traits": { + "smithy.api#documentation": "The settings for a MediaConnect Flow." + } + }, + "com.amazonaws.medialive#MediaConnectFlowRequest": { + "type": "structure", + "members": { + "FlowArn": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The ARN of the MediaConnect Flow that you want to use as a source.", + "smithy.api#jsonName": "flowArn" + } + } + }, + "traits": { + "smithy.api#documentation": "The settings for a MediaConnect Flow." + } + }, + "com.amazonaws.medialive#MediaLive": { + "type": "service", + "version": "2017-10-14", + "operations": [ + { + "target": "com.amazonaws.medialive#AcceptInputDeviceTransfer" + }, + { + "target": "com.amazonaws.medialive#BatchDelete" + }, + { + "target": "com.amazonaws.medialive#BatchStart" + }, + { + "target": "com.amazonaws.medialive#BatchStop" + }, + { + "target": "com.amazonaws.medialive#BatchUpdateSchedule" + }, + { + "target": "com.amazonaws.medialive#CancelInputDeviceTransfer" + }, + { + "target": "com.amazonaws.medialive#ClaimDevice" + }, + { + "target": "com.amazonaws.medialive#CreateChannel" + }, + { + "target": "com.amazonaws.medialive#CreateCloudWatchAlarmTemplate" + }, + { + "target": "com.amazonaws.medialive#CreateCloudWatchAlarmTemplateGroup" + }, + { + "target": "com.amazonaws.medialive#CreateEventBridgeRuleTemplate" + }, + { + "target": "com.amazonaws.medialive#CreateEventBridgeRuleTemplateGroup" + }, + { + "target": "com.amazonaws.medialive#CreateInput" + }, + { + "target": "com.amazonaws.medialive#CreateInputSecurityGroup" + }, + { + "target": "com.amazonaws.medialive#CreateMultiplex" + }, + { + "target": "com.amazonaws.medialive#CreateMultiplexProgram" + }, + { + "target": "com.amazonaws.medialive#CreatePartnerInput" + }, + { + "target": "com.amazonaws.medialive#CreateSignalMap" + }, + { + "target": "com.amazonaws.medialive#CreateTags" + }, + { + "target": "com.amazonaws.medialive#DeleteChannel" + }, + { + "target": "com.amazonaws.medialive#DeleteCloudWatchAlarmTemplate" + }, + { + "target": "com.amazonaws.medialive#DeleteCloudWatchAlarmTemplateGroup" + }, + { + "target": "com.amazonaws.medialive#DeleteEventBridgeRuleTemplate" + }, + { + "target": "com.amazonaws.medialive#DeleteEventBridgeRuleTemplateGroup" + }, + { + "target": "com.amazonaws.medialive#DeleteInput" + }, + { + "target": "com.amazonaws.medialive#DeleteInputSecurityGroup" + }, + { + "target": "com.amazonaws.medialive#DeleteMultiplex" + }, + { + "target": "com.amazonaws.medialive#DeleteMultiplexProgram" + }, + { + "target": "com.amazonaws.medialive#DeleteReservation" + }, + { + "target": "com.amazonaws.medialive#DeleteSchedule" + }, + { + "target": "com.amazonaws.medialive#DeleteSignalMap" + }, + { + "target": "com.amazonaws.medialive#DeleteTags" + }, + { + "target": "com.amazonaws.medialive#DescribeAccountConfiguration" + }, + { + "target": "com.amazonaws.medialive#DescribeChannel" + }, + { + "target": "com.amazonaws.medialive#DescribeInput" + }, + { + "target": "com.amazonaws.medialive#DescribeInputDevice" + }, + { + "target": "com.amazonaws.medialive#DescribeInputDeviceThumbnail" + }, + { + "target": "com.amazonaws.medialive#DescribeInputSecurityGroup" + }, + { + "target": "com.amazonaws.medialive#DescribeMultiplex" + }, + { + "target": "com.amazonaws.medialive#DescribeMultiplexProgram" + }, + { + "target": "com.amazonaws.medialive#DescribeOffering" + }, + { + "target": "com.amazonaws.medialive#DescribeReservation" + }, + { + "target": "com.amazonaws.medialive#DescribeSchedule" + }, + { + "target": "com.amazonaws.medialive#DescribeThumbnails" + }, + { + "target": "com.amazonaws.medialive#GetCloudWatchAlarmTemplate" + }, + { + "target": "com.amazonaws.medialive#GetCloudWatchAlarmTemplateGroup" + }, + { + "target": "com.amazonaws.medialive#GetEventBridgeRuleTemplate" + }, + { + "target": "com.amazonaws.medialive#GetEventBridgeRuleTemplateGroup" + }, + { + "target": "com.amazonaws.medialive#GetSignalMap" + }, + { + "target": "com.amazonaws.medialive#ListChannels" + }, + { + "target": "com.amazonaws.medialive#ListCloudWatchAlarmTemplateGroups" + }, + { + "target": "com.amazonaws.medialive#ListCloudWatchAlarmTemplates" + }, + { + "target": "com.amazonaws.medialive#ListEventBridgeRuleTemplateGroups" + }, + { + "target": "com.amazonaws.medialive#ListEventBridgeRuleTemplates" + }, + { + "target": "com.amazonaws.medialive#ListInputDevices" + }, + { + "target": "com.amazonaws.medialive#ListInputDeviceTransfers" + }, + { + "target": "com.amazonaws.medialive#ListInputs" + }, + { + "target": "com.amazonaws.medialive#ListInputSecurityGroups" + }, + { + "target": "com.amazonaws.medialive#ListMultiplexes" + }, + { + "target": "com.amazonaws.medialive#ListMultiplexPrograms" + }, + { + "target": "com.amazonaws.medialive#ListOfferings" + }, + { + "target": "com.amazonaws.medialive#ListReservations" + }, + { + "target": "com.amazonaws.medialive#ListSignalMaps" + }, + { + "target": "com.amazonaws.medialive#ListTagsForResource" + }, + { + "target": "com.amazonaws.medialive#PurchaseOffering" + }, + { + "target": "com.amazonaws.medialive#RebootInputDevice" + }, + { + "target": "com.amazonaws.medialive#RejectInputDeviceTransfer" + }, + { + "target": "com.amazonaws.medialive#RestartChannelPipelines" + }, + { + "target": "com.amazonaws.medialive#StartChannel" + }, + { + "target": "com.amazonaws.medialive#StartDeleteMonitorDeployment" + }, + { + "target": "com.amazonaws.medialive#StartInputDevice" + }, + { + "target": "com.amazonaws.medialive#StartInputDeviceMaintenanceWindow" + }, + { + "target": "com.amazonaws.medialive#StartMonitorDeployment" + }, + { + "target": "com.amazonaws.medialive#StartMultiplex" + }, + { + "target": "com.amazonaws.medialive#StartUpdateSignalMap" + }, + { + "target": "com.amazonaws.medialive#StopChannel" + }, + { + "target": "com.amazonaws.medialive#StopInputDevice" + }, + { + "target": "com.amazonaws.medialive#StopMultiplex" + }, + { + "target": "com.amazonaws.medialive#TransferInputDevice" + }, + { + "target": "com.amazonaws.medialive#UpdateAccountConfiguration" + }, + { + "target": "com.amazonaws.medialive#UpdateChannel" + }, + { + "target": "com.amazonaws.medialive#UpdateChannelClass" + }, + { + "target": "com.amazonaws.medialive#UpdateCloudWatchAlarmTemplate" + }, + { + "target": "com.amazonaws.medialive#UpdateCloudWatchAlarmTemplateGroup" + }, + { + "target": "com.amazonaws.medialive#UpdateEventBridgeRuleTemplate" + }, + { + "target": "com.amazonaws.medialive#UpdateEventBridgeRuleTemplateGroup" + }, + { + "target": "com.amazonaws.medialive#UpdateInput" + }, + { + "target": "com.amazonaws.medialive#UpdateInputDevice" + }, + { + "target": "com.amazonaws.medialive#UpdateInputSecurityGroup" + }, + { + "target": "com.amazonaws.medialive#UpdateMultiplex" + }, + { + "target": "com.amazonaws.medialive#UpdateMultiplexProgram" + }, + { + "target": "com.amazonaws.medialive#UpdateReservation" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "MediaLive", + "arnNamespace": "medialive", + "cloudFormationName": "MediaLive", + "cloudTrailEventSource": "medialive.amazonaws.com", + "endpointPrefix": "medialive" + }, + "aws.auth#sigv4": { + "name": "medialive" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "API for AWS Elemental MediaLive", + "smithy.api#title": "AWS Elemental MediaLive", + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" } ] } @@ -18116,3027 +21373,4816 @@ } } }, - "com.amazonaws.medialive#MediaPackageGroupSettings": { + "com.amazonaws.medialive#MediaPackageGroupSettings": { + "type": "structure", + "members": { + "Destination": { + "target": "com.amazonaws.medialive#OutputLocationRef", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "MediaPackage channel destination.", + "smithy.api#jsonName": "destination", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Media Package Group Settings" + } + }, + "com.amazonaws.medialive#MediaPackageOutputDestinationSettings": { + "type": "structure", + "members": { + "ChannelId": { + "target": "com.amazonaws.medialive#__stringMin1", + "traits": { + "smithy.api#documentation": "ID of the channel in MediaPackage that is the destination for this output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in the same region.", + "smithy.api#jsonName": "channelId" + } + } + }, + "traits": { + "smithy.api#documentation": "MediaPackage Output Destination Settings" + } + }, + "com.amazonaws.medialive#MediaPackageOutputSettings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Media Package Output Settings" + } + }, + "com.amazonaws.medialive#MediaResource": { + "type": "structure", + "members": { + "Destinations": { + "target": "com.amazonaws.medialive#__listOfMediaResourceNeighbor", + "traits": { + "smithy.api#jsonName": "destinations" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max256", + "traits": { + "smithy.api#documentation": "The logical name of an AWS media resource.", + "smithy.api#jsonName": "name" + } + }, + "Sources": { + "target": "com.amazonaws.medialive#__listOfMediaResourceNeighbor", + "traits": { + "smithy.api#jsonName": "sources" + } + } + }, + "traits": { + "smithy.api#documentation": "An AWS resource used in media workflows." + } + }, + "com.amazonaws.medialive#MediaResourceMap": { + "type": "map", + "key": { + "target": "com.amazonaws.medialive#__string" + }, + "value": { + "target": "com.amazonaws.medialive#MediaResource" + }, + "traits": { + "smithy.api#documentation": "A map representing an AWS media workflow as a graph." + } + }, + "com.amazonaws.medialive#MediaResourceNeighbor": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.medialive#__stringMin1Max2048PatternArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The ARN of a resource used in AWS media workflows.", + "smithy.api#jsonName": "arn", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max256", + "traits": { + "smithy.api#documentation": "The logical name of an AWS media resource.", + "smithy.api#jsonName": "name" + } + } + }, + "traits": { + "smithy.api#documentation": "A direct source or destination neighbor to an AWS media resource." + } + }, + "com.amazonaws.medialive#MonitorDeployment": { + "type": "structure", + "members": { + "DetailsUri": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", + "traits": { + "smithy.api#documentation": "URI associated with a signal map's monitor deployment.", + "smithy.api#jsonName": "detailsUri" + } + }, + "ErrorMessage": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", + "traits": { + "smithy.api#documentation": "Error message associated with a failed monitor deployment of a signal map.", + "smithy.api#jsonName": "errorMessage" + } + }, + "Status": { + "target": "com.amazonaws.medialive#SignalMapMonitorDeploymentStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "status", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Represents the latest monitor deployment of a signal map." + } + }, + "com.amazonaws.medialive#MotionGraphicsActivateScheduleActionSettings": { + "type": "structure", + "members": { + "Duration": { + "target": "com.amazonaws.medialive#__longMin0Max86400000", + "traits": { + "smithy.api#documentation": "Duration (in milliseconds) that motion graphics should render on to the video stream. Leaving out this property or setting to 0 will result in rendering continuing until a deactivate action is processed.", + "smithy.api#jsonName": "duration" + } + }, + "PasswordParam": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Key used to extract the password from EC2 Parameter store", + "smithy.api#jsonName": "passwordParam" + } + }, + "Url": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "URI of the HTML5 content to be rendered into the live stream.", + "smithy.api#jsonName": "url" + } + }, + "Username": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Documentation update needed", + "smithy.api#jsonName": "username" + } + } + }, + "traits": { + "smithy.api#documentation": "Settings to specify the rendering of motion graphics into the video stream." + } + }, + "com.amazonaws.medialive#MotionGraphicsConfiguration": { + "type": "structure", + "members": { + "MotionGraphicsInsertion": { + "target": "com.amazonaws.medialive#MotionGraphicsInsertion", + "traits": { + "smithy.api#jsonName": "motionGraphicsInsertion" + } + }, + "MotionGraphicsSettings": { + "target": "com.amazonaws.medialive#MotionGraphicsSettings", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Motion Graphics Settings", + "smithy.api#jsonName": "motionGraphicsSettings", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Motion Graphics Configuration" + } + }, + "com.amazonaws.medialive#MotionGraphicsDeactivateScheduleActionSettings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Settings to specify the ending of rendering motion graphics into the video stream." + } + }, + "com.amazonaws.medialive#MotionGraphicsInsertion": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + }, + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + } + }, + "traits": { + "smithy.api#documentation": "Motion Graphics Insertion" + } + }, + "com.amazonaws.medialive#MotionGraphicsSettings": { + "type": "structure", + "members": { + "HtmlMotionGraphicsSettings": { + "target": "com.amazonaws.medialive#HtmlMotionGraphicsSettings", + "traits": { + "smithy.api#jsonName": "htmlMotionGraphicsSettings" + } + } + }, + "traits": { + "smithy.api#documentation": "Motion Graphics Settings" + } + }, + "com.amazonaws.medialive#Mp2CodingMode": { + "type": "enum", + "members": { + "CODING_MODE_1_0": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CODING_MODE_1_0" + } + }, + "CODING_MODE_2_0": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CODING_MODE_2_0" + } + } + }, + "traits": { + "smithy.api#documentation": "Mp2 Coding Mode" + } + }, + "com.amazonaws.medialive#Mp2Settings": { + "type": "structure", + "members": { + "Bitrate": { + "target": "com.amazonaws.medialive#__double", + "traits": { + "smithy.api#documentation": "Average bitrate in bits/second.", + "smithy.api#jsonName": "bitrate" + } + }, + "CodingMode": { + "target": "com.amazonaws.medialive#Mp2CodingMode", + "traits": { + "smithy.api#documentation": "The MPEG2 Audio coding mode. Valid values are codingMode10 (for mono) or codingMode20 (for stereo).", + "smithy.api#jsonName": "codingMode" + } + }, + "SampleRate": { + "target": "com.amazonaws.medialive#__double", + "traits": { + "smithy.api#documentation": "Sample rate in Hz.", + "smithy.api#jsonName": "sampleRate" + } + } + }, + "traits": { + "smithy.api#documentation": "Mp2 Settings" + } + }, + "com.amazonaws.medialive#Mpeg2AdaptiveQuantization": { + "type": "enum", + "members": { + "AUTO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTO" + } + }, + "HIGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HIGH" + } + }, + "LOW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LOW" + } + }, + "MEDIUM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MEDIUM" + } + }, + "OFF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OFF" + } + } + }, + "traits": { + "smithy.api#documentation": "Mpeg2 Adaptive Quantization" + } + }, + "com.amazonaws.medialive#Mpeg2ColorMetadata": { + "type": "enum", + "members": { + "IGNORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IGNORE" + } + }, + "INSERT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSERT" + } + } + }, + "traits": { + "smithy.api#documentation": "Mpeg2 Color Metadata" + } + }, + "com.amazonaws.medialive#Mpeg2ColorSpace": { + "type": "enum", + "members": { + "AUTO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTO" + } + }, + "PASSTHROUGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PASSTHROUGH" + } + } + }, + "traits": { + "smithy.api#documentation": "Mpeg2 Color Space" + } + }, + "com.amazonaws.medialive#Mpeg2DisplayRatio": { + "type": "enum", + "members": { + "DISPLAYRATIO16X9": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISPLAYRATIO16X9" + } + }, + "DISPLAYRATIO4X3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISPLAYRATIO4X3" + } + } + }, + "traits": { + "smithy.api#documentation": "Mpeg2 Display Ratio" + } + }, + "com.amazonaws.medialive#Mpeg2FilterSettings": { + "type": "structure", + "members": { + "TemporalFilterSettings": { + "target": "com.amazonaws.medialive#TemporalFilterSettings", + "traits": { + "smithy.api#jsonName": "temporalFilterSettings" + } + } + }, + "traits": { + "smithy.api#documentation": "Mpeg2 Filter Settings" + } + }, + "com.amazonaws.medialive#Mpeg2GopSizeUnits": { + "type": "enum", + "members": { + "FRAMES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FRAMES" + } + }, + "SECONDS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SECONDS" + } + } + }, + "traits": { + "smithy.api#documentation": "Mpeg2 Gop Size Units" + } + }, + "com.amazonaws.medialive#Mpeg2ScanType": { + "type": "enum", + "members": { + "INTERLACED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERLACED" + } + }, + "PROGRESSIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROGRESSIVE" + } + } + }, + "traits": { + "smithy.api#documentation": "Mpeg2 Scan Type" + } + }, + "com.amazonaws.medialive#Mpeg2Settings": { + "type": "structure", + "members": { + "AdaptiveQuantization": { + "target": "com.amazonaws.medialive#Mpeg2AdaptiveQuantization", + "traits": { + "smithy.api#documentation": "Choose Off to disable adaptive quantization. Or choose another value to enable the quantizer and set its strength. The strengths are: Auto, Off, Low, Medium, High. When you enable this field, MediaLive allows intra-frame quantizers to vary, which might improve visual quality.", + "smithy.api#jsonName": "adaptiveQuantization" + } + }, + "AfdSignaling": { + "target": "com.amazonaws.medialive#AfdSignaling", + "traits": { + "smithy.api#documentation": "Indicates the AFD values that MediaLive will write into the video encode. If you do not know what AFD signaling is, or if your downstream system has not given you guidance, choose AUTO.\nAUTO: MediaLive will try to preserve the input AFD value (in cases where multiple AFD values are valid).\nFIXED: MediaLive will use the value you specify in fixedAFD.", + "smithy.api#jsonName": "afdSignaling" + } + }, + "ColorMetadata": { + "target": "com.amazonaws.medialive#Mpeg2ColorMetadata", + "traits": { + "smithy.api#documentation": "Specifies whether to include the color space metadata. The metadata describes the color space that applies to the video (the colorSpace field). We recommend that you insert the metadata.", + "smithy.api#jsonName": "colorMetadata" + } + }, + "ColorSpace": { + "target": "com.amazonaws.medialive#Mpeg2ColorSpace", + "traits": { + "smithy.api#documentation": "Choose the type of color space conversion to apply to the output. For detailed information on setting up both the input and the output to obtain the desired color space in the output, see the section on \\\"MediaLive Features - Video - color space\\\" in the MediaLive User Guide.\nPASSTHROUGH: Keep the color space of the input content - do not convert it.\nAUTO:Convert all content that is SD to rec 601, and convert all content that is HD to rec 709.", + "smithy.api#jsonName": "colorSpace" + } + }, + "DisplayAspectRatio": { + "target": "com.amazonaws.medialive#Mpeg2DisplayRatio", + "traits": { + "smithy.api#documentation": "Sets the pixel aspect ratio for the encode.", + "smithy.api#jsonName": "displayAspectRatio" + } + }, + "FilterSettings": { + "target": "com.amazonaws.medialive#Mpeg2FilterSettings", + "traits": { + "smithy.api#documentation": "Optionally specify a noise reduction filter, which can improve quality of compressed content. If you do not choose a filter, no filter will be applied.\nTEMPORAL: This filter is useful for both source content that is noisy (when it has excessive digital artifacts) and source content that is clean.\nWhen the content is noisy, the filter cleans up the source content before the encoding phase, with these two effects: First, it improves the output video quality because the content has been cleaned up. Secondly, it decreases the bandwidth because MediaLive does not waste bits on encoding noise.\nWhen the content is reasonably clean, the filter tends to decrease the bitrate.", + "smithy.api#jsonName": "filterSettings" + } + }, + "FixedAfd": { + "target": "com.amazonaws.medialive#FixedAfd", + "traits": { + "smithy.api#documentation": "Complete this field only when afdSignaling is set to FIXED. Enter the AFD value (4 bits) to write on all frames of the video encode.", + "smithy.api#jsonName": "fixedAfd" + } + }, + "FramerateDenominator": { + "target": "com.amazonaws.medialive#__integerMin1", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "description\": \"The framerate denominator. For example, 1001. The framerate is the numerator divided by the denominator. For example, 24000 / 1001 = 23.976 FPS.", + "smithy.api#jsonName": "framerateDenominator", + "smithy.api#required": {} + } + }, + "FramerateNumerator": { + "target": "com.amazonaws.medialive#__integerMin1", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The framerate numerator. For example, 24000. The framerate is the numerator divided by the denominator. For example, 24000 / 1001 = 23.976 FPS.", + "smithy.api#jsonName": "framerateNumerator", + "smithy.api#required": {} + } + }, + "GopClosedCadence": { + "target": "com.amazonaws.medialive#__integerMin0", + "traits": { + "smithy.api#documentation": "MPEG2: default is open GOP.", + "smithy.api#jsonName": "gopClosedCadence" + } + }, + "GopNumBFrames": { + "target": "com.amazonaws.medialive#__integerMin0Max7", + "traits": { + "smithy.api#documentation": "Relates to the GOP structure. The number of B-frames between reference frames. If you do not know what a B-frame is, use the default.", + "smithy.api#jsonName": "gopNumBFrames" + } + }, + "GopSize": { + "target": "com.amazonaws.medialive#__double", + "traits": { + "smithy.api#documentation": "Relates to the GOP structure. The GOP size (keyframe interval) in the units specified in gopSizeUnits. If you do not know what GOP is, use the default.\nIf gopSizeUnits is frames, then the gopSize must be an integer and must be greater than or equal to 1.\nIf gopSizeUnits is seconds, the gopSize must be greater than 0, but does not need to be an integer.", + "smithy.api#jsonName": "gopSize" + } + }, + "GopSizeUnits": { + "target": "com.amazonaws.medialive#Mpeg2GopSizeUnits", + "traits": { + "smithy.api#documentation": "Relates to the GOP structure. Specifies whether the gopSize is specified in frames or seconds. If you do not plan to change the default gopSize, leave the default. If you specify SECONDS, MediaLive will internally convert the gop size to a frame count.", + "smithy.api#jsonName": "gopSizeUnits" + } + }, + "ScanType": { + "target": "com.amazonaws.medialive#Mpeg2ScanType", + "traits": { + "smithy.api#documentation": "Set the scan type of the output to PROGRESSIVE or INTERLACED (top field first).", + "smithy.api#jsonName": "scanType" + } + }, + "SubgopLength": { + "target": "com.amazonaws.medialive#Mpeg2SubGopLength", + "traits": { + "smithy.api#documentation": "Relates to the GOP structure. If you do not know what GOP is, use the default.\nFIXED: Set the number of B-frames in each sub-GOP to the value in gopNumBFrames.\nDYNAMIC: Let MediaLive optimize the number of B-frames in each sub-GOP, to improve visual quality.", + "smithy.api#jsonName": "subgopLength" + } + }, + "TimecodeInsertion": { + "target": "com.amazonaws.medialive#Mpeg2TimecodeInsertionBehavior", + "traits": { + "smithy.api#documentation": "Determines how MediaLive inserts timecodes in the output video. For detailed information about setting up the input and the output for a timecode, see the section on \\\"MediaLive Features - Timecode configuration\\\" in the MediaLive User Guide.\nDISABLED: do not include timecodes.\nGOP_TIMECODE: Include timecode metadata in the GOP header.", + "smithy.api#jsonName": "timecodeInsertion" + } + }, + "TimecodeBurninSettings": { + "target": "com.amazonaws.medialive#TimecodeBurninSettings", + "traits": { + "smithy.api#documentation": "Timecode burn-in settings", + "smithy.api#jsonName": "timecodeBurninSettings" + } + } + }, + "traits": { + "smithy.api#documentation": "Mpeg2 Settings" + } + }, + "com.amazonaws.medialive#Mpeg2SubGopLength": { + "type": "enum", + "members": { + "DYNAMIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DYNAMIC" + } + }, + "FIXED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FIXED" + } + } + }, + "traits": { + "smithy.api#documentation": "Mpeg2 Sub Gop Length" + } + }, + "com.amazonaws.medialive#Mpeg2TimecodeInsertionBehavior": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + }, + "GOP_TIMECODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GOP_TIMECODE" + } + } + }, + "traits": { + "smithy.api#documentation": "Mpeg2 Timecode Insertion Behavior" + } + }, + "com.amazonaws.medialive#MsSmoothGroupSettings": { + "type": "structure", + "members": { + "AcquisitionPointId": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The ID to include in each message in the sparse track. Ignored if sparseTrackType is NONE.", + "smithy.api#jsonName": "acquisitionPointId" + } + }, + "AudioOnlyTimecodeControl": { + "target": "com.amazonaws.medialive#SmoothGroupAudioOnlyTimecodeControl", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "audioOnlyTimecodeControl" + } + }, + "CertificateMode": { + "target": "com.amazonaws.medialive#SmoothGroupCertificateMode", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "certificateMode" + } + }, + "ConnectionRetryInterval": { + "target": "com.amazonaws.medialive#__integerMin0", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "connectionRetryInterval" + } + }, + "Destination": { + "target": "com.amazonaws.medialive#OutputLocationRef", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Smooth Streaming publish point on an IIS server. Elemental Live acts as a \"Push\" encoder to IIS.", + "smithy.api#jsonName": "destination", + "smithy.api#required": {} + } + }, + "EventId": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "MS Smooth event ID to be sent to the IIS server.\n\nShould only be specified if eventIdMode is set to useConfigured.", + "smithy.api#jsonName": "eventId" + } + }, + "EventIdMode": { + "target": "com.amazonaws.medialive#SmoothGroupEventIdMode", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "eventIdMode" + } + }, + "EventStopBehavior": { + "target": "com.amazonaws.medialive#SmoothGroupEventStopBehavior", + "traits": { + "smithy.api#documentation": "When set to sendEos, send EOS signal to IIS server when stopping the event", + "smithy.api#jsonName": "eventStopBehavior" + } + }, + "FilecacheDuration": { + "target": "com.amazonaws.medialive#__integerMin0", + "traits": { + "smithy.api#documentation": "Size in seconds of file cache for streaming outputs.", + "smithy.api#jsonName": "filecacheDuration" + } + }, + "FragmentLength": { + "target": "com.amazonaws.medialive#__integerMin1", + "traits": { + "smithy.api#documentation": "Length of mp4 fragments to generate (in seconds). Fragment length must be compatible with GOP size and framerate.", + "smithy.api#jsonName": "fragmentLength" + } + }, + "InputLossAction": { + "target": "com.amazonaws.medialive#InputLossActionForMsSmoothOut", + "traits": { + "smithy.api#documentation": "Parameter that control output group behavior on input loss.", + "smithy.api#jsonName": "inputLossAction" + } + }, + "NumRetries": { + "target": "com.amazonaws.medialive#__integerMin0", + "traits": { + "smithy.api#documentation": "Number of retry attempts.", + "smithy.api#jsonName": "numRetries" + } + }, + "RestartDelay": { + "target": "com.amazonaws.medialive#__integerMin0", + "traits": { + "smithy.api#documentation": "Number of seconds before initiating a restart due to output failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.", + "smithy.api#jsonName": "restartDelay" + } + }, + "SegmentationMode": { + "target": "com.amazonaws.medialive#SmoothGroupSegmentationMode", + "traits": { + "smithy.api#documentation": "useInputSegmentation has been deprecated. The configured segment size is always used.", + "smithy.api#jsonName": "segmentationMode" + } + }, + "SendDelayMs": { + "target": "com.amazonaws.medialive#__integerMin0Max10000", + "traits": { + "smithy.api#documentation": "Number of milliseconds to delay the output from the second pipeline.", + "smithy.api#jsonName": "sendDelayMs" + } + }, + "SparseTrackType": { + "target": "com.amazonaws.medialive#SmoothGroupSparseTrackType", + "traits": { + "smithy.api#documentation": "Identifies the type of data to place in the sparse track:\n- SCTE35: Insert SCTE-35 messages from the source content. With each message, insert an IDR frame to start a new segment.\n- SCTE35_WITHOUT_SEGMENTATION: Insert SCTE-35 messages from the source content. With each message, insert an IDR frame but don't start a new segment.\n- NONE: Don't generate a sparse track for any outputs in this output group.", + "smithy.api#jsonName": "sparseTrackType" + } + }, + "StreamManifestBehavior": { + "target": "com.amazonaws.medialive#SmoothGroupStreamManifestBehavior", + "traits": { + "smithy.api#documentation": "When set to send, send stream manifest so publishing point doesn't start until all streams start.", + "smithy.api#jsonName": "streamManifestBehavior" + } + }, + "TimestampOffset": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Timestamp offset for the event. Only used if timestampOffsetMode is set to useConfiguredOffset.", + "smithy.api#jsonName": "timestampOffset" + } + }, + "TimestampOffsetMode": { + "target": "com.amazonaws.medialive#SmoothGroupTimestampOffsetMode", + "traits": { + "smithy.api#documentation": "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", + "smithy.api#jsonName": "timestampOffsetMode" + } + } + }, + "traits": { + "smithy.api#documentation": "Ms Smooth Group Settings" + } + }, + "com.amazonaws.medialive#MsSmoothH265PackagingType": { + "type": "enum", + "members": { + "HEV1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HEV1" + } + }, + "HVC1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HVC1" + } + } + }, + "traits": { + "smithy.api#documentation": "Ms Smooth H265 Packaging Type" + } + }, + "com.amazonaws.medialive#MsSmoothOutputSettings": { + "type": "structure", + "members": { + "H265PackagingType": { + "target": "com.amazonaws.medialive#MsSmoothH265PackagingType", + "traits": { + "smithy.api#documentation": "Only applicable when this output is referencing an H.265 video description.\nSpecifies whether MP4 segments should be packaged as HEV1 or HVC1.", + "smithy.api#jsonName": "h265PackagingType" + } + }, + "NameModifier": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "String concatenated to the end of the destination filename. Required for multiple outputs of the same type.", + "smithy.api#jsonName": "nameModifier" + } + } + }, + "traits": { + "smithy.api#documentation": "Ms Smooth Output Settings" + } + }, + "com.amazonaws.medialive#Multiplex": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The unique arn of the multiplex.", + "smithy.api#jsonName": "arn" + } + }, + "AvailabilityZones": { + "target": "com.amazonaws.medialive#__listOf__string", + "traits": { + "smithy.api#documentation": "A list of availability zones for the multiplex.", + "smithy.api#jsonName": "availabilityZones" + } + }, + "Destinations": { + "target": "com.amazonaws.medialive#__listOfMultiplexOutputDestination", + "traits": { + "smithy.api#documentation": "A list of the multiplex output destinations.", + "smithy.api#jsonName": "destinations" + } + }, + "Id": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The unique id of the multiplex.", + "smithy.api#jsonName": "id" + } + }, + "MultiplexSettings": { + "target": "com.amazonaws.medialive#MultiplexSettings", + "traits": { + "smithy.api#documentation": "Configuration for a multiplex event.", + "smithy.api#jsonName": "multiplexSettings" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The name of the multiplex.", + "smithy.api#jsonName": "name" + } + }, + "PipelinesRunningCount": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#documentation": "The number of currently healthy pipelines.", + "smithy.api#jsonName": "pipelinesRunningCount" + } + }, + "ProgramCount": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#documentation": "The number of programs in the multiplex.", + "smithy.api#jsonName": "programCount" + } + }, + "State": { + "target": "com.amazonaws.medialive#MultiplexState", + "traits": { + "smithy.api#documentation": "The current state of the multiplex.", + "smithy.api#jsonName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#Tags", + "traits": { + "smithy.api#documentation": "A collection of key-value pairs.", + "smithy.api#jsonName": "tags" + } + } + }, + "traits": { + "smithy.api#documentation": "The multiplex object." + } + }, + "com.amazonaws.medialive#MultiplexGroupSettings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Multiplex Group Settings" + } + }, + "com.amazonaws.medialive#MultiplexMediaConnectOutputDestinationSettings": { + "type": "structure", + "members": { + "EntitlementArn": { + "target": "com.amazonaws.medialive#__stringMin1", + "traits": { + "smithy.api#documentation": "The MediaConnect entitlement ARN available as a Flow source.", + "smithy.api#jsonName": "entitlementArn" + } + } + }, + "traits": { + "smithy.api#documentation": "Multiplex MediaConnect output destination settings." + } + }, + "com.amazonaws.medialive#MultiplexOutputDestination": { + "type": "structure", + "members": { + "MediaConnectSettings": { + "target": "com.amazonaws.medialive#MultiplexMediaConnectOutputDestinationSettings", + "traits": { + "smithy.api#documentation": "Multiplex MediaConnect output destination settings.", + "smithy.api#jsonName": "mediaConnectSettings" + } + } + }, + "traits": { + "smithy.api#documentation": "Multiplex output destination settings" + } + }, + "com.amazonaws.medialive#MultiplexOutputSettings": { + "type": "structure", + "members": { + "Destination": { + "target": "com.amazonaws.medialive#OutputLocationRef", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Destination is a Multiplex.", + "smithy.api#jsonName": "destination", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Multiplex Output Settings" + } + }, + "com.amazonaws.medialive#MultiplexProgram": { + "type": "structure", + "members": { + "ChannelId": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The MediaLive channel associated with the program.", + "smithy.api#jsonName": "channelId" + } + }, + "MultiplexProgramSettings": { + "target": "com.amazonaws.medialive#MultiplexProgramSettings", + "traits": { + "smithy.api#documentation": "The settings for this multiplex program.", + "smithy.api#jsonName": "multiplexProgramSettings" + } + }, + "PacketIdentifiersMap": { + "target": "com.amazonaws.medialive#MultiplexProgramPacketIdentifiersMap", + "traits": { + "smithy.api#documentation": "The packet identifier map for this multiplex program.", + "smithy.api#jsonName": "packetIdentifiersMap" + } + }, + "PipelineDetails": { + "target": "com.amazonaws.medialive#__listOfMultiplexProgramPipelineDetail", + "traits": { + "smithy.api#documentation": "Contains information about the current sources for the specified program in the specified multiplex. Keep in mind that each multiplex pipeline connects to both pipelines in a given source channel (the channel identified by the program). But only one of those channel pipelines is ever active at one time.", + "smithy.api#jsonName": "pipelineDetails" + } + }, + "ProgramName": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The name of the multiplex program.", + "smithy.api#jsonName": "programName" + } + } + }, + "traits": { + "smithy.api#documentation": "The multiplex program object." + } + }, + "com.amazonaws.medialive#MultiplexProgramChannelDestinationSettings": { + "type": "structure", + "members": { + "MultiplexId": { + "target": "com.amazonaws.medialive#__stringMin1", + "traits": { + "smithy.api#documentation": "The ID of the Multiplex that the encoder is providing output to. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the connection of the two MediaLive pipelines to the two Multiplex instances.\nThe Multiplex must be in the same region as the Channel.", + "smithy.api#jsonName": "multiplexId" + } + }, + "ProgramName": { + "target": "com.amazonaws.medialive#__stringMin1", + "traits": { + "smithy.api#documentation": "The program name of the Multiplex program that the encoder is providing output to.", + "smithy.api#jsonName": "programName" + } + } + }, + "traits": { + "smithy.api#documentation": "Multiplex Program Input Destination Settings for outputting a Channel to a Multiplex" + } + }, + "com.amazonaws.medialive#MultiplexProgramPacketIdentifiersMap": { + "type": "structure", + "members": { + "AudioPids": { + "target": "com.amazonaws.medialive#__listOf__integer", + "traits": { + "smithy.api#jsonName": "audioPids" + } + }, + "DvbSubPids": { + "target": "com.amazonaws.medialive#__listOf__integer", + "traits": { + "smithy.api#jsonName": "dvbSubPids" + } + }, + "DvbTeletextPid": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#jsonName": "dvbTeletextPid" + } + }, + "EtvPlatformPid": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#jsonName": "etvPlatformPid" + } + }, + "EtvSignalPid": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#jsonName": "etvSignalPid" + } + }, + "KlvDataPids": { + "target": "com.amazonaws.medialive#__listOf__integer", + "traits": { + "smithy.api#jsonName": "klvDataPids" + } + }, + "PcrPid": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#jsonName": "pcrPid" + } + }, + "PmtPid": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#jsonName": "pmtPid" + } + }, + "PrivateMetadataPid": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#jsonName": "privateMetadataPid" + } + }, + "Scte27Pids": { + "target": "com.amazonaws.medialive#__listOf__integer", + "traits": { + "smithy.api#jsonName": "scte27Pids" + } + }, + "Scte35Pid": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#jsonName": "scte35Pid" + } + }, + "TimedMetadataPid": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#jsonName": "timedMetadataPid" + } + }, + "VideoPid": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#jsonName": "videoPid" + } + } + }, + "traits": { + "smithy.api#documentation": "Packet identifiers map for a given Multiplex program." + } + }, + "com.amazonaws.medialive#MultiplexProgramPipelineDetail": { + "type": "structure", + "members": { + "ActiveChannelPipeline": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Identifies the channel pipeline that is currently active for the pipeline (identified by PipelineId) in the multiplex.", + "smithy.api#jsonName": "activeChannelPipeline" + } + }, + "PipelineId": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Identifies a specific pipeline in the multiplex.", + "smithy.api#jsonName": "pipelineId" + } + } + }, + "traits": { + "smithy.api#documentation": "The current source for one of the pipelines in the multiplex." + } + }, + "com.amazonaws.medialive#MultiplexProgramServiceDescriptor": { + "type": "structure", + "members": { + "ProviderName": { + "target": "com.amazonaws.medialive#__stringMax256", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Name of the provider.", + "smithy.api#jsonName": "providerName", + "smithy.api#required": {} + } + }, + "ServiceName": { + "target": "com.amazonaws.medialive#__stringMax256", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Name of the service.", + "smithy.api#jsonName": "serviceName", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Transport stream service descriptor configuration for the Multiplex program." + } + }, + "com.amazonaws.medialive#MultiplexProgramSettings": { + "type": "structure", + "members": { + "PreferredChannelPipeline": { + "target": "com.amazonaws.medialive#PreferredChannelPipeline", + "traits": { + "smithy.api#documentation": "Indicates which pipeline is preferred by the multiplex for program ingest.", + "smithy.api#jsonName": "preferredChannelPipeline" + } + }, + "ProgramNumber": { + "target": "com.amazonaws.medialive#__integerMin0Max65535", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Unique program number.", + "smithy.api#jsonName": "programNumber", + "smithy.api#required": {} + } + }, + "ServiceDescriptor": { + "target": "com.amazonaws.medialive#MultiplexProgramServiceDescriptor", + "traits": { + "smithy.api#documentation": "Transport stream service descriptor configuration for the Multiplex program.", + "smithy.api#jsonName": "serviceDescriptor" + } + }, + "VideoSettings": { + "target": "com.amazonaws.medialive#MultiplexVideoSettings", + "traits": { + "smithy.api#documentation": "Program video settings configuration.", + "smithy.api#jsonName": "videoSettings" + } + } + }, + "traits": { + "smithy.api#documentation": "Multiplex Program settings configuration." + } + }, + "com.amazonaws.medialive#MultiplexProgramSummary": { + "type": "structure", + "members": { + "ChannelId": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The MediaLive Channel associated with the program.", + "smithy.api#jsonName": "channelId" + } + }, + "ProgramName": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The name of the multiplex program.", + "smithy.api#jsonName": "programName" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for MultiplexProgramSummary" + } + }, + "com.amazonaws.medialive#MultiplexSettings": { + "type": "structure", + "members": { + "MaximumVideoBufferDelayMilliseconds": { + "target": "com.amazonaws.medialive#__integerMin800Max3000", + "traits": { + "smithy.api#documentation": "Maximum video buffer delay in milliseconds.", + "smithy.api#jsonName": "maximumVideoBufferDelayMilliseconds" + } + }, + "TransportStreamBitrate": { + "target": "com.amazonaws.medialive#__integerMin1000000Max100000000", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Transport stream bit rate.", + "smithy.api#jsonName": "transportStreamBitrate", + "smithy.api#required": {} + } + }, + "TransportStreamId": { + "target": "com.amazonaws.medialive#__integerMin0Max65535", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Transport stream ID.", + "smithy.api#jsonName": "transportStreamId", + "smithy.api#required": {} + } + }, + "TransportStreamReservedBitrate": { + "target": "com.amazonaws.medialive#__integerMin0Max100000000", + "traits": { + "smithy.api#documentation": "Transport stream reserved bit rate.", + "smithy.api#jsonName": "transportStreamReservedBitrate" + } + } + }, + "traits": { + "smithy.api#documentation": "Contains configuration for a Multiplex event" + } + }, + "com.amazonaws.medialive#MultiplexSettingsSummary": { + "type": "structure", + "members": { + "TransportStreamBitrate": { + "target": "com.amazonaws.medialive#__integerMin1000000Max100000000", + "traits": { + "smithy.api#documentation": "Transport stream bit rate.", + "smithy.api#jsonName": "transportStreamBitrate" + } + } + }, + "traits": { + "smithy.api#documentation": "Contains summary configuration for a Multiplex event." + } + }, + "com.amazonaws.medialive#MultiplexState": { + "type": "enum", + "members": { + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATING" + } + }, + "CREATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_FAILED" + } + }, + "IDLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IDLE" + } + }, + "STARTING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STARTING" + } + }, + "RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RUNNING" + } + }, + "RECOVERING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RECOVERING" + } + }, + "STOPPING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STOPPING" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETING" + } + }, + "DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETED" + } + } + }, + "traits": { + "smithy.api#documentation": "The current state of the multiplex." + } + }, + "com.amazonaws.medialive#MultiplexStatmuxVideoSettings": { + "type": "structure", + "members": { + "MaximumBitrate": { + "target": "com.amazonaws.medialive#__integerMin100000Max100000000", + "traits": { + "smithy.api#documentation": "Maximum statmux bitrate.", + "smithy.api#jsonName": "maximumBitrate" + } + }, + "MinimumBitrate": { + "target": "com.amazonaws.medialive#__integerMin100000Max100000000", + "traits": { + "smithy.api#documentation": "Minimum statmux bitrate.", + "smithy.api#jsonName": "minimumBitrate" + } + }, + "Priority": { + "target": "com.amazonaws.medialive#__integerMinNegative5Max5", + "traits": { + "smithy.api#documentation": "The purpose of the priority is to use a combination of the\\nmultiplex rate control algorithm and the QVBR capability of the\\nencoder to prioritize the video quality of some channels in a\\nmultiplex over others. Channels that have a higher priority will\\nget higher video quality at the expense of the video quality of\\nother channels in the multiplex with lower priority.", + "smithy.api#jsonName": "priority" + } + } + }, + "traits": { + "smithy.api#documentation": "Statmux rate control settings" + } + }, + "com.amazonaws.medialive#MultiplexSummary": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The unique arn of the multiplex.", + "smithy.api#jsonName": "arn" + } + }, + "AvailabilityZones": { + "target": "com.amazonaws.medialive#__listOf__string", + "traits": { + "smithy.api#documentation": "A list of availability zones for the multiplex.", + "smithy.api#jsonName": "availabilityZones" + } + }, + "Id": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The unique id of the multiplex.", + "smithy.api#jsonName": "id" + } + }, + "MultiplexSettings": { + "target": "com.amazonaws.medialive#MultiplexSettingsSummary", + "traits": { + "smithy.api#documentation": "Configuration for a multiplex event.", + "smithy.api#jsonName": "multiplexSettings" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The name of the multiplex.", + "smithy.api#jsonName": "name" + } + }, + "PipelinesRunningCount": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#documentation": "The number of currently healthy pipelines.", + "smithy.api#jsonName": "pipelinesRunningCount" + } + }, + "ProgramCount": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#documentation": "The number of programs in the multiplex.", + "smithy.api#jsonName": "programCount" + } + }, + "State": { + "target": "com.amazonaws.medialive#MultiplexState", + "traits": { + "smithy.api#documentation": "The current state of the multiplex.", + "smithy.api#jsonName": "state" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#Tags", + "traits": { + "smithy.api#documentation": "A collection of key-value pairs.", + "smithy.api#jsonName": "tags" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for MultiplexSummary" + } + }, + "com.amazonaws.medialive#MultiplexVideoSettings": { + "type": "structure", + "members": { + "ConstantBitrate": { + "target": "com.amazonaws.medialive#__integerMin100000Max100000000", + "traits": { + "smithy.api#documentation": "The constant bitrate configuration for the video encode.\nWhen this field is defined, StatmuxSettings must be undefined.", + "smithy.api#jsonName": "constantBitrate" + } + }, + "StatmuxSettings": { + "target": "com.amazonaws.medialive#MultiplexStatmuxVideoSettings", + "traits": { + "smithy.api#documentation": "Statmux rate control settings.\nWhen this field is defined, ConstantBitrate must be undefined.", + "smithy.api#jsonName": "statmuxSettings" + } + } + }, + "traits": { + "smithy.api#documentation": "The video configuration for each program in a multiplex." + } + }, + "com.amazonaws.medialive#NetworkInputServerValidation": { + "type": "enum", + "members": { + "CHECK_CRYPTOGRAPHY_AND_VALIDATE_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CHECK_CRYPTOGRAPHY_AND_VALIDATE_NAME" + } + }, + "CHECK_CRYPTOGRAPHY_ONLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CHECK_CRYPTOGRAPHY_ONLY" + } + } + }, + "traits": { + "smithy.api#documentation": "Network Input Server Validation" + } + }, + "com.amazonaws.medialive#NetworkInputSettings": { + "type": "structure", + "members": { + "HlsInputSettings": { + "target": "com.amazonaws.medialive#HlsInputSettings", + "traits": { + "smithy.api#documentation": "Specifies HLS input settings when the uri is for a HLS manifest.", + "smithy.api#jsonName": "hlsInputSettings" + } + }, + "ServerValidation": { + "target": "com.amazonaws.medialive#NetworkInputServerValidation", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "serverValidation" + } + } + }, + "traits": { + "smithy.api#documentation": "Network source to transcode. Must be accessible to the Elemental Live node that is running the live event through a network connection." + } + }, + "com.amazonaws.medialive#NielsenCBET": { + "type": "structure", + "members": { + "CbetCheckDigitString": { + "target": "com.amazonaws.medialive#__stringMin2Max2", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Enter the CBET check digits to use in the watermark.", + "smithy.api#jsonName": "cbetCheckDigitString", + "smithy.api#required": {} + } + }, + "CbetStepaside": { + "target": "com.amazonaws.medialive#NielsenWatermarksCbetStepaside", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Determines the method of CBET insertion mode when prior encoding is detected on the same layer.", + "smithy.api#jsonName": "cbetStepaside", + "smithy.api#required": {} + } + }, + "Csid": { + "target": "com.amazonaws.medialive#__stringMin1Max7", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Enter the CBET Source ID (CSID) to use in the watermark", + "smithy.api#jsonName": "csid", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Nielsen CBET" + } + }, + "com.amazonaws.medialive#NielsenConfiguration": { + "type": "structure", + "members": { + "DistributorId": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Enter the Distributor ID assigned to your organization by Nielsen.", + "smithy.api#jsonName": "distributorId" + } + }, + "NielsenPcmToId3Tagging": { + "target": "com.amazonaws.medialive#NielsenPcmToId3TaggingState", + "traits": { + "smithy.api#documentation": "Enables Nielsen PCM to ID3 tagging", + "smithy.api#jsonName": "nielsenPcmToId3Tagging" + } + } + }, + "traits": { + "smithy.api#documentation": "Nielsen Configuration" + } + }, + "com.amazonaws.medialive#NielsenNaesIiNw": { + "type": "structure", + "members": { + "CheckDigitString": { + "target": "com.amazonaws.medialive#__stringMin2Max2", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Enter the check digit string for the watermark", + "smithy.api#jsonName": "checkDigitString", + "smithy.api#required": {} + } + }, + "Sid": { + "target": "com.amazonaws.medialive#__doubleMin1Max65535", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Enter the Nielsen Source ID (SID) to include in the watermark", + "smithy.api#jsonName": "sid", + "smithy.api#required": {} + } + }, + "Timezone": { + "target": "com.amazonaws.medialive#NielsenWatermarkTimezones", + "traits": { + "smithy.api#documentation": "Choose the timezone for the time stamps in the watermark. If not provided,\nthe timestamps will be in Coordinated Universal Time (UTC)", + "smithy.api#jsonName": "timezone" + } + } + }, + "traits": { + "smithy.api#documentation": "Nielsen Naes Ii Nw" + } + }, + "com.amazonaws.medialive#NielsenPcmToId3TaggingState": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + }, + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + } + }, + "traits": { + "smithy.api#documentation": "State of Nielsen PCM to ID3 tagging" + } + }, + "com.amazonaws.medialive#NielsenWatermarkTimezones": { + "type": "enum", + "members": { + "AMERICA_PUERTO_RICO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AMERICA_PUERTO_RICO" + } + }, + "US_ALASKA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "US_ALASKA" + } + }, + "US_ARIZONA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "US_ARIZONA" + } + }, + "US_CENTRAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "US_CENTRAL" + } + }, + "US_EASTERN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "US_EASTERN" + } + }, + "US_HAWAII": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "US_HAWAII" + } + }, + "US_MOUNTAIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "US_MOUNTAIN" + } + }, + "US_PACIFIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "US_PACIFIC" + } + }, + "US_SAMOA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "US_SAMOA" + } + }, + "UTC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UTC" + } + } + }, + "traits": { + "smithy.api#documentation": "Nielsen Watermark Timezones" + } + }, + "com.amazonaws.medialive#NielsenWatermarksCbetStepaside": { + "type": "enum", + "members": { + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + }, + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + } + }, + "traits": { + "smithy.api#documentation": "Nielsen Watermarks Cbet Stepaside" + } + }, + "com.amazonaws.medialive#NielsenWatermarksDistributionTypes": { + "type": "enum", + "members": { + "FINAL_DISTRIBUTOR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FINAL_DISTRIBUTOR" + } + }, + "PROGRAM_CONTENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROGRAM_CONTENT" + } + } + }, + "traits": { + "smithy.api#documentation": "Nielsen Watermarks Distribution Types" + } + }, + "com.amazonaws.medialive#NielsenWatermarksSettings": { + "type": "structure", + "members": { + "NielsenCbetSettings": { + "target": "com.amazonaws.medialive#NielsenCBET", + "traits": { + "smithy.api#documentation": "Complete these fields only if you want to insert watermarks of type Nielsen CBET", + "smithy.api#jsonName": "nielsenCbetSettings" + } + }, + "NielsenDistributionType": { + "target": "com.amazonaws.medialive#NielsenWatermarksDistributionTypes", + "traits": { + "smithy.api#documentation": "Choose the distribution types that you want to assign to the watermarks:\n- PROGRAM_CONTENT\n- FINAL_DISTRIBUTOR", + "smithy.api#jsonName": "nielsenDistributionType" + } + }, + "NielsenNaesIiNwSettings": { + "target": "com.amazonaws.medialive#NielsenNaesIiNw", + "traits": { + "smithy.api#documentation": "Complete these fields only if you want to insert watermarks of type Nielsen NAES II (N2) and Nielsen NAES VI (NW).", + "smithy.api#jsonName": "nielsenNaesIiNwSettings" + } + } + }, + "traits": { + "smithy.api#documentation": "Nielsen Watermarks Settings" + } + }, + "com.amazonaws.medialive#NotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#jsonName": "message" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for NotFoundException", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.medialive#Offering": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Unique offering ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:offering:87654321'", + "smithy.api#jsonName": "arn" + } + }, + "CurrencyCode": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'", + "smithy.api#jsonName": "currencyCode" + } + }, + "Duration": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#documentation": "Lease duration, e.g. '12'", + "smithy.api#jsonName": "duration" + } + }, + "DurationUnits": { + "target": "com.amazonaws.medialive#OfferingDurationUnits", + "traits": { + "smithy.api#documentation": "Units for duration, e.g. 'MONTHS'", + "smithy.api#jsonName": "durationUnits" + } + }, + "FixedPrice": { + "target": "com.amazonaws.medialive#__double", + "traits": { + "smithy.api#documentation": "One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering", + "smithy.api#jsonName": "fixedPrice" + } + }, + "OfferingDescription": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'", + "smithy.api#jsonName": "offeringDescription" + } + }, + "OfferingId": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Unique offering ID, e.g. '87654321'", + "smithy.api#jsonName": "offeringId" + } + }, + "OfferingType": { + "target": "com.amazonaws.medialive#OfferingType", + "traits": { + "smithy.api#documentation": "Offering type, e.g. 'NO_UPFRONT'", + "smithy.api#jsonName": "offeringType" + } + }, + "Region": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "AWS region, e.g. 'us-west-2'", + "smithy.api#jsonName": "region" + } + }, + "ResourceSpecification": { + "target": "com.amazonaws.medialive#ReservationResourceSpecification", + "traits": { + "smithy.api#documentation": "Resource configuration details", + "smithy.api#jsonName": "resourceSpecification" + } + }, + "UsagePrice": { + "target": "com.amazonaws.medialive#__double", + "traits": { + "smithy.api#documentation": "Recurring usage charge for each reserved resource, e.g. '157.0'", + "smithy.api#jsonName": "usagePrice" + } + } + }, + "traits": { + "smithy.api#documentation": "Reserved resources available for purchase" + } + }, + "com.amazonaws.medialive#OfferingDurationUnits": { + "type": "enum", + "members": { + "MONTHS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MONTHS" + } + } + }, + "traits": { + "smithy.api#documentation": "Units for duration, e.g. 'MONTHS'" + } + }, + "com.amazonaws.medialive#OfferingType": { + "type": "enum", + "members": { + "NO_UPFRONT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NO_UPFRONT" + } + } + }, + "traits": { + "smithy.api#documentation": "Offering type, e.g. 'NO_UPFRONT'" + } + }, + "com.amazonaws.medialive#Output": { + "type": "structure", + "members": { + "AudioDescriptionNames": { + "target": "com.amazonaws.medialive#__listOf__string", + "traits": { + "smithy.api#documentation": "The names of the AudioDescriptions used as audio sources for this output.", + "smithy.api#jsonName": "audioDescriptionNames" + } + }, + "CaptionDescriptionNames": { + "target": "com.amazonaws.medialive#__listOf__string", + "traits": { + "smithy.api#documentation": "The names of the CaptionDescriptions used as caption sources for this output.", + "smithy.api#jsonName": "captionDescriptionNames" + } + }, + "OutputName": { + "target": "com.amazonaws.medialive#__stringMin1Max255", + "traits": { + "smithy.api#documentation": "The name used to identify an output.", + "smithy.api#jsonName": "outputName" + } + }, + "OutputSettings": { + "target": "com.amazonaws.medialive#OutputSettings", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Output type-specific settings.", + "smithy.api#jsonName": "outputSettings", + "smithy.api#required": {} + } + }, + "VideoDescriptionName": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The name of the VideoDescription used as the source for this output.", + "smithy.api#jsonName": "videoDescriptionName" + } + } + }, + "traits": { + "smithy.api#documentation": "Output settings. There can be multiple outputs within a group." + } + }, + "com.amazonaws.medialive#OutputDestination": { "type": "structure", "members": { - "Destination": { - "target": "com.amazonaws.medialive#OutputLocationRef", + "Id": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "User-specified id. This is used in an output group or an output.", + "smithy.api#jsonName": "id" + } + }, + "MediaPackageSettings": { + "target": "com.amazonaws.medialive#__listOfMediaPackageOutputDestinationSettings", + "traits": { + "smithy.api#documentation": "Destination settings for a MediaPackage output; one destination for both encoders.", + "smithy.api#jsonName": "mediaPackageSettings" + } + }, + "MultiplexSettings": { + "target": "com.amazonaws.medialive#MultiplexProgramChannelDestinationSettings", + "traits": { + "smithy.api#documentation": "Destination settings for a Multiplex output; one destination for both encoders.", + "smithy.api#jsonName": "multiplexSettings" + } + }, + "Settings": { + "target": "com.amazonaws.medialive#__listOfOutputDestinationSettings", + "traits": { + "smithy.api#documentation": "Destination settings for a standard output; one destination for each redundant encoder.", + "smithy.api#jsonName": "settings" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for OutputDestination" + } + }, + "com.amazonaws.medialive#OutputDestinationSettings": { + "type": "structure", + "members": { + "PasswordParam": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "key used to extract the password from EC2 Parameter store", + "smithy.api#jsonName": "passwordParam" + } + }, + "StreamName": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "Stream name for RTMP destinations (URLs of type rtmp://)", + "smithy.api#jsonName": "streamName" + } + }, + "Url": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "A URL specifying a destination", + "smithy.api#jsonName": "url" + } + }, + "Username": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "username for destination", + "smithy.api#jsonName": "username" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for OutputDestinationSettings" + } + }, + "com.amazonaws.medialive#OutputGroup": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.medialive#__stringMax32", + "traits": { + "smithy.api#documentation": "Custom output group name optionally defined by the user.", + "smithy.api#jsonName": "name" + } + }, + "OutputGroupSettings": { + "target": "com.amazonaws.medialive#OutputGroupSettings", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Settings associated with the output group.", + "smithy.api#jsonName": "outputGroupSettings", + "smithy.api#required": {} + } + }, + "Outputs": { + "target": "com.amazonaws.medialive#__listOfOutput", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "outputs", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Output groups for this Live Event. Output groups contain information about where streams should be distributed." + } + }, + "com.amazonaws.medialive#OutputGroupSettings": { + "type": "structure", + "members": { + "ArchiveGroupSettings": { + "target": "com.amazonaws.medialive#ArchiveGroupSettings", + "traits": { + "smithy.api#jsonName": "archiveGroupSettings" + } + }, + "FrameCaptureGroupSettings": { + "target": "com.amazonaws.medialive#FrameCaptureGroupSettings", + "traits": { + "smithy.api#jsonName": "frameCaptureGroupSettings" + } + }, + "HlsGroupSettings": { + "target": "com.amazonaws.medialive#HlsGroupSettings", + "traits": { + "smithy.api#jsonName": "hlsGroupSettings" + } + }, + "MediaPackageGroupSettings": { + "target": "com.amazonaws.medialive#MediaPackageGroupSettings", + "traits": { + "smithy.api#jsonName": "mediaPackageGroupSettings" + } + }, + "MsSmoothGroupSettings": { + "target": "com.amazonaws.medialive#MsSmoothGroupSettings", + "traits": { + "smithy.api#jsonName": "msSmoothGroupSettings" + } + }, + "MultiplexGroupSettings": { + "target": "com.amazonaws.medialive#MultiplexGroupSettings", + "traits": { + "smithy.api#jsonName": "multiplexGroupSettings" + } + }, + "RtmpGroupSettings": { + "target": "com.amazonaws.medialive#RtmpGroupSettings", + "traits": { + "smithy.api#jsonName": "rtmpGroupSettings" + } + }, + "UdpGroupSettings": { + "target": "com.amazonaws.medialive#UdpGroupSettings", + "traits": { + "smithy.api#jsonName": "udpGroupSettings" + } + }, + "CmafIngestGroupSettings": { + "target": "com.amazonaws.medialive#CmafIngestGroupSettings", + "traits": { + "smithy.api#jsonName": "cmafIngestGroupSettings" + } + } + }, + "traits": { + "smithy.api#documentation": "Output Group Settings" + } + }, + "com.amazonaws.medialive#OutputLocationRef": { + "type": "structure", + "members": { + "DestinationRefId": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#jsonName": "destinationRefId" + } + } + }, + "traits": { + "smithy.api#documentation": "Reference to an OutputDestination ID defined in the channel" + } + }, + "com.amazonaws.medialive#OutputLockingSettings": { + "type": "structure", + "members": { + "EpochLockingSettings": { + "target": "com.amazonaws.medialive#EpochLockingSettings", + "traits": { + "smithy.api#jsonName": "epochLockingSettings" + } + }, + "PipelineLockingSettings": { + "target": "com.amazonaws.medialive#PipelineLockingSettings", + "traits": { + "smithy.api#jsonName": "pipelineLockingSettings" + } + } + }, + "traits": { + "smithy.api#documentation": "Output Locking Settings" + } + }, + "com.amazonaws.medialive#OutputSettings": { + "type": "structure", + "members": { + "ArchiveOutputSettings": { + "target": "com.amazonaws.medialive#ArchiveOutputSettings", + "traits": { + "smithy.api#jsonName": "archiveOutputSettings" + } + }, + "FrameCaptureOutputSettings": { + "target": "com.amazonaws.medialive#FrameCaptureOutputSettings", + "traits": { + "smithy.api#jsonName": "frameCaptureOutputSettings" + } + }, + "HlsOutputSettings": { + "target": "com.amazonaws.medialive#HlsOutputSettings", + "traits": { + "smithy.api#jsonName": "hlsOutputSettings" + } + }, + "MediaPackageOutputSettings": { + "target": "com.amazonaws.medialive#MediaPackageOutputSettings", + "traits": { + "smithy.api#jsonName": "mediaPackageOutputSettings" + } + }, + "MsSmoothOutputSettings": { + "target": "com.amazonaws.medialive#MsSmoothOutputSettings", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "MediaPackage channel destination.", - "smithy.api#jsonName": "destination", - "smithy.api#required": {} + "smithy.api#jsonName": "msSmoothOutputSettings" + } + }, + "MultiplexOutputSettings": { + "target": "com.amazonaws.medialive#MultiplexOutputSettings", + "traits": { + "smithy.api#jsonName": "multiplexOutputSettings" + } + }, + "RtmpOutputSettings": { + "target": "com.amazonaws.medialive#RtmpOutputSettings", + "traits": { + "smithy.api#jsonName": "rtmpOutputSettings" + } + }, + "UdpOutputSettings": { + "target": "com.amazonaws.medialive#UdpOutputSettings", + "traits": { + "smithy.api#jsonName": "udpOutputSettings" + } + }, + "CmafIngestOutputSettings": { + "target": "com.amazonaws.medialive#CmafIngestOutputSettings", + "traits": { + "smithy.api#jsonName": "cmafIngestOutputSettings" } } }, "traits": { - "smithy.api#documentation": "Media Package Group Settings" + "smithy.api#documentation": "Output Settings" } }, - "com.amazonaws.medialive#MediaPackageOutputDestinationSettings": { + "com.amazonaws.medialive#PassThroughSettings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Pass Through Settings" + } + }, + "com.amazonaws.medialive#PauseStateScheduleActionSettings": { "type": "structure", "members": { - "ChannelId": { - "target": "com.amazonaws.medialive#__stringMin1", + "Pipelines": { + "target": "com.amazonaws.medialive#__listOfPipelinePauseStateSettings", "traits": { - "smithy.api#documentation": "ID of the channel in MediaPackage that is the destination for this output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in the same region.", - "smithy.api#jsonName": "channelId" + "smithy.api#jsonName": "pipelines" } } }, "traits": { - "smithy.api#documentation": "MediaPackage Output Destination Settings" - } - }, - "com.amazonaws.medialive#MediaPackageOutputSettings": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Media Package Output Settings" + "smithy.api#documentation": "Settings for the action to set pause state of a channel." } }, - "com.amazonaws.medialive#MotionGraphicsActivateScheduleActionSettings": { + "com.amazonaws.medialive#PipelineDetail": { "type": "structure", "members": { - "Duration": { - "target": "com.amazonaws.medialive#__longMin0Max86400000", + "ActiveInputAttachmentName": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Duration (in milliseconds) that motion graphics should render on to the video stream. Leaving out this property or setting to 0 will result in rendering continuing until a deactivate action is processed.", - "smithy.api#jsonName": "duration" + "smithy.api#documentation": "The name of the active input attachment currently being ingested by this pipeline.", + "smithy.api#jsonName": "activeInputAttachmentName" } }, - "PasswordParam": { + "ActiveInputSwitchActionName": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Key used to extract the password from EC2 Parameter store", - "smithy.api#jsonName": "passwordParam" + "smithy.api#documentation": "The name of the input switch schedule action that occurred most recently and that resulted in the switch to the current input attachment for this pipeline.", + "smithy.api#jsonName": "activeInputSwitchActionName" } }, - "Url": { + "ActiveMotionGraphicsActionName": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "URI of the HTML5 content to be rendered into the live stream.", - "smithy.api#jsonName": "url" + "smithy.api#documentation": "The name of the motion graphics activate action that occurred most recently and that resulted in the current graphics URI for this pipeline.", + "smithy.api#jsonName": "activeMotionGraphicsActionName" } }, - "Username": { + "ActiveMotionGraphicsUri": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Documentation update needed", - "smithy.api#jsonName": "username" - } - } - }, - "traits": { - "smithy.api#documentation": "Settings to specify the rendering of motion graphics into the video stream." - } - }, - "com.amazonaws.medialive#MotionGraphicsConfiguration": { - "type": "structure", - "members": { - "MotionGraphicsInsertion": { - "target": "com.amazonaws.medialive#MotionGraphicsInsertion", - "traits": { - "smithy.api#jsonName": "motionGraphicsInsertion" + "smithy.api#documentation": "The current URI being used for HTML5 motion graphics for this pipeline.", + "smithy.api#jsonName": "activeMotionGraphicsUri" } }, - "MotionGraphicsSettings": { - "target": "com.amazonaws.medialive#MotionGraphicsSettings", + "PipelineId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Motion Graphics Settings", - "smithy.api#jsonName": "motionGraphicsSettings", - "smithy.api#required": {} + "smithy.api#documentation": "Pipeline ID", + "smithy.api#jsonName": "pipelineId" } } }, "traits": { - "smithy.api#documentation": "Motion Graphics Configuration" - } - }, - "com.amazonaws.medialive#MotionGraphicsDeactivateScheduleActionSettings": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Settings to specify the ending of rendering motion graphics into the video stream." + "smithy.api#documentation": "Runtime details of a pipeline when a channel is running." } }, - "com.amazonaws.medialive#MotionGraphicsInsertion": { + "com.amazonaws.medialive#PipelineId": { "type": "enum", "members": { - "DISABLED": { + "PIPELINE_0": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "PIPELINE_0" } }, - "ENABLED": { + "PIPELINE_1": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "PIPELINE_1" } } }, "traits": { - "smithy.api#documentation": "Motion Graphics Insertion" + "smithy.api#documentation": "Pipeline ID" } }, - "com.amazonaws.medialive#MotionGraphicsSettings": { + "com.amazonaws.medialive#PipelineLockingSettings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Pipeline Locking Settings" + } + }, + "com.amazonaws.medialive#PipelinePauseStateSettings": { "type": "structure", "members": { - "HtmlMotionGraphicsSettings": { - "target": "com.amazonaws.medialive#HtmlMotionGraphicsSettings", + "PipelineId": { + "target": "com.amazonaws.medialive#PipelineId", "traits": { - "smithy.api#jsonName": "htmlMotionGraphicsSettings" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Pipeline ID to pause (\"PIPELINE_0\" or \"PIPELINE_1\").", + "smithy.api#jsonName": "pipelineId", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Motion Graphics Settings" + "smithy.api#documentation": "Settings for pausing a pipeline." } }, - "com.amazonaws.medialive#Mp2CodingMode": { + "com.amazonaws.medialive#PreferredChannelPipeline": { "type": "enum", "members": { - "CODING_MODE_1_0": { + "CURRENTLY_ACTIVE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CODING_MODE_1_0" + "smithy.api#enumValue": "CURRENTLY_ACTIVE" } }, - "CODING_MODE_2_0": { + "PIPELINE_0": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CODING_MODE_2_0" + "smithy.api#enumValue": "PIPELINE_0" + } + }, + "PIPELINE_1": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PIPELINE_1" } } }, "traits": { - "smithy.api#documentation": "Mp2 Coding Mode" + "smithy.api#documentation": "Indicates which pipeline is preferred by the multiplex for program ingest.\nIf set to \\\"PIPELINE_0\\\" or \\\"PIPELINE_1\\\" and an unhealthy ingest causes the multiplex to switch to the non-preferred pipeline,\nit will switch back once that ingest is healthy again. If set to \\\"CURRENTLY_ACTIVE\\\",\nit will not switch back to the other pipeline based on it recovering to a healthy state,\nit will only switch if the active pipeline becomes unhealthy." } }, - "com.amazonaws.medialive#Mp2Settings": { - "type": "structure", - "members": { - "Bitrate": { - "target": "com.amazonaws.medialive#__double", - "traits": { - "smithy.api#documentation": "Average bitrate in bits/second.", - "smithy.api#jsonName": "bitrate" - } + "com.amazonaws.medialive#PurchaseOffering": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#PurchaseOfferingRequest" + }, + "output": { + "target": "com.amazonaws.medialive#PurchaseOfferingResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" }, - "CodingMode": { - "target": "com.amazonaws.medialive#Mp2CodingMode", - "traits": { - "smithy.api#documentation": "The MPEG2 Audio coding mode. Valid values are codingMode10 (for mono) or codingMode20 (for stereo).", - "smithy.api#jsonName": "codingMode" - } + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "SampleRate": { - "target": "com.amazonaws.medialive#__double", - "traits": { - "smithy.api#documentation": "Sample rate in Hz.", - "smithy.api#jsonName": "sampleRate" - } + { + "target": "com.amazonaws.medialive#ConflictException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" } - }, + ], "traits": { - "smithy.api#documentation": "Mp2 Settings" + "smithy.api#documentation": "Purchase an offering and create a reservation.", + "smithy.api#http": { + "method": "POST", + "uri": "/prod/offerings/{OfferingId}/purchase", + "code": 201 + } } }, - "com.amazonaws.medialive#Mpeg2AdaptiveQuantization": { - "type": "enum", + "com.amazonaws.medialive#PurchaseOfferingRequest": { + "type": "structure", "members": { - "AUTO": { - "target": "smithy.api#Unit", + "Count": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#enumValue": "AUTO" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Number of resources", + "smithy.api#jsonName": "count", + "smithy.api#required": {} } }, - "HIGH": { - "target": "smithy.api#Unit", + "Name": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "HIGH" + "smithy.api#documentation": "Name for the new reservation", + "smithy.api#jsonName": "name" } }, - "LOW": { - "target": "smithy.api#Unit", + "OfferingId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "LOW" + "smithy.api#documentation": "Offering to purchase, e.g. '87654321'", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, - "MEDIUM": { - "target": "smithy.api#Unit", + "RenewalSettings": { + "target": "com.amazonaws.medialive#RenewalSettings", "traits": { - "smithy.api#enumValue": "MEDIUM" + "smithy.api#documentation": "Renewal settings for the reservation", + "smithy.api#jsonName": "renewalSettings" } }, - "OFF": { - "target": "smithy.api#Unit", + "RequestId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "OFF" + "smithy.api#documentation": "Unique request ID to be specified. This is needed to prevent retries from creating multiple resources.", + "smithy.api#idempotencyToken": {}, + "smithy.api#jsonName": "requestId" } - } - }, - "traits": { - "smithy.api#documentation": "Mpeg2 Adaptive Quantization" - } - }, - "com.amazonaws.medialive#Mpeg2ColorMetadata": { - "type": "enum", - "members": { - "IGNORE": { - "target": "smithy.api#Unit", + }, + "Start": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "IGNORE" + "smithy.api#documentation": "Requested reservation start time (UTC) in ISO-8601 format. The specified time must be between the first day of the current month and one year from now. If no value is given, the default is now.", + "smithy.api#jsonName": "start" } }, - "INSERT": { - "target": "smithy.api#Unit", + "Tags": { + "target": "com.amazonaws.medialive#Tags", "traits": { - "smithy.api#enumValue": "INSERT" + "smithy.api#documentation": "A collection of key-value pairs", + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "Mpeg2 Color Metadata" + "smithy.api#documentation": "Placeholder documentation for PurchaseOfferingRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#Mpeg2ColorSpace": { - "type": "enum", + "com.amazonaws.medialive#PurchaseOfferingResponse": { + "type": "structure", "members": { - "AUTO": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AUTO" - } - }, - "PASSTHROUGH": { - "target": "smithy.api#Unit", + "Reservation": { + "target": "com.amazonaws.medialive#Reservation", "traits": { - "smithy.api#enumValue": "PASSTHROUGH" + "smithy.api#jsonName": "reservation" } } }, "traits": { - "smithy.api#documentation": "Mpeg2 Color Space" + "smithy.api#documentation": "Placeholder documentation for PurchaseOfferingResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#Mpeg2DisplayRatio": { - "type": "enum", - "members": { - "DISPLAYRATIO16X9": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DISPLAYRATIO16X9" - } - }, - "DISPLAYRATIO4X3": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DISPLAYRATIO4X3" - } - } - }, + "com.amazonaws.medialive#RawSettings": { + "type": "structure", + "members": {}, "traits": { - "smithy.api#documentation": "Mpeg2 Display Ratio" + "smithy.api#documentation": "Raw Settings" } }, - "com.amazonaws.medialive#Mpeg2FilterSettings": { - "type": "structure", - "members": { - "TemporalFilterSettings": { - "target": "com.amazonaws.medialive#TemporalFilterSettings", - "traits": { - "smithy.api#jsonName": "temporalFilterSettings" - } - } + "com.amazonaws.medialive#RebootInputDevice": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#RebootInputDeviceRequest" + }, + "output": { + "target": "com.amazonaws.medialive#RebootInputDeviceResponse" }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" + }, + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + }, + { + "target": "com.amazonaws.medialive#UnprocessableEntityException" + } + ], "traits": { - "smithy.api#documentation": "Mpeg2 Filter Settings" + "smithy.api#documentation": "Send a reboot command to the specified input device. The device will begin rebooting within a few seconds of sending the command. When the reboot is complete, the device’s connection status will change to connected.", + "smithy.api#http": { + "method": "POST", + "uri": "/prod/inputDevices/{InputDeviceId}/reboot", + "code": 200 + } } }, - "com.amazonaws.medialive#Mpeg2GopSizeUnits": { + "com.amazonaws.medialive#RebootInputDeviceForce": { "type": "enum", "members": { - "FRAMES": { + "NO": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FRAMES" + "smithy.api#enumValue": "NO" } }, - "SECONDS": { + "YES": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "SECONDS" + "smithy.api#enumValue": "YES" } } }, "traits": { - "smithy.api#documentation": "Mpeg2 Gop Size Units" + "smithy.api#documentation": "Whether or not to force reboot the input device." } }, - "com.amazonaws.medialive#Mpeg2ScanType": { - "type": "enum", + "com.amazonaws.medialive#RebootInputDeviceRequest": { + "type": "structure", "members": { - "INTERLACED": { - "target": "smithy.api#Unit", + "Force": { + "target": "com.amazonaws.medialive#RebootInputDeviceForce", "traits": { - "smithy.api#enumValue": "INTERLACED" + "smithy.api#documentation": "Force a reboot of an input device. If the device is streaming, it will stop streaming and begin rebooting within a few seconds of sending the command. If the device was streaming prior to the reboot, the device will resume streaming when the reboot completes.", + "smithy.api#jsonName": "force" } }, - "PROGRESSIVE": { - "target": "smithy.api#Unit", + "InputDeviceId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "PROGRESSIVE" + "smithy.api#documentation": "The unique ID of the input device to reboot. For example, hd-123456789abcdef.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Mpeg2 Scan Type" + "smithy.api#documentation": "A request to reboot an AWS Elemental device.", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#Mpeg2Settings": { + "com.amazonaws.medialive#RebootInputDeviceResponse": { "type": "structure", - "members": { - "AdaptiveQuantization": { - "target": "com.amazonaws.medialive#Mpeg2AdaptiveQuantization", - "traits": { - "smithy.api#documentation": "Choose Off to disable adaptive quantization. Or choose another value to enable the quantizer and set its strength. The strengths are: Auto, Off, Low, Medium, High. When you enable this field, MediaLive allows intra-frame quantizers to vary, which might improve visual quality.", - "smithy.api#jsonName": "adaptiveQuantization" - } - }, - "AfdSignaling": { - "target": "com.amazonaws.medialive#AfdSignaling", - "traits": { - "smithy.api#documentation": "Indicates the AFD values that MediaLive will write into the video encode. If you do not know what AFD signaling is, or if your downstream system has not given you guidance, choose AUTO.\nAUTO: MediaLive will try to preserve the input AFD value (in cases where multiple AFD values are valid).\nFIXED: MediaLive will use the value you specify in fixedAFD.", - "smithy.api#jsonName": "afdSignaling" - } - }, - "ColorMetadata": { - "target": "com.amazonaws.medialive#Mpeg2ColorMetadata", - "traits": { - "smithy.api#documentation": "Specifies whether to include the color space metadata. The metadata describes the color space that applies to the video (the colorSpace field). We recommend that you insert the metadata.", - "smithy.api#jsonName": "colorMetadata" - } - }, - "ColorSpace": { - "target": "com.amazonaws.medialive#Mpeg2ColorSpace", - "traits": { - "smithy.api#documentation": "Choose the type of color space conversion to apply to the output. For detailed information on setting up both the input and the output to obtain the desired color space in the output, see the section on \\\"MediaLive Features - Video - color space\\\" in the MediaLive User Guide.\nPASSTHROUGH: Keep the color space of the input content - do not convert it.\nAUTO:Convert all content that is SD to rec 601, and convert all content that is HD to rec 709.", - "smithy.api#jsonName": "colorSpace" - } - }, - "DisplayAspectRatio": { - "target": "com.amazonaws.medialive#Mpeg2DisplayRatio", - "traits": { - "smithy.api#documentation": "Sets the pixel aspect ratio for the encode.", - "smithy.api#jsonName": "displayAspectRatio" - } - }, - "FilterSettings": { - "target": "com.amazonaws.medialive#Mpeg2FilterSettings", - "traits": { - "smithy.api#documentation": "Optionally specify a noise reduction filter, which can improve quality of compressed content. If you do not choose a filter, no filter will be applied.\nTEMPORAL: This filter is useful for both source content that is noisy (when it has excessive digital artifacts) and source content that is clean.\nWhen the content is noisy, the filter cleans up the source content before the encoding phase, with these two effects: First, it improves the output video quality because the content has been cleaned up. Secondly, it decreases the bandwidth because MediaLive does not waste bits on encoding noise.\nWhen the content is reasonably clean, the filter tends to decrease the bitrate.", - "smithy.api#jsonName": "filterSettings" - } - }, - "FixedAfd": { - "target": "com.amazonaws.medialive#FixedAfd", - "traits": { - "smithy.api#documentation": "Complete this field only when afdSignaling is set to FIXED. Enter the AFD value (4 bits) to write on all frames of the video encode.", - "smithy.api#jsonName": "fixedAfd" - } - }, - "FramerateDenominator": { - "target": "com.amazonaws.medialive#__integerMin1", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "description\": \"The framerate denominator. For example, 1001. The framerate is the numerator divided by the denominator. For example, 24000 / 1001 = 23.976 FPS.", - "smithy.api#jsonName": "framerateDenominator", - "smithy.api#required": {} - } - }, - "FramerateNumerator": { - "target": "com.amazonaws.medialive#__integerMin1", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The framerate numerator. For example, 24000. The framerate is the numerator divided by the denominator. For example, 24000 / 1001 = 23.976 FPS.", - "smithy.api#jsonName": "framerateNumerator", - "smithy.api#required": {} - } + "members": {}, + "traits": { + "smithy.api#documentation": "Placeholder documentation for RebootInputDeviceResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#Rec601Settings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Rec601 Settings" + } + }, + "com.amazonaws.medialive#Rec709Settings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Rec709 Settings" + } + }, + "com.amazonaws.medialive#RejectInputDeviceTransfer": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#RejectInputDeviceTransferRequest" + }, + "output": { + "target": "com.amazonaws.medialive#RejectInputDeviceTransferResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" }, - "GopClosedCadence": { - "target": "com.amazonaws.medialive#__integerMin0", - "traits": { - "smithy.api#documentation": "MPEG2: default is open GOP.", - "smithy.api#jsonName": "gopClosedCadence" - } + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "GopNumBFrames": { - "target": "com.amazonaws.medialive#__integerMin0Max7", - "traits": { - "smithy.api#documentation": "Relates to the GOP structure. The number of B-frames between reference frames. If you do not know what a B-frame is, use the default.", - "smithy.api#jsonName": "gopNumBFrames" - } + { + "target": "com.amazonaws.medialive#ConflictException" }, - "GopSize": { - "target": "com.amazonaws.medialive#__double", - "traits": { - "smithy.api#documentation": "Relates to the GOP structure. The GOP size (keyframe interval) in the units specified in gopSizeUnits. If you do not know what GOP is, use the default.\nIf gopSizeUnits is frames, then the gopSize must be an integer and must be greater than or equal to 1.\nIf gopSizeUnits is seconds, the gopSize must be greater than 0, but does not need to be an integer.", - "smithy.api#jsonName": "gopSize" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" }, - "GopSizeUnits": { - "target": "com.amazonaws.medialive#Mpeg2GopSizeUnits", - "traits": { - "smithy.api#documentation": "Relates to the GOP structure. Specifies whether the gopSize is specified in frames or seconds. If you do not plan to change the default gopSize, leave the default. If you specify SECONDS, MediaLive will internally convert the gop size to a frame count.", - "smithy.api#jsonName": "gopSizeUnits" - } + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" }, - "ScanType": { - "target": "com.amazonaws.medialive#Mpeg2ScanType", - "traits": { - "smithy.api#documentation": "Set the scan type of the output to PROGRESSIVE or INTERLACED (top field first).", - "smithy.api#jsonName": "scanType" - } + { + "target": "com.amazonaws.medialive#InternalServerErrorException" }, - "SubgopLength": { - "target": "com.amazonaws.medialive#Mpeg2SubGopLength", - "traits": { - "smithy.api#documentation": "Relates to the GOP structure. If you do not know what GOP is, use the default.\nFIXED: Set the number of B-frames in each sub-GOP to the value in gopNumBFrames.\nDYNAMIC: Let MediaLive optimize the number of B-frames in each sub-GOP, to improve visual quality.", - "smithy.api#jsonName": "subgopLength" - } + { + "target": "com.amazonaws.medialive#NotFoundException" }, - "TimecodeInsertion": { - "target": "com.amazonaws.medialive#Mpeg2TimecodeInsertionBehavior", - "traits": { - "smithy.api#documentation": "Determines how MediaLive inserts timecodes in the output video. For detailed information about setting up the input and the output for a timecode, see the section on \\\"MediaLive Features - Timecode configuration\\\" in the MediaLive User Guide.\nDISABLED: do not include timecodes.\nGOP_TIMECODE: Include timecode metadata in the GOP header.", - "smithy.api#jsonName": "timecodeInsertion" - } + { + "target": "com.amazonaws.medialive#TooManyRequestsException" }, - "TimecodeBurninSettings": { - "target": "com.amazonaws.medialive#TimecodeBurninSettings", + { + "target": "com.amazonaws.medialive#UnprocessableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "Reject the transfer of the specified input device to your AWS account.", + "smithy.api#http": { + "method": "POST", + "uri": "/prod/inputDevices/{InputDeviceId}/reject", + "code": 200 + } + } + }, + "com.amazonaws.medialive#RejectInputDeviceTransferRequest": { + "type": "structure", + "members": { + "InputDeviceId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Timecode burn-in settings", - "smithy.api#jsonName": "timecodeBurninSettings" + "smithy.api#documentation": "The unique ID of the input device to reject. For example, hd-123456789abcdef.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Mpeg2 Settings" + "smithy.api#documentation": "Placeholder documentation for RejectInputDeviceTransferRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#Mpeg2SubGopLength": { - "type": "enum", + "com.amazonaws.medialive#RejectInputDeviceTransferResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Placeholder documentation for RejectInputDeviceTransferResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#RemixSettings": { + "type": "structure", "members": { - "DYNAMIC": { - "target": "smithy.api#Unit", + "ChannelMappings": { + "target": "com.amazonaws.medialive#__listOfAudioChannelMapping", "traits": { - "smithy.api#enumValue": "DYNAMIC" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Mapping of input channels to output channels, with appropriate gain adjustments.", + "smithy.api#jsonName": "channelMappings", + "smithy.api#required": {} } }, - "FIXED": { - "target": "smithy.api#Unit", + "ChannelsIn": { + "target": "com.amazonaws.medialive#__integerMin1Max16", "traits": { - "smithy.api#enumValue": "FIXED" + "smithy.api#documentation": "Number of input channels to be used.", + "smithy.api#jsonName": "channelsIn" + } + }, + "ChannelsOut": { + "target": "com.amazonaws.medialive#__integerMin1Max8", + "traits": { + "smithy.api#documentation": "Number of output channels to be produced.\nValid values: 1, 2, 4, 6, 8", + "smithy.api#jsonName": "channelsOut" } } }, "traits": { - "smithy.api#documentation": "Mpeg2 Sub Gop Length" + "smithy.api#documentation": "Remix Settings" } }, - "com.amazonaws.medialive#Mpeg2TimecodeInsertionBehavior": { - "type": "enum", + "com.amazonaws.medialive#RenewalSettings": { + "type": "structure", "members": { - "DISABLED": { - "target": "smithy.api#Unit", + "AutomaticRenewal": { + "target": "com.amazonaws.medialive#ReservationAutomaticRenewal", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#documentation": "Automatic renewal status for the reservation", + "smithy.api#jsonName": "automaticRenewal" } }, - "GOP_TIMECODE": { - "target": "smithy.api#Unit", + "RenewalCount": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#enumValue": "GOP_TIMECODE" + "smithy.api#documentation": "Count for the reservation renewal", + "smithy.api#jsonName": "renewalCount" } } }, "traits": { - "smithy.api#documentation": "Mpeg2 Timecode Insertion Behavior" + "smithy.api#documentation": "The Renewal settings for Reservations" } }, - "com.amazonaws.medialive#MsSmoothGroupSettings": { + "com.amazonaws.medialive#Reservation": { "type": "structure", "members": { - "AcquisitionPointId": { + "Arn": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The ID to include in each message in the sparse track. Ignored if sparseTrackType is NONE.", - "smithy.api#jsonName": "acquisitionPointId" + "smithy.api#documentation": "Unique reservation ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'", + "smithy.api#jsonName": "arn" } }, - "AudioOnlyTimecodeControl": { - "target": "com.amazonaws.medialive#SmoothGroupAudioOnlyTimecodeControl", + "Count": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "audioOnlyTimecodeControl" + "smithy.api#documentation": "Number of reserved resources", + "smithy.api#jsonName": "count" } }, - "CertificateMode": { - "target": "com.amazonaws.medialive#SmoothGroupCertificateMode", + "CurrencyCode": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "certificateMode" + "smithy.api#documentation": "Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'", + "smithy.api#jsonName": "currencyCode" } }, - "ConnectionRetryInterval": { - "target": "com.amazonaws.medialive#__integerMin0", + "Duration": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "connectionRetryInterval" + "smithy.api#documentation": "Lease duration, e.g. '12'", + "smithy.api#jsonName": "duration" } }, - "Destination": { - "target": "com.amazonaws.medialive#OutputLocationRef", + "DurationUnits": { + "target": "com.amazonaws.medialive#OfferingDurationUnits", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Smooth Streaming publish point on an IIS server. Elemental Live acts as a \"Push\" encoder to IIS.", - "smithy.api#jsonName": "destination", - "smithy.api#required": {} + "smithy.api#documentation": "Units for duration, e.g. 'MONTHS'", + "smithy.api#jsonName": "durationUnits" } }, - "EventId": { + "End": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "MS Smooth event ID to be sent to the IIS server.\n\nShould only be specified if eventIdMode is set to useConfigured.", - "smithy.api#jsonName": "eventId" + "smithy.api#documentation": "Reservation UTC end date and time in ISO-8601 format, e.g. '2019-03-01T00:00:00'", + "smithy.api#jsonName": "end" } }, - "EventIdMode": { - "target": "com.amazonaws.medialive#SmoothGroupEventIdMode", + "FixedPrice": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "eventIdMode" + "smithy.api#documentation": "One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering", + "smithy.api#jsonName": "fixedPrice" } }, - "EventStopBehavior": { - "target": "com.amazonaws.medialive#SmoothGroupEventStopBehavior", + "Name": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "When set to sendEos, send EOS signal to IIS server when stopping the event", - "smithy.api#jsonName": "eventStopBehavior" + "smithy.api#documentation": "User specified reservation name", + "smithy.api#jsonName": "name" } }, - "FilecacheDuration": { - "target": "com.amazonaws.medialive#__integerMin0", + "OfferingDescription": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Size in seconds of file cache for streaming outputs.", - "smithy.api#jsonName": "filecacheDuration" + "smithy.api#documentation": "Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'", + "smithy.api#jsonName": "offeringDescription" } }, - "FragmentLength": { - "target": "com.amazonaws.medialive#__integerMin1", + "OfferingId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Length of mp4 fragments to generate (in seconds). Fragment length must be compatible with GOP size and framerate.", - "smithy.api#jsonName": "fragmentLength" + "smithy.api#documentation": "Unique offering ID, e.g. '87654321'", + "smithy.api#jsonName": "offeringId" } }, - "InputLossAction": { - "target": "com.amazonaws.medialive#InputLossActionForMsSmoothOut", + "OfferingType": { + "target": "com.amazonaws.medialive#OfferingType", "traits": { - "smithy.api#documentation": "Parameter that control output group behavior on input loss.", - "smithy.api#jsonName": "inputLossAction" + "smithy.api#documentation": "Offering type, e.g. 'NO_UPFRONT'", + "smithy.api#jsonName": "offeringType" } }, - "NumRetries": { - "target": "com.amazonaws.medialive#__integerMin0", + "Region": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Number of retry attempts.", - "smithy.api#jsonName": "numRetries" + "smithy.api#documentation": "AWS region, e.g. 'us-west-2'", + "smithy.api#jsonName": "region" } }, - "RestartDelay": { - "target": "com.amazonaws.medialive#__integerMin0", + "RenewalSettings": { + "target": "com.amazonaws.medialive#RenewalSettings", "traits": { - "smithy.api#documentation": "Number of seconds before initiating a restart due to output failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.", - "smithy.api#jsonName": "restartDelay" + "smithy.api#documentation": "Renewal settings for the reservation", + "smithy.api#jsonName": "renewalSettings" } }, - "SegmentationMode": { - "target": "com.amazonaws.medialive#SmoothGroupSegmentationMode", + "ReservationId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "useInputSegmentation has been deprecated. The configured segment size is always used.", - "smithy.api#jsonName": "segmentationMode" + "smithy.api#documentation": "Unique reservation ID, e.g. '1234567'", + "smithy.api#jsonName": "reservationId" } }, - "SendDelayMs": { - "target": "com.amazonaws.medialive#__integerMin0Max10000", + "ResourceSpecification": { + "target": "com.amazonaws.medialive#ReservationResourceSpecification", "traits": { - "smithy.api#documentation": "Number of milliseconds to delay the output from the second pipeline.", - "smithy.api#jsonName": "sendDelayMs" + "smithy.api#documentation": "Resource configuration details", + "smithy.api#jsonName": "resourceSpecification" } }, - "SparseTrackType": { - "target": "com.amazonaws.medialive#SmoothGroupSparseTrackType", + "Start": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Identifies the type of data to place in the sparse track:\n- SCTE35: Insert SCTE-35 messages from the source content. With each message, insert an IDR frame to start a new segment.\n- SCTE35_WITHOUT_SEGMENTATION: Insert SCTE-35 messages from the source content. With each message, insert an IDR frame but don't start a new segment.\n- NONE: Don't generate a sparse track for any outputs in this output group.", - "smithy.api#jsonName": "sparseTrackType" + "smithy.api#documentation": "Reservation UTC start date and time in ISO-8601 format, e.g. '2018-03-01T00:00:00'", + "smithy.api#jsonName": "start" } }, - "StreamManifestBehavior": { - "target": "com.amazonaws.medialive#SmoothGroupStreamManifestBehavior", + "State": { + "target": "com.amazonaws.medialive#ReservationState", "traits": { - "smithy.api#documentation": "When set to send, send stream manifest so publishing point doesn't start until all streams start.", - "smithy.api#jsonName": "streamManifestBehavior" + "smithy.api#documentation": "Current state of reservation, e.g. 'ACTIVE'", + "smithy.api#jsonName": "state" } }, - "TimestampOffset": { - "target": "com.amazonaws.medialive#__string", + "Tags": { + "target": "com.amazonaws.medialive#Tags", "traits": { - "smithy.api#documentation": "Timestamp offset for the event. Only used if timestampOffsetMode is set to useConfiguredOffset.", - "smithy.api#jsonName": "timestampOffset" + "smithy.api#documentation": "A collection of key-value pairs", + "smithy.api#jsonName": "tags" } }, - "TimestampOffsetMode": { - "target": "com.amazonaws.medialive#SmoothGroupTimestampOffsetMode", + "UsagePrice": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#documentation": "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", - "smithy.api#jsonName": "timestampOffsetMode" + "smithy.api#documentation": "Recurring usage charge for each reserved resource, e.g. '157.0'", + "smithy.api#jsonName": "usagePrice" } } }, "traits": { - "smithy.api#documentation": "Ms Smooth Group Settings" + "smithy.api#documentation": "Reserved resources available to use" } }, - "com.amazonaws.medialive#MsSmoothH265PackagingType": { + "com.amazonaws.medialive#ReservationAutomaticRenewal": { "type": "enum", "members": { - "HEV1": { + "DISABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "HEV1" + "smithy.api#enumValue": "DISABLED" } }, - "HVC1": { + "ENABLED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "HVC1" - } - } - }, - "traits": { - "smithy.api#documentation": "Ms Smooth H265 Packaging Type" - } - }, - "com.amazonaws.medialive#MsSmoothOutputSettings": { - "type": "structure", - "members": { - "H265PackagingType": { - "target": "com.amazonaws.medialive#MsSmoothH265PackagingType", - "traits": { - "smithy.api#documentation": "Only applicable when this output is referencing an H.265 video description.\nSpecifies whether MP4 segments should be packaged as HEV1 or HVC1.", - "smithy.api#jsonName": "h265PackagingType" + "smithy.api#enumValue": "ENABLED" } }, - "NameModifier": { - "target": "com.amazonaws.medialive#__string", + "UNAVAILABLE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "String concatenated to the end of the destination filename. Required for multiple outputs of the same type.", - "smithy.api#jsonName": "nameModifier" + "smithy.api#enumValue": "UNAVAILABLE" } } }, "traits": { - "smithy.api#documentation": "Ms Smooth Output Settings" + "smithy.api#documentation": "Automatic Renewal Status for Reservation" } }, - "com.amazonaws.medialive#Multiplex": { - "type": "structure", + "com.amazonaws.medialive#ReservationCodec": { + "type": "enum", "members": { - "Arn": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The unique arn of the multiplex.", - "smithy.api#jsonName": "arn" - } - }, - "AvailabilityZones": { - "target": "com.amazonaws.medialive#__listOf__string", - "traits": { - "smithy.api#documentation": "A list of availability zones for the multiplex.", - "smithy.api#jsonName": "availabilityZones" - } - }, - "Destinations": { - "target": "com.amazonaws.medialive#__listOfMultiplexOutputDestination", + "MPEG2": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "A list of the multiplex output destinations.", - "smithy.api#jsonName": "destinations" + "smithy.api#enumValue": "MPEG2" } }, - "Id": { - "target": "com.amazonaws.medialive#__string", + "AVC": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The unique id of the multiplex.", - "smithy.api#jsonName": "id" + "smithy.api#enumValue": "AVC" } }, - "MultiplexSettings": { - "target": "com.amazonaws.medialive#MultiplexSettings", + "HEVC": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Configuration for a multiplex event.", - "smithy.api#jsonName": "multiplexSettings" + "smithy.api#enumValue": "HEVC" } }, - "Name": { - "target": "com.amazonaws.medialive#__string", + "AUDIO": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The name of the multiplex.", - "smithy.api#jsonName": "name" + "smithy.api#enumValue": "AUDIO" } }, - "PipelinesRunningCount": { - "target": "com.amazonaws.medialive#__integer", + "LINK": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The number of currently healthy pipelines.", - "smithy.api#jsonName": "pipelinesRunningCount" + "smithy.api#enumValue": "LINK" } - }, - "ProgramCount": { - "target": "com.amazonaws.medialive#__integer", + } + }, + "traits": { + "smithy.api#documentation": "Codec, 'MPEG2', 'AVC', 'HEVC', or 'AUDIO'" + } + }, + "com.amazonaws.medialive#ReservationMaximumBitrate": { + "type": "enum", + "members": { + "MAX_10_MBPS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The number of programs in the multiplex.", - "smithy.api#jsonName": "programCount" + "smithy.api#enumValue": "MAX_10_MBPS" } }, - "State": { - "target": "com.amazonaws.medialive#MultiplexState", + "MAX_20_MBPS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The current state of the multiplex.", - "smithy.api#jsonName": "state" + "smithy.api#enumValue": "MAX_20_MBPS" } }, - "Tags": { - "target": "com.amazonaws.medialive#Tags", + "MAX_50_MBPS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "A collection of key-value pairs.", - "smithy.api#jsonName": "tags" + "smithy.api#enumValue": "MAX_50_MBPS" } } }, "traits": { - "smithy.api#documentation": "The multiplex object." - } - }, - "com.amazonaws.medialive#MultiplexGroupSettings": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Multiplex Group Settings" + "smithy.api#documentation": "Maximum bitrate in megabits per second" } }, - "com.amazonaws.medialive#MultiplexMediaConnectOutputDestinationSettings": { - "type": "structure", + "com.amazonaws.medialive#ReservationMaximumFramerate": { + "type": "enum", "members": { - "EntitlementArn": { - "target": "com.amazonaws.medialive#__stringMin1", + "MAX_30_FPS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The MediaConnect entitlement ARN available as a Flow source.", - "smithy.api#jsonName": "entitlementArn" + "smithy.api#enumValue": "MAX_30_FPS" } - } - }, - "traits": { - "smithy.api#documentation": "Multiplex MediaConnect output destination settings." - } - }, - "com.amazonaws.medialive#MultiplexOutputDestination": { - "type": "structure", - "members": { - "MediaConnectSettings": { - "target": "com.amazonaws.medialive#MultiplexMediaConnectOutputDestinationSettings", + }, + "MAX_60_FPS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Multiplex MediaConnect output destination settings.", - "smithy.api#jsonName": "mediaConnectSettings" + "smithy.api#enumValue": "MAX_60_FPS" } } }, "traits": { - "smithy.api#documentation": "Multiplex output destination settings" + "smithy.api#documentation": "Maximum framerate in frames per second (Outputs only)" } }, - "com.amazonaws.medialive#MultiplexOutputSettings": { - "type": "structure", + "com.amazonaws.medialive#ReservationResolution": { + "type": "enum", "members": { - "Destination": { - "target": "com.amazonaws.medialive#OutputLocationRef", + "SD": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Destination is a Multiplex.", - "smithy.api#jsonName": "destination", - "smithy.api#required": {} + "smithy.api#enumValue": "SD" + } + }, + "HD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HD" + } + }, + "FHD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FHD" + } + }, + "UHD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UHD" } } }, "traits": { - "smithy.api#documentation": "Multiplex Output Settings" + "smithy.api#documentation": "Resolution based on lines of vertical resolution; SD is less than 720 lines, HD is 720 to 1080 lines, FHD is 1080 lines, UHD is greater than 1080 lines" } }, - "com.amazonaws.medialive#MultiplexProgram": { + "com.amazonaws.medialive#ReservationResourceSpecification": { "type": "structure", "members": { - "ChannelId": { - "target": "com.amazonaws.medialive#__string", + "ChannelClass": { + "target": "com.amazonaws.medialive#ChannelClass", "traits": { - "smithy.api#documentation": "The MediaLive channel associated with the program.", - "smithy.api#jsonName": "channelId" + "smithy.api#documentation": "Channel class, e.g. 'STANDARD'", + "smithy.api#jsonName": "channelClass" + } + }, + "Codec": { + "target": "com.amazonaws.medialive#ReservationCodec", + "traits": { + "smithy.api#documentation": "Codec, e.g. 'AVC'", + "smithy.api#jsonName": "codec" } }, - "MultiplexProgramSettings": { - "target": "com.amazonaws.medialive#MultiplexProgramSettings", + "MaximumBitrate": { + "target": "com.amazonaws.medialive#ReservationMaximumBitrate", "traits": { - "smithy.api#documentation": "The settings for this multiplex program.", - "smithy.api#jsonName": "multiplexProgramSettings" + "smithy.api#documentation": "Maximum bitrate, e.g. 'MAX_20_MBPS'", + "smithy.api#jsonName": "maximumBitrate" } }, - "PacketIdentifiersMap": { - "target": "com.amazonaws.medialive#MultiplexProgramPacketIdentifiersMap", + "MaximumFramerate": { + "target": "com.amazonaws.medialive#ReservationMaximumFramerate", "traits": { - "smithy.api#documentation": "The packet identifier map for this multiplex program.", - "smithy.api#jsonName": "packetIdentifiersMap" + "smithy.api#documentation": "Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)", + "smithy.api#jsonName": "maximumFramerate" } }, - "PipelineDetails": { - "target": "com.amazonaws.medialive#__listOfMultiplexProgramPipelineDetail", + "Resolution": { + "target": "com.amazonaws.medialive#ReservationResolution", "traits": { - "smithy.api#documentation": "Contains information about the current sources for the specified program in the specified multiplex. Keep in mind that each multiplex pipeline connects to both pipelines in a given source channel (the channel identified by the program). But only one of those channel pipelines is ever active at one time.", - "smithy.api#jsonName": "pipelineDetails" + "smithy.api#documentation": "Resolution, e.g. 'HD'", + "smithy.api#jsonName": "resolution" } }, - "ProgramName": { - "target": "com.amazonaws.medialive#__string", + "ResourceType": { + "target": "com.amazonaws.medialive#ReservationResourceType", "traits": { - "smithy.api#documentation": "The name of the multiplex program.", - "smithy.api#jsonName": "programName" + "smithy.api#documentation": "Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'", + "smithy.api#jsonName": "resourceType" } - } - }, - "traits": { - "smithy.api#documentation": "The multiplex program object." - } - }, - "com.amazonaws.medialive#MultiplexProgramChannelDestinationSettings": { - "type": "structure", - "members": { - "MultiplexId": { - "target": "com.amazonaws.medialive#__stringMin1", + }, + "SpecialFeature": { + "target": "com.amazonaws.medialive#ReservationSpecialFeature", "traits": { - "smithy.api#documentation": "The ID of the Multiplex that the encoder is providing output to. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the connection of the two MediaLive pipelines to the two Multiplex instances.\nThe Multiplex must be in the same region as the Channel.", - "smithy.api#jsonName": "multiplexId" + "smithy.api#documentation": "Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)", + "smithy.api#jsonName": "specialFeature" } }, - "ProgramName": { - "target": "com.amazonaws.medialive#__stringMin1", + "VideoQuality": { + "target": "com.amazonaws.medialive#ReservationVideoQuality", "traits": { - "smithy.api#documentation": "The program name of the Multiplex program that the encoder is providing output to.", - "smithy.api#jsonName": "programName" + "smithy.api#documentation": "Video quality, e.g. 'STANDARD' (Outputs only)", + "smithy.api#jsonName": "videoQuality" } } }, "traits": { - "smithy.api#documentation": "Multiplex Program Input Destination Settings for outputting a Channel to a Multiplex" + "smithy.api#documentation": "Resource configuration (codec, resolution, bitrate, ...)" } }, - "com.amazonaws.medialive#MultiplexProgramPacketIdentifiersMap": { - "type": "structure", + "com.amazonaws.medialive#ReservationResourceType": { + "type": "enum", "members": { - "AudioPids": { - "target": "com.amazonaws.medialive#__listOf__integer", - "traits": { - "smithy.api#jsonName": "audioPids" - } - }, - "DvbSubPids": { - "target": "com.amazonaws.medialive#__listOf__integer", + "INPUT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "dvbSubPids" + "smithy.api#enumValue": "INPUT" } }, - "DvbTeletextPid": { - "target": "com.amazonaws.medialive#__integer", + "OUTPUT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "dvbTeletextPid" + "smithy.api#enumValue": "OUTPUT" } }, - "EtvPlatformPid": { - "target": "com.amazonaws.medialive#__integer", + "MULTIPLEX": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "etvPlatformPid" + "smithy.api#enumValue": "MULTIPLEX" } }, - "EtvSignalPid": { - "target": "com.amazonaws.medialive#__integer", + "CHANNEL": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "etvSignalPid" + "smithy.api#enumValue": "CHANNEL" } - }, - "KlvDataPids": { - "target": "com.amazonaws.medialive#__listOf__integer", + } + }, + "traits": { + "smithy.api#documentation": "Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'" + } + }, + "com.amazonaws.medialive#ReservationSpecialFeature": { + "type": "enum", + "members": { + "ADVANCED_AUDIO": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "klvDataPids" + "smithy.api#enumValue": "ADVANCED_AUDIO" } }, - "PcrPid": { - "target": "com.amazonaws.medialive#__integer", + "AUDIO_NORMALIZATION": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "pcrPid" + "smithy.api#enumValue": "AUDIO_NORMALIZATION" } }, - "PmtPid": { - "target": "com.amazonaws.medialive#__integer", + "MGHD": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "pmtPid" + "smithy.api#enumValue": "MGHD" } }, - "PrivateMetadataPid": { - "target": "com.amazonaws.medialive#__integer", + "MGUHD": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "privateMetadataPid" + "smithy.api#enumValue": "MGUHD" } - }, - "Scte27Pids": { - "target": "com.amazonaws.medialive#__listOf__integer", + } + }, + "traits": { + "smithy.api#documentation": "Special features, 'ADVANCED_AUDIO' 'AUDIO_NORMALIZATION' 'MGHD' or 'MGUHD'" + } + }, + "com.amazonaws.medialive#ReservationState": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "scte27Pids" + "smithy.api#enumValue": "ACTIVE" } }, - "Scte35Pid": { - "target": "com.amazonaws.medialive#__integer", + "EXPIRED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "scte35Pid" + "smithy.api#enumValue": "EXPIRED" } }, - "TimedMetadataPid": { - "target": "com.amazonaws.medialive#__integer", + "CANCELED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "timedMetadataPid" + "smithy.api#enumValue": "CANCELED" } }, - "VideoPid": { - "target": "com.amazonaws.medialive#__integer", + "DELETED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "videoPid" + "smithy.api#enumValue": "DELETED" } } }, "traits": { - "smithy.api#documentation": "Packet identifiers map for a given Multiplex program." + "smithy.api#documentation": "Current reservation state" } }, - "com.amazonaws.medialive#MultiplexProgramPipelineDetail": { - "type": "structure", + "com.amazonaws.medialive#ReservationVideoQuality": { + "type": "enum", "members": { - "ActiveChannelPipeline": { - "target": "com.amazonaws.medialive#__string", + "STANDARD": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Identifies the channel pipeline that is currently active for the pipeline (identified by PipelineId) in the multiplex.", - "smithy.api#jsonName": "activeChannelPipeline" + "smithy.api#enumValue": "STANDARD" } }, - "PipelineId": { - "target": "com.amazonaws.medialive#__string", + "ENHANCED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Identifies a specific pipeline in the multiplex.", - "smithy.api#jsonName": "pipelineId" + "smithy.api#enumValue": "ENHANCED" + } + }, + "PREMIUM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PREMIUM" } } }, "traits": { - "smithy.api#documentation": "The current source for one of the pipelines in the multiplex." + "smithy.api#documentation": "Video quality, e.g. 'STANDARD' (Outputs only)" } }, - "com.amazonaws.medialive#MultiplexProgramServiceDescriptor": { + "com.amazonaws.medialive#RestartChannelPipelines": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#RestartChannelPipelinesRequest" + }, + "output": { + "target": "com.amazonaws.medialive#RestartChannelPipelinesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" + }, + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ConflictException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Restart pipelines in one channel that is currently running.", + "smithy.api#http": { + "method": "POST", + "uri": "/prod/channels/{ChannelId}/restartChannelPipelines", + "code": 200 + } + } + }, + "com.amazonaws.medialive#RestartChannelPipelinesRequest": { "type": "structure", "members": { - "ProviderName": { - "target": "com.amazonaws.medialive#__stringMax256", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Name of the provider.", - "smithy.api#jsonName": "providerName", - "smithy.api#required": {} - } - }, - "ServiceName": { - "target": "com.amazonaws.medialive#__stringMax256", + "ChannelId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Name of the service.", - "smithy.api#jsonName": "serviceName", + "smithy.api#documentation": "ID of channel", + "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "PipelineIds": { + "target": "com.amazonaws.medialive#__listOfChannelPipelineIdToRestart", + "traits": { + "smithy.api#documentation": "An array of pipelines to restart in this channel. Format PIPELINE_0 or PIPELINE_1.", + "smithy.api#jsonName": "pipelineIds" + } } }, "traits": { - "smithy.api#documentation": "Transport stream service descriptor configuration for the Multiplex program." + "smithy.api#documentation": "Pipelines to restart.", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#MultiplexProgramSettings": { + "com.amazonaws.medialive#RestartChannelPipelinesResponse": { "type": "structure", "members": { - "PreferredChannelPipeline": { - "target": "com.amazonaws.medialive#PreferredChannelPipeline", + "Arn": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Indicates which pipeline is preferred by the multiplex for program ingest.", - "smithy.api#jsonName": "preferredChannelPipeline" + "smithy.api#documentation": "The unique arn of the channel.", + "smithy.api#jsonName": "arn" } }, - "ProgramNumber": { - "target": "com.amazonaws.medialive#__integerMin0Max65535", + "CdiInputSpecification": { + "target": "com.amazonaws.medialive#CdiInputSpecification", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Unique program number.", - "smithy.api#jsonName": "programNumber", - "smithy.api#required": {} + "smithy.api#documentation": "Specification of CDI inputs for this channel", + "smithy.api#jsonName": "cdiInputSpecification" } }, - "ServiceDescriptor": { - "target": "com.amazonaws.medialive#MultiplexProgramServiceDescriptor", + "ChannelClass": { + "target": "com.amazonaws.medialive#ChannelClass", "traits": { - "smithy.api#documentation": "Transport stream service descriptor configuration for the Multiplex program.", - "smithy.api#jsonName": "serviceDescriptor" + "smithy.api#documentation": "The class for this channel. STANDARD for a channel with two pipelines or SINGLE_PIPELINE for a channel with one pipeline.", + "smithy.api#jsonName": "channelClass" } }, - "VideoSettings": { - "target": "com.amazonaws.medialive#MultiplexVideoSettings", + "Destinations": { + "target": "com.amazonaws.medialive#__listOfOutputDestination", "traits": { - "smithy.api#documentation": "Program video settings configuration.", - "smithy.api#jsonName": "videoSettings" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "destinations" } - } - }, - "traits": { - "smithy.api#documentation": "Multiplex Program settings configuration." - } - }, - "com.amazonaws.medialive#MultiplexProgramSummary": { - "type": "structure", - "members": { - "ChannelId": { - "target": "com.amazonaws.medialive#__string", + }, + "EgressEndpoints": { + "target": "com.amazonaws.medialive#__listOfChannelEgressEndpoint", "traits": { - "smithy.api#documentation": "The MediaLive Channel associated with the program.", - "smithy.api#jsonName": "channelId" + "smithy.api#documentation": "The endpoints where outgoing connections initiate from", + "smithy.api#jsonName": "egressEndpoints" } }, - "ProgramName": { + "EncoderSettings": { + "target": "com.amazonaws.medialive#EncoderSettings", + "traits": { + "smithy.api#jsonName": "encoderSettings" + } + }, + "Id": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The name of the multiplex program.", - "smithy.api#jsonName": "programName" + "smithy.api#documentation": "The unique id of the channel.", + "smithy.api#jsonName": "id" } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for MultiplexProgramSummary" - } - }, - "com.amazonaws.medialive#MultiplexSettings": { - "type": "structure", - "members": { - "MaximumVideoBufferDelayMilliseconds": { - "target": "com.amazonaws.medialive#__integerMin800Max3000", + }, + "InputAttachments": { + "target": "com.amazonaws.medialive#__listOfInputAttachment", "traits": { - "smithy.api#documentation": "Maximum video buffer delay in milliseconds.", - "smithy.api#jsonName": "maximumVideoBufferDelayMilliseconds" + "smithy.api#documentation": "List of input attachments for channel.", + "smithy.api#jsonName": "inputAttachments" } }, - "TransportStreamBitrate": { - "target": "com.amazonaws.medialive#__integerMin1000000Max100000000", + "InputSpecification": { + "target": "com.amazonaws.medialive#InputSpecification", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Transport stream bit rate.", - "smithy.api#jsonName": "transportStreamBitrate", - "smithy.api#required": {} + "smithy.api#documentation": "Specification of network and file inputs for this channel", + "smithy.api#jsonName": "inputSpecification" } }, - "TransportStreamId": { - "target": "com.amazonaws.medialive#__integerMin0Max65535", + "LogLevel": { + "target": "com.amazonaws.medialive#LogLevel", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Transport stream ID.", - "smithy.api#jsonName": "transportStreamId", - "smithy.api#required": {} + "smithy.api#documentation": "The log level being written to CloudWatch Logs.", + "smithy.api#jsonName": "logLevel" } }, - "TransportStreamReservedBitrate": { - "target": "com.amazonaws.medialive#__integerMin0Max100000000", + "Maintenance": { + "target": "com.amazonaws.medialive#MaintenanceStatus", "traits": { - "smithy.api#documentation": "Transport stream reserved bit rate.", - "smithy.api#jsonName": "transportStreamReservedBitrate" + "smithy.api#documentation": "Maintenance settings for this channel.", + "smithy.api#jsonName": "maintenance" } - } - }, - "traits": { - "smithy.api#documentation": "Contains configuration for a Multiplex event" - } - }, - "com.amazonaws.medialive#MultiplexSettingsSummary": { - "type": "structure", - "members": { - "TransportStreamBitrate": { - "target": "com.amazonaws.medialive#__integerMin1000000Max100000000", + }, + "MaintenanceStatus": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Transport stream bit rate.", - "smithy.api#jsonName": "transportStreamBitrate" + "smithy.api#documentation": "The time in milliseconds by when the PVRE restart must occur.", + "smithy.api#jsonName": "maintenanceStatus" } - } - }, - "traits": { - "smithy.api#documentation": "Contains summary configuration for a Multiplex event." - } - }, - "com.amazonaws.medialive#MultiplexState": { - "type": "enum", - "members": { - "CREATING": { - "target": "smithy.api#Unit", + }, + "Name": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "CREATING" + "smithy.api#documentation": "The name of the channel. (user-mutable)", + "smithy.api#jsonName": "name" } }, - "CREATE_FAILED": { - "target": "smithy.api#Unit", + "PipelineDetails": { + "target": "com.amazonaws.medialive#__listOfPipelineDetail", "traits": { - "smithy.api#enumValue": "CREATE_FAILED" + "smithy.api#documentation": "Runtime details for the pipelines of a running channel.", + "smithy.api#jsonName": "pipelineDetails" } }, - "IDLE": { - "target": "smithy.api#Unit", + "PipelinesRunningCount": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#enumValue": "IDLE" + "smithy.api#documentation": "The number of currently healthy pipelines.", + "smithy.api#jsonName": "pipelinesRunningCount" } }, - "STARTING": { - "target": "smithy.api#Unit", + "RoleArn": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "STARTING" + "smithy.api#documentation": "The Amazon Resource Name (ARN) of the role assumed when running the Channel.", + "smithy.api#jsonName": "roleArn" } }, - "RUNNING": { - "target": "smithy.api#Unit", + "State": { + "target": "com.amazonaws.medialive#ChannelState", "traits": { - "smithy.api#enumValue": "RUNNING" + "smithy.api#jsonName": "state" } }, - "RECOVERING": { - "target": "smithy.api#Unit", + "Tags": { + "target": "com.amazonaws.medialive#Tags", "traits": { - "smithy.api#enumValue": "RECOVERING" + "smithy.api#documentation": "A collection of key-value pairs.", + "smithy.api#jsonName": "tags" } }, - "STOPPING": { + "Vpc": { + "target": "com.amazonaws.medialive#VpcOutputSettingsDescription", + "traits": { + "smithy.api#documentation": "Settings for VPC output", + "smithy.api#jsonName": "vpc" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for RestartChannelPipelinesResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#RtmpAdMarkers": { + "type": "enum", + "members": { + "ON_CUE_POINT_SCTE35": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "STOPPING" + "smithy.api#enumValue": "ON_CUE_POINT_SCTE35" } - }, - "DELETING": { + } + }, + "traits": { + "smithy.api#documentation": "Rtmp Ad Markers" + } + }, + "com.amazonaws.medialive#RtmpCacheFullBehavior": { + "type": "enum", + "members": { + "DISCONNECT_IMMEDIATELY": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DELETING" + "smithy.api#enumValue": "DISCONNECT_IMMEDIATELY" } }, - "DELETED": { + "WAIT_FOR_SERVER": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DELETED" + "smithy.api#enumValue": "WAIT_FOR_SERVER" } } }, "traits": { - "smithy.api#documentation": "The current state of the multiplex." + "smithy.api#documentation": "Rtmp Cache Full Behavior" } }, - "com.amazonaws.medialive#MultiplexStatmuxVideoSettings": { - "type": "structure", + "com.amazonaws.medialive#RtmpCaptionData": { + "type": "enum", "members": { - "MaximumBitrate": { - "target": "com.amazonaws.medialive#__integerMin100000Max100000000", + "ALL": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Maximum statmux bitrate.", - "smithy.api#jsonName": "maximumBitrate" + "smithy.api#enumValue": "ALL" } }, - "MinimumBitrate": { - "target": "com.amazonaws.medialive#__integerMin100000Max100000000", + "FIELD1_608": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Minimum statmux bitrate.", - "smithy.api#jsonName": "minimumBitrate" + "smithy.api#enumValue": "FIELD1_608" } }, - "Priority": { - "target": "com.amazonaws.medialive#__integerMinNegative5Max5", - "traits": { - "smithy.api#documentation": "The purpose of the priority is to use a combination of the\\nmultiplex rate control algorithm and the QVBR capability of the\\nencoder to prioritize the video quality of some channels in a\\nmultiplex over others. Channels that have a higher priority will\\nget higher video quality at the expense of the video quality of\\nother channels in the multiplex with lower priority.", - "smithy.api#jsonName": "priority" + "FIELD1_AND_FIELD2_608": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FIELD1_AND_FIELD2_608" } } }, "traits": { - "smithy.api#documentation": "Statmux rate control settings" + "smithy.api#documentation": "Rtmp Caption Data" } }, - "com.amazonaws.medialive#MultiplexSummary": { + "com.amazonaws.medialive#RtmpCaptionInfoDestinationSettings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Rtmp Caption Info Destination Settings" + } + }, + "com.amazonaws.medialive#RtmpGroupSettings": { "type": "structure", "members": { - "Arn": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The unique arn of the multiplex.", - "smithy.api#jsonName": "arn" - } - }, - "AvailabilityZones": { - "target": "com.amazonaws.medialive#__listOf__string", - "traits": { - "smithy.api#documentation": "A list of availability zones for the multiplex.", - "smithy.api#jsonName": "availabilityZones" - } - }, - "Id": { - "target": "com.amazonaws.medialive#__string", + "AdMarkers": { + "target": "com.amazonaws.medialive#__listOfRtmpAdMarkers", "traits": { - "smithy.api#documentation": "The unique id of the multiplex.", - "smithy.api#jsonName": "id" + "smithy.api#documentation": "Choose the ad marker type for this output group. MediaLive will create a message based on the content of each SCTE-35 message, format it for that marker type, and insert it in the datastream.", + "smithy.api#jsonName": "adMarkers" } }, - "MultiplexSettings": { - "target": "com.amazonaws.medialive#MultiplexSettingsSummary", + "AuthenticationScheme": { + "target": "com.amazonaws.medialive#AuthenticationScheme", "traits": { - "smithy.api#documentation": "Configuration for a multiplex event.", - "smithy.api#jsonName": "multiplexSettings" + "smithy.api#documentation": "Authentication scheme to use when connecting with CDN", + "smithy.api#jsonName": "authenticationScheme" } }, - "Name": { - "target": "com.amazonaws.medialive#__string", + "CacheFullBehavior": { + "target": "com.amazonaws.medialive#RtmpCacheFullBehavior", "traits": { - "smithy.api#documentation": "The name of the multiplex.", - "smithy.api#jsonName": "name" + "smithy.api#documentation": "Controls behavior when content cache fills up. If remote origin server stalls the RTMP connection and does not accept content fast enough the 'Media Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache will stop accepting new content. If set to disconnectImmediately, the RTMP output will force a disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin accepting data again.", + "smithy.api#jsonName": "cacheFullBehavior" } }, - "PipelinesRunningCount": { - "target": "com.amazonaws.medialive#__integer", + "CacheLength": { + "target": "com.amazonaws.medialive#__integerMin30", "traits": { - "smithy.api#documentation": "The number of currently healthy pipelines.", - "smithy.api#jsonName": "pipelinesRunningCount" + "smithy.api#documentation": "Cache length, in seconds, is used to calculate buffer size.", + "smithy.api#jsonName": "cacheLength" } }, - "ProgramCount": { - "target": "com.amazonaws.medialive#__integer", + "CaptionData": { + "target": "com.amazonaws.medialive#RtmpCaptionData", "traits": { - "smithy.api#documentation": "The number of programs in the multiplex.", - "smithy.api#jsonName": "programCount" + "smithy.api#documentation": "Controls the types of data that passes to onCaptionInfo outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to 'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will be passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be passed.", + "smithy.api#jsonName": "captionData" } }, - "State": { - "target": "com.amazonaws.medialive#MultiplexState", + "InputLossAction": { + "target": "com.amazonaws.medialive#InputLossActionForRtmpOut", "traits": { - "smithy.api#documentation": "The current state of the multiplex.", - "smithy.api#jsonName": "state" + "smithy.api#documentation": "Controls the behavior of this RTMP group if input becomes unavailable.\n\n- emitOutput: Emit a slate until input returns.\n- pauseOutput: Stop transmitting data until input returns. This does not close the underlying RTMP connection.", + "smithy.api#jsonName": "inputLossAction" } }, - "Tags": { - "target": "com.amazonaws.medialive#Tags", - "traits": { - "smithy.api#documentation": "A collection of key-value pairs.", - "smithy.api#jsonName": "tags" - } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for MultiplexSummary" - } - }, - "com.amazonaws.medialive#MultiplexVideoSettings": { - "type": "structure", - "members": { - "ConstantBitrate": { - "target": "com.amazonaws.medialive#__integerMin100000Max100000000", + "RestartDelay": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#documentation": "The constant bitrate configuration for the video encode.\nWhen this field is defined, StatmuxSettings must be undefined.", - "smithy.api#jsonName": "constantBitrate" + "smithy.api#documentation": "If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart.", + "smithy.api#jsonName": "restartDelay" } }, - "StatmuxSettings": { - "target": "com.amazonaws.medialive#MultiplexStatmuxVideoSettings", + "IncludeFillerNalUnits": { + "target": "com.amazonaws.medialive#IncludeFillerNalUnits", "traits": { - "smithy.api#documentation": "Statmux rate control settings.\nWhen this field is defined, ConstantBitrate must be undefined.", - "smithy.api#jsonName": "statmuxSettings" + "smithy.api#documentation": "Applies only when the rate control mode (in the codec settings) is CBR (constant bit rate). Controls whether the RTMP output stream is padded (with FILL NAL units) in order to achieve a constant bit rate that is truly constant. When there is no padding, the bandwidth varies (up to the bitrate value in the codec settings). We recommend that you choose Auto.", + "smithy.api#jsonName": "includeFillerNalUnits" } } }, "traits": { - "smithy.api#documentation": "The video configuration for each program in a multiplex." + "smithy.api#documentation": "Rtmp Group Settings" } }, - "com.amazonaws.medialive#NetworkInputServerValidation": { + "com.amazonaws.medialive#RtmpOutputCertificateMode": { "type": "enum", "members": { - "CHECK_CRYPTOGRAPHY_AND_VALIDATE_NAME": { + "SELF_SIGNED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CHECK_CRYPTOGRAPHY_AND_VALIDATE_NAME" + "smithy.api#enumValue": "SELF_SIGNED" } }, - "CHECK_CRYPTOGRAPHY_ONLY": { + "VERIFY_AUTHENTICITY": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CHECK_CRYPTOGRAPHY_ONLY" + "smithy.api#enumValue": "VERIFY_AUTHENTICITY" } } }, "traits": { - "smithy.api#documentation": "Network Input Server Validation" + "smithy.api#documentation": "Rtmp Output Certificate Mode" } }, - "com.amazonaws.medialive#NetworkInputSettings": { + "com.amazonaws.medialive#RtmpOutputSettings": { "type": "structure", "members": { - "HlsInputSettings": { - "target": "com.amazonaws.medialive#HlsInputSettings", + "CertificateMode": { + "target": "com.amazonaws.medialive#RtmpOutputCertificateMode", "traits": { - "smithy.api#documentation": "Specifies HLS input settings when the uri is for a HLS manifest.", - "smithy.api#jsonName": "hlsInputSettings" + "smithy.api#documentation": "If set to verifyAuthenticity, verify the tls certificate chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed certificates to fail.", + "smithy.api#jsonName": "certificateMode" } }, - "ServerValidation": { - "target": "com.amazonaws.medialive#NetworkInputServerValidation", - "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "serverValidation" - } - } - }, - "traits": { - "smithy.api#documentation": "Network source to transcode. Must be accessible to the Elemental Live node that is running the live event through a network connection." - } - }, - "com.amazonaws.medialive#NielsenCBET": { - "type": "structure", - "members": { - "CbetCheckDigitString": { - "target": "com.amazonaws.medialive#__stringMin2Max2", + "ConnectionRetryInterval": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Enter the CBET check digits to use in the watermark.", - "smithy.api#jsonName": "cbetCheckDigitString", - "smithy.api#required": {} + "smithy.api#documentation": "Number of seconds to wait before retrying a connection to the Flash Media server if the connection is lost.", + "smithy.api#jsonName": "connectionRetryInterval" } }, - "CbetStepaside": { - "target": "com.amazonaws.medialive#NielsenWatermarksCbetStepaside", + "Destination": { + "target": "com.amazonaws.medialive#OutputLocationRef", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Determines the method of CBET insertion mode when prior encoding is detected on the same layer.", - "smithy.api#jsonName": "cbetStepaside", + "smithy.api#documentation": "The RTMP endpoint excluding the stream name (eg. rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI fields accept format identifiers.", + "smithy.api#jsonName": "destination", "smithy.api#required": {} } }, - "Csid": { - "target": "com.amazonaws.medialive#__stringMin1Max7", + "NumRetries": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Enter the CBET Source ID (CSID) to use in the watermark", - "smithy.api#jsonName": "csid", - "smithy.api#required": {} + "smithy.api#documentation": "Number of retry attempts.", + "smithy.api#jsonName": "numRetries" } } }, "traits": { - "smithy.api#documentation": "Nielsen CBET" + "smithy.api#documentation": "Rtmp Output Settings" } }, - "com.amazonaws.medialive#NielsenConfiguration": { - "type": "structure", + "com.amazonaws.medialive#S3CannedAcl": { + "type": "enum", "members": { - "DistributorId": { - "target": "com.amazonaws.medialive#__string", + "AUTHENTICATED_READ": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Enter the Distributor ID assigned to your organization by Nielsen.", - "smithy.api#jsonName": "distributorId" + "smithy.api#enumValue": "AUTHENTICATED_READ" } }, - "NielsenPcmToId3Tagging": { - "target": "com.amazonaws.medialive#NielsenPcmToId3TaggingState", + "BUCKET_OWNER_FULL_CONTROL": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Enables Nielsen PCM to ID3 tagging", - "smithy.api#jsonName": "nielsenPcmToId3Tagging" + "smithy.api#enumValue": "BUCKET_OWNER_FULL_CONTROL" + } + }, + "BUCKET_OWNER_READ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BUCKET_OWNER_READ" + } + }, + "PUBLIC_READ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PUBLIC_READ" } } }, "traits": { - "smithy.api#documentation": "Nielsen Configuration" + "smithy.api#documentation": "S3 Canned Acl" } }, - "com.amazonaws.medialive#NielsenNaesIiNw": { + "com.amazonaws.medialive#ScheduleAction": { "type": "structure", "members": { - "CheckDigitString": { - "target": "com.amazonaws.medialive#__stringMin2Max2", + "ActionName": { + "target": "com.amazonaws.medialive#__string", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Enter the check digit string for the watermark", - "smithy.api#jsonName": "checkDigitString", + "smithy.api#documentation": "The name of the action, must be unique within the schedule. This name provides the main reference to an action once it is added to the schedule. A name is unique if it is no longer in the schedule. The schedule is automatically cleaned up to remove actions with a start time of more than 1 hour ago (approximately) so at that point a name can be reused.", + "smithy.api#jsonName": "actionName", "smithy.api#required": {} } }, - "Sid": { - "target": "com.amazonaws.medialive#__doubleMin1Max65535", + "ScheduleActionSettings": { + "target": "com.amazonaws.medialive#ScheduleActionSettings", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Enter the Nielsen Source ID (SID) to include in the watermark", - "smithy.api#jsonName": "sid", + "smithy.api#documentation": "Settings for this schedule action.", + "smithy.api#jsonName": "scheduleActionSettings", "smithy.api#required": {} } }, - "Timezone": { - "target": "com.amazonaws.medialive#NielsenWatermarkTimezones", - "traits": { - "smithy.api#documentation": "Choose the timezone for the time stamps in the watermark. If not provided,\nthe timestamps will be in Coordinated Universal Time (UTC)", - "smithy.api#jsonName": "timezone" - } - } - }, - "traits": { - "smithy.api#documentation": "Nielsen Naes Ii Nw" - } - }, - "com.amazonaws.medialive#NielsenPcmToId3TaggingState": { - "type": "enum", - "members": { - "DISABLED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DISABLED" - } - }, - "ENABLED": { - "target": "smithy.api#Unit", + "ScheduleActionStartSettings": { + "target": "com.amazonaws.medialive#ScheduleActionStartSettings", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The time for the action to start in the channel.", + "smithy.api#jsonName": "scheduleActionStartSettings", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "State of Nielsen PCM to ID3 tagging" + "smithy.api#documentation": "Contains information on a single schedule action." } }, - "com.amazonaws.medialive#NielsenWatermarkTimezones": { - "type": "enum", + "com.amazonaws.medialive#ScheduleActionSettings": { + "type": "structure", "members": { - "AMERICA_PUERTO_RICO": { - "target": "smithy.api#Unit", + "HlsId3SegmentTaggingSettings": { + "target": "com.amazonaws.medialive#HlsId3SegmentTaggingScheduleActionSettings", "traits": { - "smithy.api#enumValue": "AMERICA_PUERTO_RICO" + "smithy.api#documentation": "Action to insert HLS ID3 segment tagging", + "smithy.api#jsonName": "hlsId3SegmentTaggingSettings" } }, - "US_ALASKA": { - "target": "smithy.api#Unit", + "HlsTimedMetadataSettings": { + "target": "com.amazonaws.medialive#HlsTimedMetadataScheduleActionSettings", "traits": { - "smithy.api#enumValue": "US_ALASKA" + "smithy.api#documentation": "Action to insert HLS metadata", + "smithy.api#jsonName": "hlsTimedMetadataSettings" } }, - "US_ARIZONA": { - "target": "smithy.api#Unit", + "InputPrepareSettings": { + "target": "com.amazonaws.medialive#InputPrepareScheduleActionSettings", "traits": { - "smithy.api#enumValue": "US_ARIZONA" + "smithy.api#documentation": "Action to prepare an input for a future immediate input switch", + "smithy.api#jsonName": "inputPrepareSettings" } }, - "US_CENTRAL": { - "target": "smithy.api#Unit", + "InputSwitchSettings": { + "target": "com.amazonaws.medialive#InputSwitchScheduleActionSettings", "traits": { - "smithy.api#enumValue": "US_CENTRAL" + "smithy.api#documentation": "Action to switch the input", + "smithy.api#jsonName": "inputSwitchSettings" } }, - "US_EASTERN": { - "target": "smithy.api#Unit", + "MotionGraphicsImageActivateSettings": { + "target": "com.amazonaws.medialive#MotionGraphicsActivateScheduleActionSettings", "traits": { - "smithy.api#enumValue": "US_EASTERN" + "smithy.api#documentation": "Action to activate a motion graphics image overlay", + "smithy.api#jsonName": "motionGraphicsImageActivateSettings" } }, - "US_HAWAII": { - "target": "smithy.api#Unit", + "MotionGraphicsImageDeactivateSettings": { + "target": "com.amazonaws.medialive#MotionGraphicsDeactivateScheduleActionSettings", "traits": { - "smithy.api#enumValue": "US_HAWAII" + "smithy.api#documentation": "Action to deactivate a motion graphics image overlay", + "smithy.api#jsonName": "motionGraphicsImageDeactivateSettings" } }, - "US_MOUNTAIN": { - "target": "smithy.api#Unit", + "PauseStateSettings": { + "target": "com.amazonaws.medialive#PauseStateScheduleActionSettings", "traits": { - "smithy.api#enumValue": "US_MOUNTAIN" + "smithy.api#documentation": "Action to pause or unpause one or both channel pipelines", + "smithy.api#jsonName": "pauseStateSettings" } }, - "US_PACIFIC": { - "target": "smithy.api#Unit", + "Scte35InputSettings": { + "target": "com.amazonaws.medialive#Scte35InputScheduleActionSettings", "traits": { - "smithy.api#enumValue": "US_PACIFIC" + "smithy.api#documentation": "Action to specify scte35 input", + "smithy.api#jsonName": "scte35InputSettings" } }, - "US_SAMOA": { - "target": "smithy.api#Unit", + "Scte35ReturnToNetworkSettings": { + "target": "com.amazonaws.medialive#Scte35ReturnToNetworkScheduleActionSettings", "traits": { - "smithy.api#enumValue": "US_SAMOA" + "smithy.api#documentation": "Action to insert SCTE-35 return_to_network message", + "smithy.api#jsonName": "scte35ReturnToNetworkSettings" } }, - "UTC": { - "target": "smithy.api#Unit", + "Scte35SpliceInsertSettings": { + "target": "com.amazonaws.medialive#Scte35SpliceInsertScheduleActionSettings", "traits": { - "smithy.api#enumValue": "UTC" + "smithy.api#documentation": "Action to insert SCTE-35 splice_insert message", + "smithy.api#jsonName": "scte35SpliceInsertSettings" } - } - }, - "traits": { - "smithy.api#documentation": "Nielsen Watermark Timezones" - } - }, - "com.amazonaws.medialive#NielsenWatermarksCbetStepaside": { - "type": "enum", - "members": { - "DISABLED": { - "target": "smithy.api#Unit", + }, + "Scte35TimeSignalSettings": { + "target": "com.amazonaws.medialive#Scte35TimeSignalScheduleActionSettings", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#documentation": "Action to insert SCTE-35 time_signal message", + "smithy.api#jsonName": "scte35TimeSignalSettings" } }, - "ENABLED": { - "target": "smithy.api#Unit", + "StaticImageActivateSettings": { + "target": "com.amazonaws.medialive#StaticImageActivateScheduleActionSettings", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#documentation": "Action to activate a static image overlay", + "smithy.api#jsonName": "staticImageActivateSettings" } - } - }, - "traits": { - "smithy.api#documentation": "Nielsen Watermarks Cbet Stepaside" - } - }, - "com.amazonaws.medialive#NielsenWatermarksDistributionTypes": { - "type": "enum", - "members": { - "FINAL_DISTRIBUTOR": { - "target": "smithy.api#Unit", + }, + "StaticImageDeactivateSettings": { + "target": "com.amazonaws.medialive#StaticImageDeactivateScheduleActionSettings", "traits": { - "smithy.api#enumValue": "FINAL_DISTRIBUTOR" + "smithy.api#documentation": "Action to deactivate a static image overlay", + "smithy.api#jsonName": "staticImageDeactivateSettings" } }, - "PROGRAM_CONTENT": { - "target": "smithy.api#Unit", + "StaticImageOutputActivateSettings": { + "target": "com.amazonaws.medialive#StaticImageOutputActivateScheduleActionSettings", "traits": { - "smithy.api#enumValue": "PROGRAM_CONTENT" + "smithy.api#documentation": "Action to activate a static image overlay in one or more specified outputs", + "smithy.api#jsonName": "staticImageOutputActivateSettings" + } + }, + "StaticImageOutputDeactivateSettings": { + "target": "com.amazonaws.medialive#StaticImageOutputDeactivateScheduleActionSettings", + "traits": { + "smithy.api#documentation": "Action to deactivate a static image overlay in one or more specified outputs", + "smithy.api#jsonName": "staticImageOutputDeactivateSettings" } } }, "traits": { - "smithy.api#documentation": "Nielsen Watermarks Distribution Types" + "smithy.api#documentation": "Holds the settings for a single schedule action." } }, - "com.amazonaws.medialive#NielsenWatermarksSettings": { + "com.amazonaws.medialive#ScheduleActionStartSettings": { "type": "structure", "members": { - "NielsenCbetSettings": { - "target": "com.amazonaws.medialive#NielsenCBET", + "FixedModeScheduleActionStartSettings": { + "target": "com.amazonaws.medialive#FixedModeScheduleActionStartSettings", "traits": { - "smithy.api#documentation": "Complete these fields only if you want to insert watermarks of type Nielsen CBET", - "smithy.api#jsonName": "nielsenCbetSettings" + "smithy.api#documentation": "Option for specifying the start time for an action.", + "smithy.api#jsonName": "fixedModeScheduleActionStartSettings" } }, - "NielsenDistributionType": { - "target": "com.amazonaws.medialive#NielsenWatermarksDistributionTypes", + "FollowModeScheduleActionStartSettings": { + "target": "com.amazonaws.medialive#FollowModeScheduleActionStartSettings", "traits": { - "smithy.api#documentation": "Choose the distribution types that you want to assign to the watermarks:\n- PROGRAM_CONTENT\n- FINAL_DISTRIBUTOR", - "smithy.api#jsonName": "nielsenDistributionType" + "smithy.api#documentation": "Option for specifying an action as relative to another action.", + "smithy.api#jsonName": "followModeScheduleActionStartSettings" } }, - "NielsenNaesIiNwSettings": { - "target": "com.amazonaws.medialive#NielsenNaesIiNw", + "ImmediateModeScheduleActionStartSettings": { + "target": "com.amazonaws.medialive#ImmediateModeScheduleActionStartSettings", "traits": { - "smithy.api#documentation": "Complete these fields only if you want to insert watermarks of type Nielsen NAES II (N2) and Nielsen NAES VI (NW).", - "smithy.api#jsonName": "nielsenNaesIiNwSettings" + "smithy.api#documentation": "Option for specifying an action that should be applied immediately.", + "smithy.api#jsonName": "immediateModeScheduleActionStartSettings" } } }, "traits": { - "smithy.api#documentation": "Nielsen Watermarks Settings" + "smithy.api#documentation": "Settings to specify when an action should occur. Only one of the options must be selected." } }, - "com.amazonaws.medialive#NotFoundException": { - "type": "structure", + "com.amazonaws.medialive#Scte20Convert608To708": { + "type": "enum", "members": { - "Message": { - "target": "com.amazonaws.medialive#__string", + "DISABLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "message" + "smithy.api#enumValue": "DISABLED" + } + }, + "UPCONVERT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPCONVERT" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for NotFoundException", - "smithy.api#error": "client", - "smithy.api#httpError": 404 + "smithy.api#documentation": "Scte20 Convert608 To708" } }, - "com.amazonaws.medialive#Offering": { + "com.amazonaws.medialive#Scte20PlusEmbeddedDestinationSettings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Scte20 Plus Embedded Destination Settings" + } + }, + "com.amazonaws.medialive#Scte20SourceSettings": { "type": "structure", "members": { - "Arn": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Unique offering ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:offering:87654321'", - "smithy.api#jsonName": "arn" - } - }, - "CurrencyCode": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'", - "smithy.api#jsonName": "currencyCode" - } - }, - "Duration": { - "target": "com.amazonaws.medialive#__integer", - "traits": { - "smithy.api#documentation": "Lease duration, e.g. '12'", - "smithy.api#jsonName": "duration" - } - }, - "DurationUnits": { - "target": "com.amazonaws.medialive#OfferingDurationUnits", - "traits": { - "smithy.api#documentation": "Units for duration, e.g. 'MONTHS'", - "smithy.api#jsonName": "durationUnits" - } - }, - "FixedPrice": { - "target": "com.amazonaws.medialive#__double", - "traits": { - "smithy.api#documentation": "One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering", - "smithy.api#jsonName": "fixedPrice" - } - }, - "OfferingDescription": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'", - "smithy.api#jsonName": "offeringDescription" - } - }, - "OfferingId": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Unique offering ID, e.g. '87654321'", - "smithy.api#jsonName": "offeringId" - } - }, - "OfferingType": { - "target": "com.amazonaws.medialive#OfferingType", - "traits": { - "smithy.api#documentation": "Offering type, e.g. 'NO_UPFRONT'", - "smithy.api#jsonName": "offeringType" - } - }, - "Region": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "AWS region, e.g. 'us-west-2'", - "smithy.api#jsonName": "region" - } - }, - "ResourceSpecification": { - "target": "com.amazonaws.medialive#ReservationResourceSpecification", + "Convert608To708": { + "target": "com.amazonaws.medialive#Scte20Convert608To708", "traits": { - "smithy.api#documentation": "Resource configuration details", - "smithy.api#jsonName": "resourceSpecification" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "convert608To708" } }, - "UsagePrice": { - "target": "com.amazonaws.medialive#__double", + "Source608ChannelNumber": { + "target": "com.amazonaws.medialive#__integerMin1Max4", "traits": { - "smithy.api#documentation": "Recurring usage charge for each reserved resource, e.g. '157.0'", - "smithy.api#jsonName": "usagePrice" + "smithy.api#documentation": "Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough.", + "smithy.api#jsonName": "source608ChannelNumber" } } }, "traits": { - "smithy.api#documentation": "Reserved resources available for purchase" + "smithy.api#documentation": "Scte20 Source Settings" } }, - "com.amazonaws.medialive#OfferingDurationUnits": { - "type": "enum", - "members": { - "MONTHS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "MONTHS" - } - } - }, + "com.amazonaws.medialive#Scte27DestinationSettings": { + "type": "structure", + "members": {}, "traits": { - "smithy.api#documentation": "Units for duration, e.g. 'MONTHS'" + "smithy.api#documentation": "Scte27 Destination Settings" } }, - "com.amazonaws.medialive#OfferingType": { + "com.amazonaws.medialive#Scte27OcrLanguage": { "type": "enum", "members": { - "NO_UPFRONT": { + "DEU": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "NO_UPFRONT" + "smithy.api#enumValue": "DEU" } - } - }, - "traits": { - "smithy.api#documentation": "Offering type, e.g. 'NO_UPFRONT'" - } - }, - "com.amazonaws.medialive#Output": { - "type": "structure", - "members": { - "AudioDescriptionNames": { - "target": "com.amazonaws.medialive#__listOf__string", + }, + "ENG": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The names of the AudioDescriptions used as audio sources for this output.", - "smithy.api#jsonName": "audioDescriptionNames" + "smithy.api#enumValue": "ENG" } }, - "CaptionDescriptionNames": { - "target": "com.amazonaws.medialive#__listOf__string", + "FRA": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The names of the CaptionDescriptions used as caption sources for this output.", - "smithy.api#jsonName": "captionDescriptionNames" + "smithy.api#enumValue": "FRA" } }, - "OutputName": { - "target": "com.amazonaws.medialive#__stringMin1Max255", + "NLD": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The name used to identify an output.", - "smithy.api#jsonName": "outputName" + "smithy.api#enumValue": "NLD" } }, - "OutputSettings": { - "target": "com.amazonaws.medialive#OutputSettings", + "POR": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Output type-specific settings.", - "smithy.api#jsonName": "outputSettings", - "smithy.api#required": {} + "smithy.api#enumValue": "POR" } }, - "VideoDescriptionName": { - "target": "com.amazonaws.medialive#__string", + "SPA": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The name of the VideoDescription used as the source for this output.", - "smithy.api#jsonName": "videoDescriptionName" + "smithy.api#enumValue": "SPA" } } }, "traits": { - "smithy.api#documentation": "Output settings. There can be multiple outputs within a group." + "smithy.api#documentation": "Scte27 Ocr Language" } }, - "com.amazonaws.medialive#OutputDestination": { + "com.amazonaws.medialive#Scte27SourceSettings": { "type": "structure", "members": { - "Id": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "User-specified id. This is used in an output group or an output.", - "smithy.api#jsonName": "id" - } - }, - "MediaPackageSettings": { - "target": "com.amazonaws.medialive#__listOfMediaPackageOutputDestinationSettings", - "traits": { - "smithy.api#documentation": "Destination settings for a MediaPackage output; one destination for both encoders.", - "smithy.api#jsonName": "mediaPackageSettings" - } - }, - "MultiplexSettings": { - "target": "com.amazonaws.medialive#MultiplexProgramChannelDestinationSettings", + "OcrLanguage": { + "target": "com.amazonaws.medialive#Scte27OcrLanguage", "traits": { - "smithy.api#documentation": "Destination settings for a Multiplex output; one destination for both encoders.", - "smithy.api#jsonName": "multiplexSettings" + "smithy.api#documentation": "If you will configure a WebVTT caption description that references this caption selector, use this field to\nprovide the language to consider when translating the image-based source to text.", + "smithy.api#jsonName": "ocrLanguage" } }, - "Settings": { - "target": "com.amazonaws.medialive#__listOfOutputDestinationSettings", + "Pid": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#documentation": "Destination settings for a standard output; one destination for each redundant encoder.", - "smithy.api#jsonName": "settings" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "pid" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for OutputDestination" + "smithy.api#documentation": "Scte27 Source Settings" } }, - "com.amazonaws.medialive#OutputDestinationSettings": { - "type": "structure", + "com.amazonaws.medialive#Scte35AposNoRegionalBlackoutBehavior": { + "type": "enum", "members": { - "PasswordParam": { - "target": "com.amazonaws.medialive#__string", + "FOLLOW": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "key used to extract the password from EC2 Parameter store", - "smithy.api#jsonName": "passwordParam" + "smithy.api#enumValue": "FOLLOW" } }, - "StreamName": { - "target": "com.amazonaws.medialive#__string", + "IGNORE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Stream name for RTMP destinations (URLs of type rtmp://)", - "smithy.api#jsonName": "streamName" + "smithy.api#enumValue": "IGNORE" } - }, - "Url": { - "target": "com.amazonaws.medialive#__string", + } + }, + "traits": { + "smithy.api#documentation": "Scte35 Apos No Regional Blackout Behavior" + } + }, + "com.amazonaws.medialive#Scte35AposWebDeliveryAllowedBehavior": { + "type": "enum", + "members": { + "FOLLOW": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "A URL specifying a destination", - "smithy.api#jsonName": "url" + "smithy.api#enumValue": "FOLLOW" } }, - "Username": { - "target": "com.amazonaws.medialive#__string", + "IGNORE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "username for destination", - "smithy.api#jsonName": "username" + "smithy.api#enumValue": "IGNORE" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for OutputDestinationSettings" + "smithy.api#documentation": "Scte35 Apos Web Delivery Allowed Behavior" } }, - "com.amazonaws.medialive#OutputGroup": { - "type": "structure", + "com.amazonaws.medialive#Scte35ArchiveAllowedFlag": { + "type": "enum", "members": { - "Name": { - "target": "com.amazonaws.medialive#__stringMax32", - "traits": { - "smithy.api#documentation": "Custom output group name optionally defined by the user.", - "smithy.api#jsonName": "name" - } - }, - "OutputGroupSettings": { - "target": "com.amazonaws.medialive#OutputGroupSettings", + "ARCHIVE_NOT_ALLOWED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Settings associated with the output group.", - "smithy.api#jsonName": "outputGroupSettings", - "smithy.api#required": {} + "smithy.api#enumValue": "ARCHIVE_NOT_ALLOWED" } }, - "Outputs": { - "target": "com.amazonaws.medialive#__listOfOutput", + "ARCHIVE_ALLOWED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#jsonName": "outputs", - "smithy.api#required": {} + "smithy.api#enumValue": "ARCHIVE_ALLOWED" } } }, "traits": { - "smithy.api#documentation": "Output groups for this Live Event. Output groups contain information about where streams should be distributed." + "smithy.api#documentation": "Corresponds to the archive_allowed parameter. A value of ARCHIVE_NOT_ALLOWED corresponds to 0 (false) in the SCTE-35 specification. If you include one of the \"restriction\" flags then you must include all four of them." } }, - "com.amazonaws.medialive#OutputGroupSettings": { + "com.amazonaws.medialive#Scte35DeliveryRestrictions": { "type": "structure", "members": { - "ArchiveGroupSettings": { - "target": "com.amazonaws.medialive#ArchiveGroupSettings", - "traits": { - "smithy.api#jsonName": "archiveGroupSettings" - } - }, - "FrameCaptureGroupSettings": { - "target": "com.amazonaws.medialive#FrameCaptureGroupSettings", - "traits": { - "smithy.api#jsonName": "frameCaptureGroupSettings" - } - }, - "HlsGroupSettings": { - "target": "com.amazonaws.medialive#HlsGroupSettings", - "traits": { - "smithy.api#jsonName": "hlsGroupSettings" - } - }, - "MediaPackageGroupSettings": { - "target": "com.amazonaws.medialive#MediaPackageGroupSettings", - "traits": { - "smithy.api#jsonName": "mediaPackageGroupSettings" - } - }, - "MsSmoothGroupSettings": { - "target": "com.amazonaws.medialive#MsSmoothGroupSettings", - "traits": { - "smithy.api#jsonName": "msSmoothGroupSettings" - } - }, - "MultiplexGroupSettings": { - "target": "com.amazonaws.medialive#MultiplexGroupSettings", + "ArchiveAllowedFlag": { + "target": "com.amazonaws.medialive#Scte35ArchiveAllowedFlag", "traits": { - "smithy.api#jsonName": "multiplexGroupSettings" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Corresponds to SCTE-35 archive_allowed_flag.", + "smithy.api#jsonName": "archiveAllowedFlag", + "smithy.api#required": {} } }, - "RtmpGroupSettings": { - "target": "com.amazonaws.medialive#RtmpGroupSettings", + "DeviceRestrictions": { + "target": "com.amazonaws.medialive#Scte35DeviceRestrictions", "traits": { - "smithy.api#jsonName": "rtmpGroupSettings" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Corresponds to SCTE-35 device_restrictions parameter.", + "smithy.api#jsonName": "deviceRestrictions", + "smithy.api#required": {} } }, - "UdpGroupSettings": { - "target": "com.amazonaws.medialive#UdpGroupSettings", + "NoRegionalBlackoutFlag": { + "target": "com.amazonaws.medialive#Scte35NoRegionalBlackoutFlag", "traits": { - "smithy.api#jsonName": "udpGroupSettings" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Corresponds to SCTE-35 no_regional_blackout_flag parameter.", + "smithy.api#jsonName": "noRegionalBlackoutFlag", + "smithy.api#required": {} } }, - "CmafIngestGroupSettings": { - "target": "com.amazonaws.medialive#CmafIngestGroupSettings", + "WebDeliveryAllowedFlag": { + "target": "com.amazonaws.medialive#Scte35WebDeliveryAllowedFlag", "traits": { - "smithy.api#jsonName": "cmafIngestGroupSettings" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Corresponds to SCTE-35 web_delivery_allowed_flag parameter.", + "smithy.api#jsonName": "webDeliveryAllowedFlag", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Output Group Settings" + "smithy.api#documentation": "Corresponds to SCTE-35 delivery_not_restricted_flag parameter. To declare delivery restrictions, include this element and its four \"restriction\" flags. To declare that there are no restrictions, omit this element." } }, - "com.amazonaws.medialive#OutputLocationRef": { + "com.amazonaws.medialive#Scte35Descriptor": { "type": "structure", "members": { - "DestinationRefId": { - "target": "com.amazonaws.medialive#__string", + "Scte35DescriptorSettings": { + "target": "com.amazonaws.medialive#Scte35DescriptorSettings", "traits": { - "smithy.api#jsonName": "destinationRefId" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "SCTE-35 Descriptor Settings.", + "smithy.api#jsonName": "scte35DescriptorSettings", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Reference to an OutputDestination ID defined in the channel" + "smithy.api#documentation": "Holds one set of SCTE-35 Descriptor Settings." } }, - "com.amazonaws.medialive#OutputLockingSettings": { + "com.amazonaws.medialive#Scte35DescriptorSettings": { "type": "structure", "members": { - "EpochLockingSettings": { - "target": "com.amazonaws.medialive#EpochLockingSettings", - "traits": { - "smithy.api#jsonName": "epochLockingSettings" - } - }, - "PipelineLockingSettings": { - "target": "com.amazonaws.medialive#PipelineLockingSettings", + "SegmentationDescriptorScte35DescriptorSettings": { + "target": "com.amazonaws.medialive#Scte35SegmentationDescriptor", "traits": { - "smithy.api#jsonName": "pipelineLockingSettings" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "SCTE-35 Segmentation Descriptor.", + "smithy.api#jsonName": "segmentationDescriptorScte35DescriptorSettings", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Output Locking Settings" + "smithy.api#documentation": "SCTE-35 Descriptor settings." } }, - "com.amazonaws.medialive#OutputSettings": { - "type": "structure", + "com.amazonaws.medialive#Scte35DeviceRestrictions": { + "type": "enum", "members": { - "ArchiveOutputSettings": { - "target": "com.amazonaws.medialive#ArchiveOutputSettings", - "traits": { - "smithy.api#jsonName": "archiveOutputSettings" - } - }, - "FrameCaptureOutputSettings": { - "target": "com.amazonaws.medialive#FrameCaptureOutputSettings", - "traits": { - "smithy.api#jsonName": "frameCaptureOutputSettings" - } - }, - "HlsOutputSettings": { - "target": "com.amazonaws.medialive#HlsOutputSettings", - "traits": { - "smithy.api#jsonName": "hlsOutputSettings" - } - }, - "MediaPackageOutputSettings": { - "target": "com.amazonaws.medialive#MediaPackageOutputSettings", - "traits": { - "smithy.api#jsonName": "mediaPackageOutputSettings" - } - }, - "MsSmoothOutputSettings": { - "target": "com.amazonaws.medialive#MsSmoothOutputSettings", - "traits": { - "smithy.api#jsonName": "msSmoothOutputSettings" - } - }, - "MultiplexOutputSettings": { - "target": "com.amazonaws.medialive#MultiplexOutputSettings", + "NONE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "multiplexOutputSettings" + "smithy.api#enumValue": "NONE" } }, - "RtmpOutputSettings": { - "target": "com.amazonaws.medialive#RtmpOutputSettings", + "RESTRICT_GROUP0": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "rtmpOutputSettings" + "smithy.api#enumValue": "RESTRICT_GROUP0" } }, - "UdpOutputSettings": { - "target": "com.amazonaws.medialive#UdpOutputSettings", + "RESTRICT_GROUP1": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "udpOutputSettings" + "smithy.api#enumValue": "RESTRICT_GROUP1" } }, - "CmafIngestOutputSettings": { - "target": "com.amazonaws.medialive#CmafIngestOutputSettings", + "RESTRICT_GROUP2": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "cmafIngestOutputSettings" + "smithy.api#enumValue": "RESTRICT_GROUP2" } } }, "traits": { - "smithy.api#documentation": "Output Settings" - } - }, - "com.amazonaws.medialive#PassThroughSettings": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Pass Through Settings" + "smithy.api#documentation": "Corresponds to the device_restrictions parameter in a segmentation_descriptor. If you include one of the \"restriction\" flags then you must include all four of them." } }, - "com.amazonaws.medialive#PauseStateScheduleActionSettings": { - "type": "structure", + "com.amazonaws.medialive#Scte35InputMode": { + "type": "enum", "members": { - "Pipelines": { - "target": "com.amazonaws.medialive#__listOfPipelinePauseStateSettings", + "FIXED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "pipelines" + "smithy.api#enumValue": "FIXED" + } + }, + "FOLLOW_ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FOLLOW_ACTIVE" } } }, "traits": { - "smithy.api#documentation": "Settings for the action to set pause state of a channel." + "smithy.api#documentation": "Whether the SCTE-35 input should be the active input or a fixed input." } }, - "com.amazonaws.medialive#PipelineDetail": { + "com.amazonaws.medialive#Scte35InputScheduleActionSettings": { "type": "structure", "members": { - "ActiveInputAttachmentName": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The name of the active input attachment currently being ingested by this pipeline.", - "smithy.api#jsonName": "activeInputAttachmentName" - } - }, - "ActiveInputSwitchActionName": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The name of the input switch schedule action that occurred most recently and that resulted in the switch to the current input attachment for this pipeline.", - "smithy.api#jsonName": "activeInputSwitchActionName" - } - }, - "ActiveMotionGraphicsActionName": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The name of the motion graphics activate action that occurred most recently and that resulted in the current graphics URI for this pipeline.", - "smithy.api#jsonName": "activeMotionGraphicsActionName" - } - }, - "ActiveMotionGraphicsUri": { + "InputAttachmentNameReference": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The current URI being used for HTML5 motion graphics for this pipeline.", - "smithy.api#jsonName": "activeMotionGraphicsUri" + "smithy.api#documentation": "In fixed mode, enter the name of the input attachment that you want to use as a SCTE-35 input. (Don't enter the ID of the input.)\"", + "smithy.api#jsonName": "inputAttachmentNameReference" } }, - "PipelineId": { - "target": "com.amazonaws.medialive#__string", + "Mode": { + "target": "com.amazonaws.medialive#Scte35InputMode", "traits": { - "smithy.api#documentation": "Pipeline ID", - "smithy.api#jsonName": "pipelineId" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Whether the SCTE-35 input should be the active input or a fixed input.", + "smithy.api#jsonName": "mode", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Runtime details of a pipeline when a channel is running." + "smithy.api#documentation": "Scte35Input Schedule Action Settings" } }, - "com.amazonaws.medialive#PipelineId": { + "com.amazonaws.medialive#Scte35NoRegionalBlackoutFlag": { "type": "enum", "members": { - "PIPELINE_0": { + "REGIONAL_BLACKOUT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PIPELINE_0" + "smithy.api#enumValue": "REGIONAL_BLACKOUT" } }, - "PIPELINE_1": { + "NO_REGIONAL_BLACKOUT": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PIPELINE_1" + "smithy.api#enumValue": "NO_REGIONAL_BLACKOUT" } } }, "traits": { - "smithy.api#documentation": "Pipeline ID" - } - }, - "com.amazonaws.medialive#PipelineLockingSettings": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Pipeline Locking Settings" + "smithy.api#documentation": "Corresponds to the no_regional_blackout_flag parameter. A value of REGIONAL_BLACKOUT corresponds to 0 (false) in the SCTE-35 specification. If you include one of the \"restriction\" flags then you must include all four of them." } }, - "com.amazonaws.medialive#PipelinePauseStateSettings": { + "com.amazonaws.medialive#Scte35ReturnToNetworkScheduleActionSettings": { "type": "structure", "members": { - "PipelineId": { - "target": "com.amazonaws.medialive#PipelineId", + "SpliceEventId": { + "target": "com.amazonaws.medialive#__longMin0Max4294967295", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Pipeline ID to pause (\"PIPELINE_0\" or \"PIPELINE_1\").", - "smithy.api#jsonName": "pipelineId", + "smithy.api#documentation": "The splice_event_id for the SCTE-35 splice_insert, as defined in SCTE-35.", + "smithy.api#jsonName": "spliceEventId", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Settings for pausing a pipeline." + "smithy.api#documentation": "Settings for a SCTE-35 return_to_network message." } }, - "com.amazonaws.medialive#PreferredChannelPipeline": { + "com.amazonaws.medialive#Scte35SegmentationCancelIndicator": { "type": "enum", "members": { - "CURRENTLY_ACTIVE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CURRENTLY_ACTIVE" - } - }, - "PIPELINE_0": { + "SEGMENTATION_EVENT_NOT_CANCELED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PIPELINE_0" + "smithy.api#enumValue": "SEGMENTATION_EVENT_NOT_CANCELED" } }, - "PIPELINE_1": { + "SEGMENTATION_EVENT_CANCELED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "PIPELINE_1" + "smithy.api#enumValue": "SEGMENTATION_EVENT_CANCELED" } } }, "traits": { - "smithy.api#documentation": "Indicates which pipeline is preferred by the multiplex for program ingest.\nIf set to \\\"PIPELINE_0\\\" or \\\"PIPELINE_1\\\" and an unhealthy ingest causes the multiplex to switch to the non-preferred pipeline,\nit will switch back once that ingest is healthy again. If set to \\\"CURRENTLY_ACTIVE\\\",\nit will not switch back to the other pipeline based on it recovering to a healthy state,\nit will only switch if the active pipeline becomes unhealthy." - } - }, - "com.amazonaws.medialive#PurchaseOffering": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#PurchaseOfferingRequest" - }, - "output": { - "target": "com.amazonaws.medialive#PurchaseOfferingResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ConflictException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" - }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" - }, - { - "target": "com.amazonaws.medialive#NotFoundException" - }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" - } - ], - "traits": { - "smithy.api#documentation": "Purchase an offering and create a reservation.", - "smithy.api#http": { - "method": "POST", - "uri": "/prod/offerings/{OfferingId}/purchase", - "code": 201 - } + "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_event_cancel_indicator. SEGMENTATION_EVENT_NOT_CANCELED corresponds to 0 in the SCTE-35 specification and indicates that this is an insertion request. SEGMENTATION_EVENT_CANCELED corresponds to 1 in the SCTE-35 specification and indicates that this is a cancelation request, in which case complete this field and the existing event ID to cancel." } }, - "com.amazonaws.medialive#PurchaseOfferingRequest": { + "com.amazonaws.medialive#Scte35SegmentationDescriptor": { "type": "structure", "members": { - "Count": { - "target": "com.amazonaws.medialive#__integerMin1", + "DeliveryRestrictions": { + "target": "com.amazonaws.medialive#Scte35DeliveryRestrictions", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Number of resources", - "smithy.api#jsonName": "count", - "smithy.api#required": {} + "smithy.api#documentation": "Holds the four SCTE-35 delivery restriction parameters.", + "smithy.api#jsonName": "deliveryRestrictions" } }, - "Name": { - "target": "com.amazonaws.medialive#__string", + "SegmentNum": { + "target": "com.amazonaws.medialive#__integerMin0Max255", "traits": { - "smithy.api#documentation": "Name for the new reservation", - "smithy.api#jsonName": "name" + "smithy.api#documentation": "Corresponds to SCTE-35 segment_num. A value that is valid for the specified segmentation_type_id.", + "smithy.api#jsonName": "segmentNum" } }, - "OfferingId": { - "target": "com.amazonaws.medialive#__string", + "SegmentationCancelIndicator": { + "target": "com.amazonaws.medialive#Scte35SegmentationCancelIndicator", "traits": { - "smithy.api#documentation": "Offering to purchase, e.g. '87654321'", - "smithy.api#httpLabel": {}, + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_event_cancel_indicator.", + "smithy.api#jsonName": "segmentationCancelIndicator", "smithy.api#required": {} } }, - "RenewalSettings": { - "target": "com.amazonaws.medialive#RenewalSettings", + "SegmentationDuration": { + "target": "com.amazonaws.medialive#__longMin0Max1099511627775", "traits": { - "smithy.api#documentation": "Renewal settings for the reservation", - "smithy.api#jsonName": "renewalSettings" + "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_duration. Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks, multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a duration, the time_signal will continue until you insert a cancellation message.", + "smithy.api#jsonName": "segmentationDuration" } }, - "RequestId": { - "target": "com.amazonaws.medialive#__string", + "SegmentationEventId": { + "target": "com.amazonaws.medialive#__longMin0Max4294967295", "traits": { - "smithy.api#documentation": "Unique request ID to be specified. This is needed to prevent retries from creating multiple resources.", - "smithy.api#idempotencyToken": {}, - "smithy.api#jsonName": "requestId" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_event_id.", + "smithy.api#jsonName": "segmentationEventId", + "smithy.api#required": {} } }, - "Start": { - "target": "com.amazonaws.medialive#__string", + "SegmentationTypeId": { + "target": "com.amazonaws.medialive#__integerMin0Max255", "traits": { - "smithy.api#documentation": "Requested reservation start time (UTC) in ISO-8601 format. The specified time must be between the first day of the current month and one year from now. If no value is given, the default is now.", - "smithy.api#jsonName": "start" + "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_type_id. One of the segmentation_type_id values listed in the SCTE-35 specification. On the console, enter the ID in decimal (for example, \"52\"). In the CLI, API, or an SDK, enter the ID in hex (for example, \"0x34\") or decimal (for example, \"52\").", + "smithy.api#jsonName": "segmentationTypeId" } }, - "Tags": { - "target": "com.amazonaws.medialive#Tags", + "SegmentationUpid": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "A collection of key-value pairs", - "smithy.api#jsonName": "tags" + "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_upid. Enter a string containing the hexadecimal representation of the characters that make up the SCTE-35 segmentation_upid value. Must contain an even number of hex characters. Do not include spaces between each hex pair. For example, the ASCII \"ADS Information\" becomes hex \"41445320496e666f726d6174696f6e.", + "smithy.api#jsonName": "segmentationUpid" } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for PurchaseOfferingRequest", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#PurchaseOfferingResponse": { - "type": "structure", - "members": { - "Reservation": { - "target": "com.amazonaws.medialive#Reservation", + }, + "SegmentationUpidType": { + "target": "com.amazonaws.medialive#__integerMin0Max255", "traits": { - "smithy.api#jsonName": "reservation" + "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_upid_type. On the console, enter one of the types listed in the SCTE-35 specification, converted to a decimal. For example, \"0x0C\" hex from the specification is \"12\" in decimal. In the CLI, API, or an SDK, enter one of the types listed in the SCTE-35 specification, in either hex (for example, \"0x0C\" ) or in decimal (for example, \"12\").", + "smithy.api#jsonName": "segmentationUpidType" } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for PurchaseOfferingResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#RawSettings": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Raw Settings" - } - }, - "com.amazonaws.medialive#RebootInputDevice": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#RebootInputDeviceRequest" - }, - "output": { - "target": "com.amazonaws.medialive#RebootInputDeviceResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" - }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" - }, - { - "target": "com.amazonaws.medialive#NotFoundException" }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" + "SegmentsExpected": { + "target": "com.amazonaws.medialive#__integerMin0Max255", + "traits": { + "smithy.api#documentation": "Corresponds to SCTE-35 segments_expected. A value that is valid for the specified segmentation_type_id.", + "smithy.api#jsonName": "segmentsExpected" + } }, - { - "target": "com.amazonaws.medialive#UnprocessableEntityException" - } - ], - "traits": { - "smithy.api#documentation": "Send a reboot command to the specified input device. The device will begin rebooting within a few seconds of sending the command. When the reboot is complete, the device’s connection status will change to connected.", - "smithy.api#http": { - "method": "POST", - "uri": "/prod/inputDevices/{InputDeviceId}/reboot", - "code": 200 - } - } - }, - "com.amazonaws.medialive#RebootInputDeviceForce": { - "type": "enum", - "members": { - "NO": { - "target": "smithy.api#Unit", + "SubSegmentNum": { + "target": "com.amazonaws.medialive#__integerMin0Max255", "traits": { - "smithy.api#enumValue": "NO" + "smithy.api#documentation": "Corresponds to SCTE-35 sub_segment_num. A value that is valid for the specified segmentation_type_id.", + "smithy.api#jsonName": "subSegmentNum" } }, - "YES": { - "target": "smithy.api#Unit", + "SubSegmentsExpected": { + "target": "com.amazonaws.medialive#__integerMin0Max255", "traits": { - "smithy.api#enumValue": "YES" + "smithy.api#documentation": "Corresponds to SCTE-35 sub_segments_expected. A value that is valid for the specified segmentation_type_id.", + "smithy.api#jsonName": "subSegmentsExpected" } } }, "traits": { - "smithy.api#documentation": "Whether or not to force reboot the input device." + "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_descriptor." } }, - "com.amazonaws.medialive#RebootInputDeviceRequest": { + "com.amazonaws.medialive#Scte35SpliceInsert": { "type": "structure", "members": { - "Force": { - "target": "com.amazonaws.medialive#RebootInputDeviceForce", + "AdAvailOffset": { + "target": "com.amazonaws.medialive#__integerMinNegative1000Max1000", "traits": { - "smithy.api#documentation": "Force a reboot of an input device. If the device is streaming, it will stop streaming and begin rebooting within a few seconds of sending the command. If the device was streaming prior to the reboot, the device will resume streaming when the reboot completes.", - "smithy.api#jsonName": "force" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "adAvailOffset" } }, - "InputDeviceId": { - "target": "com.amazonaws.medialive#__string", + "NoRegionalBlackoutFlag": { + "target": "com.amazonaws.medialive#Scte35SpliceInsertNoRegionalBlackoutBehavior", "traits": { - "smithy.api#documentation": "The unique ID of the input device to reboot. For example, hd-123456789abcdef.", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "When set to ignore, Segment Descriptors with noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates", + "smithy.api#jsonName": "noRegionalBlackoutFlag" + } + }, + "WebDeliveryAllowedFlag": { + "target": "com.amazonaws.medialive#Scte35SpliceInsertWebDeliveryAllowedBehavior", + "traits": { + "smithy.api#documentation": "When set to ignore, Segment Descriptors with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates", + "smithy.api#jsonName": "webDeliveryAllowedFlag" } } }, "traits": { - "smithy.api#documentation": "A request to reboot an AWS Elemental device.", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#RebootInputDeviceResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Placeholder documentation for RebootInputDeviceResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#Rec601Settings": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Rec601 Settings" - } - }, - "com.amazonaws.medialive#Rec709Settings": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Rec709 Settings" + "smithy.api#documentation": "Typical configuration that applies breaks on splice inserts in addition to time signal placement opportunities, breaks, and advertisements." } }, - "com.amazonaws.medialive#RejectInputDeviceTransfer": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#RejectInputDeviceTransferRequest" - }, - "output": { - "target": "com.amazonaws.medialive#RejectInputDeviceTransferResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ConflictException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" - }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" - }, - { - "target": "com.amazonaws.medialive#NotFoundException" - }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" - }, - { - "target": "com.amazonaws.medialive#UnprocessableEntityException" + "com.amazonaws.medialive#Scte35SpliceInsertNoRegionalBlackoutBehavior": { + "type": "enum", + "members": { + "FOLLOW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FOLLOW" + } + }, + "IGNORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IGNORE" + } } - ], + }, "traits": { - "smithy.api#documentation": "Reject the transfer of the specified input device to your AWS account.", - "smithy.api#http": { - "method": "POST", - "uri": "/prod/inputDevices/{InputDeviceId}/reject", - "code": 200 - } + "smithy.api#documentation": "Scte35 Splice Insert No Regional Blackout Behavior" } }, - "com.amazonaws.medialive#RejectInputDeviceTransferRequest": { + "com.amazonaws.medialive#Scte35SpliceInsertScheduleActionSettings": { "type": "structure", "members": { - "InputDeviceId": { - "target": "com.amazonaws.medialive#__string", + "Duration": { + "target": "com.amazonaws.medialive#__longMin0Max8589934591", "traits": { - "smithy.api#documentation": "The unique ID of the input device to reject. For example, hd-123456789abcdef.", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "Optional, the duration for the splice_insert, in 90 KHz ticks. To convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there is an expectation that the downstream system can read the duration and cue in at that time. If you do not enter a duration, the splice_insert will continue indefinitely and there is an expectation that you will enter a return_to_network to end the splice_insert at the appropriate time.", + "smithy.api#jsonName": "duration" + } + }, + "SpliceEventId": { + "target": "com.amazonaws.medialive#__longMin0Max4294967295", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The splice_event_id for the SCTE-35 splice_insert, as defined in SCTE-35.", + "smithy.api#jsonName": "spliceEventId", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for RejectInputDeviceTransferRequest", - "smithy.api#input": {} + "smithy.api#documentation": "Settings for a SCTE-35 splice_insert message." } }, - "com.amazonaws.medialive#RejectInputDeviceTransferResponse": { - "type": "structure", - "members": {}, + "com.amazonaws.medialive#Scte35SpliceInsertWebDeliveryAllowedBehavior": { + "type": "enum", + "members": { + "FOLLOW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FOLLOW" + } + }, + "IGNORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IGNORE" + } + } + }, "traits": { - "smithy.api#documentation": "Placeholder documentation for RejectInputDeviceTransferResponse", - "smithy.api#output": {} + "smithy.api#documentation": "Scte35 Splice Insert Web Delivery Allowed Behavior" } }, - "com.amazonaws.medialive#RemixSettings": { + "com.amazonaws.medialive#Scte35TimeSignalApos": { "type": "structure", "members": { - "ChannelMappings": { - "target": "com.amazonaws.medialive#__listOfAudioChannelMapping", + "AdAvailOffset": { + "target": "com.amazonaws.medialive#__integerMinNegative1000Max1000", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Mapping of input channels to output channels, with appropriate gain adjustments.", - "smithy.api#jsonName": "channelMappings", - "smithy.api#required": {} + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "adAvailOffset" } }, - "ChannelsIn": { - "target": "com.amazonaws.medialive#__integerMin1Max16", + "NoRegionalBlackoutFlag": { + "target": "com.amazonaws.medialive#Scte35AposNoRegionalBlackoutBehavior", "traits": { - "smithy.api#documentation": "Number of input channels to be used.", - "smithy.api#jsonName": "channelsIn" + "smithy.api#documentation": "When set to ignore, Segment Descriptors with noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates", + "smithy.api#jsonName": "noRegionalBlackoutFlag" } }, - "ChannelsOut": { - "target": "com.amazonaws.medialive#__integerMin1Max8", + "WebDeliveryAllowedFlag": { + "target": "com.amazonaws.medialive#Scte35AposWebDeliveryAllowedBehavior", "traits": { - "smithy.api#documentation": "Number of output channels to be produced.\nValid values: 1, 2, 4, 6, 8", - "smithy.api#jsonName": "channelsOut" + "smithy.api#documentation": "When set to ignore, Segment Descriptors with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates", + "smithy.api#jsonName": "webDeliveryAllowedFlag" } } }, "traits": { - "smithy.api#documentation": "Remix Settings" + "smithy.api#documentation": "Atypical configuration that applies segment breaks only on SCTE-35 time signal placement opportunities and breaks." } }, - "com.amazonaws.medialive#RenewalSettings": { + "com.amazonaws.medialive#Scte35TimeSignalScheduleActionSettings": { "type": "structure", "members": { - "AutomaticRenewal": { - "target": "com.amazonaws.medialive#ReservationAutomaticRenewal", + "Scte35Descriptors": { + "target": "com.amazonaws.medialive#__listOfScte35Descriptor", "traits": { - "smithy.api#documentation": "Automatic renewal status for the reservation", - "smithy.api#jsonName": "automaticRenewal" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The list of SCTE-35 descriptors accompanying the SCTE-35 time_signal.", + "smithy.api#jsonName": "scte35Descriptors", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Settings for a SCTE-35 time_signal." + } + }, + "com.amazonaws.medialive#Scte35Type": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" } }, - "RenewalCount": { - "target": "com.amazonaws.medialive#__integerMin1", + "SCTE_35_WITHOUT_SEGMENTATION": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Count for the reservation renewal", - "smithy.api#jsonName": "renewalCount" + "smithy.api#enumValue": "SCTE_35_WITHOUT_SEGMENTATION" } } }, "traits": { - "smithy.api#documentation": "The Renewal settings for Reservations" + "smithy.api#documentation": "Scte35 Type" } }, - "com.amazonaws.medialive#Reservation": { - "type": "structure", + "com.amazonaws.medialive#Scte35WebDeliveryAllowedFlag": { + "type": "enum", "members": { - "Arn": { - "target": "com.amazonaws.medialive#__string", + "WEB_DELIVERY_NOT_ALLOWED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Unique reservation ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'", - "smithy.api#jsonName": "arn" + "smithy.api#enumValue": "WEB_DELIVERY_NOT_ALLOWED" } }, - "Count": { - "target": "com.amazonaws.medialive#__integer", + "WEB_DELIVERY_ALLOWED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Number of reserved resources", - "smithy.api#jsonName": "count" + "smithy.api#enumValue": "WEB_DELIVERY_ALLOWED" } - }, - "CurrencyCode": { - "target": "com.amazonaws.medialive#__string", + } + }, + "traits": { + "smithy.api#documentation": "Corresponds to the web_delivery_allowed_flag parameter. A value of WEB_DELIVERY_NOT_ALLOWED corresponds to 0 (false) in the SCTE-35 specification. If you include one of the \"restriction\" flags then you must include all four of them." + } + }, + "com.amazonaws.medialive#SignalMapMonitorDeploymentStatus": { + "type": "enum", + "members": { + "NOT_DEPLOYED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'", - "smithy.api#jsonName": "currencyCode" + "smithy.api#enumValue": "NOT_DEPLOYED" } }, - "Duration": { - "target": "com.amazonaws.medialive#__integer", + "DRY_RUN_DEPLOYMENT_COMPLETE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Lease duration, e.g. '12'", - "smithy.api#jsonName": "duration" + "smithy.api#enumValue": "DRY_RUN_DEPLOYMENT_COMPLETE" } }, - "DurationUnits": { - "target": "com.amazonaws.medialive#OfferingDurationUnits", + "DRY_RUN_DEPLOYMENT_FAILED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Units for duration, e.g. 'MONTHS'", - "smithy.api#jsonName": "durationUnits" + "smithy.api#enumValue": "DRY_RUN_DEPLOYMENT_FAILED" } }, - "End": { - "target": "com.amazonaws.medialive#__string", + "DRY_RUN_DEPLOYMENT_IN_PROGRESS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Reservation UTC end date and time in ISO-8601 format, e.g. '2019-03-01T00:00:00'", - "smithy.api#jsonName": "end" + "smithy.api#enumValue": "DRY_RUN_DEPLOYMENT_IN_PROGRESS" } }, - "FixedPrice": { - "target": "com.amazonaws.medialive#__double", + "DEPLOYMENT_COMPLETE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering", - "smithy.api#jsonName": "fixedPrice" + "smithy.api#enumValue": "DEPLOYMENT_COMPLETE" } }, - "Name": { - "target": "com.amazonaws.medialive#__string", + "DEPLOYMENT_FAILED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "User specified reservation name", - "smithy.api#jsonName": "name" + "smithy.api#enumValue": "DEPLOYMENT_FAILED" } }, - "OfferingDescription": { - "target": "com.amazonaws.medialive#__string", + "DEPLOYMENT_IN_PROGRESS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'", - "smithy.api#jsonName": "offeringDescription" + "smithy.api#enumValue": "DEPLOYMENT_IN_PROGRESS" } }, - "OfferingId": { - "target": "com.amazonaws.medialive#__string", + "DELETE_COMPLETE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Unique offering ID, e.g. '87654321'", - "smithy.api#jsonName": "offeringId" + "smithy.api#enumValue": "DELETE_COMPLETE" } }, - "OfferingType": { - "target": "com.amazonaws.medialive#OfferingType", + "DELETE_FAILED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Offering type, e.g. 'NO_UPFRONT'", - "smithy.api#jsonName": "offeringType" + "smithy.api#enumValue": "DELETE_FAILED" } }, - "Region": { - "target": "com.amazonaws.medialive#__string", + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "AWS region, e.g. 'us-west-2'", - "smithy.api#jsonName": "region" + "smithy.api#enumValue": "DELETE_IN_PROGRESS" } - }, - "RenewalSettings": { - "target": "com.amazonaws.medialive#RenewalSettings", + } + }, + "traits": { + "smithy.api#documentation": "A signal map's monitor deployment status." + } + }, + "com.amazonaws.medialive#SignalMapStatus": { + "type": "enum", + "members": { + "CREATE_IN_PROGRESS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Renewal settings for the reservation", - "smithy.api#jsonName": "renewalSettings" + "smithy.api#enumValue": "CREATE_IN_PROGRESS" } }, - "ReservationId": { - "target": "com.amazonaws.medialive#__string", + "CREATE_COMPLETE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Unique reservation ID, e.g. '1234567'", - "smithy.api#jsonName": "reservationId" + "smithy.api#enumValue": "CREATE_COMPLETE" } }, - "ResourceSpecification": { - "target": "com.amazonaws.medialive#ReservationResourceSpecification", + "CREATE_FAILED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Resource configuration details", - "smithy.api#jsonName": "resourceSpecification" + "smithy.api#enumValue": "CREATE_FAILED" } }, - "Start": { - "target": "com.amazonaws.medialive#__string", + "UPDATE_IN_PROGRESS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Reservation UTC start date and time in ISO-8601 format, e.g. '2018-03-01T00:00:00'", - "smithy.api#jsonName": "start" + "smithy.api#enumValue": "UPDATE_IN_PROGRESS" } }, - "State": { - "target": "com.amazonaws.medialive#ReservationState", + "UPDATE_COMPLETE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Current state of reservation, e.g. 'ACTIVE'", - "smithy.api#jsonName": "state" + "smithy.api#enumValue": "UPDATE_COMPLETE" } }, - "Tags": { - "target": "com.amazonaws.medialive#Tags", + "UPDATE_REVERTED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "A collection of key-value pairs", - "smithy.api#jsonName": "tags" + "smithy.api#enumValue": "UPDATE_REVERTED" } }, - "UsagePrice": { - "target": "com.amazonaws.medialive#__double", - "traits": { - "smithy.api#documentation": "Recurring usage charge for each reserved resource, e.g. '157.0'", - "smithy.api#jsonName": "usagePrice" - } - } - }, - "traits": { - "smithy.api#documentation": "Reserved resources available to use" - } - }, - "com.amazonaws.medialive#ReservationAutomaticRenewal": { - "type": "enum", - "members": { - "DISABLED": { + "UPDATE_FAILED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "UPDATE_FAILED" } }, - "ENABLED": { + "READY": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "READY" } }, - "UNAVAILABLE": { + "NOT_READY": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "UNAVAILABLE" + "smithy.api#enumValue": "NOT_READY" } } }, "traits": { - "smithy.api#documentation": "Automatic Renewal Status for Reservation" + "smithy.api#documentation": "A signal map's current status which is dependent on its lifecycle actions or associated jobs." } }, - "com.amazonaws.medialive#ReservationCodec": { - "type": "enum", + "com.amazonaws.medialive#SignalMapSummary": { + "type": "structure", "members": { - "MPEG2": { - "target": "smithy.api#Unit", + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveSignalMap", "traits": { - "smithy.api#enumValue": "MPEG2" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A signal map's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn", + "smithy.api#required": {} } }, - "AVC": { - "target": "smithy.api#Unit", + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#enumValue": "AVC" + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "createdAt", + "smithy.api#required": {} } }, - "HEVC": { - "target": "smithy.api#Unit", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#enumValue": "HEVC" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "AUDIO": { - "target": "smithy.api#Unit", + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#enumValue": "AUDIO" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A signal map's id.", + "smithy.api#jsonName": "id", + "smithy.api#required": {} } }, - "LINK": { - "target": "smithy.api#Unit", + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#enumValue": "LINK" + "smithy.api#jsonName": "modifiedAt" + } + }, + "MonitorDeploymentStatus": { + "target": "com.amazonaws.medialive#SignalMapMonitorDeploymentStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "monitorDeploymentStatus", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.medialive#SignalMapStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "status", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.medialive#TagMap", + "traits": { + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "Codec, 'MPEG2', 'AVC', 'HEVC', or 'AUDIO'" + "smithy.api#documentation": "Placeholder documentation for SignalMapSummary" } }, - "com.amazonaws.medialive#ReservationMaximumBitrate": { + "com.amazonaws.medialive#SmoothGroupAudioOnlyTimecodeControl": { "type": "enum", "members": { - "MAX_10_MBPS": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "MAX_10_MBPS" - } - }, - "MAX_20_MBPS": { + "PASSTHROUGH": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MAX_20_MBPS" + "smithy.api#enumValue": "PASSTHROUGH" } }, - "MAX_50_MBPS": { + "USE_CONFIGURED_CLOCK": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MAX_50_MBPS" + "smithy.api#enumValue": "USE_CONFIGURED_CLOCK" } } }, "traits": { - "smithy.api#documentation": "Maximum bitrate in megabits per second" + "smithy.api#documentation": "Smooth Group Audio Only Timecode Control" } }, - "com.amazonaws.medialive#ReservationMaximumFramerate": { + "com.amazonaws.medialive#SmoothGroupCertificateMode": { "type": "enum", "members": { - "MAX_30_FPS": { + "SELF_SIGNED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MAX_30_FPS" + "smithy.api#enumValue": "SELF_SIGNED" } }, - "MAX_60_FPS": { + "VERIFY_AUTHENTICITY": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MAX_60_FPS" + "smithy.api#enumValue": "VERIFY_AUTHENTICITY" } } }, "traits": { - "smithy.api#documentation": "Maximum framerate in frames per second (Outputs only)" + "smithy.api#documentation": "Smooth Group Certificate Mode" } }, - "com.amazonaws.medialive#ReservationResolution": { + "com.amazonaws.medialive#SmoothGroupEventIdMode": { "type": "enum", "members": { - "SD": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SD" - } - }, - "HD": { + "NO_EVENT_ID": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "HD" + "smithy.api#enumValue": "NO_EVENT_ID" } }, - "FHD": { + "USE_CONFIGURED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FHD" + "smithy.api#enumValue": "USE_CONFIGURED" } }, - "UHD": { + "USE_TIMESTAMP": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "UHD" + "smithy.api#enumValue": "USE_TIMESTAMP" } } }, "traits": { - "smithy.api#documentation": "Resolution based on lines of vertical resolution; SD is less than 720 lines, HD is 720 to 1080 lines, FHD is 1080 lines, UHD is greater than 1080 lines" + "smithy.api#documentation": "Smooth Group Event Id Mode" } }, - "com.amazonaws.medialive#ReservationResourceSpecification": { - "type": "structure", + "com.amazonaws.medialive#SmoothGroupEventStopBehavior": { + "type": "enum", "members": { - "ChannelClass": { - "target": "com.amazonaws.medialive#ChannelClass", - "traits": { - "smithy.api#documentation": "Channel class, e.g. 'STANDARD'", - "smithy.api#jsonName": "channelClass" - } - }, - "Codec": { - "target": "com.amazonaws.medialive#ReservationCodec", - "traits": { - "smithy.api#documentation": "Codec, e.g. 'AVC'", - "smithy.api#jsonName": "codec" - } - }, - "MaximumBitrate": { - "target": "com.amazonaws.medialive#ReservationMaximumBitrate", - "traits": { - "smithy.api#documentation": "Maximum bitrate, e.g. 'MAX_20_MBPS'", - "smithy.api#jsonName": "maximumBitrate" - } - }, - "MaximumFramerate": { - "target": "com.amazonaws.medialive#ReservationMaximumFramerate", - "traits": { - "smithy.api#documentation": "Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)", - "smithy.api#jsonName": "maximumFramerate" - } - }, - "Resolution": { - "target": "com.amazonaws.medialive#ReservationResolution", + "NONE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Resolution, e.g. 'HD'", - "smithy.api#jsonName": "resolution" + "smithy.api#enumValue": "NONE" } }, - "ResourceType": { - "target": "com.amazonaws.medialive#ReservationResourceType", + "SEND_EOS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'", - "smithy.api#jsonName": "resourceType" + "smithy.api#enumValue": "SEND_EOS" } - }, - "SpecialFeature": { - "target": "com.amazonaws.medialive#ReservationSpecialFeature", + } + }, + "traits": { + "smithy.api#documentation": "Smooth Group Event Stop Behavior" + } + }, + "com.amazonaws.medialive#SmoothGroupSegmentationMode": { + "type": "enum", + "members": { + "USE_INPUT_SEGMENTATION": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)", - "smithy.api#jsonName": "specialFeature" + "smithy.api#enumValue": "USE_INPUT_SEGMENTATION" } }, - "VideoQuality": { - "target": "com.amazonaws.medialive#ReservationVideoQuality", + "USE_SEGMENT_DURATION": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Video quality, e.g. 'STANDARD' (Outputs only)", - "smithy.api#jsonName": "videoQuality" + "smithy.api#enumValue": "USE_SEGMENT_DURATION" } } }, "traits": { - "smithy.api#documentation": "Resource configuration (codec, resolution, bitrate, ...)" + "smithy.api#documentation": "Smooth Group Segmentation Mode" } }, - "com.amazonaws.medialive#ReservationResourceType": { + "com.amazonaws.medialive#SmoothGroupSparseTrackType": { "type": "enum", "members": { - "INPUT": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "INPUT" - } - }, - "OUTPUT": { + "NONE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "OUTPUT" + "smithy.api#enumValue": "NONE" } }, - "MULTIPLEX": { + "SCTE_35": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MULTIPLEX" + "smithy.api#enumValue": "SCTE_35" } }, - "CHANNEL": { + "SCTE_35_WITHOUT_SEGMENTATION": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CHANNEL" + "smithy.api#enumValue": "SCTE_35_WITHOUT_SEGMENTATION" } } }, "traits": { - "smithy.api#documentation": "Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'" + "smithy.api#documentation": "Smooth Group Sparse Track Type" } }, - "com.amazonaws.medialive#ReservationSpecialFeature": { + "com.amazonaws.medialive#SmoothGroupStreamManifestBehavior": { "type": "enum", "members": { - "ADVANCED_AUDIO": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ADVANCED_AUDIO" - } - }, - "AUDIO_NORMALIZATION": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AUDIO_NORMALIZATION" - } - }, - "MGHD": { + "DO_NOT_SEND": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MGHD" + "smithy.api#enumValue": "DO_NOT_SEND" } }, - "MGUHD": { + "SEND": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "MGUHD" + "smithy.api#enumValue": "SEND" } } }, "traits": { - "smithy.api#documentation": "Special features, 'ADVANCED_AUDIO' 'AUDIO_NORMALIZATION' 'MGHD' or 'MGUHD'" + "smithy.api#documentation": "Smooth Group Stream Manifest Behavior" } }, - "com.amazonaws.medialive#ReservationState": { + "com.amazonaws.medialive#SmoothGroupTimestampOffsetMode": { "type": "enum", "members": { - "ACTIVE": { + "USE_CONFIGURED_OFFSET": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ACTIVE" + "smithy.api#enumValue": "USE_CONFIGURED_OFFSET" } }, - "EXPIRED": { + "USE_EVENT_START_DATE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "EXPIRED" + "smithy.api#enumValue": "USE_EVENT_START_DATE" } - }, - "CANCELED": { + } + }, + "traits": { + "smithy.api#documentation": "Smooth Group Timestamp Offset Mode" + } + }, + "com.amazonaws.medialive#Smpte2038DataPreference": { + "type": "enum", + "members": { + "IGNORE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "CANCELED" + "smithy.api#enumValue": "IGNORE" } }, - "DELETED": { + "PREFER": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DELETED" + "smithy.api#enumValue": "PREFER" } } }, "traits": { - "smithy.api#documentation": "Current reservation state" + "smithy.api#documentation": "Smpte2038 Data Preference" } }, - "com.amazonaws.medialive#ReservationVideoQuality": { - "type": "enum", + "com.amazonaws.medialive#SmpteTtDestinationSettings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Smpte Tt Destination Settings" + } + }, + "com.amazonaws.medialive#StandardHlsSettings": { + "type": "structure", "members": { - "STANDARD": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "STANDARD" - } - }, - "ENHANCED": { - "target": "smithy.api#Unit", + "AudioRenditionSets": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "ENHANCED" + "smithy.api#documentation": "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 ','.", + "smithy.api#jsonName": "audioRenditionSets" } }, - "PREMIUM": { - "target": "smithy.api#Unit", + "M3u8Settings": { + "target": "com.amazonaws.medialive#M3u8Settings", "traits": { - "smithy.api#enumValue": "PREMIUM" + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "m3u8Settings", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Video quality, e.g. 'STANDARD' (Outputs only)" + "smithy.api#documentation": "Standard Hls Settings" } }, - "com.amazonaws.medialive#RestartChannelPipelines": { + "com.amazonaws.medialive#StartChannel": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#RestartChannelPipelinesRequest" + "target": "com.amazonaws.medialive#StartChannelRequest" }, "output": { - "target": "com.amazonaws.medialive#RestartChannelPipelinesResponse" + "target": "com.amazonaws.medialive#StartChannelResponse" }, "errors": [ { @@ -21165,39 +26211,32 @@ } ], "traits": { - "smithy.api#documentation": "Restart pipelines in one channel that is currently running.", + "smithy.api#documentation": "Starts an existing channel", "smithy.api#http": { "method": "POST", - "uri": "/prod/channels/{ChannelId}/restartChannelPipelines", + "uri": "/prod/channels/{ChannelId}/start", "code": 200 } } }, - "com.amazonaws.medialive#RestartChannelPipelinesRequest": { + "com.amazonaws.medialive#StartChannelRequest": { "type": "structure", "members": { "ChannelId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "ID of channel", + "smithy.api#documentation": "A request to start a channel", "smithy.api#httpLabel": {}, "smithy.api#required": {} } - }, - "PipelineIds": { - "target": "com.amazonaws.medialive#__listOfChannelPipelineIdToRestart", - "traits": { - "smithy.api#documentation": "An array of pipelines to restart in this channel. Format PIPELINE_0 or PIPELINE_1.", - "smithy.api#jsonName": "pipelineIds" - } } }, "traits": { - "smithy.api#documentation": "Pipelines to restart.", + "smithy.api#documentation": "Placeholder documentation for StartChannelRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#RestartChannelPipelinesResponse": { + "com.amazonaws.medialive#StartChannelResponse": { "type": "structure", "members": { "Arn": { @@ -21276,13 +26315,6 @@ "smithy.api#jsonName": "maintenance" } }, - "MaintenanceStatus": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The time in milliseconds by when the PVRE restart must occur.", - "smithy.api#jsonName": "maintenanceStatus" - } - }, "Name": { "target": "com.amazonaws.medialive#__string", "traits": { @@ -21311,1320 +26343,1155 @@ "smithy.api#jsonName": "roleArn" } }, - "State": { - "target": "com.amazonaws.medialive#ChannelState", - "traits": { - "smithy.api#jsonName": "state" - } - }, - "Tags": { - "target": "com.amazonaws.medialive#Tags", - "traits": { - "smithy.api#documentation": "A collection of key-value pairs.", - "smithy.api#jsonName": "tags" - } - }, - "Vpc": { - "target": "com.amazonaws.medialive#VpcOutputSettingsDescription", - "traits": { - "smithy.api#documentation": "Settings for VPC output", - "smithy.api#jsonName": "vpc" - } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for RestartChannelPipelinesResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#RtmpAdMarkers": { - "type": "enum", - "members": { - "ON_CUE_POINT_SCTE35": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ON_CUE_POINT_SCTE35" - } - } - }, - "traits": { - "smithy.api#documentation": "Rtmp Ad Markers" - } - }, - "com.amazonaws.medialive#RtmpCacheFullBehavior": { - "type": "enum", - "members": { - "DISCONNECT_IMMEDIATELY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DISCONNECT_IMMEDIATELY" - } - }, - "WAIT_FOR_SERVER": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "WAIT_FOR_SERVER" - } - } - }, - "traits": { - "smithy.api#documentation": "Rtmp Cache Full Behavior" - } - }, - "com.amazonaws.medialive#RtmpCaptionData": { - "type": "enum", - "members": { - "ALL": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ALL" - } - }, - "FIELD1_608": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "FIELD1_608" - } - }, - "FIELD1_AND_FIELD2_608": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "FIELD1_AND_FIELD2_608" - } - } - }, - "traits": { - "smithy.api#documentation": "Rtmp Caption Data" - } - }, - "com.amazonaws.medialive#RtmpCaptionInfoDestinationSettings": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Rtmp Caption Info Destination Settings" - } - }, - "com.amazonaws.medialive#RtmpGroupSettings": { - "type": "structure", - "members": { - "AdMarkers": { - "target": "com.amazonaws.medialive#__listOfRtmpAdMarkers", - "traits": { - "smithy.api#documentation": "Choose the ad marker type for this output group. MediaLive will create a message based on the content of each SCTE-35 message, format it for that marker type, and insert it in the datastream.", - "smithy.api#jsonName": "adMarkers" - } - }, - "AuthenticationScheme": { - "target": "com.amazonaws.medialive#AuthenticationScheme", - "traits": { - "smithy.api#documentation": "Authentication scheme to use when connecting with CDN", - "smithy.api#jsonName": "authenticationScheme" - } - }, - "CacheFullBehavior": { - "target": "com.amazonaws.medialive#RtmpCacheFullBehavior", - "traits": { - "smithy.api#documentation": "Controls behavior when content cache fills up. If remote origin server stalls the RTMP connection and does not accept content fast enough the 'Media Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache will stop accepting new content. If set to disconnectImmediately, the RTMP output will force a disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin accepting data again.", - "smithy.api#jsonName": "cacheFullBehavior" - } - }, - "CacheLength": { - "target": "com.amazonaws.medialive#__integerMin30", - "traits": { - "smithy.api#documentation": "Cache length, in seconds, is used to calculate buffer size.", - "smithy.api#jsonName": "cacheLength" - } - }, - "CaptionData": { - "target": "com.amazonaws.medialive#RtmpCaptionData", - "traits": { - "smithy.api#documentation": "Controls the types of data that passes to onCaptionInfo outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to 'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will be passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be passed.", - "smithy.api#jsonName": "captionData" - } - }, - "InputLossAction": { - "target": "com.amazonaws.medialive#InputLossActionForRtmpOut", - "traits": { - "smithy.api#documentation": "Controls the behavior of this RTMP group if input becomes unavailable.\n\n- emitOutput: Emit a slate until input returns.\n- pauseOutput: Stop transmitting data until input returns. This does not close the underlying RTMP connection.", - "smithy.api#jsonName": "inputLossAction" - } - }, - "RestartDelay": { - "target": "com.amazonaws.medialive#__integerMin0", - "traits": { - "smithy.api#documentation": "If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart.", - "smithy.api#jsonName": "restartDelay" - } - }, - "IncludeFillerNalUnits": { - "target": "com.amazonaws.medialive#IncludeFillerNalUnits", - "traits": { - "smithy.api#documentation": "Applies only when the rate control mode (in the codec settings) is CBR (constant bit rate). Controls whether the RTMP output stream is padded (with FILL NAL units) in order to achieve a constant bit rate that is truly constant. When there is no padding, the bandwidth varies (up to the bitrate value in the codec settings). We recommend that you choose Auto.", - "smithy.api#jsonName": "includeFillerNalUnits" - } - } - }, - "traits": { - "smithy.api#documentation": "Rtmp Group Settings" - } - }, - "com.amazonaws.medialive#RtmpOutputCertificateMode": { - "type": "enum", - "members": { - "SELF_SIGNED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SELF_SIGNED" - } - }, - "VERIFY_AUTHENTICITY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "VERIFY_AUTHENTICITY" - } - } - }, - "traits": { - "smithy.api#documentation": "Rtmp Output Certificate Mode" - } - }, - "com.amazonaws.medialive#RtmpOutputSettings": { - "type": "structure", - "members": { - "CertificateMode": { - "target": "com.amazonaws.medialive#RtmpOutputCertificateMode", - "traits": { - "smithy.api#documentation": "If set to verifyAuthenticity, verify the tls certificate chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed certificates to fail.", - "smithy.api#jsonName": "certificateMode" - } - }, - "ConnectionRetryInterval": { - "target": "com.amazonaws.medialive#__integerMin1", + "State": { + "target": "com.amazonaws.medialive#ChannelState", "traits": { - "smithy.api#documentation": "Number of seconds to wait before retrying a connection to the Flash Media server if the connection is lost.", - "smithy.api#jsonName": "connectionRetryInterval" + "smithy.api#jsonName": "state" } }, - "Destination": { - "target": "com.amazonaws.medialive#OutputLocationRef", + "Tags": { + "target": "com.amazonaws.medialive#Tags", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The RTMP endpoint excluding the stream name (eg. rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI fields accept format identifiers.", - "smithy.api#jsonName": "destination", - "smithy.api#required": {} + "smithy.api#documentation": "A collection of key-value pairs.", + "smithy.api#jsonName": "tags" } }, - "NumRetries": { - "target": "com.amazonaws.medialive#__integerMin0", + "Vpc": { + "target": "com.amazonaws.medialive#VpcOutputSettingsDescription", "traits": { - "smithy.api#documentation": "Number of retry attempts.", - "smithy.api#jsonName": "numRetries" + "smithy.api#documentation": "Settings for VPC output", + "smithy.api#jsonName": "vpc" } } }, "traits": { - "smithy.api#documentation": "Rtmp Output Settings" + "smithy.api#documentation": "Placeholder documentation for StartChannelResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#S3CannedAcl": { - "type": "enum", - "members": { - "AUTHENTICATED_READ": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AUTHENTICATED_READ" - } + "com.amazonaws.medialive#StartDeleteMonitorDeployment": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#StartDeleteMonitorDeploymentRequest" + }, + "output": { + "target": "com.amazonaws.medialive#StartDeleteMonitorDeploymentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "BUCKET_OWNER_FULL_CONTROL": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "BUCKET_OWNER_FULL_CONTROL" - } + { + "target": "com.amazonaws.medialive#ConflictException" }, - "BUCKET_OWNER_READ": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "BUCKET_OWNER_READ" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" }, - "PUBLIC_READ": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "PUBLIC_READ" - } + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" } - }, + ], "traits": { - "smithy.api#documentation": "S3 Canned Acl" + "smithy.api#documentation": "Initiates a deployment to delete the monitor of the specified signal map.", + "smithy.api#http": { + "method": "DELETE", + "uri": "/prod/signal-maps/{Identifier}/monitor-deployment", + "code": 202 + } } }, - "com.amazonaws.medialive#ScheduleAction": { + "com.amazonaws.medialive#StartDeleteMonitorDeploymentRequest": { "type": "structure", "members": { - "ActionName": { + "Identifier": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The name of the action, must be unique within the schedule. This name provides the main reference to an action once it is added to the schedule. A name is unique if it is no longer in the schedule. The schedule is automatically cleaned up to remove actions with a start time of more than 1 hour ago (approximately) so at that point a name can be reused.", - "smithy.api#jsonName": "actionName", - "smithy.api#required": {} - } - }, - "ScheduleActionSettings": { - "target": "com.amazonaws.medialive#ScheduleActionSettings", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Settings for this schedule action.", - "smithy.api#jsonName": "scheduleActionSettings", - "smithy.api#required": {} - } - }, - "ScheduleActionStartSettings": { - "target": "com.amazonaws.medialive#ScheduleActionStartSettings", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The time for the action to start in the channel.", - "smithy.api#jsonName": "scheduleActionStartSettings", + "smithy.api#documentation": "A signal map's identifier. Can be either be its id or current name.", + "smithy.api#httpLabel": {}, "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Contains information on a single schedule action." + "smithy.api#documentation": "Placeholder documentation for StartDeleteMonitorDeploymentRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#ScheduleActionSettings": { + "com.amazonaws.medialive#StartDeleteMonitorDeploymentResponse": { "type": "structure", "members": { - "HlsId3SegmentTaggingSettings": { - "target": "com.amazonaws.medialive#HlsId3SegmentTaggingScheduleActionSettings", + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveSignalMap", "traits": { - "smithy.api#documentation": "Action to insert HLS ID3 segment tagging", - "smithy.api#jsonName": "hlsId3SegmentTaggingSettings" + "smithy.api#documentation": "A signal map's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" } }, - "HlsTimedMetadataSettings": { - "target": "com.amazonaws.medialive#HlsTimedMetadataScheduleActionSettings", + "CloudWatchAlarmTemplateGroupIds": { + "target": "com.amazonaws.medialive#__listOf__stringMin7Max11PatternAws097", "traits": { - "smithy.api#documentation": "Action to insert HLS metadata", - "smithy.api#jsonName": "hlsTimedMetadataSettings" + "smithy.api#jsonName": "cloudWatchAlarmTemplateGroupIds" } }, - "InputPrepareSettings": { - "target": "com.amazonaws.medialive#InputPrepareScheduleActionSettings", + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#documentation": "Action to prepare an input for a future immediate input switch", - "smithy.api#jsonName": "inputPrepareSettings" + "smithy.api#jsonName": "createdAt" } }, - "InputSwitchSettings": { - "target": "com.amazonaws.medialive#InputSwitchScheduleActionSettings", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#documentation": "Action to switch the input", - "smithy.api#jsonName": "inputSwitchSettings" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "MotionGraphicsImageActivateSettings": { - "target": "com.amazonaws.medialive#MotionGraphicsActivateScheduleActionSettings", + "DiscoveryEntryPointArn": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", "traits": { - "smithy.api#documentation": "Action to activate a motion graphics image overlay", - "smithy.api#jsonName": "motionGraphicsImageActivateSettings" + "smithy.api#documentation": "A top-level supported AWS resource ARN to discovery a signal map from.", + "smithy.api#jsonName": "discoveryEntryPointArn" } }, - "MotionGraphicsImageDeactivateSettings": { - "target": "com.amazonaws.medialive#MotionGraphicsDeactivateScheduleActionSettings", + "ErrorMessage": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", "traits": { - "smithy.api#documentation": "Action to deactivate a motion graphics image overlay", - "smithy.api#jsonName": "motionGraphicsImageDeactivateSettings" + "smithy.api#documentation": "Error message associated with a failed creation or failed update attempt of a signal map.", + "smithy.api#jsonName": "errorMessage" } }, - "PauseStateSettings": { - "target": "com.amazonaws.medialive#PauseStateScheduleActionSettings", + "EventBridgeRuleTemplateGroupIds": { + "target": "com.amazonaws.medialive#__listOf__stringMin7Max11PatternAws097", "traits": { - "smithy.api#documentation": "Action to pause or unpause one or both channel pipelines", - "smithy.api#jsonName": "pauseStateSettings" + "smithy.api#jsonName": "eventBridgeRuleTemplateGroupIds" } }, - "Scte35InputSettings": { - "target": "com.amazonaws.medialive#Scte35InputScheduleActionSettings", + "FailedMediaResourceMap": { + "target": "com.amazonaws.medialive#FailedMediaResourceMap", "traits": { - "smithy.api#documentation": "Action to specify scte35 input", - "smithy.api#jsonName": "scte35InputSettings" + "smithy.api#jsonName": "failedMediaResourceMap" } }, - "Scte35ReturnToNetworkSettings": { - "target": "com.amazonaws.medialive#Scte35ReturnToNetworkScheduleActionSettings", + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#documentation": "Action to insert SCTE-35 return_to_network message", - "smithy.api#jsonName": "scte35ReturnToNetworkSettings" + "smithy.api#documentation": "A signal map's id.", + "smithy.api#jsonName": "id" } }, - "Scte35SpliceInsertSettings": { - "target": "com.amazonaws.medialive#Scte35SpliceInsertScheduleActionSettings", + "LastDiscoveredAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#documentation": "Action to insert SCTE-35 splice_insert message", - "smithy.api#jsonName": "scte35SpliceInsertSettings" + "smithy.api#jsonName": "lastDiscoveredAt" } }, - "Scte35TimeSignalSettings": { - "target": "com.amazonaws.medialive#Scte35TimeSignalScheduleActionSettings", + "LastSuccessfulMonitorDeployment": { + "target": "com.amazonaws.medialive#SuccessfulMonitorDeployment", "traits": { - "smithy.api#documentation": "Action to insert SCTE-35 time_signal message", - "smithy.api#jsonName": "scte35TimeSignalSettings" + "smithy.api#jsonName": "lastSuccessfulMonitorDeployment" } }, - "StaticImageActivateSettings": { - "target": "com.amazonaws.medialive#StaticImageActivateScheduleActionSettings", + "MediaResourceMap": { + "target": "com.amazonaws.medialive#MediaResourceMap", "traits": { - "smithy.api#documentation": "Action to activate a static image overlay", - "smithy.api#jsonName": "staticImageActivateSettings" + "smithy.api#jsonName": "mediaResourceMap" + } + }, + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "modifiedAt" + } + }, + "MonitorChangesPendingDeployment": { + "target": "com.amazonaws.medialive#__boolean", + "traits": { + "smithy.api#documentation": "If true, there are pending monitor changes for this signal map that can be deployed.", + "smithy.api#jsonName": "monitorChangesPendingDeployment" + } + }, + "MonitorDeployment": { + "target": "com.amazonaws.medialive#MonitorDeployment", + "traits": { + "smithy.api#jsonName": "monitorDeployment" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" } }, - "StaticImageDeactivateSettings": { - "target": "com.amazonaws.medialive#StaticImageDeactivateScheduleActionSettings", - "traits": { - "smithy.api#documentation": "Action to deactivate a static image overlay", - "smithy.api#jsonName": "staticImageDeactivateSettings" - } + "Status": { + "target": "com.amazonaws.medialive#SignalMapStatus", + "traits": { + "smithy.api#jsonName": "status" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#TagMap", + "traits": { + "smithy.api#jsonName": "tags" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for StartDeleteMonitorDeploymentResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#StartInputDevice": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#StartInputDeviceRequest" + }, + "output": { + "target": "com.amazonaws.medialive#StartInputDeviceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" + }, + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + }, + { + "target": "com.amazonaws.medialive#UnprocessableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "Start an input device that is attached to a MediaConnect flow. (There is no need to start a device that is attached to a MediaLive input; MediaLive starts the device when the channel starts.)", + "smithy.api#http": { + "method": "POST", + "uri": "/prod/inputDevices/{InputDeviceId}/start", + "code": 200 + } + } + }, + "com.amazonaws.medialive#StartInputDeviceMaintenanceWindow": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#StartInputDeviceMaintenanceWindowRequest" + }, + "output": { + "target": "com.amazonaws.medialive#StartInputDeviceMaintenanceWindowResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" + }, + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" }, - "StaticImageOutputActivateSettings": { - "target": "com.amazonaws.medialive#StaticImageOutputActivateScheduleActionSettings", - "traits": { - "smithy.api#documentation": "Action to activate a static image overlay in one or more specified outputs", - "smithy.api#jsonName": "staticImageOutputActivateSettings" - } + { + "target": "com.amazonaws.medialive#TooManyRequestsException" }, - "StaticImageOutputDeactivateSettings": { - "target": "com.amazonaws.medialive#StaticImageOutputDeactivateScheduleActionSettings", - "traits": { - "smithy.api#documentation": "Action to deactivate a static image overlay in one or more specified outputs", - "smithy.api#jsonName": "staticImageOutputDeactivateSettings" - } + { + "target": "com.amazonaws.medialive#UnprocessableEntityException" } - }, + ], "traits": { - "smithy.api#documentation": "Holds the settings for a single schedule action." + "smithy.api#documentation": "Start a maintenance window for the specified input device. Starting a maintenance window will give the device up to two hours to install software. If the device was streaming prior to the maintenance, it will resume streaming when the software is fully installed. Devices automatically install updates while they are powered on and their MediaLive channels are stopped. A maintenance window allows you to update a device without having to stop MediaLive channels that use the device. The device must remain powered on and connected to the internet for the duration of the maintenance.", + "smithy.api#http": { + "method": "POST", + "uri": "/prod/inputDevices/{InputDeviceId}/startInputDeviceMaintenanceWindow", + "code": 200 + } } }, - "com.amazonaws.medialive#ScheduleActionStartSettings": { + "com.amazonaws.medialive#StartInputDeviceMaintenanceWindowRequest": { "type": "structure", "members": { - "FixedModeScheduleActionStartSettings": { - "target": "com.amazonaws.medialive#FixedModeScheduleActionStartSettings", - "traits": { - "smithy.api#documentation": "Option for specifying the start time for an action.", - "smithy.api#jsonName": "fixedModeScheduleActionStartSettings" - } - }, - "FollowModeScheduleActionStartSettings": { - "target": "com.amazonaws.medialive#FollowModeScheduleActionStartSettings", - "traits": { - "smithy.api#documentation": "Option for specifying an action as relative to another action.", - "smithy.api#jsonName": "followModeScheduleActionStartSettings" - } - }, - "ImmediateModeScheduleActionStartSettings": { - "target": "com.amazonaws.medialive#ImmediateModeScheduleActionStartSettings", + "InputDeviceId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Option for specifying an action that should be applied immediately.", - "smithy.api#jsonName": "immediateModeScheduleActionStartSettings" + "smithy.api#documentation": "The unique ID of the input device to start a maintenance window for. For example, hd-123456789abcdef.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Settings to specify when an action should occur. Only one of the options must be selected." + "smithy.api#documentation": "Placeholder documentation for StartInputDeviceMaintenanceWindowRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#Scte20Convert608To708": { - "type": "enum", + "com.amazonaws.medialive#StartInputDeviceMaintenanceWindowResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Placeholder documentation for StartInputDeviceMaintenanceWindowResponse", + "smithy.api#output": {} + } + }, + "com.amazonaws.medialive#StartInputDeviceRequest": { + "type": "structure", "members": { - "DISABLED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DISABLED" - } - }, - "UPCONVERT": { - "target": "smithy.api#Unit", + "InputDeviceId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "UPCONVERT" + "smithy.api#documentation": "The unique ID of the input device to start. For example, hd-123456789abcdef.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Scte20 Convert608 To708" + "smithy.api#documentation": "Placeholder documentation for StartInputDeviceRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#Scte20PlusEmbeddedDestinationSettings": { + "com.amazonaws.medialive#StartInputDeviceResponse": { "type": "structure", "members": {}, "traits": { - "smithy.api#documentation": "Scte20 Plus Embedded Destination Settings" + "smithy.api#documentation": "Placeholder documentation for StartInputDeviceResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#Scte20SourceSettings": { + "com.amazonaws.medialive#StartMonitorDeployment": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#StartMonitorDeploymentRequest" + }, + "output": { + "target": "com.amazonaws.medialive#StartMonitorDeploymentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ConflictException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Initiates a deployment to deploy the latest monitor of the specified signal map.", + "smithy.api#http": { + "method": "POST", + "uri": "/prod/signal-maps/{Identifier}/monitor-deployment", + "code": 202 + } + } + }, + "com.amazonaws.medialive#StartMonitorDeploymentRequest": { "type": "structure", "members": { - "Convert608To708": { - "target": "com.amazonaws.medialive#Scte20Convert608To708", + "DryRun": { + "target": "com.amazonaws.medialive#__boolean", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "convert608To708" + "smithy.api#jsonName": "dryRun" } }, - "Source608ChannelNumber": { - "target": "com.amazonaws.medialive#__integerMin1Max4", + "Identifier": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough.", - "smithy.api#jsonName": "source608ChannelNumber" + "smithy.api#documentation": "A signal map's identifier. Can be either be its id or current name.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Scte20 Source Settings" + "smithy.api#documentation": "Placeholder documentation for StartMonitorDeploymentRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#Scte27DestinationSettings": { + "com.amazonaws.medialive#StartMonitorDeploymentResponse": { "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Scte27 Destination Settings" - } - }, - "com.amazonaws.medialive#Scte27OcrLanguage": { - "type": "enum", "members": { - "DEU": { - "target": "smithy.api#Unit", + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveSignalMap", "traits": { - "smithy.api#enumValue": "DEU" + "smithy.api#documentation": "A signal map's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" } }, - "ENG": { - "target": "smithy.api#Unit", + "CloudWatchAlarmTemplateGroupIds": { + "target": "com.amazonaws.medialive#__listOf__stringMin7Max11PatternAws097", "traits": { - "smithy.api#enumValue": "ENG" + "smithy.api#jsonName": "cloudWatchAlarmTemplateGroupIds" } }, - "FRA": { - "target": "smithy.api#Unit", + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#enumValue": "FRA" + "smithy.api#jsonName": "createdAt" } }, - "NLD": { - "target": "smithy.api#Unit", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#enumValue": "NLD" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "POR": { - "target": "smithy.api#Unit", + "DiscoveryEntryPointArn": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", "traits": { - "smithy.api#enumValue": "POR" + "smithy.api#documentation": "A top-level supported AWS resource ARN to discovery a signal map from.", + "smithy.api#jsonName": "discoveryEntryPointArn" } }, - "SPA": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SPA" - } - } - }, - "traits": { - "smithy.api#documentation": "Scte27 Ocr Language" - } - }, - "com.amazonaws.medialive#Scte27SourceSettings": { - "type": "structure", - "members": { - "OcrLanguage": { - "target": "com.amazonaws.medialive#Scte27OcrLanguage", + "ErrorMessage": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", "traits": { - "smithy.api#documentation": "If you will configure a WebVTT caption description that references this caption selector, use this field to\nprovide the language to consider when translating the image-based source to text.", - "smithy.api#jsonName": "ocrLanguage" + "smithy.api#documentation": "Error message associated with a failed creation or failed update attempt of a signal map.", + "smithy.api#jsonName": "errorMessage" } }, - "Pid": { - "target": "com.amazonaws.medialive#__integerMin1", - "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "pid" - } - } - }, - "traits": { - "smithy.api#documentation": "Scte27 Source Settings" - } - }, - "com.amazonaws.medialive#Scte35AposNoRegionalBlackoutBehavior": { - "type": "enum", - "members": { - "FOLLOW": { - "target": "smithy.api#Unit", + "EventBridgeRuleTemplateGroupIds": { + "target": "com.amazonaws.medialive#__listOf__stringMin7Max11PatternAws097", "traits": { - "smithy.api#enumValue": "FOLLOW" + "smithy.api#jsonName": "eventBridgeRuleTemplateGroupIds" } }, - "IGNORE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "IGNORE" - } - } - }, - "traits": { - "smithy.api#documentation": "Scte35 Apos No Regional Blackout Behavior" - } - }, - "com.amazonaws.medialive#Scte35AposWebDeliveryAllowedBehavior": { - "type": "enum", - "members": { - "FOLLOW": { - "target": "smithy.api#Unit", + "FailedMediaResourceMap": { + "target": "com.amazonaws.medialive#FailedMediaResourceMap", "traits": { - "smithy.api#enumValue": "FOLLOW" + "smithy.api#jsonName": "failedMediaResourceMap" } }, - "IGNORE": { - "target": "smithy.api#Unit", + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#enumValue": "IGNORE" + "smithy.api#documentation": "A signal map's id.", + "smithy.api#jsonName": "id" } - } - }, - "traits": { - "smithy.api#documentation": "Scte35 Apos Web Delivery Allowed Behavior" - } - }, - "com.amazonaws.medialive#Scte35ArchiveAllowedFlag": { - "type": "enum", - "members": { - "ARCHIVE_NOT_ALLOWED": { - "target": "smithy.api#Unit", + }, + "LastDiscoveredAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#enumValue": "ARCHIVE_NOT_ALLOWED" + "smithy.api#jsonName": "lastDiscoveredAt" } }, - "ARCHIVE_ALLOWED": { - "target": "smithy.api#Unit", + "LastSuccessfulMonitorDeployment": { + "target": "com.amazonaws.medialive#SuccessfulMonitorDeployment", "traits": { - "smithy.api#enumValue": "ARCHIVE_ALLOWED" + "smithy.api#jsonName": "lastSuccessfulMonitorDeployment" } - } - }, - "traits": { - "smithy.api#documentation": "Corresponds to the archive_allowed parameter. A value of ARCHIVE_NOT_ALLOWED corresponds to 0 (false) in the SCTE-35 specification. If you include one of the \"restriction\" flags then you must include all four of them." - } - }, - "com.amazonaws.medialive#Scte35DeliveryRestrictions": { - "type": "structure", - "members": { - "ArchiveAllowedFlag": { - "target": "com.amazonaws.medialive#Scte35ArchiveAllowedFlag", + }, + "MediaResourceMap": { + "target": "com.amazonaws.medialive#MediaResourceMap", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Corresponds to SCTE-35 archive_allowed_flag.", - "smithy.api#jsonName": "archiveAllowedFlag", - "smithy.api#required": {} + "smithy.api#jsonName": "mediaResourceMap" } }, - "DeviceRestrictions": { - "target": "com.amazonaws.medialive#Scte35DeviceRestrictions", + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Corresponds to SCTE-35 device_restrictions parameter.", - "smithy.api#jsonName": "deviceRestrictions", - "smithy.api#required": {} + "smithy.api#jsonName": "modifiedAt" } }, - "NoRegionalBlackoutFlag": { - "target": "com.amazonaws.medialive#Scte35NoRegionalBlackoutFlag", + "MonitorChangesPendingDeployment": { + "target": "com.amazonaws.medialive#__boolean", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Corresponds to SCTE-35 no_regional_blackout_flag parameter.", - "smithy.api#jsonName": "noRegionalBlackoutFlag", - "smithy.api#required": {} + "smithy.api#documentation": "If true, there are pending monitor changes for this signal map that can be deployed.", + "smithy.api#jsonName": "monitorChangesPendingDeployment" } }, - "WebDeliveryAllowedFlag": { - "target": "com.amazonaws.medialive#Scte35WebDeliveryAllowedFlag", + "MonitorDeployment": { + "target": "com.amazonaws.medialive#MonitorDeployment", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Corresponds to SCTE-35 web_delivery_allowed_flag parameter.", - "smithy.api#jsonName": "webDeliveryAllowedFlag", - "smithy.api#required": {} + "smithy.api#jsonName": "monitorDeployment" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" + } + }, + "Status": { + "target": "com.amazonaws.medialive#SignalMapStatus", + "traits": { + "smithy.api#jsonName": "status" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#TagMap", + "traits": { + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "Corresponds to SCTE-35 delivery_not_restricted_flag parameter. To declare delivery restrictions, include this element and its four \"restriction\" flags. To declare that there are no restrictions, omit this element." + "smithy.api#documentation": "Placeholder documentation for StartMonitorDeploymentResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#Scte35Descriptor": { - "type": "structure", - "members": { - "Scte35DescriptorSettings": { - "target": "com.amazonaws.medialive#Scte35DescriptorSettings", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "SCTE-35 Descriptor Settings.", - "smithy.api#jsonName": "scte35DescriptorSettings", - "smithy.api#required": {} - } - } + "com.amazonaws.medialive#StartMultiplex": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#StartMultiplexRequest" + }, + "output": { + "target": "com.amazonaws.medialive#StartMultiplexResponse" }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" + }, + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ConflictException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], "traits": { - "smithy.api#documentation": "Holds one set of SCTE-35 Descriptor Settings." + "smithy.api#documentation": "Start (run) the multiplex. Starting the multiplex does not start the channels. You must explicitly start each channel.", + "smithy.api#http": { + "method": "POST", + "uri": "/prod/multiplexes/{MultiplexId}/start", + "code": 202 + } } }, - "com.amazonaws.medialive#Scte35DescriptorSettings": { + "com.amazonaws.medialive#StartMultiplexRequest": { "type": "structure", "members": { - "SegmentationDescriptorScte35DescriptorSettings": { - "target": "com.amazonaws.medialive#Scte35SegmentationDescriptor", + "MultiplexId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "SCTE-35 Segmentation Descriptor.", - "smithy.api#jsonName": "segmentationDescriptorScte35DescriptorSettings", + "smithy.api#documentation": "The ID of the multiplex.", + "smithy.api#httpLabel": {}, "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "SCTE-35 Descriptor settings." + "smithy.api#documentation": "Placeholder documentation for StartMultiplexRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#Scte35DeviceRestrictions": { - "type": "enum", + "com.amazonaws.medialive#StartMultiplexResponse": { + "type": "structure", "members": { - "NONE": { - "target": "smithy.api#Unit", + "Arn": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#documentation": "The unique arn of the multiplex.", + "smithy.api#jsonName": "arn" } }, - "RESTRICT_GROUP0": { - "target": "smithy.api#Unit", + "AvailabilityZones": { + "target": "com.amazonaws.medialive#__listOf__string", "traits": { - "smithy.api#enumValue": "RESTRICT_GROUP0" + "smithy.api#documentation": "A list of availability zones for the multiplex.", + "smithy.api#jsonName": "availabilityZones" } }, - "RESTRICT_GROUP1": { - "target": "smithy.api#Unit", + "Destinations": { + "target": "com.amazonaws.medialive#__listOfMultiplexOutputDestination", "traits": { - "smithy.api#enumValue": "RESTRICT_GROUP1" + "smithy.api#documentation": "A list of the multiplex output destinations.", + "smithy.api#jsonName": "destinations" } }, - "RESTRICT_GROUP2": { - "target": "smithy.api#Unit", + "Id": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "RESTRICT_GROUP2" + "smithy.api#documentation": "The unique id of the multiplex.", + "smithy.api#jsonName": "id" } - } - }, - "traits": { - "smithy.api#documentation": "Corresponds to the device_restrictions parameter in a segmentation_descriptor. If you include one of the \"restriction\" flags then you must include all four of them." - } - }, - "com.amazonaws.medialive#Scte35InputMode": { - "type": "enum", - "members": { - "FIXED": { - "target": "smithy.api#Unit", + }, + "MultiplexSettings": { + "target": "com.amazonaws.medialive#MultiplexSettings", "traits": { - "smithy.api#enumValue": "FIXED" + "smithy.api#documentation": "Configuration for a multiplex event.", + "smithy.api#jsonName": "multiplexSettings" } }, - "FOLLOW_ACTIVE": { - "target": "smithy.api#Unit", + "Name": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "FOLLOW_ACTIVE" + "smithy.api#documentation": "The name of the multiplex.", + "smithy.api#jsonName": "name" } - } - }, - "traits": { - "smithy.api#documentation": "Whether the SCTE-35 input should be the active input or a fixed input." - } - }, - "com.amazonaws.medialive#Scte35InputScheduleActionSettings": { - "type": "structure", - "members": { - "InputAttachmentNameReference": { - "target": "com.amazonaws.medialive#__string", + }, + "PipelinesRunningCount": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#documentation": "In fixed mode, enter the name of the input attachment that you want to use as a SCTE-35 input. (Don't enter the ID of the input.)\"", - "smithy.api#jsonName": "inputAttachmentNameReference" + "smithy.api#documentation": "The number of currently healthy pipelines.", + "smithy.api#jsonName": "pipelinesRunningCount" } }, - "Mode": { - "target": "com.amazonaws.medialive#Scte35InputMode", + "ProgramCount": { + "target": "com.amazonaws.medialive#__integer", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Whether the SCTE-35 input should be the active input or a fixed input.", - "smithy.api#jsonName": "mode", - "smithy.api#required": {} + "smithy.api#documentation": "The number of programs in the multiplex.", + "smithy.api#jsonName": "programCount" } - } - }, - "traits": { - "smithy.api#documentation": "Scte35Input Schedule Action Settings" - } - }, - "com.amazonaws.medialive#Scte35NoRegionalBlackoutFlag": { - "type": "enum", - "members": { - "REGIONAL_BLACKOUT": { - "target": "smithy.api#Unit", + }, + "State": { + "target": "com.amazonaws.medialive#MultiplexState", "traits": { - "smithy.api#enumValue": "REGIONAL_BLACKOUT" + "smithy.api#documentation": "The current state of the multiplex.", + "smithy.api#jsonName": "state" } }, - "NO_REGIONAL_BLACKOUT": { - "target": "smithy.api#Unit", + "Tags": { + "target": "com.amazonaws.medialive#Tags", "traits": { - "smithy.api#enumValue": "NO_REGIONAL_BLACKOUT" + "smithy.api#documentation": "A collection of key-value pairs.", + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "Corresponds to the no_regional_blackout_flag parameter. A value of REGIONAL_BLACKOUT corresponds to 0 (false) in the SCTE-35 specification. If you include one of the \"restriction\" flags then you must include all four of them." + "smithy.api#documentation": "Placeholder documentation for StartMultiplexResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#Scte35ReturnToNetworkScheduleActionSettings": { + "com.amazonaws.medialive#StartTimecode": { "type": "structure", "members": { - "SpliceEventId": { - "target": "com.amazonaws.medialive#__longMin0Max4294967295", + "Timecode": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The splice_event_id for the SCTE-35 splice_insert, as defined in SCTE-35.", - "smithy.api#jsonName": "spliceEventId", - "smithy.api#required": {} + "smithy.api#documentation": "The timecode for the frame where you want to start the clip. Optional; if not specified, the clip starts at first frame in the file. Enter the timecode as HH:MM:SS:FF or HH:MM:SS;FF.", + "smithy.api#jsonName": "timecode" } } }, "traits": { - "smithy.api#documentation": "Settings for a SCTE-35 return_to_network message." + "smithy.api#documentation": "Settings to identify the start of the clip." + } + }, + "com.amazonaws.medialive#StartUpdateSignalMap": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#StartUpdateSignalMapRequest" + }, + "output": { + "target": "com.amazonaws.medialive#StartUpdateSignalMapResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ConflictException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Initiates an update for the specified signal map. Will discover a new signal map if a changed discoveryEntryPointArn is provided.", + "smithy.api#http": { + "method": "PATCH", + "uri": "/prod/signal-maps/{Identifier}", + "code": 202 + } } }, - "com.amazonaws.medialive#Scte35SegmentationCancelIndicator": { - "type": "enum", + "com.amazonaws.medialive#StartUpdateSignalMapRequest": { + "type": "structure", "members": { - "SEGMENTATION_EVENT_NOT_CANCELED": { - "target": "smithy.api#Unit", + "CloudWatchAlarmTemplateGroupIdentifiers": { + "target": "com.amazonaws.medialive#__listOf__stringPatternS", "traits": { - "smithy.api#enumValue": "SEGMENTATION_EVENT_NOT_CANCELED" + "smithy.api#jsonName": "cloudWatchAlarmTemplateGroupIdentifiers" } }, - "SEGMENTATION_EVENT_CANCELED": { - "target": "smithy.api#Unit", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#enumValue": "SEGMENTATION_EVENT_CANCELED" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" + } + }, + "DiscoveryEntryPointArn": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", + "traits": { + "smithy.api#documentation": "A top-level supported AWS resource ARN to discovery a signal map from.", + "smithy.api#jsonName": "discoveryEntryPointArn" + } + }, + "EventBridgeRuleTemplateGroupIdentifiers": { + "target": "com.amazonaws.medialive#__listOf__stringPatternS", + "traits": { + "smithy.api#jsonName": "eventBridgeRuleTemplateGroupIdentifiers" + } + }, + "ForceRediscovery": { + "target": "com.amazonaws.medialive#__boolean", + "traits": { + "smithy.api#documentation": "If true, will force a rediscovery of a signal map if an unchanged discoveryEntryPointArn is provided.", + "smithy.api#jsonName": "forceRediscovery" + } + }, + "Identifier": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "A signal map's identifier. Can be either be its id or current name.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" } } }, "traits": { - "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_event_cancel_indicator. SEGMENTATION_EVENT_NOT_CANCELED corresponds to 0 in the SCTE-35 specification and indicates that this is an insertion request. SEGMENTATION_EVENT_CANCELED corresponds to 1 in the SCTE-35 specification and indicates that this is a cancelation request, in which case complete this field and the existing event ID to cancel." + "smithy.api#documentation": "Placeholder documentation for StartUpdateSignalMapRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#Scte35SegmentationDescriptor": { + "com.amazonaws.medialive#StartUpdateSignalMapResponse": { "type": "structure", "members": { - "DeliveryRestrictions": { - "target": "com.amazonaws.medialive#Scte35DeliveryRestrictions", + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveSignalMap", "traits": { - "smithy.api#documentation": "Holds the four SCTE-35 delivery restriction parameters.", - "smithy.api#jsonName": "deliveryRestrictions" + "smithy.api#documentation": "A signal map's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" } }, - "SegmentNum": { - "target": "com.amazonaws.medialive#__integerMin0Max255", + "CloudWatchAlarmTemplateGroupIds": { + "target": "com.amazonaws.medialive#__listOf__stringMin7Max11PatternAws097", "traits": { - "smithy.api#documentation": "Corresponds to SCTE-35 segment_num. A value that is valid for the specified segmentation_type_id.", - "smithy.api#jsonName": "segmentNum" + "smithy.api#jsonName": "cloudWatchAlarmTemplateGroupIds" } }, - "SegmentationCancelIndicator": { - "target": "com.amazonaws.medialive#Scte35SegmentationCancelIndicator", + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_event_cancel_indicator.", - "smithy.api#jsonName": "segmentationCancelIndicator", - "smithy.api#required": {} + "smithy.api#jsonName": "createdAt" } }, - "SegmentationDuration": { - "target": "com.amazonaws.medialive#__longMin0Max1099511627775", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_duration. Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks, multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a duration, the time_signal will continue until you insert a cancellation message.", - "smithy.api#jsonName": "segmentationDuration" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "SegmentationEventId": { - "target": "com.amazonaws.medialive#__longMin0Max4294967295", + "DiscoveryEntryPointArn": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_event_id.", - "smithy.api#jsonName": "segmentationEventId", - "smithy.api#required": {} + "smithy.api#documentation": "A top-level supported AWS resource ARN to discovery a signal map from.", + "smithy.api#jsonName": "discoveryEntryPointArn" } }, - "SegmentationTypeId": { - "target": "com.amazonaws.medialive#__integerMin0Max255", + "ErrorMessage": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", "traits": { - "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_type_id. One of the segmentation_type_id values listed in the SCTE-35 specification. On the console, enter the ID in decimal (for example, \"52\"). In the CLI, API, or an SDK, enter the ID in hex (for example, \"0x34\") or decimal (for example, \"52\").", - "smithy.api#jsonName": "segmentationTypeId" + "smithy.api#documentation": "Error message associated with a failed creation or failed update attempt of a signal map.", + "smithy.api#jsonName": "errorMessage" } }, - "SegmentationUpid": { - "target": "com.amazonaws.medialive#__string", + "EventBridgeRuleTemplateGroupIds": { + "target": "com.amazonaws.medialive#__listOf__stringMin7Max11PatternAws097", "traits": { - "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_upid. Enter a string containing the hexadecimal representation of the characters that make up the SCTE-35 segmentation_upid value. Must contain an even number of hex characters. Do not include spaces between each hex pair. For example, the ASCII \"ADS Information\" becomes hex \"41445320496e666f726d6174696f6e.", - "smithy.api#jsonName": "segmentationUpid" + "smithy.api#jsonName": "eventBridgeRuleTemplateGroupIds" } }, - "SegmentationUpidType": { - "target": "com.amazonaws.medialive#__integerMin0Max255", + "FailedMediaResourceMap": { + "target": "com.amazonaws.medialive#FailedMediaResourceMap", "traits": { - "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_upid_type. On the console, enter one of the types listed in the SCTE-35 specification, converted to a decimal. For example, \"0x0C\" hex from the specification is \"12\" in decimal. In the CLI, API, or an SDK, enter one of the types listed in the SCTE-35 specification, in either hex (for example, \"0x0C\" ) or in decimal (for example, \"12\").", - "smithy.api#jsonName": "segmentationUpidType" + "smithy.api#jsonName": "failedMediaResourceMap" } }, - "SegmentsExpected": { - "target": "com.amazonaws.medialive#__integerMin0Max255", + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#documentation": "Corresponds to SCTE-35 segments_expected. A value that is valid for the specified segmentation_type_id.", - "smithy.api#jsonName": "segmentsExpected" + "smithy.api#documentation": "A signal map's id.", + "smithy.api#jsonName": "id" } }, - "SubSegmentNum": { - "target": "com.amazonaws.medialive#__integerMin0Max255", + "LastDiscoveredAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#documentation": "Corresponds to SCTE-35 sub_segment_num. A value that is valid for the specified segmentation_type_id.", - "smithy.api#jsonName": "subSegmentNum" + "smithy.api#jsonName": "lastDiscoveredAt" } }, - "SubSegmentsExpected": { - "target": "com.amazonaws.medialive#__integerMin0Max255", + "LastSuccessfulMonitorDeployment": { + "target": "com.amazonaws.medialive#SuccessfulMonitorDeployment", "traits": { - "smithy.api#documentation": "Corresponds to SCTE-35 sub_segments_expected. A value that is valid for the specified segmentation_type_id.", - "smithy.api#jsonName": "subSegmentsExpected" + "smithy.api#jsonName": "lastSuccessfulMonitorDeployment" } - } - }, - "traits": { - "smithy.api#documentation": "Corresponds to SCTE-35 segmentation_descriptor." - } - }, - "com.amazonaws.medialive#Scte35SpliceInsert": { - "type": "structure", - "members": { - "AdAvailOffset": { - "target": "com.amazonaws.medialive#__integerMinNegative1000Max1000", + }, + "MediaResourceMap": { + "target": "com.amazonaws.medialive#MediaResourceMap", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "adAvailOffset" + "smithy.api#jsonName": "mediaResourceMap" } }, - "NoRegionalBlackoutFlag": { - "target": "com.amazonaws.medialive#Scte35SpliceInsertNoRegionalBlackoutBehavior", + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#documentation": "When set to ignore, Segment Descriptors with noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates", - "smithy.api#jsonName": "noRegionalBlackoutFlag" + "smithy.api#jsonName": "modifiedAt" } }, - "WebDeliveryAllowedFlag": { - "target": "com.amazonaws.medialive#Scte35SpliceInsertWebDeliveryAllowedBehavior", + "MonitorChangesPendingDeployment": { + "target": "com.amazonaws.medialive#__boolean", "traits": { - "smithy.api#documentation": "When set to ignore, Segment Descriptors with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates", - "smithy.api#jsonName": "webDeliveryAllowedFlag" + "smithy.api#documentation": "If true, there are pending monitor changes for this signal map that can be deployed.", + "smithy.api#jsonName": "monitorChangesPendingDeployment" } - } - }, - "traits": { - "smithy.api#documentation": "Typical configuration that applies breaks on splice inserts in addition to time signal placement opportunities, breaks, and advertisements." - } - }, - "com.amazonaws.medialive#Scte35SpliceInsertNoRegionalBlackoutBehavior": { - "type": "enum", - "members": { - "FOLLOW": { - "target": "smithy.api#Unit", + }, + "MonitorDeployment": { + "target": "com.amazonaws.medialive#MonitorDeployment", "traits": { - "smithy.api#enumValue": "FOLLOW" + "smithy.api#jsonName": "monitorDeployment" } }, - "IGNORE": { - "target": "smithy.api#Unit", + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", "traits": { - "smithy.api#enumValue": "IGNORE" + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" } - } - }, - "traits": { - "smithy.api#documentation": "Scte35 Splice Insert No Regional Blackout Behavior" - } - }, - "com.amazonaws.medialive#Scte35SpliceInsertScheduleActionSettings": { - "type": "structure", - "members": { - "Duration": { - "target": "com.amazonaws.medialive#__longMin0Max8589934591", + }, + "Status": { + "target": "com.amazonaws.medialive#SignalMapStatus", "traits": { - "smithy.api#documentation": "Optional, the duration for the splice_insert, in 90 KHz ticks. To convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there is an expectation that the downstream system can read the duration and cue in at that time. If you do not enter a duration, the splice_insert will continue indefinitely and there is an expectation that you will enter a return_to_network to end the splice_insert at the appropriate time.", - "smithy.api#jsonName": "duration" + "smithy.api#jsonName": "status" } }, - "SpliceEventId": { - "target": "com.amazonaws.medialive#__longMin0Max4294967295", + "Tags": { + "target": "com.amazonaws.medialive#TagMap", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The splice_event_id for the SCTE-35 splice_insert, as defined in SCTE-35.", - "smithy.api#jsonName": "spliceEventId", - "smithy.api#required": {} + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "Settings for a SCTE-35 splice_insert message." + "smithy.api#documentation": "Placeholder documentation for StartUpdateSignalMapResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#Scte35SpliceInsertWebDeliveryAllowedBehavior": { - "type": "enum", + "com.amazonaws.medialive#StaticImageActivateScheduleActionSettings": { + "type": "structure", "members": { - "FOLLOW": { - "target": "smithy.api#Unit", + "Duration": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "FOLLOW" + "smithy.api#documentation": "The duration in milliseconds for the image to remain on the video. If omitted or set to 0 the duration is unlimited and the image will remain until it is explicitly deactivated.", + "smithy.api#jsonName": "duration" } }, - "IGNORE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "IGNORE" - } - } - }, - "traits": { - "smithy.api#documentation": "Scte35 Splice Insert Web Delivery Allowed Behavior" - } - }, - "com.amazonaws.medialive#Scte35TimeSignalApos": { - "type": "structure", - "members": { - "AdAvailOffset": { - "target": "com.amazonaws.medialive#__integerMinNegative1000Max1000", + "FadeIn": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "adAvailOffset" + "smithy.api#documentation": "The time in milliseconds for the image to fade in. The fade-in starts at the start time of the overlay. Default is 0 (no fade-in).", + "smithy.api#jsonName": "fadeIn" } }, - "NoRegionalBlackoutFlag": { - "target": "com.amazonaws.medialive#Scte35AposNoRegionalBlackoutBehavior", + "FadeOut": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#documentation": "When set to ignore, Segment Descriptors with noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates", - "smithy.api#jsonName": "noRegionalBlackoutFlag" + "smithy.api#documentation": "Applies only if a duration is specified. The time in milliseconds for the image to fade out. The fade-out starts when the duration time is hit, so it effectively extends the duration. Default is 0 (no fade-out).", + "smithy.api#jsonName": "fadeOut" } }, - "WebDeliveryAllowedFlag": { - "target": "com.amazonaws.medialive#Scte35AposWebDeliveryAllowedBehavior", + "Height": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#documentation": "When set to ignore, Segment Descriptors with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates", - "smithy.api#jsonName": "webDeliveryAllowedFlag" + "smithy.api#documentation": "The height of the image when inserted into the video, in pixels. The overlay will be scaled up or down to the specified height. Leave blank to use the native height of the overlay.", + "smithy.api#jsonName": "height" } - } - }, - "traits": { - "smithy.api#documentation": "Atypical configuration that applies segment breaks only on SCTE-35 time signal placement opportunities and breaks." - } - }, - "com.amazonaws.medialive#Scte35TimeSignalScheduleActionSettings": { - "type": "structure", - "members": { - "Scte35Descriptors": { - "target": "com.amazonaws.medialive#__listOfScte35Descriptor", + }, + "Image": { + "target": "com.amazonaws.medialive#InputLocation", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The list of SCTE-35 descriptors accompanying the SCTE-35 time_signal.", - "smithy.api#jsonName": "scte35Descriptors", + "smithy.api#documentation": "The location and filename of the image file to overlay on the video. The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the input video.", + "smithy.api#jsonName": "image", "smithy.api#required": {} } - } - }, - "traits": { - "smithy.api#documentation": "Settings for a SCTE-35 time_signal." - } - }, - "com.amazonaws.medialive#Scte35Type": { - "type": "enum", - "members": { - "NONE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "NONE" - } }, - "SCTE_35_WITHOUT_SEGMENTATION": { - "target": "smithy.api#Unit", + "ImageX": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "SCTE_35_WITHOUT_SEGMENTATION" + "smithy.api#documentation": "Placement of the left edge of the overlay relative to the left edge of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the placement causes the overlay to extend beyond the right edge of the underlying video, then the overlay is cropped on the right.", + "smithy.api#jsonName": "imageX" } - } - }, - "traits": { - "smithy.api#documentation": "Scte35 Type" - } - }, - "com.amazonaws.medialive#Scte35WebDeliveryAllowedFlag": { - "type": "enum", - "members": { - "WEB_DELIVERY_NOT_ALLOWED": { - "target": "smithy.api#Unit", + }, + "ImageY": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "WEB_DELIVERY_NOT_ALLOWED" + "smithy.api#documentation": "Placement of the top edge of the overlay relative to the top edge of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the placement causes the overlay to extend beyond the bottom edge of the underlying video, then the overlay is cropped on the bottom.", + "smithy.api#jsonName": "imageY" } }, - "WEB_DELIVERY_ALLOWED": { - "target": "smithy.api#Unit", + "Layer": { + "target": "com.amazonaws.medialive#__integerMin0Max7", "traits": { - "smithy.api#enumValue": "WEB_DELIVERY_ALLOWED" + "smithy.api#documentation": "The number of the layer, 0 to 7. There are 8 layers that can be overlaid on the video, each layer with a different image. The layers are in Z order, which means that overlays with higher values of layer are inserted on top of overlays with lower values of layer. Default is 0.", + "smithy.api#jsonName": "layer" } - } - }, - "traits": { - "smithy.api#documentation": "Corresponds to the web_delivery_allowed_flag parameter. A value of WEB_DELIVERY_NOT_ALLOWED corresponds to 0 (false) in the SCTE-35 specification. If you include one of the \"restriction\" flags then you must include all four of them." - } - }, - "com.amazonaws.medialive#SmoothGroupAudioOnlyTimecodeControl": { - "type": "enum", - "members": { - "PASSTHROUGH": { - "target": "smithy.api#Unit", + }, + "Opacity": { + "target": "com.amazonaws.medialive#__integerMin0Max100", "traits": { - "smithy.api#enumValue": "PASSTHROUGH" + "smithy.api#documentation": "Opacity of image where 0 is transparent and 100 is fully opaque. Default is 100.", + "smithy.api#jsonName": "opacity" } }, - "USE_CONFIGURED_CLOCK": { - "target": "smithy.api#Unit", + "Width": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#enumValue": "USE_CONFIGURED_CLOCK" + "smithy.api#documentation": "The width of the image when inserted into the video, in pixels. The overlay will be scaled up or down to the specified width. Leave blank to use the native width of the overlay.", + "smithy.api#jsonName": "width" } } }, "traits": { - "smithy.api#documentation": "Smooth Group Audio Only Timecode Control" + "smithy.api#documentation": "Settings for the action to activate a static image." } }, - "com.amazonaws.medialive#SmoothGroupCertificateMode": { - "type": "enum", + "com.amazonaws.medialive#StaticImageDeactivateScheduleActionSettings": { + "type": "structure", "members": { - "SELF_SIGNED": { - "target": "smithy.api#Unit", + "FadeOut": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "SELF_SIGNED" + "smithy.api#documentation": "The time in milliseconds for the image to fade out. Default is 0 (no fade-out).", + "smithy.api#jsonName": "fadeOut" } }, - "VERIFY_AUTHENTICITY": { - "target": "smithy.api#Unit", + "Layer": { + "target": "com.amazonaws.medialive#__integerMin0Max7", "traits": { - "smithy.api#enumValue": "VERIFY_AUTHENTICITY" + "smithy.api#documentation": "The image overlay layer to deactivate, 0 to 7. Default is 0.", + "smithy.api#jsonName": "layer" } } }, "traits": { - "smithy.api#documentation": "Smooth Group Certificate Mode" + "smithy.api#documentation": "Settings for the action to deactivate the image in a specific layer." } }, - "com.amazonaws.medialive#SmoothGroupEventIdMode": { - "type": "enum", + "com.amazonaws.medialive#StaticImageOutputActivateScheduleActionSettings": { + "type": "structure", "members": { - "NO_EVENT_ID": { - "target": "smithy.api#Unit", + "Duration": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "NO_EVENT_ID" + "smithy.api#documentation": "The duration in milliseconds for the image to remain on the video. If omitted or set to 0 the duration is unlimited and the image will remain until it is explicitly deactivated.", + "smithy.api#jsonName": "duration" } }, - "USE_CONFIGURED": { - "target": "smithy.api#Unit", + "FadeIn": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "USE_CONFIGURED" + "smithy.api#documentation": "The time in milliseconds for the image to fade in. The fade-in starts at the start time of the overlay. Default is 0 (no fade-in).", + "smithy.api#jsonName": "fadeIn" } }, - "USE_TIMESTAMP": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "USE_TIMESTAMP" - } - } - }, - "traits": { - "smithy.api#documentation": "Smooth Group Event Id Mode" - } - }, - "com.amazonaws.medialive#SmoothGroupEventStopBehavior": { - "type": "enum", - "members": { - "NONE": { - "target": "smithy.api#Unit", + "FadeOut": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#documentation": "Applies only if a duration is specified. The time in milliseconds for the image to fade out. The fade-out starts when the duration time is hit, so it effectively extends the duration. Default is 0 (no fade-out).", + "smithy.api#jsonName": "fadeOut" } }, - "SEND_EOS": { - "target": "smithy.api#Unit", + "Height": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#enumValue": "SEND_EOS" + "smithy.api#documentation": "The height of the image when inserted into the video, in pixels. The overlay will be scaled up or down to the specified height. Leave blank to use the native height of the overlay.", + "smithy.api#jsonName": "height" } - } - }, - "traits": { - "smithy.api#documentation": "Smooth Group Event Stop Behavior" - } - }, - "com.amazonaws.medialive#SmoothGroupSegmentationMode": { - "type": "enum", - "members": { - "USE_INPUT_SEGMENTATION": { - "target": "smithy.api#Unit", + }, + "Image": { + "target": "com.amazonaws.medialive#InputLocation", "traits": { - "smithy.api#enumValue": "USE_INPUT_SEGMENTATION" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The location and filename of the image file to overlay on the video. The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the input video.", + "smithy.api#jsonName": "image", + "smithy.api#required": {} } }, - "USE_SEGMENT_DURATION": { - "target": "smithy.api#Unit", + "ImageX": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "USE_SEGMENT_DURATION" + "smithy.api#documentation": "Placement of the left edge of the overlay relative to the left edge of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the placement causes the overlay to extend beyond the right edge of the underlying video, then the overlay is cropped on the right.", + "smithy.api#jsonName": "imageX" } - } - }, - "traits": { - "smithy.api#documentation": "Smooth Group Segmentation Mode" - } - }, - "com.amazonaws.medialive#SmoothGroupSparseTrackType": { - "type": "enum", - "members": { - "NONE": { - "target": "smithy.api#Unit", + }, + "ImageY": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#documentation": "Placement of the top edge of the overlay relative to the top edge of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the placement causes the overlay to extend beyond the bottom edge of the underlying video, then the overlay is cropped on the bottom.", + "smithy.api#jsonName": "imageY" } }, - "SCTE_35": { - "target": "smithy.api#Unit", + "Layer": { + "target": "com.amazonaws.medialive#__integerMin0Max7", "traits": { - "smithy.api#enumValue": "SCTE_35" + "smithy.api#documentation": "The number of the layer, 0 to 7. There are 8 layers that can be overlaid on the video, each layer with a different image. The layers are in Z order, which means that overlays with higher values of layer are inserted on top of overlays with lower values of layer. Default is 0.", + "smithy.api#jsonName": "layer" } }, - "SCTE_35_WITHOUT_SEGMENTATION": { - "target": "smithy.api#Unit", + "Opacity": { + "target": "com.amazonaws.medialive#__integerMin0Max100", "traits": { - "smithy.api#enumValue": "SCTE_35_WITHOUT_SEGMENTATION" + "smithy.api#documentation": "Opacity of image where 0 is transparent and 100 is fully opaque. Default is 100.", + "smithy.api#jsonName": "opacity" } - } - }, - "traits": { - "smithy.api#documentation": "Smooth Group Sparse Track Type" - } - }, - "com.amazonaws.medialive#SmoothGroupStreamManifestBehavior": { - "type": "enum", - "members": { - "DO_NOT_SEND": { - "target": "smithy.api#Unit", + }, + "OutputNames": { + "target": "com.amazonaws.medialive#__listOf__string", "traits": { - "smithy.api#enumValue": "DO_NOT_SEND" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The name(s) of the output(s) the activation should apply to.", + "smithy.api#jsonName": "outputNames", + "smithy.api#required": {} } }, - "SEND": { - "target": "smithy.api#Unit", + "Width": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#enumValue": "SEND" + "smithy.api#documentation": "The width of the image when inserted into the video, in pixels. The overlay will be scaled up or down to the specified width. Leave blank to use the native width of the overlay.", + "smithy.api#jsonName": "width" } } }, "traits": { - "smithy.api#documentation": "Smooth Group Stream Manifest Behavior" + "smithy.api#documentation": "Settings for the action to activate a static image." } }, - "com.amazonaws.medialive#SmoothGroupTimestampOffsetMode": { - "type": "enum", + "com.amazonaws.medialive#StaticImageOutputDeactivateScheduleActionSettings": { + "type": "structure", "members": { - "USE_CONFIGURED_OFFSET": { - "target": "smithy.api#Unit", + "FadeOut": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "USE_CONFIGURED_OFFSET" + "smithy.api#documentation": "The time in milliseconds for the image to fade out. Default is 0 (no fade-out).", + "smithy.api#jsonName": "fadeOut" } }, - "USE_EVENT_START_DATE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "USE_EVENT_START_DATE" - } - } - }, - "traits": { - "smithy.api#documentation": "Smooth Group Timestamp Offset Mode" - } - }, - "com.amazonaws.medialive#Smpte2038DataPreference": { - "type": "enum", - "members": { - "IGNORE": { - "target": "smithy.api#Unit", + "Layer": { + "target": "com.amazonaws.medialive#__integerMin0Max7", "traits": { - "smithy.api#enumValue": "IGNORE" + "smithy.api#documentation": "The image overlay layer to deactivate, 0 to 7. Default is 0.", + "smithy.api#jsonName": "layer" } }, - "PREFER": { - "target": "smithy.api#Unit", + "OutputNames": { + "target": "com.amazonaws.medialive#__listOf__string", "traits": { - "smithy.api#enumValue": "PREFER" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The name(s) of the output(s) the deactivation should apply to.", + "smithy.api#jsonName": "outputNames", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Smpte2038 Data Preference" - } - }, - "com.amazonaws.medialive#SmpteTtDestinationSettings": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Smpte Tt Destination Settings" + "smithy.api#documentation": "Settings for the action to deactivate the image in a specific layer." } }, - "com.amazonaws.medialive#StandardHlsSettings": { + "com.amazonaws.medialive#StaticKeySettings": { "type": "structure", "members": { - "AudioRenditionSets": { - "target": "com.amazonaws.medialive#__string", + "KeyProviderServer": { + "target": "com.amazonaws.medialive#InputLocation", "traits": { - "smithy.api#documentation": "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 ','.", - "smithy.api#jsonName": "audioRenditionSets" + "smithy.api#documentation": "The URL of the license server used for protecting content.", + "smithy.api#jsonName": "keyProviderServer" } }, - "M3u8Settings": { - "target": "com.amazonaws.medialive#M3u8Settings", + "StaticKeyValue": { + "target": "com.amazonaws.medialive#__stringMin32Max32", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#jsonName": "m3u8Settings", + "smithy.api#documentation": "Static key value as a 32 character hexadecimal string.", + "smithy.api#jsonName": "staticKeyValue", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Standard Hls Settings" + "smithy.api#documentation": "Static Key Settings" } }, - "com.amazonaws.medialive#StartChannel": { + "com.amazonaws.medialive#StopChannel": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#StartChannelRequest" + "target": "com.amazonaws.medialive#StopChannelRequest" }, "output": { - "target": "com.amazonaws.medialive#StartChannelResponse" + "target": "com.amazonaws.medialive#StopChannelResponse" }, "errors": [ { @@ -22653,32 +27520,32 @@ } ], "traits": { - "smithy.api#documentation": "Starts an existing channel", + "smithy.api#documentation": "Stops a running channel", "smithy.api#http": { "method": "POST", - "uri": "/prod/channels/{ChannelId}/start", + "uri": "/prod/channels/{ChannelId}/stop", "code": 200 } } }, - "com.amazonaws.medialive#StartChannelRequest": { + "com.amazonaws.medialive#StopChannelRequest": { "type": "structure", "members": { "ChannelId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "A request to start a channel", + "smithy.api#documentation": "A request to stop a running channel", "smithy.api#httpLabel": {}, "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for StartChannelRequest", + "smithy.api#documentation": "Placeholder documentation for StopChannelRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#StartChannelResponse": { + "com.amazonaws.medialive#StopChannelResponse": { "type": "structure", "members": { "Arn": { @@ -22807,60 +27674,17 @@ } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for StartChannelResponse", + "smithy.api#documentation": "Placeholder documentation for StopChannelResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#StartInputDevice": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#StartInputDeviceRequest" - }, - "output": { - "target": "com.amazonaws.medialive#StartInputDeviceResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" - }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" - }, - { - "target": "com.amazonaws.medialive#NotFoundException" - }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" - }, - { - "target": "com.amazonaws.medialive#UnprocessableEntityException" - } - ], - "traits": { - "smithy.api#documentation": "Start an input device that is attached to a MediaConnect flow. (There is no need to start a device that is attached to a MediaLive input; MediaLive starts the device when the channel starts.)", - "smithy.api#http": { - "method": "POST", - "uri": "/prod/inputDevices/{InputDeviceId}/start", - "code": 200 - } - } - }, - "com.amazonaws.medialive#StartInputDeviceMaintenanceWindow": { + "com.amazonaws.medialive#StopInputDevice": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#StartInputDeviceMaintenanceWindowRequest" + "target": "com.amazonaws.medialive#StopInputDeviceRequest" }, "output": { - "target": "com.amazonaws.medialive#StartInputDeviceMaintenanceWindowResponse" + "target": "com.amazonaws.medialive#StopInputDeviceResponse" }, "errors": [ { @@ -22889,71 +27713,46 @@ } ], "traits": { - "smithy.api#documentation": "Start a maintenance window for the specified input device. Starting a maintenance window will give the device up to two hours to install software. If the device was streaming prior to the maintenance, it will resume streaming when the software is fully installed. Devices automatically install updates while they are powered on and their MediaLive channels are stopped. A maintenance window allows you to update a device without having to stop MediaLive channels that use the device. The device must remain powered on and connected to the internet for the duration of the maintenance.", + "smithy.api#documentation": "Stop an input device that is attached to a MediaConnect flow. (There is no need to stop a device that is attached to a MediaLive input; MediaLive automatically stops the device when the channel stops.)", "smithy.api#http": { "method": "POST", - "uri": "/prod/inputDevices/{InputDeviceId}/startInputDeviceMaintenanceWindow", + "uri": "/prod/inputDevices/{InputDeviceId}/stop", "code": 200 } } }, - "com.amazonaws.medialive#StartInputDeviceMaintenanceWindowRequest": { - "type": "structure", - "members": { - "InputDeviceId": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The unique ID of the input device to start a maintenance window for. For example, hd-123456789abcdef.", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for StartInputDeviceMaintenanceWindowRequest", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#StartInputDeviceMaintenanceWindowResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Placeholder documentation for StartInputDeviceMaintenanceWindowResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#StartInputDeviceRequest": { + "com.amazonaws.medialive#StopInputDeviceRequest": { "type": "structure", "members": { "InputDeviceId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The unique ID of the input device to start. For example, hd-123456789abcdef.", + "smithy.api#documentation": "The unique ID of the input device to stop. For example, hd-123456789abcdef.", "smithy.api#httpLabel": {}, "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for StartInputDeviceRequest", + "smithy.api#documentation": "Placeholder documentation for StopInputDeviceRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#StartInputDeviceResponse": { + "com.amazonaws.medialive#StopInputDeviceResponse": { "type": "structure", "members": {}, "traits": { - "smithy.api#documentation": "Placeholder documentation for StartInputDeviceResponse", + "smithy.api#documentation": "Placeholder documentation for StopInputDeviceResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#StartMultiplex": { + "com.amazonaws.medialive#StopMultiplex": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#StartMultiplexRequest" + "target": "com.amazonaws.medialive#StopMultiplexRequest" }, "output": { - "target": "com.amazonaws.medialive#StartMultiplexResponse" + "target": "com.amazonaws.medialive#StopMultiplexResponse" }, "errors": [ { @@ -22982,15 +27781,15 @@ } ], "traits": { - "smithy.api#documentation": "Start (run) the multiplex. Starting the multiplex does not start the channels. You must explicitly start each channel.", + "smithy.api#documentation": "Stops a running multiplex. If the multiplex isn't running, this action has no effect.", "smithy.api#http": { "method": "POST", - "uri": "/prod/multiplexes/{MultiplexId}/start", + "uri": "/prod/multiplexes/{MultiplexId}/stop", "code": 202 } } }, - "com.amazonaws.medialive#StartMultiplexRequest": { + "com.amazonaws.medialive#StopMultiplexRequest": { "type": "structure", "members": { "MultiplexId": { @@ -23003,11 +27802,11 @@ } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for StartMultiplexRequest", + "smithy.api#documentation": "Placeholder documentation for StopMultiplexRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#StartMultiplexResponse": { + "com.amazonaws.medialive#StopMultiplexResponse": { "type": "structure", "members": { "Arn": { @@ -23082,539 +27881,583 @@ } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for StartMultiplexResponse", + "smithy.api#documentation": "Placeholder documentation for StopMultiplexResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#StartTimecode": { + "com.amazonaws.medialive#StopTimecode": { "type": "structure", "members": { + "LastFrameClippingBehavior": { + "target": "com.amazonaws.medialive#LastFrameClippingBehavior", + "traits": { + "smithy.api#documentation": "If you specify a StopTimecode in an input (in order to clip the file), you can specify if you want the clip to exclude (the default) or include the frame specified by the timecode.", + "smithy.api#jsonName": "lastFrameClippingBehavior" + } + }, "Timecode": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The timecode for the frame where you want to start the clip. Optional; if not specified, the clip starts at first frame in the file. Enter the timecode as HH:MM:SS:FF or HH:MM:SS;FF.", + "smithy.api#documentation": "The timecode for the frame where you want to stop the clip. Optional; if not specified, the clip continues to the end of the file. Enter the timecode as HH:MM:SS:FF or HH:MM:SS;FF.", "smithy.api#jsonName": "timecode" } } }, "traits": { - "smithy.api#documentation": "Settings to identify the start of the clip." + "smithy.api#documentation": "Settings to identify the end of the clip." } }, - "com.amazonaws.medialive#StaticImageActivateScheduleActionSettings": { + "com.amazonaws.medialive#SuccessfulMonitorDeployment": { + "type": "structure", + "members": { + "DetailsUri": { + "target": "com.amazonaws.medialive#__stringMin1Max2048", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "URI associated with a signal map's monitor deployment.", + "smithy.api#jsonName": "detailsUri", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.medialive#SignalMapMonitorDeploymentStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "status", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Represents the latest successful monitor deployment of a signal map." + } + }, + "com.amazonaws.medialive#TagMap": { + "type": "map", + "key": { + "target": "com.amazonaws.medialive#__string" + }, + "value": { + "target": "com.amazonaws.medialive#__string" + }, + "traits": { + "smithy.api#documentation": "Represents the tags associated with a resource." + } + }, + "com.amazonaws.medialive#Tags": { + "type": "map", + "key": { + "target": "com.amazonaws.medialive#__string" + }, + "value": { + "target": "com.amazonaws.medialive#__string" + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for Tags" + } + }, + "com.amazonaws.medialive#TeletextDestinationSettings": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Teletext Destination Settings" + } + }, + "com.amazonaws.medialive#TeletextSourceSettings": { + "type": "structure", + "members": { + "OutputRectangle": { + "target": "com.amazonaws.medialive#CaptionRectangle", + "traits": { + "smithy.api#documentation": "Optionally defines a region where TTML style captions will be displayed", + "smithy.api#jsonName": "outputRectangle" + } + }, + "PageNumber": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "pageNumber" + } + } + }, + "traits": { + "smithy.api#documentation": "Teletext Source Settings" + } + }, + "com.amazonaws.medialive#TemporalFilterPostFilterSharpening": { + "type": "enum", + "members": { + "AUTO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTO" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + }, + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + } + }, + "traits": { + "smithy.api#documentation": "Temporal Filter Post Filter Sharpening" + } + }, + "com.amazonaws.medialive#TemporalFilterSettings": { "type": "structure", "members": { - "Duration": { - "target": "com.amazonaws.medialive#__integerMin0", + "PostFilterSharpening": { + "target": "com.amazonaws.medialive#TemporalFilterPostFilterSharpening", + "traits": { + "smithy.api#documentation": "If you enable this filter, the results are the following:\n- If the source content is noisy (it contains excessive digital artifacts), the filter cleans up the source.\n- If the source content is already clean, the filter tends to decrease the bitrate, especially when the rate control mode is QVBR.", + "smithy.api#jsonName": "postFilterSharpening" + } + }, + "Strength": { + "target": "com.amazonaws.medialive#TemporalFilterStrength", + "traits": { + "smithy.api#documentation": "Choose a filter strength. We recommend a strength of 1 or 2. A higher strength might take out good information, resulting in an image that is overly soft.", + "smithy.api#jsonName": "strength" + } + } + }, + "traits": { + "smithy.api#documentation": "Temporal Filter Settings" + } + }, + "com.amazonaws.medialive#TemporalFilterStrength": { + "type": "enum", + "members": { + "AUTO": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The duration in milliseconds for the image to remain on the video. If omitted or set to 0 the duration is unlimited and the image will remain until it is explicitly deactivated.", - "smithy.api#jsonName": "duration" + "smithy.api#enumValue": "AUTO" } }, - "FadeIn": { - "target": "com.amazonaws.medialive#__integerMin0", + "STRENGTH_1": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The time in milliseconds for the image to fade in. The fade-in starts at the start time of the overlay. Default is 0 (no fade-in).", - "smithy.api#jsonName": "fadeIn" + "smithy.api#enumValue": "STRENGTH_1" } }, - "FadeOut": { - "target": "com.amazonaws.medialive#__integerMin0", + "STRENGTH_2": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Applies only if a duration is specified. The time in milliseconds for the image to fade out. The fade-out starts when the duration time is hit, so it effectively extends the duration. Default is 0 (no fade-out).", - "smithy.api#jsonName": "fadeOut" + "smithy.api#enumValue": "STRENGTH_2" } }, - "Height": { - "target": "com.amazonaws.medialive#__integerMin1", + "STRENGTH_3": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The height of the image when inserted into the video, in pixels. The overlay will be scaled up or down to the specified height. Leave blank to use the native height of the overlay.", - "smithy.api#jsonName": "height" + "smithy.api#enumValue": "STRENGTH_3" } }, - "Image": { - "target": "com.amazonaws.medialive#InputLocation", + "STRENGTH_4": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The location and filename of the image file to overlay on the video. The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the input video.", - "smithy.api#jsonName": "image", - "smithy.api#required": {} + "smithy.api#enumValue": "STRENGTH_4" } }, - "ImageX": { - "target": "com.amazonaws.medialive#__integerMin0", + "STRENGTH_5": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Placement of the left edge of the overlay relative to the left edge of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the placement causes the overlay to extend beyond the right edge of the underlying video, then the overlay is cropped on the right.", - "smithy.api#jsonName": "imageX" + "smithy.api#enumValue": "STRENGTH_5" } }, - "ImageY": { - "target": "com.amazonaws.medialive#__integerMin0", + "STRENGTH_6": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Placement of the top edge of the overlay relative to the top edge of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the placement causes the overlay to extend beyond the bottom edge of the underlying video, then the overlay is cropped on the bottom.", - "smithy.api#jsonName": "imageY" + "smithy.api#enumValue": "STRENGTH_6" } }, - "Layer": { - "target": "com.amazonaws.medialive#__integerMin0Max7", + "STRENGTH_7": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The number of the layer, 0 to 7. There are 8 layers that can be overlaid on the video, each layer with a different image. The layers are in Z order, which means that overlays with higher values of layer are inserted on top of overlays with lower values of layer. Default is 0.", - "smithy.api#jsonName": "layer" + "smithy.api#enumValue": "STRENGTH_7" } }, - "Opacity": { - "target": "com.amazonaws.medialive#__integerMin0Max100", + "STRENGTH_8": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Opacity of image where 0 is transparent and 100 is fully opaque. Default is 100.", - "smithy.api#jsonName": "opacity" + "smithy.api#enumValue": "STRENGTH_8" } }, - "Width": { - "target": "com.amazonaws.medialive#__integerMin1", + "STRENGTH_9": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The width of the image when inserted into the video, in pixels. The overlay will be scaled up or down to the specified width. Leave blank to use the native width of the overlay.", - "smithy.api#jsonName": "width" + "smithy.api#enumValue": "STRENGTH_9" } - } - }, - "traits": { - "smithy.api#documentation": "Settings for the action to activate a static image." - } - }, - "com.amazonaws.medialive#StaticImageDeactivateScheduleActionSettings": { - "type": "structure", - "members": { - "FadeOut": { - "target": "com.amazonaws.medialive#__integerMin0", + }, + "STRENGTH_10": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The time in milliseconds for the image to fade out. Default is 0 (no fade-out).", - "smithy.api#jsonName": "fadeOut" + "smithy.api#enumValue": "STRENGTH_10" } }, - "Layer": { - "target": "com.amazonaws.medialive#__integerMin0Max7", + "STRENGTH_11": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The image overlay layer to deactivate, 0 to 7. Default is 0.", - "smithy.api#jsonName": "layer" + "smithy.api#enumValue": "STRENGTH_11" } - } - }, - "traits": { - "smithy.api#documentation": "Settings for the action to deactivate the image in a specific layer." - } - }, - "com.amazonaws.medialive#StaticImageOutputActivateScheduleActionSettings": { - "type": "structure", - "members": { - "Duration": { - "target": "com.amazonaws.medialive#__integerMin0", + }, + "STRENGTH_12": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The duration in milliseconds for the image to remain on the video. If omitted or set to 0 the duration is unlimited and the image will remain until it is explicitly deactivated.", - "smithy.api#jsonName": "duration" + "smithy.api#enumValue": "STRENGTH_12" } }, - "FadeIn": { - "target": "com.amazonaws.medialive#__integerMin0", + "STRENGTH_13": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The time in milliseconds for the image to fade in. The fade-in starts at the start time of the overlay. Default is 0 (no fade-in).", - "smithy.api#jsonName": "fadeIn" + "smithy.api#enumValue": "STRENGTH_13" } }, - "FadeOut": { - "target": "com.amazonaws.medialive#__integerMin0", + "STRENGTH_14": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Applies only if a duration is specified. The time in milliseconds for the image to fade out. The fade-out starts when the duration time is hit, so it effectively extends the duration. Default is 0 (no fade-out).", - "smithy.api#jsonName": "fadeOut" + "smithy.api#enumValue": "STRENGTH_14" } }, - "Height": { - "target": "com.amazonaws.medialive#__integerMin1", + "STRENGTH_15": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The height of the image when inserted into the video, in pixels. The overlay will be scaled up or down to the specified height. Leave blank to use the native height of the overlay.", - "smithy.api#jsonName": "height" + "smithy.api#enumValue": "STRENGTH_15" } }, - "Image": { - "target": "com.amazonaws.medialive#InputLocation", + "STRENGTH_16": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The location and filename of the image file to overlay on the video. The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the input video.", - "smithy.api#jsonName": "image", - "smithy.api#required": {} + "smithy.api#enumValue": "STRENGTH_16" } - }, - "ImageX": { - "target": "com.amazonaws.medialive#__integerMin0", + } + }, + "traits": { + "smithy.api#documentation": "Temporal Filter Strength" + } + }, + "com.amazonaws.medialive#Thumbnail": { + "type": "structure", + "members": { + "Body": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Placement of the left edge of the overlay relative to the left edge of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the placement causes the overlay to extend beyond the right edge of the underlying video, then the overlay is cropped on the right.", - "smithy.api#jsonName": "imageX" + "smithy.api#documentation": "The binary data for the latest thumbnail.", + "smithy.api#jsonName": "body" } }, - "ImageY": { - "target": "com.amazonaws.medialive#__integerMin0", + "ContentType": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Placement of the top edge of the overlay relative to the top edge of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the placement causes the overlay to extend beyond the bottom edge of the underlying video, then the overlay is cropped on the bottom.", - "smithy.api#jsonName": "imageY" + "smithy.api#documentation": "The content type for the latest thumbnail.", + "smithy.api#jsonName": "contentType" } }, - "Layer": { - "target": "com.amazonaws.medialive#__integerMin0Max7", + "ThumbnailType": { + "target": "com.amazonaws.medialive#ThumbnailType", "traits": { - "smithy.api#documentation": "The number of the layer, 0 to 7. There are 8 layers that can be overlaid on the video, each layer with a different image. The layers are in Z order, which means that overlays with higher values of layer are inserted on top of overlays with lower values of layer. Default is 0.", - "smithy.api#jsonName": "layer" + "smithy.api#documentation": "Thumbnail Type", + "smithy.api#jsonName": "thumbnailType" } }, - "Opacity": { - "target": "com.amazonaws.medialive#__integerMin0Max100", + "TimeStamp": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#documentation": "Opacity of image where 0 is transparent and 100 is fully opaque. Default is 100.", - "smithy.api#jsonName": "opacity" + "smithy.api#documentation": "Time stamp for the latest thumbnail.", + "smithy.api#jsonName": "timeStamp" } - }, - "OutputNames": { - "target": "com.amazonaws.medialive#__listOf__string", + } + }, + "traits": { + "smithy.api#documentation": "Details of a single thumbnail" + } + }, + "com.amazonaws.medialive#ThumbnailConfiguration": { + "type": "structure", + "members": { + "State": { + "target": "com.amazonaws.medialive#ThumbnailState", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The name(s) of the output(s) the activation should apply to.", - "smithy.api#jsonName": "outputNames", + "smithy.api#documentation": "Enables the thumbnail feature. The feature generates thumbnails of the incoming video in each pipeline in the channel. AUTO turns the feature on, DISABLE turns the feature off.", + "smithy.api#jsonName": "state", "smithy.api#required": {} } - }, - "Width": { - "target": "com.amazonaws.medialive#__integerMin1", - "traits": { - "smithy.api#documentation": "The width of the image when inserted into the video, in pixels. The overlay will be scaled up or down to the specified width. Leave blank to use the native width of the overlay.", - "smithy.api#jsonName": "width" - } } }, "traits": { - "smithy.api#documentation": "Settings for the action to activate a static image." + "smithy.api#documentation": "Thumbnail Configuration" } }, - "com.amazonaws.medialive#StaticImageOutputDeactivateScheduleActionSettings": { + "com.amazonaws.medialive#ThumbnailDetail": { "type": "structure", "members": { - "FadeOut": { - "target": "com.amazonaws.medialive#__integerMin0", + "PipelineId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The time in milliseconds for the image to fade out. Default is 0 (no fade-out).", - "smithy.api#jsonName": "fadeOut" + "smithy.api#documentation": "Pipeline ID", + "smithy.api#jsonName": "pipelineId" } }, - "Layer": { - "target": "com.amazonaws.medialive#__integerMin0Max7", + "Thumbnails": { + "target": "com.amazonaws.medialive#__listOfThumbnail", "traits": { - "smithy.api#documentation": "The image overlay layer to deactivate, 0 to 7. Default is 0.", - "smithy.api#jsonName": "layer" + "smithy.api#documentation": "thumbnails of a single pipeline", + "smithy.api#jsonName": "thumbnails" } - }, - "OutputNames": { - "target": "com.amazonaws.medialive#__listOf__string", + } + }, + "traits": { + "smithy.api#documentation": "Thumbnail details for one pipeline of a running channel." + } + }, + "com.amazonaws.medialive#ThumbnailState": { + "type": "enum", + "members": { + "AUTO": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The name(s) of the output(s) the deactivation should apply to.", - "smithy.api#jsonName": "outputNames", - "smithy.api#required": {} + "smithy.api#enumValue": "AUTO" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" } } }, "traits": { - "smithy.api#documentation": "Settings for the action to deactivate the image in a specific layer." + "smithy.api#documentation": "Thumbnail State" } }, - "com.amazonaws.medialive#StaticKeySettings": { - "type": "structure", + "com.amazonaws.medialive#ThumbnailType": { + "type": "enum", "members": { - "KeyProviderServer": { - "target": "com.amazonaws.medialive#InputLocation", + "UNSPECIFIED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The URL of the license server used for protecting content.", - "smithy.api#jsonName": "keyProviderServer" + "smithy.api#enumValue": "UNSPECIFIED" } }, - "StaticKeyValue": { - "target": "com.amazonaws.medialive#__stringMin32Max32", + "CURRENT_ACTIVE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Static key value as a 32 character hexadecimal string.", - "smithy.api#jsonName": "staticKeyValue", - "smithy.api#required": {} + "smithy.api#enumValue": "CURRENT_ACTIVE" } } }, "traits": { - "smithy.api#documentation": "Static Key Settings" + "smithy.api#documentation": "Thumbnail type." } }, - "com.amazonaws.medialive#StopChannel": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#StopChannelRequest" - }, - "output": { - "target": "com.amazonaws.medialive#StopChannelResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ConflictException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" - }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" + "com.amazonaws.medialive#TimecodeBurninFontSize": { + "type": "enum", + "members": { + "EXTRA_SMALL_10": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXTRA_SMALL_10" + } }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" + "LARGE_48": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LARGE_48" + } }, - { - "target": "com.amazonaws.medialive#NotFoundException" + "MEDIUM_32": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MEDIUM_32" + } }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" - } - ], - "traits": { - "smithy.api#documentation": "Stops a running channel", - "smithy.api#http": { - "method": "POST", - "uri": "/prod/channels/{ChannelId}/stop", - "code": 200 - } - } - }, - "com.amazonaws.medialive#StopChannelRequest": { - "type": "structure", - "members": { - "ChannelId": { - "target": "com.amazonaws.medialive#__string", + "SMALL_16": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "A request to stop a running channel", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#enumValue": "SMALL_16" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for StopChannelRequest", - "smithy.api#input": {} + "smithy.api#documentation": "Timecode Burnin Font Size" } }, - "com.amazonaws.medialive#StopChannelResponse": { - "type": "structure", + "com.amazonaws.medialive#TimecodeBurninPosition": { + "type": "enum", "members": { - "Arn": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The unique arn of the channel.", - "smithy.api#jsonName": "arn" - } - }, - "CdiInputSpecification": { - "target": "com.amazonaws.medialive#CdiInputSpecification", + "BOTTOM_CENTER": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Specification of CDI inputs for this channel", - "smithy.api#jsonName": "cdiInputSpecification" + "smithy.api#enumValue": "BOTTOM_CENTER" } }, - "ChannelClass": { - "target": "com.amazonaws.medialive#ChannelClass", + "BOTTOM_LEFT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The class for this channel. STANDARD for a channel with two pipelines or SINGLE_PIPELINE for a channel with one pipeline.", - "smithy.api#jsonName": "channelClass" + "smithy.api#enumValue": "BOTTOM_LEFT" } }, - "Destinations": { - "target": "com.amazonaws.medialive#__listOfOutputDestination", + "BOTTOM_RIGHT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "destinations" + "smithy.api#enumValue": "BOTTOM_RIGHT" } }, - "EgressEndpoints": { - "target": "com.amazonaws.medialive#__listOfChannelEgressEndpoint", + "MIDDLE_CENTER": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The endpoints where outgoing connections initiate from", - "smithy.api#jsonName": "egressEndpoints" + "smithy.api#enumValue": "MIDDLE_CENTER" } }, - "EncoderSettings": { - "target": "com.amazonaws.medialive#EncoderSettings", + "MIDDLE_LEFT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "encoderSettings" + "smithy.api#enumValue": "MIDDLE_LEFT" } }, - "Id": { - "target": "com.amazonaws.medialive#__string", + "MIDDLE_RIGHT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The unique id of the channel.", - "smithy.api#jsonName": "id" + "smithy.api#enumValue": "MIDDLE_RIGHT" } }, - "InputAttachments": { - "target": "com.amazonaws.medialive#__listOfInputAttachment", + "TOP_CENTER": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "List of input attachments for channel.", - "smithy.api#jsonName": "inputAttachments" + "smithy.api#enumValue": "TOP_CENTER" } }, - "InputSpecification": { - "target": "com.amazonaws.medialive#InputSpecification", + "TOP_LEFT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Specification of network and file inputs for this channel", - "smithy.api#jsonName": "inputSpecification" + "smithy.api#enumValue": "TOP_LEFT" } }, - "LogLevel": { - "target": "com.amazonaws.medialive#LogLevel", + "TOP_RIGHT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "The log level being written to CloudWatch Logs.", - "smithy.api#jsonName": "logLevel" + "smithy.api#enumValue": "TOP_RIGHT" } - }, - "Maintenance": { - "target": "com.amazonaws.medialive#MaintenanceStatus", + } + }, + "traits": { + "smithy.api#documentation": "Timecode Burnin Position" + } + }, + "com.amazonaws.medialive#TimecodeBurninSettings": { + "type": "structure", + "members": { + "FontSize": { + "target": "com.amazonaws.medialive#TimecodeBurninFontSize", "traits": { - "smithy.api#documentation": "Maintenance settings for this channel.", - "smithy.api#jsonName": "maintenance" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Choose a timecode burn-in font size", + "smithy.api#jsonName": "fontSize", + "smithy.api#required": {} } }, - "Name": { - "target": "com.amazonaws.medialive#__string", + "Position": { + "target": "com.amazonaws.medialive#TimecodeBurninPosition", "traits": { - "smithy.api#documentation": "The name of the channel. (user-mutable)", - "smithy.api#jsonName": "name" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Choose a timecode burn-in output position", + "smithy.api#jsonName": "position", + "smithy.api#required": {} } }, - "PipelineDetails": { - "target": "com.amazonaws.medialive#__listOfPipelineDetail", + "Prefix": { + "target": "com.amazonaws.medialive#__stringMax255", "traits": { - "smithy.api#documentation": "Runtime details for the pipelines of a running channel.", - "smithy.api#jsonName": "pipelineDetails" + "smithy.api#documentation": "Create a timecode burn-in prefix (optional)", + "smithy.api#jsonName": "prefix" } - }, - "PipelinesRunningCount": { - "target": "com.amazonaws.medialive#__integer", + } + }, + "traits": { + "smithy.api#documentation": "Timecode Burnin Settings" + } + }, + "com.amazonaws.medialive#TimecodeConfig": { + "type": "structure", + "members": { + "Source": { + "target": "com.amazonaws.medialive#TimecodeConfigSource", "traits": { - "smithy.api#documentation": "The number of currently healthy pipelines.", - "smithy.api#jsonName": "pipelinesRunningCount" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "source", + "smithy.api#required": {} } }, - "RoleArn": { - "target": "com.amazonaws.medialive#__string", + "SyncThreshold": { + "target": "com.amazonaws.medialive#__integerMin1Max1000000", "traits": { - "smithy.api#documentation": "The Amazon Resource Name (ARN) of the role assumed when running the Channel.", - "smithy.api#jsonName": "roleArn" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "syncThreshold" } - }, - "State": { - "target": "com.amazonaws.medialive#ChannelState", + } + }, + "traits": { + "smithy.api#documentation": "Timecode Config" + } + }, + "com.amazonaws.medialive#TimecodeConfigSource": { + "type": "enum", + "members": { + "EMBEDDED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#jsonName": "state" + "smithy.api#enumValue": "EMBEDDED" } - }, - "Tags": { - "target": "com.amazonaws.medialive#Tags", + }, + "SYSTEMCLOCK": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "A collection of key-value pairs.", - "smithy.api#jsonName": "tags" + "smithy.api#enumValue": "SYSTEMCLOCK" } }, - "Vpc": { - "target": "com.amazonaws.medialive#VpcOutputSettingsDescription", + "ZEROBASED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "Settings for VPC output", - "smithy.api#jsonName": "vpc" + "smithy.api#enumValue": "ZEROBASED" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for StopChannelResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#StopInputDevice": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#StopInputDeviceRequest" - }, - "output": { - "target": "com.amazonaws.medialive#StopInputDeviceResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ForbiddenException" - }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" - }, - { - "target": "com.amazonaws.medialive#NotFoundException" - }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" - }, - { - "target": "com.amazonaws.medialive#UnprocessableEntityException" - } - ], - "traits": { - "smithy.api#documentation": "Stop an input device that is attached to a MediaConnect flow. (There is no need to stop a device that is attached to a MediaLive input; MediaLive automatically stops the device when the channel stops.)", - "smithy.api#http": { - "method": "POST", - "uri": "/prod/inputDevices/{InputDeviceId}/stop", - "code": 200 - } + "smithy.api#documentation": "Timecode Config Source" } }, - "com.amazonaws.medialive#StopInputDeviceRequest": { + "com.amazonaws.medialive#TooManyRequestsException": { "type": "structure", "members": { - "InputDeviceId": { + "Message": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The unique ID of the input device to stop. For example, hd-123456789abcdef.", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#jsonName": "message" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for StopInputDeviceRequest", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#StopInputDeviceResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Placeholder documentation for StopInputDeviceResponse", - "smithy.api#output": {} + "smithy.api#documentation": "Placeholder documentation for TooManyRequestsException", + "smithy.api#error": "client", + "smithy.api#httpError": 429 } }, - "com.amazonaws.medialive#StopMultiplex": { + "com.amazonaws.medialive#TransferInputDevice": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#StopMultiplexRequest" + "target": "com.amazonaws.medialive#TransferInputDeviceRequest" }, "output": { - "target": "com.amazonaws.medialive#StopMultiplexResponse" + "target": "com.amazonaws.medialive#TransferInputDeviceResponse" }, "errors": [ { @@ -23640,654 +28483,576 @@ }, { "target": "com.amazonaws.medialive#TooManyRequestsException" + }, + { + "target": "com.amazonaws.medialive#UnprocessableEntityException" } ], "traits": { - "smithy.api#documentation": "Stops a running multiplex. If the multiplex isn't running, this action has no effect.", + "smithy.api#documentation": "Start an input device transfer to another AWS account. After you make the request, the other account must accept or reject the transfer.", "smithy.api#http": { "method": "POST", - "uri": "/prod/multiplexes/{MultiplexId}/stop", - "code": 202 + "uri": "/prod/inputDevices/{InputDeviceId}/transfer", + "code": 200 } } }, - "com.amazonaws.medialive#StopMultiplexRequest": { + "com.amazonaws.medialive#TransferInputDeviceRequest": { "type": "structure", "members": { - "MultiplexId": { + "InputDeviceId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The ID of the multiplex.", + "smithy.api#documentation": "The unique ID of this input device. For example, hd-123456789abcdef.", "smithy.api#httpLabel": {}, "smithy.api#required": {} } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for StopMultiplexRequest", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#StopMultiplexResponse": { - "type": "structure", - "members": { - "Arn": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The unique arn of the multiplex.", - "smithy.api#jsonName": "arn" - } - }, - "AvailabilityZones": { - "target": "com.amazonaws.medialive#__listOf__string", - "traits": { - "smithy.api#documentation": "A list of availability zones for the multiplex.", - "smithy.api#jsonName": "availabilityZones" - } - }, - "Destinations": { - "target": "com.amazonaws.medialive#__listOfMultiplexOutputDestination", - "traits": { - "smithy.api#documentation": "A list of the multiplex output destinations.", - "smithy.api#jsonName": "destinations" - } }, - "Id": { + "TargetCustomerId": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The unique id of the multiplex.", - "smithy.api#jsonName": "id" - } - }, - "MultiplexSettings": { - "target": "com.amazonaws.medialive#MultiplexSettings", - "traits": { - "smithy.api#documentation": "Configuration for a multiplex event.", - "smithy.api#jsonName": "multiplexSettings" + "smithy.api#documentation": "The AWS account ID (12 digits) for the recipient of the device transfer.", + "smithy.api#jsonName": "targetCustomerId" } }, - "Name": { + "TargetRegion": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The name of the multiplex.", - "smithy.api#jsonName": "name" - } - }, - "PipelinesRunningCount": { - "target": "com.amazonaws.medialive#__integer", - "traits": { - "smithy.api#documentation": "The number of currently healthy pipelines.", - "smithy.api#jsonName": "pipelinesRunningCount" - } - }, - "ProgramCount": { - "target": "com.amazonaws.medialive#__integer", - "traits": { - "smithy.api#documentation": "The number of programs in the multiplex.", - "smithy.api#jsonName": "programCount" - } - }, - "State": { - "target": "com.amazonaws.medialive#MultiplexState", - "traits": { - "smithy.api#documentation": "The current state of the multiplex.", - "smithy.api#jsonName": "state" + "smithy.api#documentation": "The target AWS region to transfer the device.", + "smithy.api#jsonName": "targetRegion" } }, - "Tags": { - "target": "com.amazonaws.medialive#Tags", + "TransferMessage": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "A collection of key-value pairs.", - "smithy.api#jsonName": "tags" + "smithy.api#documentation": "An optional message for the recipient. Maximum 280 characters.", + "smithy.api#jsonName": "transferMessage" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for StopMultiplexResponse", + "smithy.api#documentation": "A request to transfer an input device.", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#TransferInputDeviceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Placeholder documentation for TransferInputDeviceResponse", "smithy.api#output": {} } }, - "com.amazonaws.medialive#StopTimecode": { + "com.amazonaws.medialive#TransferringInputDeviceSummary": { "type": "structure", "members": { - "LastFrameClippingBehavior": { - "target": "com.amazonaws.medialive#LastFrameClippingBehavior", + "Id": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "If you specify a StopTimecode in an input (in order to clip the file), you can specify if you want the clip to exclude (the default) or include the frame specified by the timecode.", - "smithy.api#jsonName": "lastFrameClippingBehavior" + "smithy.api#documentation": "The unique ID of the input device.", + "smithy.api#jsonName": "id" } }, - "Timecode": { + "Message": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The timecode for the frame where you want to stop the clip. Optional; if not specified, the clip continues to the end of the file. Enter the timecode as HH:MM:SS:FF or HH:MM:SS;FF.", - "smithy.api#jsonName": "timecode" + "smithy.api#documentation": "The optional message that the sender has attached to the transfer.", + "smithy.api#jsonName": "message" + } + }, + "TargetCustomerId": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The AWS account ID for the recipient of the input device transfer.", + "smithy.api#jsonName": "targetCustomerId" + } + }, + "TransferType": { + "target": "com.amazonaws.medialive#InputDeviceTransferType", + "traits": { + "smithy.api#documentation": "The type (direction) of the input device transfer.", + "smithy.api#jsonName": "transferType" } } }, "traits": { - "smithy.api#documentation": "Settings to identify the end of the clip." - } - }, - "com.amazonaws.medialive#Tags": { - "type": "map", - "key": { - "target": "com.amazonaws.medialive#__string" - }, - "value": { - "target": "com.amazonaws.medialive#__string" - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for Tags" - } - }, - "com.amazonaws.medialive#TeletextDestinationSettings": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Teletext Destination Settings" + "smithy.api#documentation": "Details about the input device that is being transferred." } }, - "com.amazonaws.medialive#TeletextSourceSettings": { + "com.amazonaws.medialive#TtmlDestinationSettings": { "type": "structure", "members": { - "OutputRectangle": { - "target": "com.amazonaws.medialive#CaptionRectangle", - "traits": { - "smithy.api#documentation": "Optionally defines a region where TTML style captions will be displayed", - "smithy.api#jsonName": "outputRectangle" - } - }, - "PageNumber": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "pageNumber" + "StyleControl": { + "target": "com.amazonaws.medialive#TtmlDestinationStyleControl", + "traits": { + "smithy.api#documentation": "This field is not currently supported and will not affect the output styling. Leave the default value.", + "smithy.api#jsonName": "styleControl" } } }, "traits": { - "smithy.api#documentation": "Teletext Source Settings" + "smithy.api#documentation": "Ttml Destination Settings" } }, - "com.amazonaws.medialive#TemporalFilterPostFilterSharpening": { + "com.amazonaws.medialive#TtmlDestinationStyleControl": { "type": "enum", "members": { - "AUTO": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AUTO" - } - }, - "DISABLED": { + "PASSTHROUGH": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#enumValue": "PASSTHROUGH" } }, - "ENABLED": { + "USE_CONFIGURED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "ENABLED" + "smithy.api#enumValue": "USE_CONFIGURED" } } }, "traits": { - "smithy.api#documentation": "Temporal Filter Post Filter Sharpening" + "smithy.api#documentation": "Ttml Destination Style Control" } }, - "com.amazonaws.medialive#TemporalFilterSettings": { + "com.amazonaws.medialive#UdpContainerSettings": { "type": "structure", "members": { - "PostFilterSharpening": { - "target": "com.amazonaws.medialive#TemporalFilterPostFilterSharpening", - "traits": { - "smithy.api#documentation": "If you enable this filter, the results are the following:\n- If the source content is noisy (it contains excessive digital artifacts), the filter cleans up the source.\n- If the source content is already clean, the filter tends to decrease the bitrate, especially when the rate control mode is QVBR.", - "smithy.api#jsonName": "postFilterSharpening" - } - }, - "Strength": { - "target": "com.amazonaws.medialive#TemporalFilterStrength", + "M2tsSettings": { + "target": "com.amazonaws.medialive#M2tsSettings", "traits": { - "smithy.api#documentation": "Choose a filter strength. We recommend a strength of 1 or 2. A higher strength might take out good information, resulting in an image that is overly soft.", - "smithy.api#jsonName": "strength" + "smithy.api#jsonName": "m2tsSettings" } } }, "traits": { - "smithy.api#documentation": "Temporal Filter Settings" + "smithy.api#documentation": "Udp Container Settings" } }, - "com.amazonaws.medialive#TemporalFilterStrength": { - "type": "enum", + "com.amazonaws.medialive#UdpGroupSettings": { + "type": "structure", "members": { - "AUTO": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AUTO" - } - }, - "STRENGTH_1": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "STRENGTH_1" - } - }, - "STRENGTH_2": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "STRENGTH_2" - } - }, - "STRENGTH_3": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "STRENGTH_3" - } - }, - "STRENGTH_4": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "STRENGTH_4" - } - }, - "STRENGTH_5": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "STRENGTH_5" - } - }, - "STRENGTH_6": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "STRENGTH_6" - } - }, - "STRENGTH_7": { - "target": "smithy.api#Unit", + "InputLossAction": { + "target": "com.amazonaws.medialive#InputLossActionForUdpOut", "traits": { - "smithy.api#enumValue": "STRENGTH_7" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "inputLossAction" } }, - "STRENGTH_8": { - "target": "smithy.api#Unit", + "TimedMetadataId3Frame": { + "target": "com.amazonaws.medialive#UdpTimedMetadataId3Frame", "traits": { - "smithy.api#enumValue": "STRENGTH_8" + "smithy.api#documentation": "Indicates ID3 frame that has the timecode.", + "smithy.api#jsonName": "timedMetadataId3Frame" } }, - "STRENGTH_9": { - "target": "smithy.api#Unit", + "TimedMetadataId3Period": { + "target": "com.amazonaws.medialive#__integerMin0", "traits": { - "smithy.api#enumValue": "STRENGTH_9" + "smithy.api#documentation": "Timed Metadata interval in seconds.", + "smithy.api#jsonName": "timedMetadataId3Period" } - }, - "STRENGTH_10": { - "target": "smithy.api#Unit", + } + }, + "traits": { + "smithy.api#documentation": "Udp Group Settings" + } + }, + "com.amazonaws.medialive#UdpOutputSettings": { + "type": "structure", + "members": { + "BufferMsec": { + "target": "com.amazonaws.medialive#__integerMin0Max10000", "traits": { - "smithy.api#enumValue": "STRENGTH_10" + "smithy.api#documentation": "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.", + "smithy.api#jsonName": "bufferMsec" } }, - "STRENGTH_11": { - "target": "smithy.api#Unit", + "ContainerSettings": { + "target": "com.amazonaws.medialive#UdpContainerSettings", "traits": { - "smithy.api#enumValue": "STRENGTH_11" + "smithy.api#clientOptional": {}, + "smithy.api#jsonName": "containerSettings", + "smithy.api#required": {} } }, - "STRENGTH_12": { - "target": "smithy.api#Unit", + "Destination": { + "target": "com.amazonaws.medialive#OutputLocationRef", "traits": { - "smithy.api#enumValue": "STRENGTH_12" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "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).", + "smithy.api#jsonName": "destination", + "smithy.api#required": {} } }, - "STRENGTH_13": { - "target": "smithy.api#Unit", + "FecOutputSettings": { + "target": "com.amazonaws.medialive#FecOutputSettings", "traits": { - "smithy.api#enumValue": "STRENGTH_13" + "smithy.api#documentation": "Settings for enabling and adjusting Forward Error Correction on UDP outputs.", + "smithy.api#jsonName": "fecOutputSettings" } - }, - "STRENGTH_14": { + } + }, + "traits": { + "smithy.api#documentation": "Udp Output Settings" + } + }, + "com.amazonaws.medialive#UdpTimedMetadataId3Frame": { + "type": "enum", + "members": { + "NONE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "STRENGTH_14" + "smithy.api#enumValue": "NONE" } }, - "STRENGTH_15": { + "PRIV": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "STRENGTH_15" + "smithy.api#enumValue": "PRIV" } }, - "STRENGTH_16": { + "TDRL": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "STRENGTH_16" + "smithy.api#enumValue": "TDRL" } } }, "traits": { - "smithy.api#documentation": "Temporal Filter Strength" + "smithy.api#documentation": "Udp Timed Metadata Id3 Frame" } }, - "com.amazonaws.medialive#Thumbnail": { + "com.amazonaws.medialive#UnprocessableEntityException": { "type": "structure", "members": { - "Body": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The binary data for the latest thumbnail.", - "smithy.api#jsonName": "body" - } - }, - "ContentType": { + "Message": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "The content type for the latest thumbnail.", - "smithy.api#jsonName": "contentType" - } - }, - "ThumbnailType": { - "target": "com.amazonaws.medialive#ThumbnailType", - "traits": { - "smithy.api#documentation": "Thumbnail Type", - "smithy.api#jsonName": "thumbnailType" + "smithy.api#documentation": "The error message.", + "smithy.api#jsonName": "message" } }, - "TimeStamp": { - "target": "com.amazonaws.medialive#__timestampIso8601", + "ValidationErrors": { + "target": "com.amazonaws.medialive#__listOfValidationError", "traits": { - "smithy.api#documentation": "Time stamp for the latest thumbnail.", - "smithy.api#jsonName": "timeStamp" + "smithy.api#documentation": "A collection of validation error responses.", + "smithy.api#jsonName": "validationErrors" } } }, "traits": { - "smithy.api#documentation": "Details of a single thumbnail" + "smithy.api#documentation": "Placeholder documentation for UnprocessableEntityException", + "smithy.api#error": "client", + "smithy.api#httpError": 422 } }, - "com.amazonaws.medialive#ThumbnailConfiguration": { - "type": "structure", - "members": { - "State": { - "target": "com.amazonaws.medialive#ThumbnailState", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Enables the thumbnail feature. The feature generates thumbnails of the incoming video in each pipeline in the channel. AUTO turns the feature on, DISABLE turns the feature off.", - "smithy.api#jsonName": "state", - "smithy.api#required": {} - } - } + "com.amazonaws.medialive#UpdateAccountConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#UpdateAccountConfigurationRequest" }, - "traits": { - "smithy.api#documentation": "Thumbnail Configuration" - } - }, - "com.amazonaws.medialive#ThumbnailDetail": { - "type": "structure", - "members": { - "PipelineId": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "Pipeline ID", - "smithy.api#jsonName": "pipelineId" - } + "output": { + "target": "com.amazonaws.medialive#UpdateAccountConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" + }, + { + "target": "com.amazonaws.medialive#BadRequestException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" }, - "Thumbnails": { - "target": "com.amazonaws.medialive#__listOfThumbnail", - "traits": { - "smithy.api#documentation": "thumbnails of a single pipeline", - "smithy.api#jsonName": "thumbnails" - } + { + "target": "com.amazonaws.medialive#UnprocessableEntityException" } - }, + ], "traits": { - "smithy.api#documentation": "Thumbnail details for one pipeline of a running channel." + "smithy.api#documentation": "Update account configuration", + "smithy.api#http": { + "method": "PUT", + "uri": "/prod/accountConfiguration", + "code": 200 + } } }, - "com.amazonaws.medialive#ThumbnailState": { - "type": "enum", + "com.amazonaws.medialive#UpdateAccountConfigurationRequest": { + "type": "structure", "members": { - "AUTO": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AUTO" - } - }, - "DISABLED": { - "target": "smithy.api#Unit", + "AccountConfiguration": { + "target": "com.amazonaws.medialive#AccountConfiguration", "traits": { - "smithy.api#enumValue": "DISABLED" + "smithy.api#jsonName": "accountConfiguration" } } }, "traits": { - "smithy.api#documentation": "Thumbnail State" + "smithy.api#documentation": "List of account configuration parameters to update.", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#ThumbnailType": { - "type": "enum", + "com.amazonaws.medialive#UpdateAccountConfigurationResponse": { + "type": "structure", "members": { - "UNSPECIFIED": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "UNSPECIFIED" - } - }, - "CURRENT_ACTIVE": { - "target": "smithy.api#Unit", + "AccountConfiguration": { + "target": "com.amazonaws.medialive#AccountConfiguration", "traits": { - "smithy.api#enumValue": "CURRENT_ACTIVE" + "smithy.api#jsonName": "accountConfiguration" } } }, "traits": { - "smithy.api#documentation": "Thumbnail type." + "smithy.api#documentation": "Placeholder documentation for UpdateAccountConfigurationResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#TimecodeBurninFontSize": { - "type": "enum", - "members": { - "EXTRA_SMALL_10": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "EXTRA_SMALL_10" - } + "com.amazonaws.medialive#UpdateChannel": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#UpdateChannelRequest" + }, + "output": { + "target": "com.amazonaws.medialive#UpdateChannelResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" }, - "LARGE_48": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "LARGE_48" - } + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "MEDIUM_32": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "MEDIUM_32" - } + { + "target": "com.amazonaws.medialive#ConflictException" }, - "SMALL_16": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SMALL_16" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#UnprocessableEntityException" } - }, + ], "traits": { - "smithy.api#documentation": "Timecode Burnin Font Size" + "smithy.api#documentation": "Updates a channel.", + "smithy.api#http": { + "method": "PUT", + "uri": "/prod/channels/{ChannelId}", + "code": 200 + } } }, - "com.amazonaws.medialive#TimecodeBurninPosition": { - "type": "enum", - "members": { - "BOTTOM_CENTER": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "BOTTOM_CENTER" - } + "com.amazonaws.medialive#UpdateChannelClass": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#UpdateChannelClassRequest" + }, + "output": { + "target": "com.amazonaws.medialive#UpdateChannelClassResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadGatewayException" }, - "BOTTOM_LEFT": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "BOTTOM_LEFT" - } + { + "target": "com.amazonaws.medialive#BadRequestException" }, - "BOTTOM_RIGHT": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "BOTTOM_RIGHT" - } + { + "target": "com.amazonaws.medialive#ConflictException" }, - "MIDDLE_CENTER": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "MIDDLE_CENTER" - } + { + "target": "com.amazonaws.medialive#ForbiddenException" }, - "MIDDLE_LEFT": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "MIDDLE_LEFT" - } + { + "target": "com.amazonaws.medialive#GatewayTimeoutException" }, - "MIDDLE_RIGHT": { - "target": "smithy.api#Unit", + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" + }, + { + "target": "com.amazonaws.medialive#UnprocessableEntityException" + } + ], + "traits": { + "smithy.api#documentation": "Changes the class of the channel.", + "smithy.api#http": { + "method": "PUT", + "uri": "/prod/channels/{ChannelId}/channelClass", + "code": 200 + } + } + }, + "com.amazonaws.medialive#UpdateChannelClassRequest": { + "type": "structure", + "members": { + "ChannelClass": { + "target": "com.amazonaws.medialive#ChannelClass", "traits": { - "smithy.api#enumValue": "MIDDLE_RIGHT" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The channel class that you wish to update this channel to use.", + "smithy.api#jsonName": "channelClass", + "smithy.api#required": {} } }, - "TOP_CENTER": { - "target": "smithy.api#Unit", + "ChannelId": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "TOP_CENTER" + "smithy.api#documentation": "Channel Id of the channel whose class should be updated.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, - "TOP_LEFT": { - "target": "smithy.api#Unit", + "Destinations": { + "target": "com.amazonaws.medialive#__listOfOutputDestination", "traits": { - "smithy.api#enumValue": "TOP_LEFT" + "smithy.api#documentation": "A list of output destinations for this channel.", + "smithy.api#jsonName": "destinations" } - }, - "TOP_RIGHT": { - "target": "smithy.api#Unit", + } + }, + "traits": { + "smithy.api#documentation": "Channel class that the channel should be updated to.", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#UpdateChannelClassResponse": { + "type": "structure", + "members": { + "Channel": { + "target": "com.amazonaws.medialive#Channel", "traits": { - "smithy.api#enumValue": "TOP_RIGHT" + "smithy.api#jsonName": "channel" } } }, "traits": { - "smithy.api#documentation": "Timecode Burnin Position" + "smithy.api#documentation": "Placeholder documentation for UpdateChannelClassResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#TimecodeBurninSettings": { + "com.amazonaws.medialive#UpdateChannelRequest": { "type": "structure", "members": { - "FontSize": { - "target": "com.amazonaws.medialive#TimecodeBurninFontSize", + "CdiInputSpecification": { + "target": "com.amazonaws.medialive#CdiInputSpecification", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Choose a timecode burn-in font size", - "smithy.api#jsonName": "fontSize", + "smithy.api#documentation": "Specification of CDI inputs for this channel", + "smithy.api#jsonName": "cdiInputSpecification" + } + }, + "ChannelId": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "channel ID", + "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "Position": { - "target": "com.amazonaws.medialive#TimecodeBurninPosition", + "Destinations": { + "target": "com.amazonaws.medialive#__listOfOutputDestination", + "traits": { + "smithy.api#documentation": "A list of output destinations for this channel.", + "smithy.api#jsonName": "destinations" + } + }, + "EncoderSettings": { + "target": "com.amazonaws.medialive#EncoderSettings", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "Choose a timecode burn-in output position", - "smithy.api#jsonName": "position", - "smithy.api#required": {} + "smithy.api#documentation": "The encoder settings for this channel.", + "smithy.api#jsonName": "encoderSettings" } }, - "Prefix": { - "target": "com.amazonaws.medialive#__stringMax255", + "InputAttachments": { + "target": "com.amazonaws.medialive#__listOfInputAttachment", "traits": { - "smithy.api#documentation": "Create a timecode burn-in prefix (optional)", - "smithy.api#jsonName": "prefix" + "smithy.api#jsonName": "inputAttachments" } - } - }, - "traits": { - "smithy.api#documentation": "Timecode Burnin Settings" - } - }, - "com.amazonaws.medialive#TimecodeConfig": { - "type": "structure", - "members": { - "Source": { - "target": "com.amazonaws.medialive#TimecodeConfigSource", + }, + "InputSpecification": { + "target": "com.amazonaws.medialive#InputSpecification", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "source", - "smithy.api#required": {} + "smithy.api#documentation": "Specification of network and file inputs for this channel", + "smithy.api#jsonName": "inputSpecification" } }, - "SyncThreshold": { - "target": "com.amazonaws.medialive#__integerMin1Max1000000", + "LogLevel": { + "target": "com.amazonaws.medialive#LogLevel", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "syncThreshold" + "smithy.api#documentation": "The log level to write to CloudWatch Logs.", + "smithy.api#jsonName": "logLevel" } - } - }, - "traits": { - "smithy.api#documentation": "Timecode Config" - } - }, - "com.amazonaws.medialive#TimecodeConfigSource": { - "type": "enum", - "members": { - "EMBEDDED": { - "target": "smithy.api#Unit", + }, + "Maintenance": { + "target": "com.amazonaws.medialive#MaintenanceUpdateSettings", "traits": { - "smithy.api#enumValue": "EMBEDDED" + "smithy.api#documentation": "Maintenance settings for this channel.", + "smithy.api#jsonName": "maintenance" } }, - "SYSTEMCLOCK": { - "target": "smithy.api#Unit", + "Name": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "SYSTEMCLOCK" + "smithy.api#documentation": "The name of the channel.", + "smithy.api#jsonName": "name" } }, - "ZEROBASED": { - "target": "smithy.api#Unit", + "RoleArn": { + "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#enumValue": "ZEROBASED" + "smithy.api#documentation": "An optional Amazon Resource Name (ARN) of the role to assume when running the Channel. If you do not specify this on an update call but the role was previously set that role will be removed.", + "smithy.api#jsonName": "roleArn" } } }, "traits": { - "smithy.api#documentation": "Timecode Config Source" + "smithy.api#documentation": "A request to update a channel.", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#TooManyRequestsException": { + "com.amazonaws.medialive#UpdateChannelResponse": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.medialive#__string", + "Channel": { + "target": "com.amazonaws.medialive#Channel", "traits": { - "smithy.api#jsonName": "message" + "smithy.api#jsonName": "channel" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for TooManyRequestsException", - "smithy.api#error": "client", - "smithy.api#httpError": 429 + "smithy.api#documentation": "Placeholder documentation for UpdateChannelResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#TransferInputDevice": { + "com.amazonaws.medialive#UpdateCloudWatchAlarmTemplate": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#TransferInputDeviceRequest" + "target": "com.amazonaws.medialive#UpdateCloudWatchAlarmTemplateRequest" }, "output": { - "target": "com.amazonaws.medialive#TransferInputDeviceResponse" + "target": "com.amazonaws.medialive#UpdateCloudWatchAlarmTemplateResponse" }, "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, { "target": "com.amazonaws.medialive#BadRequestException" }, @@ -24297,9 +29062,6 @@ { "target": "com.amazonaws.medialive#ForbiddenException" }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" - }, { "target": "com.amazonaws.medialive#InternalServerErrorException" }, @@ -24308,351 +29070,397 @@ }, { "target": "com.amazonaws.medialive#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "Updates the specified cloudwatch alarm template.", + "smithy.api#http": { + "method": "PATCH", + "uri": "/prod/cloudwatch-alarm-templates/{Identifier}", + "code": 200 + } + } + }, + "com.amazonaws.medialive#UpdateCloudWatchAlarmTemplateGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.medialive#UpdateCloudWatchAlarmTemplateGroupRequest" + }, + "output": { + "target": "com.amazonaws.medialive#UpdateCloudWatchAlarmTemplateGroupResponse" + }, + "errors": [ + { + "target": "com.amazonaws.medialive#BadRequestException" }, { - "target": "com.amazonaws.medialive#UnprocessableEntityException" + "target": "com.amazonaws.medialive#ConflictException" + }, + { + "target": "com.amazonaws.medialive#ForbiddenException" + }, + { + "target": "com.amazonaws.medialive#InternalServerErrorException" + }, + { + "target": "com.amazonaws.medialive#NotFoundException" + }, + { + "target": "com.amazonaws.medialive#TooManyRequestsException" } ], "traits": { - "smithy.api#documentation": "Start an input device transfer to another AWS account. After you make the request, the other account must accept or reject the transfer.", + "smithy.api#documentation": "Updates the specified cloudwatch alarm template group.", "smithy.api#http": { - "method": "POST", - "uri": "/prod/inputDevices/{InputDeviceId}/transfer", + "method": "PATCH", + "uri": "/prod/cloudwatch-alarm-template-groups/{Identifier}", "code": 200 } } }, - "com.amazonaws.medialive#TransferInputDeviceRequest": { + "com.amazonaws.medialive#UpdateCloudWatchAlarmTemplateGroupRequest": { "type": "structure", "members": { - "InputDeviceId": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The unique ID of this input device. For example, hd-123456789abcdef.", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - }, - "TargetCustomerId": { - "target": "com.amazonaws.medialive#__string", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#documentation": "The AWS account ID (12 digits) for the recipient of the device transfer.", - "smithy.api#jsonName": "targetCustomerId" - } - }, - "TargetRegion": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "The target AWS region to transfer the device.", - "smithy.api#jsonName": "targetRegion" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "TransferMessage": { + "Identifier": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "An optional message for the recipient. Maximum 280 characters.", - "smithy.api#jsonName": "transferMessage" + "smithy.api#documentation": "A cloudwatch alarm template group's identifier. Can be either be its id or current name.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "A request to transfer an input device.", + "smithy.api#documentation": "Placeholder documentation for UpdateCloudWatchAlarmTemplateGroupRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#TransferInputDeviceResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "Placeholder documentation for TransferInputDeviceResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#TransferringInputDeviceSummary": { + "com.amazonaws.medialive#UpdateCloudWatchAlarmTemplateGroupResponse": { "type": "structure", "members": { + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveCloudwatchAlarmTemplateGroup", + "traits": { + "smithy.api#documentation": "A cloudwatch alarm template group's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" + } + }, + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "createdAt" + } + }, + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", + "traits": { + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" + } + }, "Id": { - "target": "com.amazonaws.medialive#__string", + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#documentation": "The unique ID of the input device.", + "smithy.api#documentation": "A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-`", "smithy.api#jsonName": "id" } }, - "Message": { - "target": "com.amazonaws.medialive#__string", + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#documentation": "The optional message that the sender has attached to the transfer.", - "smithy.api#jsonName": "message" + "smithy.api#jsonName": "modifiedAt" } }, - "TargetCustomerId": { - "target": "com.amazonaws.medialive#__string", + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", "traits": { - "smithy.api#documentation": "The AWS account ID for the recipient of the input device transfer.", - "smithy.api#jsonName": "targetCustomerId" + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" } }, - "TransferType": { - "target": "com.amazonaws.medialive#InputDeviceTransferType", + "Tags": { + "target": "com.amazonaws.medialive#TagMap", "traits": { - "smithy.api#documentation": "The type (direction) of the input device transfer.", - "smithy.api#jsonName": "transferType" + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "Details about the input device that is being transferred." + "smithy.api#documentation": "Placeholder documentation for UpdateCloudWatchAlarmTemplateGroupResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#TtmlDestinationSettings": { + "com.amazonaws.medialive#UpdateCloudWatchAlarmTemplateRequest": { "type": "structure", "members": { - "StyleControl": { - "target": "com.amazonaws.medialive#TtmlDestinationStyleControl", + "ComparisonOperator": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateComparisonOperator", "traits": { - "smithy.api#documentation": "This field is not currently supported and will not affect the output styling. Leave the default value.", - "smithy.api#jsonName": "styleControl" + "smithy.api#jsonName": "comparisonOperator" } - } - }, - "traits": { - "smithy.api#documentation": "Ttml Destination Settings" - } - }, - "com.amazonaws.medialive#TtmlDestinationStyleControl": { - "type": "enum", - "members": { - "PASSTHROUGH": { - "target": "smithy.api#Unit", + }, + "DatapointsToAlarm": { + "target": "com.amazonaws.medialive#__integerMin1", + "traits": { + "smithy.api#documentation": "The number of datapoints within the evaluation period that must be breaching to trigger the alarm.", + "smithy.api#jsonName": "datapointsToAlarm" + } + }, + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", + "traits": { + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" + } + }, + "EvaluationPeriods": { + "target": "com.amazonaws.medialive#__integerMin1", + "traits": { + "smithy.api#documentation": "The number of periods over which data is compared to the specified threshold.", + "smithy.api#jsonName": "evaluationPeriods" + } + }, + "GroupIdentifier": { + "target": "com.amazonaws.medialive#__stringPatternS", + "traits": { + "smithy.api#documentation": "A cloudwatch alarm template group's identifier. Can be either be its id or current name.", + "smithy.api#jsonName": "groupIdentifier" + } + }, + "Identifier": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "A cloudwatch alarm template's identifier. Can be either be its id or current name.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "MetricName": { + "target": "com.amazonaws.medialive#__stringMax64", + "traits": { + "smithy.api#documentation": "The name of the metric associated with the alarm. Must be compatible with targetResourceType.", + "smithy.api#jsonName": "metricName" + } + }, + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" + } + }, + "Period": { + "target": "com.amazonaws.medialive#__integerMin10Max86400", + "traits": { + "smithy.api#documentation": "The period, in seconds, over which the specified statistic is applied.", + "smithy.api#jsonName": "period" + } + }, + "Statistic": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateStatistic", + "traits": { + "smithy.api#jsonName": "statistic" + } + }, + "TargetResourceType": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateTargetResourceType", + "traits": { + "smithy.api#jsonName": "targetResourceType" + } + }, + "Threshold": { + "target": "com.amazonaws.medialive#__double", "traits": { - "smithy.api#enumValue": "PASSTHROUGH" + "smithy.api#documentation": "The threshold value to compare with the specified statistic.", + "smithy.api#jsonName": "threshold" } }, - "USE_CONFIGURED": { - "target": "smithy.api#Unit", + "TreatMissingData": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateTreatMissingData", "traits": { - "smithy.api#enumValue": "USE_CONFIGURED" + "smithy.api#jsonName": "treatMissingData" } } }, "traits": { - "smithy.api#documentation": "Ttml Destination Style Control" + "smithy.api#documentation": "Placeholder documentation for UpdateCloudWatchAlarmTemplateRequest", + "smithy.api#input": {} } }, - "com.amazonaws.medialive#UdpContainerSettings": { + "com.amazonaws.medialive#UpdateCloudWatchAlarmTemplateResponse": { "type": "structure", "members": { - "M2tsSettings": { - "target": "com.amazonaws.medialive#M2tsSettings", + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveCloudwatchAlarmTemplate", "traits": { - "smithy.api#jsonName": "m2tsSettings" + "smithy.api#documentation": "A cloudwatch alarm template's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" } - } - }, - "traits": { - "smithy.api#documentation": "Udp Container Settings" - } - }, - "com.amazonaws.medialive#UdpGroupSettings": { - "type": "structure", - "members": { - "InputLossAction": { - "target": "com.amazonaws.medialive#InputLossActionForUdpOut", + }, + "ComparisonOperator": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateComparisonOperator", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "inputLossAction" + "smithy.api#jsonName": "comparisonOperator" } }, - "TimedMetadataId3Frame": { - "target": "com.amazonaws.medialive#UdpTimedMetadataId3Frame", + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#documentation": "Indicates ID3 frame that has the timecode.", - "smithy.api#jsonName": "timedMetadataId3Frame" + "smithy.api#jsonName": "createdAt" } }, - "TimedMetadataId3Period": { - "target": "com.amazonaws.medialive#__integerMin0", + "DatapointsToAlarm": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#documentation": "Timed Metadata interval in seconds.", - "smithy.api#jsonName": "timedMetadataId3Period" + "smithy.api#documentation": "The number of datapoints within the evaluation period that must be breaching to trigger the alarm.", + "smithy.api#jsonName": "datapointsToAlarm" } - } - }, - "traits": { - "smithy.api#documentation": "Udp Group Settings" - } - }, - "com.amazonaws.medialive#UdpOutputSettings": { - "type": "structure", - "members": { - "BufferMsec": { - "target": "com.amazonaws.medialive#__integerMin0Max10000", + }, + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#documentation": "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.", - "smithy.api#jsonName": "bufferMsec" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "ContainerSettings": { - "target": "com.amazonaws.medialive#UdpContainerSettings", + "EvaluationPeriods": { + "target": "com.amazonaws.medialive#__integerMin1", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#jsonName": "containerSettings", - "smithy.api#required": {} + "smithy.api#documentation": "The number of periods over which data is compared to the specified threshold.", + "smithy.api#jsonName": "evaluationPeriods" } }, - "Destination": { - "target": "com.amazonaws.medialive#OutputLocationRef", + "GroupId": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "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).", - "smithy.api#jsonName": "destination", - "smithy.api#required": {} + "smithy.api#documentation": "A cloudwatch alarm template group's id. AWS provided template groups have ids that start with `aws-`", + "smithy.api#jsonName": "groupId" } }, - "FecOutputSettings": { - "target": "com.amazonaws.medialive#FecOutputSettings", + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#documentation": "Settings for enabling and adjusting Forward Error Correction on UDP outputs.", - "smithy.api#jsonName": "fecOutputSettings" + "smithy.api#documentation": "A cloudwatch alarm template's id. AWS provided templates have ids that start with `aws-`", + "smithy.api#jsonName": "id" } - } - }, - "traits": { - "smithy.api#documentation": "Udp Output Settings" - } - }, - "com.amazonaws.medialive#UdpTimedMetadataId3Frame": { - "type": "enum", - "members": { - "NONE": { - "target": "smithy.api#Unit", + }, + "MetricName": { + "target": "com.amazonaws.medialive#__stringMax64", "traits": { - "smithy.api#enumValue": "NONE" + "smithy.api#documentation": "The name of the metric associated with the alarm. Must be compatible with targetResourceType.", + "smithy.api#jsonName": "metricName" } }, - "PRIV": { - "target": "smithy.api#Unit", + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#enumValue": "PRIV" + "smithy.api#jsonName": "modifiedAt" } }, - "TDRL": { - "target": "smithy.api#Unit", + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", "traits": { - "smithy.api#enumValue": "TDRL" + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" } - } - }, - "traits": { - "smithy.api#documentation": "Udp Timed Metadata Id3 Frame" - } - }, - "com.amazonaws.medialive#UnprocessableEntityException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.medialive#__string", + }, + "Period": { + "target": "com.amazonaws.medialive#__integerMin10Max86400", "traits": { - "smithy.api#documentation": "The error message.", - "smithy.api#jsonName": "message" + "smithy.api#documentation": "The period, in seconds, over which the specified statistic is applied.", + "smithy.api#jsonName": "period" } }, - "ValidationErrors": { - "target": "com.amazonaws.medialive#__listOfValidationError", + "Statistic": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateStatistic", "traits": { - "smithy.api#documentation": "A collection of validation error responses.", - "smithy.api#jsonName": "validationErrors" + "smithy.api#jsonName": "statistic" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#TagMap", + "traits": { + "smithy.api#jsonName": "tags" + } + }, + "TargetResourceType": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateTargetResourceType", + "traits": { + "smithy.api#jsonName": "targetResourceType" + } + }, + "Threshold": { + "target": "com.amazonaws.medialive#__double", + "traits": { + "smithy.api#documentation": "The threshold value to compare with the specified statistic.", + "smithy.api#jsonName": "threshold" + } + }, + "TreatMissingData": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateTreatMissingData", + "traits": { + "smithy.api#jsonName": "treatMissingData" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for UnprocessableEntityException", - "smithy.api#error": "client", - "smithy.api#httpError": 422 + "smithy.api#documentation": "Placeholder documentation for UpdateCloudWatchAlarmTemplateResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#UpdateAccountConfiguration": { + "com.amazonaws.medialive#UpdateEventBridgeRuleTemplate": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#UpdateAccountConfigurationRequest" + "target": "com.amazonaws.medialive#UpdateEventBridgeRuleTemplateRequest" }, "output": { - "target": "com.amazonaws.medialive#UpdateAccountConfigurationResponse" + "target": "com.amazonaws.medialive#UpdateEventBridgeRuleTemplateResponse" }, "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, { "target": "com.amazonaws.medialive#BadRequestException" }, { - "target": "com.amazonaws.medialive#ForbiddenException" + "target": "com.amazonaws.medialive#ConflictException" }, { - "target": "com.amazonaws.medialive#GatewayTimeoutException" + "target": "com.amazonaws.medialive#ForbiddenException" }, { "target": "com.amazonaws.medialive#InternalServerErrorException" }, { - "target": "com.amazonaws.medialive#TooManyRequestsException" + "target": "com.amazonaws.medialive#NotFoundException" }, { - "target": "com.amazonaws.medialive#UnprocessableEntityException" + "target": "com.amazonaws.medialive#TooManyRequestsException" } ], "traits": { - "smithy.api#documentation": "Update account configuration", + "smithy.api#documentation": "Updates the specified eventbridge rule template.", "smithy.api#http": { - "method": "PUT", - "uri": "/prod/accountConfiguration", + "method": "PATCH", + "uri": "/prod/eventbridge-rule-templates/{Identifier}", "code": 200 } } }, - "com.amazonaws.medialive#UpdateAccountConfigurationRequest": { - "type": "structure", - "members": { - "AccountConfiguration": { - "target": "com.amazonaws.medialive#AccountConfiguration", - "traits": { - "smithy.api#jsonName": "accountConfiguration" - } - } - }, - "traits": { - "smithy.api#documentation": "List of account configuration parameters to update.", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#UpdateAccountConfigurationResponse": { - "type": "structure", - "members": { - "AccountConfiguration": { - "target": "com.amazonaws.medialive#AccountConfiguration", - "traits": { - "smithy.api#jsonName": "accountConfiguration" - } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for UpdateAccountConfigurationResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#UpdateChannel": { + "com.amazonaws.medialive#UpdateEventBridgeRuleTemplateGroup": { "type": "operation", "input": { - "target": "com.amazonaws.medialive#UpdateChannelRequest" + "target": "com.amazonaws.medialive#UpdateEventBridgeRuleTemplateGroupRequest" }, "output": { - "target": "com.amazonaws.medialive#UpdateChannelResponse" + "target": "com.amazonaws.medialive#UpdateEventBridgeRuleTemplateGroupResponse" }, "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, { "target": "com.amazonaws.medialive#BadRequestException" }, @@ -24663,209 +29471,224 @@ "target": "com.amazonaws.medialive#ForbiddenException" }, { - "target": "com.amazonaws.medialive#GatewayTimeoutException" + "target": "com.amazonaws.medialive#InternalServerErrorException" }, { - "target": "com.amazonaws.medialive#InternalServerErrorException" + "target": "com.amazonaws.medialive#NotFoundException" }, { - "target": "com.amazonaws.medialive#UnprocessableEntityException" + "target": "com.amazonaws.medialive#TooManyRequestsException" } ], "traits": { - "smithy.api#documentation": "Updates a channel.", + "smithy.api#documentation": "Updates the specified eventbridge rule template group.", "smithy.api#http": { - "method": "PUT", - "uri": "/prod/channels/{ChannelId}", + "method": "PATCH", + "uri": "/prod/eventbridge-rule-template-groups/{Identifier}", "code": 200 } } }, - "com.amazonaws.medialive#UpdateChannelClass": { - "type": "operation", - "input": { - "target": "com.amazonaws.medialive#UpdateChannelClassRequest" - }, - "output": { - "target": "com.amazonaws.medialive#UpdateChannelClassResponse" - }, - "errors": [ - { - "target": "com.amazonaws.medialive#BadGatewayException" - }, - { - "target": "com.amazonaws.medialive#BadRequestException" - }, - { - "target": "com.amazonaws.medialive#ConflictException" + "com.amazonaws.medialive#UpdateEventBridgeRuleTemplateGroupRequest": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", + "traits": { + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" + } }, - { - "target": "com.amazonaws.medialive#ForbiddenException" + "Identifier": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "An eventbridge rule template group's identifier. Can be either be its id or current name.", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for UpdateEventBridgeRuleTemplateGroupRequest", + "smithy.api#input": {} + } + }, + "com.amazonaws.medialive#UpdateEventBridgeRuleTemplateGroupResponse": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveEventbridgeRuleTemplateGroup", + "traits": { + "smithy.api#documentation": "An eventbridge rule template group's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" + } }, - { - "target": "com.amazonaws.medialive#GatewayTimeoutException" + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "createdAt" + } }, - { - "target": "com.amazonaws.medialive#InternalServerErrorException" + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", + "traits": { + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" + } }, - { - "target": "com.amazonaws.medialive#NotFoundException" + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", + "traits": { + "smithy.api#documentation": "An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-`", + "smithy.api#jsonName": "id" + } }, - { - "target": "com.amazonaws.medialive#TooManyRequestsException" + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", + "traits": { + "smithy.api#jsonName": "modifiedAt" + } }, - { - "target": "com.amazonaws.medialive#UnprocessableEntityException" + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", + "traits": { + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" + } + }, + "Tags": { + "target": "com.amazonaws.medialive#TagMap", + "traits": { + "smithy.api#jsonName": "tags" + } } - ], + }, "traits": { - "smithy.api#documentation": "Changes the class of the channel.", - "smithy.api#http": { - "method": "PUT", - "uri": "/prod/channels/{ChannelId}/channelClass", - "code": 200 - } + "smithy.api#documentation": "Placeholder documentation for UpdateEventBridgeRuleTemplateGroupResponse", + "smithy.api#output": {} } }, - "com.amazonaws.medialive#UpdateChannelClassRequest": { + "com.amazonaws.medialive#UpdateEventBridgeRuleTemplateRequest": { "type": "structure", "members": { - "ChannelClass": { - "target": "com.amazonaws.medialive#ChannelClass", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The channel class that you wish to update this channel to use.", - "smithy.api#jsonName": "channelClass", - "smithy.api#required": {} + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "ChannelId": { + "EventTargets": { + "target": "com.amazonaws.medialive#__listOfEventBridgeRuleTemplateTarget", + "traits": { + "smithy.api#jsonName": "eventTargets" + } + }, + "EventType": { + "target": "com.amazonaws.medialive#EventBridgeRuleTemplateEventType", + "traits": { + "smithy.api#jsonName": "eventType" + } + }, + "GroupIdentifier": { + "target": "com.amazonaws.medialive#__stringPatternS", + "traits": { + "smithy.api#documentation": "An eventbridge rule template group's identifier. Can be either be its id or current name.", + "smithy.api#jsonName": "groupIdentifier" + } + }, + "Identifier": { "target": "com.amazonaws.medialive#__string", "traits": { - "smithy.api#documentation": "Channel Id of the channel whose class should be updated.", + "smithy.api#documentation": "An eventbridge rule template's identifier. Can be either be its id or current name.", "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "Destinations": { - "target": "com.amazonaws.medialive#__listOfOutputDestination", + "Name": { + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", "traits": { - "smithy.api#documentation": "A list of output destinations for this channel.", - "smithy.api#jsonName": "destinations" + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", + "smithy.api#jsonName": "name" } } }, "traits": { - "smithy.api#documentation": "Channel class that the channel should be updated to.", + "smithy.api#documentation": "Placeholder documentation for UpdateEventBridgeRuleTemplateRequest", "smithy.api#input": {} } }, - "com.amazonaws.medialive#UpdateChannelClassResponse": { - "type": "structure", - "members": { - "Channel": { - "target": "com.amazonaws.medialive#Channel", - "traits": { - "smithy.api#jsonName": "channel" - } - } - }, - "traits": { - "smithy.api#documentation": "Placeholder documentation for UpdateChannelClassResponse", - "smithy.api#output": {} - } - }, - "com.amazonaws.medialive#UpdateChannelRequest": { + "com.amazonaws.medialive#UpdateEventBridgeRuleTemplateResponse": { "type": "structure", "members": { - "CdiInputSpecification": { - "target": "com.amazonaws.medialive#CdiInputSpecification", + "Arn": { + "target": "com.amazonaws.medialive#__stringPatternArnMedialiveEventbridgeRuleTemplate", "traits": { - "smithy.api#documentation": "Specification of CDI inputs for this channel", - "smithy.api#jsonName": "cdiInputSpecification" + "smithy.api#documentation": "An eventbridge rule template's ARN (Amazon Resource Name)", + "smithy.api#jsonName": "arn" } }, - "ChannelId": { - "target": "com.amazonaws.medialive#__string", + "CreatedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#documentation": "channel ID", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#jsonName": "createdAt" } }, - "Destinations": { - "target": "com.amazonaws.medialive#__listOfOutputDestination", + "Description": { + "target": "com.amazonaws.medialive#__stringMin0Max1024", "traits": { - "smithy.api#documentation": "A list of output destinations for this channel.", - "smithy.api#jsonName": "destinations" + "smithy.api#documentation": "A resource's optional description.", + "smithy.api#jsonName": "description" } }, - "EncoderSettings": { - "target": "com.amazonaws.medialive#EncoderSettings", + "EventTargets": { + "target": "com.amazonaws.medialive#__listOfEventBridgeRuleTemplateTarget", "traits": { - "smithy.api#documentation": "The encoder settings for this channel.", - "smithy.api#jsonName": "encoderSettings" + "smithy.api#jsonName": "eventTargets" } }, - "InputAttachments": { - "target": "com.amazonaws.medialive#__listOfInputAttachment", + "EventType": { + "target": "com.amazonaws.medialive#EventBridgeRuleTemplateEventType", "traits": { - "smithy.api#jsonName": "inputAttachments" + "smithy.api#jsonName": "eventType" } }, - "InputSpecification": { - "target": "com.amazonaws.medialive#InputSpecification", + "GroupId": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#documentation": "Specification of network and file inputs for this channel", - "smithy.api#jsonName": "inputSpecification" + "smithy.api#documentation": "An eventbridge rule template group's id. AWS provided template groups have ids that start with `aws-`", + "smithy.api#jsonName": "groupId" } }, - "LogLevel": { - "target": "com.amazonaws.medialive#LogLevel", + "Id": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097", "traits": { - "smithy.api#documentation": "The log level to write to CloudWatch Logs.", - "smithy.api#jsonName": "logLevel" + "smithy.api#documentation": "An eventbridge rule template's id. AWS provided templates have ids that start with `aws-`", + "smithy.api#jsonName": "id" } }, - "Maintenance": { - "target": "com.amazonaws.medialive#MaintenanceUpdateSettings", + "ModifiedAt": { + "target": "com.amazonaws.medialive#__timestampIso8601", "traits": { - "smithy.api#documentation": "Maintenance settings for this channel.", - "smithy.api#jsonName": "maintenance" + "smithy.api#jsonName": "modifiedAt" } }, "Name": { - "target": "com.amazonaws.medialive#__string", + "target": "com.amazonaws.medialive#__stringMin1Max255PatternS", "traits": { - "smithy.api#documentation": "The name of the channel.", + "smithy.api#documentation": "A resource's name. Names must be unique within the scope of a resource type in a specific region.", "smithy.api#jsonName": "name" } }, - "RoleArn": { - "target": "com.amazonaws.medialive#__string", - "traits": { - "smithy.api#documentation": "An optional Amazon Resource Name (ARN) of the role to assume when running the Channel. If you do not specify this on an update call but the role was previously set that role will be removed.", - "smithy.api#jsonName": "roleArn" - } - } - }, - "traits": { - "smithy.api#documentation": "A request to update a channel.", - "smithy.api#input": {} - } - }, - "com.amazonaws.medialive#UpdateChannelResponse": { - "type": "structure", - "members": { - "Channel": { - "target": "com.amazonaws.medialive#Channel", + "Tags": { + "target": "com.amazonaws.medialive#TagMap", "traits": { - "smithy.api#jsonName": "channel" + "smithy.api#jsonName": "tags" } } }, "traits": { - "smithy.api#documentation": "Placeholder documentation for UpdateChannelResponse", + "smithy.api#documentation": "Placeholder documentation for UpdateEventBridgeRuleTemplateResponse", "smithy.api#output": {} } }, @@ -26057,6 +30880,12 @@ "smithy.api#documentation": "Webvtt Destination Style Control" } }, + "com.amazonaws.medialive#__boolean": { + "type": "boolean", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __boolean" + } + }, "com.amazonaws.medialive#__double": { "type": "double", "traits": { @@ -26111,6 +30940,15 @@ "smithy.api#documentation": "Placeholder documentation for __integer" } }, + "com.amazonaws.medialive#__integerMax5": { + "type": "integer", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __integerMax5", + "smithy.api#range": { + "max": 5 + } + } + }, "com.amazonaws.medialive#__integerMin0": { "type": "integer", "traits": { @@ -26387,6 +31225,16 @@ } } }, + "com.amazonaws.medialive#__integerMin10Max86400": { + "type": "integer", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __integerMin10Max86400", + "smithy.api#range": { + "min": 10, + "max": 86400 + } + } + }, "com.amazonaws.medialive#__integerMin1Max10": { "type": "integer", "traits": { @@ -26753,6 +31601,24 @@ "smithy.api#documentation": "Placeholder documentation for __listOfChannelSummary" } }, + "com.amazonaws.medialive#__listOfCloudWatchAlarmTemplateGroupSummary": { + "type": "list", + "member": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateGroupSummary" + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for __listOfCloudWatchAlarmTemplateGroupSummary" + } + }, + "com.amazonaws.medialive#__listOfCloudWatchAlarmTemplateSummary": { + "type": "list", + "member": { + "target": "com.amazonaws.medialive#CloudWatchAlarmTemplateSummary" + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for __listOfCloudWatchAlarmTemplateSummary" + } + }, "com.amazonaws.medialive#__listOfColorCorrection": { "type": "list", "member": { @@ -26780,6 +31646,33 @@ "smithy.api#documentation": "Placeholder documentation for __listOfDashRoleCaption" } }, + "com.amazonaws.medialive#__listOfEventBridgeRuleTemplateGroupSummary": { + "type": "list", + "member": { + "target": "com.amazonaws.medialive#EventBridgeRuleTemplateGroupSummary" + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for __listOfEventBridgeRuleTemplateGroupSummary" + } + }, + "com.amazonaws.medialive#__listOfEventBridgeRuleTemplateSummary": { + "type": "list", + "member": { + "target": "com.amazonaws.medialive#EventBridgeRuleTemplateSummary" + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for __listOfEventBridgeRuleTemplateSummary" + } + }, + "com.amazonaws.medialive#__listOfEventBridgeRuleTemplateTarget": { + "type": "list", + "member": { + "target": "com.amazonaws.medialive#EventBridgeRuleTemplateTarget" + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for __listOfEventBridgeRuleTemplateTarget" + } + }, "com.amazonaws.medialive#__listOfFailoverCondition": { "type": "list", "member": { @@ -26960,6 +31853,15 @@ "smithy.api#documentation": "Placeholder documentation for __listOfMediaPackageOutputDestinationSettings" } }, + "com.amazonaws.medialive#__listOfMediaResourceNeighbor": { + "type": "list", + "member": { + "target": "com.amazonaws.medialive#MediaResourceNeighbor" + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for __listOfMediaResourceNeighbor" + } + }, "com.amazonaws.medialive#__listOfMultiplexOutputDestination": { "type": "list", "member": { @@ -27095,6 +31997,15 @@ "smithy.api#documentation": "Placeholder documentation for __listOfScte35Descriptor" } }, + "com.amazonaws.medialive#__listOfSignalMapSummary": { + "type": "list", + "member": { + "target": "com.amazonaws.medialive#SignalMapSummary" + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for __listOfSignalMapSummary" + } + }, "com.amazonaws.medialive#__listOfThumbnail": { "type": "list", "member": { @@ -27158,6 +32069,24 @@ "smithy.api#documentation": "Placeholder documentation for __listOf__string" } }, + "com.amazonaws.medialive#__listOf__stringMin7Max11PatternAws097": { + "type": "list", + "member": { + "target": "com.amazonaws.medialive#__stringMin7Max11PatternAws097" + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for __listOf__stringMin7Max11PatternAws097" + } + }, + "com.amazonaws.medialive#__listOf__stringPatternS": { + "type": "list", + "member": { + "target": "com.amazonaws.medialive#__stringPatternS" + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for __listOf__stringPatternS" + } + }, "com.amazonaws.medialive#__long": { "type": "long", "traits": { @@ -27260,6 +32189,26 @@ } } }, + "com.amazonaws.medialive#__stringMax64": { + "type": "string", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __stringMax64", + "smithy.api#length": { + "min": 0, + "max": 64 + } + } + }, + "com.amazonaws.medialive#__stringMin0Max1024": { + "type": "string", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __stringMin0Max1024", + "smithy.api#length": { + "min": 0, + "max": 1024 + } + } + }, "com.amazonaws.medialive#__stringMin1": { "type": "string", "traits": { @@ -27269,6 +32218,27 @@ } } }, + "com.amazonaws.medialive#__stringMin1Max2048": { + "type": "string", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __stringMin1Max2048", + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "com.amazonaws.medialive#__stringMin1Max2048PatternArn": { + "type": "string", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __stringMin1Max2048PatternArn", + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^arn.+$" + } + }, "com.amazonaws.medialive#__stringMin1Max255": { "type": "string", "traits": { @@ -27279,6 +32249,17 @@ } } }, + "com.amazonaws.medialive#__stringMin1Max255PatternS": { + "type": "string", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __stringMin1Max255PatternS", + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[^\\s]+$" + } + }, "com.amazonaws.medialive#__stringMin1Max256": { "type": "string", "traits": { @@ -27359,6 +32340,17 @@ } } }, + "com.amazonaws.medialive#__stringMin7Max11PatternAws097": { + "type": "string", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __stringMin7Max11PatternAws097", + "smithy.api#length": { + "min": 7, + "max": 11 + }, + "smithy.api#pattern": "^(aws-)?[0-9]{7}$" + } + }, "com.amazonaws.medialive#__stringPattern010920300": { "type": "string", "traits": { @@ -27366,6 +32358,48 @@ "smithy.api#pattern": "^([0,1]?[0-9]|2[0-3]):00$" } }, + "com.amazonaws.medialive#__stringPatternArnMedialiveCloudwatchAlarmTemplate": { + "type": "string", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __stringPatternArnMedialiveCloudwatchAlarmTemplate", + "smithy.api#pattern": "^arn:.+:medialive:.+:cloudwatch-alarm-template:.+$" + } + }, + "com.amazonaws.medialive#__stringPatternArnMedialiveCloudwatchAlarmTemplateGroup": { + "type": "string", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __stringPatternArnMedialiveCloudwatchAlarmTemplateGroup", + "smithy.api#pattern": "^arn:.+:medialive:.+:cloudwatch-alarm-template-group:.+$" + } + }, + "com.amazonaws.medialive#__stringPatternArnMedialiveEventbridgeRuleTemplate": { + "type": "string", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __stringPatternArnMedialiveEventbridgeRuleTemplate", + "smithy.api#pattern": "^arn:.+:medialive:.+:eventbridge-rule-template:.+$" + } + }, + "com.amazonaws.medialive#__stringPatternArnMedialiveEventbridgeRuleTemplateGroup": { + "type": "string", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __stringPatternArnMedialiveEventbridgeRuleTemplateGroup", + "smithy.api#pattern": "^arn:.+:medialive:.+:eventbridge-rule-template-group:.+$" + } + }, + "com.amazonaws.medialive#__stringPatternArnMedialiveSignalMap": { + "type": "string", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __stringPatternArnMedialiveSignalMap", + "smithy.api#pattern": "^arn:.+:medialive:.+:signal-map:.+$" + } + }, + "com.amazonaws.medialive#__stringPatternS": { + "type": "string", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __stringPatternS", + "smithy.api#pattern": "^[^\\s]+$" + } + }, "com.amazonaws.medialive#__timestamp": { "type": "timestamp", "traits": { diff --git a/models/mediapackagev2.json b/models/mediapackagev2.json index 41742ebb22..96dbab3844 100644 --- a/models/mediapackagev2.json +++ b/models/mediapackagev2.json @@ -14,6 +14,23 @@ "smithy.api#httpError": 403 } }, + "com.amazonaws.mediapackagev2#AdMarkerDash": { + "type": "enum", + "members": { + "BINARY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BINARY" + } + }, + "XML": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XML" + } + } + } + }, "com.amazonaws.mediapackagev2#AdMarkerHls": { "type": "enum", "members": { @@ -691,6 +708,99 @@ "smithy.api#output": {} } }, + "com.amazonaws.mediapackagev2#CreateDashManifestConfiguration": { + "type": "structure", + "members": { + "ManifestName": { + "target": "com.amazonaws.mediapackagev2#ManifestName", + "traits": { + "smithy.api#documentation": "

A short string that's appended to the endpoint URL. The child manifest name creates a unique path to this endpoint.

", + "smithy.api#required": {} + } + }, + "ManifestWindowSeconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The total duration (in seconds) of the manifest's content.

", + "smithy.api#range": { + "min": 30 + } + } + }, + "FilterConfiguration": { + "target": "com.amazonaws.mediapackagev2#FilterConfiguration" + }, + "MinUpdatePeriodSeconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Minimum amount of time (in seconds) that the player should wait before requesting updates to the manifest.

", + "smithy.api#range": { + "min": 1, + "max": 3600 + } + } + }, + "MinBufferTimeSeconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Minimum amount of content (in seconds) that a player must keep available in the buffer.

", + "smithy.api#range": { + "min": 0, + "max": 3600 + } + } + }, + "SuggestedPresentationDelaySeconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The amount of time (in seconds) that the player should be from the end of the manifest.

", + "smithy.api#range": { + "min": 0, + "max": 3600 + } + } + }, + "SegmentTemplateFormat": { + "target": "com.amazonaws.mediapackagev2#DashSegmentTemplateFormat", + "traits": { + "smithy.api#documentation": "

Determines the type of variable used in the media URL of the SegmentTemplate tag in the manifest. Also specifies if segment timeline information is included in SegmentTimeline or SegmentTemplate.

\n

Value description:

\n
    \n
  • \n

    \n NUMBER_WITH_TIMELINE - The $Number$ variable is used in the media URL. The value of this variable is the sequential number of the segment. A full SegmentTimeline object is presented in each SegmentTemplate.

    \n
  • \n
" + } + }, + "PeriodTriggers": { + "target": "com.amazonaws.mediapackagev2#DashPeriodTriggers", + "traits": { + "smithy.api#documentation": "

A list of triggers that controls when AWS Elemental MediaPackage separates the MPEG-DASH manifest into multiple periods. Type ADS to indicate that AWS Elemental MediaPackage must create periods in the output manifest that correspond to SCTE-35 ad markers in the input source. Leave this value empty to indicate that the manifest is contained all in one period.\n For more information about periods in the DASH manifest, see Multi-period DASH in AWS Elemental MediaPackage.

" + } + }, + "ScteDash": { + "target": "com.amazonaws.mediapackagev2#ScteDash", + "traits": { + "smithy.api#documentation": "

The SCTE configuration.

" + } + }, + "DrmSignaling": { + "target": "com.amazonaws.mediapackagev2#DashDrmSignaling", + "traits": { + "smithy.api#documentation": "

Determines how the DASH manifest signals the DRM content.

" + } + }, + "UtcTiming": { + "target": "com.amazonaws.mediapackagev2#DashUtcTiming", + "traits": { + "smithy.api#documentation": "

Determines the type of UTC timing included in the DASH Media Presentation Description (MPD).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Create a DASH manifest configuration.

" + } + }, + "com.amazonaws.mediapackagev2#CreateDashManifests": { + "type": "list", + "member": { + "target": "com.amazonaws.mediapackagev2#CreateDashManifestConfiguration" + } + }, "com.amazonaws.mediapackagev2#CreateHlsManifestConfiguration": { "type": "structure", "members": { @@ -1019,7 +1129,7 @@ "ChannelGroupName": "exampleChannelGroup", "ChannelName": "exampleChannel", "OriginEndpointName": "exampleOriginEndpointCMAF", - "ContainerType": "TS", + "ContainerType": "CMAF", "StartoverWindowSeconds": 300, "Segment": { "SegmentDurationSeconds": 6, @@ -1092,6 +1202,41 @@ "ProgramDateTimeIntervalSeconds": 60 } ], + "DashManifests": [ + { + "ManifestName": "exampleDashManifest1", + "ManifestWindowSeconds": 300, + "MinUpdatePeriodSeconds": 5, + "MinBufferTimeSeconds": 30, + "SuggestedPresentationDelaySeconds": 2, + "SegmentTemplateFormat": "NUMBER_WITH_TIMELINE", + "PeriodTriggers": [ + "AVAILS" + ], + "ScteDash": { + "AdMarkerDash": "XML" + }, + "DrmSignaling": "INDIVIDUAL" + }, + { + "ManifestName": "exampleDashManifest2", + "ManifestWindowSeconds": 60, + "MinUpdatePeriodSeconds": 3, + "MinBufferTimeSeconds": 9, + "SuggestedPresentationDelaySeconds": 12, + "SegmentTemplateFormat": "NUMBER_WITH_TIMELINE", + "PeriodTriggers": [ + "AVAILS", + "DRM_KEY_ROTATION", + "SOURCE_CHANGES", + "SOURCE_DISRUPTIONS" + ], + "ScteDash": { + "AdMarkerDash": "XML" + }, + "DrmSignaling": "INDIVIDUAL" + } + ], "Tags": { "key1": "value1", "key2": "value2" @@ -1104,7 +1249,7 @@ "Arn": "arn:aws:mediapackagev2:us-west-2:123456789012:channelGroup/exampleChannelGroup/channel/exampleChannel/originEndpoint/exampleOriginEndpointCMAF", "CreatedAt": "2022-10-18T09:36:00.00Z", "ModifiedAt": "2022-10-18T09:36:00.00Z", - "ContainerType": "TS", + "ContainerType": "CMAF", "StartoverWindowSeconds": 300, "Segment": { "SegmentDurationSeconds": 6, @@ -1181,6 +1326,43 @@ "Url": "https://abcde.egress.vwxyz.mediapackagev2.us-west-2.amazonaws.com/out/v1/exampleChannelGroup/exampleChannel/exampleOriginEndpointCMAF/exampleLLManifest2.m3u8" } ], + "DashManifests": [ + { + "ManifestName": "exampleDashManifest1", + "ManifestWindowSeconds": 300, + "MinUpdatePeriodSeconds": 5, + "MinBufferTimeSeconds": 30, + "SuggestedPresentationDelaySeconds": 2, + "SegmentTemplateFormat": "NUMBER_WITH_TIMELINE", + "PeriodTriggers": [ + "AVAILS" + ], + "ScteDash": { + "AdMarkerDash": "XML" + }, + "DrmSignaling": "INDIVIDUAL", + "Url": "https://abcde.egress.vwxyz.mediapackagev2.us-west-2.amazonaws.com/out/v1/exampleChannelGroup/exampleChannel/exampleOriginEndpointCMAF/exampleDashManifest1.mpd" + }, + { + "ManifestName": "exampleDashManifest2", + "ManifestWindowSeconds": 60, + "MinUpdatePeriodSeconds": 3, + "MinBufferTimeSeconds": 9, + "SuggestedPresentationDelaySeconds": 12, + "SegmentTemplateFormat": "NUMBER_WITH_TIMELINE", + "PeriodTriggers": [ + "AVAILS", + "DRM_KEY_ROTATION", + "SOURCE_CHANGES", + "SOURCE_DISRUPTIONS" + ], + "ScteDash": { + "AdMarkerDash": "XML" + }, + "DrmSignaling": "INDIVIDUAL", + "Url": "https://abcde.egress.vwxyz.mediapackagev2.us-west-2.amazonaws.com/out/v1/exampleChannelGroup/exampleChannel/exampleOriginEndpointCMAF/exampleDashManifest2.mpd" + } + ], "ETag": "GlfT+dwAyGIR4wuy8nKWl1RDPwSrjQej9qUutLZxoxk=", "Tags": { "key1": "value1", @@ -1273,6 +1455,13 @@ "smithy.api#documentation": "

A low-latency HLS manifest configuration.

" } }, + "DashManifests": { + "target": "com.amazonaws.mediapackagev2#CreateDashManifests", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "

A DASH manifest configuration.

" + } + }, "Tags": { "target": "com.amazonaws.mediapackagev2#TagMap", "traits": { @@ -1368,6 +1557,12 @@ "smithy.api#documentation": "

A low-latency HLS manifest configuration.

" } }, + "DashManifests": { + "target": "com.amazonaws.mediapackagev2#GetDashManifests", + "traits": { + "smithy.api#documentation": "

A DASH manifest configuration.

" + } + }, "ETag": { "target": "com.amazonaws.mediapackagev2#EntityTag", "traits": { @@ -1387,6 +1582,134 @@ "smithy.api#output": {} } }, + "com.amazonaws.mediapackagev2#DashDrmSignaling": { + "type": "enum", + "members": { + "INDIVIDUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INDIVIDUAL" + } + }, + "REFERENCED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REFERENCED" + } + } + } + }, + "com.amazonaws.mediapackagev2#DashPeriodTrigger": { + "type": "enum", + "members": { + "AVAILS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AVAILS" + } + }, + "DRM_KEY_ROTATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DRM_KEY_ROTATION" + } + }, + "SOURCE_CHANGES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SOURCE_CHANGES" + } + }, + "SOURCE_DISRUPTIONS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SOURCE_DISRUPTIONS" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + } + } + }, + "com.amazonaws.mediapackagev2#DashPeriodTriggers": { + "type": "list", + "member": { + "target": "com.amazonaws.mediapackagev2#DashPeriodTrigger" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.mediapackagev2#DashSegmentTemplateFormat": { + "type": "enum", + "members": { + "NUMBER_WITH_TIMELINE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NUMBER_WITH_TIMELINE" + } + } + } + }, + "com.amazonaws.mediapackagev2#DashUtcTiming": { + "type": "structure", + "members": { + "TimingMode": { + "target": "com.amazonaws.mediapackagev2#DashUtcTimingMode", + "traits": { + "smithy.api#documentation": "

The UTC timing mode.

" + } + }, + "TimingSource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The the method that the player uses to synchronize to coordinated universal time (UTC) wall clock time.

", + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Determines the type of UTC timing included in the DASH Media Presentation Description (MPD).

" + } + }, + "com.amazonaws.mediapackagev2#DashUtcTimingMode": { + "type": "enum", + "members": { + "HTTP_HEAD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HTTP_HEAD" + } + }, + "HTTP_ISO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HTTP_ISO" + } + }, + "HTTP_XSDATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HTTP_XSDATE" + } + }, + "UTC_DIRECT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UTC_DIRECT" + } + } + } + }, "com.amazonaws.mediapackagev2#DeleteChannel": { "type": "operation", "input": { @@ -2343,6 +2666,91 @@ "smithy.api#output": {} } }, + "com.amazonaws.mediapackagev2#GetDashManifestConfiguration": { + "type": "structure", + "members": { + "ManifestName": { + "target": "com.amazonaws.mediapackagev2#ResourceName", + "traits": { + "smithy.api#documentation": "

A short string that's appended to the endpoint URL. The manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default manifest name, index.

", + "smithy.api#required": {} + } + }, + "Url": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The egress domain URL for stream delivery from MediaPackage.

", + "smithy.api#required": {} + } + }, + "ManifestWindowSeconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The total duration (in seconds) of the manifest's content.

" + } + }, + "FilterConfiguration": { + "target": "com.amazonaws.mediapackagev2#FilterConfiguration" + }, + "MinUpdatePeriodSeconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Minimum amount of time (in seconds) that the player should wait before requesting updates to the manifest.

" + } + }, + "MinBufferTimeSeconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Minimum amount of content (in seconds) that a player must keep available in the buffer.

" + } + }, + "SuggestedPresentationDelaySeconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The amount of time (in seconds) that the player should be from the end of the manifest.

" + } + }, + "SegmentTemplateFormat": { + "target": "com.amazonaws.mediapackagev2#DashSegmentTemplateFormat", + "traits": { + "smithy.api#documentation": "

Determines the type of variable used in the media URL of the SegmentTemplate tag in the manifest. Also specifies if segment timeline information is included in SegmentTimeline or SegmentTemplate.

\n

Value description:

\n
    \n
  • \n

    \n NUMBER_WITH_TIMELINE - The $Number$ variable is used in the media URL. The value of this variable is the sequential number of the segment. A full SegmentTimeline object is presented in each SegmentTemplate.

    \n
  • \n
" + } + }, + "PeriodTriggers": { + "target": "com.amazonaws.mediapackagev2#DashPeriodTriggers", + "traits": { + "smithy.api#documentation": "

A list of triggers that controls when AWS Elemental MediaPackage separates the MPEG-DASH manifest into multiple periods. Leave this value empty to indicate that the manifest is contained all in one period.\n For more information about periods in the DASH manifest, see Multi-period DASH in AWS Elemental MediaPackage.

" + } + }, + "ScteDash": { + "target": "com.amazonaws.mediapackagev2#ScteDash", + "traits": { + "smithy.api#documentation": "

The SCTE configuration.

" + } + }, + "DrmSignaling": { + "target": "com.amazonaws.mediapackagev2#DashDrmSignaling", + "traits": { + "smithy.api#documentation": "

Determines how the DASH manifest signals the DRM content.

" + } + }, + "UtcTiming": { + "target": "com.amazonaws.mediapackagev2#DashUtcTiming", + "traits": { + "smithy.api#documentation": "

Determines the type of UTC timing included in the DASH Media Presentation Description (MPD).

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Retrieve the DASH manifest configuration.

" + } + }, + "com.amazonaws.mediapackagev2#GetDashManifests": { + "type": "list", + "member": { + "target": "com.amazonaws.mediapackagev2#GetDashManifestConfiguration" + } + }, "com.amazonaws.mediapackagev2#GetHlsManifestConfiguration": { "type": "structure", "members": { @@ -2830,6 +3238,12 @@ "aws.cloudformation#cfnExcludeProperty": {}, "smithy.api#documentation": "

The comma-separated list of tag key:value pairs assigned to the origin endpoint.

" } + }, + "DashManifests": { + "target": "com.amazonaws.mediapackagev2#GetDashManifests", + "traits": { + "smithy.api#documentation": "

A DASH manifest configuration.

" + } } }, "traits": { @@ -3113,6 +3527,33 @@ "smithy.api#output": {} } }, + "com.amazonaws.mediapackagev2#ListDashManifestConfiguration": { + "type": "structure", + "members": { + "ManifestName": { + "target": "com.amazonaws.mediapackagev2#ResourceName", + "traits": { + "smithy.api#documentation": "

A short string that's appended to the endpoint URL. The manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default manifest name, index.

", + "smithy.api#required": {} + } + }, + "Url": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The egress domain URL for stream delivery from MediaPackage.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

List the DASH manifest configuration.

" + } + }, + "com.amazonaws.mediapackagev2#ListDashManifests": { + "type": "list", + "member": { + "target": "com.amazonaws.mediapackagev2#ListDashManifestConfiguration" + } + }, "com.amazonaws.mediapackagev2#ListHlsManifestConfiguration": { "type": "structure", "members": { @@ -3257,7 +3698,7 @@ "Arn": "arn:aws:mediapackagev2:us-west-2:123456789012:channelGroup/exampleChannelGroup/channel/exampleChannel/originEndpoint/exampleOriginEndpointCMAF", "CreatedAt": "2022-10-18T09:36:00.00Z", "ModifiedAt": "2022-10-18T09:36:00.00Z", - "ContainerType": "TS", + "ContainerType": "CMAF", "HlsManifests": [ { "ManifestName": "exampleManifest1", @@ -3281,6 +3722,16 @@ "ChildManifestName": "exampleLLManifest2", "Url": "https://abcde.egress.vwxyz.mediapackagev2.us-west-2.amazonaws.com/out/v1/exampleChannelGroup/exampleChannel/exampleOriginEndpointCMAF/exampleLLManifest2.m3u8" } + ], + "DashManifests": [ + { + "ManifestName": "exampleDashManifest1", + "Url": "https://abcde.egress.vwxyz.mediapackagev2.us-west-2.amazonaws.com/out/v1/exampleChannelGroup/exampleChannel/exampleOriginEndpointCMAF/exampleDashManifest1.mpd" + }, + { + "ManifestName": "exampleDashManifest2", + "Url": "https://abcde.egress.vwxyz.mediapackagev2.us-west-2.amazonaws.com/out/v1/exampleChannelGroup/exampleChannel/exampleOriginEndpointCMAF/exampleDashManifest2.mpd" + } ] } ] @@ -3515,6 +3966,12 @@ "traits": { "smithy.api#documentation": "

A low-latency HLS manifest configuration.

" } + }, + "DashManifests": { + "target": "com.amazonaws.mediapackagev2#ListDashManifests", + "traits": { + "smithy.api#documentation": "

A DASH manifest configuration.

" + } } }, "traits": { @@ -3972,6 +4429,20 @@ "smithy.api#documentation": "

The SCTE configuration.

" } }, + "com.amazonaws.mediapackagev2#ScteDash": { + "type": "structure", + "members": { + "AdMarkerDash": { + "target": "com.amazonaws.mediapackagev2#AdMarkerDash", + "traits": { + "smithy.api#documentation": "

Choose how ad markers are included in the packaged content. If you include ad markers in the content stream in your upstream encoders, then you need to inform MediaPackage what to do with the ad markers in the output.

\n

Value description:

\n
    \n
  • \n

    \n Binary - The SCTE-35 marker is expressed as a hex-string (Base64 string) rather than full XML.

    \n
  • \n
  • \n

    \n XML - The SCTE marker is expressed fully in XML.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

The SCTE configuration.

" + } + }, "com.amazonaws.mediapackagev2#ScteFilter": { "type": "enum", "members": { @@ -4987,6 +5458,13 @@ "smithy.api#documentation": "

A low-latency HLS manifest configuration.

" } }, + "DashManifests": { + "target": "com.amazonaws.mediapackagev2#CreateDashManifests", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "

A DASH manifest configuration.

" + } + }, "ETag": { "target": "com.amazonaws.mediapackagev2#EntityTag", "traits": { @@ -5097,6 +5575,12 @@ "smithy.api#documentation": "

The comma-separated list of tag key:value pairs assigned to the origin endpoint.

", "smithy.api#jsonName": "tags" } + }, + "DashManifests": { + "target": "com.amazonaws.mediapackagev2#GetDashManifests", + "traits": { + "smithy.api#documentation": "

A DASH manifest configuration.

" + } } }, "traits": { @@ -5202,6 +5686,12 @@ "smithy.api#enumValue": "NUM_MANIFESTS_HIGH" } }, + "MANIFEST_DRM_SYSTEMS_INCOMPATIBLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MANIFEST_DRM_SYSTEMS_INCOMPATIBLE" + } + }, "DRM_SYSTEMS_ENCRYPTION_METHOD_INCOMPATIBLE": { "target": "smithy.api#Unit", "traits": { @@ -5345,6 +5835,48 @@ "traits": { "smithy.api#enumValue": "END_TIME_EARLIER_THAN_START_TIME" } + }, + "TS_CONTAINER_TYPE_WITH_DASH_MANIFEST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TS_CONTAINER_TYPE_WITH_DASH_MANIFEST" + } + }, + "DIRECT_MODE_WITH_TIMING_SOURCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DIRECT_MODE_WITH_TIMING_SOURCE" + } + }, + "NONE_MODE_WITH_TIMING_SOURCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE_MODE_WITH_TIMING_SOURCE" + } + }, + "TIMING_SOURCE_MISSING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TIMING_SOURCE_MISSING" + } + }, + "UPDATE_PERIOD_SMALLER_THAN_SEGMENT_DURATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_PERIOD_SMALLER_THAN_SEGMENT_DURATION" + } + }, + "PERIOD_TRIGGERS_NONE_SPECIFIED_WITH_ADDITIONAL_VALUES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PERIOD_TRIGGERS_NONE_SPECIFIED_WITH_ADDITIONAL_VALUES" + } + }, + "DRM_SIGNALING_MISMATCH_SEGMENT_ENCRYPTION_STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DRM_SIGNALING_MISMATCH_SEGMENT_ENCRYPTION_STATUS" + } } } }, diff --git a/models/mediatailor.json b/models/mediatailor.json index 3d47857a4c..bc6b33db5d 100644 --- a/models/mediatailor.json +++ b/models/mediatailor.json @@ -2633,6 +2633,13 @@ "smithy.api#documentation": "

The configuration for HLS content.

" } }, + "InsertionMode": { + "target": "com.amazonaws.mediatailor#InsertionMode", + "traits": { + "smithy.api#default": "STITCHED_ONLY", + "smithy.api#documentation": "

The setting that controls whether players can use stitched or guided ad insertion. The default, STITCHED_ONLY, forces all player sessions to use stitched (server-side) ad insertion. Choosing PLAYER_SELECT allows players to select either stitched or guided ad insertion at session-initialization time. The default for players that do not specify an insertion mode is stitched.

" + } + }, "LivePreRollConfiguration": { "target": "com.amazonaws.mediatailor#LivePreRollConfiguration", "traits": { @@ -2875,6 +2882,26 @@ "smithy.api#documentation": "

The VOD source's HTTP package configuration settings.

" } }, + "com.amazonaws.mediatailor#InsertionMode": { + "type": "enum", + "members": { + "STITCHED_ONLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STITCHED_ONLY" + } + }, + "PLAYER_SELECT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PLAYER_SELECT" + } + } + }, + "traits": { + "smithy.api#documentation": "

Insertion Mode controls whether players can use stitched or guided ad insertion.

" + } + }, "com.amazonaws.mediatailor#KeyValuePair": { "type": "structure", "members": { @@ -4488,6 +4515,13 @@ "smithy.api#documentation": "

The configuration for HLS content.

" } }, + "InsertionMode": { + "target": "com.amazonaws.mediatailor#InsertionMode", + "traits": { + "smithy.api#default": "STITCHED_ONLY", + "smithy.api#documentation": "

The setting that controls whether players can use stitched or guided ad insertion. The default, STITCHED_ONLY, forces all player sessions to use stitched (server-side) ad insertion. Choosing PLAYER_SELECT allows players to select either stitched or guided ad insertion at session-initialization time. The default for players that do not specify an insertion mode is stitched.

" + } + }, "LivePreRollConfiguration": { "target": "com.amazonaws.mediatailor#LivePreRollConfiguration", "traits": { @@ -4878,6 +4912,13 @@ "smithy.api#documentation": "

The configuration for DASH content.

" } }, + "InsertionMode": { + "target": "com.amazonaws.mediatailor#InsertionMode", + "traits": { + "smithy.api#default": "STITCHED_ONLY", + "smithy.api#documentation": "

The setting that controls whether players can use stitched or guided ad insertion. The default, STITCHED_ONLY, forces all player sessions to use stitched (server-side) ad insertion. Choosing PLAYER_SELECT allows players to select either stitched or guided ad insertion at session-initialization time. The default for players that do not specify an insertion mode is stitched.

" + } + }, "LivePreRollConfiguration": { "target": "com.amazonaws.mediatailor#LivePreRollConfiguration", "traits": { @@ -4975,6 +5016,13 @@ "smithy.api#documentation": "

The configuration for HLS content.

" } }, + "InsertionMode": { + "target": "com.amazonaws.mediatailor#InsertionMode", + "traits": { + "smithy.api#default": "STITCHED_ONLY", + "smithy.api#documentation": "

The setting that controls whether players can use stitched or guided ad insertion. The default, STITCHED_ONLY, forces all player sessions to use stitched (server-side) ad insertion. Choosing PLAYER_SELECT allows players to select either stitched or guided ad insertion at session-initialization time. The default for players that do not specify an insertion mode is stitched.

" + } + }, "LivePreRollConfiguration": { "target": "com.amazonaws.mediatailor#LivePreRollConfiguration", "traits": { diff --git a/models/mgn.json b/models/mgn.json index 8ae7465021..2e10d0a41c 100644 --- a/models/mgn.json +++ b/models/mgn.json @@ -69,6 +69,10 @@ "value": "OBSERVABILITY", "name": "OBSERVABILITY" }, + { + "value": "REFACTORING", + "name": "REFACTORING" + }, { "value": "SECURITY", "name": "SECURITY" @@ -1627,6 +1631,10 @@ { "name": "UEFI", "value": "UEFI" + }, + { + "name": "USE_SOURCE", + "value": "USE_SOURCE" } ] } @@ -9732,7 +9740,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates multiple LaunchConfigurations by Source Server ID.

", + "smithy.api#documentation": "

Updates multiple LaunchConfigurations by Source Server ID.

\n \n

bootMode valid values are LEGACY_BIOS | UEFI\n

\n
", "smithy.api#http": { "uri": "/UpdateLaunchConfiguration", "method": "POST", diff --git a/models/neptune-graph.json b/models/neptune-graph.json index 018438fb46..effea5b89e 100644 --- a/models/neptune-graph.json +++ b/models/neptune-graph.json @@ -1818,7 +1818,7 @@ "replicaCount": { "target": "com.amazonaws.neptunegraph#ReplicaCount", "traits": { - "smithy.api#documentation": "

The number of replicas in other AZs. Min =0, Max = 2, Default = 1.

" + "smithy.api#documentation": "

The number of replicas in other AZs. Min =0, Max = 2, Default = 1.

\n \n

\n Additional charges equivalent to the m-NCUs selected for the graph apply for each replica.\n

\n
" } }, "deletionProtection": { @@ -2141,7 +2141,7 @@ "replicaCount": { "target": "com.amazonaws.neptunegraph#ReplicaCount", "traits": { - "smithy.api#documentation": "

The number of replicas in other AZs to provision on the new graph after import. Default = 0, Min = 0, Max = 2.

" + "smithy.api#documentation": "

The number of replicas in other AZs to provision on the new graph after import. Default = 0, Min = 0, Max = 2.

\n \n

\n Additional charges equivalent to the m-NCUs selected for the graph apply for each replica.\n

\n
" } }, "deletionProtection": { @@ -5602,7 +5602,7 @@ "replicaCount": { "target": "com.amazonaws.neptunegraph#ReplicaCount", "traits": { - "smithy.api#documentation": "

The number of replicas in other AZs. Min =0, Max = 2, Default =1

" + "smithy.api#documentation": "

The number of replicas in other AZs. Min =0, Max = 2, Default =1

\n \n

\n Additional charges equivalent to the m-NCUs selected for the graph apply for each replica.\n

\n
" } }, "publicConnectivity": { diff --git a/models/networkmonitor.json b/models/networkmonitor.json index d1c8a43892..d1c5ae19bb 100644 --- a/models/networkmonitor.json +++ b/models/networkmonitor.json @@ -94,7 +94,7 @@ "aws.iam#iamAction": { "documentation": "Grants permission to create a monitor" }, - "smithy.api#documentation": "

Creates a monitor between a source subnet and destination IP address. Within a monitor you'll create one or more probes that monitor network traffic between your source Amazon Web Services VPC subnets and your destination IP addresses. Each probe then aggregates and sends metrics to Amazon CloudWatch.

", + "smithy.api#documentation": "

Creates a monitor between a source subnet and destination IP address. Within a monitor you'll create one or more probes that monitor network traffic between your source Amazon Web Services VPC subnets and your destination IP addresses. Each probe then aggregates and sends metrics to Amazon CloudWatch.

\n

You can also create a monitor with probes using this command. For each probe, you\n define the following:

\n
    \n
  • \n

    \n source—The subnet IDs where the probes will be created.

    \n
  • \n
  • \n

    \n destination— The target destination IP address for the\n probe.

    \n
  • \n
  • \n

    \n destinationPort—Required only if the protocol is\n TCP.

    \n
  • \n
  • \n

    \n protocol—The communication protocol between the source and\n destination. This will be either TCP or ICMP.

    \n
  • \n
  • \n

    \n packetSize—The size of the packets. This must be a number between\n 56 and 8500.

    \n
  • \n
  • \n

    (Optional) tags —Key-value pairs created and assigned to the\n probe.

    \n
  • \n
", "smithy.api#http": { "uri": "/monitors", "method": "POST" @@ -108,7 +108,7 @@ "monitorName": { "target": "com.amazonaws.networkmonitor#ResourceName", "traits": { - "smithy.api#documentation": "

The name identifying the monitor. It can contain only letters, underscores (_), or dashes (-), and can be up to 255 characters.

", + "smithy.api#documentation": "

The name identifying the monitor. It can contain only letters, underscores (_), or dashes (-), and can be up to 200 characters.

", "smithy.api#required": {} } }, @@ -121,7 +121,7 @@ "aggregationPeriod": { "target": "com.amazonaws.networkmonitor#AggregationPeriod", "traits": { - "smithy.api#documentation": "

The time, in seconds, that metrics are aggregated and sent to Amazon CloudWatch. Valid values are either 30 or 60.

" + "smithy.api#documentation": "

The time, in seconds, that metrics are aggregated and sent to Amazon CloudWatch. Valid\n values are either 30 or 60. 60 is the default if\n no period is chosen.

" } }, "clientToken": { @@ -169,7 +169,7 @@ "aggregationPeriod": { "target": "com.amazonaws.networkmonitor#AggregationPeriod", "traits": { - "smithy.api#documentation": "

The number of seconds that metrics are aggregated by and sent to Amazon CloudWatch. This will be either 30 or 60.

" + "smithy.api#documentation": "

The number of seconds that metrics are aggregated by and sent to Amazon CloudWatch.\n This will be either 30 or 60.

" } }, "tags": { @@ -196,7 +196,7 @@ "destination": { "target": "com.amazonaws.networkmonitor#Destination", "traits": { - "smithy.api#documentation": "

The destination IP address. This will be either IPV4 or IPV6.

", + "smithy.api#documentation": "

The destination IP address. This must be either IPV4 or IPV6.

", "smithy.api#required": {} } }, @@ -209,14 +209,14 @@ "protocol": { "target": "com.amazonaws.networkmonitor#Protocol", "traits": { - "smithy.api#documentation": "

The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP.

", + "smithy.api#documentation": "

The protocol used for the network traffic between the source and destination. This must be either TCP or ICMP.

", "smithy.api#required": {} } }, "packetSize": { "target": "com.amazonaws.networkmonitor#PacketSize", "traits": { - "smithy.api#documentation": "

The size of the packets sent between the source and destination. This will be a number between 56 and 8500.

" + "smithy.api#documentation": "

The size of the packets sent between the source and destination. This must be a number between 56 and 8500.

" } }, "probeTags": { @@ -268,7 +268,7 @@ "aws.iam#iamAction": { "documentation": "Grants permission to create a probe" }, - "smithy.api#documentation": "

Create a probe within a monitor. Once you create a probe, and it begins monitoring your network traffic, you'll incur billing charges for that probe.

", + "smithy.api#documentation": "

Create a probe within a monitor. Once you create a probe, and it begins monitoring your\n network traffic, you'll incur billing charges for that probe. This action requires the\n monitorName parameter. Run ListMonitors to get a list of\n monitor names. Note the name of the monitorName you want to create the\n probe for.

", "smithy.api#http": { "uri": "/monitors/{monitorName}/probes", "method": "POST" @@ -282,7 +282,7 @@ "monitorName": { "target": "com.amazonaws.networkmonitor#ResourceName", "traits": { - "smithy.api#documentation": "

The name of the monitor to associated with the probe. To get a list of available monitors, use ListMonitors.

", + "smithy.api#documentation": "

The name of the monitor to associated with the probe.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -337,7 +337,7 @@ "destination": { "target": "com.amazonaws.networkmonitor#Destination", "traits": { - "smithy.api#documentation": "

The destination IP address for the monitor. This will be either an IPv4 or IPv6 address.

", + "smithy.api#documentation": "

The destination IP address for the monitor. This must be either an IPv4 or IPv6 address.

", "smithy.api#required": {} } }, @@ -350,14 +350,14 @@ "protocol": { "target": "com.amazonaws.networkmonitor#Protocol", "traits": { - "smithy.api#documentation": "

The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP.

", + "smithy.api#documentation": "

The protocol used for the network traffic between the source and destination. This must be either TCP or ICMP.

", "smithy.api#required": {} } }, "packetSize": { "target": "com.amazonaws.networkmonitor#PacketSize", "traits": { - "smithy.api#documentation": "

The size of the packets sent between the source and destination. This will be a number between 56 and 8500.

" + "smithy.api#documentation": "

The size of the packets sent between the source and destination. This must be a number between 56 and 8500.

" } }, "addressFamily": { @@ -430,7 +430,7 @@ "aws.iam#iamAction": { "documentation": "Grants permission to delete a monitor" }, - "smithy.api#documentation": "

Deletes a specified monitor.

", + "smithy.api#documentation": "

Deletes a specified monitor.

\n

This action requires the monitorName parameter. Run\n ListMonitors to get a list of monitor names.

", "smithy.api#http": { "uri": "/monitors/{monitorName}", "method": "DELETE" @@ -444,7 +444,7 @@ "monitorName": { "target": "com.amazonaws.networkmonitor#ResourceName", "traits": { - "smithy.api#documentation": "

The name of the monitor to delete. Use the ListMonitors action to get a list of your current monitors.

", + "smithy.api#documentation": "

The name of the monitor to delete.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -493,7 +493,7 @@ "aws.iam#iamAction": { "documentation": "Grants permission to delete a probe" }, - "smithy.api#documentation": "

Deletes the specified monitor. Once a probe is deleted you'll no longer incur any billing fees for that probe.

", + "smithy.api#documentation": "

Deletes the specified probe. Once a probe is deleted you'll no longer incur any billing\n fees for that probe.

\n

This action requires both the monitorName and probeId\n parameters. Run ListMonitors to get a list of monitor names. Run\n GetMonitor to get a list of probes and probe IDs. You can only delete a\n single probe at a time using this action.

", "smithy.api#http": { "uri": "/monitors/{monitorName}/probes/{probeId}", "method": "DELETE" @@ -507,7 +507,7 @@ "monitorName": { "target": "com.amazonaws.networkmonitor#ResourceName", "traits": { - "smithy.api#documentation": "

The name of the monitor to delete. For a list of the available monitors, use the ListMonitors action.

", + "smithy.api#documentation": "

The name of the monitor to delete.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -515,7 +515,7 @@ "probeId": { "target": "com.amazonaws.networkmonitor#ProbeId", "traits": { - "smithy.api#documentation": "

The ID of the probe to delete. Run GetMonitor to get a lst of all probes and probe IDs associated with the monitor.

", + "smithy.api#documentation": "

The ID of the probe to delete.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -570,7 +570,7 @@ "aws.iam#iamAction": { "documentation": "Grants permission to get information about a monitor" }, - "smithy.api#documentation": "

Returns details about a specific monitor.

", + "smithy.api#documentation": "

Returns details about a specific monitor.

\n

This action requires the monitorName parameter. Run\n ListMonitors to get a list of monitor names.

", "smithy.api#http": { "uri": "/monitors/{monitorName}", "method": "GET" @@ -607,14 +607,14 @@ "monitorName": { "target": "com.amazonaws.networkmonitor#ResourceName", "traits": { - "smithy.api#documentation": "

The name of the monitor. To get a list of the current monitors and their names, use the ListMonitors action.

", + "smithy.api#documentation": "

The name of the monitor.

", "smithy.api#required": {} } }, "state": { "target": "com.amazonaws.networkmonitor#MonitorState", "traits": { - "smithy.api#documentation": "

Returns a list of the state of each monitor.

", + "smithy.api#documentation": "

Lists the status of the state of each monitor.

", "smithy.api#required": {} } }, @@ -685,7 +685,7 @@ "aws.iam#iamAction": { "documentation": "Grants permission to get information about a probe" }, - "smithy.api#documentation": "

Returns the details about a probe. You'll need both the monitorName and probeId.

", + "smithy.api#documentation": "

Returns the details about a probe. This action requires both the\n monitorName and probeId parameters. Run\n ListMonitors to get a list of monitor names. Run\n GetMonitor to get a list of probes and probe IDs.

", "smithy.api#http": { "uri": "/monitors/{monitorName}/probes/{probeId}", "method": "GET" @@ -742,7 +742,7 @@ "destination": { "target": "com.amazonaws.networkmonitor#Destination", "traits": { - "smithy.api#documentation": "

The destination IP address for the monitor. This will be either an IPv4 or IPv6 address.

", + "smithy.api#documentation": "

The destination IP address for the monitor. This must be either an IPv4 or IPv6 address.

", "smithy.api#required": {} } }, @@ -755,14 +755,14 @@ "protocol": { "target": "com.amazonaws.networkmonitor#Protocol", "traits": { - "smithy.api#documentation": "

The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP.

", + "smithy.api#documentation": "

The protocol used for the network traffic between the source and destination. This must be either TCP or ICMP.

", "smithy.api#required": {} } }, "packetSize": { "target": "com.amazonaws.networkmonitor#PacketSize", "traits": { - "smithy.api#documentation": "

The size of the packets sent between the source and destination. This will be a number between 56 and 8500.

" + "smithy.api#documentation": "

The size of the packets sent between the source and destination. This must be a number between 56 and 8500.

" } }, "addressFamily": { @@ -1197,7 +1197,7 @@ "X-Amz-Requested-Operation" ] }, - "smithy.api#documentation": "

Amazon CloudWatch Network Monitor is an Amazon Web Services active network monitoring\n service that identifies if a network issues exists within the Amazon Web Services network\n or your own company network. Within Network Monitor you'll choose the source VPCs and\n subnets from the Amazon Web Services network in which you operate and then you'll choose\n the destination IP addresses from your on-premises network. From these sources and\n destinations, Network Monitor creates a monitor containing all the possible source and\n destination combinations, each of which is called a probe, within a single monitor.\n These probes then monitor network traffic to help you identify where network issues might be affecting your traffic.

\n

For more information, see Using Amazon CloudWatch Network Monitor in the Amazon CloudWatch User Guide.

", + "smithy.api#documentation": "

Amazon CloudWatch Network Monitor is an Amazon Web Services active network monitoring\n service that identifies if a network issues exists within the Amazon Web Services network\n or your own company network. Within Network Monitor you'll choose the source VPCs and\n subnets from the Amazon Web Services network in which you operate and then you'll choose\n the destination IP addresses from your on-premises network. From these sources and\n destinations, Network Monitor creates a monitor containing all the possible source and\n destination combinations, each of which is called a probe, within a single monitor.\n These probes then monitor network traffic to help you identify where network issues might be affecting your traffic.

\n

Before you begin, ensure the Amazon Web Services CLI is configured in the Amazon Web Services Account where you will create the Network Monitor resource. Network\n Monitor doesn’t support creation on cross-account resources, but you can create a\n Network Monitor in any subnet belonging to a VPC owned by your Account.

\n

For more information, see Using Amazon CloudWatch Network Monitor in the Amazon CloudWatch User Guide.

", "smithy.api#title": "Amazon CloudWatch Network Monitor", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -1978,7 +1978,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes information about a monitor probe.

" + "smithy.api#documentation": "

Describes information about a network monitor probe.

" } }, "com.amazonaws.networkmonitor#ProbeId": { @@ -2000,7 +2000,7 @@ "destination": { "target": "com.amazonaws.networkmonitor#Destination", "traits": { - "smithy.api#documentation": "

The destination IP address. This will be either IPV4 or IPV6.

", + "smithy.api#documentation": "

The destination IP address. This must be either IPV4 or IPV6.

", "smithy.api#required": {} } }, @@ -2013,14 +2013,14 @@ "protocol": { "target": "com.amazonaws.networkmonitor#Protocol", "traits": { - "smithy.api#documentation": "

The protocol used for the network traffic between the source and destination. This will be either TCP or ICMP.

", + "smithy.api#documentation": "

The protocol used for the network traffic between the source and destination. This must be either TCP or ICMP.

", "smithy.api#required": {} } }, "packetSize": { "target": "com.amazonaws.networkmonitor#PacketSize", "traits": { - "smithy.api#documentation": "

The size of the packets sent between the source and destination. This will be a number between 56 and 8500.

" + "smithy.api#documentation": "

The size of the packets sent between the source and destination. This must be a number between 56 and 8500.

" } }, "tags": { @@ -2135,7 +2135,7 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 255 + "max": 200 }, "smithy.api#pattern": "^[a-zA-Z0-9_-]+$" } @@ -2435,7 +2435,7 @@ "aws.iam#iamAction": { "documentation": "Grants permission to update a monitor" }, - "smithy.api#documentation": "

Updates the aggregationPeriod for a monitor. Monitors support an aggregationPeriod of either 30 or 60 seconds.

", + "smithy.api#documentation": "

Updates the aggregationPeriod for a monitor. Monitors support an\n aggregationPeriod of either 30 or 60 seconds.\n This action requires the monitorName and probeId parameter.\n Run ListMonitors to get a list of monitor names.

", "smithy.api#http": { "uri": "/monitors/{monitorName}", "method": "PATCH" @@ -2449,7 +2449,7 @@ "monitorName": { "target": "com.amazonaws.networkmonitor#ResourceName", "traits": { - "smithy.api#documentation": "

The name of the monitor to update. Run ListMonitors to get a list of monitor names.

", + "smithy.api#documentation": "

The name of the monitor to update.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2539,7 +2539,7 @@ "aws.iam#iamAction": { "documentation": "Grants permission to update a probe" }, - "smithy.api#documentation": "

Updates a monitor probe. This action requires both the monitorName and probeId parameters. Run ListMonitors to get a list of monitor names. Run GetMonitor to get a list of probes and probe IDs.

", + "smithy.api#documentation": "

Updates a monitor probe. This action requires both the monitorName and probeId parameters. Run ListMonitors to get a list of monitor names. Run GetMonitor to get a list of probes and probe IDs.

\n

You can update the following para create a monitor with probes using this command. For\n each probe, you define the following:

\n
    \n
  • \n

    \n state—The state of the probe.

    \n
  • \n
  • \n

    \n destination— The target destination IP address for the\n probe.

    \n
  • \n
  • \n

    \n destinationPort—Required only if the protocol is\n TCP.

    \n
  • \n
  • \n

    \n protocol—The communication protocol between the source and\n destination. This will be either TCP or ICMP.

    \n
  • \n
  • \n

    \n packetSize—The size of the packets. This must be a number between\n 56 and 8500.

    \n
  • \n
  • \n

    (Optional) tags —Key-value pairs created and assigned to the\n probe.

    \n
  • \n
", "smithy.api#http": { "uri": "/monitors/{monitorName}/probes/{probeId}", "method": "PATCH" @@ -2561,7 +2561,7 @@ "probeId": { "target": "com.amazonaws.networkmonitor#ProbeId", "traits": { - "smithy.api#documentation": "

Run GetMonitor to get a list of probes and probe IDs.

", + "smithy.api#documentation": "

The ID of the probe to update.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2633,7 +2633,7 @@ "destinationPort": { "target": "com.amazonaws.networkmonitor#Port", "traits": { - "smithy.api#documentation": "

The updated destination port. This will be a number between 1 and 65536.

" + "smithy.api#documentation": "

The updated destination port. This must be a number between 1 and 65536.

" } }, "protocol": { @@ -2652,7 +2652,7 @@ "addressFamily": { "target": "com.amazonaws.networkmonitor#AddressFamily", "traits": { - "smithy.api#documentation": "

The updated IP address family. This will be either IPV4 or IPV6.

" + "smithy.api#documentation": "

The updated IP address family. This must be either IPV4 or IPV6.

" } }, "vpcId": { diff --git a/models/oam.json b/models/oam.json index d6ed3a8d78..eacdd89b6a 100644 --- a/models/oam.json +++ b/models/oam.json @@ -58,7 +58,7 @@ "aws:RequestTag/${TagKey}", "oam:ResourceTypes" ], - "smithy.api#documentation": "

Creates a link between a source account and a sink that you have created in a monitoring account.

\n

Before you create a link, you must create a sink in the monitoring account and create a\n sink policy in that account. The sink policy must permit the source account to link to it. You\n can grant permission to source accounts by granting permission to an entire organization or to\n individual accounts.

\n

For more information, see\n CreateSink and\n PutSinkPolicy.

\n

Each monitoring account can be linked to as many as 100,000 source accounts.

\n

Each source account can be linked to as many as five monitoring accounts.

", + "smithy.api#documentation": "

Creates a link between a source account and a sink that you have created in a monitoring account. After the link is created, \n data is sent from the source account to the monitoring account. When you create a link, you can optionally specify filters\n that specify which metric namespaces and which log groups are shared from the source account to the monitoring account.

\n

Before you create a link, you must create a sink in the monitoring account and create a\n sink policy in that account. The sink policy must permit the source account to link to it. You\n can grant permission to source accounts by granting permission to an entire organization or to\n individual accounts.

\n

For more information, see \n CreateSink and\n PutSinkPolicy.

\n

Each monitoring account can be linked to as many as 100,000 source accounts.

\n

Each source account can be linked to as many as five monitoring accounts.

", "smithy.api#http": { "method": "POST", "uri": "/CreateLink" @@ -71,28 +71,34 @@ "LabelTemplate": { "target": "com.amazonaws.oam#LabelTemplate", "traits": { - "smithy.api#documentation": "

Specify a friendly human-readable name to use to identify this source account when you are viewing data from it in the monitoring\n account.

\n

You can use a custom label or use the following variables:

\n
    \n
  • \n

    \n $AccountName is the name of the account

    \n
  • \n
  • \n

    \n $AccountEmail is the globally unique email address of the account

    \n
  • \n
  • \n

    \n $AccountEmailNoDomain is the email address of the account without the domain name

    \n
  • \n
", + "smithy.api#documentation": "

Specify a friendly human-readable name to use to identify this source account when you are viewing data from it in the monitoring\n account.

\n

You can use a custom label or use the following variables:

\n
    \n
  • \n

    \n $AccountName is the name of the account

    \n
  • \n
  • \n

    \n $AccountEmail is the globally unique email address of the account

    \n
  • \n
  • \n

    \n $AccountEmailNoDomain is the email address of the account without the domain name

    \n
  • \n
", "smithy.api#required": {} } }, "ResourceTypes": { "target": "com.amazonaws.oam#ResourceTypesInput", "traits": { - "smithy.api#documentation": "

An array of strings that define which types of data that the source account shares with the monitoring\n account.

", + "smithy.api#documentation": "

An array of strings that define which types of data that the source account shares with the monitoring \n account.

", "smithy.api#required": {} } }, "SinkIdentifier": { "target": "com.amazonaws.oam#ResourceIdentifier", "traits": { - "smithy.api#documentation": "

The ARN of the sink to use to create this link. You can use ListSinks to find the ARNs of sinks.

\n

For more information about sinks, see\n CreateSink.

", + "smithy.api#documentation": "

The ARN of the sink to use to create this link. You can use ListSinks to find the ARNs of sinks.

\n

For more information about sinks, see \n CreateSink.

", "smithy.api#required": {} } }, "Tags": { "target": "com.amazonaws.oam#TagMapInput", "traits": { - "smithy.api#documentation": "

Assigns one or more tags (key-value pairs) to the link.

\n

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

\n

For more information about using tags to control access, see\n Controlling access to Amazon Web Services resources using tags.

" + "smithy.api#documentation": "

Assigns one or more tags (key-value pairs) to the link.

\n

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

\n

For more information about using tags to control access, see \n Controlling access to Amazon Web Services resources using tags.

" + } + }, + "LinkConfiguration": { + "target": "com.amazonaws.oam#LinkConfiguration", + "traits": { + "smithy.api#documentation": "

Use this structure to optionally create filters that specify that only some metric namespaces or log groups are to be shared from \n the source account to the monitoring account.

" } } }, @@ -118,7 +124,7 @@ "Label": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The label that you assigned to this link. If the labelTemplate includes variables,\n this field displays the variables resolved to their actual values.

" + "smithy.api#documentation": "

The label that you assigned to this link. If the labelTemplate includes variables, \n this field displays the variables resolved to their actual values.

" } }, "LabelTemplate": { @@ -144,6 +150,12 @@ "traits": { "smithy.api#documentation": "

The tags assigned to the link.

" } + }, + "LinkConfiguration": { + "target": "com.amazonaws.oam#LinkConfiguration", + "traits": { + "smithy.api#documentation": "

This structure includes filters that specify which metric namespaces and which log groups are shared from \n the source account to the monitoring account.

" + } } }, "traits": { @@ -180,7 +192,7 @@ "aws:TagKeys", "aws:RequestTag/${TagKey}" ], - "smithy.api#documentation": "

Use this to create a sink in the current account, so that it can be\n used as a monitoring account in CloudWatch cross-account observability. A sink is a resource that\n represents an attachment point in a monitoring account. Source accounts can link to the sink\n to send observability data.

\n

After you create a sink, you must create a sink policy that allows source accounts to attach to it.\n For more information, see PutSinkPolicy.

\n

Each account can contain one sink. If you delete a sink, you can then create a new one in that account.

", + "smithy.api#documentation": "

Use this to create a sink in the current account, so that it can be\n used as a monitoring account in CloudWatch cross-account observability. A sink is a resource that\n represents an attachment point in a monitoring account. Source accounts can link to the sink\n to send observability data.

\n

After you create a sink, you must create a sink policy that allows source accounts to attach to it. \n For more information, see PutSinkPolicy.

\n

Each account can contain one sink per Region. If you delete a sink, you can then create a new one in that Region.

", "smithy.api#http": { "method": "POST", "uri": "/CreateSink" @@ -200,7 +212,7 @@ "Tags": { "target": "com.amazonaws.oam#TagMapInput", "traits": { - "smithy.api#documentation": "

Assigns one or more tags (key-value pairs) to the link.

\n

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

\n

For more information about using tags to control access, see\n Controlling access to Amazon Web Services resources using tags.

" + "smithy.api#documentation": "

Assigns one or more tags (key-value pairs) to the link.

\n

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

\n

For more information about using tags to control access, see \n Controlling access to Amazon Web Services resources using tags.

" } } }, @@ -266,7 +278,7 @@ "aws.iam#conditionKeys": [ "aws:ResourceTag/${TagKey}" ], - "smithy.api#documentation": "

Deletes a link between a monitoring account sink and a source account. You must run this operation\n in the source account.

", + "smithy.api#documentation": "

Deletes a link between a monitoring account sink and a source account. You must run this operation\n in the source account.

", "smithy.api#http": { "method": "POST", "uri": "/DeleteLink" @@ -446,6 +458,12 @@ "traits": { "smithy.api#documentation": "

The tags assigned to the link.

" } + }, + "LinkConfiguration": { + "target": "com.amazonaws.oam#LinkConfiguration", + "traits": { + "smithy.api#documentation": "

This structure includes filters that specify which metric namespaces and which log groups are shared from \n the source account to the monitoring account.

" + } } }, "traits": { @@ -559,7 +577,7 @@ "aws.iam#conditionKeys": [ "aws:ResourceTag/${TagKey}" ], - "smithy.api#documentation": "

Returns the current sink policy attached to this sink. The sink policy specifies what\n accounts can attach to this sink as source accounts, and what types of data they can share.

", + "smithy.api#documentation": "

Returns the current sink policy attached to this sink. The sink policy specifies what \n accounts can attach to this sink as source accounts, and what types of data they can share.

", "smithy.api#http": { "method": "POST", "uri": "/GetSinkPolicy" @@ -657,6 +675,26 @@ } } }, + "com.amazonaws.oam#LinkConfiguration": { + "type": "structure", + "members": { + "LogGroupConfiguration": { + "target": "com.amazonaws.oam#LogGroupConfiguration", + "traits": { + "smithy.api#documentation": "

Use this structure to filter which log groups are to send log events from \n the source account to the monitoring account.

" + } + }, + "MetricConfiguration": { + "target": "com.amazonaws.oam#MetricConfiguration", + "traits": { + "smithy.api#documentation": "

Use this structure to filter which metric namespaces are to be shared from \n the source account to the monitoring account.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Use this structure to optionally create filters that specify that only some metric namespaces or log groups are to be shared from \n the source account to the monitoring account.

" + } + }, "com.amazonaws.oam#ListAttachedLinks": { "type": "operation", "input": { @@ -748,7 +786,7 @@ } }, "traits": { - "smithy.api#documentation": "

A structure that contains information about one link attached to this monitoring\n account sink.

" + "smithy.api#documentation": "

A structure that contains information about one link attached to this monitoring \n account sink.

" } }, "com.amazonaws.oam#ListAttachedLinksItems": { @@ -807,7 +845,7 @@ } ], "traits": { - "smithy.api#documentation": "

Use this operation in a source account to return a list of links to monitoring account sinks that\n this source account has.

\n

To find a list of links for one monitoring account sink, use ListAttachedLinks from within the monitoring account.

", + "smithy.api#documentation": "

Use this operation in a source account to return a list of links to monitoring account sinks that\n this source account has.

\n

To find a list of links for one monitoring account sink, use ListAttachedLinks from within the monitoring account.

", "smithy.api#http": { "method": "POST", "uri": "/ListLinks" @@ -1066,7 +1104,7 @@ "ResourceArn": { "target": "com.amazonaws.oam#Arn", "traits": { - "smithy.api#documentation": "

The ARN of the resource that you want to view tags for.

\n

The ARN format of a sink is\n arn:aws:oam:Region:account-id:sink/sink-id\n \n

\n

The ARN format of a link is\n arn:aws:oam:Region:account-id:link/link-id\n \n

\n

For more information about ARN format, see CloudWatch Logs\n resources and operations.

\n \n

Unlike tagging permissions in other Amazon Web Services services, to retrieve the list of tags\n for links or sinks you must have the oam:RequestTag permission. The\n aws:ReguestTag permission does not allow you to tag and untag links and\n sinks.

\n
", + "smithy.api#documentation": "

The ARN of the resource that you want to view tags for.

\n

The ARN format of a sink is \n arn:aws:oam:Region:account-id:sink/sink-id\n \n

\n

The ARN format of a link is \n arn:aws:oam:Region:account-id:link/link-id\n \n

\n

For more information about ARN format, see CloudWatch Logs \n resources and operations.

\n \n

Unlike tagging permissions in other Amazon Web Services services, to retrieve the list of tags\n for links or sinks you must have the oam:RequestTag permission. The\n aws:ReguestTag permission does not allow you to tag and untag links and\n sinks.

\n
", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1090,6 +1128,54 @@ "smithy.api#output": {} } }, + "com.amazonaws.oam#LogGroupConfiguration": { + "type": "structure", + "members": { + "Filter": { + "target": "com.amazonaws.oam#LogsFilter", + "traits": { + "smithy.api#documentation": "

Use this field to specify which log groups are to share their log events with the monitoring account. Use the term LogGroupName and one or\n more of the following operands. Use single quotation marks (') around log group names. The matching of log group names is case sensitive.\n Each filter has a limit of five conditional operands. Conditional operands are AND and OR.

\n
    \n
  • \n

    \n = and !=\n

    \n
  • \n
  • \n

    \n AND\n

    \n
  • \n
  • \n

    \n OR\n

    \n
  • \n
  • \n

    \n LIKE and NOT LIKE. These can be used only as prefix searches. Include a % at the end\n of the string that you want to search for and include.

    \n
  • \n
  • \n

    \n IN and NOT IN, using parentheses ( )\n

    \n
  • \n
\n

Examples:

\n
    \n
  • \n

    \n LogGroupName IN ('This-Log-Group', 'Other-Log-Group') includes only the log groups with names This-Log-Group and \n Other-Log-Group.

    \n
  • \n
  • \n

    \n LogGroupName NOT IN ('Private-Log-Group', 'Private-Log-Group-2') includes all log groups except the log groups with names Private-Log-Group and \n Private-Log-Group-2.

    \n
  • \n
  • \n

    \n LogGroupName LIKE 'aws/lambda/%' OR LogGroupName LIKE 'AWSLogs%' includes all log groups that have names that start with aws/lambda/ or \n AWSLogs.

    \n
  • \n
\n \n

If you are updating a link that uses filters, you can specify * as the only value for the \n filter parameter to delete the filter and share all log groups with the monitoring account.

\n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This structure contains the Filter parameter which you can use to specify which log groups are to \n share log events from this source account to the monitoring account.

" + } + }, + "com.amazonaws.oam#LogsFilter": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2000 + } + } + }, + "com.amazonaws.oam#MetricConfiguration": { + "type": "structure", + "members": { + "Filter": { + "target": "com.amazonaws.oam#MetricsFilter", + "traits": { + "smithy.api#documentation": "

Use this field to specify which metrics are to be shared with the monitoring account. Use the term Namespace and one or\n more of the following operands. Use single quotation marks (') around namespace names. The matching of namespace names is case sensitive.\n Each filter has a limit of five conditional operands. Conditional operands are AND and OR.

\n
    \n
  • \n

    \n = and !=\n

    \n
  • \n
  • \n

    \n AND\n

    \n
  • \n
  • \n

    \n OR\n

    \n
  • \n
  • \n

    \n LIKE and NOT LIKE. These can be used only as prefix searches. Include a % at the end\n of the string that you want to search for and include.

    \n
  • \n
  • \n

    \n IN and NOT IN, using parentheses ( )\n

    \n
  • \n
\n

Examples:

\n
    \n
  • \n

    \n Namespace NOT LIKE 'AWS/%' includes only namespaces that don't start with AWS/, such as custom namespaces.

    \n
  • \n
  • \n

    \n Namespace IN ('AWS/EC2', 'AWS/ELB', 'AWS/S3') includes only the metrics in the EC2, Elastic Load Balancing, and Amazon S3 namespaces.

    \n
  • \n
  • \n

    \n Namespace = 'AWS/EC2' OR Namespace NOT LIKE 'AWS/%' includes only the EC2 namespace and your custom namespaces.

    \n
  • \n
\n \n

If you are updating a link that uses filters, you can specify * as the only value for the \n filter parameter to delete the filter and share all metric namespaces with the monitoring account.

\n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This structure contains the Filter parameter which you can use to specify which metric namespaces are to \n be shared from this source account to the monitoring account.

" + } + }, + "com.amazonaws.oam#MetricsFilter": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2000 + } + } + }, "com.amazonaws.oam#MissingRequiredParameterException": { "type": "structure", "members": { @@ -1139,7 +1225,7 @@ "aws.iam#conditionKeys": [ "aws:ResourceTag/${TagKey}" ], - "smithy.api#documentation": "

Creates or updates the resource policy that grants permissions to source\n accounts to link to the monitoring account sink. When you create a sink policy, you can grant\n permissions to all accounts in an organization or to individual accounts.

\n

You can also use a sink policy to limit the types of data that is shared. The three types that\n you can allow or deny are:

\n
    \n
  • \n

    \n Metrics - Specify with\n AWS::CloudWatch::Metric\n

    \n
  • \n
  • \n

    \n Log groups - Specify with AWS::Logs::LogGroup\n

    \n
  • \n
  • \n

    \n Traces - Specify with AWS::XRay::Trace\n

    \n
  • \n
  • \n

    \n Application Insights - Applications - Specify with AWS::ApplicationInsights::Application\n

    \n
  • \n
\n

See the examples in this section to see how to specify permitted source accounts and data types.

", + "smithy.api#documentation": "

Creates or updates the resource policy that grants permissions to source\n accounts to link to the monitoring account sink. When you create a sink policy, you can grant\n permissions to all accounts in an organization or to individual accounts.

\n

You can also use a sink policy to limit the types of data that is shared. The three types that \n you can allow or deny are:

\n
    \n
  • \n

    \n Metrics - Specify with\n AWS::CloudWatch::Metric\n

    \n
  • \n
  • \n

    \n Log groups - Specify with AWS::Logs::LogGroup\n

    \n
  • \n
  • \n

    \n Traces - Specify with AWS::XRay::Trace\n

    \n
  • \n
  • \n

    \n Application Insights - Applications - Specify with AWS::ApplicationInsights::Application\n

    \n
  • \n
\n

See the examples in this section to see how to specify permitted source accounts and data types.

", "smithy.api#http": { "method": "POST", "uri": "/PutSinkPolicy" @@ -1159,7 +1245,7 @@ "Policy": { "target": "com.amazonaws.oam#SinkPolicy", "traits": { - "smithy.api#documentation": "

The JSON policy to use. If you are updating an existing policy, the entire existing policy is\n replaced by what you specify here.

\n

The policy must be in JSON string format with quotation marks escaped and no newlines.

\n

For examples of different types of policies, see the Examples section on this page.

", + "smithy.api#documentation": "

The JSON policy to use. If you are updating an existing policy, the entire existing policy is\n replaced by what you specify here.

\n

The policy must be in JSON string format with quotation marks escaped and no newlines.

\n

For examples of different types of policies, see the Examples section on this page.

", "smithy.api#required": {} } } @@ -1368,7 +1454,7 @@ "aws:TagKeys", "aws:RequestTag/${TagKey}" ], - "smithy.api#documentation": "

Assigns one or more tags (key-value pairs) to the specified resource.\n Both sinks and links can be tagged.

\n

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

\n

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

\n

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

\n

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

\n \n

Unlike tagging permissions in other Amazon Web Services services, to tag or untag links and\n sinks you must have the oam:ResourceTag permission. The\n iam:ResourceTag permission does not allow you to tag and untag links and\n sinks.

\n
", + "smithy.api#documentation": "

Assigns one or more tags (key-value pairs) to the specified resource. \n Both sinks and links can be tagged.

\n

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

\n

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

\n

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

\n

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

\n \n

Unlike tagging permissions in other Amazon Web Services services, to tag or untag links and\n sinks you must have the oam:ResourceTag permission. The\n iam:ResourceTag permission does not allow you to tag and untag links and\n sinks.

\n
", "smithy.api#http": { "method": "PUT", "uri": "/tags/{ResourceArn}", @@ -1382,7 +1468,7 @@ "ResourceArn": { "target": "com.amazonaws.oam#Arn", "traits": { - "smithy.api#documentation": "

The ARN of the resource that you're adding tags to.

\n

The ARN format of a sink is\n arn:aws:oam:Region:account-id:sink/sink-id\n \n

\n

The ARN format of a link is\n arn:aws:oam:Region:account-id:link/link-id\n \n

\n

For more information about ARN format, see CloudWatch Logs\n resources and operations.

", + "smithy.api#documentation": "

The ARN of the resource that you're adding tags to.

\n

The ARN format of a sink is \n arn:aws:oam:Region:account-id:sink/sink-id\n \n

\n

The ARN format of a link is \n arn:aws:oam:Region:account-id:link/link-id\n \n

\n

For more information about ARN format, see CloudWatch Logs \n resources and operations.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1450,7 +1536,7 @@ "aws.iam#conditionKeys": [ "aws:TagKeys" ], - "smithy.api#documentation": "

Removes one or more tags from the specified resource.

\n \n

Unlike tagging permissions in other Amazon Web Services services, to tag or untag links and\n sinks you must have the oam:ResourceTag permission. The\n iam:TagResource permission does not allow you to tag and untag links and\n sinks.

\n
", + "smithy.api#documentation": "

Removes one or more tags from the specified resource.

\n \n

Unlike tagging permissions in other Amazon Web Services services, to tag or untag links and\n sinks you must have the oam:ResourceTag permission. The\n iam:TagResource permission does not allow you to tag and untag links and\n sinks.

\n
", "smithy.api#http": { "method": "DELETE", "uri": "/tags/{ResourceArn}", @@ -1464,7 +1550,7 @@ "ResourceArn": { "target": "com.amazonaws.oam#Arn", "traits": { - "smithy.api#documentation": "

The ARN of the resource that you're removing tags from.

\n

The ARN format of a sink is\n arn:aws:oam:Region:account-id:sink/sink-id\n \n

\n

The ARN format of a link is\n arn:aws:oam:Region:account-id:link/link-id\n \n

\n

For more information about ARN format, see CloudWatch Logs\n resources and operations.

", + "smithy.api#documentation": "

The ARN of the resource that you're removing tags from.

\n

The ARN format of a sink is \n arn:aws:oam:Region:account-id:sink/sink-id\n \n

\n

The ARN format of a link is \n arn:aws:oam:Region:account-id:link/link-id\n \n

\n

For more information about ARN format, see CloudWatch Logs \n resources and operations.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1516,7 +1602,7 @@ "aws:ResourceTag/${TagKey}", "oam:ResourceTypes" ], - "smithy.api#documentation": "

Use this operation to change what types of data are shared from a source account to its linked\n monitoring account sink. You can't change the sink or change the monitoring account with this operation.

\n

To update the list of tags associated with the sink, use\n TagResource.

", + "smithy.api#documentation": "

Use this operation to change what types of data are shared from a source account to its linked\n monitoring account sink. You can't change the sink or change the monitoring account with this operation.

\n

When you update a link, you can optionally specify filters\n that specify which metric namespaces and which log groups are shared from the source account to the monitoring account.

\n

To update the list of tags associated with the sink, use \n TagResource.

", "smithy.api#http": { "method": "POST", "uri": "/UpdateLink" @@ -1536,9 +1622,15 @@ "ResourceTypes": { "target": "com.amazonaws.oam#ResourceTypesInput", "traits": { - "smithy.api#documentation": "

An array of strings that define which types of data that the source account will send to the monitoring\n account.

\n

Your input here replaces the current set of data types that are shared.

", + "smithy.api#documentation": "

An array of strings that define which types of data that the source account will send to the monitoring \n account.

\n

Your input here replaces the current set of data types that are shared.

", "smithy.api#required": {} } + }, + "LinkConfiguration": { + "target": "com.amazonaws.oam#LinkConfiguration", + "traits": { + "smithy.api#documentation": "

Use this structure to filter which metric namespaces and which log groups are to be shared from \n the source account to the monitoring account.

" + } } }, "traits": { @@ -1589,6 +1681,12 @@ "traits": { "smithy.api#documentation": "

The tags assigned to the link.

" } + }, + "LinkConfiguration": { + "target": "com.amazonaws.oam#LinkConfiguration", + "traits": { + "smithy.api#documentation": "

This structure includes filters that specify which metric namespaces and which log groups are shared from \n the source account to the monitoring account.

" + } } }, "traits": { @@ -1702,7 +1800,7 @@ "X-Amz-Requested-Operation" ] }, - "smithy.api#documentation": "

Use Amazon CloudWatch Observability Access Manager to create and manage links between source accounts and\n monitoring accounts by using CloudWatch cross-account observability. With\n CloudWatch cross-account observability, you can monitor and troubleshoot applications that span\n multiple accounts within a Region. Seamlessly search, visualize, and analyze your metrics,\n logs, traces, and Application Insights applications in any of the linked accounts without account boundaries.

\n

Set up one or more Amazon Web Services accounts as monitoring\n accounts and link them with multiple source accounts. A\n monitoring account is a central Amazon Web Services account that can view and interact with\n observability data generated from source accounts. A source account is an individual Amazon Web Services account that generates observability data for the resources that reside in it.\n Source accounts share their observability data with the monitoring account. The shared\n observability data can include metrics in Amazon CloudWatch, logs in Amazon CloudWatch Logs, traces in X-Ray, and applications in Amazon CloudWatch Application Insights.

", + "smithy.api#documentation": "

Use Amazon CloudWatch Observability Access Manager to create and manage links between source accounts and\n monitoring accounts by using CloudWatch cross-account observability. With\n CloudWatch cross-account observability, you can monitor and troubleshoot applications that span\n multiple accounts within a Region. Seamlessly search, visualize, and analyze your metrics,\n logs, traces, and Application Insights applications in any of the linked accounts without account boundaries.

\n

Set up one or more Amazon Web Services accounts as monitoring\n accounts and link them with multiple source accounts. A\n monitoring account is a central Amazon Web Services account that can view and interact with\n observability data generated from source accounts. A source account is an individual Amazon Web Services account that generates observability data for the resources that reside in it.\n Source accounts share their observability data with the monitoring account. The shared\n observability data can include metrics in Amazon CloudWatch, logs in Amazon CloudWatch Logs, traces in X-Ray, and applications in Amazon CloudWatch Application Insights.

", "smithy.api#title": "CloudWatch Observability Access Manager", "smithy.rules#endpointRuleSet": { "version": "1.0", diff --git a/models/omics.json b/models/omics.json index 6db63d936b..f3db885ee5 100644 --- a/models/omics.json +++ b/models/omics.json @@ -37,7 +37,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to abort multipart read set uploads", - "smithy.api#documentation": "

\n Stops a multipart upload.\n

", + "smithy.api#documentation": "

Stops a multipart upload.

", "smithy.api#endpoint": { "hostPrefix": "control-storage-" }, @@ -53,7 +53,7 @@ "sequenceStoreId": { "target": "com.amazonaws.omics#SequenceStoreId", "traits": { - "smithy.api#documentation": "

\n The sequence store ID for the store involved in the multipart upload.\n

", + "smithy.api#documentation": "

The sequence store ID for the store involved in the multipart upload.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -61,7 +61,7 @@ "uploadId": { "target": "com.amazonaws.omics#UploadId", "traits": { - "smithy.api#documentation": "

\n The ID for the multipart upload. \n

", + "smithy.api#documentation": "

The ID for the multipart upload.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -125,7 +125,7 @@ } ], "traits": { - "smithy.api#documentation": "

\nAccepts a share for an analytics store. \n

", + "smithy.api#documentation": "

Accept a resource share request.

", "smithy.api#endpoint": { "hostPrefix": "analytics-" }, @@ -142,7 +142,7 @@ "shareId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

\nThe ID for a share offer for analytics store data. \n

", + "smithy.api#documentation": "

The ID of the resource share.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -158,7 +158,7 @@ "status": { "target": "com.amazonaws.omics#ShareStatus", "traits": { - "smithy.api#documentation": "

\nThe status of an analytics store share. \n

" + "smithy.api#documentation": "

The status of the resource share.

" } } }, @@ -508,6 +508,9 @@ }, "list": { "target": "com.amazonaws.omics#ListAnnotationStores" + }, + "traits": { + "smithy.api#documentation": "Represents a resource that stores annotation data" } }, "com.amazonaws.omics#AnnotationStoreItem": { @@ -1109,7 +1112,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to complete a multipart read set upload", - "smithy.api#documentation": "

\n Concludes a multipart upload once you have uploaded all the components.\n

", + "smithy.api#documentation": "

Concludes a multipart upload once you have uploaded all the components.

", "smithy.api#endpoint": { "hostPrefix": "storage-" }, @@ -1125,7 +1128,7 @@ "sequenceStoreId": { "target": "com.amazonaws.omics#SequenceStoreId", "traits": { - "smithy.api#documentation": "

\n The sequence store ID for the store involved in the multipart upload.\n

", + "smithy.api#documentation": "

The sequence store ID for the store involved in the multipart upload.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1133,7 +1136,7 @@ "uploadId": { "target": "com.amazonaws.omics#UploadId", "traits": { - "smithy.api#documentation": "

\n The ID for the multipart upload. \n

", + "smithy.api#documentation": "

The ID for the multipart upload.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1141,7 +1144,7 @@ "parts": { "target": "com.amazonaws.omics#CompleteReadSetUploadPartList", "traits": { - "smithy.api#documentation": "

\n The individual uploads or parts of a multipart upload.\n

", + "smithy.api#documentation": "

The individual uploads or parts of a multipart upload.

", "smithy.api#required": {} } } @@ -1156,7 +1159,7 @@ "readSetId": { "target": "com.amazonaws.omics#ReadSetId", "traits": { - "smithy.api#documentation": "

\n The read set ID created for an uploaded read set. \n

", + "smithy.api#documentation": "

The read set ID created for an uploaded read set.

", "smithy.api#required": {} } } @@ -1196,6 +1199,11 @@ "target": "smithy.api#String", "traits": { "smithy.api#documentation": "

\n A unique identifier used to confirm that parts are being added to the correct upload.\n

", + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#pattern": "^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$", "smithy.api#required": {} } } @@ -1258,6 +1266,9 @@ } ], "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to create an Annotation Store" + }, "smithy.api#documentation": "

Creates an annotation store.

", "smithy.api#endpoint": { "hostPrefix": "analytics-" @@ -1563,7 +1574,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to create a multipart read set upload", - "smithy.api#documentation": "

\n Begins a multipart read set upload. \n

", + "smithy.api#documentation": "

Begins a multipart read set upload.

", "smithy.api#endpoint": { "hostPrefix": "control-storage-" }, @@ -1579,7 +1590,7 @@ "sequenceStoreId": { "target": "com.amazonaws.omics#SequenceStoreId", "traits": { - "smithy.api#documentation": "

\n The sequence store ID for the store that is the destination of the multipart uploads.\n

", + "smithy.api#documentation": "

The sequence store ID for the store that is the destination of the multipart uploads.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1587,59 +1598,59 @@ "clientToken": { "target": "com.amazonaws.omics#ClientToken", "traits": { - "smithy.api#documentation": "

\n An idempotency token that can be used to avoid triggering multiple multipart uploads.\n

" + "smithy.api#documentation": "

An idempotency token that can be used to avoid triggering multiple multipart uploads.

" } }, "sourceFileType": { "target": "com.amazonaws.omics#FileType", "traits": { - "smithy.api#documentation": "

\n The type of file being uploaded.\n

", + "smithy.api#documentation": "

The type of file being uploaded.

", "smithy.api#required": {} } }, "subjectId": { "target": "com.amazonaws.omics#SubjectId", "traits": { - "smithy.api#documentation": "

\n The source's subject ID.\n

", + "smithy.api#documentation": "

The source's subject ID.

", "smithy.api#required": {} } }, "sampleId": { "target": "com.amazonaws.omics#SampleId", "traits": { - "smithy.api#documentation": "

\n The source's sample ID.\n

", + "smithy.api#documentation": "

The source's sample ID.

", "smithy.api#required": {} } }, "generatedFrom": { "target": "com.amazonaws.omics#GeneratedFrom", "traits": { - "smithy.api#documentation": "

\n Where the source originated.\n

" + "smithy.api#documentation": "

Where the source originated.

" } }, "referenceArn": { "target": "com.amazonaws.omics#ReferenceArn", "traits": { - "smithy.api#documentation": "

\n The ARN of the reference.\n

" + "smithy.api#documentation": "

The ARN of the reference.

" } }, "name": { "target": "com.amazonaws.omics#ReadSetName", "traits": { - "smithy.api#documentation": "

\n The name of the read set.\n

", + "smithy.api#documentation": "

The name of the read set.

", "smithy.api#required": {} } }, "description": { "target": "com.amazonaws.omics#ReadSetDescription", "traits": { - "smithy.api#documentation": "

\n The description of the read set.\n

" + "smithy.api#documentation": "

The description of the read set.

" } }, "tags": { "target": "com.amazonaws.omics#TagMap", "traits": { - "smithy.api#documentation": "

\n Any tags to add to the read set.\n

" + "smithy.api#documentation": "

Any tags to add to the read set.

" } } }, @@ -1653,73 +1664,73 @@ "sequenceStoreId": { "target": "com.amazonaws.omics#SequenceStoreId", "traits": { - "smithy.api#documentation": "

\n The sequence store ID for the store that the read set will be created in.\n

", + "smithy.api#documentation": "

The sequence store ID for the store that the read set will be created in.

", "smithy.api#required": {} } }, "uploadId": { "target": "com.amazonaws.omics#UploadId", "traits": { - "smithy.api#documentation": "

\n he ID for the initiated multipart upload.\n

", + "smithy.api#documentation": "

The ID for the initiated multipart upload.

", "smithy.api#required": {} } }, "sourceFileType": { "target": "com.amazonaws.omics#FileType", "traits": { - "smithy.api#documentation": "

\n The file type of the read set source.\n

", + "smithy.api#documentation": "

The file type of the read set source.

", "smithy.api#required": {} } }, "subjectId": { "target": "com.amazonaws.omics#SubjectId", "traits": { - "smithy.api#documentation": "

\n The source's subject ID.\n

", + "smithy.api#documentation": "

The source's subject ID.

", "smithy.api#required": {} } }, "sampleId": { "target": "com.amazonaws.omics#SampleId", "traits": { - "smithy.api#documentation": "

\n The source's sample ID.\n

", + "smithy.api#documentation": "

The source's sample ID.

", "smithy.api#required": {} } }, "generatedFrom": { "target": "com.amazonaws.omics#GeneratedFrom", "traits": { - "smithy.api#documentation": "

\n The source of the read set. \n

" + "smithy.api#documentation": "

The source of the read set.

" } }, "referenceArn": { "target": "com.amazonaws.omics#ReferenceArn", "traits": { - "smithy.api#documentation": "

\n The read set source's reference ARN.\n

", + "smithy.api#documentation": "

The read set source's reference ARN.

", "smithy.api#required": {} } }, "name": { "target": "com.amazonaws.omics#ReadSetName", "traits": { - "smithy.api#documentation": "

\n The name of the read set.\n

" + "smithy.api#documentation": "

The name of the read set.

" } }, "description": { "target": "com.amazonaws.omics#ReadSetDescription", "traits": { - "smithy.api#documentation": "

\n The description of the read set.\n

" + "smithy.api#documentation": "

The description of the read set.

" } }, "tags": { "target": "com.amazonaws.omics#TagMap", "traits": { - "smithy.api#documentation": "

\n The tags to add to the read set.\n

" + "smithy.api#documentation": "

The tags to add to the read set.

" } }, "creationTime": { "target": "smithy.api#Timestamp", "traits": { - "smithy.api#documentation": "

\n The creation time of the multipart upload.\n

", + "smithy.api#documentation": "

The creation time of the multipart upload.

", "smithy.api#required": {}, "smithy.api#timestampFormat": "date-time" } @@ -1962,7 +1973,7 @@ "maxGpus": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

\n The maximum GPUs that can be used by a run group. \n

", + "smithy.api#documentation": "

The maximum GPUs that can be used by a run group.

", "smithy.api#range": { "min": 1, "max": 100000 @@ -2081,7 +2092,13 @@ "fallbackLocation": { "target": "com.amazonaws.omics#S3Destination", "traits": { - "smithy.api#documentation": "

\n An S3 location that is used to store files that have failed a direct upload. \n

" + "smithy.api#documentation": "

An S3 location that is used to store files that have failed a direct upload.

" + } + }, + "eTagAlgorithmFamily": { + "target": "com.amazonaws.omics#ETagAlgorithmFamily", + "traits": { + "smithy.api#documentation": "

The ETag algorithm family to use for ingested read sets.

" } } }, @@ -2135,7 +2152,13 @@ "fallbackLocation": { "target": "com.amazonaws.omics#S3Destination", "traits": { - "smithy.api#documentation": "

\n An S3 location that is used to store files that have failed a direct upload. \n

" + "smithy.api#documentation": "

An S3 location that is used to store files that have failed a direct upload.

" + } + }, + "eTagAlgorithmFamily": { + "target": "com.amazonaws.omics#ETagAlgorithmFamily", + "traits": { + "smithy.api#documentation": "

The algorithm family of the ETag.

" } } }, @@ -2175,7 +2198,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Creates a share offer that can be accepted outside the account by a subscriber. The share is created by the owner and accepted by the principal subscriber. \n

", + "smithy.api#documentation": "

Creates a cross-account shared resource. The resource owner makes an offer to share the resource \n with the principal subscriber (an AWS user with a different account than the resource owner).

\n

The following resources support cross-account sharing:

\n
    \n
  • \n

    Healthomics variant stores

    \n
  • \n
  • \n

    Healthomics annotation stores

    \n
  • \n
  • \n

    Private workflows

    \n
  • \n
", "smithy.api#endpoint": { "hostPrefix": "analytics-" }, @@ -2192,21 +2215,21 @@ "resourceArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

\n The resource ARN for the analytics store to be shared.\n

", + "smithy.api#documentation": "

The ARN of the resource to be shared.

", "smithy.api#required": {} } }, "principalSubscriber": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

\n The principal subscriber is the account being given access to the analytics store data through the share offer. \n

", + "smithy.api#documentation": "

The principal subscriber is the account being offered shared access to the resource.

", "smithy.api#required": {} } }, "shareName": { "target": "com.amazonaws.omics#ShareName", "traits": { - "smithy.api#documentation": "

\n A name given to the share. \n

" + "smithy.api#documentation": "

A name that the owner defines for the share.

" } } }, @@ -2220,19 +2243,19 @@ "shareId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

\n An ID generated for the share. \n

" + "smithy.api#documentation": "

The ID that HealthOmics generates for the share.

" } }, "status": { "target": "com.amazonaws.omics#ShareStatus", "traits": { - "smithy.api#documentation": "

\n The status of a share. \n

" + "smithy.api#documentation": "

The status of the share.

" } }, "shareName": { "target": "com.amazonaws.omics#ShareName", "traits": { - "smithy.api#documentation": "

\n A name given to the share. \n

" + "smithy.api#documentation": "

The name of the share.

" } } }, @@ -2272,6 +2295,9 @@ } ], "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to create a Variant Store" + }, "smithy.api#documentation": "

Creates a variant store.

", "smithy.api#endpoint": { "hostPrefix": "analytics-" @@ -2459,7 +2485,7 @@ "storageCapacity": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

A storage capacity for the workflow in gibibytes.

", + "smithy.api#documentation": "

The storage capacity for the workflow in gibibytes.

", "smithy.api#range": { "min": 0, "max": 100000 @@ -2483,7 +2509,7 @@ "accelerators": { "target": "com.amazonaws.omics#Accelerators", "traits": { - "smithy.api#documentation": "

\n The computational accelerator specified to run the workflow. \n

" + "smithy.api#documentation": "

The computational accelerator specified to run the workflow.

" } } }, @@ -2573,6 +2599,9 @@ } ], "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to delete an Annotation Store" + }, "smithy.api#documentation": "

Deletes an annotation store.

", "smithy.api#endpoint": { "hostPrefix": "analytics-" @@ -3080,7 +3109,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Deletes a share of an analytics store. \n

", + "smithy.api#documentation": "

Deletes a resource share. If you are the resource owner, the subscriber will no longer have \n access to the shared resource. If you are the subscriber, this operation deletes your access to the share.

", "smithy.api#endpoint": { "hostPrefix": "analytics-" }, @@ -3098,7 +3127,7 @@ "shareId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

\n The ID for the share request to be deleted. \n

", + "smithy.api#documentation": "

The ID for the resource share to be deleted.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3114,7 +3143,7 @@ "status": { "target": "com.amazonaws.omics#ShareStatus", "traits": { - "smithy.api#documentation": "

\n The status of the share being deleted. \n

" + "smithy.api#documentation": "

The status of the share being deleted.

" } } }, @@ -3151,6 +3180,9 @@ } ], "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to delete a Variant Store" + }, "smithy.api#documentation": "

Deletes a variant store.

", "smithy.api#endpoint": { "hostPrefix": "analytics-" @@ -3280,24 +3312,24 @@ "algorithm": { "target": "com.amazonaws.omics#ETagAlgorithm", "traits": { - "smithy.api#documentation": "

\n The algorithm used to calculate the read set’s ETag(s).

" + "smithy.api#documentation": "

The algorithm used to calculate the read set’s ETag(s).

" } }, "source1": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

\n The ETag hash calculated on Source1 of the read set.\n

" + "smithy.api#documentation": "

The ETag hash calculated on Source1 of the read set.

" } }, "source2": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

\n The ETag hash calculated on Source2 of the read set.\n

" + "smithy.api#documentation": "

The ETag hash calculated on Source2 of the read set.

" } } }, "traits": { - "smithy.api#documentation": "

\n The entity tag (ETag) is a hash of the object representing its semantic content.\n

" + "smithy.api#documentation": "

The entity tag (ETag) is a hash of the object representing its semantic content.

" } }, "com.amazonaws.omics#ETagAlgorithm": { @@ -3315,6 +3347,49 @@ { "value": "CRAM_MD5up", "name": "CRAM_MD5UP" + }, + { + "value": "FASTQ_SHA256up", + "name": "FASTQ_SHA256UP" + }, + { + "value": "BAM_SHA256up", + "name": "BAM_SHA256UP" + }, + { + "value": "CRAM_SHA256up", + "name": "CRAM_SHA256UP" + }, + { + "value": "FASTQ_SHA512up", + "name": "FASTQ_SHA512UP" + }, + { + "value": "BAM_SHA512up", + "name": "BAM_SHA512UP" + }, + { + "value": "CRAM_SHA512up", + "name": "CRAM_SHA512UP" + } + ] + } + }, + "com.amazonaws.omics#ETagAlgorithmFamily": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "MD5up", + "name": "MD5UP" + }, + { + "value": "SHA256up", + "name": "SHA256UP" + }, + { + "value": "SHA512up", + "name": "SHA512UP" } ] } @@ -3543,6 +3618,12 @@ "max": 5497558138880 } } + }, + "s3Access": { + "target": "com.amazonaws.omics#ReadSetS3Access", + "traits": { + "smithy.api#documentation": "

The S3 URI metadata of a sequence store.

" + } } }, "traits": { @@ -3578,18 +3659,24 @@ "resourceArns": { "target": "com.amazonaws.omics#ArnList", "traits": { - "smithy.api#documentation": "

\nThe Amazon Resource Number (Arn) for an analytics store. \n

" + "smithy.api#documentation": "

Filter based on the Amazon Resource Number (ARN) of the resource. You can specify up to 10 values.

" } }, "status": { "target": "com.amazonaws.omics#StatusList", "traits": { - "smithy.api#documentation": "

\nThe status of an annotation store version. \n

" + "smithy.api#documentation": "

Filter based on the resource status. You can specify up to 10 values.

" + } + }, + "type": { + "target": "com.amazonaws.omics#TypeList", + "traits": { + "smithy.api#documentation": "

The type of resources to be filtered. You can specify one or more of the resource types.

" } } }, "traits": { - "smithy.api#documentation": "

\nUse filters to focus the returned annotation store versions on a specific parameter, such as the status of the annotation store.\n

" + "smithy.api#documentation": "

Use filters to return a subset of resources. You can define filters for specific parameters,\n such as the resource status.

" } }, "com.amazonaws.omics#FormatOptions": { @@ -3871,7 +3958,7 @@ "annotationFields": { "target": "com.amazonaws.omics#AnnotationFieldMap", "traits": { - "smithy.api#documentation": "

\n The annotation schema generated by the parsed annotation data.\n

" + "smithy.api#documentation": "

The annotation schema generated by the parsed annotation data.

" } } }, @@ -3905,6 +3992,9 @@ } ], "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to get detailed information about an Annotation Store" + }, "smithy.api#documentation": "

Gets information about an annotation store.

", "smithy.api#endpoint": { "hostPrefix": "analytics-" @@ -5187,7 +5277,7 @@ "statusMessage": { "target": "com.amazonaws.omics#ReadSetStatusMessage", "traits": { - "smithy.api#documentation": "

\n The status message for a read set. It provides more detail as to why the read set has a status. \n

" + "smithy.api#documentation": "

The status message for a read set. It provides more detail as to why the read set has a status.

" } }, "creationType": { @@ -5199,7 +5289,7 @@ "etag": { "target": "com.amazonaws.omics#ETag", "traits": { - "smithy.api#documentation": "

\n The entity tag (ETag) is a hash of the object meant to represent its semantic content.\n

" + "smithy.api#documentation": "

The entity tag (ETag) is a hash of the object meant to represent its semantic content.

" } } }, @@ -5869,7 +5959,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about a workflow run.

", + "smithy.api#documentation": "

Gets information about a workflow run.

\n

If a workflow is shared with you, you cannot export information about the run.

", "smithy.api#endpoint": { "hostPrefix": "workflows-" }, @@ -6136,7 +6226,7 @@ "maxGpus": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

\n The maximum GPUs that can be used by a run group. \n

", + "smithy.api#documentation": "

The maximum GPUs that can be used by a run group.

", "smithy.api#range": { "min": 1, "max": 100000 @@ -6259,7 +6349,7 @@ "storageCapacity": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

The run's storage capacity in gigabytes.

", + "smithy.api#documentation": "

The run's storage capacity in gibibytes. For dynamic storage, \n after the run has completed, this value is the maximum amount of storage\n used during the run.

", "smithy.api#range": { "min": 0, "max": 100000 @@ -6323,7 +6413,7 @@ "accelerators": { "target": "com.amazonaws.omics#Accelerators", "traits": { - "smithy.api#documentation": "

\n The computational accelerator used to run the workflow. \n

" + "smithy.api#documentation": "

The computational accelerator used to run the workflow.

" } }, "retentionMode": { @@ -6335,25 +6425,37 @@ "failureReason": { "target": "com.amazonaws.omics#RunFailureReason", "traits": { - "smithy.api#documentation": "

\n The reason a run has failed. \n

" + "smithy.api#documentation": "

The reason a run has failed.

" } }, "logLocation": { "target": "com.amazonaws.omics#RunLogLocation", "traits": { - "smithy.api#documentation": "

\n The location of the run log. \n

" + "smithy.api#documentation": "

The location of the run log.

" } }, "uuid": { "target": "com.amazonaws.omics#RunUuid", "traits": { - "smithy.api#documentation": "

\n The universally unique identifier for a run. \n

" + "smithy.api#documentation": "

The universally unique identifier for a run.

" } }, "runOutputUri": { "target": "com.amazonaws.omics#RunOutputUri", "traits": { - "smithy.api#documentation": "

\n The destination for workflow outputs.\n

" + "smithy.api#documentation": "

The destination for workflow outputs.

" + } + }, + "storageType": { + "target": "com.amazonaws.omics#StorageType", + "traits": { + "smithy.api#documentation": "

The run's storage type.

" + } + }, + "workflowOwnerId": { + "target": "com.amazonaws.omics#WorkflowOwnerId", + "traits": { + "smithy.api#documentation": "

The ID of the workflow owner.

" } } }, @@ -6630,7 +6732,7 @@ "gpus": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

\n The number of Graphics Processing Units (GPU) specified in the task. \n

", + "smithy.api#documentation": "

The number of Graphics Processing Units (GPU) specified in the task.

", "smithy.api#range": { "min": 0 } @@ -6639,13 +6741,13 @@ "instanceType": { "target": "com.amazonaws.omics#TaskInstanceType", "traits": { - "smithy.api#documentation": "

\n The instance type for a task. \n

" + "smithy.api#documentation": "

The instance type for a task.

" } }, "failureReason": { "target": "com.amazonaws.omics#TaskFailureReason", "traits": { - "smithy.api#documentation": "

\n The reason a task has failed. \n

" + "smithy.api#documentation": "

The reason a task has failed.

" } } }, @@ -6757,7 +6859,19 @@ "fallbackLocation": { "target": "com.amazonaws.omics#S3Destination", "traits": { - "smithy.api#documentation": "

\n An S3 location that is used to store files that have failed a direct upload.\n

" + "smithy.api#documentation": "

An S3 location that is used to store files that have failed a direct upload.

" + } + }, + "s3Access": { + "target": "com.amazonaws.omics#SequenceStoreS3Access", + "traits": { + "smithy.api#documentation": "

The S3 metadata of a sequence store, including the ARN and S3 URI of the S3 bucket.

" + } + }, + "eTagAlgorithmFamily": { + "target": "com.amazonaws.omics#ETagAlgorithmFamily", + "traits": { + "smithy.api#documentation": "

The algorithm family of the ETag.

" } } }, @@ -6797,7 +6911,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Retrieves the metadata for a share. \n

", + "smithy.api#documentation": "

Retrieves the metadata for the specified resource share.

", "smithy.api#endpoint": { "hostPrefix": "analytics-" }, @@ -6815,7 +6929,7 @@ "shareId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

\n The generated ID for a share. \n

", + "smithy.api#documentation": "

The ID of the share.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6831,7 +6945,7 @@ "share": { "target": "com.amazonaws.omics#ShareDetails", "traits": { - "smithy.api#documentation": "

\n An analytic store share details object. contains status, resourceArn, ownerId, etc. \n

" + "smithy.api#documentation": "

A resource share details object. The object includes the status, the resourceArn, and ownerId.

" } } }, @@ -7028,7 +7142,7 @@ "annotationFields": { "target": "com.amazonaws.omics#AnnotationFieldMap", "traits": { - "smithy.api#documentation": "

\n The annotation schema generated by the parsed annotation data. \n

" + "smithy.api#documentation": "

The annotation schema generated by the parsed annotation data.

" } } }, @@ -7062,6 +7176,9 @@ } ], "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to get detailed information about a Variant Store" + }, "smithy.api#documentation": "

Gets information about a variant store.

", "smithy.api#endpoint": { "hostPrefix": "analytics-" @@ -7299,7 +7416,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about a workflow.

", + "smithy.api#documentation": "

Gets information about a workflow.

\n

If a workflow is shared with you, you cannot export the workflow.

", "smithy.api#endpoint": { "hostPrefix": "workflows-" }, @@ -7384,6 +7501,13 @@ "smithy.api#documentation": "

The export format for the workflow.

", "smithy.api#httpQuery": "export" } + }, + "workflowOwnerId": { + "target": "com.amazonaws.omics#WorkflowOwnerId", + "traits": { + "smithy.api#documentation": "

The ID of the workflow owner.

", + "smithy.api#httpQuery": "workflowOwnerId" + } } }, "traits": { @@ -7464,7 +7588,7 @@ "storageCapacity": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

The workflow's storage capacity in gigabytes.

", + "smithy.api#documentation": "

The workflow's storage capacity in gibibytes.

", "smithy.api#range": { "min": 0, "max": 100000 @@ -7493,13 +7617,13 @@ "metadata": { "target": "com.amazonaws.omics#WorkflowMetadata", "traits": { - "smithy.api#documentation": "

\n Gets metadata for workflow. \n

" + "smithy.api#documentation": "

Gets metadata for workflow.

" } }, "accelerators": { "target": "com.amazonaws.omics#Accelerators", "traits": { - "smithy.api#documentation": "

\n The computational accelerator specified to run the workflow.

" + "smithy.api#documentation": "

The computational accelerator specified to run the workflow.

" } } }, @@ -8091,12 +8215,12 @@ "status": { "target": "com.amazonaws.omics#VersionStatus", "traits": { - "smithy.api#documentation": "

\nThe status of an annotation store version. \n

" + "smithy.api#documentation": "

The status of an annotation store version.

" } } }, "traits": { - "smithy.api#documentation": "

\nUse filters to focus the returned annotation store versions on a specific parameter, such as the status of the annotation store.\n

" + "smithy.api#documentation": "

Use filters to focus the returned annotation store versions on a specific parameter,\n such as the status of the annotation store.

" } }, "com.amazonaws.omics#ListAnnotationStoreVersionsRequest": { @@ -8189,6 +8313,9 @@ } ], "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to retrieve a list of information about Annotation Stores" + }, "smithy.api#documentation": "

Retrieves a list of annotation stores.

", "smithy.api#endpoint": { "hostPrefix": "analytics-" @@ -8323,7 +8450,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to list multipart read set uploads", - "smithy.api#documentation": "

\n Lists multipart read set uploads and for in progress uploads. Once the upload is completed, a read set is created and the upload will no longer be returned in the respone.\n

", + "smithy.api#documentation": "

Lists multipart read set uploads and for in progress uploads. \n Once the upload is completed, a read set is created and the upload will no longer be returned in the response.

", "smithy.api#endpoint": { "hostPrefix": "control-storage-" }, @@ -8346,7 +8473,7 @@ "sequenceStoreId": { "target": "com.amazonaws.omics#SequenceStoreId", "traits": { - "smithy.api#documentation": "

\n The Sequence Store ID used for the multipart uploads.\n

", + "smithy.api#documentation": "

The Sequence Store ID used for the multipart uploads.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -8354,7 +8481,7 @@ "maxResults": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

\n The maximum number of multipart uploads returned in a page.\n

", + "smithy.api#documentation": "

The maximum number of multipart uploads returned in a page.

", "smithy.api#httpQuery": "maxResults", "smithy.api#range": { "min": 1, @@ -8365,7 +8492,7 @@ "nextToken": { "target": "com.amazonaws.omics#NextToken", "traits": { - "smithy.api#documentation": "

\n Next token returned in the response of a previous ListMultipartReadSetUploads call. Used to get the next page of results.\n

", + "smithy.api#documentation": "

Next token returned in the response of a previous ListMultipartReadSetUploads call. \n Used to get the next page of results.

", "smithy.api#httpQuery": "nextToken" } } @@ -8380,13 +8507,13 @@ "nextToken": { "target": "com.amazonaws.omics#NextToken", "traits": { - "smithy.api#documentation": "

\n Next token returned in the response of a previous ListMultipartReadSetUploads call. Used to get the next page of results.\n

" + "smithy.api#documentation": "

Next token returned in the response of a previous ListMultipartReadSetUploads call. \n Used to get the next page of results.

" } }, "uploads": { "target": "com.amazonaws.omics#MultipartReadSetUploadList", "traits": { - "smithy.api#documentation": "

\n An array of multipart uploads.\n

" + "smithy.api#documentation": "

An array of multipart uploads.

" } } }, @@ -8751,7 +8878,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to list read set upload parts", - "smithy.api#documentation": "

\n This operation will list all parts in a requested multipart upload for a sequence store.\n

", + "smithy.api#documentation": "

This operation will list all parts in a requested multipart upload for a sequence store.

", "smithy.api#endpoint": { "hostPrefix": "control-storage-" }, @@ -8774,7 +8901,7 @@ "sequenceStoreId": { "target": "com.amazonaws.omics#SequenceStoreId", "traits": { - "smithy.api#documentation": "

\n The Sequence Store ID used for the multipart uploads.\n

", + "smithy.api#documentation": "

The Sequence Store ID used for the multipart uploads.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -8782,7 +8909,7 @@ "uploadId": { "target": "com.amazonaws.omics#UploadId", "traits": { - "smithy.api#documentation": "

\n The ID for the initiated multipart upload. \n

", + "smithy.api#documentation": "

The ID for the initiated multipart upload.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -8790,14 +8917,14 @@ "partSource": { "target": "com.amazonaws.omics#ReadSetPartSource", "traits": { - "smithy.api#documentation": "

\n The source file for the upload part.\n

", + "smithy.api#documentation": "

The source file for the upload part.

", "smithy.api#required": {} } }, "maxResults": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

\n The maximum number of read set upload parts returned in a page.\n

", + "smithy.api#documentation": "

The maximum number of read set upload parts returned in a page.

", "smithy.api#httpQuery": "maxResults", "smithy.api#range": { "min": 1, @@ -8808,14 +8935,14 @@ "nextToken": { "target": "com.amazonaws.omics#NextToken", "traits": { - "smithy.api#documentation": "

\n Next token returned in the response of a previous ListReadSetUploadPartsRequest call. Used to get the next page of results.\n

", + "smithy.api#documentation": "

Next token returned in the response of a previous ListReadSetUploadPartsRequest call.\n Used to get the next page of results.

", "smithy.api#httpQuery": "nextToken" } }, "filter": { "target": "com.amazonaws.omics#ReadSetUploadPartListFilter", "traits": { - "smithy.api#documentation": "

\n Attributes used to filter for a specific subset of read set part uploads.\n

" + "smithy.api#documentation": "

Attributes used to filter for a specific subset of read set part uploads.

" } } }, @@ -8829,13 +8956,13 @@ "nextToken": { "target": "com.amazonaws.omics#NextToken", "traits": { - "smithy.api#documentation": "

\n Next token returned in the response of a previous ListReadSetUploadParts call. Used to get the next page of results.\n

" + "smithy.api#documentation": "

Next token returned in the response of a previous ListReadSetUploadParts call.\n Used to get the next page of results.

" } }, "parts": { "target": "com.amazonaws.omics#ReadSetUploadPartList", "traits": { - "smithy.api#documentation": "

\n An array of upload parts.\n

" + "smithy.api#documentation": "

An array of upload parts.

" } } }, @@ -9574,7 +9701,7 @@ "status": { "target": "com.amazonaws.omics#RunStatus", "traits": { - "smithy.api#documentation": "

\n The status of a run.\n

", + "smithy.api#documentation": "

The status of a run.

", "smithy.api#httpQuery": "status" } } @@ -9732,7 +9859,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Lists all shares associated with an account. \n

", + "smithy.api#documentation": "

Retrieves the resource shares associated with an account. Use the filter parameter to \n retrieve a specific subset of the shares.

", "smithy.api#endpoint": { "hostPrefix": "analytics-" }, @@ -9756,27 +9883,27 @@ "resourceOwner": { "target": "com.amazonaws.omics#ResourceOwner", "traits": { - "smithy.api#documentation": "

\n The account that owns the analytics store shared. \n

", + "smithy.api#documentation": "

The account that owns the resource shares.

", "smithy.api#required": {} } }, "filter": { "target": "com.amazonaws.omics#Filter", "traits": { - "smithy.api#documentation": "

\n Attributes used to filter for a specific subset of shares. \n

" + "smithy.api#documentation": "

Attributes that you use to filter for a specific subset of resource shares.

" } }, "nextToken": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

\n Next token returned in the response of a previous ListReadSetUploadPartsRequest call. Used to get the next page of results.\n

", + "smithy.api#documentation": "

Next token returned in the response of a previous ListReadSetUploadPartsRequest call.\n Used to get the next page of results.

", "smithy.api#httpQuery": "nextToken" } }, "maxResults": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

\n The maximum number of shares to return in one page of results.\n

", + "smithy.api#documentation": "

The maximum number of shares to return in one page of results.

", "smithy.api#httpQuery": "maxResults" } } @@ -9791,7 +9918,7 @@ "shares": { "target": "com.amazonaws.omics#ShareDetailsList", "traits": { - "smithy.api#documentation": "

\n The shares available and their meta details. \n

", + "smithy.api#documentation": "

The shares available and their metadata details.

", "smithy.api#required": {} } }, @@ -10040,6 +10167,9 @@ } ], "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to retrieve a list of metadata for Variant Stores" + }, "smithy.api#documentation": "

Retrieves a list of variant stores.

", "smithy.api#endpoint": { "hostPrefix": "analytics-" @@ -10197,14 +10327,14 @@ "type": { "target": "com.amazonaws.omics#WorkflowType", "traits": { - "smithy.api#documentation": "

The workflows' type.

", + "smithy.api#documentation": "

Filter the list by workflow type.

", "smithy.api#httpQuery": "type" } }, "name": { "target": "com.amazonaws.omics#WorkflowName", "traits": { - "smithy.api#documentation": "

The workflows' name.

", + "smithy.api#documentation": "

Filter the list by workflow name.

", "smithy.api#httpQuery": "name" } }, @@ -10237,7 +10367,7 @@ "items": { "target": "com.amazonaws.omics#WorkflowList", "traits": { - "smithy.api#documentation": "

The workflows' items.

" + "smithy.api#documentation": "

A list of workflow items.

" } }, "nextToken": { @@ -11685,7 +11815,7 @@ "etag": { "target": "com.amazonaws.omics#ETag", "traits": { - "smithy.api#documentation": "

\n The entity tag (ETag) is a hash of the object representing its semantic content.\n

" + "smithy.api#documentation": "

The entity tag (ETag) is a hash of the object representing its semantic content.

" } } }, @@ -11768,6 +11898,20 @@ "smithy.api#documentation": "Represents a resource that stores a single genomic sequence file" } }, + "com.amazonaws.omics#ReadSetS3Access": { + "type": "structure", + "members": { + "s3Uri": { + "target": "com.amazonaws.omics#S3Uri", + "traits": { + "smithy.api#documentation": "

The S3 URI for each read set file.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The S3 URI for each read set file.

" + } + }, "com.amazonaws.omics#ReadSetStatus": { "type": "string", "traits": { @@ -12773,7 +12917,7 @@ "storageCapacity": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

The run's storage capacity.

", + "smithy.api#documentation": "

The run's storage capacity in gibibytes. For dynamic storage, \n after the run has completed, this value is the maximum amount of storage\n used during the run.

", "smithy.api#range": { "min": 0, "max": 100000 @@ -12797,6 +12941,12 @@ "traits": { "smithy.api#documentation": "

When the run stopped.

" } + }, + "storageType": { + "target": "com.amazonaws.omics#StorageType", + "traits": { + "smithy.api#documentation": "

The run's storage type.

" + } } }, "traits": { @@ -12846,18 +12996,18 @@ "engineLogStream": { "target": "com.amazonaws.omics#EngineLogStream", "traits": { - "smithy.api#documentation": "

\n The log stream ARN for the engine log. \n

" + "smithy.api#documentation": "

The log stream ARN for the engine log.

" } }, "runLogStream": { "target": "com.amazonaws.omics#RunLogStream", "traits": { - "smithy.api#documentation": "

\n The log stream ARN for the run log. \n

" + "smithy.api#documentation": "

The log stream ARN for the run log.

" } } }, "traits": { - "smithy.api#documentation": "

\n The URI for the run log. \n

" + "smithy.api#documentation": "

The URI for the run log.

" } }, "com.amazonaws.omics#RunLogStream": { @@ -13073,6 +13223,16 @@ "smithy.api#pattern": "^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" } }, + "com.amazonaws.omics#S3AccessPointArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^arn:[^:]*:s3:[^:]*:[^:]*:accesspoint/.*$" + } + }, "com.amazonaws.omics#S3Destination": { "type": "string", "traits": { @@ -13265,6 +13425,12 @@ "traits": { "smithy.api#documentation": "

\n An S3 location that is used to store files that have failed a direct upload. \n

" } + }, + "eTagAlgorithmFamily": { + "target": "com.amazonaws.omics#ETagAlgorithmFamily", + "traits": { + "smithy.api#documentation": "

The algorithm family of the ETag.

" + } } }, "traits": { @@ -13413,6 +13579,26 @@ "smithy.api#documentation": "Represents a resource that stores genomic sequence data" } }, + "com.amazonaws.omics#SequenceStoreS3Access": { + "type": "structure", + "members": { + "s3Uri": { + "target": "com.amazonaws.omics#S3Uri", + "traits": { + "smithy.api#documentation": "

The S3 URI of the sequence store.

" + } + }, + "s3AccessPointArn": { + "target": "com.amazonaws.omics#S3AccessPointArn", + "traits": { + "smithy.api#documentation": "

This is ARN of the access point associated with the S3 bucket storing read sets.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The S3 access metadata of the sequence store.

" + } + }, "com.amazonaws.omics#ServiceQuotaExceededException": { "type": "structure", "members": { @@ -13458,60 +13644,66 @@ "shareId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

\n The ID for a share offer for an analytics store .\n

" + "smithy.api#documentation": "

The ID of the resource share.

" } }, "resourceArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

\n The resource Arn of the analytics store being shared. \n

" + "smithy.api#documentation": "

The Arn of the shared resource.

" + } + }, + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the shared resource.

" } }, "principalSubscriber": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

\n The principal subscriber is the account the analytics store data is being shared with. \n

" + "smithy.api#documentation": "

The principal subscriber is the account that is sharing the resource.

" } }, "ownerId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

\n The account ID for the data owner. The owner creates the share offer. \n

" + "smithy.api#documentation": "

The account ID for the data owner. The owner creates the resource share.

" } }, "status": { "target": "com.amazonaws.omics#ShareStatus", "traits": { - "smithy.api#documentation": "

\n The status of a share. \n

" + "smithy.api#documentation": "

The status of the share.

" } }, "statusMessage": { "target": "com.amazonaws.omics#StatusMessage", "traits": { - "smithy.api#documentation": "

\n The status message for a share. It provides more details on the status of the share.\n

" + "smithy.api#documentation": "

The status message for a resource share. It provides additional details about the share status.

" } }, "shareName": { "target": "com.amazonaws.omics#ShareName", "traits": { - "smithy.api#documentation": "

\n The name of the share. \n

" + "smithy.api#documentation": "

The name of the resource share.

" } }, "creationTime": { "target": "com.amazonaws.omics#CreationTime", "traits": { - "smithy.api#documentation": "

\n The timestamp for when the share was created. \n

" + "smithy.api#documentation": "

The timestamp of when the resource share was created.

" } }, "updateTime": { "target": "com.amazonaws.omics#UpdateTime", "traits": { - "smithy.api#documentation": "

\n The timestamp of the share update. \n

" + "smithy.api#documentation": "

The timestamp of the resource share update.

" } } }, "traits": { - "smithy.api#documentation": "

\n The details of a share. \n

" + "smithy.api#documentation": "

The details of a resource share.

" } }, "com.amazonaws.omics#ShareDetailsList": { @@ -13530,6 +13722,28 @@ "smithy.api#pattern": "^[a-zA-Z0-9_-]+$" } }, + "com.amazonaws.omics#ShareResourceType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "VARIANT_STORE", + "name": "VARIANT_STORE", + "documentation": "The share is on a variant store" + }, + { + "value": "ANNOTATION_STORE", + "name": "ANNOTATION_STORE", + "documentation": "The share is on an annotation store" + }, + { + "value": "WORKFLOW", + "name": "WORKFLOW", + "documentation": "The share is on a workflow" + } + ] + } + }, "com.amazonaws.omics#ShareStatus": { "type": "string", "traits": { @@ -13700,7 +13914,7 @@ "annotationFields": { "target": "com.amazonaws.omics#AnnotationFieldMap", "traits": { - "smithy.api#documentation": "

\n The annotation schema generated by the parsed annotation data. \n

" + "smithy.api#documentation": "

The annotation schema generated by the parsed annotation data.

" } } }, @@ -14392,7 +14606,7 @@ } ], "traits": { - "smithy.api#documentation": "

Starts a workflow run. To duplicate a run, specify the run's ID and a role ARN. The\n remaining parameters are copied from the previous run.

\n

The total number of runs in your account is subject to a quota per Region. To avoid\n needing to delete runs manually, you can set the retention mode to REMOVE.\n Runs with this setting are deleted automatically when the run quoata is exceeded.

", + "smithy.api#documentation": "

Starts a workflow run. To duplicate a run, specify the run's ID and a role ARN. The\n remaining parameters are copied from the previous run.

\n

StartRun will not support re-run for a workflow that is shared with you.

\n

The total number of runs in your account is subject to a quota per Region. To avoid\n needing to delete runs manually, you can set the retention mode to REMOVE.\n Runs with this setting are deleted automatically when the run quoata is exceeded.

\n

By default, the run uses STATIC storage. For STATIC storage, set the storageCapacity field. \n You can set the storage type to DYNAMIC. You do not set storageCapacity,\n because HealthOmics dynamically scales the storage up or down as required.\n For more information about static and dynamic storage, see Running workflows \n in the AWS HealthOmics User Guide.

", "smithy.api#endpoint": { "hostPrefix": "workflows-" }, @@ -14462,7 +14676,7 @@ "storageCapacity": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

A storage capacity for the run in gigabytes.

", + "smithy.api#documentation": "

A storage capacity for the run in gibibytes. This field is not required if the storage type is dynamic\n (the system ignores any value that you enter).

", "smithy.api#range": { "min": 0, "max": 100000 @@ -14500,6 +14714,18 @@ "traits": { "smithy.api#documentation": "

The retention mode for the run.

" } + }, + "storageType": { + "target": "com.amazonaws.omics#StorageType", + "traits": { + "smithy.api#documentation": "

The run's storage type. By default, the run uses STATIC storage type, which allocates a fixed amount of storage.\n If you set the storage type to DYNAMIC, HealthOmics dynamically scales the storage up \n or down, based on file system utilization.

" + } + }, + "workflowOwnerId": { + "target": "com.amazonaws.omics#WorkflowOwnerId", + "traits": { + "smithy.api#documentation": "

The ID of the workflow owner.

" + } } }, "traits": { @@ -14536,13 +14762,13 @@ "uuid": { "target": "com.amazonaws.omics#RunUuid", "traits": { - "smithy.api#documentation": "

\n The universally unique identifier for a run. \n

" + "smithy.api#documentation": "

The universally unique identifier for a run.

" } }, "runOutputUri": { "target": "com.amazonaws.omics#RunOutputUri", "traits": { - "smithy.api#documentation": "

\n The destination for workflow outputs.\n

" + "smithy.api#documentation": "

The destination for workflow outputs.

" } } }, @@ -14624,7 +14850,7 @@ "annotationFields": { "target": "com.amazonaws.omics#AnnotationFieldMap", "traits": { - "smithy.api#documentation": "

\n The annotation schema generated by the parsed annotation data. \n

" + "smithy.api#documentation": "

The annotation schema generated by the parsed annotation data.

" } } }, @@ -14653,6 +14879,10 @@ "target": "com.amazonaws.omics#ShareStatus" }, "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + }, "smithy.api#uniqueItems": {} } }, @@ -14665,6 +14895,25 @@ } } }, + "com.amazonaws.omics#StorageType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "STATIC", + "value": "STATIC" + }, + { + "name": "DYNAMIC", + "value": "DYNAMIC" + } + ], + "smithy.api#length": { + "min": 1, + "max": 64 + } + } + }, "com.amazonaws.omics#StoreFormat": { "type": "string", "traits": { @@ -15008,7 +15257,7 @@ "instanceType": { "target": "com.amazonaws.omics#TaskInstanceType", "traits": { - "smithy.api#documentation": "

\n The instance type for a task. \n

" + "smithy.api#documentation": "

The instance type for a task.

" } } }, @@ -15205,6 +15454,19 @@ "smithy.api#documentation": "

\nThe options for a TSV file.\n

" } }, + "com.amazonaws.omics#TypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.omics#ShareResourceType" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + }, + "smithy.api#uniqueItems": {} + } + }, "com.amazonaws.omics#UntagResource": { "type": "operation", "input": { @@ -15309,6 +15571,9 @@ } ], "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to update information about the Annotation Store" + }, "smithy.api#documentation": "

Updates an annotation store.

", "smithy.api#endpoint": { "hostPrefix": "analytics-" @@ -15638,7 +15903,7 @@ "maxGpus": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

\n The maximum GPUs that can be used by a run group. \n

", + "smithy.api#documentation": "

The maximum GPUs that can be used by a run group.

", "smithy.api#range": { "min": 1, "max": 100000 @@ -15682,6 +15947,9 @@ } ], "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to update metadata about the Variant Store" + }, "smithy.api#documentation": "

Updates a variant store.

", "smithy.api#endpoint": { "hostPrefix": "analytics-" @@ -15893,7 +16161,7 @@ "traits": { "aws.auth#unsignedPayload": {}, "aws.iam#actionPermissionDescription": "Grants permission to upload read set parts", - "smithy.api#documentation": "

\n This operation uploads a specific part of a read set. If you upload a new part using a previously used part number, the previously uploaded part will be overwritten. \n

", + "smithy.api#documentation": "

This operation uploads a specific part of a read set. If you upload a new part using a previously used part number, \n the previously uploaded part will be overwritten.

", "smithy.api#endpoint": { "hostPrefix": "storage-" }, @@ -15909,7 +16177,7 @@ "sequenceStoreId": { "target": "com.amazonaws.omics#SequenceStoreId", "traits": { - "smithy.api#documentation": "

\n The Sequence Store ID used for the multipart upload.\n

", + "smithy.api#documentation": "

The Sequence Store ID used for the multipart upload.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -15917,7 +16185,7 @@ "uploadId": { "target": "com.amazonaws.omics#UploadId", "traits": { - "smithy.api#documentation": "

\n The ID for the initiated multipart upload.\n

", + "smithy.api#documentation": "

The ID for the initiated multipart upload.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -15925,7 +16193,7 @@ "partSource": { "target": "com.amazonaws.omics#ReadSetPartSource", "traits": { - "smithy.api#documentation": "

\n The source file for an upload part. \n

", + "smithy.api#documentation": "

The source file for an upload part.

", "smithy.api#httpQuery": "partSource", "smithy.api#required": {} } @@ -15933,7 +16201,7 @@ "partNumber": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

\n The number of the part being uploaded.\n

", + "smithy.api#documentation": "

The number of the part being uploaded.

", "smithy.api#httpQuery": "partNumber", "smithy.api#range": { "min": 1, @@ -15945,7 +16213,7 @@ "payload": { "target": "com.amazonaws.omics#ReadSetPartStreamingBlob", "traits": { - "smithy.api#documentation": "

\n The read set data to upload for a part.\n

", + "smithy.api#documentation": "

The read set data to upload for a part.

", "smithy.api#httpPayload": {}, "smithy.api#required": {} } @@ -15961,7 +16229,7 @@ "checksum": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

\n An identifier used to confirm that parts are being added to the intended upload.\n

", + "smithy.api#documentation": "

An identifier used to confirm that parts are being added to the intended upload.

", "smithy.api#required": {} } } @@ -16167,6 +16435,9 @@ }, "list": { "target": "com.amazonaws.omics#ListVariantStores" + }, + "traits": { + "smithy.api#documentation": "Represents a resource that stores variant data" } }, "com.amazonaws.omics#VariantStoreItem": { @@ -16594,6 +16865,12 @@ "smithy.api#pattern": "^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" } }, + "com.amazonaws.omics#WorkflowOwnerId": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[0-9]{12}$" + } + }, "com.amazonaws.omics#WorkflowParameter": { "type": "structure", "members": { diff --git a/models/opensearch.json b/models/opensearch.json index 8157d81a08..078f76fc48 100644 --- a/models/opensearch.json +++ b/models/opensearch.json @@ -373,7 +373,7 @@ } ], "traits": { - "smithy.api#documentation": "

Attaches tags to an existing Amazon OpenSearch Service domain. Tags are a set of\n case-sensitive key-value pairs. A domain can have up to 10 tags. For more information, see\n Tagging Amazon OpenSearch Service domains.

", + "smithy.api#documentation": "

Attaches tags to an existing Amazon OpenSearch Service domain. Tags are a set of\n case-sensitive key-value pairs. A domain can have up to 10 tags. For more information, see\n Tagging Amazon OpenSearch Service domains.\n

", "smithy.api#http": { "method": "POST", "uri": "/2021-01-01/tags", @@ -6204,7 +6204,13 @@ "Endpoints": { "target": "com.amazonaws.opensearch#EndpointsMap", "traits": { - "smithy.api#documentation": "

The key-value pair that exists if the OpenSearch Service domain uses VPC endpoints. Example\n key, value:\n 'vpc','vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'.

" + "smithy.api#documentation": "

The key-value pair that exists if the OpenSearch Service domain uses VPC endpoints. For example:

\n
    \n
  • \n

    \n IPv4 IP addresses -\n 'vpc','vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'\n

    \n
  • \n
  • \n

    \n Dual stack IP addresses -\n 'vpcv2':'vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.aos.us-east-1.on.aws'\n

    \n
  • \n
" + } + }, + "DomainEndpointV2HostedZoneId": { + "target": "com.amazonaws.opensearch#HostedZoneId", + "traits": { + "smithy.api#documentation": "

The DualStack Hosted Zone Id for the domain.

" } }, "Processing": { @@ -7229,6 +7235,9 @@ "smithy.api#output": {} } }, + "com.amazonaws.opensearch#HostedZoneId": { + "type": "string" + }, "com.amazonaws.opensearch#IPAddressType": { "type": "enum", "members": { diff --git a/models/outposts.json b/models/outposts.json index 51d6e51dce..832f6d74d7 100644 --- a/models/outposts.json +++ b/models/outposts.json @@ -353,6 +353,71 @@ "target": "com.amazonaws.outposts#CIDR" } }, + "com.amazonaws.outposts#CancelCapacityTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.outposts#CancelCapacityTaskInput" + }, + "output": { + "target": "com.amazonaws.outposts#CancelCapacityTaskOutput" + }, + "errors": [ + { + "target": "com.amazonaws.outposts#AccessDeniedException" + }, + { + "target": "com.amazonaws.outposts#ConflictException" + }, + { + "target": "com.amazonaws.outposts#InternalServerException" + }, + { + "target": "com.amazonaws.outposts#NotFoundException" + }, + { + "target": "com.amazonaws.outposts#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Cancels the capacity task.

", + "smithy.api#http": { + "method": "POST", + "uri": "/outposts/{OutpostIdentifier}/capacity/{CapacityTaskId}", + "code": 200 + } + } + }, + "com.amazonaws.outposts#CancelCapacityTaskInput": { + "type": "structure", + "members": { + "CapacityTaskId": { + "target": "com.amazonaws.outposts#CapacityTaskId", + "traits": { + "smithy.api#documentation": "

ID of the capacity task that you want to cancel.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "OutpostIdentifier": { + "target": "com.amazonaws.outposts#OutpostIdentifier", + "traits": { + "smithy.api#documentation": "

ID or ARN of the Outpost associated with the capacity task that you want to cancel.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.outposts#CancelCapacityTaskOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.outposts#CancelOrder": { "type": "operation", "input": { @@ -410,6 +475,154 @@ "smithy.api#output": {} } }, + "com.amazonaws.outposts#CapacityTaskFailure": { + "type": "structure", + "members": { + "Reason": { + "target": "com.amazonaws.outposts#CapacityTaskStatusReason", + "traits": { + "smithy.api#documentation": "

The reason that the specified capacity task failed.

", + "smithy.api#required": {} + } + }, + "Type": { + "target": "com.amazonaws.outposts#CapacityTaskFailureType", + "traits": { + "smithy.api#documentation": "

The type of failure.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The capacity tasks that failed.

" + } + }, + "com.amazonaws.outposts#CapacityTaskFailureType": { + "type": "enum", + "members": { + "UNSUPPORTED_CAPACITY_CONFIGURATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNSUPPORTED_CAPACITY_CONFIGURATION" + } + } + } + }, + "com.amazonaws.outposts#CapacityTaskId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 21, + "max": 21 + }, + "smithy.api#pattern": "^cap-[a-f0-9]{17}$" + } + }, + "com.amazonaws.outposts#CapacityTaskList": { + "type": "list", + "member": { + "target": "com.amazonaws.outposts#CapacityTaskSummary" + } + }, + "com.amazonaws.outposts#CapacityTaskStatus": { + "type": "enum", + "members": { + "REQUESTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REQUESTED" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETED" + } + }, + "CANCELLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CANCELLED" + } + } + } + }, + "com.amazonaws.outposts#CapacityTaskStatusList": { + "type": "list", + "member": { + "target": "com.amazonaws.outposts#CapacityTaskStatus" + } + }, + "com.amazonaws.outposts#CapacityTaskStatusReason": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 128 + } + } + }, + "com.amazonaws.outposts#CapacityTaskSummary": { + "type": "structure", + "members": { + "CapacityTaskId": { + "target": "com.amazonaws.outposts#CapacityTaskId", + "traits": { + "smithy.api#documentation": "

The ID of the specified capacity task.

" + } + }, + "OutpostId": { + "target": "com.amazonaws.outposts#OutpostId", + "traits": { + "smithy.api#documentation": "

The ID of the Outpost associated with the specified capacity task.

" + } + }, + "OrderId": { + "target": "com.amazonaws.outposts#OrderId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services Outposts order of the host associated with the capacity task.

" + } + }, + "CapacityTaskStatus": { + "target": "com.amazonaws.outposts#CapacityTaskStatus", + "traits": { + "smithy.api#documentation": "

The status of the capacity task.

" + } + }, + "CreationDate": { + "target": "com.amazonaws.outposts#ISO8601Timestamp", + "traits": { + "smithy.api#documentation": "

The date that the specified capacity task was created.

" + } + }, + "CompletionDate": { + "target": "com.amazonaws.outposts#ISO8601Timestamp", + "traits": { + "smithy.api#documentation": "

The date that the specified capacity task successfully ran.

" + } + }, + "LastModifiedDate": { + "target": "com.amazonaws.outposts#ISO8601Timestamp", + "traits": { + "smithy.api#documentation": "

The date that the specified capacity was last modified.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The summary of the capacity task.

" + } + }, "com.amazonaws.outposts#CatalogItem": { "type": "structure", "members": { @@ -1000,7 +1213,7 @@ "OutpostId": { "target": "com.amazonaws.outposts#OutpostId", "traits": { - "smithy.api#documentation": "

The ID or the Amazon Resource Name (ARN) of the Outpost.

", + "smithy.api#documentation": "

The ID or ARN of the Outpost.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1094,6 +1307,12 @@ "smithy.api#pattern": "^\\S[\\S ]*$" } }, + "com.amazonaws.outposts#DryRun": { + "type": "boolean", + "traits": { + "smithy.api#default": false + } + }, "com.amazonaws.outposts#EC2Capacity": { "type": "structure", "members": { @@ -1169,6 +1388,130 @@ } } }, + "com.amazonaws.outposts#GetCapacityTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.outposts#GetCapacityTaskInput" + }, + "output": { + "target": "com.amazonaws.outposts#GetCapacityTaskOutput" + }, + "errors": [ + { + "target": "com.amazonaws.outposts#AccessDeniedException" + }, + { + "target": "com.amazonaws.outposts#InternalServerException" + }, + { + "target": "com.amazonaws.outposts#NotFoundException" + }, + { + "target": "com.amazonaws.outposts#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets details of the specified capacity task.

", + "smithy.api#http": { + "method": "GET", + "uri": "/outposts/{OutpostIdentifier}/capacity/{CapacityTaskId}", + "code": 200 + } + } + }, + "com.amazonaws.outposts#GetCapacityTaskInput": { + "type": "structure", + "members": { + "CapacityTaskId": { + "target": "com.amazonaws.outposts#CapacityTaskId", + "traits": { + "smithy.api#documentation": "

ID of the capacity task.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "OutpostIdentifier": { + "target": "com.amazonaws.outposts#OutpostIdentifier", + "traits": { + "smithy.api#documentation": "

ID or ARN of the Outpost associated with the specified capacity task.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.outposts#GetCapacityTaskOutput": { + "type": "structure", + "members": { + "CapacityTaskId": { + "target": "com.amazonaws.outposts#CapacityTaskId", + "traits": { + "smithy.api#documentation": "

ID of the capacity task.

" + } + }, + "OutpostId": { + "target": "com.amazonaws.outposts#OutpostId", + "traits": { + "smithy.api#documentation": "

ID of the Outpost associated with the specified capacity task.

" + } + }, + "OrderId": { + "target": "com.amazonaws.outposts#OrderId", + "traits": { + "smithy.api#documentation": "

ID of the Amazon Web Services Outposts order associated with the specified capacity task.

" + } + }, + "RequestedInstancePools": { + "target": "com.amazonaws.outposts#RequestedInstancePools", + "traits": { + "smithy.api#documentation": "

List of instance pools requested in the capacity task.

" + } + }, + "DryRun": { + "target": "com.amazonaws.outposts#DryRun", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Performs a dry run to determine if you are above or below instance capacity.

" + } + }, + "CapacityTaskStatus": { + "target": "com.amazonaws.outposts#CapacityTaskStatus", + "traits": { + "smithy.api#documentation": "

Status of the capacity task.

\n

A capacity task can have one of the following statuses:

\n
    \n
  • \n

    \n REQUESTED - The capacity task was created and is awaiting the next step\n by Amazon Web Services Outposts.

    \n
  • \n
  • \n

    \n IN_PROGRESS - The capacity task is running and cannot be\n cancelled.

    \n
  • \n
  • \n

    \n WAITING_FOR_EVACUATION - The capacity task requires capacity to run. You\n must stop the recommended EC2 running instances to free up capacity for the task to\n run.

    \n
  • \n
" + } + }, + "Failed": { + "target": "com.amazonaws.outposts#CapacityTaskFailure", + "traits": { + "smithy.api#documentation": "

Reason why the capacity task failed.

" + } + }, + "CreationDate": { + "target": "com.amazonaws.outposts#ISO8601Timestamp", + "traits": { + "smithy.api#documentation": "

The date the capacity task was created.

" + } + }, + "CompletionDate": { + "target": "com.amazonaws.outposts#ISO8601Timestamp", + "traits": { + "smithy.api#documentation": "

The date the capacity task ran successfully.

" + } + }, + "LastModifiedDate": { + "target": "com.amazonaws.outposts#ISO8601Timestamp", + "traits": { + "smithy.api#documentation": "

The date the capacity task was last modified.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.outposts#GetCatalogItem": { "type": "operation", "input": { @@ -1386,7 +1729,7 @@ "OutpostId": { "target": "com.amazonaws.outposts#OutpostId", "traits": { - "smithy.api#documentation": "

The ID or the Amazon Resource Name (ARN) of the Outpost.

", + "smithy.api#documentation": "

The ID or ARN of the Outpost.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1439,15 +1782,116 @@ "OutpostId": { "target": "com.amazonaws.outposts#OutpostId", "traits": { - "smithy.api#documentation": "

The ID or the Amazon Resource Name (ARN) of the Outpost.

", + "smithy.api#documentation": "

The ID or ARN of the Outpost.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.outposts#Token", + "traits": { + "smithy.api#httpQuery": "NextToken" + } + }, + "MaxResults": { + "target": "com.amazonaws.outposts#MaxResults1000", + "traits": { + "smithy.api#httpQuery": "MaxResults" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.outposts#GetOutpostInstanceTypesOutput": { + "type": "structure", + "members": { + "InstanceTypes": { + "target": "com.amazonaws.outposts#InstanceTypeListDefinition" + }, + "NextToken": { + "target": "com.amazonaws.outposts#Token" + }, + "OutpostId": { + "target": "com.amazonaws.outposts#OutpostId", + "traits": { + "smithy.api#documentation": "

The ID of the Outpost.

" + } + }, + "OutpostArn": { + "target": "com.amazonaws.outposts#OutpostArn" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.outposts#GetOutpostOutput": { + "type": "structure", + "members": { + "Outpost": { + "target": "com.amazonaws.outposts#Outpost" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.outposts#GetOutpostSupportedInstanceTypes": { + "type": "operation", + "input": { + "target": "com.amazonaws.outposts#GetOutpostSupportedInstanceTypesInput" + }, + "output": { + "target": "com.amazonaws.outposts#GetOutpostSupportedInstanceTypesOutput" + }, + "errors": [ + { + "target": "com.amazonaws.outposts#AccessDeniedException" + }, + { + "target": "com.amazonaws.outposts#InternalServerException" + }, + { + "target": "com.amazonaws.outposts#NotFoundException" + }, + { + "target": "com.amazonaws.outposts#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets the instance types that an\n Outpost can support in InstanceTypeCapacity. This will generally include instance types that\n are not currently configured and therefore cannot be launched with the current Outpost\n capacity configuration.

", + "smithy.api#http": { + "method": "GET", + "uri": "/outposts/{OutpostIdentifier}/supportedInstanceTypes", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "InstanceTypes", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.outposts#GetOutpostSupportedInstanceTypesInput": { + "type": "structure", + "members": { + "OutpostIdentifier": { + "target": "com.amazonaws.outposts#OutpostIdentifier", + "traits": { + "smithy.api#documentation": "

The ID or ARN of the Outpost.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "NextToken": { - "target": "com.amazonaws.outposts#Token", + "OrderId": { + "target": "com.amazonaws.outposts#OrderId", "traits": { - "smithy.api#httpQuery": "NextToken" + "smithy.api#documentation": "

The ID for the Amazon Web Services Outposts order.

", + "smithy.api#httpQuery": "OrderId", + "smithy.api#required": {} } }, "MaxResults": { @@ -1455,13 +1899,19 @@ "traits": { "smithy.api#httpQuery": "MaxResults" } + }, + "NextToken": { + "target": "com.amazonaws.outposts#Token", + "traits": { + "smithy.api#httpQuery": "NextToken" + } } }, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.outposts#GetOutpostInstanceTypesOutput": { + "com.amazonaws.outposts#GetOutpostSupportedInstanceTypesOutput": { "type": "structure", "members": { "InstanceTypes": { @@ -1469,26 +1919,6 @@ }, "NextToken": { "target": "com.amazonaws.outposts#Token" - }, - "OutpostId": { - "target": "com.amazonaws.outposts#OutpostId", - "traits": { - "smithy.api#documentation": "

The ID of the Outpost.

" - } - }, - "OutpostArn": { - "target": "com.amazonaws.outposts#OutpostArn" - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.outposts#GetOutpostOutput": { - "type": "structure", - "members": { - "Outpost": { - "target": "com.amazonaws.outposts#Outpost" } }, "traits": { @@ -1672,6 +2102,39 @@ "smithy.api#documentation": "

The instance type.

" } }, + "com.amazonaws.outposts#InstanceTypeCapacity": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.outposts#InstanceTypeName", + "traits": { + "smithy.api#documentation": "

The instance type of the hosts.

", + "smithy.api#required": {} + } + }, + "Count": { + "target": "com.amazonaws.outposts#InstanceTypeCount", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of instances for the specified instance type.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The instance type that you specify determines the combination of CPU, memory, storage, and\n networking capacity.

" + } + }, + "com.amazonaws.outposts#InstanceTypeCount": { + "type": "integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#range": { + "min": 0, + "max": 9999 + } + } + }, "com.amazonaws.outposts#InstanceTypeItem": { "type": "structure", "members": { @@ -1692,6 +2155,16 @@ "smithy.api#documentation": "

Information about the instance types.

" } }, + "com.amazonaws.outposts#InstanceTypeName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-z0-9\\-]+\\.[a-z0-9\\-]+$" + } + }, "com.amazonaws.outposts#InternalServerException": { "type": "structure", "members": { @@ -2026,6 +2499,94 @@ "smithy.api#output": {} } }, + "com.amazonaws.outposts#ListCapacityTasks": { + "type": "operation", + "input": { + "target": "com.amazonaws.outposts#ListCapacityTasksInput" + }, + "output": { + "target": "com.amazonaws.outposts#ListCapacityTasksOutput" + }, + "errors": [ + { + "target": "com.amazonaws.outposts#AccessDeniedException" + }, + { + "target": "com.amazonaws.outposts#InternalServerException" + }, + { + "target": "com.amazonaws.outposts#NotFoundException" + }, + { + "target": "com.amazonaws.outposts#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the capacity tasks for your Amazon Web Services account.

\n

Use filters to return specific results. If you specify multiple filters, the results include only the resources that match \n all of the specified filters. For a filter where you can specify multiple values, the results include \n items that match any of the values that you specify for the filter.

", + "smithy.api#http": { + "method": "GET", + "uri": "/capacity/tasks", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CapacityTasks", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.outposts#ListCapacityTasksInput": { + "type": "structure", + "members": { + "OutpostIdentifierFilter": { + "target": "com.amazonaws.outposts#OutpostIdentifier", + "traits": { + "smithy.api#documentation": "

Filters the results by an Outpost ID or an Outpost ARN.

", + "smithy.api#httpQuery": "OutpostIdentifierFilter" + } + }, + "MaxResults": { + "target": "com.amazonaws.outposts#MaxResults1000", + "traits": { + "smithy.api#httpQuery": "MaxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.outposts#Token", + "traits": { + "smithy.api#httpQuery": "NextToken" + } + }, + "CapacityTaskStatusFilter": { + "target": "com.amazonaws.outposts#CapacityTaskStatusList", + "traits": { + "smithy.api#documentation": "

A list of statuses. For example,\n REQUESTED or WAITING_FOR_EVACUATION.

", + "smithy.api#httpQuery": "CapacityTaskStatusFilter" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.outposts#ListCapacityTasksOutput": { + "type": "structure", + "members": { + "CapacityTasks": { + "target": "com.amazonaws.outposts#CapacityTaskList", + "traits": { + "smithy.api#documentation": "

Lists all the capacity tasks.

" + } + }, + "NextToken": { + "target": "com.amazonaws.outposts#Token" + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.outposts#ListCatalogItems": { "type": "operation", "input": { @@ -2945,6 +3506,9 @@ "type": "service", "version": "2019-12-03", "operations": [ + { + "target": "com.amazonaws.outposts#CancelCapacityTask" + }, { "target": "com.amazonaws.outposts#CancelOrder" }, @@ -2963,6 +3527,9 @@ { "target": "com.amazonaws.outposts#DeleteSite" }, + { + "target": "com.amazonaws.outposts#GetCapacityTask" + }, { "target": "com.amazonaws.outposts#GetCatalogItem" }, @@ -2978,6 +3545,9 @@ { "target": "com.amazonaws.outposts#GetOutpostInstanceTypes" }, + { + "target": "com.amazonaws.outposts#GetOutpostSupportedInstanceTypes" + }, { "target": "com.amazonaws.outposts#GetSite" }, @@ -2987,6 +3557,9 @@ { "target": "com.amazonaws.outposts#ListAssets" }, + { + "target": "com.amazonaws.outposts#ListCapacityTasks" + }, { "target": "com.amazonaws.outposts#ListCatalogItems" }, @@ -3002,6 +3575,9 @@ { "target": "com.amazonaws.outposts#ListTagsForResource" }, + { + "target": "com.amazonaws.outposts#StartCapacityTask" + }, { "target": "com.amazonaws.outposts#StartConnection" }, @@ -4268,6 +4844,12 @@ "smithy.api#documentation": "

Information about the physical and logistical details for racks at sites.\n For more information\n about hardware requirements for racks, see Network \n readiness checklist in the Amazon Web Services Outposts User Guide.\n

" } }, + "com.amazonaws.outposts#RequestedInstancePools": { + "type": "list", + "member": { + "target": "com.amazonaws.outposts#InstanceTypeCapacity" + } + }, "com.amazonaws.outposts#ResourceType": { "type": "enum", "members": { @@ -4334,6 +4916,12 @@ "traits": { "smithy.api#enumValue": "UPS" } + }, + "EXPEDITORS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPEDITORS" + } } } }, @@ -4480,6 +5068,146 @@ "smithy.api#pattern": "^OR-[A-Z0-9]{7}$" } }, + "com.amazonaws.outposts#StartCapacityTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.outposts#StartCapacityTaskInput" + }, + "output": { + "target": "com.amazonaws.outposts#StartCapacityTaskOutput" + }, + "errors": [ + { + "target": "com.amazonaws.outposts#AccessDeniedException" + }, + { + "target": "com.amazonaws.outposts#ConflictException" + }, + { + "target": "com.amazonaws.outposts#InternalServerException" + }, + { + "target": "com.amazonaws.outposts#NotFoundException" + }, + { + "target": "com.amazonaws.outposts#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Starts the specified capacity task. You can have one active capacity task for an order.

", + "smithy.api#http": { + "method": "POST", + "uri": "/outposts/{OutpostIdentifier}/capacity", + "code": 200 + } + } + }, + "com.amazonaws.outposts#StartCapacityTaskInput": { + "type": "structure", + "members": { + "OutpostIdentifier": { + "target": "com.amazonaws.outposts#OutpostIdentifier", + "traits": { + "smithy.api#documentation": "

The ID or ARN of the Outposts associated with the specified capacity task.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "OrderId": { + "target": "com.amazonaws.outposts#OrderId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services Outposts order associated with the specified capacity task.

", + "smithy.api#required": {} + } + }, + "InstancePools": { + "target": "com.amazonaws.outposts#RequestedInstancePools", + "traits": { + "smithy.api#documentation": "

The instance pools specified in the capacity task.

", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.outposts#DryRun", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

You can request a dry run to determine if the instance type and instance size changes is above or below available instance\n capacity. Requesting a dry run does not make any changes to your plan.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.outposts#StartCapacityTaskOutput": { + "type": "structure", + "members": { + "CapacityTaskId": { + "target": "com.amazonaws.outposts#CapacityTaskId", + "traits": { + "smithy.api#documentation": "

ID of the capacity task that you want to start.

" + } + }, + "OutpostId": { + "target": "com.amazonaws.outposts#OutpostId", + "traits": { + "smithy.api#documentation": "

ID of the Outpost associated with the capacity task.

" + } + }, + "OrderId": { + "target": "com.amazonaws.outposts#OrderId", + "traits": { + "smithy.api#documentation": "

ID of the Amazon Web Services Outposts order of the host associated with the capacity task.

" + } + }, + "RequestedInstancePools": { + "target": "com.amazonaws.outposts#RequestedInstancePools", + "traits": { + "smithy.api#documentation": "

List of the instance pools requested in the specified capacity task.

" + } + }, + "DryRun": { + "target": "com.amazonaws.outposts#DryRun", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Results of the dry run showing if the specified capacity task is above or below the\n available instance capacity.

" + } + }, + "CapacityTaskStatus": { + "target": "com.amazonaws.outposts#CapacityTaskStatus", + "traits": { + "smithy.api#documentation": "

Status of the specified capacity task.

" + } + }, + "Failed": { + "target": "com.amazonaws.outposts#CapacityTaskFailure", + "traits": { + "smithy.api#documentation": "

Reason that the specified capacity task failed.

" + } + }, + "CreationDate": { + "target": "com.amazonaws.outposts#ISO8601Timestamp", + "traits": { + "smithy.api#documentation": "

Date that the specified capacity task was created.

" + } + }, + "CompletionDate": { + "target": "com.amazonaws.outposts#ISO8601Timestamp", + "traits": { + "smithy.api#documentation": "

Date that the specified capacity task ran successfully.

" + } + }, + "LastModifiedDate": { + "target": "com.amazonaws.outposts#ISO8601Timestamp", + "traits": { + "smithy.api#documentation": "

Date that the specified capacity task was last modified.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.outposts#StartConnection": { "type": "operation", "input": { @@ -4892,7 +5620,7 @@ "OutpostId": { "target": "com.amazonaws.outposts#OutpostId", "traits": { - "smithy.api#documentation": "

The ID or the Amazon Resource Name (ARN) of the Outpost.

", + "smithy.api#documentation": "

The ID or ARN of the Outpost.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } diff --git a/models/payment-cryptography.json b/models/payment-cryptography.json index 4e9412269f..0a26efe18c 100644 --- a/models/payment-cryptography.json +++ b/models/payment-cryptography.json @@ -146,7 +146,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Creates an alias, or a friendly name, for an Amazon Web Services Payment Cryptography key. You can use an alias to identify a key in the console and when you call cryptographic operations such as EncryptData or DecryptData.

\n

You can associate the alias with any key in the same Amazon Web Services Region. Each alias is associated with only one key at a time, but a key can have multiple aliases. You can't create an alias without a key. The alias must be unique in the account and Amazon Web Services Region, but you can create another alias with the same name in a different Amazon Web Services Region.

\n

To change the key that's associated with the alias, call UpdateAlias. To delete the alias, call DeleteAlias. These operations don't affect the underlying key. To get the alias that you created, call ListAliases.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Creates an alias, or a friendly name, for an Amazon Web Services Payment Cryptography key. You can use an alias to identify a key in the console and when you call cryptographic operations such as EncryptData or DecryptData.

\n

You can associate the alias with any key in the same Amazon Web Services Region. Each alias is associated with only one key at a time, but a key can have multiple aliases. You can't create an alias without a key. The alias must be unique in the account and Amazon Web Services Region, but you can create another alias with the same name in a different Amazon Web Services Region.

\n

To change the key that's associated with the alias, call UpdateAlias. To delete the alias, call DeleteAlias. These operations don't affect the underlying key. To get the alias that you created, call ListAliases.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", "smithy.api#idempotent": {} } }, @@ -234,7 +234,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Creates an Amazon Web Services Payment Cryptography key, a logical representation of a cryptographic key, that is unique in your account and Amazon Web Services Region. You use keys for cryptographic functions such as encryption and decryption.

\n

In addition to the key material used in cryptographic operations, an Amazon Web Services Payment Cryptography key includes metadata such as the key ARN, key usage, key origin, creation date, description, and key state.

\n

When you create a key, you specify both immutable and mutable data about the key. The immutable data contains key attributes that define the scope and cryptographic operations that you can perform using the key, for example key class (example: SYMMETRIC_KEY), key algorithm (example: TDES_2KEY), key usage (example: TR31_P0_PIN_ENCRYPTION_KEY) and key modes of use (example: Encrypt). For information about valid combinations of key attributes, see Understanding key attributes in the Amazon Web Services Payment Cryptography User Guide. The mutable data contained within a key includes usage timestamp and key deletion timestamp and can be modified after creation.

\n

Amazon Web Services Payment Cryptography binds key attributes to keys using key blocks when you store or export them. Amazon Web Services Payment Cryptography stores the key contents wrapped and never stores or transmits them in the clear.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Creates an Amazon Web Services Payment Cryptography key, a logical representation of a cryptographic key, that is unique in your account and Amazon Web Services Region. You use keys for cryptographic functions such as encryption and decryption.

\n

In addition to the key material used in cryptographic operations, an Amazon Web Services Payment Cryptography key includes metadata such as the key ARN, key usage, key origin, creation date, description, and key state.

\n

When you create a key, you specify both immutable and mutable data about the key. The immutable data contains key attributes that define the scope and cryptographic operations that you can perform using the key, for example key class (example: SYMMETRIC_KEY), key algorithm (example: TDES_2KEY), key usage (example: TR31_P0_PIN_ENCRYPTION_KEY) and key modes of use (example: Encrypt). For information about valid combinations of key attributes, see Understanding key attributes in the Amazon Web Services Payment Cryptography User Guide. The mutable data contained within a key includes usage timestamp and key deletion timestamp and can be modified after creation.

\n

Amazon Web Services Payment Cryptography binds key attributes to keys using key blocks when you store or export them. Amazon Web Services Payment Cryptography stores the key contents wrapped and never stores or transmits them in the clear.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.paymentcryptography#CreateKeyInput": { @@ -286,7 +286,7 @@ "target": "com.amazonaws.paymentcryptography#Tags", "traits": { "aws.cloudformation#cfnMutability": "full", - "smithy.api#documentation": "

Assigns one or more tags to the Amazon Web Services Payment Cryptography key. Use this parameter to tag a key when it is created. To tag an existing Amazon Web Services Payment Cryptography key, use the TagResource operation.

\n

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are required, but the tag value can be an empty (null) string. You can't have more than one tag on an Amazon Web Services Payment Cryptography key with the same tag key.

\n \n

Don't include personal, confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n \n

Tagging or untagging an Amazon Web Services Payment Cryptography key can allow or deny permission to the key.

\n
", + "smithy.api#documentation": "

Assigns one or more tags to the Amazon Web Services Payment Cryptography key. Use this parameter to tag a key when it is created. To tag an existing Amazon Web Services Payment Cryptography key, use the TagResource operation.

\n

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are required, but the tag value can be an empty (null) string. You can't have more than one tag on an Amazon Web Services Payment Cryptography key with the same tag key.

\n \n

Don't include personal, confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n \n

Tagging or untagging an Amazon Web Services Payment Cryptography key can allow or deny permission to the key.

\n
", "smithy.api#suppress": [ "UnstableTrait" ] @@ -349,7 +349,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Deletes the alias, but doesn't affect the underlying key.

\n

Each key can have multiple aliases. To get the aliases of all keys, use the ListAliases operation. To change the alias of a key, first use DeleteAlias to delete the current alias and then use CreateAlias to create a new alias. To associate an existing alias with a different key, call UpdateAlias.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Deletes the alias, but doesn't affect the underlying key.

\n

Each key can have multiple aliases. To get the aliases of all keys, use the UpdateAlias operation. To change the alias of a key, first use DeleteAlias to delete the current alias and then use CreateAlias to create a new alias. To associate an existing alias with a different key, call UpdateAlias.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", "smithy.api#idempotent": {} } }, @@ -408,7 +408,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Deletes the key material and metadata associated with Amazon Web Services Payment Cryptography key.

\n

Key deletion is irreversible. After a key is deleted, you can't perform cryptographic operations using the key. For example, you can't decrypt data that was encrypted by a deleted Amazon Web Services Payment Cryptography key, and the data may become unrecoverable. Because key deletion is destructive, Amazon Web Services Payment Cryptography has a safety mechanism to prevent accidental deletion of a key. When you call this operation, Amazon Web Services Payment Cryptography disables the specified key but doesn't delete it until after a waiting period set using DeleteKeyInDays. The default waiting period is 7 days. During the waiting period, the KeyState is DELETE_PENDING. After the key is deleted, the KeyState is DELETE_COMPLETE.

\n

You should delete a key only when you are sure that you don't need to use it anymore and no other parties are utilizing this key. If you aren't sure, consider deactivating it instead by calling StopKeyUsage.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Deletes the key material and metadata associated with Amazon Web Services Payment Cryptography key.

\n

Key deletion is irreversible. After a key is deleted, you can't perform cryptographic operations using the key. For example, you can't decrypt data that was encrypted by a deleted Amazon Web Services Payment Cryptography key, and the data may become unrecoverable. Because key deletion is destructive, Amazon Web Services Payment Cryptography has a safety mechanism to prevent accidental deletion of a key. When you call this operation, Amazon Web Services Payment Cryptography disables the specified key but doesn't delete it until after a waiting period set using DeleteKeyInDays. The default waiting period is 7 days. During the waiting period, the KeyState is DELETE_PENDING. After the key is deleted, the KeyState is DELETE_COMPLETE.

\n

You should delete a key only when you are sure that you don't need to use it anymore and no other parties are utilizing this key. If you aren't sure, consider deactivating it instead by calling StopKeyUsage.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", "smithy.api#idempotent": {} } }, @@ -524,7 +524,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Exports a key from Amazon Web Services Payment Cryptography.

\n

Amazon Web Services Payment Cryptography simplifies key exchange by replacing the existing paper-based approach with a modern electronic approach. With ExportKey you can export symmetric keys using either symmetric and asymmetric key exchange mechanisms. Using this operation, you can share your Amazon Web Services Payment Cryptography generated keys with other service partners to perform cryptographic operations outside of Amazon Web Services Payment Cryptography

\n

For symmetric key exchange, Amazon Web Services Payment Cryptography uses the ANSI X9 TR-31 norm in accordance with PCI PIN guidelines. And for asymmetric key exchange, Amazon Web Services Payment Cryptography supports ANSI X9 TR-34 norm and RSA wrap and unwrap key exchange mechanism. Asymmetric key exchange methods are typically used to establish bi-directional trust between the two parties exhanging keys and are used for initial key exchange such as Key Encryption Key (KEK). After which you can export working keys using symmetric method to perform various cryptographic operations within Amazon Web Services Payment Cryptography.

\n

The TR-34 norm is intended for exchanging 3DES keys only and keys are imported in a WrappedKeyBlock format. Key attributes (such as KeyUsage, KeyAlgorithm, KeyModesOfUse, Exportability) are contained within the key block. With RSA wrap and unwrap, you can exchange both 3DES and AES-128 keys. The keys are imported in a WrappedKeyCryptogram format and you will need to specify the key attributes during import.

\n

You can also use ExportKey functionality to generate and export an IPEK (Initial Pin Encryption Key) from Amazon Web Services Payment Cryptography using either TR-31 or TR-34 export key exchange. IPEK is generated from BDK (Base Derivation Key) and ExportDukptInitialKey attribute KSN (KeySerialNumber). The generated IPEK does not persist within Amazon Web Services Payment Cryptography and has to be re-generated each time during export.

\n

\n To export initial keys (KEK) or IPEK using TR-34\n

\n

Using this operation, you can export initial key using TR-34 asymmetric key exchange. You can only export KEK generated within Amazon Web Services Payment Cryptography. In TR-34 terminology, the sending party of the key is called Key Distribution Host (KDH) and the receiving party of the key is called Key Receiving Device (KRD). During key export process, KDH is Amazon Web Services Payment Cryptography which initiates key export and KRD is the user receiving the key.

\n

To initiate TR-34 key export, the KRD must obtain an export token by calling GetParametersForExport. This operation also generates a key pair for the purpose of key export, signs the key and returns back the signing public key certificate (also known as KDH signing certificate) and root certificate chain. The KDH uses the private key to sign the the export payload and the signing public key certificate is provided to KRD to verify the signature. The KRD can import the root certificate into its Hardware Security Module (HSM), as required. The export token and the associated KDH signing certificate expires after 7 days.

\n

Next the KRD generates a key pair for the the purpose of encrypting the KDH key and provides the public key cerificate (also known as KRD wrapping certificate) back to KDH. The KRD will also import the root cerificate chain into Amazon Web Services Payment Cryptography by calling ImportKey for RootCertificatePublicKey. The KDH, Amazon Web Services Payment Cryptography, will use the KRD wrapping cerificate to encrypt (wrap) the key under export and signs it with signing private key to generate a TR-34 WrappedKeyBlock. For more information on TR-34 key export, see section Exporting symmetric keys in the Amazon Web Services Payment Cryptography User Guide.

\n

Set the following parameters:

\n
    \n
  • \n

    \n ExportAttributes: Specify export attributes in case of IPEK export. This parameter is optional for KEK export.

    \n
  • \n
  • \n

    \n ExportKeyIdentifier: The KeyARN of the KEK or BDK (in case of IPEK) under export.

    \n
  • \n
  • \n

    \n KeyMaterial: Use Tr34KeyBlock parameters.

    \n
  • \n
  • \n

    \n CertificateAuthorityPublicKeyIdentifier: The KeyARN of the certificate chain that signed the KRD wrapping key certificate.

    \n
  • \n
  • \n

    \n ExportToken: Obtained from KDH by calling GetParametersForImport.

    \n
  • \n
  • \n

    \n WrappingKeyCertificate: The public key certificate in PEM format (base64 encoded) of the KRD wrapping key Amazon Web Services Payment Cryptography uses for encryption of the TR-34 export payload. This certificate must be signed by the root certificate (CertificateAuthorityPublicKeyIdentifier) imported into Amazon Web Services Payment Cryptography.

    \n
  • \n
\n

When this operation is successful, Amazon Web Services Payment Cryptography returns the KEK or IPEK as a TR-34 WrappedKeyBlock.

\n

\n To export initial keys (KEK) or IPEK using RSA Wrap and Unwrap\n

\n

Using this operation, you can export initial key using asymmetric RSA wrap and unwrap key exchange method. To initiate export, generate an asymmetric key pair on the receiving HSM and obtain the public key certificate in PEM format (base64 encoded) for the purpose of wrapping and the root certifiate chain. Import the root certificate into Amazon Web Services Payment Cryptography by calling ImportKey for RootCertificatePublicKey.

\n

Next call ExportKey and set the following parameters:

\n
    \n
  • \n

    \n CertificateAuthorityPublicKeyIdentifier: The KeyARN of the certificate chain that signed wrapping key certificate.

    \n
  • \n
  • \n

    \n KeyMaterial: Set to KeyCryptogram.

    \n
  • \n
  • \n

    \n WrappingKeyCertificate: The public key certificate in PEM format (base64 encoded) obtained by the receiving HSM and signed by the root certificate (CertificateAuthorityPublicKeyIdentifier) imported into Amazon Web Services Payment Cryptography. The receiving HSM uses its private key component to unwrap the WrappedKeyCryptogram.

    \n
  • \n
\n

When this operation is successful, Amazon Web Services Payment Cryptography returns the WrappedKeyCryptogram.

\n

\n To export working keys or IPEK using TR-31\n

\n

Using this operation, you can export working keys or IPEK using TR-31 symmetric key exchange. In TR-31, you must use an initial key such as KEK to encrypt or wrap the key under export. To establish a KEK, you can use CreateKey or ImportKey.

\n

Set the following parameters:

\n
    \n
  • \n

    \n ExportAttributes: Specify export attributes in case of IPEK export. This parameter is optional for KEK export.

    \n
  • \n
  • \n

    \n ExportKeyIdentifier: The KeyARN of the KEK or BDK (in case of IPEK) under export.

    \n
  • \n
  • \n

    \n KeyMaterial: Use Tr31KeyBlock parameters.

    \n
  • \n
\n

When this operation is successful, Amazon Web Services Payment Cryptography returns the working key or IPEK as a TR-31 WrappedKeyBlock.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Exports a key from Amazon Web Services Payment Cryptography.

\n

Amazon Web Services Payment Cryptography simplifies key exchange by replacing the existing paper-based approach with a modern electronic approach. With ExportKey you can export symmetric keys using either symmetric and asymmetric key exchange mechanisms. Using this operation, you can share your Amazon Web Services Payment Cryptography generated keys with other service partners to perform cryptographic operations outside of Amazon Web Services Payment Cryptography

\n

For symmetric key exchange, Amazon Web Services Payment Cryptography uses the ANSI X9 TR-31 norm in accordance with PCI PIN guidelines. And for asymmetric key exchange, Amazon Web Services Payment Cryptography supports ANSI X9 TR-34 norm and RSA wrap and unwrap key exchange mechanism. Asymmetric key exchange methods are typically used to establish bi-directional trust between the two parties exhanging keys and are used for initial key exchange such as Key Encryption Key (KEK). After which you can export working keys using symmetric method to perform various cryptographic operations within Amazon Web Services Payment Cryptography.

\n

The TR-34 norm is intended for exchanging 3DES keys only and keys are imported in a WrappedKeyBlock format. Key attributes (such as KeyUsage, KeyAlgorithm, KeyModesOfUse, Exportability) are contained within the key block. With RSA wrap and unwrap, you can exchange both 3DES and AES-128 keys. The keys are imported in a WrappedKeyCryptogram format and you will need to specify the key attributes during import.

\n

You can also use ExportKey functionality to generate and export an IPEK (Initial Pin Encryption Key) from Amazon Web Services Payment Cryptography using either TR-31 or TR-34 export key exchange. IPEK is generated from BDK (Base Derivation Key) and ExportDukptInitialKey attribute KSN (KeySerialNumber). The generated IPEK does not persist within Amazon Web Services Payment Cryptography and has to be re-generated each time during export.

\n

For key exchange using TR-31 or TR-34 key blocks, you can also export optional blocks within the key block header which contain additional attribute information about the key. The KeyVersion within KeyBlockHeaders indicates the version of the key within the key block. Furthermore, KeyExportability within KeyBlockHeaders can be used to further restrict exportability of the key after export from Amazon Web Services Payment Cryptography.

\n

The OptionalBlocks contain the additional data related to the key. For information on data type that can be included within optional blocks, refer to ASC X9.143-2022.

\n \n

Data included in key block headers is signed but transmitted in clear text. Sensitive or confidential information should not be included in optional blocks. Refer to ASC X9.143-2022 standard for information on allowed data type.

\n
\n

\n To export initial keys (KEK) or IPEK using TR-34\n

\n

Using this operation, you can export initial key using TR-34 asymmetric key exchange. You can only export KEK generated within Amazon Web Services Payment Cryptography. In TR-34 terminology, the sending party of the key is called Key Distribution Host (KDH) and the receiving party of the key is called Key Receiving Device (KRD). During key export process, KDH is Amazon Web Services Payment Cryptography which initiates key export and KRD is the user receiving the key.

\n

To initiate TR-34 key export, the KRD must obtain an export token by calling GetParametersForExport. This operation also generates a key pair for the purpose of key export, signs the key and returns back the signing public key certificate (also known as KDH signing certificate) and root certificate chain. The KDH uses the private key to sign the the export payload and the signing public key certificate is provided to KRD to verify the signature. The KRD can import the root certificate into its Hardware Security Module (HSM), as required. The export token and the associated KDH signing certificate expires after 7 days.

\n

Next the KRD generates a key pair for the the purpose of encrypting the KDH key and provides the public key cerificate (also known as KRD wrapping certificate) back to KDH. The KRD will also import the root cerificate chain into Amazon Web Services Payment Cryptography by calling ImportKey for RootCertificatePublicKey. The KDH, Amazon Web Services Payment Cryptography, will use the KRD wrapping cerificate to encrypt (wrap) the key under export and signs it with signing private key to generate a TR-34 WrappedKeyBlock. For more information on TR-34 key export, see section Exporting symmetric keys in the Amazon Web Services Payment Cryptography User Guide.

\n

Set the following parameters:

\n
    \n
  • \n

    \n ExportAttributes: Specify export attributes in case of IPEK export. This parameter is optional for KEK export.

    \n
  • \n
  • \n

    \n ExportKeyIdentifier: The KeyARN of the KEK or BDK (in case of IPEK) under export.

    \n
  • \n
  • \n

    \n KeyMaterial: Use Tr34KeyBlock parameters.

    \n
  • \n
  • \n

    \n CertificateAuthorityPublicKeyIdentifier: The KeyARN of the certificate chain that signed the KRD wrapping key certificate.

    \n
  • \n
  • \n

    \n ExportToken: Obtained from KDH by calling GetParametersForImport.

    \n
  • \n
  • \n

    \n WrappingKeyCertificate: The public key certificate in PEM format (base64 encoded) of the KRD wrapping key Amazon Web Services Payment Cryptography uses for encryption of the TR-34 export payload. This certificate must be signed by the root certificate (CertificateAuthorityPublicKeyIdentifier) imported into Amazon Web Services Payment Cryptography.

    \n
  • \n
\n

When this operation is successful, Amazon Web Services Payment Cryptography returns the KEK or IPEK as a TR-34 WrappedKeyBlock.

\n

\n To export initial keys (KEK) or IPEK using RSA Wrap and Unwrap\n

\n

Using this operation, you can export initial key using asymmetric RSA wrap and unwrap key exchange method. To initiate export, generate an asymmetric key pair on the receiving HSM and obtain the public key certificate in PEM format (base64 encoded) for the purpose of wrapping and the root certifiate chain. Import the root certificate into Amazon Web Services Payment Cryptography by calling ImportKey for RootCertificatePublicKey.

\n

Next call ExportKey and set the following parameters:

\n
    \n
  • \n

    \n CertificateAuthorityPublicKeyIdentifier: The KeyARN of the certificate chain that signed wrapping key certificate.

    \n
  • \n
  • \n

    \n KeyMaterial: Set to KeyCryptogram.

    \n
  • \n
  • \n

    \n WrappingKeyCertificate: The public key certificate in PEM format (base64 encoded) obtained by the receiving HSM and signed by the root certificate (CertificateAuthorityPublicKeyIdentifier) imported into Amazon Web Services Payment Cryptography. The receiving HSM uses its private key component to unwrap the WrappedKeyCryptogram.

    \n
  • \n
\n

When this operation is successful, Amazon Web Services Payment Cryptography returns the WrappedKeyCryptogram.

\n

\n To export working keys or IPEK using TR-31\n

\n

Using this operation, you can export working keys or IPEK using TR-31 symmetric key exchange. In TR-31, you must use an initial key such as KEK to encrypt or wrap the key under export. To establish a KEK, you can use CreateKey or ImportKey.

\n

Set the following parameters:

\n
    \n
  • \n

    \n ExportAttributes: Specify export attributes in case of IPEK export. This parameter is optional for KEK export.

    \n
  • \n
  • \n

    \n ExportKeyIdentifier: The KeyARN of the KEK or BDK (in case of IPEK) under export.

    \n
  • \n
  • \n

    \n KeyMaterial: Use Tr31KeyBlock parameters.

    \n
  • \n
\n

When this operation is successful, Amazon Web Services Payment Cryptography returns the working key or IPEK as a TR-31 WrappedKeyBlock.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.paymentcryptography#ExportKeyCryptogram": { @@ -638,6 +638,12 @@ "smithy.api#documentation": "

The KeyARN of the the wrapping key. This key encrypts or wraps the key under export for TR-31 key block generation.

", "smithy.api#required": {} } + }, + "KeyBlockHeaders": { + "target": "com.amazonaws.paymentcryptography#KeyBlockHeaders", + "traits": { + "smithy.api#documentation": "

Optional metadata for export associated with the key material. This data is signed but transmitted in clear text.

" + } } }, "traits": { @@ -664,7 +670,7 @@ "ExportToken": { "target": "com.amazonaws.paymentcryptography#ExportTokenId", "traits": { - "smithy.api#documentation": "

The export token to initiate key export from Amazon Web Services Payment Cryptography. It also contains the signing key certificate that will sign the wrapped key during TR-34 key block generation. Call GetParametersForExport to receive an export token. It expires after 7 days. You can use the same export token to export multiple keys from the same service account.

", + "smithy.api#documentation": "

The export token to initiate key export from Amazon Web Services Payment Cryptography. It also contains the signing key certificate that will sign the wrapped key during TR-34 key block generation. Call GetParametersForExport to receive an export token. It expires after 7 days. You can use the same export token to export multiple keys from the same service account.

", "smithy.api#required": {} } }, @@ -680,6 +686,12 @@ "traits": { "smithy.api#documentation": "

A random number value that is unique to the TR-34 key block generated using 2 pass. The operation will fail, if a random nonce value is not provided for a TR-34 key block generated using 2 pass.

" } + }, + "KeyBlockHeaders": { + "target": "com.amazonaws.paymentcryptography#KeyBlockHeaders", + "traits": { + "smithy.api#documentation": "

Optional metadata for export associated with the key material. This data is signed but transmitted in clear text.

" + } } }, "traits": { @@ -716,7 +728,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Gets the Amazon Web Services Payment Cryptography key associated with the alias.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Gets the Amazon Web Services Payment Cryptography key associated with the alias.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", "smithy.api#readonly": {} } }, @@ -784,7 +796,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Gets the key material for an Amazon Web Services Payment Cryptography key, including the immutable and mutable data specified when the key was created.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Gets the key material for an Amazon Web Services Payment Cryptography key, including the immutable and mutable data specified when the key was created.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", "smithy.api#readonly": {} } }, @@ -858,7 +870,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Gets the export token and the signing key certificate to initiate a TR-34 key export from Amazon Web Services Payment Cryptography.

\n

The signing key certificate signs the wrapped key under export within the TR-34 key payload. The export token and signing key certificate must be in place and operational before calling ExportKey. The export token expires in 7 days. You can use the same export token to export multiple keys from your service account.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Gets the export token and the signing key certificate to initiate a TR-34 key export from Amazon Web Services Payment Cryptography.

\n

The signing key certificate signs the wrapped key under export within the TR-34 key payload. The export token and signing key certificate must be in place and operational before calling ExportKey. The export token expires in 7 days. You can use the same export token to export multiple keys from your service account.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.paymentcryptography#GetParametersForExportInput": { @@ -962,7 +974,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Gets the import token and the wrapping key certificate in PEM format (base64 encoded) to initiate a TR-34 WrappedKeyBlock or a RSA WrappedKeyCryptogram import into Amazon Web Services Payment Cryptography.

\n

The wrapping key certificate wraps the key under import. The import token and wrapping key certificate must be in place and operational before calling ImportKey. The import token expires in 7 days. You can use the same import token to import multiple keys into your service account.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Gets the import token and the wrapping key certificate in PEM format (base64 encoded) to initiate a TR-34 WrappedKeyBlock or a RSA WrappedKeyCryptogram import into Amazon Web Services Payment Cryptography.

\n

The wrapping key certificate wraps the key under import. The import token and wrapping key certificate must be in place and operational before calling ImportKey. The import token expires in 7 days. You can use the same import token to import multiple keys into your service account.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.paymentcryptography#GetParametersForImportInput": { @@ -1157,7 +1169,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Imports symmetric keys and public key certificates in PEM format (base64 encoded) into Amazon Web Services Payment Cryptography.

\n

Amazon Web Services Payment Cryptography simplifies key exchange by replacing the existing paper-based approach with a modern electronic approach. With ImportKey you can import symmetric keys using either symmetric and asymmetric key exchange mechanisms.

\n

For symmetric key exchange, Amazon Web Services Payment Cryptography uses the ANSI X9 TR-31 norm in accordance with PCI PIN guidelines. And for asymmetric key exchange, Amazon Web Services Payment Cryptography supports ANSI X9 TR-34 norm and RSA wrap and unwrap key exchange mechanisms. Asymmetric key exchange methods are typically used to establish bi-directional trust between the two parties exhanging keys and are used for initial key exchange such as Key Encryption Key (KEK) or Zone Master Key (ZMK). After which you can import working keys using symmetric method to perform various cryptographic operations within Amazon Web Services Payment Cryptography.

\n

The TR-34 norm is intended for exchanging 3DES keys only and keys are imported in a WrappedKeyBlock format. Key attributes (such as KeyUsage, KeyAlgorithm, KeyModesOfUse, Exportability) are contained within the key block. With RSA wrap and unwrap, you can exchange both 3DES and AES-128 keys. The keys are imported in a WrappedKeyCryptogram format and you will need to specify the key attributes during import.

\n

You can also import a root public key certificate, used to sign other public key certificates, or a trusted public key certificate under an already established root public key certificate.

\n

\n To import a public root key certificate\n

\n

You can also import a root public key certificate, used to sign other public key certificates, or a trusted public key certificate under an already established root public key certificate.

\n

\n To import a public root key certificate\n

\n

Using this operation, you can import the public component (in PEM cerificate format) of your private root key. You can use the imported public root key certificate for digital signatures, for example signing wrapping key or signing key in TR-34, within your Amazon Web Services Payment Cryptography account.

\n

Set the following parameters:

\n
    \n
  • \n

    \n KeyMaterial: RootCertificatePublicKey\n

    \n
  • \n
  • \n

    \n KeyClass: PUBLIC_KEY\n

    \n
  • \n
  • \n

    \n KeyModesOfUse: Verify\n

    \n
  • \n
  • \n

    \n KeyUsage: TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE\n

    \n
  • \n
  • \n

    \n PublicKeyCertificate: The public key certificate in PEM format (base64 encoded) of the private root key under import.

    \n
  • \n
\n

\n To import a trusted public key certificate\n

\n

The root public key certificate must be in place and operational before you import a trusted public key certificate. Set the following parameters:

\n
    \n
  • \n

    \n KeyMaterial: TrustedCertificatePublicKey\n

    \n
  • \n
  • \n

    \n CertificateAuthorityPublicKeyIdentifier: KeyArn of the RootCertificatePublicKey.

    \n
  • \n
  • \n

    \n KeyModesOfUse and KeyUsage: Corresponding to the cryptographic operations such as wrap, sign, or encrypt that you will allow the trusted public key certificate to perform.

    \n
  • \n
  • \n

    \n PublicKeyCertificate: The trusted public key certificate in PEM format (base64 encoded) under import.

    \n
  • \n
\n

\n To import initial keys (KEK or ZMK or similar) using TR-34\n

\n

Using this operation, you can import initial key using TR-34 asymmetric key exchange. In TR-34 terminology, the sending party of the key is called Key Distribution Host (KDH) and the receiving party of the key is called Key Receiving Device (KRD). During the key import process, KDH is the user who initiates the key import and KRD is Amazon Web Services Payment Cryptography who receives the key.

\n

To initiate TR-34 key import, the KDH must obtain an import token by calling GetParametersForImport. This operation generates an encryption keypair for the purpose of key import, signs the key and returns back the wrapping key certificate (also known as KRD wrapping certificate) and the root certificate chain. The KDH must trust and install the KRD wrapping certificate on its HSM and use it to encrypt (wrap) the KDH key during TR-34 WrappedKeyBlock generation. The import token and associated KRD wrapping certificate expires after 7 days.

\n

Next the KDH generates a key pair for the purpose of signing the encrypted KDH key and provides the public certificate of the signing key to Amazon Web Services Payment Cryptography. The KDH will also need to import the root certificate chain of the KDH signing certificate by calling ImportKey for RootCertificatePublicKey. For more information on TR-34 key import, see section Importing symmetric keys in the Amazon Web Services Payment Cryptography User Guide.

\n

Set the following parameters:

\n
    \n
  • \n

    \n KeyMaterial: Use Tr34KeyBlock parameters.

    \n
  • \n
  • \n

    \n CertificateAuthorityPublicKeyIdentifier: The KeyARN of the certificate chain that signed the KDH signing key certificate.

    \n
  • \n
  • \n

    \n ImportToken: Obtained from KRD by calling GetParametersForImport.

    \n
  • \n
  • \n

    \n WrappedKeyBlock: The TR-34 wrapped key material from KDH. It contains the KDH key under import, wrapped with KRD wrapping certificate and signed by KDH signing private key. This TR-34 key block is typically generated by the KDH Hardware Security Module (HSM) outside of Amazon Web Services Payment Cryptography.

    \n
  • \n
  • \n

    \n SigningKeyCertificate: The public key certificate in PEM format (base64 encoded) of the KDH signing key generated under the root certificate (CertificateAuthorityPublicKeyIdentifier) imported in Amazon Web Services Payment Cryptography.

    \n
  • \n
\n

\n To import initial keys (KEK or ZMK or similar) using RSA Wrap and Unwrap\n

\n

Using this operation, you can import initial key using asymmetric RSA wrap and unwrap key exchange method. To initiate import, call GetParametersForImport with KeyMaterial set to KEY_CRYPTOGRAM to generate an import token. This operation also generates an encryption keypair for the purpose of key import, signs the key and returns back the wrapping key certificate in PEM format (base64 encoded) and its root certificate chain. The import token and associated KRD wrapping certificate expires after 7 days.

\n

You must trust and install the wrapping certificate and its certificate chain on the sending HSM and use it to wrap the key under export for WrappedKeyCryptogram generation. Next call ImportKey with KeyMaterial set to KEY_CRYPTOGRAM and provide the ImportToken and KeyAttributes for the key under import.

\n

\n To import working keys using TR-31\n

\n

Amazon Web Services Payment Cryptography uses TR-31 symmetric key exchange norm to import working keys. A KEK must be established within Amazon Web Services Payment Cryptography by using TR-34 key import or by using CreateKey. To initiate a TR-31 key import, set the following parameters:

\n
    \n
  • \n

    \n KeyMaterial: Use Tr31KeyBlock parameters.

    \n
  • \n
  • \n

    \n WrappedKeyBlock: The TR-31 wrapped key material. It contains the key under import, encrypted using KEK. The TR-31 key block is typically generated by a HSM outside of Amazon Web Services Payment Cryptography.

    \n
  • \n
  • \n

    \n WrappingKeyIdentifier: The KeyArn of the KEK that Amazon Web Services Payment Cryptography uses to decrypt or unwrap the key under import.

    \n
  • \n
\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Imports symmetric keys and public key certificates in PEM format (base64 encoded) into Amazon Web Services Payment Cryptography.

\n

Amazon Web Services Payment Cryptography simplifies key exchange by replacing the existing paper-based approach with a modern electronic approach. With ImportKey you can import symmetric keys using either symmetric and asymmetric key exchange mechanisms.

\n

For symmetric key exchange, Amazon Web Services Payment Cryptography uses the ANSI X9 TR-31 norm in accordance with PCI PIN guidelines. And for asymmetric key exchange, Amazon Web Services Payment Cryptography supports ANSI X9 TR-34 norm and RSA wrap and unwrap key exchange mechanisms. Asymmetric key exchange methods are typically used to establish bi-directional trust between the two parties exhanging keys and are used for initial key exchange such as Key Encryption Key (KEK) or Zone Master Key (ZMK). After which you can import working keys using symmetric method to perform various cryptographic operations within Amazon Web Services Payment Cryptography.

\n

The TR-34 norm is intended for exchanging 3DES keys only and keys are imported in a WrappedKeyBlock format. Key attributes (such as KeyUsage, KeyAlgorithm, KeyModesOfUse, Exportability) are contained within the key block. With RSA wrap and unwrap, you can exchange both 3DES and AES-128 keys. The keys are imported in a WrappedKeyCryptogram format and you will need to specify the key attributes during import.

\n

You can also import a root public key certificate, used to sign other public key certificates, or a trusted public key certificate under an already established root public key certificate.

\n

\n To import a public root key certificate\n

\n

You can also import a root public key certificate, used to sign other public key certificates, or a trusted public key certificate under an already established root public key certificate.

\n

\n To import a public root key certificate\n

\n

Using this operation, you can import the public component (in PEM cerificate format) of your private root key. You can use the imported public root key certificate for digital signatures, for example signing wrapping key or signing key in TR-34, within your Amazon Web Services Payment Cryptography account.

\n

Set the following parameters:

\n
    \n
  • \n

    \n KeyMaterial: RootCertificatePublicKey\n

    \n
  • \n
  • \n

    \n KeyClass: PUBLIC_KEY\n

    \n
  • \n
  • \n

    \n KeyModesOfUse: Verify\n

    \n
  • \n
  • \n

    \n KeyUsage: TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE\n

    \n
  • \n
  • \n

    \n PublicKeyCertificate: The public key certificate in PEM format (base64 encoded) of the private root key under import.

    \n
  • \n
\n

\n To import a trusted public key certificate\n

\n

The root public key certificate must be in place and operational before you import a trusted public key certificate. Set the following parameters:

\n
    \n
  • \n

    \n KeyMaterial: TrustedCertificatePublicKey\n

    \n
  • \n
  • \n

    \n CertificateAuthorityPublicKeyIdentifier: KeyArn of the RootCertificatePublicKey.

    \n
  • \n
  • \n

    \n KeyModesOfUse and KeyUsage: Corresponding to the cryptographic operations such as wrap, sign, or encrypt that you will allow the trusted public key certificate to perform.

    \n
  • \n
  • \n

    \n PublicKeyCertificate: The trusted public key certificate in PEM format (base64 encoded) under import.

    \n
  • \n
\n

\n To import initial keys (KEK or ZMK or similar) using TR-34\n

\n

Using this operation, you can import initial key using TR-34 asymmetric key exchange. In TR-34 terminology, the sending party of the key is called Key Distribution Host (KDH) and the receiving party of the key is called Key Receiving Device (KRD). During the key import process, KDH is the user who initiates the key import and KRD is Amazon Web Services Payment Cryptography who receives the key.

\n

To initiate TR-34 key import, the KDH must obtain an import token by calling GetParametersForImport. This operation generates an encryption keypair for the purpose of key import, signs the key and returns back the wrapping key certificate (also known as KRD wrapping certificate) and the root certificate chain. The KDH must trust and install the KRD wrapping certificate on its HSM and use it to encrypt (wrap) the KDH key during TR-34 WrappedKeyBlock generation. The import token and associated KRD wrapping certificate expires after 7 days.

\n

Next the KDH generates a key pair for the purpose of signing the encrypted KDH key and provides the public certificate of the signing key to Amazon Web Services Payment Cryptography. The KDH will also need to import the root certificate chain of the KDH signing certificate by calling ImportKey for RootCertificatePublicKey. For more information on TR-34 key import, see section Importing symmetric keys in the Amazon Web Services Payment Cryptography User Guide.

\n

Set the following parameters:

\n
    \n
  • \n

    \n KeyMaterial: Use Tr34KeyBlock parameters.

    \n
  • \n
  • \n

    \n CertificateAuthorityPublicKeyIdentifier: The KeyARN of the certificate chain that signed the KDH signing key certificate.

    \n
  • \n
  • \n

    \n ImportToken: Obtained from KRD by calling GetParametersForImport.

    \n
  • \n
  • \n

    \n WrappedKeyBlock: The TR-34 wrapped key material from KDH. It contains the KDH key under import, wrapped with KRD wrapping certificate and signed by KDH signing private key. This TR-34 key block is typically generated by the KDH Hardware Security Module (HSM) outside of Amazon Web Services Payment Cryptography.

    \n
  • \n
  • \n

    \n SigningKeyCertificate: The public key certificate in PEM format (base64 encoded) of the KDH signing key generated under the root certificate (CertificateAuthorityPublicKeyIdentifier) imported in Amazon Web Services Payment Cryptography.

    \n
  • \n
\n

\n To import initial keys (KEK or ZMK or similar) using RSA Wrap and Unwrap\n

\n

Using this operation, you can import initial key using asymmetric RSA wrap and unwrap key exchange method. To initiate import, call GetParametersForImport with KeyMaterial set to KEY_CRYPTOGRAM to generate an import token. This operation also generates an encryption keypair for the purpose of key import, signs the key and returns back the wrapping key certificate in PEM format (base64 encoded) and its root certificate chain. The import token and associated KRD wrapping certificate expires after 7 days.

\n

You must trust and install the wrapping certificate and its certificate chain on the sending HSM and use it to wrap the key under export for WrappedKeyCryptogram generation. Next call ImportKey with KeyMaterial set to KEY_CRYPTOGRAM and provide the ImportToken and KeyAttributes for the key under import.

\n

\n To import working keys using TR-31\n

\n

Amazon Web Services Payment Cryptography uses TR-31 symmetric key exchange norm to import working keys. A KEK must be established within Amazon Web Services Payment Cryptography by using TR-34 key import or by using CreateKey. To initiate a TR-31 key import, set the following parameters:

\n
    \n
  • \n

    \n KeyMaterial: Use Tr31KeyBlock parameters.

    \n
  • \n
  • \n

    \n WrappedKeyBlock: The TR-31 wrapped key material. It contains the key under import, encrypted using KEK. The TR-31 key block is typically generated by a HSM outside of Amazon Web Services Payment Cryptography.

    \n
  • \n
  • \n

    \n WrappingKeyIdentifier: The KeyArn of the KEK that Amazon Web Services Payment Cryptography uses to decrypt or unwrap the key under import.

    \n
  • \n
\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.paymentcryptography#ImportKeyCryptogram": { @@ -1226,7 +1238,7 @@ "Tags": { "target": "com.amazonaws.paymentcryptography#Tags", "traits": { - "smithy.api#documentation": "

Assigns one or more tags to the Amazon Web Services Payment Cryptography key. Use this parameter to tag a key when it is imported. To tag an existing Amazon Web Services Payment Cryptography key, use the TagResource operation.

\n

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are required, but the tag value can be an empty (null) string. You can't have more than one tag on an Amazon Web Services Payment Cryptography key with the same tag key. If you specify an existing tag key with a different tag value, Amazon Web Services Payment Cryptography replaces the current tag value with the specified one.

\n \n

Don't include personal, confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n \n

Tagging or untagging an Amazon Web Services Payment Cryptography key can allow or deny permission to the key.

\n
" + "smithy.api#documentation": "

Assigns one or more tags to the Amazon Web Services Payment Cryptography key. Use this parameter to tag a key when it is imported. To tag an existing Amazon Web Services Payment Cryptography key, use the TagResource operation.

\n

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are required, but the tag value can be an empty (null) string. You can't have more than one tag on an Amazon Web Services Payment Cryptography key with the same tag key. If you specify an existing tag key with a different tag value, Amazon Web Services Payment Cryptography replaces the current tag value with the specified one.

\n \n

Don't include personal, confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n \n

Tagging or untagging an Amazon Web Services Payment Cryptography key can allow or deny permission to the key.

\n
" } } }, @@ -1612,6 +1624,35 @@ "smithy.api#documentation": "

The role of the key, the algorithm it supports, and the cryptographic operations allowed with the key. This data is immutable after the key is created.

" } }, + "com.amazonaws.paymentcryptography#KeyBlockHeaders": { + "type": "structure", + "members": { + "KeyModesOfUse": { + "target": "com.amazonaws.paymentcryptography#KeyModesOfUse" + }, + "KeyExportability": { + "target": "com.amazonaws.paymentcryptography#KeyExportability", + "traits": { + "smithy.api#documentation": "

Specifies subsequent exportability of the key within the key block after it is received by the receiving party. It can be used to further restrict exportability of the key after export from Amazon Web Services Payment Cryptography.

\n

When set to EXPORTABLE, the key can be subsequently exported by the receiver under a KEK using TR-31 or TR-34 key block export only. When set to NON_EXPORTABLE, the key cannot be subsequently exported by the receiver. When set to SENSITIVE, the key can be exported by the receiver under a KEK using TR-31, TR-34, RSA wrap and unwrap cryptogram or using a symmetric cryptogram key export method. For further information refer to ANSI X9.143-2022.

" + } + }, + "KeyVersion": { + "target": "com.amazonaws.paymentcryptography#KeyVersion", + "traits": { + "smithy.api#documentation": "

Parameter used to indicate the version of the key carried in the key block or indicate the value carried in the key block is a component of a key.

" + } + }, + "OptionalBlocks": { + "target": "com.amazonaws.paymentcryptography#OptionalBlocks", + "traits": { + "smithy.api#documentation": "

Parameter used to indicate the type of optional data in key block headers. Refer to ANSI X9.143-2022 for information on allowed data type for optional blocks.

\n

Optional block character limit is 112 characters. For each optional block, 2 characters are reserved for optional block ID and 2 characters reserved for optional block length. More than one optional blocks can be included as long as the combined length does not increase 112 characters.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Optional metadata for export associated with the key material. This data is signed but transmitted in clear text.

" + } + }, "com.amazonaws.paymentcryptography#KeyCheckValue": { "type": "string", "traits": { @@ -1660,6 +1701,25 @@ ] } }, + "com.amazonaws.paymentcryptography#KeyExportability": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "EXPORTABLE", + "name": "EXPORTABLE" + }, + { + "value": "NON_EXPORTABLE", + "name": "NON_EXPORTABLE" + }, + { + "value": "SENSITIVE", + "name": "SENSITIVE" + } + ] + } + }, "com.amazonaws.paymentcryptography#KeyMaterial": { "type": "string", "traits": { @@ -2005,6 +2065,16 @@ ] } }, + "com.amazonaws.paymentcryptography#KeyVersion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 2, + "max": 2 + }, + "smithy.api#pattern": "^[0-9A-Z]{2}+$" + } + }, "com.amazonaws.paymentcryptography#ListAliases": { "type": "operation", "input": { @@ -2035,7 +2105,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Lists the aliases for all keys in the caller's Amazon Web Services account and Amazon Web Services Region. You can filter the list of aliases. For more information, see Using aliases in the Amazon Web Services Payment Cryptography User Guide.

\n

This is a paginated operation, which means that each response might contain only a subset of all the aliases. When the response contains only a subset of aliases, it includes a NextToken value.\n Use this value in a subsequent ListAliases request to get more aliases. When you receive a response with no NextToken (or an empty or null value), that means there are no more aliases to get.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Lists the aliases for all keys in the caller's Amazon Web Services account and Amazon Web Services Region. You can filter the list of aliases. For more information, see Using aliases in the Amazon Web Services Payment Cryptography User Guide.

\n

This is a paginated operation, which means that each response might contain only a subset of all the aliases. When the response contains only a subset of aliases, it includes a NextToken value.\n Use this value in a subsequent ListAliases request to get more aliases. When you receive a response with no NextToken (or an empty or null value), that means there are no more aliases to get.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -2120,7 +2190,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Lists the keys in the caller's Amazon Web Services account and Amazon Web Services Region. You can filter the list of keys.

\n

This is a paginated operation, which means that each response might contain only a subset of all the keys.\n When the response contains only a subset of keys, it includes a NextToken value. Use this value in a subsequent ListKeys request to get more keys.\n When you receive a response with no NextToken (or an empty or null value), that means there are no more keys to get.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Lists the keys in the caller's Amazon Web Services account and Amazon Web Services Region. You can filter the list of keys.

\n

This is a paginated operation, which means that each response might contain only a subset of all the keys.\n When the response contains only a subset of keys, it includes a NextToken value. Use this value in a subsequent ListKeys request to get more keys.\n When you receive a response with no NextToken (or an empty or null value), that means there are no more keys to get.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -2211,7 +2281,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Lists the tags for an Amazon Web Services resource.

\n

This is a paginated operation, which means that each response might contain only a subset of all the tags.\n When the response contains only a subset of tags, it includes a NextToken value. Use this value in a subsequent ListTagsForResource request to get more tags.\n When you receive a response with no NextToken (or an empty or null value), that means there are no more tags to get.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Lists the tags for an Amazon Web Services resource.

\n

This is a paginated operation, which means that each response might contain only a subset of all the tags.\n When the response contains only a subset of tags, it includes a NextToken value. Use this value in a subsequent ListTagsForResource request to get more tags.\n When you receive a response with no NextToken (or an empty or null value), that means there are no more tags to get.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -2287,6 +2357,37 @@ } } }, + "com.amazonaws.paymentcryptography#OptionalBlockId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 2, + "max": 2 + }, + "smithy.api#pattern": "^[0-9A-Z]{2}+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.paymentcryptography#OptionalBlockValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 108 + }, + "smithy.api#pattern": "^[0-9A-Z]+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.paymentcryptography#OptionalBlocks": { + "type": "map", + "key": { + "target": "com.amazonaws.paymentcryptography#OptionalBlockId" + }, + "value": { + "target": "com.amazonaws.paymentcryptography#OptionalBlockValue" + } + }, "com.amazonaws.paymentcryptography#PaymentCryptographyControlPlane": { "type": "service", "version": "2021-09-14", @@ -3066,7 +3167,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Cancels a scheduled key deletion during the waiting period. Use this operation to restore a Key that is scheduled for deletion.

\n

During the waiting period, the KeyState is DELETE_PENDING and deletePendingTimestamp contains the date and time after which the Key will be deleted.\n After Key is restored, the KeyState is CREATE_COMPLETE, and the value for deletePendingTimestamp is removed.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Cancels a scheduled key deletion during the waiting period. Use this operation to restore a Key that is scheduled for deletion.

\n

During the waiting period, the KeyState is DELETE_PENDING and deletePendingTimestamp contains the date and time after which the Key will be deleted.\n After Key is restored, the KeyState is CREATE_COMPLETE, and the value for deletePendingTimestamp is removed.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.paymentcryptography#RestoreKeyInput": { @@ -3187,7 +3288,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Enables an Amazon Web Services Payment Cryptography key, which makes it active for cryptographic operations within Amazon Web Services Payment Cryptography

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Enables an Amazon Web Services Payment Cryptography key, which makes it active for cryptographic operations within Amazon Web Services Payment Cryptography

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.paymentcryptography#StartKeyUsageInput": { @@ -3260,7 +3361,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Disables an Amazon Web Services Payment Cryptography key, which makes it inactive within Amazon Web Services Payment Cryptography.

\n

You can use this operation instead of DeleteKey to deactivate a key. You can enable the key in the future by calling StartKeyUsage.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Disables an Amazon Web Services Payment Cryptography key, which makes it inactive within Amazon Web Services Payment Cryptography.

\n

You can use this operation instead of DeleteKey to deactivate a key. You can enable the key in the future by calling StartKeyUsage.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.paymentcryptography#StopKeyUsageInput": { @@ -3375,7 +3476,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Adds or edits tags on an Amazon Web Services Payment Cryptography key.

\n \n

Tagging or untagging an Amazon Web Services Payment Cryptography key can allow or deny permission to the key.

\n
\n

Each tag consists of a tag key and a tag value, both of which are case-sensitive strings. The tag value can be an empty (null) string. To add a tag, specify a new tag key and a tag value. To edit a tag, specify an existing tag key and a new tag value. You can also add tags to an Amazon Web Services Payment Cryptography key when you create it with CreateKey.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Adds or edits tags on an Amazon Web Services Payment Cryptography key.

\n \n

Tagging or untagging an Amazon Web Services Payment Cryptography key can allow or deny permission to the key.

\n
\n

Each tag consists of a tag key and a tag value, both of which are case-sensitive strings. The tag value can be an empty (null) string. To add a tag, specify a new tag key and a tag value. To edit a tag, specify an existing tag key and a new tag value. You can also add tags to an Amazon Web Services Payment Cryptography key when you create it with CreateKey.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.paymentcryptography#TagResourceInput": { @@ -3391,7 +3492,7 @@ "Tags": { "target": "com.amazonaws.paymentcryptography#Tags", "traits": { - "smithy.api#documentation": "

One or more tags. Each tag consists of a tag key and a tag value. The tag value can be an empty (null) string. You can't have more than one tag on an Amazon Web Services Payment Cryptography key with the same tag key. If you specify an existing tag key with a different tag value, Amazon Web Services Payment Cryptography replaces the current tag value with the new one.

\n \n

Don't include personal, confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

To use this parameter, you must have TagResource permission in an IAM policy.

\n \n

Don't include personal, confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
", + "smithy.api#documentation": "

One or more tags. Each tag consists of a tag key and a tag value. The tag value can be an empty (null) string. You can't have more than one tag on an Amazon Web Services Payment Cryptography key with the same tag key. If you specify an existing tag key with a different tag value, Amazon Web Services Payment Cryptography replaces the current tag value with the new one.

\n \n

Don't include personal, confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
\n

To use this parameter, you must have TagResource permission in an IAM policy.

\n \n

Don't include personal, confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

\n
", "smithy.api#required": {} } } @@ -3537,7 +3638,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Deletes a tag from an Amazon Web Services Payment Cryptography key.

\n \n

Tagging or untagging an Amazon Web Services Payment Cryptography key can allow or deny permission to the key.

\n
\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Deletes a tag from an Amazon Web Services Payment Cryptography key.

\n \n

Tagging or untagging an Amazon Web Services Payment Cryptography key can allow or deny permission to the key.

\n
\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.paymentcryptography#UntagResourceInput": { @@ -3553,7 +3654,7 @@ "TagKeys": { "target": "com.amazonaws.paymentcryptography#TagKeys", "traits": { - "smithy.api#documentation": "

One or more tag keys. Don't include the tag values.

\n

If the Amazon Web Services Payment Cryptography key doesn't have the specified tag key, Amazon Web Services Payment Cryptography doesn't throw an exception or return a response. To confirm that the operation succeeded, use the ListTagsForResource operation.

", + "smithy.api#documentation": "

One or more tag keys. Don't include the tag values.

\n

If the Amazon Web Services Payment Cryptography key doesn't have the specified tag key, Amazon Web Services Payment Cryptography doesn't throw an exception or return a response. To confirm that the operation succeeded, use the ListTagsForResource operation.

", "smithy.api#required": {} } } @@ -3602,7 +3703,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Associates an existing Amazon Web Services Payment Cryptography alias with a different key. Each alias is associated with only one Amazon Web Services Payment Cryptography key at a time, although a key can have multiple aliases. The alias and the Amazon Web Services Payment Cryptography key must be in the same Amazon Web Services account and Amazon Web Services Region

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " + "smithy.api#documentation": "

Associates an existing Amazon Web Services Payment Cryptography alias with a different key. Each alias is associated with only one Amazon Web Services Payment Cryptography key at a time, although a key can have multiple aliases. The alias and the Amazon Web Services Payment Cryptography key must be in the same Amazon Web Services account and Amazon Web Services Region

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n " } }, "com.amazonaws.paymentcryptography#UpdateAliasInput": { diff --git a/models/personalize-runtime.json b/models/personalize-runtime.json index e3e39c56d6..b3d5f46816 100644 --- a/models/personalize-runtime.json +++ b/models/personalize-runtime.json @@ -1164,6 +1164,9 @@ }, "value": { "target": "com.amazonaws.personalizeruntime#ColumnValue" + }, + "traits": { + "smithy.api#sensitive": {} } }, "com.amazonaws.personalizeruntime#MetadataColumns": { @@ -1255,6 +1258,12 @@ "traits": { "smithy.api#documentation": "

Metadata about the item from your Items dataset.

" } + }, + "reason": { + "target": "com.amazonaws.personalizeruntime#ReasonList", + "traits": { + "smithy.api#documentation": "

If you use User-Personalization-v2, a list of reasons for why the item was included in recommendations. Possible reasons include the following:

\n
    \n
  • \n

    Promoted item - Indicates the item was included as part of a promotion that you applied in your recommendation request.

    \n
  • \n
  • \n

    Exploration - Indicates the item was included with exploration.\n With exploration, recommendations include items with less interactions data or relevance for the user.\n For more information about exploration, see \n Exploration.

    \n
  • \n
  • \n

    \n Popular item - Indicates the item was included as a placeholder popular item.\n If you use a filter, depending on how many recommendations the filter removes, \n Amazon Personalize might add placeholder items to meet the numResults for your \n recommendation request. These items are popular items, based on interactions data, that satisfy your filter criteria.\n They don't have a relevance score for the user.\n

    \n
  • \n
" + } } }, "traits": { @@ -1305,6 +1314,21 @@ } } }, + "com.amazonaws.personalizeruntime#Reason": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } + }, + "com.amazonaws.personalizeruntime#ReasonList": { + "type": "list", + "member": { + "target": "com.amazonaws.personalizeruntime#Reason" + } + }, "com.amazonaws.personalizeruntime#RecommendationID": { "type": "string" }, diff --git a/models/personalize.json b/models/personalize.json index fb7d5c6514..6d1a0371fd 100644 --- a/models/personalize.json +++ b/models/personalize.json @@ -140,6 +140,9 @@ { "target": "com.amazonaws.personalize#CreateCampaign" }, + { + "target": "com.amazonaws.personalize#CreateDataDeletionJob" + }, { "target": "com.amazonaws.personalize#CreateDataset" }, @@ -212,6 +215,9 @@ { "target": "com.amazonaws.personalize#DescribeCampaign" }, + { + "target": "com.amazonaws.personalize#DescribeDataDeletionJob" + }, { "target": "com.amazonaws.personalize#DescribeDataset" }, @@ -263,6 +269,9 @@ { "target": "com.amazonaws.personalize#ListCampaigns" }, + { + "target": "com.amazonaws.personalize#ListDataDeletionJobs" + }, { "target": "com.amazonaws.personalize#ListDatasetExportJobs" }, @@ -1163,6 +1172,20 @@ "smithy.api#documentation": "

When the solution performs AutoML (performAutoML is true in\n CreateSolution), specifies the recipe that best optimized the\n specified metric.

" } }, + "com.amazonaws.personalize#AutoTrainingConfig": { + "type": "structure", + "members": { + "schedulingExpression": { + "target": "com.amazonaws.personalize#SchedulingExpression", + "traits": { + "smithy.api#documentation": "

Specifies how often to automatically train new solution versions. Specify a rate expression in rate(value\n unit) format.\n For value, specify a number between 1 and 30. For unit, specify day or days.\n For example, to automatically create a new solution version every 5 days, specify rate(5 days). The default is every 7 days.

\n

For more information about auto training, see Creating and configuring a solution.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The automatic training configuration to use when performAutoTraining is true.

" + } + }, "com.amazonaws.personalize#AvroSchema": { "type": "string", "traits": { @@ -1590,7 +1613,7 @@ "solutionVersionArn": { "target": "com.amazonaws.personalize#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a specific version of the solution.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the solution version the campaign uses.

" } }, "minProvisionedTPS": { @@ -1651,6 +1674,12 @@ "traits": { "smithy.api#documentation": "

Whether metadata with recommendations is enabled for the campaign. \n If enabled, you can specify the columns from your Items dataset in your request for recommendations. Amazon Personalize returns this data for each item in the recommendation response.\n For information about enabling metadata for a campaign, see Enabling metadata in recommendations for a campaign.

\n

\n If you enable metadata in recommendations, you will incur additional costs. For more information, see Amazon Personalize pricing.\n

" } + }, + "syncWithLatestSolutionVersion": { + "target": "com.amazonaws.personalize#Boolean", + "traits": { + "smithy.api#documentation": "

Whether the campaign automatically updates to use the latest solution version (trained model) of a solution. If you specify True, \n you must specify the ARN of your solution for the SolutionVersionArn parameter. It must be in SolutionArn/$LATEST format.\n The default is False and you must manually update the campaign to deploy the latest solution version. \n

\n

\n For more information about automatic campaign updates, see \n Enabling automatic campaign updates.\n

" + } } }, "traits": { @@ -2153,7 +2182,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a campaign that deploys a solution version. When a client calls the\n GetRecommendations\n and\n GetPersonalizedRanking\n APIs, a campaign is specified in the request.

\n

\n Minimum Provisioned TPS and Auto-Scaling\n

\n \n

A high minProvisionedTPS will increase your cost. We recommend starting with 1 for minProvisionedTPS (the default). Track\n your usage using Amazon CloudWatch metrics, and increase the minProvisionedTPS\n as necessary.

\n
\n

\n When you create an Amazon Personalize campaign, you can specify the minimum provisioned transactions per second\n (minProvisionedTPS) for the campaign. This is the baseline transaction throughput for the campaign provisioned by\n Amazon Personalize. It sets the minimum billing charge for the campaign while it is active. A transaction is a single GetRecommendations or\n GetPersonalizedRanking request. The default minProvisionedTPS is 1.

\n

If your TPS increases beyond the minProvisionedTPS, Amazon Personalize auto-scales the provisioned capacity up\n and down, but never below minProvisionedTPS. \n There's a short time delay while the capacity is increased\n that might cause loss of transactions. When your traffic reduces, capacity returns to the minProvisionedTPS.\n

\n

You are charged for the\n the minimum provisioned TPS or, if your requests exceed the minProvisionedTPS, the actual TPS. \n The actual TPS is the total number of recommendation requests you make.\n We recommend starting with a low minProvisionedTPS, track\n your usage using Amazon CloudWatch metrics, and then increase the minProvisionedTPS as necessary.

\n

For more information about campaign costs, see Amazon Personalize pricing.

\n

\n Status\n

\n

A campaign can be in one of the following states:

\n
    \n
  • \n

    CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED

    \n
  • \n
  • \n

    DELETE PENDING > DELETE IN_PROGRESS

    \n
  • \n
\n

To get the campaign status, call DescribeCampaign.

\n \n

Wait until the status of the campaign\n is ACTIVE before asking the campaign for recommendations.

\n
\n

\n Related APIs\n

\n ", + "smithy.api#documentation": "\n

You incur campaign costs while it is active. To avoid unnecessary costs, make sure to delete the campaign when you are finished. For information about campaign\n costs, see Amazon Personalize pricing.

\n
\n

Creates a campaign that deploys a solution version. When a client calls the\n GetRecommendations\n and\n GetPersonalizedRanking\n APIs, a campaign is specified in the request.

\n

\n Minimum Provisioned TPS and Auto-Scaling\n

\n \n

A high minProvisionedTPS will increase your cost. We recommend starting with 1 for minProvisionedTPS (the default). Track\n your usage using Amazon CloudWatch metrics, and increase the minProvisionedTPS\n as necessary.

\n
\n

\n When you create an Amazon Personalize campaign, you can specify the minimum provisioned transactions per second\n (minProvisionedTPS) for the campaign. This is the baseline transaction throughput for the campaign provisioned by\n Amazon Personalize. It sets the minimum billing charge for the campaign while it is active. A transaction is a single GetRecommendations or\n GetPersonalizedRanking request. The default minProvisionedTPS is 1.

\n

If your TPS increases beyond the minProvisionedTPS, Amazon Personalize auto-scales the provisioned capacity up\n and down, but never below minProvisionedTPS. \n There's a short time delay while the capacity is increased\n that might cause loss of transactions. When your traffic reduces, capacity returns to the minProvisionedTPS.\n

\n

You are charged for the\n the minimum provisioned TPS or, if your requests exceed the minProvisionedTPS, the actual TPS. \n The actual TPS is the total number of recommendation requests you make.\n We recommend starting with a low minProvisionedTPS, track\n your usage using Amazon CloudWatch metrics, and then increase the minProvisionedTPS as necessary.

\n

For more information about campaign costs, see Amazon Personalize pricing.

\n

\n Status\n

\n

A campaign can be in one of the following states:

\n
    \n
  • \n

    CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED

    \n
  • \n
  • \n

    DELETE PENDING > DELETE IN_PROGRESS

    \n
  • \n
\n

To get the campaign status, call DescribeCampaign.

\n \n

Wait until the status of the campaign\n is ACTIVE before asking the campaign for recommendations.

\n
\n

\n Related APIs\n

\n ", "smithy.api#idempotent": {} } }, @@ -2170,7 +2199,7 @@ "solutionVersionArn": { "target": "com.amazonaws.personalize#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the solution version to deploy.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the trained model to deploy with the campaign. To specify the latest solution version of your solution, \n specify the ARN of your solution in SolutionArn/$LATEST format.\n You must use this format if you set syncWithLatestSolutionVersion to True in the \n CampaignConfig.\n

\n

\n To deploy a model that isn't the latest solution version of your solution, specify the ARN of the solution version.\n

\n

\n For more information about automatic campaign updates, see \n Enabling automatic campaign updates.\n

", "smithy.api#required": {} } }, @@ -2211,6 +2240,94 @@ "smithy.api#output": {} } }, + "com.amazonaws.personalize#CreateDataDeletionJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.personalize#CreateDataDeletionJobRequest" + }, + "output": { + "target": "com.amazonaws.personalize#CreateDataDeletionJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.personalize#InvalidInputException" + }, + { + "target": "com.amazonaws.personalize#LimitExceededException" + }, + { + "target": "com.amazonaws.personalize#ResourceAlreadyExistsException" + }, + { + "target": "com.amazonaws.personalize#ResourceInUseException" + }, + { + "target": "com.amazonaws.personalize#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.personalize#TooManyTagsException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a batch job that deletes all\n references to specific users from an Amazon Personalize dataset group in batches. You specify the users to delete in a CSV file of userIds in \n an Amazon S3 bucket. After a job completes, Amazon Personalize no longer trains\n on the users’ data and no longer considers the users when generating user segments. \n For more information about creating a data deletion job, see Deleting users.

\n
    \n
  • \n

    Your input file must be a CSV file with a single USER_ID column that lists the users IDs. For more information\n about preparing the CSV file, see Preparing your data deletion file and uploading it to Amazon S3.

    \n
  • \n
  • \n

    To give Amazon Personalize permission to access your input CSV file of userIds, you must specify an IAM service role that has permission to\n read from the data source. This role \n needs GetObject and ListBucket permissions for the bucket and its content.\n These permissions are the same as importing data. For information on granting access to your Amazon S3\n bucket, see Giving\n Amazon Personalize Access to Amazon S3 Resources.

    \n
  • \n
\n

\n After you create a job, it can take up to a day to delete all references to the users from datasets and models. Until the job completes, \n Amazon Personalize continues to use the data when training. And if you use a User Segmentation recipe, the users might appear in user segments. \n

\n

\n Status\n

\n

A data deletion job can have one of the following statuses:

\n
    \n
  • \n

    PENDING > IN_PROGRESS > COMPLETED -or- FAILED

    \n
  • \n
\n

To get the status of the data deletion job, call DescribeDataDeletionJob API operation and specify the Amazon Resource Name\n (ARN) of the job. If the status is FAILED, the response\n includes a failureReason key, which describes why the job\n failed.

\n

\n Related APIs\n

\n " + } + }, + "com.amazonaws.personalize#CreateDataDeletionJobRequest": { + "type": "structure", + "members": { + "jobName": { + "target": "com.amazonaws.personalize#Name", + "traits": { + "smithy.api#documentation": "

The name for the data deletion job.

", + "smithy.api#required": {} + } + }, + "datasetGroupArn": { + "target": "com.amazonaws.personalize#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the dataset group that has the datasets you want to\n delete records from.

", + "smithy.api#required": {} + } + }, + "dataSource": { + "target": "com.amazonaws.personalize#DataSource", + "traits": { + "smithy.api#documentation": "

The Amazon S3 bucket that contains the list of userIds of the users to delete.

", + "smithy.api#required": {} + } + }, + "roleArn": { + "target": "com.amazonaws.personalize#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that has permissions to read from the Amazon S3\n data source.

", + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.personalize#Tags", + "traits": { + "smithy.api#documentation": "

A list of tags to apply to the data deletion job.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.personalize#CreateDataDeletionJobResponse": { + "type": "structure", + "members": { + "dataDeletionJobArn": { + "target": "com.amazonaws.personalize#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the data deletion job.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.personalize#CreateDataset": { "type": "operation", "input": { @@ -3001,7 +3118,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates the configuration for training a model. A trained model is known as\n a solution version. After the configuration is created, you train the model (create a solution version)\n by calling the CreateSolutionVersion operation. Every time you call\n CreateSolutionVersion, a new version of the solution is created.

\n

After creating a solution version, you check its accuracy by calling\n GetSolutionMetrics. When you are satisfied with the version, you\n deploy it using CreateCampaign. The campaign provides recommendations\n to a client through the\n GetRecommendations API.

\n

To train a model, Amazon Personalize requires training data and a recipe. The training data\n comes from the dataset group that you provide in the request. A recipe specifies\n the training algorithm and a feature transformation. You can specify one of the predefined\n recipes provided by Amazon Personalize.

\n \n

Amazon Personalize doesn't support configuring the hpoObjective \n for solution hyperparameter optimization at this time.

\n
\n

\n Status\n

\n

A solution can be in one of the following states:

\n
    \n
  • \n

    CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED

    \n
  • \n
  • \n

    DELETE PENDING > DELETE IN_PROGRESS

    \n
  • \n
\n

To get the status of the solution, call DescribeSolution. Wait\n until the status shows as ACTIVE before calling CreateSolutionVersion.

\n

\n Related APIs\n

\n \n " + "smithy.api#documentation": "\n

After you create a solution, you can’t change its configuration. By default, all new solutions use automatic training. With automatic training, you incur training costs while\n your solution is active. You can't stop automatic training for a solution. To avoid unnecessary costs, make sure to delete the solution when you are finished. For information about training\n costs, see Amazon Personalize pricing.

\n
\n

Creates the configuration for training a model (creating a solution version). This configuration\n includes the recipe to use for model training and optional training configuration, such as columns to use\n in training and feature transformation parameters. For more information about configuring a solution, see Creating and configuring a solution.\n

\n

\n By default, new solutions use automatic training to create solution versions every 7 days. You can change the training frequency.\n Automatic solution version creation starts one hour after the solution is ACTIVE. If you manually create a solution version within\n the hour, the solution skips the first automatic training. For more information,\n see Configuring automatic training.

\n

\n To turn off automatic training, set performAutoTraining to false. If you turn off automatic training, you must manually create a solution version\n by calling the CreateSolutionVersion operation.

\n

After training starts, you can\n get the solution version's Amazon Resource Name (ARN) with the ListSolutionVersions API operation. \n To get its status, use the DescribeSolutionVersion.\n

\n

After training completes you can evaluate model accuracy by calling\n GetSolutionMetrics. When you are satisfied with the solution version, you\n deploy it using CreateCampaign. The campaign provides recommendations\n to a client through the\n GetRecommendations API.

\n \n

Amazon Personalize doesn't support configuring the hpoObjective \n for solution hyperparameter optimization at this time.

\n
\n

\n Status\n

\n

A solution can be in one of the following states:

\n
    \n
  • \n

    CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED

    \n
  • \n
  • \n

    DELETE PENDING > DELETE IN_PROGRESS

    \n
  • \n
\n

To get the status of the solution, call DescribeSolution. If you use\n manual training, the status must be ACTIVE before you call CreateSolutionVersion.

\n

\n Related APIs\n

\n \n " } }, "com.amazonaws.personalize#CreateSolutionRequest": { @@ -3027,10 +3144,16 @@ "smithy.api#documentation": "\n

We don't recommend enabling automated machine learning. Instead, match your use case to the available Amazon Personalize \n recipes. For more information, see Choosing a recipe.

\n
\n

Whether to perform automated machine learning (AutoML). The default is false.\n For this case, you must specify recipeArn.

\n

When set to true, Amazon Personalize analyzes your training data and selects\n the optimal USER_PERSONALIZATION recipe and hyperparameters. In this case, you must omit\n recipeArn. Amazon Personalize determines the optimal recipe by running tests with\n different values for the hyperparameters.\n AutoML lengthens the training process as compared to selecting a specific recipe.

" } }, + "performAutoTraining": { + "target": "com.amazonaws.personalize#PerformAutoTraining", + "traits": { + "smithy.api#documentation": "

Whether the solution uses automatic training to create new solution versions (trained models). The default is\n True and the solution automatically creates new solution versions every 7 days. You can change the training\n frequency by specifying a schedulingExpression in the AutoTrainingConfig as part of solution\n configuration. For more information about automatic training,\n see Configuring automatic training.

\n

\n Automatic solution version creation starts one hour after the solution is ACTIVE. If you manually create a solution version within\n the hour, the solution skips the first automatic training.\n

\n

\n After training starts, you can\n get the solution version's Amazon Resource Name (ARN) with the ListSolutionVersions API operation. \n To get its status, use the DescribeSolutionVersion.\n

" + } + }, "recipeArn": { "target": "com.amazonaws.personalize#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the recipe to use for model training. This is required when\n performAutoML is false. For information about different Amazon Personalize recipes and their ARNs, \n see Choosing a recipe.\n \n

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the recipe to use for model training. This is required when\n performAutoML is false. For information about different Amazon Personalize recipes and their ARNs, \n see Choosing a recipe.\n

" } }, "datasetGroupArn": { @@ -3156,18 +3279,145 @@ "smithy.api#output": {} } }, + "com.amazonaws.personalize#DataDeletionJob": { + "type": "structure", + "members": { + "jobName": { + "target": "com.amazonaws.personalize#Name", + "traits": { + "smithy.api#documentation": "

The name of the data deletion job.

" + } + }, + "dataDeletionJobArn": { + "target": "com.amazonaws.personalize#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the data deletion job.

" + } + }, + "datasetGroupArn": { + "target": "com.amazonaws.personalize#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the dataset group the job deletes records from.

" + } + }, + "dataSource": { + "target": "com.amazonaws.personalize#DataSource" + }, + "roleArn": { + "target": "com.amazonaws.personalize#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that has permissions to read from the Amazon S3\n data source.

" + } + }, + "status": { + "target": "com.amazonaws.personalize#Status", + "traits": { + "smithy.api#documentation": "

The status of the data deletion job.

\n

A data deletion job can have one of the following statuses:

\n
    \n
  • \n

    PENDING > IN_PROGRESS > COMPLETED -or- FAILED

    \n
  • \n
" + } + }, + "numDeleted": { + "target": "com.amazonaws.personalize#Integer", + "traits": { + "smithy.api#documentation": "

The number of records deleted by a COMPLETED job.

" + } + }, + "creationDateTime": { + "target": "com.amazonaws.personalize#Date", + "traits": { + "smithy.api#documentation": "

The creation date and time (in Unix time) of the data deletion\n job.

" + } + }, + "lastUpdatedDateTime": { + "target": "com.amazonaws.personalize#Date", + "traits": { + "smithy.api#documentation": "

The date and time (in Unix time) the data deletion job was last updated.

" + } + }, + "failureReason": { + "target": "com.amazonaws.personalize#FailureReason", + "traits": { + "smithy.api#documentation": "

If a data deletion job fails, provides the reason why.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a job that deletes all\n references to specific users from an Amazon Personalize dataset group in batches. For information about creating a data deletion job, \n see Deleting users.

" + } + }, + "com.amazonaws.personalize#DataDeletionJobSummary": { + "type": "structure", + "members": { + "dataDeletionJobArn": { + "target": "com.amazonaws.personalize#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the data deletion job.

" + } + }, + "datasetGroupArn": { + "target": "com.amazonaws.personalize#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the dataset group the job deleted records from.

" + } + }, + "jobName": { + "target": "com.amazonaws.personalize#Name", + "traits": { + "smithy.api#documentation": "

The name of the data deletion job.

" + } + }, + "status": { + "target": "com.amazonaws.personalize#Status", + "traits": { + "smithy.api#documentation": "

The status of the data deletion job.

\n

A data deletion job can have one of the following statuses:

\n
    \n
  • \n

    PENDING > IN_PROGRESS > COMPLETED -or- FAILED

    \n
  • \n
" + } + }, + "creationDateTime": { + "target": "com.amazonaws.personalize#Date", + "traits": { + "smithy.api#documentation": "

The creation date and time (in Unix time) of the data deletion\n job.

" + } + }, + "lastUpdatedDateTime": { + "target": "com.amazonaws.personalize#Date", + "traits": { + "smithy.api#documentation": "

The date and time (in Unix time) the data deletion job was last updated.

" + } + }, + "failureReason": { + "target": "com.amazonaws.personalize#FailureReason", + "traits": { + "smithy.api#documentation": "

If a data deletion job fails, provides the reason why.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides a summary of the properties of a data deletion job. For a complete listing, call the DescribeDataDeletionJob\n API operation.

" + } + }, + "com.amazonaws.personalize#DataDeletionJobs": { + "type": "list", + "member": { + "target": "com.amazonaws.personalize#DataDeletionJobSummary" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, "com.amazonaws.personalize#DataSource": { "type": "structure", "members": { "dataLocation": { "target": "com.amazonaws.personalize#S3Location", "traits": { - "smithy.api#documentation": "

The path to the Amazon S3 bucket where the data that you want to upload to\n your dataset is stored. For example:

\n

\n s3://bucket-name/folder-name/\n

" + "smithy.api#documentation": "

For dataset import jobs, the path to the Amazon S3 bucket where the data that you want to upload to\n your dataset is stored. For data deletion jobs, the path to the Amazon S3 bucket that stores the list of records to delete.\n

\n

\n For example:

\n

\n s3://bucket-name/folder-name/fileName.csv\n

\n

If your CSV files are in a folder in your Amazon S3 bucket and you want your import job or data deletion job\n to consider multiple files, you can specify the path to the folder. With a data deletion job, Amazon Personalize uses all files in the folder and any sub folder. Use the following syntax with a / after the folder\n name:

\n

\n s3://bucket-name/folder-name/\n

" } } }, "traits": { - "smithy.api#documentation": "

Describes the data source that contains the data to upload to a\n dataset.

" + "smithy.api#documentation": "

Describes the data source that contains the data to upload to a dataset, or the list of \n records to delete from Amazon Personalize.

" } }, "com.amazonaws.personalize#Dataset": { @@ -4533,6 +4783,56 @@ "smithy.api#output": {} } }, + "com.amazonaws.personalize#DescribeDataDeletionJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.personalize#DescribeDataDeletionJobRequest" + }, + "output": { + "target": "com.amazonaws.personalize#DescribeDataDeletionJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.personalize#InvalidInputException" + }, + { + "target": "com.amazonaws.personalize#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the data deletion job created by CreateDataDeletionJob, including the job status.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.personalize#DescribeDataDeletionJobRequest": { + "type": "structure", + "members": { + "dataDeletionJobArn": { + "target": "com.amazonaws.personalize#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the data deletion job.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.personalize#DescribeDataDeletionJobResponse": { + "type": "structure", + "members": { + "dataDeletionJob": { + "target": "com.amazonaws.personalize#DataDeletionJob", + "traits": { + "smithy.api#documentation": "

Information about the data deletion job, including the status.

\n

The status is one of the following values:

\n
    \n
  • \n

    PENDING

    \n
  • \n
  • \n

    IN_PROGRESS

    \n
  • \n
  • \n

    COMPLETED

    \n
  • \n
  • \n

    FAILED

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.personalize#DescribeDataset": { "type": "operation", "input": { @@ -5802,6 +6102,9 @@ } } }, + "com.amazonaws.personalize#Integer": { + "type": "integer" + }, "com.amazonaws.personalize#IntegerHyperParameterRange": { "type": "structure", "members": { @@ -6137,6 +6440,73 @@ "smithy.api#output": {} } }, + "com.amazonaws.personalize#ListDataDeletionJobs": { + "type": "operation", + "input": { + "target": "com.amazonaws.personalize#ListDataDeletionJobsRequest" + }, + "output": { + "target": "com.amazonaws.personalize#ListDataDeletionJobsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.personalize#InvalidInputException" + }, + { + "target": "com.amazonaws.personalize#InvalidNextTokenException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of data deletion jobs for a dataset group ordered by creation time,\n with the most recent first.\n When\n a dataset group is not specified, all the data deletion jobs associated with\n the account are listed. The response provides the properties for each\n job, including the Amazon Resource Name (ARN). For more\n information on data deletion jobs, see Deleting users.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.personalize#ListDataDeletionJobsRequest": { + "type": "structure", + "members": { + "datasetGroupArn": { + "target": "com.amazonaws.personalize#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the dataset group to list data deletion jobs for.

" + } + }, + "nextToken": { + "target": "com.amazonaws.personalize#NextToken", + "traits": { + "smithy.api#documentation": "

A token returned from the previous call to\n ListDataDeletionJobs for getting the next set of jobs (if they exist).

" + } + }, + "maxResults": { + "target": "com.amazonaws.personalize#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of data deletion jobs to return.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.personalize#ListDataDeletionJobsResponse": { + "type": "structure", + "members": { + "dataDeletionJobs": { + "target": "com.amazonaws.personalize#DataDeletionJobs", + "traits": { + "smithy.api#documentation": "

The list of data deletion jobs.

" + } + }, + "nextToken": { + "target": "com.amazonaws.personalize#NextToken", + "traits": { + "smithy.api#documentation": "

A token for getting the next set of data deletion jobs (if they\n exist).

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.personalize#ListDatasetExportJobs": { "type": "operation", "input": { @@ -7021,7 +7391,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of solutions that use the given dataset group.\n When a dataset group is not specified, all the solutions associated with the account are listed.\n The response provides the properties for each solution, including the Amazon Resource Name (ARN).\n For more information on solutions, see CreateSolution.

", + "smithy.api#documentation": "

Returns a list of solutions in a given dataset group.\n When a dataset group is not specified, all the solutions associated with the account are listed.\n The response provides the properties for each solution, including the Amazon Resource Name (ARN).\n For more information on solutions, see CreateSolution.

", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "nextToken", @@ -7106,7 +7476,7 @@ "resourceArn": { "target": "com.amazonaws.personalize#Arn", "traits": { - "smithy.api#documentation": "

The resource's Amazon Resource Name.

", + "smithy.api#documentation": "

The resource's Amazon Resource Name (ARN).

", "smithy.api#required": {} } } @@ -7385,7 +7755,8 @@ "smithy.api#length": { "min": 0, "max": 1500 - } + }, + "smithy.api#pattern": "^\\p{ASCII}{0,1500}$" } }, "com.amazonaws.personalize#NumBatchResults": { @@ -7464,6 +7835,9 @@ "smithy.api#default": false } }, + "com.amazonaws.personalize#PerformAutoTraining": { + "type": "boolean" + }, "com.amazonaws.personalize#PerformHPO": { "type": "boolean", "traits": { @@ -7915,6 +8289,16 @@ "smithy.api#pattern": "^(s3|http|https)://.+$" } }, + "com.amazonaws.personalize#SchedulingExpression": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 16 + }, + "smithy.api#pattern": "^rate\\(\\d+ days?\\)$" + } + }, "com.amazonaws.personalize#Schemas": { "type": "list", "member": { @@ -7956,6 +8340,12 @@ "smithy.api#documentation": "\n

We don't recommend enabling automated machine learning. Instead, match your use case to the available Amazon Personalize \n recipes. For more information, see Determining your use case.\n

\n
\n

When true, Amazon Personalize performs a search for the best USER_PERSONALIZATION recipe from\n the list specified in the solution configuration (recipeArn must not be specified).\n When false (the default), Amazon Personalize uses recipeArn for training.

" } }, + "performAutoTraining": { + "target": "com.amazonaws.personalize#PerformAutoTraining", + "traits": { + "smithy.api#documentation": "

Specifies whether the solution automatically creates solution versions. The default is True\n and the solution automatically creates new solution versions every 7 days.

\n

For more information about auto training, see Creating and configuring a solution.

" + } + }, "recipeArn": { "target": "com.amazonaws.personalize#Arn", "traits": { @@ -8012,7 +8402,7 @@ } }, "traits": { - "smithy.api#documentation": "

An object that provides information about a solution. A solution is a trained model\n that can be deployed as a campaign.

" + "smithy.api#documentation": "\n

After you create a solution, you can’t change its configuration. By default, all new solutions use automatic training. With automatic training, you incur training costs while\n your solution is active. You can't stop automatic training for a solution. To avoid unnecessary costs, make sure to delete the solution when you are finished. For information about training\n costs, see Amazon Personalize pricing.

\n
\n

An object that provides information about a solution. A solution includes the custom recipe, customized parameters, and\n trained models (Solution Versions) that Amazon Personalize uses to generate recommendations.

\n

After you create a solution, you can’t change its configuration. If you need to make changes, you can clone the solution with the Amazon Personalize console\n or create a new one.

" } }, "com.amazonaws.personalize#SolutionConfig": { @@ -8059,6 +8449,12 @@ "traits": { "smithy.api#documentation": "

\n Specifies the training data configuration to use when creating a custom solution version (trained model).\n

" } + }, + "autoTrainingConfig": { + "target": "com.amazonaws.personalize#AutoTrainingConfig", + "traits": { + "smithy.api#documentation": "

Specifies the automatic training configuration to use.

" + } } }, "traits": { @@ -8177,7 +8573,7 @@ "trainingMode": { "target": "com.amazonaws.personalize#TrainingMode", "traits": { - "smithy.api#documentation": "

The scope of training to be performed when creating the solution version. The\n FULL option trains the solution version based on the entirety of the input\n solution's training data, while the UPDATE option processes only the data that\n has changed in comparison to the input solution. Choose UPDATE when you want to\n incrementally update your solution version instead of creating an entirely new one.

\n \n

The UPDATE option can only be used when you already have an active solution\n version created from the input solution using the FULL option and the input\n solution was trained with the \n User-Personalization\n recipe or the \n HRNN-Coldstart recipe.

\n
" + "smithy.api#documentation": "

The scope of training to be performed when creating the solution version. A\n FULL training considers all of the data in your dataset group.\n An UPDATE processes only the data that\n has changed since the latest training. Only solution versions created with the User-Personalization\n recipe can use UPDATE.\n

" } }, "tunedHPOParams": { @@ -8209,6 +8605,12 @@ "traits": { "smithy.api#documentation": "

The date and time (in\n Unix\n time) that the solution was last updated.

" } + }, + "trainingType": { + "target": "com.amazonaws.personalize#TrainingType", + "traits": { + "smithy.api#documentation": "

Whether the solution version was created automatically or manually.

" + } } }, "traits": { @@ -8230,6 +8632,18 @@ "smithy.api#documentation": "

The status of the solution version.

\n

A solution version can be in one of the following states:

\n
    \n
  • \n

    CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED

    \n
  • \n
" } }, + "trainingMode": { + "target": "com.amazonaws.personalize#TrainingMode", + "traits": { + "smithy.api#documentation": "

The scope of training to be performed when creating the solution version. A\n FULL training considers all of the data in your dataset group.\n An UPDATE processes only the data that\n has changed since the latest training. Only solution versions created with the User-Personalization\n recipe can use UPDATE.\n

" + } + }, + "trainingType": { + "target": "com.amazonaws.personalize#TrainingType", + "traits": { + "smithy.api#documentation": "

Whether the solution version was created automatically or manually.

" + } + }, "creationDateTime": { "target": "com.amazonaws.personalize#Date", "traits": { @@ -8450,7 +8864,7 @@ } }, "traits": { - "smithy.api#documentation": "

The optional metadata that you apply to resources to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.\n For more information see Tagging Amazon Personalize recources.\n

" + "smithy.api#documentation": "

The optional metadata that you apply to resources to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.\n For more information see Tagging Amazon Personalize resources.\n

" } }, "com.amazonaws.personalize#TagKey": { @@ -8517,7 +8931,7 @@ "tags": { "target": "com.amazonaws.personalize#Tags", "traits": { - "smithy.api#documentation": "

Tags to apply to the resource. For more information see Tagging Amazon Personalize recources.

", + "smithy.api#documentation": "

Tags to apply to the resource. For more information see Tagging Amazon Personalize resources.

", "smithy.api#required": {} } } @@ -8611,7 +9025,7 @@ "excludedDatasetColumns": { "target": "com.amazonaws.personalize#ExcludedDatasetColumns", "traits": { - "smithy.api#documentation": "

Specifies the columns to exclude from training. Each key is a dataset type, and each value is a list of columns.\n Exclude columns to control what data Amazon Personalize uses to generate recommendations. \n For example, you might have a column that you want to use only to filter recommendations. You can\n exclude this column from training and Amazon Personalize considers it only when filtering.\n

" + "smithy.api#documentation": "

Specifies the columns to exclude from training. Each key is a dataset type, and each value is a list of columns.\n Exclude columns to control what data Amazon Personalize uses to generate recommendations.

\n

\n For example, you might have a column that you want to use only to filter recommendations. You can\n exclude this column from training and Amazon Personalize considers it only when filtering.\n

" } } }, @@ -8650,6 +9064,29 @@ "traits": { "smithy.api#enumValue": "UPDATE" } + }, + "AUTOTRAIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTOTRAIN" + } + } + } + }, + "com.amazonaws.personalize#TrainingType": { + "type": "enum", + "members": { + "AUTOMATIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTOMATIC" + } + }, + "MANUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MANUAL" + } } } }, @@ -8704,7 +9141,7 @@ } ], "traits": { - "smithy.api#documentation": "

Remove tags that are attached to a resource.

" + "smithy.api#documentation": "

Removes the specified tags that are attached to a resource. For more information, see Removing tags from Amazon Personalize resources.

" } }, "com.amazonaws.personalize#UntagResourceRequest": { @@ -8720,7 +9157,7 @@ "tagKeys": { "target": "com.amazonaws.personalize#TagKeys", "traits": { - "smithy.api#documentation": "

Keys to remove from the resource's tags.

", + "smithy.api#documentation": "

The keys of the tags to be removed.

", "smithy.api#required": {} } } @@ -8756,7 +9193,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Updates a campaign to deploy a retrained solution version with an existing campaign, change your campaign's minProvisionedTPS,\n or modify your campaign's configuration, such as the exploration configuration.\n

\n

To update a campaign, the campaign status must be ACTIVE or CREATE FAILED.\n Check the campaign status using the DescribeCampaign operation.

\n \n

You can still get recommendations from a campaign while an update is in progress.\n The campaign will use the previous solution version and campaign configuration to generate recommendations until the latest campaign update status is Active.\n

\n
\n

For more information about updating a campaign, including code samples, see Updating a campaign.\n For more information about campaigns, see Creating a campaign.

", + "smithy.api#documentation": "

\n Updates a campaign to deploy a retrained solution version with an existing campaign, change your campaign's minProvisionedTPS,\n or modify your campaign's configuration. For example, you can set enableMetadataWithRecommendations to true for an existing campaign.

\n

\n To update a campaign to start automatically using the latest solution version, specify the following:

\n
    \n
  • \n

    For the SolutionVersionArn parameter, specify the Amazon Resource Name (ARN) of your solution in\n SolutionArn/$LATEST format.

    \n
  • \n
  • \n

    In the campaignConfig, set syncWithLatestSolutionVersion to true.\n

    \n
  • \n
\n

To update a campaign, the campaign status must be ACTIVE or CREATE FAILED.\n Check the campaign status using the DescribeCampaign operation.

\n \n

You can still get recommendations from a campaign while an update is in progress.\n The campaign will use the previous solution version and campaign configuration to generate recommendations until the latest campaign update status is Active.\n

\n
\n

For more information about updating a campaign, including code samples, see Updating a campaign.\n For more information about campaigns, see Creating a campaign.

", "smithy.api#idempotent": {} } }, @@ -8773,7 +9210,7 @@ "solutionVersionArn": { "target": "com.amazonaws.personalize#Arn", "traits": { - "smithy.api#documentation": "

The ARN of a new solution version to deploy.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a new model to deploy. To specify the latest solution version of your solution, \n specify the ARN of your solution in SolutionArn/$LATEST format.\n You must use this format if you set syncWithLatestSolutionVersion to True in the \n CampaignConfig.\n

\n

\n To deploy a model that isn't the latest solution version of your solution, specify the ARN of the solution version.\n

\n

\n For more information about automatic campaign updates, see \n Enabling automatic campaign updates.\n

" } }, "minProvisionedTPS": { diff --git a/models/pi.json b/models/pi.json index db34490593..ea55a498dd 100644 --- a/models/pi.json +++ b/models/pi.json @@ -1096,7 +1096,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieve Performance Insights metrics for a set of data sources over a time period. You can provide\n specific dimension groups and dimensions, and provide aggregation and filtering criteria for\n each group.

\n \n

Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, \n only the first 500 bytes are returned.

\n
", + "smithy.api#documentation": "

Retrieve Performance Insights metrics for a set of data sources over a time period. You can provide\n specific dimension groups and dimensions, and provide filtering criteria for each group. You must specify an aggregate function for\n each metric.

\n \n

Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, \n only the first 500 bytes are returned.

\n
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -1124,7 +1124,7 @@ "MetricQueries": { "target": "com.amazonaws.pi#MetricQueryList", "traits": { - "smithy.api#documentation": "

An array of one or more queries to perform. Each query must specify a Performance Insights metric, and can optionally specify aggregation and filtering\n criteria.

", + "smithy.api#documentation": "

An array of one or more queries to perform. Each query must specify a Performance Insights metric and specify an aggregate function, and you can provide filtering\n criteria. You must append the aggregate function to the metric. For example, to find the average for the metric db.load \n you must use db.load.avg. Valid values for aggregate functions include .avg, .min, \n .max, and .sum.

", "smithy.api#required": {} } }, @@ -1742,7 +1742,7 @@ "Metric": { "target": "com.amazonaws.pi#RequestString", "traits": { - "smithy.api#documentation": "

The name of a Performance Insights metric to be measured.

\n

Valid values for Metric are:

\n
    \n
  • \n

    \n db.load.avg - A scaled representation of the number of active sessions for the \n database engine.

    \n
  • \n
  • \n

    \n db.sampledload.avg - The raw number of active sessions for the database engine.

    \n
  • \n
  • \n

    The counter metrics listed in Performance Insights\n operating system counters in the Amazon Aurora User Guide.

    \n
  • \n
\n

If the number of active sessions is less than an internal Performance Insights threshold, db.load.avg and db.sampledload.avg are the same\n value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with db.load.avg showing the\n scaled values, db.sampledload.avg showing the raw values, and db.sampledload.avg less than\n db.load.avg. For most use cases, you can query db.load.avg only.

", + "smithy.api#documentation": "

The name of a Performance Insights metric to be measured.

\n

Valid values for Metric are:

\n \n

If the number of active sessions is less than an internal Performance Insights threshold, db.load.avg and db.sampledload.avg are the same\n value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with db.load.avg showing the\n scaled values, db.sampledload.avg showing the raw values, and db.sampledload.avg less than\n db.load.avg. For most use cases, you can query db.load.avg only.

", "smithy.api#required": {} } }, @@ -1760,7 +1760,7 @@ } }, "traits": { - "smithy.api#documentation": "

A single query to be processed. You must provide the metric to query. If no other\n parameters are specified, Performance Insights returns all data points for the specified metric. Optionally, you can\n request that the data points be aggregated by dimension group (GroupBy), and return only \n those data points that match your criteria (Filter).

" + "smithy.api#documentation": "

A single query to be processed. You must provide the metric to query and append an aggregate function to the metric.\n For example, to find the average for the metric db.load \n you must use db.load.avg. Valid values for aggregate functions include .avg, .min, \n .max, and .sum.\n If no other parameters are specified, Performance Insights returns all data points for the specified metric. Optionally, you can\n request that the data points be aggregated by dimension group (GroupBy), and return only \n those data points that match your criteria (Filter).

" } }, "com.amazonaws.pi#MetricQueryFilterMap": { @@ -1953,7 +1953,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -1996,7 +1995,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -2009,7 +2009,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -2023,7 +2022,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -2046,7 +2044,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -2081,7 +2078,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -2092,14 +2088,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -2113,14 +2111,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -2129,11 +2125,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -2144,14 +2140,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -2165,7 +2163,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -2185,7 +2182,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -2196,14 +2192,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -2214,9 +2212,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -2944,7 +2944,7 @@ "Metric": { "target": "com.amazonaws.pi#String", "traits": { - "smithy.api#documentation": "

The name of a Performance Insights metric to be measured.

\n

Valid values for Metric are:

\n
    \n
  • \n

    \n db.load.avg - A scaled representation of the number of active sessions for the database engine.

    \n
  • \n
  • \n

    \n db.sampledload.avg - The raw number of active sessions for the database engine.

    \n
  • \n
  • \n

    The counter metrics listed in Performance Insights\n operating system counters in the Amazon Aurora User Guide.

    \n
  • \n
\n

If the number of active sessions is less than an internal Performance Insights threshold, db.load.avg and \n db.sampledload.avg are the same value. If the number of active sessions is greater than the \n internal threshold, Performance Insights samples the active sessions, with db.load.avg showing the scaled values, \n db.sampledload.avg showing the raw values, and db.sampledload.avg less \n than db.load.avg. For most use cases, you can query db.load.avg only.\n

", + "smithy.api#documentation": "

The name of a Performance Insights metric to be measured.

\n

Valid values for Metric are:

\n \n

If the number of active sessions is less than an internal Performance Insights threshold, db.load.avg and \n db.sampledload.avg are the same value. If the number of active sessions is greater than the \n internal threshold, Performance Insights samples the active sessions, with db.load.avg showing the scaled values, \n db.sampledload.avg showing the raw values, and db.sampledload.avg less \n than db.load.avg. For most use cases, you can query db.load.avg only.\n

", "smithy.api#required": {} } }, diff --git a/models/pinpoint-sms-voice-v2.json b/models/pinpoint-sms-voice-v2.json index 4c6511fc43..636f1cc0e6 100644 --- a/models/pinpoint-sms-voice-v2.json +++ b/models/pinpoint-sms-voice-v2.json @@ -69,6 +69,10 @@ { "value": "ACCOUNT_TIER", "name": "ACCOUNT_TIER" + }, + { + "value": "DEFAULT_PROTECT_CONFIGURATION_ID", + "name": "DEFAULT_PROTECT_CONFIGURATION_ID" } ] } @@ -268,6 +272,96 @@ "smithy.api#output": {} } }, + "com.amazonaws.pinpointsmsvoicev2#AssociateProtectConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.pinpointsmsvoicev2#AssociateProtectConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.pinpointsmsvoicev2#AssociateProtectConfigurationResult" + }, + "errors": [ + { + "target": "com.amazonaws.pinpointsmsvoicev2#AccessDeniedException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ConflictException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#InternalServerException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ThrottlingException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Associate a protect configuration with a configuration set. This replaces the\n configuration sets current protect configuration. A configuration set can\n only be associated with one protect configuration at a time. A protect configuration can\n be associated with multiple configuration sets.

" + } + }, + "com.amazonaws.pinpointsmsvoicev2#AssociateProtectConfigurationRequest": { + "type": "structure", + "members": { + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationIdOrArn", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

", + "smithy.api#required": {} + } + }, + "ConfigurationSetName": { + "target": "com.amazonaws.pinpointsmsvoicev2#ConfigurationSetNameOrArn", + "traits": { + "smithy.api#documentation": "

The name of the ConfigurationSet.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#AssociateProtectConfigurationResult": { + "type": "structure", + "members": { + "ConfigurationSetArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

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

", + "smithy.api#required": {} + } + }, + "ConfigurationSetName": { + "target": "com.amazonaws.pinpointsmsvoicev2#ConfigurationSetName", + "traits": { + "smithy.api#documentation": "

The name of the ConfigurationSet.

", + "smithy.api#required": {} + } + }, + "ProtectConfigurationArn": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationArn", + "traits": { + "smithy.api#documentation": "

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

", + "smithy.api#required": {} + } + }, + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.pinpointsmsvoicev2#AttachmentBody": { "type": "blob", "traits": { @@ -337,7 +431,7 @@ "IamRoleArn": { "target": "com.amazonaws.pinpointsmsvoicev2#IamRoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Amazon Identity and Access Management (IAM) role\n that is able to write event data to an Amazon CloudWatch destination.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Identity and Access Management role\n that is able to write event data to an Amazon CloudWatch destination.

", "smithy.api#required": {} } }, @@ -405,6 +499,10 @@ { "value": "default-sender-id", "name": "DEFAULT_SENDER_ID" + }, + { + "value": "protect-configuration-id", + "name": "PROTECT_CONFIGURATION_ID" } ] } @@ -451,6 +549,12 @@ "smithy.api#documentation": "

The time when the ConfigurationSet was created, in UNIX epoch time format.

", "smithy.api#required": {} } + }, + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationIdOrArn", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

" + } } }, "traits": { @@ -651,6 +755,22 @@ { "value": "VERIFICATION_ALREADY_COMPLETE", "name": "VERIFICATION_ALREADY_COMPLETE" + }, + { + "value": "PROTECT_CONFIGURATION_IS_ACCOUNT_DEFAULT", + "name": "PROTECT_CONFIGURATION_IS_ACCOUNT_DEFAULT" + }, + { + "value": "PROTECT_CONFIGURATION_ASSOCIATED_WITH_CONFIGURATION_SET", + "name": "PROTECT_CONFIGURATION_ASSOCIATED_WITH_CONFIGURATION_SET" + }, + { + "value": "PROTECT_CONFIGURATION_NOT_ASSOCIATED_WITH_CONFIGURATION_SET", + "name": "PROTECT_CONFIGURATION_NOT_ASSOCIATED_WITH_CONFIGURATION_SET" + }, + { + "value": "DESTINATION_COUNTRY_BLOCKED_BY_PROTECT_CONFIGURATION", + "name": "DESTINATION_COUNTRY_BLOCKED_BY_PROTECT_CONFIGURATION" } ] } @@ -843,13 +963,13 @@ "CloudWatchLogsDestination": { "target": "com.amazonaws.pinpointsmsvoicev2#CloudWatchLogsDestination", "traits": { - "smithy.api#documentation": "

An object that contains information about an event destination for logging to Amazon\n CloudWatch logs.

" + "smithy.api#documentation": "

An object that contains information about an event destination for logging to Amazon CloudWatch Logs.

" } }, "KinesisFirehoseDestination": { "target": "com.amazonaws.pinpointsmsvoicev2#KinesisFirehoseDestination", "traits": { - "smithy.api#documentation": "

An object that contains information about an event destination for logging to Amazon\n Kinesis Data Firehose.

" + "smithy.api#documentation": "

An object that contains information about an event destination for logging to Amazon Kinesis Data Firehose.

" } }, "SnsDestination": { @@ -1161,6 +1281,113 @@ "smithy.api#output": {} } }, + "com.amazonaws.pinpointsmsvoicev2#CreateProtectConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.pinpointsmsvoicev2#CreateProtectConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.pinpointsmsvoicev2#CreateProtectConfigurationResult" + }, + "errors": [ + { + "target": "com.amazonaws.pinpointsmsvoicev2#AccessDeniedException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#InternalServerException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ThrottlingException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Create a new protect configuration. By default all country rule sets for each capability are set to ALLOW. Update the country rule sets using UpdateProtectConfigurationCountryRuleSet. A protect configurations name is stored as a Tag with the key set to Name and value as the name of the protect configuration.

" + } + }, + "com.amazonaws.pinpointsmsvoicev2#CreateProtectConfigurationRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.pinpointsmsvoicev2#ClientToken", + "traits": { + "smithy.api#documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. If you don't specify a client token, a randomly generated token is used for the\n request to ensure idempotency.

", + "smithy.api#idempotencyToken": {} + } + }, + "DeletionProtectionEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

When set to true deletion protection is enabled. By default this is set to false.\n

" + } + }, + "Tags": { + "target": "com.amazonaws.pinpointsmsvoicev2#TagList", + "traits": { + "smithy.api#documentation": "

An array of key and value pair tags that are associated with the resource.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#CreateProtectConfigurationResult": { + "type": "structure", + "members": { + "ProtectConfigurationArn": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationArn", + "traits": { + "smithy.api#documentation": "

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

", + "smithy.api#required": {} + } + }, + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

", + "smithy.api#required": {} + } + }, + "CreatedTimestamp": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the protect configuration was created, in UNIX epoch time format.

", + "smithy.api#required": {} + } + }, + "AccountDefault": { + "target": "smithy.api#PrimitiveBoolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

This is true if the protect configuration is set as your account default protect configuration.

", + "smithy.api#required": {} + } + }, + "DeletionProtectionEnabled": { + "target": "smithy.api#PrimitiveBoolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

When set to true deletion protection is enabled. By default this is set to false.\n

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.pinpointsmsvoicev2#TagList", + "traits": { + "smithy.api#documentation": "

An array of key and value pair tags that are associated with the resource.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.pinpointsmsvoicev2#CreateRegistration": { "type": "operation", "input": { @@ -1711,6 +1938,64 @@ "smithy.api#output": {} } }, + "com.amazonaws.pinpointsmsvoicev2#DeleteAccountDefaultProtectConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.pinpointsmsvoicev2#DeleteAccountDefaultProtectConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.pinpointsmsvoicev2#DeleteAccountDefaultProtectConfigurationResult" + }, + "errors": [ + { + "target": "com.amazonaws.pinpointsmsvoicev2#AccessDeniedException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#InternalServerException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ThrottlingException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the current account default protect configuration.

" + } + }, + "com.amazonaws.pinpointsmsvoicev2#DeleteAccountDefaultProtectConfigurationRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#DeleteAccountDefaultProtectConfigurationResult": { + "type": "structure", + "members": { + "DefaultProtectConfigurationArn": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the account default protect configuration.

", + "smithy.api#required": {} + } + }, + "DefaultProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the account default protect configuration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.pinpointsmsvoicev2#DeleteConfigurationSet": { "type": "operation", "input": { @@ -2108,27 +2393,21 @@ "smithy.api#output": {} } }, - "com.amazonaws.pinpointsmsvoicev2#DeleteOptOutList": { + "com.amazonaws.pinpointsmsvoicev2#DeleteMediaMessageSpendLimitOverride": { "type": "operation", "input": { - "target": "com.amazonaws.pinpointsmsvoicev2#DeleteOptOutListRequest" + "target": "com.amazonaws.pinpointsmsvoicev2#DeleteMediaMessageSpendLimitOverrideRequest" }, "output": { - "target": "com.amazonaws.pinpointsmsvoicev2#DeleteOptOutListResult" + "target": "com.amazonaws.pinpointsmsvoicev2#DeleteMediaMessageSpendLimitOverrideResult" }, "errors": [ { "target": "com.amazonaws.pinpointsmsvoicev2#AccessDeniedException" }, - { - "target": "com.amazonaws.pinpointsmsvoicev2#ConflictException" - }, { "target": "com.amazonaws.pinpointsmsvoicev2#InternalServerException" }, - { - "target": "com.amazonaws.pinpointsmsvoicev2#ResourceNotFoundException" - }, { "target": "com.amazonaws.pinpointsmsvoicev2#ThrottlingException" }, @@ -2137,36 +2416,89 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes an existing opt-out list. All opted out phone numbers in the opt-out list are\n deleted.

\n

If the specified opt-out list name doesn't exist or is in-use by an origination phone\n number or pool, an error is returned.

" + "smithy.api#documentation": "

Deletes an account-level monthly spending limit override for sending multimedia messages (MMS).\n Deleting a spend limit override will set the EnforcedLimit to equal the\n MaxLimit, which is controlled by Amazon Web Services. For more\n information on spend limits (quotas) see Quotas for Server Migration Service\n in the Server Migration Service User Guide.

" } }, - "com.amazonaws.pinpointsmsvoicev2#DeleteOptOutListRequest": { + "com.amazonaws.pinpointsmsvoicev2#DeleteMediaMessageSpendLimitOverrideRequest": { "type": "structure", - "members": { - "OptOutListName": { - "target": "com.amazonaws.pinpointsmsvoicev2#OptOutListNameOrArn", - "traits": { - "smithy.api#documentation": "

The OptOutListName or OptOutListArn of the OptOutList to delete. You can use DescribeOptOutLists to find the values for OptOutListName and\n OptOutListArn.

", - "smithy.api#required": {} - } - } - }, + "members": {}, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.pinpointsmsvoicev2#DeleteOptOutListResult": { + "com.amazonaws.pinpointsmsvoicev2#DeleteMediaMessageSpendLimitOverrideResult": { "type": "structure", "members": { - "OptOutListArn": { - "target": "smithy.api#String", + "MonthlyLimit": { + "target": "com.amazonaws.pinpointsmsvoicev2#MonthlyLimit", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the OptOutList that was removed.

" + "smithy.api#documentation": "

The current monthly limit, in US dollars.

" } - }, - "OptOutListName": { - "target": "com.amazonaws.pinpointsmsvoicev2#OptOutListName", - "traits": { + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#DeleteOptOutList": { + "type": "operation", + "input": { + "target": "com.amazonaws.pinpointsmsvoicev2#DeleteOptOutListRequest" + }, + "output": { + "target": "com.amazonaws.pinpointsmsvoicev2#DeleteOptOutListResult" + }, + "errors": [ + { + "target": "com.amazonaws.pinpointsmsvoicev2#AccessDeniedException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ConflictException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#InternalServerException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ThrottlingException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an existing opt-out list. All opted out phone numbers in the opt-out list are\n deleted.

\n

If the specified opt-out list name doesn't exist or is in-use by an origination phone\n number or pool, an error is returned.

" + } + }, + "com.amazonaws.pinpointsmsvoicev2#DeleteOptOutListRequest": { + "type": "structure", + "members": { + "OptOutListName": { + "target": "com.amazonaws.pinpointsmsvoicev2#OptOutListNameOrArn", + "traits": { + "smithy.api#documentation": "

The OptOutListName or OptOutListArn of the OptOutList to delete. You can use DescribeOptOutLists to find the values for OptOutListName and\n OptOutListArn.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#DeleteOptOutListResult": { + "type": "structure", + "members": { + "OptOutListArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the OptOutList that was removed.

" + } + }, + "OptOutListName": { + "target": "com.amazonaws.pinpointsmsvoicev2#OptOutListName", + "traits": { "smithy.api#documentation": "

The name of the OptOutList that was removed.

" } }, @@ -2398,6 +2730,98 @@ "smithy.api#output": {} } }, + "com.amazonaws.pinpointsmsvoicev2#DeleteProtectConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.pinpointsmsvoicev2#DeleteProtectConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.pinpointsmsvoicev2#DeleteProtectConfigurationResult" + }, + "errors": [ + { + "target": "com.amazonaws.pinpointsmsvoicev2#AccessDeniedException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ConflictException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#InternalServerException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ThrottlingException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Permanently delete the protect configuration. The protect configuration must have deletion protection disabled and must not be associated as the account default protect configuration or associated with a configuration set.

" + } + }, + "com.amazonaws.pinpointsmsvoicev2#DeleteProtectConfigurationRequest": { + "type": "structure", + "members": { + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationIdOrArn", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#DeleteProtectConfigurationResult": { + "type": "structure", + "members": { + "ProtectConfigurationArn": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationArn", + "traits": { + "smithy.api#documentation": "

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

", + "smithy.api#required": {} + } + }, + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

", + "smithy.api#required": {} + } + }, + "CreatedTimestamp": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the protect configuration was created, in UNIX epoch time format.

", + "smithy.api#required": {} + } + }, + "AccountDefault": { + "target": "smithy.api#PrimitiveBoolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

This is true if the protect configuration is set as your account default protect configuration.

", + "smithy.api#required": {} + } + }, + "DeletionProtectionEnabled": { + "target": "smithy.api#PrimitiveBoolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

The status of deletion protection for the protect configuration. When set to true deletion protection is enabled. By default this is set to false.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.pinpointsmsvoicev2#DeleteRegistration": { "type": "operation", "input": { @@ -3571,6 +3995,90 @@ "smithy.api#output": {} } }, + "com.amazonaws.pinpointsmsvoicev2#DescribeProtectConfigurations": { + "type": "operation", + "input": { + "target": "com.amazonaws.pinpointsmsvoicev2#DescribeProtectConfigurationsRequest" + }, + "output": { + "target": "com.amazonaws.pinpointsmsvoicev2#DescribeProtectConfigurationsResult" + }, + "errors": [ + { + "target": "com.amazonaws.pinpointsmsvoicev2#AccessDeniedException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#InternalServerException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ThrottlingException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the protect configurations that match any of filters. If a filter isn’t provided then all protect configurations are returned.

", + "smithy.api#paginated": { + "items": "ProtectConfigurations" + } + } + }, + "com.amazonaws.pinpointsmsvoicev2#DescribeProtectConfigurationsRequest": { + "type": "structure", + "members": { + "ProtectConfigurationIds": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationIdList", + "traits": { + "smithy.api#documentation": "

An array of protect configuration identifiers to search for.

" + } + }, + "Filters": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationFilterList", + "traits": { + "smithy.api#documentation": "

An array of ProtectConfigurationFilter objects to filter the results.

" + } + }, + "NextToken": { + "target": "com.amazonaws.pinpointsmsvoicev2#NextToken", + "traits": { + "smithy.api#documentation": "

The token to be used for the next set of paginated results. You don't need to supply a\n value for this field in the initial request.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.pinpointsmsvoicev2#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return per each request.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#DescribeProtectConfigurationsResult": { + "type": "structure", + "members": { + "ProtectConfigurations": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationInformationList", + "traits": { + "smithy.api#documentation": "

An array of ProtectConfigurationInformation objects that contain the details for the request.

" + } + }, + "NextToken": { + "target": "com.amazonaws.pinpointsmsvoicev2#NextToken", + "traits": { + "smithy.api#documentation": "

The token to be used for the next set of paginated results. You don't need to supply a\n value for this field in the initial request.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.pinpointsmsvoicev2#DescribeRegistrationAttachments": { "type": "operation", "input": { @@ -4634,13 +5142,13 @@ "smithy.api#output": {} } }, - "com.amazonaws.pinpointsmsvoicev2#DiscardRegistrationVersion": { + "com.amazonaws.pinpointsmsvoicev2#DisassociateProtectConfiguration": { "type": "operation", "input": { - "target": "com.amazonaws.pinpointsmsvoicev2#DiscardRegistrationVersionRequest" + "target": "com.amazonaws.pinpointsmsvoicev2#DisassociateProtectConfigurationRequest" }, "output": { - "target": "com.amazonaws.pinpointsmsvoicev2#DiscardRegistrationVersionResult" + "target": "com.amazonaws.pinpointsmsvoicev2#DisassociateProtectConfigurationResult" }, "errors": [ { @@ -4663,16 +5171,23 @@ } ], "traits": { - "smithy.api#documentation": "

Discard the current version of the registration.

" + "smithy.api#documentation": "

Disassociate a protect configuration from a configuration set.

" } }, - "com.amazonaws.pinpointsmsvoicev2#DiscardRegistrationVersionRequest": { + "com.amazonaws.pinpointsmsvoicev2#DisassociateProtectConfigurationRequest": { "type": "structure", "members": { - "RegistrationId": { - "target": "com.amazonaws.pinpointsmsvoicev2#RegistrationIdOrArn", + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationIdOrArn", "traits": { - "smithy.api#documentation": "

The unique identifier for the registration.

", + "smithy.api#documentation": "

The unique identifier for the protect configuration.

", + "smithy.api#required": {} + } + }, + "ConfigurationSetName": { + "target": "com.amazonaws.pinpointsmsvoicev2#ConfigurationSetNameOrArn", + "traits": { + "smithy.api#documentation": "

The name of the ConfigurationSet.

", "smithy.api#required": {} } } @@ -4681,41 +5196,34 @@ "smithy.api#input": {} } }, - "com.amazonaws.pinpointsmsvoicev2#DiscardRegistrationVersionResult": { + "com.amazonaws.pinpointsmsvoicev2#DisassociateProtectConfigurationResult": { "type": "structure", "members": { - "RegistrationArn": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the registration.

", - "smithy.api#required": {} - } - }, - "RegistrationId": { + "ConfigurationSetArn": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The unique identifier for the registration.

", + "smithy.api#documentation": "

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

", "smithy.api#required": {} } }, - "VersionNumber": { - "target": "com.amazonaws.pinpointsmsvoicev2#RegistrationVersionNumber", + "ConfigurationSetName": { + "target": "com.amazonaws.pinpointsmsvoicev2#ConfigurationSetName", "traits": { - "smithy.api#documentation": "

The version number of the registration.

", + "smithy.api#documentation": "

The name of the ConfigurationSet.

", "smithy.api#required": {} } }, - "RegistrationVersionStatus": { - "target": "com.amazonaws.pinpointsmsvoicev2#RegistrationVersionStatus", + "ProtectConfigurationArn": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationArn", "traits": { - "smithy.api#documentation": "

The status of the registration version.

\n
    \n
  • \n

    \n DRAFT: The initial status of a registration version after it’s created.

    \n
  • \n
  • \n

    \n SUBMITTED: Your registration has been submitted.

    \n
  • \n
  • \n

    \n REVIEWING: Your registration has been accepted and is being reviewed.

    \n
  • \n
  • \n

    \n APPROVED: Your registration has been approved.

    \n
  • \n
  • \n

    \n DISCARDED: You've abandon this version of their registration to start over with a new version.

    \n
  • \n
  • \n

    \n DENIED: You must fix your registration and resubmit it.

    \n
  • \n
  • \n

    \n REVOKED: Your previously approved registration has been revoked.

    \n
  • \n
  • \n

    \n ARCHIVED: Your previously approved registration version moves into this status when a more recently submitted version is approved.

    \n
  • \n
", + "smithy.api#documentation": "

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

", "smithy.api#required": {} } }, - "RegistrationVersionStatusHistory": { - "target": "com.amazonaws.pinpointsmsvoicev2#RegistrationVersionStatusHistory", + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationId", "traits": { - "smithy.api#documentation": "

The RegistrationVersionStatusHistory object contains the time stamps for when the reservations status changes.

", + "smithy.api#documentation": "

The unique identifier for the protect configuration.

", "smithy.api#required": {} } } @@ -4724,19 +5232,109 @@ "smithy.api#output": {} } }, - "com.amazonaws.pinpointsmsvoicev2#EventDestination": { - "type": "structure", - "members": { - "EventDestinationName": { - "target": "com.amazonaws.pinpointsmsvoicev2#EventDestinationName", - "traits": { - "smithy.api#documentation": "

The name of the EventDestination.

", - "smithy.api#required": {} - } - }, - "Enabled": { - "target": "smithy.api#Boolean", - "traits": { + "com.amazonaws.pinpointsmsvoicev2#DiscardRegistrationVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.pinpointsmsvoicev2#DiscardRegistrationVersionRequest" + }, + "output": { + "target": "com.amazonaws.pinpointsmsvoicev2#DiscardRegistrationVersionResult" + }, + "errors": [ + { + "target": "com.amazonaws.pinpointsmsvoicev2#AccessDeniedException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ConflictException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#InternalServerException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ThrottlingException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Discard the current version of the registration.

" + } + }, + "com.amazonaws.pinpointsmsvoicev2#DiscardRegistrationVersionRequest": { + "type": "structure", + "members": { + "RegistrationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#RegistrationIdOrArn", + "traits": { + "smithy.api#documentation": "

The unique identifier for the registration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#DiscardRegistrationVersionResult": { + "type": "structure", + "members": { + "RegistrationArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the registration.

", + "smithy.api#required": {} + } + }, + "RegistrationId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The unique identifier for the registration.

", + "smithy.api#required": {} + } + }, + "VersionNumber": { + "target": "com.amazonaws.pinpointsmsvoicev2#RegistrationVersionNumber", + "traits": { + "smithy.api#documentation": "

The version number of the registration.

", + "smithy.api#required": {} + } + }, + "RegistrationVersionStatus": { + "target": "com.amazonaws.pinpointsmsvoicev2#RegistrationVersionStatus", + "traits": { + "smithy.api#documentation": "

The status of the registration version.

\n
    \n
  • \n

    \n DRAFT: The initial status of a registration version after it’s created.

    \n
  • \n
  • \n

    \n SUBMITTED: Your registration has been submitted.

    \n
  • \n
  • \n

    \n REVIEWING: Your registration has been accepted and is being reviewed.

    \n
  • \n
  • \n

    \n APPROVED: Your registration has been approved.

    \n
  • \n
  • \n

    \n DISCARDED: You've abandon this version of their registration to start over with a new version.

    \n
  • \n
  • \n

    \n DENIED: You must fix your registration and resubmit it.

    \n
  • \n
  • \n

    \n REVOKED: Your previously approved registration has been revoked.

    \n
  • \n
  • \n

    \n ARCHIVED: Your previously approved registration version moves into this status when a more recently submitted version is approved.

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "RegistrationVersionStatusHistory": { + "target": "com.amazonaws.pinpointsmsvoicev2#RegistrationVersionStatusHistory", + "traits": { + "smithy.api#documentation": "

The RegistrationVersionStatusHistory object contains the time stamps for when the reservations status changes.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#EventDestination": { + "type": "structure", + "members": { + "EventDestinationName": { + "target": "com.amazonaws.pinpointsmsvoicev2#EventDestinationName", + "traits": { + "smithy.api#documentation": "

The name of the EventDestination.

", + "smithy.api#required": {} + } + }, + "Enabled": { + "target": "smithy.api#Boolean", + "traits": { "smithy.api#documentation": "

When set to true events will be logged.

", "smithy.api#required": {} } @@ -4757,7 +5355,7 @@ "KinesisFirehoseDestination": { "target": "com.amazonaws.pinpointsmsvoicev2#KinesisFirehoseDestination", "traits": { - "smithy.api#documentation": "

An object that contains information about an event destination for logging to Amazon\n Kinesis Data Firehose.

" + "smithy.api#documentation": "

An object that contains information about an event destination for logging to Amazon Kinesis Data Firehose.

" } }, "SnsDestination": { @@ -4768,7 +5366,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains information about an event destination.

\n

Event destinations are associated with configuration sets, which enable you to publish\n message sending events to CloudWatch, Kinesis Data Firehose,or Amazon SNS.

" + "smithy.api#documentation": "

Contains information about an event destination.

\n

Event destinations are associated with configuration sets, which enable you to publish\n message sending events to CloudWatch, Kinesis Data Firehose, or Amazon SNS.

" } }, "com.amazonaws.pinpointsmsvoicev2#EventDestinationList": { @@ -4890,6 +5488,74 @@ { "value": "VOICE_TTL_EXPIRED", "name": "VOICE_TTL_EXPIRED" + }, + { + "value": "MEDIA_ALL", + "name": "MEDIA_ALL" + }, + { + "value": "MEDIA_PENDING", + "name": "MEDIA_PENDING" + }, + { + "value": "MEDIA_QUEUED", + "name": "MEDIA_QUEUED" + }, + { + "value": "MEDIA_SUCCESSFUL", + "name": "MEDIA_SUCCESSFUL" + }, + { + "value": "MEDIA_DELIVERED", + "name": "MEDIA_DELIVERED" + }, + { + "value": "MEDIA_INVALID", + "name": "MEDIA_INVALID" + }, + { + "value": "MEDIA_INVALID_MESSAGE", + "name": "MEDIA_INVALID_MESSAGE" + }, + { + "value": "MEDIA_UNREACHABLE", + "name": "MEDIA_UNREACHABLE" + }, + { + "value": "MEDIA_CARRIER_UNREACHABLE", + "name": "MEDIA_CARRIER_UNREACHABLE" + }, + { + "value": "MEDIA_BLOCKED", + "name": "MEDIA_BLOCKED" + }, + { + "value": "MEDIA_CARRIER_BLOCKED", + "name": "MEDIA_CARRIER_BLOCKED" + }, + { + "value": "MEDIA_SPAM", + "name": "MEDIA_SPAM" + }, + { + "value": "MEDIA_UNKNOWN", + "name": "MEDIA_UNKNOWN" + }, + { + "value": "MEDIA_TTL_EXPIRED", + "name": "MEDIA_TTL_EXPIRED" + }, + { + "value": "MEDIA_FILE_INACCESSIBLE", + "name": "MEDIA_FILE_INACCESSIBLE" + }, + { + "value": "MEDIA_FILE_TYPE_UNSUPPORTED", + "name": "MEDIA_FILE_TYPE_UNSUPPORTED" + }, + { + "value": "MEDIA_FILE_SIZE_EXCEEDED", + "name": "MEDIA_FILE_SIZE_EXCEEDED" } ] } @@ -4902,7 +5568,7 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 25 + "max": 43 } } }, @@ -4970,9 +5636,9 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 100 + "max": 128 }, - "smithy.api#pattern": "^[\\.:A-Za-z0-9_-]+$" + "smithy.api#pattern": "^[/\\.:A-Za-z0-9_-]+$" } }, "com.amazonaws.pinpointsmsvoicev2#FilterValueList": { @@ -4987,6 +5653,93 @@ } } }, + "com.amazonaws.pinpointsmsvoicev2#GetProtectConfigurationCountryRuleSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.pinpointsmsvoicev2#GetProtectConfigurationCountryRuleSetRequest" + }, + "output": { + "target": "com.amazonaws.pinpointsmsvoicev2#GetProtectConfigurationCountryRuleSetResult" + }, + "errors": [ + { + "target": "com.amazonaws.pinpointsmsvoicev2#AccessDeniedException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#InternalServerException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ThrottlingException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieve the CountryRuleSet for the specified NumberCapability from a protect configuration.

" + } + }, + "com.amazonaws.pinpointsmsvoicev2#GetProtectConfigurationCountryRuleSetRequest": { + "type": "structure", + "members": { + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationIdOrArn", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

", + "smithy.api#required": {} + } + }, + "NumberCapability": { + "target": "com.amazonaws.pinpointsmsvoicev2#NumberCapability", + "traits": { + "smithy.api#documentation": "

The capability type to return the CountryRuleSet for. Valid values are SMS, VOICE, or MMS.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#GetProtectConfigurationCountryRuleSetResult": { + "type": "structure", + "members": { + "ProtectConfigurationArn": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationArn", + "traits": { + "smithy.api#documentation": "

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

", + "smithy.api#required": {} + } + }, + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

", + "smithy.api#required": {} + } + }, + "NumberCapability": { + "target": "com.amazonaws.pinpointsmsvoicev2#NumberCapability", + "traits": { + "smithy.api#documentation": "

The capability type associated with the returned ProtectConfigurationCountryRuleSetInformation objects.

", + "smithy.api#required": {} + } + }, + "CountryRuleSet": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationCountryRuleSet", + "traits": { + "smithy.api#documentation": "

A map of ProtectConfigurationCountryRuleSetInformation objects that contain the\n details for the requested NumberCapability. The Key is the two-letter ISO country code. For a list of supported ISO country codes, see Supported countries and regions (SMS channel) in the Amazon Pinpoint SMS user guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.pinpointsmsvoicev2#IamRoleArn": { "type": "string", "traits": { @@ -5161,7 +5914,7 @@ "IamRoleArn": { "target": "com.amazonaws.pinpointsmsvoicev2#IamRoleArn", "traits": { - "smithy.api#documentation": "

The ARN of an Amazon Identity and Access Management (IAM) role that is able to write\n event data to an Amazon Firehose destination.

", + "smithy.api#documentation": "

The ARN of an Identity and Access Management role that is able to write\n event data to an Amazon Kinesis Data Firehose destination.

", "smithy.api#required": {} } }, @@ -5174,7 +5927,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains the delivery stream Amazon Resource Name (ARN), and the ARN of the Identity and Access Management (IAM) role associated with an Kinesis Data Firehose event\n destination.

\n

Event destinations, such as Kinesis Data Firehose, are associated with configuration\n sets, which enable you to publish message sending events.

" + "smithy.api#documentation": "

Contains the delivery stream Amazon Resource Name (ARN), and the ARN of the Identity and Access Management (IAM) role associated with a Kinesis Data Firehose event\n destination.

\n

Event destinations, such as Kinesis Data Firehose, are associated with configuration\n sets, which enable you to publish message sending events.

" } }, "com.amazonaws.pinpointsmsvoicev2#LanguageCode": { @@ -5533,6 +6286,38 @@ } } }, + "com.amazonaws.pinpointsmsvoicev2#MediaMessageOriginationIdentity": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[A-Za-z0-9_:/\\+-]+$" + } + }, + "com.amazonaws.pinpointsmsvoicev2#MediaUrlList": { + "type": "list", + "member": { + "target": "com.amazonaws.pinpointsmsvoicev2#MediaUrlValue" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, + "com.amazonaws.pinpointsmsvoicev2#MediaUrlValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^s3://([a-z0-9\\.-]{3,63})/(.+)$" + } + }, "com.amazonaws.pinpointsmsvoicev2#MessageType": { "type": "string", "traits": { @@ -5601,6 +6386,10 @@ { "value": "VOICE", "name": "VOICE" + }, + { + "value": "MMS", + "name": "MMS" } ] } @@ -5613,7 +6402,7 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 2 + "max": 3 } } }, @@ -6152,6 +6941,9 @@ { "target": "com.amazonaws.pinpointsmsvoicev2#AssociateOriginationIdentity" }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#AssociateProtectConfiguration" + }, { "target": "com.amazonaws.pinpointsmsvoicev2#CreateConfigurationSet" }, @@ -6164,6 +6956,9 @@ { "target": "com.amazonaws.pinpointsmsvoicev2#CreatePool" }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#CreateProtectConfiguration" + }, { "target": "com.amazonaws.pinpointsmsvoicev2#CreateRegistration" }, @@ -6179,6 +6974,9 @@ { "target": "com.amazonaws.pinpointsmsvoicev2#CreateVerifiedDestinationNumber" }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#DeleteAccountDefaultProtectConfiguration" + }, { "target": "com.amazonaws.pinpointsmsvoicev2#DeleteConfigurationSet" }, @@ -6194,6 +6992,9 @@ { "target": "com.amazonaws.pinpointsmsvoicev2#DeleteKeyword" }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#DeleteMediaMessageSpendLimitOverride" + }, { "target": "com.amazonaws.pinpointsmsvoicev2#DeleteOptedOutNumber" }, @@ -6203,6 +7004,9 @@ { "target": "com.amazonaws.pinpointsmsvoicev2#DeletePool" }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#DeleteProtectConfiguration" + }, { "target": "com.amazonaws.pinpointsmsvoicev2#DeleteRegistration" }, @@ -6245,6 +7049,9 @@ { "target": "com.amazonaws.pinpointsmsvoicev2#DescribePools" }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#DescribeProtectConfigurations" + }, { "target": "com.amazonaws.pinpointsmsvoicev2#DescribeRegistrationAttachments" }, @@ -6278,9 +7085,15 @@ { "target": "com.amazonaws.pinpointsmsvoicev2#DisassociateOriginationIdentity" }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#DisassociateProtectConfiguration" + }, { "target": "com.amazonaws.pinpointsmsvoicev2#DiscardRegistrationVersion" }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#GetProtectConfigurationCountryRuleSet" + }, { "target": "com.amazonaws.pinpointsmsvoicev2#ListPoolOriginationIdentities" }, @@ -6314,18 +7127,27 @@ { "target": "com.amazonaws.pinpointsmsvoicev2#SendDestinationNumberVerificationCode" }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#SendMediaMessage" + }, { "target": "com.amazonaws.pinpointsmsvoicev2#SendTextMessage" }, { "target": "com.amazonaws.pinpointsmsvoicev2#SendVoiceMessage" }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#SetAccountDefaultProtectConfiguration" + }, { "target": "com.amazonaws.pinpointsmsvoicev2#SetDefaultMessageType" }, { "target": "com.amazonaws.pinpointsmsvoicev2#SetDefaultSenderId" }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#SetMediaMessageSpendLimitOverride" + }, { "target": "com.amazonaws.pinpointsmsvoicev2#SetTextMessageSpendLimitOverride" }, @@ -6350,6 +7172,12 @@ { "target": "com.amazonaws.pinpointsmsvoicev2#UpdatePool" }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#UpdateProtectConfiguration" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#UpdateProtectConfigurationCountryRuleSet" + }, { "target": "com.amazonaws.pinpointsmsvoicev2#UpdateSenderId" }, @@ -6367,7 +7195,7 @@ "name": "sms-voice" }, "aws.protocols#awsJson1_0": {}, - "smithy.api#documentation": "

Welcome to the Amazon Pinpoint SMS and Voice, version 2 API Reference.\n This guide provides information about Amazon Pinpoint SMS and Voice, version 2 API\n resources, including supported HTTP methods, parameters, and schemas.

\n

Amazon Pinpoint is an Amazon Web Services service that you can use to engage with\n your recipients across multiple messaging channels. The Amazon Pinpoint SMS and\n Voice, version 2 API provides programmatic access to options that are unique to the SMS\n and voice channels and supplements the resources provided by the Amazon Pinpoint\n API.

\n

If you're new to Amazon Pinpoint, it's also helpful to review the \n Amazon Pinpoint Developer Guide. The Amazon Pinpoint\n Developer Guide provides tutorials, code samples, and procedures that\n demonstrate how to use Amazon Pinpoint features programmatically and how to integrate\n Amazon Pinpoint functionality into mobile apps and other types of applications.\n The guide also provides key information, such as Amazon Pinpoint integration with\n other Amazon Web Services services, and the quotas that apply to use of the\n service.

\n

\n Regional availability\n

\n

The Amazon Pinpoint SMS and Voice, version 2 API Reference is\n available in several Amazon Web Services Regions and it provides an endpoint for each of\n these Regions. For a list of all the Regions and endpoints where the API is currently\n available, see Amazon Web Services Service Endpoints and Amazon Pinpoint\n endpoints and quotas in the Amazon Web Services General Reference. To\n learn more about Amazon Web Services Regions, see Managing\n Amazon Web Services Regions in the Amazon Web Services General\n Reference.

\n

In each Region, Amazon Web Services maintains multiple Availability Zones. These\n Availability Zones are physically isolated from each other, but are united by private,\n low-latency, high-throughput, and highly redundant network connections. These\n Availability Zones enable us to provide very high levels of availability and redundancy,\n while also minimizing latency. To learn more about the number of Availability Zones that\n are available in each Region, see Amazon Web Services\n Global Infrastructure.\n

", + "smithy.api#documentation": "

Welcome to the Amazon Pinpoint SMS and Voice, version 2 API Reference.\n This guide provides information about Amazon Pinpoint SMS and Voice, version 2 API\n resources, including supported HTTP methods, parameters, and schemas.

\n

Amazon Pinpoint is an Amazon Web Services service that you can use to engage with\n your recipients across multiple messaging channels. The Amazon Pinpoint SMS and\n Voice, version 2 API provides programmatic access to options that are unique to the SMS\n and voice channels. Amazon Pinpoint SMS and Voice, version 2 resources such as phone numbers, sender IDs, and opt-out lists can be used by the Amazon Pinpoint API.

\n

If you're new to Amazon Pinpoint SMS, it's also helpful to review the \n Amazon Pinpoint SMS User Guide. The Amazon Pinpoint\n Developer Guide provides tutorials, code samples, and procedures that\n demonstrate how to use Amazon Pinpoint SMS features programmatically and how to integrate\n Amazon Pinpoint functionality into mobile apps and other types of applications.\n The guide also provides key information, such as Amazon Pinpoint integration with\n other Amazon Web Services services, and the quotas that apply to use of the\n service.

\n

\n Regional availability\n

\n

The Amazon Pinpoint SMS and Voice, version 2 API Reference is\n available in several Amazon Web Services Regions and it provides an endpoint for each of\n these Regions. For a list of all the Regions and endpoints where the API is currently\n available, see Amazon Web Services Service Endpoints and Amazon Pinpoint\n endpoints and quotas in the Amazon Web Services General Reference. To\n learn more about Amazon Web Services Regions, see Managing\n Amazon Web Services Regions in the Amazon Web Services General\n Reference.

\n

In each Region, Amazon Web Services maintains multiple Availability Zones. These\n Availability Zones are physically isolated from each other, but are united by private,\n low-latency, high-throughput, and highly redundant network connections. These\n Availability Zones enable us to provide very high levels of availability and redundancy,\n while also minimizing latency. To learn more about the number of Availability Zones that\n are available in each Region, see Amazon Web Services\n Global Infrastructure.\n

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -7394,6 +8222,197 @@ ] } }, + "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^arn:\\S+$" + } + }, + "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationCountryRuleSet": { + "type": "map", + "key": { + "target": "com.amazonaws.pinpointsmsvoicev2#IsoCountryCode" + }, + "value": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationCountryRuleSetInformation" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 300 + } + } + }, + "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationCountryRuleSetInformation": { + "type": "structure", + "members": { + "ProtectStatus": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectStatus", + "traits": { + "smithy.api#documentation": "

The types of protection that can be used.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The types of statuses that can be used.

" + } + }, + "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationFilter": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationFilterName", + "traits": { + "smithy.api#documentation": "

The name of the attribute to filter on.

", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.pinpointsmsvoicev2#FilterValueList", + "traits": { + "smithy.api#documentation": "

An array of values to filter for.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The filter definition for filtering protect configurations that meet a specified criteria.

" + } + }, + "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationFilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationFilter" + }, + "traits": { + "smithy.api#length": { + "max": 20 + } + } + }, + "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationFilterName": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "account-default", + "name": "ACCOUNT_DEFAULT" + }, + { + "value": "deletion-protection-enabled", + "name": "DELETION_PROTECTION_ENABLED" + } + ] + } + }, + "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[A-Za-z0-9_-]+$" + } + }, + "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationIdOrArn" + }, + "traits": { + "smithy.api#length": { + "max": 5 + } + } + }, + "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationIdOrArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[A-Za-z0-9_:/-]+$" + } + }, + "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationInformation": { + "type": "structure", + "members": { + "ProtectConfigurationArn": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationArn", + "traits": { + "smithy.api#documentation": "

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

", + "smithy.api#required": {} + } + }, + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

", + "smithy.api#required": {} + } + }, + "CreatedTimestamp": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the protect configuration was created, in UNIX epoch time format.

", + "smithy.api#required": {} + } + }, + "AccountDefault": { + "target": "smithy.api#PrimitiveBoolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

This is true if the protect configuration is set as your account default protect configuration.

", + "smithy.api#required": {} + } + }, + "DeletionProtectionEnabled": { + "target": "smithy.api#PrimitiveBoolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

The status of deletion protection for the protect configuration. When set to true deletion protection is enabled. By default this is set to false.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides information on the specified protect configuration.

" + } + }, + "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationInformationList": { + "type": "list", + "member": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationInformation" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.pinpointsmsvoicev2#ProtectStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ALLOW", + "name": "ALLOW" + }, + { + "value": "BLOCK", + "name": "BLOCK" + } + ] + } + }, "com.amazonaws.pinpointsmsvoicev2#PutKeyword": { "type": "operation", "input": { @@ -9516,6 +10535,10 @@ { "value": "verified-destination-number", "name": "VERIFIED_DESTINATION_NUMBER" + }, + { + "value": "protect-configuration", + "name": "PROTECT_CONFIGURATION" } ] } @@ -9725,6 +10748,126 @@ "smithy.api#output": {} } }, + "com.amazonaws.pinpointsmsvoicev2#SendMediaMessage": { + "type": "operation", + "input": { + "target": "com.amazonaws.pinpointsmsvoicev2#SendMediaMessageRequest" + }, + "output": { + "target": "com.amazonaws.pinpointsmsvoicev2#SendMediaMessageResult" + }, + "errors": [ + { + "target": "com.amazonaws.pinpointsmsvoicev2#AccessDeniedException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ConflictException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#InternalServerException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ThrottlingException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new multimedia message (MMS) and sends it to a recipient's phone number.

" + } + }, + "com.amazonaws.pinpointsmsvoicev2#SendMediaMessageRequest": { + "type": "structure", + "members": { + "DestinationPhoneNumber": { + "target": "com.amazonaws.pinpointsmsvoicev2#PhoneNumber", + "traits": { + "smithy.api#documentation": "

The destination phone number in E.164 format.

", + "smithy.api#required": {} + } + }, + "OriginationIdentity": { + "target": "com.amazonaws.pinpointsmsvoicev2#MediaMessageOriginationIdentity", + "traits": { + "smithy.api#documentation": "

The origination identity of the message. This can be either the PhoneNumber,\n PhoneNumberId, PhoneNumberArn, SenderId, SenderIdArn, PoolId, or PoolArn.

", + "smithy.api#required": {} + } + }, + "MessageBody": { + "target": "com.amazonaws.pinpointsmsvoicev2#TextMessageBody", + "traits": { + "smithy.api#documentation": "

The text body of the message.

" + } + }, + "MediaUrls": { + "target": "com.amazonaws.pinpointsmsvoicev2#MediaUrlList", + "traits": { + "smithy.api#documentation": "

An array of URLs to each media file to send.

\n

The media files have to be stored in a publicly available S3 bucket. Supported media file formats\n are listed in MMS file types, size and character limits. For more information on creating an S3 bucket and managing\n objects, see Creating a bucket and Uploading objects in the S3 user guide.

" + } + }, + "ConfigurationSetName": { + "target": "com.amazonaws.pinpointsmsvoicev2#ConfigurationSetNameOrArn", + "traits": { + "smithy.api#documentation": "

The name of the configuration set to use. This can be either the ConfigurationSetName\n or ConfigurationSetArn.

" + } + }, + "MaxPrice": { + "target": "com.amazonaws.pinpointsmsvoicev2#MaxPrice", + "traits": { + "smithy.api#documentation": "

The maximum amount that you want to spend, in US dollars, per each MMS message.

" + } + }, + "TimeToLive": { + "target": "com.amazonaws.pinpointsmsvoicev2#TimeToLive", + "traits": { + "smithy.api#documentation": "

How long the text message is valid for. By default this is 72 hours.

" + } + }, + "Context": { + "target": "com.amazonaws.pinpointsmsvoicev2#ContextMap", + "traits": { + "smithy.api#documentation": "

You can specify custom data in this field. If you do, that data is logged to the event\n destination.

" + } + }, + "DryRun": { + "target": "smithy.api#PrimitiveBoolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

When set to true, the message is checked and validated, but isn't sent to the end\n recipient.

" + } + }, + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationIdOrArn", + "traits": { + "smithy.api#documentation": "

The unique identifier of the protect configuration to use.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#SendMediaMessageResult": { + "type": "structure", + "members": { + "MessageId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The unique identifier for the message.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.pinpointsmsvoicev2#SendTextMessage": { "type": "operation", "input": { @@ -9830,6 +10973,12 @@ "smithy.api#default": false, "smithy.api#documentation": "

When set to true, the message is checked and validated, but isn't sent to the end\n recipient.

" } + }, + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationIdOrArn", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

" + } } }, "traits": { @@ -9950,6 +11099,12 @@ "smithy.api#default": false, "smithy.api#documentation": "

When set to true, the message is checked and validated, but isn't sent to the end\n recipient.

" } + }, + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationIdOrArn", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

" + } } }, "traits": { @@ -10200,6 +11355,10 @@ "value": "KEYWORDS_PER_POOL", "name": "KEYWORDS_PER_POOL" }, + { + "value": "MONTHLY_SPEND_LIMIT_REACHED_FOR_MEDIA", + "name": "MONTHLY_SPEND_LIMIT_REACHED_FOR_MEDIA" + }, { "value": "MONTHLY_SPEND_LIMIT_REACHED_FOR_TEXT", "name": "MONTHLY_SPEND_LIMIT_REACHED_FOR_TEXT" @@ -10259,10 +11418,80 @@ { "value": "VERIFICATION_ATTEMPTS_PER_DAY", "name": "VERIFICATION_ATTEMPTS_PER_DAY" + }, + { + "value": "PROTECT_CONFIGURATIONS_PER_ACCOUNT", + "name": "PROTECT_CONFIGURATIONS_PER_ACCOUNT" } ] } }, + "com.amazonaws.pinpointsmsvoicev2#SetAccountDefaultProtectConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.pinpointsmsvoicev2#SetAccountDefaultProtectConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.pinpointsmsvoicev2#SetAccountDefaultProtectConfigurationResult" + }, + "errors": [ + { + "target": "com.amazonaws.pinpointsmsvoicev2#AccessDeniedException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#InternalServerException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ThrottlingException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Set a protect configuration as your account default. You can only have one account\n default protect configuration at a time. The current account default protect configuration is replaced with the provided protect configuration.

" + } + }, + "com.amazonaws.pinpointsmsvoicev2#SetAccountDefaultProtectConfigurationRequest": { + "type": "structure", + "members": { + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationIdOrArn", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#SetAccountDefaultProtectConfigurationResult": { + "type": "structure", + "members": { + "DefaultProtectConfigurationArn": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the account default protect configuration.

", + "smithy.api#required": {} + } + }, + "DefaultProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the account default protect configuration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.pinpointsmsvoicev2#SetDefaultMessageType": { "type": "operation", "input": { @@ -10417,6 +11646,61 @@ "smithy.api#output": {} } }, + "com.amazonaws.pinpointsmsvoicev2#SetMediaMessageSpendLimitOverride": { + "type": "operation", + "input": { + "target": "com.amazonaws.pinpointsmsvoicev2#SetMediaMessageSpendLimitOverrideRequest" + }, + "output": { + "target": "com.amazonaws.pinpointsmsvoicev2#SetMediaMessageSpendLimitOverrideResult" + }, + "errors": [ + { + "target": "com.amazonaws.pinpointsmsvoicev2#AccessDeniedException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#InternalServerException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ThrottlingException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Sets an account level monthly spend limit override for sending MMS messages. The\n requested spend limit must be less than or equal to the MaxLimit, which is\n set by Amazon Web Services.

" + } + }, + "com.amazonaws.pinpointsmsvoicev2#SetMediaMessageSpendLimitOverrideRequest": { + "type": "structure", + "members": { + "MonthlyLimit": { + "target": "com.amazonaws.pinpointsmsvoicev2#MonthlyLimit", + "traits": { + "smithy.api#documentation": "

The new monthly limit to enforce on text messages.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#SetMediaMessageSpendLimitOverrideResult": { + "type": "structure", + "members": { + "MonthlyLimit": { + "target": "com.amazonaws.pinpointsmsvoicev2#MonthlyLimit", + "traits": { + "smithy.api#documentation": "

The current monthly limit to enforce on sending text messages.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.pinpointsmsvoicev2#SetTextMessageSpendLimitOverride": { "type": "operation", "input": { @@ -10608,6 +11892,10 @@ { "value": "VOICE_MESSAGE_MONTHLY_SPEND_LIMIT", "name": "VOICE_MESSAGE_MONTHLY_SPEND_LIMIT" + }, + { + "value": "MEDIA_MESSAGE_MONTHLY_SPEND_LIMIT", + "name": "MEDIA_MESSAGE_MONTHLY_SPEND_LIMIT" } ] } @@ -11512,6 +12800,195 @@ "smithy.api#output": {} } }, + "com.amazonaws.pinpointsmsvoicev2#UpdateProtectConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.pinpointsmsvoicev2#UpdateProtectConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.pinpointsmsvoicev2#UpdateProtectConfigurationResult" + }, + "errors": [ + { + "target": "com.amazonaws.pinpointsmsvoicev2#AccessDeniedException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#InternalServerException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ThrottlingException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Update the setting for an existing protect configuration.

" + } + }, + "com.amazonaws.pinpointsmsvoicev2#UpdateProtectConfigurationCountryRuleSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.pinpointsmsvoicev2#UpdateProtectConfigurationCountryRuleSetRequest" + }, + "output": { + "target": "com.amazonaws.pinpointsmsvoicev2#UpdateProtectConfigurationCountryRuleSetResult" + }, + "errors": [ + { + "target": "com.amazonaws.pinpointsmsvoicev2#AccessDeniedException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#InternalServerException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ThrottlingException" + }, + { + "target": "com.amazonaws.pinpointsmsvoicev2#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Update a country rule set to ALLOW or BLOCK messages to be sent to the specified destination counties. You can update one or multiple countries at a time. The updates are only applied to the specified NumberCapability type.

" + } + }, + "com.amazonaws.pinpointsmsvoicev2#UpdateProtectConfigurationCountryRuleSetRequest": { + "type": "structure", + "members": { + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationIdOrArn", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

", + "smithy.api#required": {} + } + }, + "NumberCapability": { + "target": "com.amazonaws.pinpointsmsvoicev2#NumberCapability", + "traits": { + "smithy.api#documentation": "

The number capability to apply the CountryRuleSetUpdates updates to.

", + "smithy.api#required": {} + } + }, + "CountryRuleSetUpdates": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationCountryRuleSet", + "traits": { + "smithy.api#documentation": "

A map of ProtectConfigurationCountryRuleSetInformation objects that contain the\n details for the requested NumberCapability. The Key is the two-letter ISO country code. For a list of supported ISO country codes, see Supported countries and regions (SMS channel) in the Amazon Pinpoint SMS user guide.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#UpdateProtectConfigurationCountryRuleSetResult": { + "type": "structure", + "members": { + "ProtectConfigurationArn": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationArn", + "traits": { + "smithy.api#documentation": "

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

", + "smithy.api#required": {} + } + }, + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

", + "smithy.api#required": {} + } + }, + "NumberCapability": { + "target": "com.amazonaws.pinpointsmsvoicev2#NumberCapability", + "traits": { + "smithy.api#documentation": "

The number capability that was updated

", + "smithy.api#required": {} + } + }, + "CountryRuleSet": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationCountryRuleSet", + "traits": { + "smithy.api#documentation": "

An array of ProtectConfigurationCountryRuleSetInformation containing the rules for the NumberCapability.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#UpdateProtectConfigurationRequest": { + "type": "structure", + "members": { + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationIdOrArn", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

", + "smithy.api#required": {} + } + }, + "DeletionProtectionEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

When set to true deletion protection is enabled. By default this is set to false.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.pinpointsmsvoicev2#UpdateProtectConfigurationResult": { + "type": "structure", + "members": { + "ProtectConfigurationArn": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationArn", + "traits": { + "smithy.api#documentation": "

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

", + "smithy.api#required": {} + } + }, + "ProtectConfigurationId": { + "target": "com.amazonaws.pinpointsmsvoicev2#ProtectConfigurationId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the protect configuration.

", + "smithy.api#required": {} + } + }, + "CreatedTimestamp": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the protect configuration was created, in UNIX epoch time format.

", + "smithy.api#required": {} + } + }, + "AccountDefault": { + "target": "smithy.api#PrimitiveBoolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

This is true if the protect configuration is set as your account default protect configuration.

", + "smithy.api#required": {} + } + }, + "DeletionProtectionEnabled": { + "target": "smithy.api#PrimitiveBoolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

The status of deletion protection for the protect configuration. When set to true deletion protection is enabled. By default this is set to false.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.pinpointsmsvoicev2#UpdateSenderId": { "type": "operation", "input": { @@ -11746,6 +13223,10 @@ "value": "MAXIMUM_SIZE_EXCEEDED", "name": "MAXIMUM_SIZE_EXCEEDED" }, + { + "value": "MEDIA_TYPE_NOT_SUPPORTED", + "name": "MEDIA_TYPE_NOT_SUPPORTED" + }, { "value": "MISSING_PARAMETER", "name": "MISSING_PARAMETER" diff --git a/models/pinpoint.json b/models/pinpoint.json index ba8881f5c4..bd176ea385 100644 --- a/models/pinpoint.json +++ b/models/pinpoint.json @@ -5906,6 +5906,12 @@ "traits": { "smithy.api#documentation": "

The ARN of the AWS Identity and Access Management (IAM) role that you want Amazon Pinpoint to use when it submits email-related event data for the channel.

" } + }, + "OrchestrationSendingRoleArn": { + "target": "com.amazonaws.pinpoint#__string", + "traits": { + "smithy.api#documentation": "

The ARN of an IAM role for Amazon Pinpoint to use to send email from your campaigns or journeys through Amazon SES.

" + } } }, "traits": { @@ -6001,6 +6007,12 @@ "smithy.api#documentation": "

The ARN of the AWS Identity and Access Management (IAM) role that Amazon Pinpoint uses to submit email-related event data for the channel.

" } }, + "OrchestrationSendingRoleArn": { + "target": "com.amazonaws.pinpoint#__string", + "traits": { + "smithy.api#documentation": "

The ARN of an IAM role for Amazon Pinpoint to use to send email from your campaigns or journeys through Amazon SES.

" + } + }, "Version": { "target": "com.amazonaws.pinpoint#__integer", "traits": { @@ -6469,7 +6481,7 @@ "target": "com.amazonaws.pinpoint#DeliveryStatus", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The delivery status of the message. Possible values are:

  • DUPLICATE - The endpoint address is a duplicate of another endpoint address. Amazon Pinpoint won't attempt to send the message again.

  • OPT_OUT - The user who's associated with the endpoint has opted out of receiving messages from you. Amazon Pinpoint won't attempt to send the message again.

  • PERMANENT_FAILURE - An error occurred when delivering the message to the endpoint. Amazon Pinpoint won't attempt to send the message again.

  • SUCCESSFUL - The message was successfully delivered to the endpoint.

  • TEMPORARY_FAILURE - A temporary error occurred. Amazon Pinpoint won't attempt to send the message again.

  • THROTTLED - Amazon Pinpoint throttled the operation to send the message to the endpoint.

  • TIMEOUT - The message couldn't be sent within the timeout period.

  • UNKNOWN_FAILURE - An unknown error occurred.

", + "smithy.api#documentation": "

The delivery status of the message. Possible values are:

  • DUPLICATE - The endpoint address is a duplicate of another endpoint address. Amazon Pinpoint won't attempt to send the message again.

  • OPT_OUT - The user who's associated with the endpoint has opted out of receiving messages from you. Amazon Pinpoint won't attempt to send the message again.

  • PERMANENT_FAILURE - An error occurred when delivering the message to the endpoint. Amazon Pinpoint won't attempt to send the message again.

  • SUCCESSFUL - The message was successfully delivered to the endpoint.

  • TEMPORARY_FAILURE - A temporary error occurred. Amazon Pinpoint won't attempt to send the message again.

  • THROTTLED - Amazon Pinpoint throttled the operation to send the message to the endpoint.

  • UNKNOWN_FAILURE - An unknown error occurred.

", "smithy.api#required": {} } }, @@ -14277,7 +14289,7 @@ "target": "com.amazonaws.pinpoint#DeliveryStatus", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The delivery status of the message. Possible values are:

  • DUPLICATE - The endpoint address is a duplicate of another endpoint address. Amazon Pinpoint won't attempt to send the message again.

  • OPT_OUT - The user who's associated with the endpoint address has opted out of receiving messages from you. Amazon Pinpoint won't attempt to send the message again.

  • PERMANENT_FAILURE - An error occurred when delivering the message to the endpoint address. Amazon Pinpoint won't attempt to send the message again.

  • SUCCESSFUL - The message was successfully delivered to the endpoint address.

  • TEMPORARY_FAILURE - A temporary error occurred. Amazon Pinpoint won't attempt to send the message again.

  • THROTTLED - Amazon Pinpoint throttled the operation to send the message to the endpoint address.

  • TIMEOUT - The message couldn't be sent within the timeout period.

  • UNKNOWN_FAILURE - An unknown error occurred.

", + "smithy.api#documentation": "

The delivery status of the message. Possible values are:

  • DUPLICATE - The endpoint address is a duplicate of another endpoint address. Amazon Pinpoint won't attempt to send the message again.

  • OPT_OUT - The user who's associated with the endpoint address has opted out of receiving messages from you. Amazon Pinpoint won't attempt to send the message again.

  • PERMANENT_FAILURE - An error occurred when delivering the message to the endpoint address. Amazon Pinpoint won't attempt to send the message again.

  • SUCCESSFUL - The message was successfully delivered to the endpoint address.

  • TEMPORARY_FAILURE - A temporary error occurred. Amazon Pinpoint won't attempt to send the message again.

  • THROTTLED - Amazon Pinpoint throttled the operation to send the message to the endpoint address.

  • UNKNOWN_FAILURE - An unknown error occurred.

", "smithy.api#required": {} } }, diff --git a/models/pipes.json b/models/pipes.json index 7badf2b3bd..3300c3d6e5 100644 --- a/models/pipes.json +++ b/models/pipes.json @@ -364,7 +364,7 @@ "min": 1, "max": 1600 }, - "smithy.api#pattern": "^(^arn:aws([a-z]|\\-)*:logs:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):log-group:.+)$" + "smithy.api#pattern": "^(^arn:aws([a-z]|\\-)*:logs:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):log-group:[\\.\\-_/#A-Za-z0-9]{1,512}(:\\*)?)$" } }, "com.amazonaws.pipes#CloudwatchLogsLogDestination": { @@ -1305,7 +1305,7 @@ "min": 1, "max": 1600 }, - "smithy.api#pattern": "^(^arn:aws([a-z]|\\-)*:firehose:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):deliverystream/.+)$" + "smithy.api#pattern": "^(^arn:aws([a-z]|\\-)*:firehose:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):deliverystream/[a-zA-Z0-9_.-]{1,64})$" } }, "com.amazonaws.pipes#FirehoseLogDestination": { diff --git a/models/qbusiness.json b/models/qbusiness.json index 6ab736fd5e..a633282693 100644 --- a/models/qbusiness.json +++ b/models/qbusiness.json @@ -1,6 +1,37 @@ { "smithy": "2.0", "shapes": { + "com.amazonaws.qbusiness#APISchema": { + "type": "union", + "members": { + "payload": { + "target": "com.amazonaws.qbusiness#Payload", + "traits": { + "smithy.api#documentation": "

The JSON or YAML-formatted payload defining the OpenAPI schema for a custom plugin.\n

" + } + }, + "s3": { + "target": "com.amazonaws.qbusiness#S3", + "traits": { + "smithy.api#documentation": "

Contains details about the S3 object containing the OpenAPI schema for a custom\n plugin. The schema could be in either JSON or YAML format.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the OpenAPI schema for a custom plugin. For more information,\n see custom plugin OpenAPI schemas. You can either include\n the schema directly in the payload field or you can upload it to an S3 bucket and\n specify the S3 bucket location in the s3 field.

" + } + }, + "com.amazonaws.qbusiness#APISchemaType": { + "type": "enum", + "members": { + "OPEN_API_V3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OPEN_API_V3" + } + } + } + }, "com.amazonaws.qbusiness#AccessConfiguration": { "type": "structure", "members": { @@ -78,7 +109,7 @@ "payload": { "target": "com.amazonaws.qbusiness#ActionExecutionPayload", "traits": { - "smithy.api#documentation": "

A mapping of field names to the field values in input that an end user provides to\n Amazon Q requests to perform their plugin action.

", + "smithy.api#documentation": "

A mapping of field names to the field values in input that an end user provides to\n Amazon Q Business requests to perform their plugin action.

", "smithy.api#required": {} } }, @@ -91,7 +122,36 @@ } }, "traits": { - "smithy.api#documentation": "

Performs an Amazon Q plugin action during a non-streaming chat\n conversation.

" + "smithy.api#documentation": "

Performs an Amazon Q Business plugin action during a non-streaming chat\n conversation.

" + } + }, + "com.amazonaws.qbusiness#ActionExecutionEvent": { + "type": "structure", + "members": { + "pluginId": { + "target": "com.amazonaws.qbusiness#PluginId", + "traits": { + "smithy.api#documentation": "

The identifier of the plugin for which the action is being requested.

", + "smithy.api#required": {} + } + }, + "payload": { + "target": "com.amazonaws.qbusiness#ActionExecutionPayload", + "traits": { + "smithy.api#documentation": "

A mapping of field names to the field values in input that an end user provides to\n Amazon Q Business requests to perform their plugin action.

", + "smithy.api#required": {} + } + }, + "payloadFieldNameSeparator": { + "target": "com.amazonaws.qbusiness#ActionPayloadFieldNameSeparator", + "traits": { + "smithy.api#documentation": "

A string used to retain information about the hierarchical contexts within a action\n execution event payload.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A request from an end user signalling an intent to perform an Amazon Q Business plugin\n action during a streaming chat.

" } }, "com.amazonaws.qbusiness#ActionExecutionPayload": { @@ -185,7 +245,7 @@ "payload": { "target": "com.amazonaws.qbusiness#ActionReviewPayload", "traits": { - "smithy.api#documentation": "

Field values that an end user needs to provide to Amazon Q for Amazon Q to\n perform the requested plugin action.

" + "smithy.api#documentation": "

Field values that an end user needs to provide to Amazon Q Business for Amazon Q Business to\n perform the requested plugin action.

" } }, "payloadFieldNameSeparator": { @@ -196,7 +256,57 @@ } }, "traits": { - "smithy.api#documentation": "

An output event that Amazon Q returns to an user who wants to perform a plugin\n action during a non-streaming chat conversation. It contains information about the\n selected action with a list of possible user input fields, some pre-populated by\n Amazon Q.

" + "smithy.api#documentation": "

An output event that Amazon Q Business returns to an user who wants to perform a plugin\n action during a non-streaming chat conversation. It contains information about the\n selected action with a list of possible user input fields, some pre-populated by\n Amazon Q Business.

" + } + }, + "com.amazonaws.qbusiness#ActionReviewEvent": { + "type": "structure", + "members": { + "conversationId": { + "target": "com.amazonaws.qbusiness#ConversationId", + "traits": { + "smithy.api#documentation": "

The identifier of the conversation with which the action review event is\n associated.

" + } + }, + "userMessageId": { + "target": "com.amazonaws.qbusiness#MessageId", + "traits": { + "smithy.api#documentation": "

The identifier of the conversation with which the plugin action is associated.

" + } + }, + "systemMessageId": { + "target": "com.amazonaws.qbusiness#MessageId", + "traits": { + "smithy.api#documentation": "

The identifier of an Amazon Q Business AI generated associated with the action review\n event.

" + } + }, + "pluginId": { + "target": "com.amazonaws.qbusiness#PluginId", + "traits": { + "smithy.api#documentation": "

The identifier of the plugin associated with the action review event.

" + } + }, + "pluginType": { + "target": "com.amazonaws.qbusiness#PluginType", + "traits": { + "smithy.api#documentation": "

The type of plugin.

" + } + }, + "payload": { + "target": "com.amazonaws.qbusiness#ActionReviewPayload", + "traits": { + "smithy.api#documentation": "

Field values that an end user needs to provide to Amazon Q Business for Amazon Q Business to\n perform the requested plugin action.

" + } + }, + "payloadFieldNameSeparator": { + "target": "com.amazonaws.qbusiness#ActionPayloadFieldNameSeparator", + "traits": { + "smithy.api#documentation": "

A string used to retain information about the hierarchical contexts within an action\n review event payload.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An output event that Amazon Q Business returns to an user who wants to perform a plugin\n action during a streaming chat conversation. It contains information about the selected\n action with a list of possible user input fields, some pre-populated by Amazon Q Business.\n

" } }, "com.amazonaws.qbusiness#ActionReviewPayload": { @@ -223,6 +333,12 @@ "smithy.api#documentation": "

The display order of fields in a payload.

" } }, + "displayDescription": { + "target": "com.amazonaws.qbusiness#String", + "traits": { + "smithy.api#documentation": "

The field level description of each action review input field. This could be an\n explanation of the field. In the Amazon Q Business web experience, these descriptions could\n be used to display as tool tips to help users understand the field.

" + } + }, "type": { "target": "com.amazonaws.qbusiness#ActionPayloadFieldType", "traits": { @@ -238,7 +354,13 @@ "allowedValues": { "target": "com.amazonaws.qbusiness#ActionReviewPayloadFieldAllowedValues", "traits": { - "smithy.api#documentation": "

Information about the field values that an end user can use to provide to\n Amazon Q for Amazon Q to perform the requested plugin action.

" + "smithy.api#documentation": "

Information about the field values that an end user can use to provide to\n Amazon Q Business for Amazon Q Business to perform the requested plugin action.

" + } + }, + "allowedFormat": { + "target": "com.amazonaws.qbusiness#String", + "traits": { + "smithy.api#documentation": "

The expected data format for the action review input field value. For example, in PTO\n request, from and to would be of datetime allowed\n format.

" } }, "required": { @@ -269,7 +391,7 @@ } }, "traits": { - "smithy.api#documentation": "

Information about the field values that an end user can use to provide to\n Amazon Q for Amazon Q to perform the requested plugin action.

" + "smithy.api#documentation": "

Information about the field values that an end user can use to provide to\n Amazon Q Business for Amazon Q Business to perform the requested plugin action.

" } }, "com.amazonaws.qbusiness#ActionReviewPayloadFieldAllowedValues": { @@ -293,36 +415,36 @@ "displayName": { "target": "com.amazonaws.qbusiness#ApplicationName", "traits": { - "smithy.api#documentation": "

The name of the Amazon Q application.

" + "smithy.api#documentation": "

The name of the Amazon Q Business application.

" } }, "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier for the Amazon Q application.

" + "smithy.api#documentation": "

The identifier for the Amazon Q Business application.

" } }, "createdAt": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp when the Amazon Q application was created.

" + "smithy.api#documentation": "

The Unix timestamp when the Amazon Q Business application was created.

" } }, "updatedAt": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp when the Amazon Q application was last updated.

" + "smithy.api#documentation": "

The Unix timestamp when the Amazon Q Business application was last updated.

" } }, "status": { "target": "com.amazonaws.qbusiness#ApplicationStatus", "traits": { - "smithy.api#documentation": "

The status of the Amazon Q application. The application is ready to use when the\n status is ACTIVE.

" + "smithy.api#documentation": "

The status of the Amazon Q Business application. The application is ready to use when the\n status is ACTIVE.

" } } }, "traits": { - "smithy.api#documentation": "

Summary information for an Amazon Q application.

" + "smithy.api#documentation": "

Summary information for an Amazon Q Business application.

" } }, "com.amazonaws.qbusiness#ApplicationArn": { @@ -452,6 +574,21 @@ "smithy.api#documentation": "

Configuration information about the file upload during chat feature for your\n application.

" } }, + "com.amazonaws.qbusiness#AppliedCreatorModeConfiguration": { + "type": "structure", + "members": { + "creatorModeControl": { + "target": "com.amazonaws.qbusiness#CreatorModeControl", + "traits": { + "smithy.api#documentation": "

Information about whether creator mode is enabled or disabled for an Amazon Q Business\n application.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The creator mode specific admin controls configured for an Amazon Q Business application.\n Determines whether an end user can generate LLM-only responses when they use the web\n experience.

\n

For more information, see Admin controls and guardrails and Conversation settings.

" + } + }, "com.amazonaws.qbusiness#AttachmentInput": { "type": "structure", "members": { @@ -474,6 +611,17 @@ "smithy.api#documentation": "

A file directly uploaded into a web experience chat.

" } }, + "com.amazonaws.qbusiness#AttachmentInputEvent": { + "type": "structure", + "members": { + "attachment": { + "target": "com.amazonaws.qbusiness#AttachmentInput" + } + }, + "traits": { + "smithy.api#documentation": "

A file input event activated by a end user request to upload files into their web\n experience chat.

" + } + }, "com.amazonaws.qbusiness#AttachmentName": { "type": "string", "traits": { @@ -600,43 +748,43 @@ "equalsTo": { "target": "com.amazonaws.qbusiness#DocumentAttribute", "traits": { - "smithy.api#documentation": "

Performs an equals operation on two document attributes or metadata fields.

" + "smithy.api#documentation": "

Performs an equals operation on two document attributes or metadata fields. Supported\n for the following document attribute value types: dateValue,\n longValue, stringListValue and\n stringValue.

" } }, "containsAll": { "target": "com.amazonaws.qbusiness#DocumentAttribute", "traits": { - "smithy.api#documentation": "

Returns true when a document contains all the specified document\n attributes or metadata fields.

" + "smithy.api#documentation": "

Returns true when a document contains all the specified document\n attributes or metadata fields. Supported for the following document attribute value types:\n stringListValue.

" } }, "containsAny": { "target": "com.amazonaws.qbusiness#DocumentAttribute", "traits": { - "smithy.api#documentation": "

Returns true when a document contains any of the specified document\n attributes or metadata fields.

" + "smithy.api#documentation": "

Returns true when a document contains any of the specified document\n attributes or metadata fields. Supported for the following document attribute value types: dateValue,\n longValue, stringListValue and\n stringValue.

" } }, "greaterThan": { "target": "com.amazonaws.qbusiness#DocumentAttribute", "traits": { - "smithy.api#documentation": "

Performs a greater than operation on two document attributes or metadata fields. Use\n with a document attribute of type Date or Long.

" + "smithy.api#documentation": "

Performs a greater than operation on two document attributes or metadata fields.\n Supported for the following document attribute value types: dateValue\n and longValue.

" } }, "greaterThanOrEquals": { "target": "com.amazonaws.qbusiness#DocumentAttribute", "traits": { - "smithy.api#documentation": "

Performs a greater or equals than operation on two document attributes or metadata\n fields. Use with a document attribute of type Date or Long.\n

" + "smithy.api#documentation": "

Performs a greater or equals than operation on two document attributes or metadata\n fields. Supported for the following document attribute value types: dateValue\n and longValue.

" } }, "lessThan": { "target": "com.amazonaws.qbusiness#DocumentAttribute", "traits": { - "smithy.api#documentation": "

Performs a less than operation on two document attributes or metadata fields. Use with\n a document attribute of type Date or Long.

" + "smithy.api#documentation": "

Performs a less than operation on two document attributes or metadata fields.\n Supported for the following document attribute value types: dateValue\n and longValue.

" } }, "lessThanOrEquals": { "target": "com.amazonaws.qbusiness#DocumentAttribute", "traits": { - "smithy.api#documentation": "

Performs a less than or equals operation on two document attributes or metadata\n fields. Use with a document attribute of type Date or Long.\n

" + "smithy.api#documentation": "

Performs a less than or equals operation on two document attributes or metadata\n fields.Supported for the following document attribute value type: dateValue\n and longValue.

" } } }, @@ -690,6 +838,93 @@ } } }, + "com.amazonaws.qbusiness#AuthChallengeRequest": { + "type": "structure", + "members": { + "authorizationUrl": { + "target": "com.amazonaws.qbusiness#Url", + "traits": { + "smithy.api#documentation": "

The URL sent by Amazon Q Business to the third party authentication server to authenticate\n a custom plugin user through an OAuth protocol.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A request made by Amazon Q Business to a third paty authentication server to authenticate\n a custom plugin user.

" + } + }, + "com.amazonaws.qbusiness#AuthChallengeRequestEvent": { + "type": "structure", + "members": { + "authorizationUrl": { + "target": "com.amazonaws.qbusiness#Url", + "traits": { + "smithy.api#documentation": "

The URL sent by Amazon Q Business to a third party authentication server in response to an\n authentication verification event activated by an end user request to use a custom\n plugin.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An authentication verification event activated by an end user request to use a custom\n plugin.

" + } + }, + "com.amazonaws.qbusiness#AuthChallengeResponse": { + "type": "structure", + "members": { + "responseMap": { + "target": "com.amazonaws.qbusiness#AuthorizationResponseMap", + "traits": { + "smithy.api#documentation": "

The mapping of key-value pairs in an authentication challenge response.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details of the authentication information received from a third party\n authentication server in response to an authentication challenge.

" + } + }, + "com.amazonaws.qbusiness#AuthChallengeResponseEvent": { + "type": "structure", + "members": { + "responseMap": { + "target": "com.amazonaws.qbusiness#AuthorizationResponseMap", + "traits": { + "smithy.api#documentation": "

The mapping of key-value pairs in an authentication challenge response.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An authentication verification event response by a third party authentication server\n to Amazon Q Business.

" + } + }, + "com.amazonaws.qbusiness#AuthResponseKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.qbusiness#AuthResponseValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "com.amazonaws.qbusiness#AuthorizationResponseMap": { + "type": "map", + "key": { + "target": "com.amazonaws.qbusiness#AuthResponseKey" + }, + "value": { + "target": "com.amazonaws.qbusiness#AuthResponseValue" + } + }, "com.amazonaws.qbusiness#BasicAuthConfiguration": { "type": "structure", "members": { @@ -703,7 +938,7 @@ "roleArn": { "target": "com.amazonaws.qbusiness#RoleArn", "traits": { - "smithy.api#documentation": "

The ARN of an IAM role used by Amazon Q to access the basic\n authentication credentials stored in a Secrets Manager secret.

", + "smithy.api#documentation": "

The ARN of an IAM role used by Amazon Q Business to access the basic\n authentication credentials stored in a Secrets Manager secret.

", "smithy.api#required": {} } } @@ -741,7 +976,7 @@ } ], "traits": { - "smithy.api#documentation": "

Asynchronously deletes one or more documents added using the\n BatchPutDocument API from an Amazon Q index.

\n

You can see the progress of the deletion, and any error messages related to the\n process, by using CloudWatch.

", + "smithy.api#documentation": "

Asynchronously deletes one or more documents added using the\n BatchPutDocument API from an Amazon Q Business index.

\n

You can see the progress of the deletion, and any error messages related to the\n process, by using CloudWatch.

", "smithy.api#http": { "method": "POST", "uri": "/applications/{applicationId}/indices/{indexId}/documents/delete" @@ -754,7 +989,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -762,7 +997,7 @@ "indexId": { "target": "com.amazonaws.qbusiness#IndexId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q index that contains the documents to\n delete.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business index that contains the documents to\n delete.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -770,7 +1005,7 @@ "documents": { "target": "com.amazonaws.qbusiness#DeleteDocuments", "traits": { - "smithy.api#documentation": "

Documents deleted from the Amazon Q index.

", + "smithy.api#documentation": "

Documents deleted from the Amazon Q Business index.

", "smithy.api#required": {} } }, @@ -791,7 +1026,7 @@ "failedDocuments": { "target": "com.amazonaws.qbusiness#FailedDocuments", "traits": { - "smithy.api#documentation": "

A list of documents that couldn't be removed from the Amazon Q index. Each entry\n contains an error message that indicates why the document couldn't be removed from the\n index.

" + "smithy.api#documentation": "

A list of documents that couldn't be removed from the Amazon Q Business index. Each entry\n contains an error message that indicates why the document couldn't be removed from the\n index.

" } } }, @@ -831,7 +1066,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds one or more documents to an Amazon Q index.

\n

You use this API to:

\n
    \n
  • \n

    ingest your structured and unstructured documents and documents stored in an\n Amazon S3 bucket into an Amazon Q index.

    \n
  • \n
  • \n

    add custom attributes to documents in an Amazon Q index.

    \n
  • \n
  • \n

    attach an access control list to the documents added to an Amazon Q\n index.

    \n
  • \n
\n

You can see the progress of the deletion, and any error messages related to the\n process, by using CloudWatch.

", + "smithy.api#documentation": "

Adds one or more documents to an Amazon Q Business index.

\n

You use this API to:

\n
    \n
  • \n

    ingest your structured and unstructured documents and documents stored in an\n Amazon S3 bucket into an Amazon Q Business index.

    \n
  • \n
  • \n

    add custom attributes to documents in an Amazon Q Business index.

    \n
  • \n
  • \n

    attach an access control list to the documents added to an Amazon Q Business\n index.

    \n
  • \n
\n

You can see the progress of the deletion, and any error messages related to the\n process, by using CloudWatch.

", "smithy.api#http": { "method": "POST", "uri": "/applications/{applicationId}/indices/{indexId}/documents" @@ -844,7 +1079,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -852,7 +1087,7 @@ "indexId": { "target": "com.amazonaws.qbusiness#IndexId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q index to add the documents to.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business index to add the documents to.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -887,7 +1122,7 @@ "failedDocuments": { "target": "com.amazonaws.qbusiness#FailedDocuments", "traits": { - "smithy.api#documentation": "

A list of documents that were not added to the Amazon Q index because the\n document failed a validation check. Each document contains an error message that\n indicates why the document couldn't be added to the index.

" + "smithy.api#documentation": "

A list of documents that were not added to the Amazon Q Business index because the\n document failed a validation check. Each document contains an error message that\n indicates why the document couldn't be added to the index.

" } } }, @@ -924,7 +1159,7 @@ "blockedPhrases": { "target": "com.amazonaws.qbusiness#BlockedPhrases", "traits": { - "smithy.api#documentation": "

A list of phrases blocked from a Amazon Q web experience chat.

" + "smithy.api#documentation": "

A list of phrases blocked from a Amazon Q Business web experience chat.

" } }, "systemMessageOverride": { @@ -944,13 +1179,13 @@ "blockedPhrasesToCreateOrUpdate": { "target": "com.amazonaws.qbusiness#BlockedPhrases", "traits": { - "smithy.api#documentation": "

Creates or updates a blocked phrases configuration in your Amazon Q\n application.

" + "smithy.api#documentation": "

Creates or updates a blocked phrases configuration in your Amazon Q Business\n application.

" } }, "blockedPhrasesToDelete": { "target": "com.amazonaws.qbusiness#BlockedPhrases", "traits": { - "smithy.api#documentation": "

Deletes a blocked phrases configuration in your Amazon Q application.

" + "smithy.api#documentation": "

Deletes a blocked phrases configuration in your Amazon Q Business application.

" } }, "systemMessageOverride": { @@ -961,7 +1196,7 @@ } }, "traits": { - "smithy.api#documentation": "

Updates a blocked phrases configuration in your Amazon Q application.

" + "smithy.api#documentation": "

Updates a blocked phrases configuration in your Amazon Q Business application.

" } }, "com.amazonaws.qbusiness#BoostingDurationInSeconds": { @@ -973,6 +1208,240 @@ } } }, + "com.amazonaws.qbusiness#Chat": { + "type": "operation", + "input": { + "target": "com.amazonaws.qbusiness#ChatInput" + }, + "output": { + "target": "com.amazonaws.qbusiness#ChatOutput" + }, + "errors": [ + { + "target": "com.amazonaws.qbusiness#AccessDeniedException" + }, + { + "target": "com.amazonaws.qbusiness#ConflictException" + }, + { + "target": "com.amazonaws.qbusiness#InternalServerException" + }, + { + "target": "com.amazonaws.qbusiness#LicenseNotFoundException" + }, + { + "target": "com.amazonaws.qbusiness#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.qbusiness#ThrottlingException" + }, + { + "target": "com.amazonaws.qbusiness#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Starts or continues a streaming Amazon Q Business conversation.

", + "smithy.api#http": { + "uri": "/applications/{applicationId}/conversations", + "method": "POST" + } + } + }, + "com.amazonaws.qbusiness#ChatInput": { + "type": "structure", + "members": { + "applicationId": { + "target": "com.amazonaws.qbusiness#ApplicationId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Q Business application linked to a streaming Amazon Q Business\n conversation.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "userId": { + "target": "com.amazonaws.qbusiness#UserId", + "traits": { + "smithy.api#documentation": "

The identifier of the user attached to the chat input.

", + "smithy.api#httpQuery": "userId" + } + }, + "userGroups": { + "target": "com.amazonaws.qbusiness#UserGroups", + "traits": { + "smithy.api#documentation": "

The groups that a user associated with the chat input belongs to.

", + "smithy.api#httpQuery": "userGroups" + } + }, + "conversationId": { + "target": "com.amazonaws.qbusiness#ConversationId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Q Business conversation.

", + "smithy.api#httpQuery": "conversationId" + } + }, + "parentMessageId": { + "target": "com.amazonaws.qbusiness#MessageId", + "traits": { + "smithy.api#documentation": "

The identifier used to associate a user message with a AI generated response.

", + "smithy.api#httpQuery": "parentMessageId" + } + }, + "clientToken": { + "target": "com.amazonaws.qbusiness#ClientToken", + "traits": { + "smithy.api#documentation": "

A token that you provide to identify the chat input.

", + "smithy.api#httpQuery": "clientToken", + "smithy.api#idempotencyToken": {} + } + }, + "inputStream": { + "target": "com.amazonaws.qbusiness#ChatInputStream", + "traits": { + "smithy.api#documentation": "

The streaming input for the Chat API.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.qbusiness#ChatInputStream": { + "type": "union", + "members": { + "configurationEvent": { + "target": "com.amazonaws.qbusiness#ConfigurationEvent", + "traits": { + "smithy.api#documentation": "

A configuration event activated by an end user request to select a specific chat\n mode.

" + } + }, + "textEvent": { + "target": "com.amazonaws.qbusiness#TextInputEvent", + "traits": { + "smithy.api#documentation": "

Information about the payload of the ChatInputStream event containing the\n end user message input.

" + } + }, + "attachmentEvent": { + "target": "com.amazonaws.qbusiness#AttachmentInputEvent", + "traits": { + "smithy.api#documentation": "

A request by an end user to upload a file during chat.

" + } + }, + "actionExecutionEvent": { + "target": "com.amazonaws.qbusiness#ActionExecutionEvent", + "traits": { + "smithy.api#documentation": "

A request from an end user to perform an Amazon Q Business plugin action.

" + } + }, + "endOfInputEvent": { + "target": "com.amazonaws.qbusiness#EndOfInputEvent", + "traits": { + "smithy.api#documentation": "

The end of the streaming input for the Chat API.

" + } + }, + "authChallengeResponseEvent": { + "target": "com.amazonaws.qbusiness#AuthChallengeResponseEvent", + "traits": { + "smithy.api#documentation": "

An authentication verification event response by a third party authentication server\n to Amazon Q Business.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The streaming input for the Chat API.

", + "smithy.api#streaming": {} + } + }, + "com.amazonaws.qbusiness#ChatMode": { + "type": "enum", + "members": { + "RETRIEVAL_MODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RETRIEVAL_MODE" + } + }, + "CREATOR_MODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATOR_MODE" + } + }, + "PLUGIN_MODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PLUGIN_MODE" + } + } + } + }, + "com.amazonaws.qbusiness#ChatModeConfiguration": { + "type": "union", + "members": { + "pluginConfiguration": { + "target": "com.amazonaws.qbusiness#PluginConfiguration", + "traits": { + "smithy.api#documentation": "

Configuration information required to invoke chat in PLUGIN_MODE.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Configuration information for Amazon Q Business conversation modes.

\n

For more information, see Admin controls and guardrails and Conversation settings.

" + } + }, + "com.amazonaws.qbusiness#ChatOutput": { + "type": "structure", + "members": { + "outputStream": { + "target": "com.amazonaws.qbusiness#ChatOutputStream", + "traits": { + "smithy.api#documentation": "

The streaming output for the Chat API.

", + "smithy.api#httpPayload": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.qbusiness#ChatOutputStream": { + "type": "union", + "members": { + "textEvent": { + "target": "com.amazonaws.qbusiness#TextOutputEvent", + "traits": { + "smithy.api#documentation": "

Information about the payload of the ChatOutputStream event containing\n the AI-generated message output.

" + } + }, + "metadataEvent": { + "target": "com.amazonaws.qbusiness#MetadataEvent", + "traits": { + "smithy.api#documentation": "

A metadata event for a AI-generated text output message in a Amazon Q Business\n conversation.

" + } + }, + "actionReviewEvent": { + "target": "com.amazonaws.qbusiness#ActionReviewEvent", + "traits": { + "smithy.api#documentation": "

A request from Amazon Q Business to the end user for information Amazon Q Business needs to\n successfully complete a requested plugin action.

" + } + }, + "failedAttachmentEvent": { + "target": "com.amazonaws.qbusiness#FailedAttachmentEvent", + "traits": { + "smithy.api#documentation": "

A failed file upload event during a web experience chat.

" + } + }, + "authChallengeRequestEvent": { + "target": "com.amazonaws.qbusiness#AuthChallengeRequestEvent", + "traits": { + "smithy.api#documentation": "

An authentication verification event activated by an end user request to use a custom\n plugin.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The streaming output for the Chat API.

", + "smithy.api#streaming": {} + } + }, "com.amazonaws.qbusiness#ChatSync": { "type": "operation", "input": { @@ -1005,7 +1474,7 @@ } ], "traits": { - "smithy.api#documentation": "

Starts or continues a non-streaming Amazon Q conversation.

", + "smithy.api#documentation": "

Starts or continues a non-streaming Amazon Q Business conversation.

", "smithy.api#http": { "uri": "/applications/{applicationId}/conversations?sync", "method": "POST" @@ -1018,7 +1487,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application linked to the Amazon Q\n conversation.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application linked to the Amazon Q Business\n conversation.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1027,8 +1496,7 @@ "target": "com.amazonaws.qbusiness#UserId", "traits": { "smithy.api#documentation": "

The identifier of the user attached to the chat input.

", - "smithy.api#httpQuery": "userId", - "smithy.api#required": {} + "smithy.api#httpQuery": "userId" } }, "userGroups": { @@ -1053,13 +1521,19 @@ "actionExecution": { "target": "com.amazonaws.qbusiness#ActionExecution", "traits": { - "smithy.api#documentation": "

A request from an end user to perform an Amazon Q plugin action.

" + "smithy.api#documentation": "

A request from an end user to perform an Amazon Q Business plugin action.

" + } + }, + "authChallengeResponse": { + "target": "com.amazonaws.qbusiness#AuthChallengeResponse", + "traits": { + "smithy.api#documentation": "

An authentication verification event response by a third party authentication server\n to Amazon Q Business.

" } }, "conversationId": { "target": "com.amazonaws.qbusiness#ConversationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q conversation.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business conversation.

" } }, "parentMessageId": { @@ -1071,7 +1545,19 @@ "attributeFilter": { "target": "com.amazonaws.qbusiness#AttributeFilter", "traits": { - "smithy.api#documentation": "

Enables filtering of Amazon Q web experience responses based on document\n attributes or metadata fields.

" + "smithy.api#documentation": "

Enables filtering of Amazon Q Business web experience responses based on document\n attributes or metadata fields.

" + } + }, + "chatMode": { + "target": "com.amazonaws.qbusiness#ChatMode", + "traits": { + "smithy.api#documentation": "

The chat modes available to an Amazon Q Business end user.

\n
    \n
  • \n

    \n RETRIEVAL_MODE - The default chat mode for an\n Amazon Q Business application. When this mode is enabled, Amazon Q Business generates\n responses only from data sources connected to an Amazon Q Business\n application.

    \n
  • \n
  • \n

    \n CREATOR_MODE - By selecting this mode, users can choose to\n generate responses only from the LLM knowledge, without consulting connected\n data sources, for a chat request.

    \n
  • \n
  • \n

    \n PLUGIN_MODE - By selecting this mode, users can choose to\n use plugins in chat.

    \n
  • \n
\n

For more information, see Admin controls and guardrails, Plugins,\n and Conversation settings.

" + } + }, + "chatModeConfiguration": { + "target": "com.amazonaws.qbusiness#ChatModeConfiguration", + "traits": { + "smithy.api#documentation": "

The chat mode configuration for an Amazon Q Business application.

" } }, "clientToken": { @@ -1092,7 +1578,7 @@ "conversationId": { "target": "com.amazonaws.qbusiness#ConversationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q conversation.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business conversation.

" } }, "systemMessage": { @@ -1104,19 +1590,25 @@ "systemMessageId": { "target": "com.amazonaws.qbusiness#MessageId", "traits": { - "smithy.api#documentation": "

The identifier of an Amazon Q AI generated message within the\n conversation.

" + "smithy.api#documentation": "

The identifier of an Amazon Q Business AI generated message within the\n conversation.

" } }, "userMessageId": { "target": "com.amazonaws.qbusiness#MessageId", "traits": { - "smithy.api#documentation": "

The identifier of an Amazon Q end user text input message within the\n conversation.

" + "smithy.api#documentation": "

The identifier of an Amazon Q Business end user text input message within the\n conversation.

" } }, "actionReview": { "target": "com.amazonaws.qbusiness#ActionReview", "traits": { - "smithy.api#documentation": "

A request from Amazon Q to the end user for information Amazon Q needs to\n successfully complete a requested plugin action.

" + "smithy.api#documentation": "

A request from Amazon Q Business to the end user for information Amazon Q Business needs to\n successfully complete a requested plugin action.

" + } + }, + "authChallengeRequest": { + "target": "com.amazonaws.qbusiness#AuthChallengeRequest", + "traits": { + "smithy.api#documentation": "

An authentication verification event activated by an end user request to use a custom\n plugin.

" } }, "sourceAttributions": { @@ -1145,6 +1637,26 @@ } } }, + "com.amazonaws.qbusiness#ConfigurationEvent": { + "type": "structure", + "members": { + "chatMode": { + "target": "com.amazonaws.qbusiness#ChatMode", + "traits": { + "smithy.api#documentation": "

The chat modes available to an Amazon Q Business end user.

\n
    \n
  • \n

    \n RETRIEVAL_MODE - The default chat mode for an\n Amazon Q Business application. When this mode is enabled, Amazon Q Business generates\n responses only from data sources connected to an Amazon Q Business\n application.

    \n
  • \n
  • \n

    \n CREATOR_MODE - By selecting this mode, users can choose to\n generate responses only from the LLM knowledge, without consulting connected\n data sources, for a chat request.

    \n
  • \n
  • \n

    \n PLUGIN_MODE - By selecting this mode, users can choose to\n use plugins in chat.

    \n
  • \n
\n

For more information, see Admin controls and guardrails, Plugins,\n and Conversation settings.

" + } + }, + "chatModeConfiguration": { + "target": "com.amazonaws.qbusiness#ChatModeConfiguration" + }, + "attributeFilter": { + "target": "com.amazonaws.qbusiness#AttributeFilter" + } + }, + "traits": { + "smithy.api#documentation": "

A configuration event activated by an end user request to select a specific chat\n mode.

" + } + }, "com.amazonaws.qbusiness#ConflictException": { "type": "structure", "members": { @@ -1187,7 +1699,7 @@ } }, "traits": { - "smithy.api#documentation": "

A rule for configuring how Amazon Q responds when it encounters a a blocked\n topic. You can configure a custom message to inform your end users that they have asked\n about a restricted topic and suggest any next steps they should take.

" + "smithy.api#documentation": "

A rule for configuring how Amazon Q Business responds when it encounters a a blocked\n topic. You can configure a custom message to inform your end users that they have asked\n about a restricted topic and suggest any next steps they should take.

" } }, "com.amazonaws.qbusiness#ContentRetrievalRule": { @@ -1196,12 +1708,12 @@ "eligibleDataSources": { "target": "com.amazonaws.qbusiness#EligibleDataSources", "traits": { - "smithy.api#documentation": "

Specifies data sources in a Amazon Q application to use for content\n generation.

" + "smithy.api#documentation": "

Specifies data sources in a Amazon Q Business application to use for content\n generation.

" } } }, "traits": { - "smithy.api#documentation": "

Rules for retrieving content from data sources connected to a Amazon Q\n application for a specific topic control configuration.

" + "smithy.api#documentation": "

Rules for retrieving content from data sources connected to a Amazon Q Business\n application for a specific topic control configuration.

" } }, "com.amazonaws.qbusiness#ContentType": { @@ -1287,7 +1799,7 @@ "conversationId": { "target": "com.amazonaws.qbusiness#ConversationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q conversation.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business conversation.

" } }, "title": { @@ -1304,7 +1816,7 @@ } }, "traits": { - "smithy.api#documentation": "

A conversation in an Amazon Q application.

" + "smithy.api#documentation": "

A conversation in an Amazon Q Business application.

" } }, "com.amazonaws.qbusiness#ConversationId": { @@ -1366,7 +1878,7 @@ "kms:DescribeKey", "kms:CreateGrant" ], - "smithy.api#documentation": "

Creates an Amazon Q application.

", + "smithy.api#documentation": "

Creates an Amazon Q Business application.

\n \n

There are new tiers for Amazon Q Business. Not all features in Amazon Q Business Pro are \n also available in Amazon Q Business Lite. For information on what's included in \n Amazon Q Business Lite and what's included in \n Amazon Q Business Pro, see Amazon Q Business tiers. \n You must use the Amazon Q Business console to assign subscription tiers to users.

\n
", "smithy.api#http": { "uri": "/applications", "method": "POST" @@ -1380,40 +1892,45 @@ "displayName": { "target": "com.amazonaws.qbusiness#ApplicationName", "traits": { - "smithy.api#documentation": "

A name for the Amazon Q application.

", + "smithy.api#documentation": "

A name for the Amazon Q Business application.

", "smithy.api#required": {} } }, "roleArn": { "target": "com.amazonaws.qbusiness#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role with permissions to access your Amazon\n CloudWatch logs and metrics.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role with permissions to access your Amazon\n CloudWatch logs and metrics.

" + } + }, + "identityCenterInstanceArn": { + "target": "com.amazonaws.qbusiness#InstanceArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM Identity Center instance you are either\n creating for—or connecting to—your Amazon Q Business application.

" } }, "description": { "target": "com.amazonaws.qbusiness#Description", "traits": { - "smithy.api#documentation": "

A description for the Amazon Q application.

" + "smithy.api#documentation": "

A description for the Amazon Q Business application.

" } }, "encryptionConfiguration": { "target": "com.amazonaws.qbusiness#EncryptionConfiguration", "traits": { - "smithy.api#documentation": "

The identifier of the KMS key that is used to encrypt your data.\n Amazon Q doesn't support asymmetric keys.

" + "smithy.api#documentation": "

The identifier of the KMS key that is used to encrypt your data.\n Amazon Q Business doesn't support asymmetric keys.

" } }, "tags": { "target": "com.amazonaws.qbusiness#Tags", "traits": { "aws.cloudformation#cfnMutability": "full", - "smithy.api#documentation": "

A list of key-value pairs that identify or categorize your Amazon Q application.\n You can also use tags to help control access to the application. Tag keys and values can\n consist of Unicode letters, digits, white space, and any of the following symbols: _ . :\n / = + - @.

" + "smithy.api#documentation": "

A list of key-value pairs that identify or categorize your Amazon Q Business application.\n You can also use tags to help control access to the application. Tag keys and values can\n consist of Unicode letters, digits, white space, and any of the following symbols: _ . :\n / = + - @.

" } }, "clientToken": { "target": "com.amazonaws.qbusiness#ClientToken", "traits": { - "smithy.api#documentation": "

A token that you provide to identify the request to create your Amazon Q\n application.

", + "smithy.api#documentation": "

A token that you provide to identify the request to create your Amazon Q Business\n application.

", "smithy.api#idempotencyToken": {} } }, @@ -1435,13 +1952,13 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business application.

" } }, "applicationArn": { "target": "com.amazonaws.qbusiness#ApplicationArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q application.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q Business application.

" } } }, @@ -1487,7 +2004,7 @@ "qbusiness:ListTagsForResource", "iam:PassRole" ], - "smithy.api#documentation": "

Creates a data source connector for an Amazon Q application.

\n

\n CreateDataSource is a synchronous operation. The operation returns 200 if\n the data source was successfully created. Otherwise, an exception is raised.

", + "smithy.api#documentation": "

Creates a data source connector for an Amazon Q Business application.

\n

\n CreateDataSource is a synchronous operation. The operation returns 200 if\n the data source was successfully created. Otherwise, an exception is raised.

", "smithy.api#http": { "uri": "/applications/{applicationId}/indices/{indexId}/datasources", "method": "POST" @@ -1501,7 +2018,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application the data source will be attached\n to.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application the data source will be attached\n to.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1525,14 +2042,14 @@ "configuration": { "target": "com.amazonaws.qbusiness#DataSourceConfiguration", "traits": { - "smithy.api#documentation": "

Configuration information to connect to your data source repository. For configuration\n templates for your specific data source, see Supported\n connectors.

", + "smithy.api#documentation": "

Configuration information to connect to your data source repository. For configuration\n templates for your specific data source, see Supported\n connectors.

", "smithy.api#required": {} } }, "vpcConfiguration": { "target": "com.amazonaws.qbusiness#DataSourceVpcConfiguration", "traits": { - "smithy.api#documentation": "

Configuration information for an Amazon VPC (Virtual Private Cloud) to connect\n to your data source. For more information, see Using\n Amazon VPC with Amazon Q connectors.

" + "smithy.api#documentation": "

Configuration information for an Amazon VPC (Virtual Private Cloud) to connect\n to your data source. For more information, see Using\n Amazon VPC with Amazon Q Business connectors.

" } }, "description": { @@ -1551,7 +2068,7 @@ "syncSchedule": { "target": "com.amazonaws.qbusiness#SyncSchedule", "traits": { - "smithy.api#documentation": "

Sets the frequency for Amazon Q to check the documents in your data source\n repository and update your index. If you don't set a schedule, Amazon Q won't\n periodically update the index.

\n

Specify a cron- format schedule string or an empty string to indicate\n that the index is updated on demand. You can't specify the Schedule\n parameter when the Type parameter is set to CUSTOM. If you do,\n you receive a ValidationException exception.

" + "smithy.api#documentation": "

Sets the frequency for Amazon Q Business to check the documents in your data source\n repository and update your index. If you don't set a schedule, Amazon Q Business won't\n periodically update the index.

\n

Specify a cron- format schedule string or an empty string to indicate\n that the index is updated on demand. You can't specify the Schedule\n parameter when the Type parameter is set to CUSTOM. If you do,\n you receive a ValidationException exception.

" } }, "roleArn": { @@ -1587,7 +2104,7 @@ "dataSourceArn": { "target": "com.amazonaws.qbusiness#DataSourceArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a data source in an Amazon Q application.\n

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a data source in an Amazon Q Business application.\n

" } } }, @@ -1632,7 +2149,7 @@ "qbusiness:TagResource", "qbusiness:ListTagsForResource" ], - "smithy.api#documentation": "

Creates an Amazon Q index.

\n

To determine if index creation has completed, check the Status field\n returned from a call to DescribeIndex. The Status field is set\n to ACTIVE when the index is ready to use.

\n

Once the index is active, you can index your documents using the \n BatchPutDocument\n API or the \n CreateDataSource\n API.

", + "smithy.api#documentation": "

Creates an Amazon Q Business index.

\n

To determine if index creation has completed, check the Status field\n returned from a call to DescribeIndex. The Status field is set\n to ACTIVE when the index is ready to use.

\n

Once the index is active, you can index your documents using the \n BatchPutDocument\n API or the \n CreateDataSource\n API.

", "smithy.api#http": { "uri": "/applications/{applicationId}/indices", "method": "POST" @@ -1645,7 +2162,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application using the index.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application using the index.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1654,14 +2171,20 @@ "target": "com.amazonaws.qbusiness#IndexName", "traits": { "aws.cloudformation#cfnMutability": "full", - "smithy.api#documentation": "

A name for the Amazon Q index.

", + "smithy.api#documentation": "

A name for the Amazon Q Business index.

", "smithy.api#required": {} } }, + "type": { + "target": "com.amazonaws.qbusiness#IndexType", + "traits": { + "smithy.api#documentation": "

The index type that's suitable for your needs. For more information on what's included\n in each type of index or index tier, see Amazon Q Business\n tiers.

" + } + }, "description": { "target": "com.amazonaws.qbusiness#Description", "traits": { - "smithy.api#documentation": "

A description for the Amazon Q index.

" + "smithy.api#documentation": "

A description for the Amazon Q Business index.

" } }, "tags": { @@ -1695,13 +2218,13 @@ "indexId": { "target": "com.amazonaws.qbusiness#IndexId", "traits": { - "smithy.api#documentation": "

The identifier for the Amazon Q index.

" + "smithy.api#documentation": "

The identifier for the Amazon Q Business index.

" } }, "indexArn": { "target": "com.amazonaws.qbusiness#IndexArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Amazon Q index.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Amazon Q Business index.

" } } }, @@ -1741,13 +2264,17 @@ } ], "traits": { + "aws.iam#conditionKeys": [ + "aws:RequestTag/${TagKey}", + "aws:TagKeys" + ], "aws.iam#requiredActions": [ "qbusiness:GetPlugin", "qbusiness:TagResource", "qbusiness:ListTagsForResource", "iam:PassRole" ], - "smithy.api#documentation": "

Creates an Amazon Q plugin.

", + "smithy.api#documentation": "

Creates an Amazon Q Business plugin.

", "smithy.api#http": { "method": "POST", "uri": "/applications/{applicationId}/plugins" @@ -1780,17 +2307,22 @@ "smithy.api#required": {} } }, + "authConfiguration": { + "target": "com.amazonaws.qbusiness#PluginAuthConfiguration", + "traits": { + "smithy.api#required": {} + } + }, "serverUrl": { "target": "com.amazonaws.qbusiness#Url", "traits": { - "smithy.api#documentation": "

The source URL used for plugin configuration.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The source URL used for plugin configuration.

" } }, - "authConfiguration": { - "target": "com.amazonaws.qbusiness#PluginAuthConfiguration", + "customPluginConfiguration": { + "target": "com.amazonaws.qbusiness#CustomPluginConfiguration", "traits": { - "smithy.api#required": {} + "smithy.api#documentation": "

Contains configuration for a custom plugin.

" } }, "tags": { @@ -1803,7 +2335,7 @@ "clientToken": { "target": "com.amazonaws.qbusiness#ClientToken", "traits": { - "smithy.api#documentation": "

A token that you provide to identify the request to create your Amazon Q\n plugin.

", + "smithy.api#documentation": "

A token that you provide to identify the request to create your Amazon Q Business\n plugin.

", "smithy.api#idempotencyToken": {} } } @@ -1826,6 +2358,12 @@ "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a plugin.

" } + }, + "buildStatus": { + "target": "com.amazonaws.qbusiness#PluginBuildStatus", + "traits": { + "smithy.api#documentation": "

The current status of a plugin. A plugin is modified asynchronously.

" + } } }, "traits": { @@ -1870,7 +2408,7 @@ "qbusiness:GetRetriever", "iam:PassRole" ], - "smithy.api#documentation": "

Adds a retriever to your Amazon Q application.

", + "smithy.api#documentation": "

Adds a retriever to your Amazon Q Business application.

", "smithy.api#http": { "method": "POST", "uri": "/applications/{applicationId}/retrievers" @@ -1883,7 +2421,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of your Amazon Q application.

", + "smithy.api#documentation": "

The identifier of your Amazon Q Business application.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1912,13 +2450,13 @@ "roleArn": { "target": "com.amazonaws.qbusiness#RoleArn", "traits": { - "smithy.api#documentation": "

The ARN of an IAM role used by Amazon Q to access the basic\n authentication credentials stored in a Secrets Manager secret.

" + "smithy.api#documentation": "

The ARN of an IAM role used by Amazon Q Business to access the basic\n authentication credentials stored in a Secrets Manager secret.

" } }, "clientToken": { "target": "com.amazonaws.qbusiness#ClientToken", "traits": { - "smithy.api#documentation": "

A token that you provide to identify the request to create your Amazon Q\n application retriever.

", + "smithy.api#documentation": "

A token that you provide to identify the request to create your Amazon Q Business\n application retriever.

", "smithy.api#idempotencyToken": {} } }, @@ -2025,7 +2563,7 @@ "clientToken": { "target": "com.amazonaws.qbusiness#ClientToken", "traits": { - "smithy.api#documentation": "

A token that you provide to identify the request to create your Amazon Q user\n mapping.

", + "smithy.api#documentation": "

A token that you provide to identify the request to create your Amazon Q Business user\n mapping.

", "smithy.api#idempotencyToken": {} } } @@ -2079,7 +2617,7 @@ "qbusiness:ListTagsForResource", "iam:PassRole" ], - "smithy.api#documentation": "

Creates an Amazon Q web experience.

", + "smithy.api#documentation": "

Creates an Amazon Q Business web experience.

", "smithy.api#http": { "uri": "/applications/{applicationId}/experiences", "method": "POST" @@ -2092,7 +2630,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q web experience.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business web experience.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2100,19 +2638,19 @@ "title": { "target": "com.amazonaws.qbusiness#WebExperienceTitle", "traits": { - "smithy.api#documentation": "

The title for your Amazon Q web experience.

" + "smithy.api#documentation": "

The title for your Amazon Q Business web experience.

" } }, "subtitle": { "target": "com.amazonaws.qbusiness#WebExperienceSubtitle", "traits": { - "smithy.api#documentation": "

A subtitle to personalize your Amazon Q web experience.

" + "smithy.api#documentation": "

A subtitle to personalize your Amazon Q Business web experience.

" } }, "welcomeMessage": { "target": "com.amazonaws.qbusiness#WebExperienceWelcomeMessage", "traits": { - "smithy.api#documentation": "

The customized welcome message for end users of an Amazon Q web\n experience.

" + "smithy.api#documentation": "

The customized welcome message for end users of an Amazon Q Business web\n experience.

" } }, "samplePromptsControlMode": { @@ -2121,17 +2659,23 @@ "smithy.api#documentation": "

Determines whether sample prompts are enabled in the web experience for an end\n user.

" } }, + "roleArn": { + "target": "com.amazonaws.qbusiness#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the service role attached to your web\n experience.

" + } + }, "tags": { "target": "com.amazonaws.qbusiness#Tags", "traits": { "aws.cloudformation#cfnMutability": "full", - "smithy.api#documentation": "

A list of key-value pairs that identify or categorize your Amazon Q web\n experience. You can also use tags to help control access to the web experience. Tag keys\n and values can consist of Unicode letters, digits, white space, and any of the following\n symbols: _ . : / = + - @.

" + "smithy.api#documentation": "

A list of key-value pairs that identify or categorize your Amazon Q Business web\n experience. You can also use tags to help control access to the web experience. Tag keys\n and values can consist of Unicode letters, digits, white space, and any of the following\n symbols: _ . : / = + - @.

" } }, "clientToken": { "target": "com.amazonaws.qbusiness#ClientToken", "traits": { - "smithy.api#documentation": "

A token you provide to identify a request to create an Amazon Q web experience.\n

", + "smithy.api#documentation": "

A token you provide to identify a request to create an Amazon Q Business web experience.\n

", "smithy.api#idempotencyToken": {} } } @@ -2146,13 +2690,13 @@ "webExperienceId": { "target": "com.amazonaws.qbusiness#WebExperienceId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q web experience.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business web experience.

" } }, "webExperienceArn": { "target": "com.amazonaws.qbusiness#WebExperienceArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Amazon Q web experience.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an Amazon Q Business web experience.

" } } }, @@ -2160,48 +2704,109 @@ "smithy.api#output": {} } }, + "com.amazonaws.qbusiness#CreatorModeConfiguration": { + "type": "structure", + "members": { + "creatorModeControl": { + "target": "com.amazonaws.qbusiness#CreatorModeControl", + "traits": { + "smithy.api#documentation": "

Status information about whether CREATOR_MODE has been enabled or\n disabled. The default status is DISABLED.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Configuration information required to invoke chat in CREATOR_MODE.

\n

For more information, see Admin controls and guardrails and Conversation settings.

" + } + }, + "com.amazonaws.qbusiness#CreatorModeControl": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.qbusiness#CustomPluginConfiguration": { + "type": "structure", + "members": { + "description": { + "target": "com.amazonaws.qbusiness#PluginDescription", + "traits": { + "smithy.api#documentation": "

A description for your custom plugin configuration.

", + "smithy.api#required": {} + } + }, + "apiSchemaType": { + "target": "com.amazonaws.qbusiness#APISchemaType", + "traits": { + "smithy.api#documentation": "

The type of OpenAPI schema to use.

", + "smithy.api#required": {} + } + }, + "apiSchema": { + "target": "com.amazonaws.qbusiness#APISchema", + "traits": { + "smithy.api#documentation": "

Contains either details about the S3 object containing the OpenAPI schema for the\n action group or the JSON or YAML-formatted payload defining the schema.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Configuration information required to create a custom plugin.

" + } + }, "com.amazonaws.qbusiness#DataSource": { "type": "structure", "members": { "displayName": { "target": "com.amazonaws.qbusiness#DataSourceName", "traits": { - "smithy.api#documentation": "

The name of the Amazon Q data source.

" + "smithy.api#documentation": "

The name of the Amazon Q Business data source.

" } }, "dataSourceId": { "target": "com.amazonaws.qbusiness#DataSourceId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q data source.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business data source.

" } }, "type": { "target": "com.amazonaws.qbusiness#String", "traits": { - "smithy.api#documentation": "

The type of the Amazon Q data source.

" + "smithy.api#documentation": "

The type of the Amazon Q Business data source.

" } }, "createdAt": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp when the Amazon Q data source was created.

" + "smithy.api#documentation": "

The Unix timestamp when the Amazon Q Business data source was created.

" } }, "updatedAt": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp when the Amazon Q data source was last updated.

" + "smithy.api#documentation": "

The Unix timestamp when the Amazon Q Business data source was last updated.

" } }, "status": { "target": "com.amazonaws.qbusiness#DataSourceStatus", "traits": { - "smithy.api#documentation": "

The status of the Amazon Q data source.

" + "smithy.api#documentation": "

The status of the Amazon Q Business data source.

" } } }, "traits": { - "smithy.api#documentation": "

A data source in an Amazon Q application.

" + "smithy.api#documentation": "

A data source in an Amazon Q Business application.

" } }, "com.amazonaws.qbusiness#DataSourceArn": { @@ -2217,7 +2822,7 @@ "com.amazonaws.qbusiness#DataSourceConfiguration": { "type": "document", "traits": { - "smithy.api#documentation": "

Provides the configuration information for an Amazon Q data source.

" + "smithy.api#documentation": "

Provides the configuration information for an Amazon Q Business data source.

" } }, "com.amazonaws.qbusiness#DataSourceId": { @@ -2374,7 +2979,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides information about an Amazon Q data source connector synchronization\n job.

" + "smithy.api#documentation": "

Provides information about an Amazon Q Business data source connector synchronization\n job.

" } }, "com.amazonaws.qbusiness#DataSourceSyncJobMetrics": { @@ -2412,7 +3017,7 @@ } }, "traits": { - "smithy.api#documentation": "

Maps a batch delete document request to a specific Amazon Q data source connector\n sync job.

" + "smithy.api#documentation": "

Maps a batch delete document request to a specific Amazon Q Business data source connector\n sync job.

" } }, "com.amazonaws.qbusiness#DataSourceSyncJobStatus": { @@ -2491,7 +3096,7 @@ "securityGroupIds": { "target": "com.amazonaws.qbusiness#SecurityGroupIds", "traits": { - "smithy.api#documentation": "

A list of identifiers of security groups within your Amazon VPC. The security\n groups should enable Amazon Q to connect to the data source.

", + "smithy.api#documentation": "

A list of identifiers of security groups within your Amazon VPC. The security\n groups should enable Amazon Q Business to connect to the data source.

", "smithy.api#required": {} } } @@ -2524,7 +3129,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides information on boosting DATE type document attributes.

\n

For more information on how boosting document attributes work in Amazon Q, see\n Boosting using document attributes.

" + "smithy.api#documentation": "

Provides information on boosting DATE type document attributes.

\n

For more information on how boosting document attributes work in Amazon Q Business, see\n Boosting using document attributes.

" } }, "com.amazonaws.qbusiness#DeleteApplication": { @@ -2560,7 +3165,7 @@ "qbusiness:GetApplication", "kms:RetireGrant" ], - "smithy.api#documentation": "

Deletes an Amazon Q application.

", + "smithy.api#documentation": "

Deletes an Amazon Q Business application.

", "smithy.api#http": { "uri": "/applications/{applicationId}", "method": "DELETE" @@ -2574,7 +3179,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2617,7 +3222,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes chat controls configured for an existing Amazon Q application.

", + "smithy.api#documentation": "

Deletes chat controls configured for an existing Amazon Q Business application.

", "smithy.api#http": { "uri": "/applications/{applicationId}/chatcontrols", "method": "DELETE", @@ -2678,7 +3283,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes an Amazon Q web experience conversation.

", + "smithy.api#documentation": "

Deletes an Amazon Q Business web experience conversation.

", "smithy.api#http": { "uri": "/applications/{applicationId}/conversations/{conversationId}", "method": "DELETE" @@ -2692,7 +3297,7 @@ "conversationId": { "target": "com.amazonaws.qbusiness#ConversationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q web experience conversation being deleted.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business web experience conversation being deleted.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2700,7 +3305,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application associated with the\n conversation.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application associated with the\n conversation.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2709,8 +3314,7 @@ "target": "com.amazonaws.qbusiness#UserId", "traits": { "smithy.api#documentation": "

The identifier of the user who is deleting the conversation.

", - "smithy.api#httpQuery": "userId", - "smithy.api#required": {} + "smithy.api#httpQuery": "userId" } } }, @@ -2757,7 +3361,7 @@ "aws.iam#requiredActions": [ "qbusiness:GetDataSource" ], - "smithy.api#documentation": "

Deletes an Amazon Q data source connector. While the data source is being\n deleted, the Status field returned by a call to the\n DescribeDataSource API is set to DELETING.

", + "smithy.api#documentation": "

Deletes an Amazon Q Business data source connector. While the data source is being\n deleted, the Status field returned by a call to the\n DescribeDataSource API is set to DELETING.

", "smithy.api#http": { "uri": "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}", "method": "DELETE" @@ -2771,7 +3375,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application used with the data source\n connector.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application used with the data source\n connector.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2816,7 +3420,7 @@ } }, "traits": { - "smithy.api#documentation": "

A document deleted from an Amazon Q data source connector.

" + "smithy.api#documentation": "

A document deleted from an Amazon Q Business data source connector.

" } }, "com.amazonaws.qbusiness#DeleteDocuments": { @@ -2940,7 +3544,7 @@ "aws.iam#requiredActions": [ "qbusiness:GetIndex" ], - "smithy.api#documentation": "

Deletes an Amazon Q index.

", + "smithy.api#documentation": "

Deletes an Amazon Q Business index.

", "smithy.api#http": { "uri": "/applications/{applicationId}/indices/{indexId}", "method": "DELETE" @@ -2954,7 +3558,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application the Amazon Q index is linked\n to.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application the Amazon Q Business index is linked\n to.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2962,7 +3566,7 @@ "indexId": { "target": "com.amazonaws.qbusiness#IndexId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q index.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business index.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3011,7 +3615,7 @@ "aws.iam#requiredActions": [ "qbusiness:GetPlugin" ], - "smithy.api#documentation": "

Deletes an Amazon Q plugin.

", + "smithy.api#documentation": "

Deletes an Amazon Q Business plugin.

", "smithy.api#http": { "method": "DELETE", "uri": "/applications/{applicationId}/plugins/{pluginId}" @@ -3025,7 +3629,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier the application attached to the Amazon Q plugin.

", + "smithy.api#documentation": "

The identifier the application attached to the Amazon Q Business plugin.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3082,7 +3686,7 @@ "aws.iam#requiredActions": [ "qbusiness:GetRetriever" ], - "smithy.api#documentation": "

Deletes the retriever used by an Amazon Q application.

", + "smithy.api#documentation": "

Deletes the retriever used by an Amazon Q Business application.

", "smithy.api#http": { "method": "DELETE", "uri": "/applications/{applicationId}/retrievers/{retrieverId}" @@ -3096,7 +3700,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application using the retriever.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application using the retriever.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3221,7 +3825,7 @@ "aws.iam#requiredActions": [ "qbusiness:GetWebExperience" ], - "smithy.api#documentation": "

Deletes an Amazon Q web experience.

", + "smithy.api#documentation": "

Deletes an Amazon Q Business web experience.

", "smithy.api#http": { "uri": "/applications/{applicationId}/experiences/{webExperienceId}", "method": "DELETE" @@ -3235,7 +3839,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application linked to the Amazon Q web\n experience.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application linked to the Amazon Q Business web\n experience.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3243,7 +3847,7 @@ "webExperienceId": { "target": "com.amazonaws.qbusiness#WebExperienceId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q web experience being deleted.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business web experience being deleted.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3283,7 +3887,7 @@ "attributes": { "target": "com.amazonaws.qbusiness#DocumentAttributes", "traits": { - "smithy.api#documentation": "

Custom attributes to apply to the document for refining Amazon Q web experience\n responses.

" + "smithy.api#documentation": "

Custom attributes to apply to the document for refining Amazon Q Business web experience\n responses.

" } }, "content": { @@ -3318,7 +3922,7 @@ } }, "traits": { - "smithy.api#documentation": "

A document in an Amazon Q application.

" + "smithy.api#documentation": "

A document in an Amazon Q Business application.

" } }, "com.amazonaws.qbusiness#DocumentAttribute": { @@ -3372,7 +3976,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides information on boosting supported Amazon Q document attribute types.\n When an end user chat query matches document attributes that have been boosted,\n Amazon Q prioritizes generating responses from content that matches the boosted\n document attributes.

\n \n

For STRING and STRING_LIST type document attributes to\n be used for boosting on the console and the API, they must be enabled for search\n using the DocumentAttributeConfiguration object of the UpdateIndex API. If you haven't enabled searching on these attributes,\n you can't boost attributes of these data types on either the console or the\n API.

\n
\n

For more information on how boosting document attributes work in Amazon Q, see\n Boosting using document attributes.

" + "smithy.api#documentation": "

Provides information on boosting supported Amazon Q Business document attribute types.\n When an end user chat query matches document attributes that have been boosted,\n Amazon Q Business prioritizes generating responses from content that matches the boosted\n document attributes.

\n \n

For STRING and STRING_LIST type document attributes to\n be used for boosting on the console and the API, they must be enabled for search\n using the DocumentAttributeConfiguration object of the UpdateIndex API. If you haven't enabled searching on these attributes,\n you can't boost attributes of these data types on either the console or the\n API.

\n
\n

For more information on how boosting document attributes work in Amazon Q Business, see\n Boosting using document attributes.

" } }, "com.amazonaws.qbusiness#DocumentAttributeBoostingLevel": { @@ -3430,14 +4034,14 @@ "key": { "target": "com.amazonaws.qbusiness#DocumentAttributeKey", "traits": { - "smithy.api#documentation": "

The identifier of the document attribute used for the condition.

\n

For example, 'Source_URI' could be an identifier for the attribute or metadata field\n that contains source URIs associated with the documents.

\n

Amazon Q currently doesn't support _document_body as an attribute\n key used for the condition.

", + "smithy.api#documentation": "

The identifier of the document attribute used for the condition.

\n

For example, 'Source_URI' could be an identifier for the attribute or metadata field\n that contains source URIs associated with the documents.

\n

Amazon Q Business currently doesn't support _document_body as an attribute\n key used for the condition.

", "smithy.api#required": {} } }, "operator": { "target": "com.amazonaws.qbusiness#DocumentEnrichmentConditionOperator", "traits": { - "smithy.api#documentation": "

The identifier of the document attribute used for the condition.

\n

For example, 'Source_URI' could be an identifier for the attribute or metadata field\n that contains source URIs associated with the documents.

\n

Amazon Kendra currently does not support _document_body as an\n attribute key used for the condition.

", + "smithy.api#documentation": "

The identifier of the document attribute used for the condition.

\n

For example, 'Source_URI' could be an identifier for the attribute or metadata field\n that contains source URIs associated with the documents.

\n

Amazon Q Business currently does not support _document_body as an attribute\n key used for the condition.

", "smithy.api#required": {} } }, @@ -3446,14 +4050,14 @@ } }, "traits": { - "smithy.api#documentation": "

The condition used for the target document attribute or metadata field when ingesting\n documents into Amazon Q. You use this with \n DocumentAttributeTarget\n to apply the condition.

\n

For example, you can create the 'Department' target field and have it prefill\n department names associated with the documents based on information in the 'Source_URI'\n field. Set the condition that if the 'Source_URI' field contains 'financial' in its URI\n value, then prefill the target field 'Department' with the target value 'Finance' for\n the document.

\n

Amazon Q can't create a target field if it has not already been created as an\n index field. After you create your index field, you can create a document metadata field\n using DocumentAttributeTarget. Amazon Q then will map your newly\n created metadata field to your index field.

" + "smithy.api#documentation": "

The condition used for the target document attribute or metadata field when ingesting\n documents into Amazon Q Business. You use this with \n DocumentAttributeTarget\n to apply the condition.

\n

For example, you can create the 'Department' target field and have it prefill\n department names associated with the documents based on information in the 'Source_URI'\n field. Set the condition that if the 'Source_URI' field contains 'financial' in its URI\n value, then prefill the target field 'Department' with the target value 'Finance' for\n the document.

\n

Amazon Q Business can't create a target field if it has not already been created as an\n index field. After you create your index field, you can create a document metadata field\n using DocumentAttributeTarget. Amazon Q Business then will map your newly\n created metadata field to your index field.

" } }, "com.amazonaws.qbusiness#DocumentAttributeConfiguration": { "type": "structure", "members": { "name": { - "target": "com.amazonaws.qbusiness#String", + "target": "com.amazonaws.qbusiness#DocumentMetadataConfigurationName", "traits": { "smithy.api#documentation": "

The name of the document attribute.

" } @@ -3532,7 +4136,7 @@ } }, "traits": { - "smithy.api#documentation": "

The target document attribute or metadata field you want to alter when ingesting\n documents into Amazon Q.

\n

For example, you can delete all customer identification numbers associated with the\n documents, stored in the document metadata field called 'Customer_ID' by setting the\n target key as 'Customer_ID' and the deletion flag to TRUE. This removes all\n customer ID values in the field 'Customer_ID'. This would scrub personally identifiable\n information from each document's metadata.

\n

Amazon Q can't create a target field if it has not already been created as an\n index field. After you create your index field, you can create a document metadata field\n using \n DocumentAttributeTarget\n . Amazon Q\n will then map your newly created document attribute to your index field.

\n

You can also use this with \n DocumentAttributeCondition\n .

" + "smithy.api#documentation": "

The target document attribute or metadata field you want to alter when ingesting\n documents into Amazon Q Business.

\n

For example, you can delete all customer identification numbers associated with the\n documents, stored in the document metadata field called 'Customer_ID' by setting the\n target key as 'Customer_ID' and the deletion flag to TRUE. This removes all\n customer ID values in the field 'Customer_ID'. This would scrub personally identifiable\n information from each document's metadata.

\n

Amazon Q Business can't create a target field if it has not already been created as an\n index field. After you create your index field, you can create a document metadata field\n using \n DocumentAttributeTarget\n . Amazon Q Business\n will then map your newly created document attribute to your index field.

\n

You can also use this with \n DocumentAttributeCondition\n .

" } }, "com.amazonaws.qbusiness#DocumentAttributeValue": { @@ -3588,7 +4192,7 @@ "blob": { "target": "smithy.api#Blob", "traits": { - "smithy.api#documentation": "

The contents of the document. Documents passed to the blob parameter must\n be base64 encoded. Your code might not need to encode the document file bytes if you're\n using an Amazon Web Services SDK to call Amazon Q APIs. If you are calling the\n Amazon Q endpoint directly using REST, you must base64 encode the contents before\n sending.

" + "smithy.api#documentation": "

The contents of the document. Documents passed to the blob parameter must\n be base64 encoded. Your code might not need to encode the document file bytes if you're\n using an Amazon Web Services SDK to call Amazon Q Business APIs. If you are calling the\n Amazon Q Business endpoint directly using REST, you must base64 encode the contents before\n sending.

" } }, "s3": { @@ -3654,7 +4258,7 @@ } }, "traits": { - "smithy.api#documentation": "

The details of a document within an Amazon Q index.

" + "smithy.api#documentation": "

The details of a document within an Amazon Q Business index.

" } }, "com.amazonaws.qbusiness#DocumentEnrichmentConditionOperator": { @@ -3734,7 +4338,7 @@ "inlineConfigurations": { "target": "com.amazonaws.qbusiness#InlineDocumentEnrichmentConfigurations", "traits": { - "smithy.api#documentation": "

Configuration information to alter document attributes or metadata fields and content\n when ingesting documents into Amazon Q.

" + "smithy.api#documentation": "

Configuration information to alter document attributes or metadata fields and content\n when ingesting documents into Amazon Q Business.

" } }, "preExtractionHookConfiguration": { @@ -3748,14 +4352,24 @@ "smithy.api#documentation": "

Provides the configuration information for altering document metadata and content\n during the document ingestion process.

\n

For more information, see Custom document\n enrichment.

" } }, - "com.amazonaws.qbusiness#DocumentId": { + "com.amazonaws.qbusiness#DocumentId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1825 + }, + "smithy.api#pattern": "^\\P{C}*$" + } + }, + "com.amazonaws.qbusiness#DocumentMetadataConfigurationName": { "type": "string", "traits": { "smithy.api#length": { "min": 1, - "max": 1825 + "max": 30 }, - "smithy.api#pattern": "^\\P{C}*$" + "smithy.api#pattern": "^[a-zA-Z0-9_][a-zA-Z0-9_-]*$" } }, "com.amazonaws.qbusiness#DocumentStatus": { @@ -3840,7 +4454,7 @@ } }, "traits": { - "smithy.api#documentation": "

The identifier of the data source Amazon Q will generate responses from.

" + "smithy.api#documentation": "

The identifier of the data source Amazon Q Business will generate responses from.

" } }, "com.amazonaws.qbusiness#EligibleDataSources": { @@ -3860,12 +4474,19 @@ "kmsKeyId": { "target": "com.amazonaws.qbusiness#KmsKeyId", "traits": { - "smithy.api#documentation": "

The identifier of the KMS key. Amazon Q doesn't support asymmetric\n keys.

" + "smithy.api#documentation": "

The identifier of the KMS key. Amazon Q Business doesn't support asymmetric\n keys.

" } } }, "traits": { - "smithy.api#documentation": "

Provides the identifier of the KMS key used to encrypt data indexed by\n Amazon Q. Amazon Q doesn't support asymmetric keys.

" + "smithy.api#documentation": "

Provides the identifier of the KMS key used to encrypt data indexed by\n Amazon Q Business. Amazon Q Business doesn't support asymmetric keys.

" + } + }, + "com.amazonaws.qbusiness#EndOfInputEvent": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

The end of the streaming input for the Chat API.

" } }, "com.amazonaws.qbusiness#ErrorCode": { @@ -3967,6 +4588,9 @@ { "target": "com.amazonaws.qbusiness#BatchPutDocument" }, + { + "target": "com.amazonaws.qbusiness#Chat" + }, { "target": "com.amazonaws.qbusiness#ChatSync" }, @@ -4061,7 +4685,7 @@ "h2" ] }, - "smithy.api#documentation": "\n

Amazon Q is in preview release and is subject to change.

\n
\n

This is the Amazon Q (for business use) API Reference.\n Amazon Q is a fully managed, generative-AI powered enterprise chat assistant that\n you can deploy within your organization. Amazon Q enhances employee productivity by\n supporting key tasks such as question-answering, knowledge discovery, writing email\n messages, summarizing text, drafting document outlines, and brainstorming ideas. Users\n ask questions of Amazon Q and get answers that are presented in a conversational\n manner. For an introduction to the service, see the \n Amazon Q (for business use) Developer\n Guide\n .

\n

For an overview of the Amazon Q APIs, see Overview of Amazon Q API operations.

\n

For information about the IAM access control permissions you need to\n use this API, see IAM roles for Amazon Q in the\n Amazon Q (for business use) Developer Guide.

\n

You can use the following AWS SDKs to access Amazon Q APIs:

\n \n

The following resources provide additional information about using the Amazon Q\n API:

\n ", + "smithy.api#documentation": "

This is the Amazon Q Business API Reference. Amazon Q Business is a fully\n managed, generative-AI powered enterprise chat assistant that you can deploy within your\n organization. Amazon Q Business enhances employee productivity by supporting key tasks such\n as question-answering, knowledge discovery, writing email messages, summarizing text,\n drafting document outlines, and brainstorming ideas. Users ask questions of\n Amazon Q Business and get answers that are presented in a conversational manner. For an\n introduction to the service, see the \n Amazon Q Business User Guide\n .

\n

For an overview of the Amazon Q Business APIs, see Overview of Amazon Q Business API operations.

\n

For information about the IAM access control permissions you need to\n use this API, see IAM roles for Amazon Q Business in the\n Amazon Q Business User Guide.

\n

You can use the following AWS SDKs to access Amazon Q Business APIs:

\n \n

The following resources provide additional information about using the Amazon Q Business\n API:

\n ", "smithy.api#title": "QBusiness", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -4431,13 +5055,42 @@ } } }, + "com.amazonaws.qbusiness#FailedAttachmentEvent": { + "type": "structure", + "members": { + "conversationId": { + "target": "com.amazonaws.qbusiness#ConversationId", + "traits": { + "smithy.api#documentation": "

The identifier of the conversation associated with the failed file upload.

" + } + }, + "userMessageId": { + "target": "com.amazonaws.qbusiness#MessageId", + "traits": { + "smithy.api#documentation": "

The identifier of the end user chat message associated with the file upload.

" + } + }, + "systemMessageId": { + "target": "com.amazonaws.qbusiness#MessageId", + "traits": { + "smithy.api#documentation": "

The identifier of the AI-generated message associated with the file upload.

" + } + }, + "attachment": { + "target": "com.amazonaws.qbusiness#AttachmentOutput" + } + }, + "traits": { + "smithy.api#documentation": "

A failed file upload during web experience chat.

" + } + }, "com.amazonaws.qbusiness#FailedDocument": { "type": "structure", "members": { "id": { "target": "com.amazonaws.qbusiness#DocumentId", "traits": { - "smithy.api#documentation": "

The identifier of the document that couldn't be removed from the Amazon Q\n index.

" + "smithy.api#documentation": "

The identifier of the document that couldn't be removed from the Amazon Q Business\n index.

" } }, "error": { @@ -4449,12 +5102,12 @@ "dataSourceId": { "target": "com.amazonaws.qbusiness#DataSourceId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q data source connector that contains the failed\n document.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business data source connector that contains the failed\n document.

" } } }, "traits": { - "smithy.api#documentation": "

A list of documents that could not be removed from an Amazon Q index. Each entry\n contains an error message that indicates why the document couldn't be removed from the\n index.

" + "smithy.api#documentation": "

A list of documents that could not be removed from an Amazon Q Business index. Each entry\n contains an error message that indicates why the document couldn't be removed from the\n index.

" } }, "com.amazonaws.qbusiness#FailedDocuments": { @@ -4492,7 +5145,7 @@ "aws.iam#requiredActions": [ "qbusiness:ListTagsForResource" ], - "smithy.api#documentation": "

Gets information about an existing Amazon Q application.

", + "smithy.api#documentation": "

Gets information about an existing Amazon Q Business application.

", "smithy.api#http": { "uri": "/applications/{applicationId}", "method": "GET" @@ -4506,7 +5159,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4522,19 +5175,25 @@ "displayName": { "target": "com.amazonaws.qbusiness#ApplicationName", "traits": { - "smithy.api#documentation": "

The name of the Amazon Q application.

" + "smithy.api#documentation": "

The name of the Amazon Q Business application.

" } }, "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business application.

" } }, "applicationArn": { "target": "com.amazonaws.qbusiness#ApplicationArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q application.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q Business application.

" + } + }, + "identityCenterApplicationArn": { + "target": "com.amazonaws.qbusiness#IdcApplicationArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the AWS IAM Identity Center instance attached to\n your Amazon Q Business application.

" } }, "roleArn": { @@ -4546,32 +5205,32 @@ "status": { "target": "com.amazonaws.qbusiness#ApplicationStatus", "traits": { - "smithy.api#documentation": "

The status of the Amazon Q application.

" + "smithy.api#documentation": "

The status of the Amazon Q Business application.

" } }, "description": { "target": "com.amazonaws.qbusiness#Description", "traits": { - "smithy.api#documentation": "

A description for the Amazon Q application.

" + "smithy.api#documentation": "

A description for the Amazon Q Business application.

" } }, "encryptionConfiguration": { "target": "com.amazonaws.qbusiness#EncryptionConfiguration", "traits": { "aws.cloudformation#cfnMutability": "create-and-read", - "smithy.api#documentation": "

The identifier of the Amazon Web Services\n KMS key that is used to encrypt your data. Amazon Q doesn't support\n asymmetric keys.

" + "smithy.api#documentation": "

The identifier of the Amazon Web Services\n KMS key that is used to encrypt your data. Amazon Q Business doesn't support\n asymmetric keys.

" } }, "createdAt": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp when the Amazon Q application was last updated.

" + "smithy.api#documentation": "

The Unix timestamp when the Amazon Q Business application was last updated.

" } }, "updatedAt": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp when the Amazon Q application was last updated.

" + "smithy.api#documentation": "

The Unix timestamp when the Amazon Q Business application was last updated.

" } }, "error": { @@ -4619,7 +5278,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets information about an chat controls configured for an existing Amazon Q\n application.

", + "smithy.api#documentation": "

Gets information about an chat controls configured for an existing Amazon Q Business\n application.

", "smithy.api#http": { "uri": "/applications/{applicationId}/chatcontrols", "method": "GET", @@ -4655,7 +5314,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of Amazon Q chat controls\n configured.

", + "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q Business returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of Amazon Q Business chat controls\n configured.

", "smithy.api#httpQuery": "nextToken" } } @@ -4670,7 +5329,7 @@ "responseScope": { "target": "com.amazonaws.qbusiness#ResponseScope", "traits": { - "smithy.api#documentation": "

The response scope configured for a Amazon Q application. This determines whether\n your application uses its retrieval augmented generation (RAG) system to generate\n answers only from your enterprise data, or also uses the large language models (LLM)\n knowledge to respons to end user questions in chat.

" + "smithy.api#documentation": "

The response scope configured for a Amazon Q Business application. This determines whether\n your application uses its retrieval augmented generation (RAG) system to generate\n answers only from your enterprise data, or also uses the large language models (LLM)\n knowledge to respons to end user questions in chat.

" } }, "blockedPhrases": { @@ -4682,13 +5341,19 @@ "topicConfigurations": { "target": "com.amazonaws.qbusiness#TopicConfigurations", "traits": { - "smithy.api#documentation": "

The topic specific controls configured for a Amazon Q application.

" + "smithy.api#documentation": "

The topic specific controls configured for a Amazon Q Business application.

" + } + }, + "creatorModeConfiguration": { + "target": "com.amazonaws.qbusiness#AppliedCreatorModeConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration details for CREATOR_MODE.

" } }, "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of Amazon Q chat controls\n configured.

" + "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q Business returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of Amazon Q Business chat controls\n configured.

" } } }, @@ -4725,7 +5390,7 @@ "aws.iam#requiredActions": [ "qbusiness:ListTagsForResource" ], - "smithy.api#documentation": "

Gets information about an existing Amazon Q data source connector.

", + "smithy.api#documentation": "

Gets information about an existing Amazon Q Business data source connector.

", "smithy.api#http": { "uri": "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}", "method": "GET" @@ -4739,7 +5404,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4771,7 +5436,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business application.

" } }, "indexId": { @@ -4843,7 +5508,7 @@ "syncSchedule": { "target": "com.amazonaws.qbusiness#SyncSchedule", "traits": { - "smithy.api#documentation": "

The schedule for Amazon Q to update the index.

" + "smithy.api#documentation": "

The schedule for Amazon Q Business to update the index.

" } }, "roleArn": { @@ -4992,7 +5657,7 @@ "aws.iam#requiredActions": [ "qbusiness:ListTagsForResource" ], - "smithy.api#documentation": "

Gets information about an existing Amazon Q index.

", + "smithy.api#documentation": "

Gets information about an existing Amazon Q Business index.

", "smithy.api#http": { "uri": "/applications/{applicationId}/indices/{indexId}", "method": "GET" @@ -5006,7 +5671,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application connected to the index.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application connected to the index.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5014,7 +5679,7 @@ "indexId": { "target": "com.amazonaws.qbusiness#IndexId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q index you want information on.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business index you want information on.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5030,25 +5695,31 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application associated with the index.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business application associated with the index.

" } }, "indexId": { "target": "com.amazonaws.qbusiness#IndexId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q index.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business index.

" } }, "displayName": { "target": "com.amazonaws.qbusiness#IndexName", "traits": { - "smithy.api#documentation": "

The name of the Amazon Q index.

" + "smithy.api#documentation": "

The name of the Amazon Q Business index.

" + } + }, + "type": { + "target": "com.amazonaws.qbusiness#IndexType", + "traits": { + "smithy.api#documentation": "

The type of index attached to your Amazon Q Business application.

" } }, "indexArn": { "target": "com.amazonaws.qbusiness#IndexArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q index.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q Business index.

" } }, "status": { @@ -5060,25 +5731,25 @@ "description": { "target": "com.amazonaws.qbusiness#Description", "traits": { - "smithy.api#documentation": "

The description for the Amazon Q index.

" + "smithy.api#documentation": "

The description for the Amazon Q Business index.

" } }, "createdAt": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp when the Amazon Q index was created.

" + "smithy.api#documentation": "

The Unix timestamp when the Amazon Q Business index was created.

" } }, "updatedAt": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp when the Amazon Q index was last updated.

" + "smithy.api#documentation": "

The Unix timestamp when the Amazon Q Business index was last updated.

" } }, "capacityConfiguration": { "target": "com.amazonaws.qbusiness#IndexCapacityConfiguration", "traits": { - "smithy.api#documentation": "

The storage capacity units chosen for your Amazon Q index.

" + "smithy.api#documentation": "

The storage capacity units chosen for your Amazon Q Business index.

" } }, "documentAttributeConfigurations": { @@ -5134,7 +5805,7 @@ "aws.iam#requiredActions": [ "qbusiness:ListTagsForResource" ], - "smithy.api#documentation": "

Gets information about an existing Amazon Q plugin.

", + "smithy.api#documentation": "

Gets information about an existing Amazon Q Business plugin.

", "smithy.api#http": { "method": "GET", "uri": "/applications/{applicationId}/plugins/{pluginId}" @@ -5202,6 +5873,18 @@ "authConfiguration": { "target": "com.amazonaws.qbusiness#PluginAuthConfiguration" }, + "customPluginConfiguration": { + "target": "com.amazonaws.qbusiness#CustomPluginConfiguration", + "traits": { + "smithy.api#documentation": "

Configuration information required to create a custom plugin.

" + } + }, + "buildStatus": { + "target": "com.amazonaws.qbusiness#PluginBuildStatus", + "traits": { + "smithy.api#documentation": "

The current status of a plugin. A plugin is modified asynchronously.

" + } + }, "pluginArn": { "target": "com.amazonaws.qbusiness#PluginArn", "traits": { @@ -5260,7 +5943,7 @@ "aws.iam#requiredActions": [ "qbusiness:ListTagsForResource" ], - "smithy.api#documentation": "

Gets information about an existing retriever used by an Amazon Q\n application.

", + "smithy.api#documentation": "

Gets information about an existing retriever used by an Amazon Q Business\n application.

", "smithy.api#http": { "method": "GET", "uri": "/applications/{applicationId}/retrievers/{retrieverId}" @@ -5274,7 +5957,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application using the retriever.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application using the retriever.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5298,7 +5981,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application using the retriever.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business application using the retriever.

" } }, "retrieverId": { @@ -5461,7 +6144,7 @@ "aws.iam#requiredActions": [ "qbusiness:ListTagsForResource" ], - "smithy.api#documentation": "

Gets information about an existing Amazon Q web experience.

", + "smithy.api#documentation": "

Gets information about an existing Amazon Q Business web experience.

", "smithy.api#http": { "uri": "/applications/{applicationId}/experiences/{webExperienceId}", "method": "GET" @@ -5475,7 +6158,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application linked to the web experience.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application linked to the web experience.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5483,7 +6166,7 @@ "webExperienceId": { "target": "com.amazonaws.qbusiness#WebExperienceId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q web experience.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business web experience.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5499,61 +6182,61 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application linked to the web experience.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business application linked to the web experience.

" } }, "webExperienceId": { "target": "com.amazonaws.qbusiness#WebExperienceId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q web experience.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business web experience.

" } }, "webExperienceArn": { "target": "com.amazonaws.qbusiness#WebExperienceArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role with the permission to access the\n Amazon Q web experience and required resources.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role with the permission to access the\n Amazon Q Business web experience and required resources.

" } }, "defaultEndpoint": { "target": "com.amazonaws.qbusiness#Url", "traits": { - "smithy.api#documentation": "

The endpoint of your Amazon Q web experience.

" + "smithy.api#documentation": "

The endpoint of your Amazon Q Business web experience.

" } }, "status": { "target": "com.amazonaws.qbusiness#WebExperienceStatus", "traits": { - "smithy.api#documentation": "

The current status of the Amazon Q web experience. When the Status\n field value is FAILED, the ErrorMessage field contains a\n description of the error that caused the data source connector to fail.

" + "smithy.api#documentation": "

The current status of the Amazon Q Business web experience. When the Status\n field value is FAILED, the ErrorMessage field contains a\n description of the error that caused the data source connector to fail.

" } }, "createdAt": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp when the retriever was created.

" + "smithy.api#documentation": "

The Unix timestamp when the Amazon Q Business web experience was last created.

" } }, "updatedAt": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp when the data source connector was last updated.

" + "smithy.api#documentation": "

The Unix timestamp when the Amazon Q Business web experience was last updated.

" } }, "title": { "target": "com.amazonaws.qbusiness#WebExperienceTitle", "traits": { - "smithy.api#documentation": "

The title for your Amazon Q web experience.

" + "smithy.api#documentation": "

The title for your Amazon Q Business web experience.

" } }, "subtitle": { "target": "com.amazonaws.qbusiness#WebExperienceSubtitle", "traits": { - "smithy.api#documentation": "

The subtitle for your Amazon Q web experience.

" + "smithy.api#documentation": "

The subtitle for your Amazon Q Business web experience.

" } }, "welcomeMessage": { "target": "com.amazonaws.qbusiness#WebExperienceWelcomeMessage", "traits": { - "smithy.api#documentation": "

The customized welcome message for end users of an Amazon Q web\n experience.

" + "smithy.api#documentation": "

The customized welcome message for end users of an Amazon Q Business web\n experience.

" } }, "samplePromptsControlMode": { @@ -5562,10 +6245,19 @@ "smithy.api#documentation": "

Determines whether sample prompts are enabled in the web experience for an end\n user.

" } }, + "roleArn": { + "target": "com.amazonaws.qbusiness#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the service role attached to your web\n experience.

" + } + }, "authenticationConfiguration": { "target": "com.amazonaws.qbusiness#WebExperienceAuthConfiguration", "traits": { - "smithy.api#documentation": "

The authentication configuration information for your Amazon Q web\n experience.

" + "smithy.api#deprecated": { + "message": "Property associated with legacy SAML IdP flow. Deprecated in favor of using AWS IAM Identity Center for user management." + }, + "smithy.api#documentation": "

The authentication configuration information for your Amazon Q Business web\n experience.

" } }, "error": { @@ -5597,7 +6289,7 @@ } }, "traits": { - "smithy.api#documentation": "

A list of users or sub groups that belong to a group. This is for generating\n Amazon Q chat results only from document a user has access to.

" + "smithy.api#documentation": "

A list of users or sub groups that belong to a group. This is for generating\n Amazon Q Business chat results only from document a user has access to.

" } }, "com.amazonaws.qbusiness#GroupName": { @@ -5657,7 +6349,7 @@ "lastUpdatedAt": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp when the Amazon Q application was last updated.

" + "smithy.api#documentation": "

The Unix timestamp when the Amazon Q Business application was last updated.

" } }, "errorDetail": { @@ -5703,7 +6395,7 @@ "invocationCondition": { "target": "com.amazonaws.qbusiness#DocumentAttributeCondition", "traits": { - "smithy.api#documentation": "

The condition used for when a Lambda function should be invoked.

\n

For example, you can specify a condition that if there are empty date-time values,\n then Amazon Q should invoke a function that inserts the current date-time.

" + "smithy.api#documentation": "

The condition used for when a Lambda function should be invoked.

\n

For example, you can specify a condition that if there are empty date-time values,\n then Amazon Q Business should invoke a function that inserts the current date-time.

" } }, "lambdaArn": { @@ -5726,7 +6418,17 @@ } }, "traits": { - "smithy.api#documentation": "

Provides the configuration information for invoking a Lambda function in\n Lambda to alter document metadata and content when ingesting\n documents into Amazon Q.

\n

You can configure your Lambda function using PreExtractionHookConfiguration if you want to apply advanced alterations on\n the original or raw documents.

\n

If you want to apply advanced alterations on the Amazon Q structured documents,\n you must configure your Lambda function using PostExtractionHookConfiguration.

\n

You can only invoke one Lambda function. However, this function can invoke\n other functions it requires.

\n

For more information, see Custom document enrichment.

" + "smithy.api#documentation": "

Provides the configuration information for invoking a Lambda function in\n Lambda to alter document metadata and content when ingesting\n documents into Amazon Q Business.

\n

You can configure your Lambda function using the\n PreExtractionHookConfiguration parameter if you want to apply advanced\n alterations on the original or raw documents.

\n

If you want to apply advanced alterations on the Amazon Q Business structured documents,\n you must configure your Lambda function using\n PostExtractionHookConfiguration.

\n

You can only invoke one Lambda function. However, this function can invoke\n other functions it requires.

\n

For more information, see Custom document enrichment.

" + } + }, + "com.amazonaws.qbusiness#IdcApplicationArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 10, + "max": 1224 + }, + "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::\\d{12}:application/(sso)?ins-[a-zA-Z0-9-.]{16}/apl-[a-zA-Z0-9]{16}$" } }, "com.amazonaws.qbusiness#Index": { @@ -5764,7 +6466,7 @@ } }, "traits": { - "smithy.api#documentation": "

Summary information for your Amazon Q index.

" + "smithy.api#documentation": "

Summary information for your Amazon Q Business index.

" } }, "com.amazonaws.qbusiness#IndexArn": { @@ -5783,7 +6485,7 @@ "units": { "target": "com.amazonaws.qbusiness#IndexCapacityInteger", "traits": { - "smithy.api#documentation": "

The number of storage units configured for an Amazon Q index.

" + "smithy.api#documentation": "

The number of storage units configured for an Amazon Q Business index.

" } } }, @@ -5904,6 +6606,23 @@ } } }, + "com.amazonaws.qbusiness#IndexType": { + "type": "enum", + "members": { + "ENTERPRISE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENTERPRISE" + } + }, + "STARTER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STARTER" + } + } + } + }, "com.amazonaws.qbusiness#IndexedTextBytes": { "type": "long", "traits": { @@ -5943,7 +6662,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides the configuration information for applying basic logic to alter document\n metadata and content when ingesting documents into Amazon Q.

\n

To apply advanced logic, to go beyond what you can do with basic logic, see \n HookConfiguration\n .

\n

For more information, see Custom document enrichment.

" + "smithy.api#documentation": "

Provides the configuration information for applying basic logic to alter document\n metadata and content when ingesting documents into Amazon Q Business.

\n

To apply advanced logic, to go beyond what you can do with basic logic, see \n HookConfiguration\n .

\n

For more information, see Custom document enrichment.

" } }, "com.amazonaws.qbusiness#InlineDocumentEnrichmentConfigurations": { @@ -5958,6 +6677,16 @@ } } }, + "com.amazonaws.qbusiness#InstanceArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 10, + "max": 1224 + }, + "smithy.api#pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$" + } + }, "com.amazonaws.qbusiness#Integer": { "type": "integer" }, @@ -5972,7 +6701,7 @@ } }, "traits": { - "smithy.api#documentation": "

An issue occurred with the internal server used for your Amazon Q service. Wait\n some minutes and try again, or contact Support for help.

", + "smithy.api#documentation": "

An issue occurred with the internal server used for your Amazon Q Business service. Wait\n some minutes and try again, or contact Support for help.

", "smithy.api#error": "server", "smithy.api#httpError": 500 } @@ -6061,7 +6790,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists Amazon Q applications.

", + "smithy.api#documentation": "

Lists Amazon Q Business applications.

", "smithy.api#http": { "uri": "/applications", "method": "GET" @@ -6081,14 +6810,14 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of Amazon Q applications.

", + "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q Business returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of Amazon Q Business applications.

", "smithy.api#httpQuery": "nextToken" } }, "maxResults": { "target": "com.amazonaws.qbusiness#MaxResultsIntegerForListApplications", "traits": { - "smithy.api#documentation": "

The maximum number of Amazon Q applications to return.

", + "smithy.api#documentation": "

The maximum number of Amazon Q Business applications to return.

", "smithy.api#httpQuery": "maxResults" } } @@ -6103,13 +6832,13 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the response is truncated, Amazon Q returns this token. You can use this token\n in a subsequent request to retrieve the next set of applications.

" + "smithy.api#documentation": "

If the response is truncated, Amazon Q Business returns this token. You can use this token\n in a subsequent request to retrieve the next set of applications.

" } }, "applications": { "target": "com.amazonaws.qbusiness#Applications", "traits": { - "smithy.api#documentation": "

An array of summary information on the configuration of one or more Amazon Q\n applications.

" + "smithy.api#documentation": "

An array of summary information on the configuration of one or more Amazon Q Business\n applications.

" } } }, @@ -6146,7 +6875,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists one or more Amazon Q conversations.

", + "smithy.api#documentation": "

Lists one or more Amazon Q Business conversations.

", "smithy.api#http": { "uri": "/applications/{applicationId}/conversations", "method": "GET" @@ -6166,7 +6895,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6174,22 +6903,21 @@ "userId": { "target": "com.amazonaws.qbusiness#UserId", "traits": { - "smithy.api#documentation": "

The identifier of the user involved in the Amazon Q web experience conversation.\n

", - "smithy.api#httpQuery": "userId", - "smithy.api#required": {} + "smithy.api#documentation": "

The identifier of the user involved in the Amazon Q Business web experience conversation.\n

", + "smithy.api#httpQuery": "userId" } }, "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of Amazon Q conversations.

", + "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q Business returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of Amazon Q Business conversations.

", "smithy.api#httpQuery": "nextToken" } }, "maxResults": { "target": "com.amazonaws.qbusiness#MaxResultsIntegerForListConversations", "traits": { - "smithy.api#documentation": "

The maximum number of Amazon Q conversations to return.

", + "smithy.api#documentation": "

The maximum number of Amazon Q Business conversations to return.

", "smithy.api#httpQuery": "maxResults" } } @@ -6204,13 +6932,13 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the response is truncated, Amazon Q returns this token, which you can use in a\n later request to list the next set of messages.

" + "smithy.api#documentation": "

If the response is truncated, Amazon Q Business returns this token, which you can use in a\n later request to list the next set of messages.

" } }, "conversations": { "target": "com.amazonaws.qbusiness#Conversations", "traits": { - "smithy.api#documentation": "

An array of summary information on the configuration of one or more Amazon Q web\n experiences.

" + "smithy.api#documentation": "

An array of summary information on the configuration of one or more Amazon Q Business web\n experiences.

" } } }, @@ -6244,7 +6972,7 @@ } ], "traits": { - "smithy.api#documentation": "

Get information about an Amazon Q data source connector synchronization.

", + "smithy.api#documentation": "

Get information about an Amazon Q Business data source connector synchronization.

", "smithy.api#http": { "uri": "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}/syncjobs", "method": "GET" @@ -6272,7 +7000,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application connected to the data source.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application connected to the data source.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6280,7 +7008,7 @@ "indexId": { "target": "com.amazonaws.qbusiness#IndexId", "traits": { - "smithy.api#documentation": "

The identifier of the index used with the Amazon Q data source connector.

", + "smithy.api#documentation": "

The identifier of the index used with the Amazon Q Business data source connector.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6288,7 +7016,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the maxResults response was incpmplete because there is more data to\n retriever, Amazon Q returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of responses.

", + "smithy.api#documentation": "

If the maxResults response was incpmplete because there is more data to\n retriever, Amazon Q Business returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of responses.

", "smithy.api#httpQuery": "nextToken" } }, @@ -6337,7 +7065,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the response is truncated, Amazon Q returns this token. You can use this token\n in any subsequent request to retrieve the next set of jobs.

" + "smithy.api#documentation": "

If the response is truncated, Amazon Q Business returns this token. You can use this token\n in any subsequent request to retrieve the next set of jobs.

" } } }, @@ -6371,7 +7099,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the Amazon Q data source connectors that you have created.

", + "smithy.api#documentation": "

Lists the Amazon Q Business data source connectors that you have created.

", "smithy.api#http": { "uri": "/applications/{applicationId}/indices/{indexId}/datasources", "method": "GET" @@ -6391,7 +7119,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application linked to the data source\n connectors.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application linked to the data source\n connectors.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6407,7 +7135,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of Amazon Q data source\n connectors.

", + "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q Business returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of Amazon Q Business data source\n connectors.

", "smithy.api#httpQuery": "nextToken" } }, @@ -6435,7 +7163,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the response is truncated, Amazon Q returns this token. You can use this token\n in a subsequent request to retrieve the next set of data source connectors.

" + "smithy.api#documentation": "

If the response is truncated, Amazon Q Business returns this token. You can use this token\n in a subsequent request to retrieve the next set of data source connectors.

" } } }, @@ -6512,7 +7240,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of documents.

", + "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q Business returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of documents.

", "smithy.api#httpQuery": "nextToken" } }, @@ -6540,7 +7268,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of documents.

" + "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q Business returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of documents.

" } } }, @@ -6628,7 +7356,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the previous response was incomplete (because there is more data to retrieve),\n Amazon Q returns a pagination token in the response. You can use this pagination\n token to retrieve the next set of groups that are mapped to users.

", + "smithy.api#documentation": "

If the previous response was incomplete (because there is more data to retrieve),\n Amazon Q Business returns a pagination token in the response. You can use this pagination\n token to retrieve the next set of groups that are mapped to users.

", "smithy.api#httpQuery": "nextToken" } }, @@ -6650,7 +7378,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the response is truncated, Amazon Q returns this token that you can use in the\n subsequent request to retrieve the next set of groups that are mapped to users.

" + "smithy.api#documentation": "

If the response is truncated, Amazon Q Business returns this token that you can use in the\n subsequent request to retrieve the next set of groups that are mapped to users.

" } }, "items": { @@ -6690,7 +7418,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the Amazon Q indices you have created.

", + "smithy.api#documentation": "

Lists the Amazon Q Business indices you have created.

", "smithy.api#http": { "uri": "/applications/{applicationId}/indices", "method": "GET" @@ -6710,7 +7438,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application connected to the index.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application connected to the index.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6718,7 +7446,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to retrieve,\n Amazon Q returns a pagination token in the response. You can use this pagination\n token to retrieve the next set of Amazon Q indices.

", + "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to retrieve,\n Amazon Q Business returns a pagination token in the response. You can use this pagination\n token to retrieve the next set of Amazon Q Business indices.

", "smithy.api#httpQuery": "nextToken" } }, @@ -6740,7 +7468,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the response is truncated, Amazon Q returns this token that you can use in the\n subsequent request to retrieve the next set of indexes.

" + "smithy.api#documentation": "

If the response is truncated, Amazon Q Business returns this token that you can use in the\n subsequent request to retrieve the next set of indexes.

" } }, "indices": { @@ -6783,7 +7511,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a list of messages associated with an Amazon Q web experience.

", + "smithy.api#documentation": "

Gets a list of messages associated with an Amazon Q Business web experience.

", "smithy.api#http": { "uri": "/applications/{applicationId}/conversations/{conversationId}", "method": "GET" @@ -6803,7 +7531,7 @@ "conversationId": { "target": "com.amazonaws.qbusiness#ConversationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q web experience conversation.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business web experience conversation.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6811,7 +7539,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier for the Amazon Q application.

", + "smithy.api#documentation": "

The identifier for the Amazon Q Business application.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6819,15 +7547,14 @@ "userId": { "target": "com.amazonaws.qbusiness#UserId", "traits": { - "smithy.api#documentation": "

The identifier of the user involved in the Amazon Q web experience\n conversation.

", - "smithy.api#httpQuery": "userId", - "smithy.api#required": {} + "smithy.api#documentation": "

The identifier of the user involved in the Amazon Q Business web experience\n conversation.

", + "smithy.api#httpQuery": "userId" } }, "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the number of retrievers returned exceeds maxResults, Amazon Q\n returns a next token as a pagination token to retrieve the next set of messages.

", + "smithy.api#documentation": "

If the number of retrievers returned exceeds maxResults, Amazon Q Business\n returns a next token as a pagination token to retrieve the next set of messages.

", "smithy.api#httpQuery": "nextToken" } }, @@ -6855,7 +7582,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the response is truncated, Amazon Q returns this token, which you can use in a\n later request to list the next set of messages.

" + "smithy.api#documentation": "

If the response is truncated, Amazon Q Business returns this token, which you can use in a\n later request to list the next set of messages.

" } } }, @@ -6889,7 +7616,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists configured Amazon Q plugins.

", + "smithy.api#documentation": "

Lists configured Amazon Q Business plugins.

", "smithy.api#http": { "method": "GET", "uri": "/applications/{applicationId}/plugins" @@ -6917,7 +7644,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of plugins.

", + "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q Business returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of plugins.

", "smithy.api#httpQuery": "nextToken" } }, @@ -6939,7 +7666,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of plugins.

" + "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q Business returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of plugins.

" } }, "plugins": { @@ -6979,7 +7706,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the retriever used by an Amazon Q application.

", + "smithy.api#documentation": "

Lists the retriever used by an Amazon Q Business application.

", "smithy.api#http": { "uri": "/applications/{applicationId}/retrievers", "method": "GET" @@ -6999,7 +7726,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application using the retriever.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application using the retriever.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7007,7 +7734,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the number of retrievers returned exceeds maxResults, Amazon Q\n returns a next token as a pagination token to retrieve the next set of\n retrievers.

", + "smithy.api#documentation": "

If the number of retrievers returned exceeds maxResults, Amazon Q Business\n returns a next token as a pagination token to retrieve the next set of\n retrievers.

", "smithy.api#httpQuery": "nextToken" } }, @@ -7035,7 +7762,7 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the response is truncated, Amazon Q returns this token, which you can use in a\n later request to list the next set of retrievers.

" + "smithy.api#documentation": "

If the response is truncated, Amazon Q Business returns this token, which you can use in a\n later request to list the next set of retrievers.

" } } }, @@ -7069,7 +7796,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets a list of tags associated with a specified resource. Amazon Q applications\n and data sources can have tags associated with them.

", + "smithy.api#documentation": "

Gets a list of tags associated with a specified resource. Amazon Q Business applications\n and data sources can have tags associated with them.

", "smithy.api#http": { "uri": "/v1/tags/{resourceARN}", "method": "GET" @@ -7083,7 +7810,7 @@ "resourceARN": { "target": "com.amazonaws.qbusiness#AmazonResourceName", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q application or data source to get\n a list of tags for.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q Business application or data source to get\n a list of tags for.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7099,7 +7826,7 @@ "tags": { "target": "com.amazonaws.qbusiness#Tags", "traits": { - "smithy.api#documentation": "

A list of tags associated with the Amazon Q application or data source.

" + "smithy.api#documentation": "

A list of tags associated with the Amazon Q Business application or data source.

" } } }, @@ -7133,7 +7860,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists one or more Amazon Q Web Experiences.

", + "smithy.api#documentation": "

Lists one or more Amazon Q Business Web Experiences.

", "smithy.api#http": { "uri": "/applications/{applicationId}/experiences", "method": "GET" @@ -7153,7 +7880,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application linked to the listed web\n experiences.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application linked to the listed web\n experiences.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -7161,14 +7888,14 @@ "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of Amazon Q conversations.

", + "smithy.api#documentation": "

If the maxResults response was incomplete because there is more data to\n retrieve, Amazon Q Business returns a pagination token in the response. You can use this\n pagination token to retrieve the next set of Amazon Q Business conversations.

", "smithy.api#httpQuery": "nextToken" } }, "maxResults": { "target": "com.amazonaws.qbusiness#MaxResultsIntegerForListWebExperiencesRequest", "traits": { - "smithy.api#documentation": "

The maximum number of Amazon Q Web Experiences to return.

", + "smithy.api#documentation": "

The maximum number of Amazon Q Business Web Experiences to return.

", "smithy.api#httpQuery": "maxResults" } } @@ -7183,13 +7910,13 @@ "webExperiences": { "target": "com.amazonaws.qbusiness#WebExperiences", "traits": { - "smithy.api#documentation": "

An array of summary information for one or more Amazon Q experiences.

" + "smithy.api#documentation": "

An array of summary information for one or more Amazon Q Business experiences.

" } }, "nextToken": { "target": "com.amazonaws.qbusiness#NextToken", "traits": { - "smithy.api#documentation": "

If the response is truncated, Amazon Q returns this token, which you can use in a\n later request to list the next set of messages.

" + "smithy.api#documentation": "

If the response is truncated, Amazon Q Business returns this token, which you can use in a\n later request to list the next set of messages.

" } } }, @@ -7414,37 +8141,37 @@ "messageId": { "target": "com.amazonaws.qbusiness#String", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q web experience message.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business web experience message.

" } }, "body": { "target": "com.amazonaws.qbusiness#MessageBody", "traits": { - "smithy.api#documentation": "

The content of the Amazon Q web experience message.

" + "smithy.api#documentation": "

The content of the Amazon Q Business web experience message.

" } }, "time": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { - "smithy.api#documentation": "

The timestamp of the first Amazon Q web experience message.

" + "smithy.api#documentation": "

The timestamp of the first Amazon Q Business web experience message.

" } }, "type": { "target": "com.amazonaws.qbusiness#MessageType", "traits": { - "smithy.api#documentation": "

The type of Amazon Q message, whether HUMAN or AI\n generated.

" + "smithy.api#documentation": "

The type of Amazon Q Business message, whether HUMAN or AI\n generated.

" } }, "attachments": { "target": "com.amazonaws.qbusiness#AttachmentsOutput", "traits": { - "smithy.api#documentation": "

A file directly uploaded into an Amazon Q web experience chat.

" + "smithy.api#documentation": "

A file directly uploaded into an Amazon Q Business web experience chat.

" } }, "sourceAttribution": { "target": "com.amazonaws.qbusiness#SourceAttributions", "traits": { - "smithy.api#documentation": "

The source documents used to generate Amazon Q web experience message.

" + "smithy.api#documentation": "

The source documents used to generate Amazon Q Business web experience message.

" } }, "actionReview": { @@ -7455,7 +8182,7 @@ } }, "traits": { - "smithy.api#documentation": "

A message in an Amazon Q web experience.

" + "smithy.api#documentation": "

A message in an Amazon Q Business web experience.

" } }, "com.amazonaws.qbusiness#MessageBody": { @@ -7639,6 +8366,44 @@ "target": "com.amazonaws.qbusiness#Message" } }, + "com.amazonaws.qbusiness#MetadataEvent": { + "type": "structure", + "members": { + "conversationId": { + "target": "com.amazonaws.qbusiness#ConversationId", + "traits": { + "smithy.api#documentation": "

The identifier of the conversation with which the generated metadata is\n associated.

" + } + }, + "userMessageId": { + "target": "com.amazonaws.qbusiness#MessageId", + "traits": { + "smithy.api#documentation": "

The identifier of an Amazon Q Business end user text input message within the\n conversation.

" + } + }, + "systemMessageId": { + "target": "com.amazonaws.qbusiness#MessageId", + "traits": { + "smithy.api#documentation": "

The identifier of an Amazon Q Business AI generated message within the\n conversation.

" + } + }, + "sourceAttributions": { + "target": "com.amazonaws.qbusiness#SourceAttributions", + "traits": { + "smithy.api#documentation": "

The source documents used to generate the conversation response.

" + } + }, + "finalTextMessage": { + "target": "com.amazonaws.qbusiness#String", + "traits": { + "smithy.api#documentation": "

The final text output message generated by the system.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A metadata event for a AI-generated text output message in a Amazon Q Business\n conversation, containing associated metadata generated.

" + } + }, "com.amazonaws.qbusiness#MetricValue": { "type": "string", "traits": { @@ -7651,19 +8416,19 @@ "indexId": { "target": "com.amazonaws.qbusiness#IndexId", "traits": { - "smithy.api#documentation": "

The identifier for the Amazon Q index.

", + "smithy.api#documentation": "

The identifier for the Amazon Q Business index.

", "smithy.api#required": {} } }, "boostingOverride": { "target": "com.amazonaws.qbusiness#DocumentAttributeBoostingOverrideMap", "traits": { - "smithy.api#documentation": "

Overrides the default boosts applied by Amazon Q to supported document attribute\n data types.

" + "smithy.api#documentation": "

Overrides the default boosts applied by Amazon Q Business to supported document attribute\n data types.

" } } }, "traits": { - "smithy.api#documentation": "

Configuration information for an Amazon Q index.

" + "smithy.api#documentation": "

Configuration information for an Amazon Q Business index.

" } }, "com.amazonaws.qbusiness#NextToken": { @@ -7675,6 +8440,13 @@ } } }, + "com.amazonaws.qbusiness#NoAuthConfiguration": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "

Information about invoking a custom plugin without any authentication or authorization\n requirement.

" + } + }, "com.amazonaws.qbusiness#NumberAttributeBoostingConfiguration": { "type": "structure", "members": { @@ -7693,7 +8465,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides information on boosting NUMBER type document attributes.

\n

For more information on how boosting document attributes work in Amazon Q, see\n Boosting using document attributes.

" + "smithy.api#documentation": "

Provides information on boosting NUMBER type document attributes.

\n

For more information on how boosting document attributes work in Amazon Q Business, see\n Boosting using document attributes.

" } }, "com.amazonaws.qbusiness#NumberAttributeBoostingType": { @@ -7726,7 +8498,7 @@ "roleArn": { "target": "com.amazonaws.qbusiness#RoleArn", "traits": { - "smithy.api#documentation": "

The ARN of an IAM role used by Amazon Q to access the OAuth 2.0\n authentication credentials stored in a Secrets Manager secret.

", + "smithy.api#documentation": "

The ARN of an IAM role used by Amazon Q Business to access the OAuth 2.0\n authentication credentials stored in a Secrets Manager secret.

", "smithy.api#required": {} } } @@ -7735,6 +8507,12 @@ "smithy.api#documentation": "

Information about the OAuth 2.0 authentication credential/token used to configure a\n plugin.

" } }, + "com.amazonaws.qbusiness#Payload": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, "com.amazonaws.qbusiness#Plugin": { "type": "structure", "members": { @@ -7768,6 +8546,12 @@ "smithy.api#documentation": "

The current status of the plugin.

" } }, + "buildStatus": { + "target": "com.amazonaws.qbusiness#PluginBuildStatus", + "traits": { + "smithy.api#documentation": "

The status of the plugin.

" + } + }, "createdAt": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { @@ -7782,7 +8566,7 @@ } }, "traits": { - "smithy.api#documentation": "

Information about an Amazon Q plugin and its configuration.

" + "smithy.api#documentation": "

Information about an Amazon Q Business plugin and its configuration.

" } }, "com.amazonaws.qbusiness#PluginArn": { @@ -7809,10 +8593,87 @@ "traits": { "smithy.api#documentation": "

Information about the OAuth 2.0 authentication credential/token used to configure a\n plugin.

" } + }, + "noAuthConfiguration": { + "target": "com.amazonaws.qbusiness#NoAuthConfiguration", + "traits": { + "smithy.api#documentation": "

Information about invoking a custom plugin without any authentication.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Authentication configuration information for an Amazon Q Business plugin.

" + } + }, + "com.amazonaws.qbusiness#PluginBuildStatus": { + "type": "enum", + "members": { + "READY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "READY" + } + }, + "CREATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_IN_PROGRESS" + } + }, + "CREATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_FAILED" + } + }, + "UPDATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_IN_PROGRESS" + } + }, + "UPDATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_FAILED" + } + }, + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_IN_PROGRESS" + } + }, + "DELETE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_FAILED" + } + } + } + }, + "com.amazonaws.qbusiness#PluginConfiguration": { + "type": "structure", + "members": { + "pluginId": { + "target": "com.amazonaws.qbusiness#PluginId", + "traits": { + "smithy.api#documentation": "

The identifier of the plugin you want to use.

", + "smithy.api#required": {} + } } }, "traits": { - "smithy.api#documentation": "

Authentication configuration information for an Amazon Q plugin.

" + "smithy.api#documentation": "

Configuration information required to invoke chat in PLUGIN_MODE.

\n

For more information, see Admin controls and guardrails, Plugins,\n and Conversation settings.

" + } + }, + "com.amazonaws.qbusiness#PluginDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + } } }, "com.amazonaws.qbusiness#PluginId": { @@ -7909,6 +8770,12 @@ "traits": { "smithy.api#enumValue": "ZENDESK" } + }, + "CUSTOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM" + } } } }, @@ -7935,7 +8802,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides user and group information used for filtering documents to use for generating\n Amazon Q conversation responses.

" + "smithy.api#documentation": "

Provides user and group information used for filtering documents to use for generating\n Amazon Q Business conversation responses.

" } }, "com.amazonaws.qbusiness#PrincipalGroup": { @@ -8024,7 +8891,7 @@ } ], "traits": { - "smithy.api#documentation": "

Enables your end user to to provide feedback on their Amazon Q generated chat\n responses.

", + "smithy.api#documentation": "

Enables your end user to provide feedback on their Amazon Q Business generated chat\n responses.

", "smithy.api#http": { "uri": "/applications/{applicationId}/conversations/{conversationId}/messages/{messageId}/feedback", "method": "POST" @@ -8046,8 +8913,7 @@ "target": "com.amazonaws.qbusiness#UserId", "traits": { "smithy.api#documentation": "

The identifier of the user giving the feedback.

", - "smithy.api#httpQuery": "userId", - "smithy.api#required": {} + "smithy.api#httpQuery": "userId" } }, "conversationId": { @@ -8115,7 +8981,7 @@ } ], "traits": { - "smithy.api#documentation": "

Create, or updates, a mapping of users—who have access to a document—to\n groups.

\n

You can also map sub groups to groups. For example, the group \"Company Intellectual\n Property Teams\" includes sub groups \"Research\" and \"Engineering\". These sub groups\n include their own list of users or people who work in these teams. Only users who work\n in research and engineering, and therefore belong in the intellectual property group,\n can see top-secret company documents in their Amazon Q chat results.

", + "smithy.api#documentation": "

Create, or updates, a mapping of users—who have access to a document—to\n groups.

\n

You can also map sub groups to groups. For example, the group \"Company Intellectual\n Property Teams\" includes sub groups \"Research\" and \"Engineering\". These sub groups\n include their own list of users or people who work in these teams. Only users who work\n in research and engineering, and therefore belong in the intellectual property group,\n can see top-secret company documents in their Amazon Q Business chat results.

", "smithy.api#http": { "method": "PUT", "uri": "/applications/{applicationId}/indices/{indexId}/groups" @@ -8251,13 +9117,13 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application using the retriever.

" + "smithy.api#documentation": "

The identifier of the Amazon Q Business application using the retriever.

" } }, "retrieverId": { "target": "com.amazonaws.qbusiness#RetrieverId", "traits": { - "smithy.api#documentation": "

The identifier of the retriever used by your Amazon Q application.

" + "smithy.api#documentation": "

The identifier of the retriever used by your Amazon Q Business application.

" } }, "type": { @@ -8280,7 +9146,7 @@ } }, "traits": { - "smithy.api#documentation": "

Summary information for the retriever used for your Amazon Q application.

" + "smithy.api#documentation": "

Summary information for the retriever used for your Amazon Q Business application.

" } }, "com.amazonaws.qbusiness#RetrieverArn": { @@ -8299,18 +9165,18 @@ "nativeIndexConfiguration": { "target": "com.amazonaws.qbusiness#NativeIndexConfiguration", "traits": { - "smithy.api#documentation": "

Provides information on how a Amazon Q index used as a retriever for your\n Amazon Q application is configured.

" + "smithy.api#documentation": "

Provides information on how a Amazon Q Business index used as a retriever for your\n Amazon Q Business application is configured.

" } }, "kendraIndexConfiguration": { "target": "com.amazonaws.qbusiness#KendraIndexConfiguration", "traits": { - "smithy.api#documentation": "

Provides information on how the Amazon Kendra index used as a retriever for your\n Amazon Q application is configured.

" + "smithy.api#documentation": "

Provides information on how the Amazon Kendra index used as a retriever for your\n Amazon Q Business application is configured.

" } } }, "traits": { - "smithy.api#documentation": "

Provides information on how the retriever used for your Amazon Q application is\n configured.

" + "smithy.api#documentation": "

Provides information on how the retriever used for your Amazon Q Business application is\n configured.

" } }, "com.amazonaws.qbusiness#RetrieverId": { @@ -8450,7 +9316,7 @@ } }, "traits": { - "smithy.api#documentation": "

Guardrail rules for an Amazon Q application. Amazon Q supports only one rule\n at a time.

" + "smithy.api#documentation": "

Guardrail rules for an Amazon Q Business application. Amazon Q Business supports only one rule\n at a time.

" } }, "com.amazonaws.qbusiness#RuleConfiguration": { @@ -8459,7 +9325,7 @@ "contentBlockerRule": { "target": "com.amazonaws.qbusiness#ContentBlockerRule", "traits": { - "smithy.api#documentation": "

A rule for configuring how Amazon Q responds when it encounters a a blocked\n topic.

" + "smithy.api#documentation": "

A rule for configuring how Amazon Q Business responds when it encounters a a blocked\n topic.

" } }, "contentRetrievalRule": { @@ -8517,7 +9383,7 @@ } }, "traits": { - "smithy.api#documentation": "

Information required for Amazon Q to find a specific file in an Amazon S3\n bucket.

" + "smithy.api#documentation": "

Information required for Amazon Q Business to find a specific file in an Amazon S3\n bucket.

" } }, "com.amazonaws.qbusiness#S3BucketName": { @@ -8561,7 +9427,7 @@ "roleArn": { "target": "com.amazonaws.qbusiness#RoleArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role assumed by users when\n they authenticate into their Amazon Q web experience, containing the relevant\n Amazon Q permissions for conversing with Amazon Q.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role assumed by users when\n they authenticate into their Amazon Q Business web experience, containing the relevant\n Amazon Q Business permissions for conversing with Amazon Q Business.

", "smithy.api#required": {} } }, @@ -8580,7 +9446,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides the SAML 2.0 compliant identity provider (IdP) configuration information\n Amazon Q needs to deploy a Amazon Q web experience.

" + "smithy.api#documentation": "

Provides the SAML 2.0 compliant identity provider (IdP) configuration information\n Amazon Q Business needs to deploy a Amazon Q Business web experience.

" } }, "com.amazonaws.qbusiness#SamlMetadataXML": { @@ -8651,18 +9517,35 @@ } }, "traits": { - "smithy.api#documentation": "

You have exceeded the set limits for your Amazon Q service.

", + "smithy.api#documentation": "

You have exceeded the set limits for your Amazon Q Business service.

", "smithy.api#error": "client", "smithy.api#httpError": 402 } }, + "com.amazonaws.qbusiness#SnippetExcerpt": { + "type": "structure", + "members": { + "text": { + "target": "com.amazonaws.qbusiness#SnippetExcerptText", + "traits": { + "smithy.api#documentation": "

The relevant text excerpt from a source that was used to generate a citation text\n segment in an Amazon Q chat response.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the relevant text excerpt from a source that was used to generate a citation\n text segment in an Amazon Q Business chat response.

" + } + }, + "com.amazonaws.qbusiness#SnippetExcerptText": { + "type": "string" + }, "com.amazonaws.qbusiness#SourceAttribution": { "type": "structure", "members": { "title": { "target": "com.amazonaws.qbusiness#String", "traits": { - "smithy.api#documentation": "

The title of the document which is the source for the Amazon Q generated\n response.

" + "smithy.api#documentation": "

The title of the document which is the source for the Amazon Q Business generated\n response.

" } }, "snippet": { @@ -8674,19 +9557,19 @@ "url": { "target": "com.amazonaws.qbusiness#String", "traits": { - "smithy.api#documentation": "

The URL of the document which is the source for the Amazon Q generated response.\n

" + "smithy.api#documentation": "

The URL of the document which is the source for the Amazon Q Business generated response.\n

" } }, "citationNumber": { "target": "com.amazonaws.qbusiness#Integer", "traits": { - "smithy.api#documentation": "

The number attached to a citation in an Amazon Q generated response.

" + "smithy.api#documentation": "

The number attached to a citation in an Amazon Q Business generated response.

" } }, "updatedAt": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp when the Amazon Q application was last updated.

" + "smithy.api#documentation": "

The Unix timestamp when the Amazon Q Business application was last updated.

" } }, "textMessageSegments": { @@ -8697,7 +9580,7 @@ } }, "traits": { - "smithy.api#documentation": "

The documents used to generate an Amazon Q web experience response.

" + "smithy.api#documentation": "

The documents used to generate an Amazon Q Business web experience response.

" } }, "com.amazonaws.qbusiness#SourceAttributions": { @@ -8741,7 +9624,7 @@ } ], "traits": { - "smithy.api#documentation": "

Starts a data source connector synchronization job. If a synchronization job is\n already in progress, Amazon Q returns a ConflictException.

", + "smithy.api#documentation": "

Starts a data source connector synchronization job. If a synchronization job is\n already in progress, Amazon Q Business returns a ConflictException.

", "smithy.api#http": { "uri": "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}/startsync", "method": "POST" @@ -8762,7 +9645,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of Amazon Q application the data source is connected to.

", + "smithy.api#documentation": "

The identifier of Amazon Q Business application the data source is connected to.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -8837,7 +9720,7 @@ } ], "traits": { - "smithy.api#documentation": "

Stops an Amazon Q data source connector synchronization job already in\n progress.

", + "smithy.api#documentation": "

Stops an Amazon Q Business data source connector synchronization job already in\n progress.

", "smithy.api#http": { "uri": "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}/stopsync", "method": "POST" @@ -8858,7 +9741,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application that the data source is connected\n to.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application that the data source is connected\n to.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -8866,7 +9749,7 @@ "indexId": { "target": "com.amazonaws.qbusiness#IndexId", "traits": { - "smithy.api#documentation": "

The identifier of the index used with the Amazon Q data source connector.

", + "smithy.api#documentation": "

The identifier of the index used with the Amazon Q Business data source connector.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -8910,7 +9793,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides information on boosting STRING type document attributes.

\n \n

For STRING and STRING_LIST type document attributes to\n be used for boosting on the console and the API, they must be enabled for search\n using the DocumentAttributeConfiguration object of the UpdateIndex API. If you haven't enabled searching on these attributes,\n you can't boost attributes of these data types on either the console or the\n API.

\n
\n

For more information on how boosting document attributes work in Amazon Q, see\n Boosting using document attributes.

" + "smithy.api#documentation": "

Provides information on boosting STRING type document attributes.

\n \n

For STRING and STRING_LIST type document attributes to\n be used for boosting on the console and the API, they must be enabled for search\n using the DocumentAttributeConfiguration object of the UpdateIndex API. If you haven't enabled searching on these attributes,\n you can't boost attributes of these data types on either the console or the\n API.

\n
\n

For more information on how boosting document attributes work in Amazon Q Business, see\n Boosting using document attributes.

" } }, "com.amazonaws.qbusiness#StringAttributeValueBoosting": { @@ -8969,7 +9852,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides information on boosting STRING_LIST type document\n attributes.

\n \n

For STRING and STRING_LIST type document attributes to\n be used for boosting on the console and the API, they must be enabled for search\n using the DocumentAttributeConfiguration object of the UpdateIndex API. If you haven't enabled searching on these attributes,\n you can't boost attributes of these data types on either the console or the\n API.

\n
\n

For more information on how boosting document attributes work in Amazon Q, see\n Boosting using document attributes.

" + "smithy.api#documentation": "

Provides information on boosting STRING_LIST type document\n attributes.

\n \n

For STRING and STRING_LIST type document attributes to\n be used for boosting on the console and the API, they must be enabled for search\n using the DocumentAttributeConfiguration object of the UpdateIndex API. If you haven't enabled searching on these attributes,\n you can't boost attributes of these data types on either the console or the\n API.

\n
\n

For more information on how boosting document attributes work in Amazon Q Business, see\n Boosting using document attributes.

" } }, "com.amazonaws.qbusiness#SubnetId": { @@ -9022,7 +9905,7 @@ "key": { "target": "com.amazonaws.qbusiness#TagKey", "traits": { - "smithy.api#documentation": "

The key for the tag. Keys are not case sensitive and must be unique for the\n Amazon Q application or data source.

", + "smithy.api#documentation": "

The key for the tag. Keys are not case sensitive and must be unique for the\n Amazon Q Business application or data source.

", "smithy.api#required": {} } }, @@ -9088,7 +9971,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds the specified tag to the specified Amazon Q application or data source\n resource. If the tag already exists, the existing value is replaced with the new\n value.

", + "smithy.api#documentation": "

Adds the specified tag to the specified Amazon Q Business application or data source\n resource. If the tag already exists, the existing value is replaced with the new\n value.

", "smithy.api#http": { "uri": "/v1/tags/{resourceARN}", "method": "POST" @@ -9102,7 +9985,7 @@ "resourceARN": { "target": "com.amazonaws.qbusiness#AmazonResourceName", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q application or data source to\n tag.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q Business application or data source to\n tag.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -9110,7 +9993,7 @@ "tags": { "target": "com.amazonaws.qbusiness#Tags", "traits": { - "smithy.api#documentation": "

A list of tag keys to add to the Amazon Q application or data source. If a tag\n already exists, the existing value is replaced with the new value.

", + "smithy.api#documentation": "

A list of tag keys to add to the Amazon Q Business application or data source. If a tag\n already exists, the existing value is replaced with the new value.

", "smithy.api#required": {} } } @@ -9167,6 +10050,53 @@ "smithy.api#documentation": "

Provides information about text documents in an index.

" } }, + "com.amazonaws.qbusiness#TextInputEvent": { + "type": "structure", + "members": { + "userMessage": { + "target": "com.amazonaws.qbusiness#UserMessage", + "traits": { + "smithy.api#documentation": "

A user message in a text message input event.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An input event for a end user message in an Amazon Q Business web experience.

" + } + }, + "com.amazonaws.qbusiness#TextOutputEvent": { + "type": "structure", + "members": { + "conversationId": { + "target": "com.amazonaws.qbusiness#ConversationId", + "traits": { + "smithy.api#documentation": "

The identifier of the conversation with which the text output event is\n associated.

" + } + }, + "userMessageId": { + "target": "com.amazonaws.qbusiness#MessageId", + "traits": { + "smithy.api#documentation": "

The identifier of an end user message in a TextOutputEvent.

" + } + }, + "systemMessageId": { + "target": "com.amazonaws.qbusiness#MessageId", + "traits": { + "smithy.api#documentation": "

The identifier of an AI-generated message in a TextOutputEvent.

" + } + }, + "systemMessage": { + "target": "com.amazonaws.qbusiness#String", + "traits": { + "smithy.api#documentation": "

An AI-generated message in a TextOutputEvent.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An output event for an AI-generated response in an Amazon Q Business web\n experience.

" + } + }, "com.amazonaws.qbusiness#TextSegment": { "type": "structure", "members": { @@ -9181,6 +10111,12 @@ "traits": { "smithy.api#documentation": "

The zero-based location in the response string where the source attribution\n ends.

" } + }, + "snippetExcerpt": { + "target": "com.amazonaws.qbusiness#SnippetExcerpt", + "traits": { + "smithy.api#documentation": "

The relevant text excerpt from a source that was used to generate a citation text\n segment in an Amazon Q Business chat response.

" + } } }, "traits": { @@ -9252,7 +10188,7 @@ } }, "traits": { - "smithy.api#documentation": "

The topic specific controls configured for an Amazon Q application.

" + "smithy.api#documentation": "

The topic specific controls configured for an Amazon Q Business application.

" } }, "com.amazonaws.qbusiness#TopicConfigurationName": { @@ -9312,7 +10248,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes a tag from an Amazon Q application or a data source.

", + "smithy.api#documentation": "

Removes a tag from an Amazon Q Business application or a data source.

", "smithy.api#http": { "uri": "/v1/tags/{resourceARN}", "method": "DELETE" @@ -9326,7 +10262,7 @@ "resourceARN": { "target": "com.amazonaws.qbusiness#AmazonResourceName", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q application, or data source to\n remove the tag from.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q Business application, or data source to\n remove the tag from.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -9334,7 +10270,7 @@ "tagKeys": { "target": "com.amazonaws.qbusiness#TagKeys", "traits": { - "smithy.api#documentation": "

A list of tag keys to remove from the Amazon Q application or data source. If a\n tag key does not exist on the resource, it is ignored.

", + "smithy.api#documentation": "

A list of tag keys to remove from the Amazon Q Business application or data source. If a\n tag key does not exist on the resource, it is ignored.

", "smithy.api#httpQuery": "tagKeys", "smithy.api#required": {} } @@ -9387,7 +10323,7 @@ "qbusiness:ListTagsForResource", "iam:PassRole" ], - "smithy.api#documentation": "

Updates an existing Amazon Q application.

", + "smithy.api#documentation": "

Updates an existing Amazon Q Business application.

", "smithy.api#http": { "uri": "/applications/{applicationId}", "method": "PUT" @@ -9401,27 +10337,33 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, + "identityCenterInstanceArn": { + "target": "com.amazonaws.qbusiness#InstanceArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM Identity Center instance you are either\n creating for—or connecting to—your Amazon Q Business application.

" + } + }, "displayName": { "target": "com.amazonaws.qbusiness#ApplicationName", "traits": { - "smithy.api#documentation": "

A name for the Amazon Q application.

" + "smithy.api#documentation": "

A name for the Amazon Q Business application.

" } }, "description": { "target": "com.amazonaws.qbusiness#Description", "traits": { - "smithy.api#documentation": "

A description for the Amazon Q application.

" + "smithy.api#documentation": "

A description for the Amazon Q Business application.

" } }, "roleArn": { "target": "com.amazonaws.qbusiness#RoleArn", "traits": { - "smithy.api#documentation": "

An Amazon Web Services Identity and Access Management (IAM) role that\n gives Amazon Q permission to access Amazon CloudWatch logs and\n metrics.

" + "smithy.api#documentation": "

An Amazon Web Services Identity and Access Management (IAM) role that\n gives Amazon Q Business permission to access Amazon CloudWatch logs and\n metrics.

" } }, "attachmentsConfiguration": { @@ -9474,7 +10416,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates an set of chat controls configured for an existing Amazon Q\n application.

", + "smithy.api#documentation": "

Updates an set of chat controls configured for an existing Amazon Q Business\n application.

", "smithy.api#http": { "uri": "/applications/{applicationId}/chatcontrols", "method": "PATCH", @@ -9497,7 +10439,7 @@ "clientToken": { "target": "com.amazonaws.qbusiness#ClientToken", "traits": { - "smithy.api#documentation": "

A token that you provide to identify the request to update a Amazon Q application\n chat configuration.

", + "smithy.api#documentation": "

A token that you provide to identify the request to update a Amazon Q Business application\n chat configuration.

", "smithy.api#idempotencyToken": {} } }, @@ -9524,6 +10466,12 @@ "traits": { "smithy.api#documentation": "

The configured topic specific chat controls you want to delete.

" } + }, + "creatorModeConfiguration": { + "target": "com.amazonaws.qbusiness#CreatorModeConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration details for CREATOR_MODE.

" + } } }, "traits": { @@ -9573,7 +10521,7 @@ "qbusiness:ListTagsForResource", "iam:PassRole" ], - "smithy.api#documentation": "

Updates an existing Amazon Q data source connector.

", + "smithy.api#documentation": "

Updates an existing Amazon Q Business data source connector.

", "smithy.api#http": { "uri": "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}", "method": "PUT" @@ -9587,7 +10535,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application the data source is attached\n to.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application the data source is attached\n to.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -9691,7 +10639,7 @@ "qbusiness:UntagResource", "qbusiness:ListTagsForResource" ], - "smithy.api#documentation": "

Updates an Amazon Q index.

", + "smithy.api#documentation": "

Updates an Amazon Q Business index.

", "smithy.api#http": { "uri": "/applications/{applicationId}/indices/{indexId}", "method": "PUT" @@ -9705,7 +10653,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application connected to the index.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application connected to the index.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -9713,7 +10661,7 @@ "indexId": { "target": "com.amazonaws.qbusiness#IndexId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q index.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business index.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -9721,19 +10669,19 @@ "displayName": { "target": "com.amazonaws.qbusiness#ApplicationName", "traits": { - "smithy.api#documentation": "

The name of the Amazon Q index.

" + "smithy.api#documentation": "

The name of the Amazon Q Business index.

" } }, "description": { "target": "com.amazonaws.qbusiness#Description", "traits": { - "smithy.api#documentation": "

The description of the Amazon Q index.

" + "smithy.api#documentation": "

The description of the Amazon Q Business index.

" } }, "capacityConfiguration": { "target": "com.amazonaws.qbusiness#IndexCapacityConfiguration", "traits": { - "smithy.api#documentation": "

The storage capacity units you want to provision for your Amazon Q index. You can\n add and remove capacity to fit your usage needs.

" + "smithy.api#documentation": "

The storage capacity units you want to provision for your Amazon Q Business index. You can\n add and remove capacity to fit your usage needs.

" } }, "documentAttributeConfigurations": { @@ -9793,7 +10741,7 @@ "qbusiness:ListTagsForResource", "iam:PassRole" ], - "smithy.api#documentation": "

Updates an Amazon Q plugin.

", + "smithy.api#documentation": "

Updates an Amazon Q Business plugin.

", "smithy.api#http": { "method": "PUT", "uri": "/applications/{applicationId}/plugins/{pluginId}" @@ -9838,6 +10786,12 @@ "smithy.api#documentation": "

The source URL used for plugin configuration.

" } }, + "customPluginConfiguration": { + "target": "com.amazonaws.qbusiness#CustomPluginConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for a custom plugin.

" + } + }, "authConfiguration": { "target": "com.amazonaws.qbusiness#PluginAuthConfiguration", "traits": { @@ -9895,7 +10849,7 @@ "qbusiness:GetRetriever", "iam:PassRole" ], - "smithy.api#documentation": "

Updates the retriever used for your Amazon Q application.

", + "smithy.api#documentation": "

Updates the retriever used for your Amazon Q Business application.

", "smithy.api#http": { "method": "PUT", "uri": "/applications/{applicationId}/retrievers/{retrieverId}" @@ -9909,7 +10863,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of your Amazon Q application.

", + "smithy.api#documentation": "

The identifier of your Amazon Q Business application.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -10084,7 +11038,7 @@ "qbusiness:ListTagsForResource", "iam:PassRole" ], - "smithy.api#documentation": "

Updates an Amazon Q web experience.

", + "smithy.api#documentation": "

Updates an Amazon Q Business web experience.

", "smithy.api#http": { "uri": "/applications/{applicationId}/experiences/{webExperienceId}", "method": "PUT" @@ -10098,7 +11052,7 @@ "applicationId": { "target": "com.amazonaws.qbusiness#ApplicationId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q application attached to the web experience.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business application attached to the web experience.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -10106,33 +11060,42 @@ "webExperienceId": { "target": "com.amazonaws.qbusiness#WebExperienceId", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q web experience.

", + "smithy.api#documentation": "

The identifier of the Amazon Q Business web experience.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, + "roleArn": { + "target": "com.amazonaws.qbusiness#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role with permission to access the Amazon Q Business\n web experience and required resources.

" + } + }, "authenticationConfiguration": { "target": "com.amazonaws.qbusiness#WebExperienceAuthConfiguration", "traits": { - "smithy.api#documentation": "

The authentication configuration of the Amazon Q web experience.

" + "smithy.api#deprecated": { + "message": "Property associated with legacy SAML IdP flow. Deprecated in favor of using AWS IAM Identity Center for user management." + }, + "smithy.api#documentation": "

The authentication configuration of the Amazon Q Business web experience.

" } }, "title": { "target": "com.amazonaws.qbusiness#WebExperienceTitle", "traits": { - "smithy.api#documentation": "

The title of the Amazon Q web experience.

" + "smithy.api#documentation": "

The title of the Amazon Q Business web experience.

" } }, "subtitle": { "target": "com.amazonaws.qbusiness#WebExperienceSubtitle", "traits": { - "smithy.api#documentation": "

The subtitle of the Amazon Q web experience.

" + "smithy.api#documentation": "

The subtitle of the Amazon Q Business web experience.

" } }, "welcomeMessage": { "target": "com.amazonaws.qbusiness#WebExperienceWelcomeMessage", "traits": { - "smithy.api#documentation": "

A customized welcome message for an end user in an Amazon Q web\n experience.

" + "smithy.api#documentation": "

A customized welcome message for an end user in an Amazon Q Business web\n experience.

" } }, "samplePromptsControlMode": { @@ -10187,7 +11150,7 @@ } }, "traits": { - "smithy.api#documentation": "

Aliases attached to a user id within an Amazon Q application.

" + "smithy.api#documentation": "

Aliases attached to a user id within an Amazon Q Business application.

" } }, "com.amazonaws.qbusiness#UserAliases": { @@ -10272,7 +11235,7 @@ } }, "traits": { - "smithy.api#documentation": "

The input doesn't meet the constraints set by the Amazon Q service. Provide the\n correct input and try again.

", + "smithy.api#documentation": "

The input doesn't meet the constraints set by the Amazon Q Business service. Provide the\n correct input and try again.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -10296,7 +11259,7 @@ } }, "traits": { - "smithy.api#documentation": "

The input failed to meet the constraints specified by Amazon Q in a specified\n field.

" + "smithy.api#documentation": "

The input failed to meet the constraints specified by Amazon Q Business in a specified\n field.

" } }, "com.amazonaws.qbusiness#ValidationExceptionFields": { @@ -10334,36 +11297,36 @@ "webExperienceId": { "target": "com.amazonaws.qbusiness#WebExperienceId", "traits": { - "smithy.api#documentation": "

The identifier of your Amazon Q web experience.

" + "smithy.api#documentation": "

The identifier of your Amazon Q Business web experience.

" } }, "createdAt": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp when the Amazon Q application was last updated.

" + "smithy.api#documentation": "

The Unix timestamp when the Amazon Q Business application was last updated.

" } }, "updatedAt": { "target": "com.amazonaws.qbusiness#Timestamp", "traits": { - "smithy.api#documentation": "

The Unix timestamp when your Amazon Q web experience was updated.

" + "smithy.api#documentation": "

The Unix timestamp when your Amazon Q Business web experience was updated.

" } }, "defaultEndpoint": { "target": "com.amazonaws.qbusiness#Url", "traits": { - "smithy.api#documentation": "

The endpoint URLs for your Amazon Q web experience. The URLs are unique and fully\n hosted by Amazon Web Services.

" + "smithy.api#documentation": "

The endpoint URLs for your Amazon Q Business web experience. The URLs are unique and fully\n hosted by Amazon Web Services.

" } }, "status": { "target": "com.amazonaws.qbusiness#WebExperienceStatus", "traits": { - "smithy.api#documentation": "

The status of your Amazon Q web experience.

" + "smithy.api#documentation": "

The status of your Amazon Q Business web experience.

" } } }, "traits": { - "smithy.api#documentation": "

Provides information for an Amazon Q web experience.

" + "smithy.api#documentation": "

Provides information for an Amazon Q Business web experience.

" } }, "com.amazonaws.qbusiness#WebExperienceArn": { @@ -10384,7 +11347,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides the authorization configuration information needed to deploy a Amazon Q\n web experience to end users.

" + "smithy.api#documentation": "

Provides the authorization configuration information needed to deploy a Amazon Q Business\n web experience to end users.

" } }, "com.amazonaws.qbusiness#WebExperienceId": { diff --git a/models/qconnect.json b/models/qconnect.json index 52019425c4..74a2f64b81 100644 --- a/models/qconnect.json +++ b/models/qconnect.json @@ -14,6 +14,12 @@ "smithy.api#httpError": 403 } }, + "com.amazonaws.qconnect#AndConditions": { + "type": "list", + "member": { + "target": "com.amazonaws.qconnect#TagCondition" + } + }, "com.amazonaws.qconnect#AppIntegrationsConfiguration": { "type": "structure", "members": { @@ -27,7 +33,7 @@ "objectFields": { "target": "com.amazonaws.qconnect#ObjectFieldsList", "traits": { - "smithy.api#documentation": "

The fields from the source that are made available to your agents in Amazon Q. Optional if\n ObjectConfiguration is included in the provided DataIntegration.

\n
    \n
  • \n

    For Salesforce, you must include at least Id,\n ArticleNumber, VersionNumber, Title,\n PublishStatus, and IsDeleted.

    \n
  • \n
  • \n

    For ServiceNow, you must include at least number,\n short_description, sys_mod_count, workflow_state,\n and active.

    \n
  • \n
  • \n

    For \n Zendesk, you must include at least id, title,\n updated_at, and draft.

    \n
  • \n
\n

Make sure to include additional fields. These fields are indexed and used to source\n recommendations.

" + "smithy.api#documentation": "

The fields from the source that are made available to your agents in Amazon Q in Connect. Optional if\n ObjectConfiguration is included in the provided DataIntegration.

\n
    \n
  • \n

    For Salesforce, you must include at least Id,\n ArticleNumber, VersionNumber, Title,\n PublishStatus, and IsDeleted.

    \n
  • \n
  • \n

    For ServiceNow, you must include at least number,\n short_description, sys_mod_count, workflow_state,\n and active.

    \n
  • \n
  • \n

    For \n Zendesk, you must include at least id, title,\n updated_at, and draft.

    \n
  • \n
\n

Make sure to include additional fields. These fields are indexed and used to source\n recommendations.

" } } }, @@ -143,14 +149,14 @@ "assistantId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant.

", "smithy.api#required": {} } }, "assistantArn": { "target": "com.amazonaws.qconnect#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q assistant.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q in Connect assistant.

", "smithy.api#required": {} } }, @@ -190,12 +196,12 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it.

" + "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base.

" } } }, "traits": { - "smithy.api#documentation": "

The data that is input into Amazon Q as a result of the assistant association.

" + "smithy.api#documentation": "

The data that is input into Amazon Q in Connect as a result of the assistant association.

" } }, "com.amazonaws.qconnect#AssistantAssociationOutputData": { @@ -232,14 +238,14 @@ "assistantId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant.

", "smithy.api#required": {} } }, "assistantArn": { "target": "com.amazonaws.qconnect#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q assistant.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q in Connect assistant.

", "smithy.api#required": {} } }, @@ -285,12 +291,12 @@ "type": { "target": "com.amazonaws.qconnect#AssistantCapabilityType", "traits": { - "smithy.api#documentation": "

The type of Amazon Q assistant capability.

" + "smithy.api#documentation": "

The type of Amazon Q in Connect assistant capability.

" } } }, "traits": { - "smithy.api#documentation": "

The capability configuration for an Amazon Q assistant.

" + "smithy.api#documentation": "

The capability configuration for an Amazon Q in Connect assistant.

" } }, "com.amazonaws.qconnect#AssistantCapabilityType": { @@ -314,14 +320,14 @@ "assistantId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant.

", "smithy.api#required": {} } }, "assistantArn": { "target": "com.amazonaws.qconnect#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q assistant.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q in Connect assistant.

", "smithy.api#required": {} } }, @@ -361,19 +367,19 @@ "serverSideEncryptionConfiguration": { "target": "com.amazonaws.qconnect#ServerSideEncryptionConfiguration", "traits": { - "smithy.api#documentation": "

The configuration information for the customer managed key used for encryption.

\n

This KMS key must have a policy that allows kms:CreateGrant,\n kms:DescribeKey, kms:Decrypt, and\n kms:GenerateDataKey* permissions to the IAM identity using the\n key to invoke Amazon Q. To use Amazon Q with chat, the key policy must also allow\n kms:Decrypt, kms:GenerateDataKey*, and\n kms:DescribeKey permissions to the connect.amazonaws.com service\n principal.

\n

For more information about setting up a customer managed key for Amazon Q, see Enable Amazon Q in Connect for\n your instance.

" + "smithy.api#documentation": "

The configuration information for the customer managed key used for encryption.

\n

This KMS key must have a policy that allows kms:CreateGrant,\n kms:DescribeKey, kms:Decrypt, and\n kms:GenerateDataKey* permissions to the IAM identity using the\n key to invoke Amazon Q in Connect. To use Amazon Q in Connect with chat, the key policy must also allow\n kms:Decrypt, kms:GenerateDataKey*, and\n kms:DescribeKey permissions to the connect.amazonaws.com service\n principal.

\n

For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for\n your instance.

" } }, "integrationConfiguration": { "target": "com.amazonaws.qconnect#AssistantIntegrationConfiguration", "traits": { - "smithy.api#documentation": "

The configuration information for the Amazon Q assistant integration.

" + "smithy.api#documentation": "

The configuration information for the Amazon Q in Connect assistant integration.

" } }, "capabilityConfiguration": { "target": "com.amazonaws.qconnect#AssistantCapabilityConfiguration", "traits": { - "smithy.api#documentation": "

The configuration information for the Amazon Q assistant capability.

" + "smithy.api#documentation": "

The configuration information for the Amazon Q in Connect assistant capability.

" } } }, @@ -392,7 +398,7 @@ } }, "traits": { - "smithy.api#documentation": "

The configuration information for the Amazon Q assistant integration.

" + "smithy.api#documentation": "

The configuration information for the Amazon Q in Connect assistant integration.

" } }, "com.amazonaws.qconnect#AssistantList": { @@ -438,14 +444,14 @@ "assistantId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant.

", "smithy.api#required": {} } }, "assistantArn": { "target": "com.amazonaws.qconnect#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q assistant.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q in Connect assistant.

", "smithy.api#required": {} } }, @@ -485,19 +491,19 @@ "serverSideEncryptionConfiguration": { "target": "com.amazonaws.qconnect#ServerSideEncryptionConfiguration", "traits": { - "smithy.api#documentation": "

The configuration information for the customer managed key used for encryption.

\n

This KMS key must have a policy that allows kms:CreateGrant,\n kms:DescribeKey, kms:Decrypt, and\n kms:GenerateDataKey* permissions to the IAM identity using the\n key to invoke Amazon Q. To use Amazon Q with chat, the key policy must also allow\n kms:Decrypt, kms:GenerateDataKey*, and\n kms:DescribeKey permissions to the connect.amazonaws.com service\n principal.

\n

For more information about setting up a customer managed key for Amazon Q, see Enable Amazon Q in Connect for\n your instance.

" + "smithy.api#documentation": "

The configuration information for the customer managed key used for encryption.

\n

This KMS key must have a policy that allows kms:CreateGrant,\n kms:DescribeKey, kms:Decrypt, and\n kms:GenerateDataKey* permissions to the IAM identity using the\n key to invoke Amazon Q in Connect. To use Amazon Q in Connect with chat, the key policy must also allow\n kms:Decrypt, kms:GenerateDataKey*, and\n kms:DescribeKey permissions to the connect.amazonaws.com service\n principal.

\n

For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for\n your instance.

" } }, "integrationConfiguration": { "target": "com.amazonaws.qconnect#AssistantIntegrationConfiguration", "traits": { - "smithy.api#documentation": "

The configuration information for the Amazon Q assistant integration.

" + "smithy.api#documentation": "

The configuration information for the Amazon Q in Connect assistant integration.

" } }, "capabilityConfiguration": { "target": "com.amazonaws.qconnect#AssistantCapabilityConfiguration", "traits": { - "smithy.api#documentation": "

The configuration information for the Amazon Q assistant capability.

" + "smithy.api#documentation": "

The configuration information for the Amazon Q in Connect assistant capability.

" } } }, @@ -688,7 +694,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it.

", + "smithy.api#documentation": "

The identifier of the knowledge base.

", "smithy.api#required": {} } }, @@ -730,7 +736,7 @@ "metadata": { "target": "com.amazonaws.qconnect#ContentMetadata", "traits": { - "smithy.api#documentation": "

A key/value map to store attributes without affecting tagging or recommendations. \nFor example, when synchronizing data between an external system and Amazon Q, you can store an external version identifier as metadata to utilize for determining drift.

", + "smithy.api#documentation": "

A key/value map to store attributes without affecting tagging or recommendations. \nFor example, when synchronizing data between an external system and Amazon Q in Connect, you can store an external version identifier as metadata to utilize for determining drift.

", "smithy.api#required": {} } }, @@ -837,7 +843,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it.

" + "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base.

" } }, "contentArn": { @@ -919,7 +925,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it.

", + "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base.

", "smithy.api#required": {} } }, @@ -961,7 +967,7 @@ "metadata": { "target": "com.amazonaws.qconnect#ContentMetadata", "traits": { - "smithy.api#documentation": "

A key/value map to store attributes without affecting tagging or recommendations. \nFor example, when synchronizing data between an external system and Amazon Q, you can store an external version identifier as metadata to utilize for determining drift.

", + "smithy.api#documentation": "

A key/value map to store attributes without affecting tagging or recommendations. \nFor example, when synchronizing data between an external system and Amazon Q in Connect, you can store an external version identifier as metadata to utilize for determining drift.

", "smithy.api#required": {} } }, @@ -1076,7 +1082,7 @@ "assistantId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1160,7 +1166,7 @@ "serverSideEncryptionConfiguration": { "target": "com.amazonaws.qconnect#ServerSideEncryptionConfiguration", "traits": { - "smithy.api#documentation": "

The configuration information for the customer managed key used for encryption.

\n

The customer managed key must have a policy that allows kms:CreateGrant,\n kms:DescribeKey, kms:Decrypt, and\n kms:GenerateDataKey* permissions to the IAM identity using the\n key to invoke Amazon Q. To use Amazon Q with chat, the key policy must also allow\n kms:Decrypt, kms:GenerateDataKey*, and\n kms:DescribeKey permissions to the connect.amazonaws.com service\n principal.

\n

For more information about setting up a customer managed key for Amazon Q, see Enable Amazon Q in Connect for\n your instance.

" + "smithy.api#documentation": "

The configuration information for the customer managed key used for encryption.

\n

The customer managed key must have a policy that allows kms:CreateGrant,\n kms:DescribeKey, kms:Decrypt, and\n kms:GenerateDataKey* permissions to the IAM identity using the\n key to invoke Amazon Q in Connect. To use Amazon Q in Connect with chat, the key policy must also allow\n kms:Decrypt, kms:GenerateDataKey*, and\n kms:DescribeKey permissions to the connect.amazonaws.com service\n principal.

\n

For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for\n your instance.

" } } } @@ -1202,7 +1208,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates Amazon Q content. Before to calling this API, use StartContentUpload to\n upload an asset.

", + "smithy.api#documentation": "

Creates Amazon Q in Connect content. Before to calling this API, use StartContentUpload to upload an asset.

", "smithy.api#http": { "uri": "/knowledgeBases/{knowledgeBaseId}/contents", "method": "POST" @@ -1216,7 +1222,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1224,7 +1230,7 @@ "name": { "target": "com.amazonaws.qconnect#Name", "traits": { - "smithy.api#documentation": "

The name of the content. Each piece of content in a knowledge base must have a unique\n name. You can retrieve a piece of content using only its knowledge base and its name with the\n SearchContent API.

", + "smithy.api#documentation": "

The name of the content. Each piece of content in a knowledge base must have a unique\n name. You can retrieve a piece of content using only its knowledge base and its name with the\n SearchContent\n API.

", "smithy.api#required": {} } }, @@ -1243,7 +1249,7 @@ "metadata": { "target": "com.amazonaws.qconnect#ContentMetadata", "traits": { - "smithy.api#documentation": "

A key/value map to store attributes without affecting tagging or recommendations. \nFor example, when synchronizing data between an external system and Amazon Q, you can store an external version identifier as metadata to utilize for determining drift.

" + "smithy.api#documentation": "

A key/value map to store attributes without affecting tagging or recommendations. \nFor example, when synchronizing data between an external system and Amazon Q in Connect, you can store an external version identifier as metadata to utilize for determining drift.

" } }, "uploadId": { @@ -1349,7 +1355,7 @@ "serverSideEncryptionConfiguration": { "target": "com.amazonaws.qconnect#ServerSideEncryptionConfiguration", "traits": { - "smithy.api#documentation": "

The configuration information for the customer managed key used for encryption.

\n

This KMS key must have a policy that allows kms:CreateGrant,\n kms:DescribeKey, kms:Decrypt, and\n kms:GenerateDataKey* permissions to the IAM identity using the\n key to invoke Amazon Q.

\n

For more information about setting up a customer managed key for Amazon Q, see Enable Amazon Q in Connect for\n your instance.

" + "smithy.api#documentation": "

The configuration information for the customer managed key used for encryption.

\n

This KMS key must have a policy that allows kms:CreateGrant,\n kms:DescribeKey, kms:Decrypt, and\n kms:GenerateDataKey* permissions to the IAM identity using the\n key to invoke Amazon Q in Connect.

\n

For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for\n your instance.

" } }, "description": { @@ -1403,7 +1409,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an Amazon Q quick response.

", + "smithy.api#documentation": "

Creates an Amazon Q in Connect quick response.

", "smithy.api#http": { "uri": "/knowledgeBases/{knowledgeBaseId}/quickResponses", "method": "POST" @@ -1417,7 +1423,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1439,13 +1445,13 @@ "contentType": { "target": "com.amazonaws.qconnect#QuickResponseType", "traits": { - "smithy.api#documentation": "

The media type of the quick response content.

\n
    \n
  • \n

    Use application/x.quickresponse;format=plain for a quick response written in plain text.

    \n
  • \n
  • \n

    Use application/x.quickresponse;format=markdown for a quick response written in richtext.

    \n
  • \n
" + "smithy.api#documentation": "

The media type of the quick response content.

\n
    \n
  • \n

    Use application/x.quickresponse;format=plain for a quick response written\n in plain text.

    \n
  • \n
  • \n

    Use application/x.quickresponse;format=markdown for a quick response\n written in richtext.

    \n
  • \n
" } }, "groupingConfiguration": { "target": "com.amazonaws.qconnect#GroupingConfiguration", "traits": { - "smithy.api#documentation": "

The configuration information of the user groups that the quick response is accessible to.

" + "smithy.api#documentation": "

The configuration information of the user groups that the quick response is accessible\n to.

" } }, "description": { @@ -1457,7 +1463,7 @@ "shortcutKey": { "target": "com.amazonaws.qconnect#ShortCutKey", "traits": { - "smithy.api#documentation": "

The shortcut key of the quick response. The value should be unique across the\n knowledge base.\n

" + "smithy.api#documentation": "

The shortcut key of the quick response. The value should be unique across the\n knowledge base.

" } }, "isActive": { @@ -1475,7 +1481,7 @@ "language": { "target": "com.amazonaws.qconnect#LanguageCode", "traits": { - "smithy.api#documentation": "

The language code value for the language in which the quick response is written. The supported language codes include de_DE, en_US, es_ES,\n fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR,\n zh_CN, zh_TW\n

" + "smithy.api#documentation": "

The language code value for the language in which the quick response is written. The supported language codes include de_DE, en_US, es_ES,\n fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR,\n zh_CN, zh_TW\n

" } }, "clientToken": { @@ -1519,6 +1525,9 @@ "target": "com.amazonaws.qconnect#CreateSessionResponse" }, "errors": [ + { + "target": "com.amazonaws.qconnect#AccessDeniedException" + }, { "target": "com.amazonaws.qconnect#ConflictException" }, @@ -1530,7 +1539,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a session. A session is a contextual container used for generating\n recommendations. Amazon Connect creates a new Amazon Q session for each contact on which\n Amazon Q is enabled.

", + "smithy.api#documentation": "

Creates a session. A session is a contextual container used for generating\n recommendations. Amazon Connect creates a new Amazon Q in Connect session for each contact on which\n Amazon Q in Connect is enabled.

", "smithy.api#http": { "uri": "/assistants/{assistantId}/sessions", "method": "POST" @@ -1551,7 +1560,7 @@ "assistantId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1574,6 +1583,12 @@ "traits": { "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" } + }, + "tagFilter": { + "target": "com.amazonaws.qconnect#TagFilter", + "traits": { + "smithy.api#documentation": "

An object that can be used to specify Tag conditions.

" + } } } }, @@ -1731,7 +1746,7 @@ "assistantId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1748,7 +1763,7 @@ "assistantId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1794,7 +1809,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1851,7 +1866,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it.

", + "smithy.api#documentation": "

The identifier of the knowledge base.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1960,7 +1975,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The knowledge base from which the quick response is deleted. The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it.

", + "smithy.api#documentation": "

The knowledge base from which the quick response is deleted. The identifier of the knowledge base.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2276,7 +2291,7 @@ "assistantId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2300,7 +2315,7 @@ "assistantId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2360,7 +2375,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2420,7 +2435,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2538,7 +2553,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2645,7 +2660,7 @@ "smithy.api#deprecated": { "message": "GetRecommendations API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications." }, - "smithy.api#documentation": "

Retrieves recommendations for the specified session. To avoid retrieving the same\n recommendations in subsequent calls, use NotifyRecommendationsReceived. This API supports long-polling behavior with the\n waitTimeSeconds parameter. Short poll is the default behavior and only returns\n recommendations already available. To perform a manual query against an assistant, use QueryAssistant.

", + "smithy.api#documentation": "\n

This API will be discontinued starting June 1, 2024. To receive generative responses\n after March 1, 2024, you will need to create a new Assistant in the Amazon Connect\n console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into\n your applications.

\n
\n

Retrieves recommendations for the specified session. To avoid retrieving the same\n recommendations in subsequent calls, use NotifyRecommendationsReceived. This API supports long-polling behavior with the\n waitTimeSeconds parameter. Short poll is the default behavior and only returns\n recommendations already available. To perform a manual query against an assistant, use QueryAssistant.

", "smithy.api#http": { "uri": "/assistants/{assistantId}/sessions/{sessionId}/recommendations", "method": "GET" @@ -2659,7 +2674,7 @@ "assistantId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2741,7 +2756,7 @@ "assistantId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2773,18 +2788,18 @@ "criteria": { "target": "com.amazonaws.qconnect#GroupingCriteria", "traits": { - "smithy.api#documentation": "

The criteria used for grouping Amazon Q users.

\n

The following is the list of supported criteria values.

\n " + "smithy.api#documentation": "

The criteria used for grouping Amazon Q in Connect users.

\n

The following is the list of supported criteria values.

\n " } }, "values": { "target": "com.amazonaws.qconnect#GroupingValues", "traits": { - "smithy.api#documentation": "

The list of values that define different groups of Amazon Q users.

\n
    \n
  • \n

    When setting criteria to RoutingProfileArn, you need to provide a list of\n ARNs of Amazon Connect routing profiles as values of this parameter.

    \n
  • \n
" + "smithy.api#documentation": "

The list of values that define different groups of Amazon Q in Connect users.

\n " } } }, "traits": { - "smithy.api#documentation": "

The configuration information of the grouping of Amazon Q users.

" + "smithy.api#documentation": "

The configuration information of the grouping of Amazon Q in Connect users.

" } }, "com.amazonaws.qconnect#GroupingCriteria": { @@ -2872,7 +2887,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it.

", + "smithy.api#documentation": "

The identifier of the knowledge base.

", "smithy.api#required": {} } }, @@ -2944,7 +2959,7 @@ "metadata": { "target": "com.amazonaws.qconnect#ContentMetadata", "traits": { - "smithy.api#documentation": "

The metadata fields of the imported Amazon Q resources.

" + "smithy.api#documentation": "

The metadata fields of the imported Amazon Q in Connect resources.

" } }, "externalSourceConfiguration": { @@ -3005,7 +3020,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it.

", + "smithy.api#documentation": "

The identifier of the knowledge base.

", "smithy.api#required": {} } }, @@ -3056,13 +3071,13 @@ "metadata": { "target": "com.amazonaws.qconnect#ContentMetadata", "traits": { - "smithy.api#documentation": "

The metadata fields of the imported Amazon Q resources.

" + "smithy.api#documentation": "

The metadata fields of the imported Amazon Q in Connect resources.

" } }, "externalSourceConfiguration": { "target": "com.amazonaws.qconnect#ExternalSourceConfiguration", "traits": { - "smithy.api#documentation": "

The configuration information of the external source that the resource data are imported from.

" + "smithy.api#documentation": "

The configuration information of the external source that the resource data are imported\n from.

" } } }, @@ -3151,7 +3166,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it.

" + "smithy.api#documentation": "

The identifier of the knowledge base.

" } }, "knowledgeBaseArn": { @@ -3171,7 +3186,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it.

", + "smithy.api#documentation": "

The identifier of the knowledge base.

", "smithy.api#required": {} } }, @@ -3225,7 +3240,7 @@ "serverSideEncryptionConfiguration": { "target": "com.amazonaws.qconnect#ServerSideEncryptionConfiguration", "traits": { - "smithy.api#documentation": "

The configuration information for the customer managed key used for encryption.

\n

This KMS key must have a policy that allows kms:CreateGrant,\n kms:DescribeKey, kms:Decrypt, and\n kms:GenerateDataKey* permissions to the IAM identity using the\n key to invoke Amazon Q.

\n

For more information about setting up a customer managed key for Amazon Q, see Enable Amazon Q in Connect for\n your instance.

" + "smithy.api#documentation": "

The configuration information for the customer managed key used for encryption.

\n

This KMS key must have a policy that allows kms:CreateGrant,\n kms:DescribeKey, kms:Decrypt, and\n kms:GenerateDataKey* permissions to the IAM identity using the\n key to invoke Amazon Q in Connect.

\n

For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for\n your instance.

" } }, "description": { @@ -3293,7 +3308,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it.

", + "smithy.api#documentation": "

The identifier of the knowledge base.

", "smithy.api#required": {} } }, @@ -3340,7 +3355,7 @@ "serverSideEncryptionConfiguration": { "target": "com.amazonaws.qconnect#ServerSideEncryptionConfiguration", "traits": { - "smithy.api#documentation": "

The configuration information for the customer managed key used for encryption.

\n

This KMS key must have a policy that allows kms:CreateGrant,\n kms:DescribeKey, kms:Decrypt, and\n kms:GenerateDataKey* permissions to the IAM identity using the\n key to invoke Amazon Q.

\n

For more information about setting up a customer managed key for Amazon Q, see Enable Amazon Q in Connect for\n your instance.

" + "smithy.api#documentation": "

The configuration information for the customer managed key used for encryption.

\n

This KMS key must have a policy that allows kms:CreateGrant,\n kms:DescribeKey, kms:Decrypt, and\n kms:GenerateDataKey* permissions to the IAM identity using the\n key to invoke Amazon Q in Connect.

\n

For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for\n your instance.

" } }, "description": { @@ -3447,7 +3462,7 @@ "assistantId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3594,7 +3609,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3670,7 +3685,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3823,7 +3838,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4009,7 +4024,7 @@ "assistantId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4060,6 +4075,32 @@ } } }, + "com.amazonaws.qconnect#OrCondition": { + "type": "union", + "members": { + "andConditions": { + "target": "com.amazonaws.qconnect#AndConditions", + "traits": { + "smithy.api#documentation": "

A list of conditions which would be applied together with an AND condition.

" + } + }, + "tagCondition": { + "target": "com.amazonaws.qconnect#TagCondition", + "traits": { + "smithy.api#documentation": "

A leaf node condition which can be used to specify a tag condition.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of conditions which would be applied together with an OR condition.

" + } + }, + "com.amazonaws.qconnect#OrConditions": { + "type": "list", + "member": { + "target": "com.amazonaws.qconnect#OrCondition" + } + }, "com.amazonaws.qconnect#Order": { "type": "string", "traits": { @@ -4127,7 +4168,7 @@ } ], "traits": { - "smithy.api#documentation": "

Provides feedback against the specified assistant for the specified target. This API only supports generative targets.

", + "smithy.api#documentation": "

Provides feedback against the specified assistant for the specified target. This API only\n supports generative targets.

", "smithy.api#http": { "uri": "/assistants/{assistantId}/feedback", "method": "PUT" @@ -4141,7 +4182,7 @@ "assistantId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4178,14 +4219,14 @@ "assistantId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant.

", "smithy.api#required": {} } }, "assistantArn": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q assistant.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q in Connect assistant.

", "smithy.api#required": {} } }, @@ -4241,7 +4282,7 @@ "smithy.api#deprecated": { "message": "QueryAssistant API will be discontinued starting June 1, 2024. To receive generative responses after March 1, 2024 you will need to create a new Assistant in the Connect console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into your applications." }, - "smithy.api#documentation": "

Performs a manual search against the specified assistant. To retrieve recommendations for\n an assistant, use GetRecommendations.\n

", + "smithy.api#documentation": "\n

This API will be discontinued starting June 1, 2024. To receive generative responses\n after March 1, 2024, you will need to create a new Assistant in the Amazon Connect\n console and integrate the Amazon Q in Connect JavaScript library (amazon-q-connectjs) into\n your applications.

\n
\n

Performs a manual search against the specified assistant. To retrieve recommendations for\n an assistant, use GetRecommendations.

", "smithy.api#http": { "uri": "/assistants/{assistantId}/query", "method": "POST" @@ -4264,7 +4305,7 @@ "assistantId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4291,7 +4332,7 @@ "sessionId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q session. Can be either the ID or the ARN. URLs cannot\n contain the ARN.

" + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect session. Can be either the ID or the ARN. URLs cannot\n contain the ARN.

" } }, "queryCondition": { @@ -4538,7 +4579,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#required": {} } }, @@ -4552,7 +4593,7 @@ "contentType": { "target": "com.amazonaws.qconnect#QuickResponseType", "traits": { - "smithy.api#documentation": "

The media type of the quick response content.

\n
    \n
  • \n

    Use application/x.quickresponse;format=plain for quick response written in plain text.

    \n
  • \n
  • \n

    Use application/x.quickresponse;format=markdown for quick response written in richtext.

    \n
  • \n
", + "smithy.api#documentation": "

The media type of the quick response content.

\n
    \n
  • \n

    Use application/x.quickresponse;format=plain for quick response written\n in plain text.

    \n
  • \n
  • \n

    Use application/x.quickresponse;format=markdown for quick response\n written in richtext.

    \n
  • \n
", "smithy.api#required": {} } }, @@ -4594,7 +4635,7 @@ "groupingConfiguration": { "target": "com.amazonaws.qconnect#GroupingConfiguration", "traits": { - "smithy.api#documentation": "

The configuration information of the user groups that the quick response is accessible to.

" + "smithy.api#documentation": "

The configuration information of the user groups that the quick response is accessible\n to.

" } }, "shortcutKey": { @@ -4606,7 +4647,7 @@ "lastModifiedBy": { "target": "com.amazonaws.qconnect#GenericArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the user who last updated the quick response data.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the user who last updated the quick response\n data.

" } }, "isActive": { @@ -4618,7 +4659,7 @@ "channels": { "target": "com.amazonaws.qconnect#Channels", "traits": { - "smithy.api#documentation": "

The Amazon Connect contact channels this quick response applies to. The supported contact channel types include Chat.

" + "smithy.api#documentation": "

The Amazon Connect contact channels this quick response applies to.\n The supported contact channel types include Chat.

" } }, "language": { @@ -4809,13 +4850,13 @@ "allowFuzziness": { "target": "smithy.api#Boolean", "traits": { - "smithy.api#documentation": "

Whether the query expects only exact matches on the attribute field values. The results of the query will only include exact matches if this parameter is set to false.

" + "smithy.api#documentation": "

Whether the query expects only exact matches on the attribute field values. The results of\n the query will only include exact matches if this parameter is set to false.

" } }, "priority": { "target": "com.amazonaws.qconnect#Priority", "traits": { - "smithy.api#documentation": "

The importance of the attribute field when calculating query result relevancy scores.\n The value set for this parameter affects the ordering of search results.

" + "smithy.api#documentation": "

The importance of the attribute field when calculating query result relevancy scores. The\n value set for this parameter affects the ordering of search results.

" } } }, @@ -4925,7 +4966,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#required": {} } }, @@ -4939,7 +4980,7 @@ "contentType": { "target": "com.amazonaws.qconnect#QuickResponseType", "traits": { - "smithy.api#documentation": "

The media type of the quick response content.

\n
    \n
  • \n

    Use application/x.quickresponse;format=plain for quick response written in plain text.

    \n
  • \n
  • \n

    Use application/x.quickresponse;format=markdown for quick response written in richtext.

    \n
  • \n
", + "smithy.api#documentation": "

The media type of the quick response content.

\n
    \n
  • \n

    Use application/x.quickresponse;format=plain for quick response written\n in plain text.

    \n
  • \n
  • \n

    Use application/x.quickresponse;format=markdown for quick response\n written in richtext.

    \n
  • \n
", "smithy.api#required": {} } }, @@ -4989,7 +5030,7 @@ "groupingConfiguration": { "target": "com.amazonaws.qconnect#GroupingConfiguration", "traits": { - "smithy.api#documentation": "

The configuration information of the user groups that the quick response is accessible to.

" + "smithy.api#documentation": "

The configuration information of the user groups that the quick response is accessible\n to.

" } }, "shortcutKey": { @@ -5001,13 +5042,13 @@ "lastModifiedBy": { "target": "com.amazonaws.qconnect#GenericArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the user who last updated the quick response search result data.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the user who last updated the quick response search\n result data.

" } }, "channels": { "target": "com.amazonaws.qconnect#Channels", "traits": { - "smithy.api#documentation": "

The Amazon Connect contact channels this quick response applies to. The supported contact channel types include Chat.

" + "smithy.api#documentation": "

The Amazon Connect contact channels this quick response applies to.\n The supported contact channel types include Chat.

" } }, "language": { @@ -5019,13 +5060,13 @@ "attributesNotInterpolated": { "target": "com.amazonaws.qconnect#ContactAttributeKeys", "traits": { - "smithy.api#documentation": "

The user defined contact attributes that are not resolved when the search result is returned.

" + "smithy.api#documentation": "

The user defined contact attributes that are not resolved when the search result is\n returned.

" } }, "attributesInterpolated": { "target": "com.amazonaws.qconnect#ContactAttributeKeys", "traits": { - "smithy.api#documentation": "

The user defined contact attributes that are resolved when the search result is returned.

" + "smithy.api#documentation": "

The user defined contact attributes that are resolved when the search result is\n returned.

" } }, "tags": { @@ -5119,7 +5160,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it.

", + "smithy.api#documentation": "

The identifier of the knowledge base.

", "smithy.api#required": {} } }, @@ -5133,7 +5174,7 @@ "contentType": { "target": "com.amazonaws.qconnect#QuickResponseType", "traits": { - "smithy.api#documentation": "

The media type of the quick response content.

\n
    \n
  • \n

    Use application/x.quickresponse;format=plain for quick response written in plain text.

    \n
  • \n
  • \n

    Use application/x.quickresponse;format=markdown for quick response written in richtext.

    \n
  • \n
", + "smithy.api#documentation": "

The media type of the quick response content.

\n
    \n
  • \n

    Use application/x.quickresponse;format=plain for quick response written\n in plain text.

    \n
  • \n
  • \n

    Use application/x.quickresponse;format=markdown for quick response\n written in richtext.

    \n
  • \n
", "smithy.api#required": {} } }, @@ -5169,7 +5210,7 @@ "lastModifiedBy": { "target": "com.amazonaws.qconnect#GenericArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the user who last updated the quick response data.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the user who last updated the quick response\n data.

" } }, "isActive": { @@ -5181,7 +5222,7 @@ "channels": { "target": "com.amazonaws.qconnect#Channels", "traits": { - "smithy.api#documentation": "

The Amazon Connect contact channels this quick response applies to. The supported contact channel types include Chat.

" + "smithy.api#documentation": "

The Amazon Connect contact channels this quick response applies to.\n The supported contact channel types include Chat.

" } }, "tags": { @@ -5502,7 +5543,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5654,7 +5695,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5724,7 +5765,7 @@ } ], "traits": { - "smithy.api#documentation": "

Searches existing Amazon Q quick responses in an Amazon Q knowledge base.

", + "smithy.api#documentation": "

Searches existing Amazon Q in Connect quick responses in an Amazon Q in Connect knowledge base.

", "smithy.api#http": { "uri": "/knowledgeBases/{knowledgeBaseId}/search/quickResponses", "method": "POST" @@ -5773,7 +5814,7 @@ "attributes": { "target": "com.amazonaws.qconnect#ContactAttributes", "traits": { - "smithy.api#documentation": "

The user-defined Amazon Connect contact attributes to be resolved when search results are returned.

" + "smithy.api#documentation": "

The user-defined Amazon Connect contact attributes to be resolved when search\n results are returned.

" } } }, @@ -5856,7 +5897,7 @@ "assistantId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -5900,7 +5941,7 @@ "kmsKeyId": { "target": "com.amazonaws.qconnect#NonEmptyString", "traits": { - "smithy.api#documentation": "

The customer managed key used for encryption. For more information about setting up a\n customer managed key for Amazon Q, see Enable Amazon Q in Connect for your instance.\n For information about valid ID values, see Key identifiers (KeyId).

" + "smithy.api#documentation": "

The customer managed key used for encryption. For more information about setting up a\n customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for your instance.\n For information about valid ID values, see Key identifiers (KeyId).

" } } }, @@ -5937,6 +5978,9 @@ "read": { "target": "com.amazonaws.qconnect#GetSession" }, + "update": { + "target": "com.amazonaws.qconnect#UpdateSession" + }, "traits": { "aws.api#arn": { "template": "session/{assistantId}/{sessionId}" @@ -5985,6 +6029,12 @@ "traits": { "smithy.api#documentation": "

The configuration information for the session integration.

" } + }, + "tagFilter": { + "target": "com.amazonaws.qconnect#TagFilter", + "traits": { + "smithy.api#documentation": "

An object that can be used to specify Tag conditions.

" + } } }, "traits": { @@ -6031,14 +6081,14 @@ "assistantId": { "target": "com.amazonaws.qconnect#Uuid", "traits": { - "smithy.api#documentation": "

The identifier of the Amazon Q assistant.

", + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant.

", "smithy.api#required": {} } }, "assistantArn": { "target": "com.amazonaws.qconnect#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q assistant.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Q in Connect assistant.

", "smithy.api#required": {} } } @@ -6137,7 +6187,7 @@ } ], "traits": { - "smithy.api#documentation": "

Get a URL to upload content to a knowledge base. To upload content, first make a PUT\n request to the returned URL with your file, making sure to include the required headers. Then\n use CreateContent to finalize the content creation process or UpdateContent to modify an existing resource. You can only upload content to a\n knowledge base of type CUSTOM.

", + "smithy.api#documentation": "

Get a URL to upload content to a knowledge base. To upload content, first make a PUT\n request to the returned URL with your file, making sure to include the required headers. Then\n use CreateContent to\n finalize the content creation process or UpdateContent to\n modify an existing resource. You can only upload content to a knowledge base of type\n CUSTOM.

", "smithy.api#http": { "uri": "/knowledgeBases/{knowledgeBaseId}/upload", "method": "POST" @@ -6150,7 +6200,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6230,7 +6280,7 @@ } ], "traits": { - "smithy.api#documentation": "

Start an asynchronous job to import Amazon Q resources from an uploaded source file. Before calling this API, use StartContentUpload to\n upload an asset that contains the resource data.

\n
    \n
  • \n

    For importing Amazon Q quick responses, you need to upload a csv file including the quick responses. For information about how to format the csv file for importing quick responses, see Import quick responses.

    \n
  • \n
", + "smithy.api#documentation": "

Start an asynchronous job to import Amazon Q in Connect resources from an uploaded source file.\n Before calling this API, use StartContentUpload to\n upload an asset that contains the resource data.

\n
    \n
  • \n

    For importing Amazon Q in Connect quick responses, you need to upload a csv file including the\n quick responses. For information about how to format the csv file for importing quick\n responses, see Import quick responses.

    \n
  • \n
", "smithy.api#http": { "uri": "/knowledgeBases/{knowledgeBaseId}/importJobs", "method": "POST" @@ -6244,7 +6294,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

\n
    \n
  • \n

    For importing Amazon Q quick responses, this should be a QUICK_RESPONSES type knowledge base.

    \n
  • \n
", + "smithy.api#documentation": "

The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

\n
    \n
  • \n

    For importing Amazon Q in Connect quick responses, this should be a QUICK_RESPONSES\n type knowledge base.

    \n
  • \n
", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6252,7 +6302,7 @@ "importJobType": { "target": "com.amazonaws.qconnect#ImportJobType", "traits": { - "smithy.api#documentation": "

The type of the import job.

\n
    \n
  • \n

    For importing quick response resource, set the value to QUICK_RESPONSES.

    \n
  • \n
", + "smithy.api#documentation": "

The type of the import job.

\n
    \n
  • \n

    For importing quick response resource, set the value to\n QUICK_RESPONSES.

    \n
  • \n
", "smithy.api#required": {} } }, @@ -6273,13 +6323,13 @@ "metadata": { "target": "com.amazonaws.qconnect#ContentMetadata", "traits": { - "smithy.api#documentation": "

The metadata fields of the imported Amazon Q resources.

" + "smithy.api#documentation": "

The metadata fields of the imported Amazon Q in Connect resources.

" } }, "externalSourceConfiguration": { "target": "com.amazonaws.qconnect#ExternalSourceConfiguration", "traits": { - "smithy.api#documentation": "

The configuration information of the external source that the resource data are imported from.

" + "smithy.api#documentation": "

The configuration information of the external source that the resource data are imported\n from.

" } } }, @@ -6301,6 +6351,53 @@ "smithy.api#output": {} } }, + "com.amazonaws.qconnect#TagCondition": { + "type": "structure", + "members": { + "key": { + "target": "com.amazonaws.qconnect#TagKey", + "traits": { + "smithy.api#documentation": "

The tag key in the tag condition.

", + "smithy.api#required": {} + } + }, + "value": { + "target": "com.amazonaws.qconnect#TagValue", + "traits": { + "smithy.api#documentation": "

The tag value in the tag condition.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A leaf node condition which can be used to specify a tag condition.\n

" + } + }, + "com.amazonaws.qconnect#TagFilter": { + "type": "union", + "members": { + "tagCondition": { + "target": "com.amazonaws.qconnect#TagCondition", + "traits": { + "smithy.api#documentation": "

A leaf node condition which can be used to specify a tag condition.

" + } + }, + "andConditions": { + "target": "com.amazonaws.qconnect#AndConditions", + "traits": { + "smithy.api#documentation": "

A list of conditions which would be applied together with an AND condition.

" + } + }, + "orConditions": { + "target": "com.amazonaws.qconnect#OrConditions", + "traits": { + "smithy.api#documentation": "

A list of conditions which would be applied together with an OR condition.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that can be used to specify Tag conditions.

" + } + }, "com.amazonaws.qconnect#TagKey": { "type": "string", "traits": { @@ -6531,7 +6628,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN

", + "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base. Can be either the ID or the ARN

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6571,13 +6668,13 @@ "metadata": { "target": "com.amazonaws.qconnect#ContentMetadata", "traits": { - "smithy.api#documentation": "

A key/value map to store attributes without affecting tagging or recommendations. For\n example, when synchronizing data between an external system and Amazon Q, you can store an\n external version identifier as metadata to utilize for determining drift.

" + "smithy.api#documentation": "

A key/value map to store attributes without affecting tagging or recommendations. For\n example, when synchronizing data between an external system and Amazon Q in Connect, you can store an\n external version identifier as metadata to utilize for determining drift.

" } }, "uploadId": { "target": "com.amazonaws.qconnect#UploadId", "traits": { - "smithy.api#documentation": "

A pointer to the uploaded asset. This value is returned by StartContentUpload.\n

" + "smithy.api#documentation": "

A pointer to the uploaded asset. This value is returned by StartContentUpload.

" } } } @@ -6613,7 +6710,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the template URI of a knowledge base. This is only supported for knowledge bases\n of type EXTERNAL. Include a single variable in ${variable} format; this\n interpolated by Amazon Q using ingested content. For example, if you ingest a Salesforce\n article, it has an Id value, and you can set the template URI to\n https://myInstanceName.lightning.force.com/lightning/r/Knowledge__kav/*${Id}*/view.\n

", + "smithy.api#documentation": "

Updates the template URI of a knowledge base. This is only supported for knowledge bases\n of type EXTERNAL. Include a single variable in ${variable} format; this\n interpolated by Amazon Q in Connect using ingested content. For example, if you ingest a Salesforce\n article, it has an Id value, and you can set the template URI to\n https://myInstanceName.lightning.force.com/lightning/r/Knowledge__kav/*${Id}*/view.\n

", "smithy.api#http": { "uri": "/knowledgeBases/{knowledgeBaseId}/templateUri", "method": "POST" @@ -6626,7 +6723,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6677,7 +6774,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates an existing Amazon Q quick response.

", + "smithy.api#documentation": "

Updates an existing Amazon Q in Connect quick response.

", "smithy.api#http": { "uri": "/knowledgeBases/{knowledgeBaseId}/quickResponses/{quickResponseId}", "method": "POST" @@ -6690,7 +6787,7 @@ "knowledgeBaseId": { "target": "com.amazonaws.qconnect#UuidOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the knowledge base. This should not be a QUICK_RESPONSES type knowledge \nbase if you're storing Amazon Q Content resource to it. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#documentation": "

The identifier of the knowledge base. Can be either the ID or the ARN. URLs cannot contain the ARN.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -6718,7 +6815,7 @@ "contentType": { "target": "com.amazonaws.qconnect#QuickResponseType", "traits": { - "smithy.api#documentation": "

The media type of the quick response content.

\n
    \n
  • \n

    Use application/x.quickresponse;format=plain for quick response written in plain text.

    \n
  • \n
  • \n

    Use application/x.quickresponse;format=markdown for quick response written in richtext.

    \n
  • \n
" + "smithy.api#documentation": "

The media type of the quick response content.

\n
    \n
  • \n

    Use application/x.quickresponse;format=plain for quick response written\n in plain text.

    \n
  • \n
  • \n

    Use application/x.quickresponse;format=markdown for quick response\n written in richtext.

    \n
  • \n
" } }, "groupingConfiguration": { @@ -6766,7 +6863,7 @@ "channels": { "target": "com.amazonaws.qconnect#Channels", "traits": { - "smithy.api#documentation": "

The Amazon Connect contact channels this quick response applies to. The supported contact channel types include Chat.

" + "smithy.api#documentation": "

The Amazon Connect contact channels this quick response applies to.\n The supported contact channel types include Chat.

" } }, "language": { @@ -6794,6 +6891,80 @@ "smithy.api#output": {} } }, + "com.amazonaws.qconnect#UpdateSession": { + "type": "operation", + "input": { + "target": "com.amazonaws.qconnect#UpdateSessionRequest" + }, + "output": { + "target": "com.amazonaws.qconnect#UpdateSessionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.qconnect#AccessDeniedException" + }, + { + "target": "com.amazonaws.qconnect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.qconnect#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a session. A session is a contextual container used for generating recommendations.\n Amazon Connect updates the existing Amazon Q in Connect session for each contact on which Amazon Q in Connect\n is enabled.

", + "smithy.api#http": { + "uri": "/assistants/{assistantId}/sessions/{sessionId}", + "method": "POST" + } + } + }, + "com.amazonaws.qconnect#UpdateSessionRequest": { + "type": "structure", + "members": { + "assistantId": { + "target": "com.amazonaws.qconnect#UuidOrArn", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "sessionId": { + "target": "com.amazonaws.qconnect#UuidOrArn", + "traits": { + "smithy.api#documentation": "

The identifier of the session. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.qconnect#Description", + "traits": { + "smithy.api#documentation": "

The description.

" + } + }, + "tagFilter": { + "target": "com.amazonaws.qconnect#TagFilter", + "traits": { + "smithy.api#documentation": "

An object that can be used to specify Tag conditions.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.qconnect#UpdateSessionResponse": { + "type": "structure", + "members": { + "session": { + "target": "com.amazonaws.qconnect#SessionData" + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.qconnect#UploadId": { "type": "string", "traits": { @@ -6890,7 +7061,7 @@ }, "aws.protocols#restJson1": {}, "smithy.api#cors": {}, - "smithy.api#documentation": "\n

\n Powered by Amazon Bedrock: Amazon Web Services implements automated abuse\n detection. Because Amazon Q in Connect is built on Amazon Bedrock, users can take full\n advantage of the controls implemented in Amazon Bedrock to enforce safety, security, and the\n responsible use of artificial intelligence (AI).

\n
\n

Amazon Q in Connect is a generative AI customer service assistant. It is an LLM-enhanced evolution\n of Amazon Connect Wisdom that delivers real-time recommendations to help contact center\n agents resolve customer issues quickly and accurately.

\n

Amazon Q automatically detects customer intent during calls and chats using\n conversational analytics and natural language understanding (NLU). It then provides agents\n with immediate, real-time generative responses and suggested actions, and links to relevant\n documents and articles. Agents can also query Amazon Q directly using natural language or\n keywords to answer customer requests.

\n

Use the Amazon Q in Connect APIs to create an assistant and a knowledge base, for example, or\n manage content by uploading custom files.

\n

For more information, see Use Amazon Q in Connect for generative AI\n powered agent assistance in real-time in the Amazon Connect\n Administrator Guide.

", + "smithy.api#documentation": "\n

\n Powered by Amazon Bedrock: Amazon Web Services implements automated abuse\n detection. Because Amazon Q in Connect is built on Amazon Bedrock, users can take full advantage of\n the controls implemented in Amazon Bedrock to enforce safety, security, and the responsible use of\n artificial intelligence (AI).

\n
\n

Amazon Q in Connect is a generative AI customer service assistant. It is an LLM-enhanced\n evolution of Amazon Connect Wisdom that delivers real-time recommendations to help contact\n center agents resolve customer issues quickly and accurately.

\n

Amazon Q in Connect automatically detects customer intent during calls and chats using conversational\n analytics and natural language understanding (NLU). It then provides agents with immediate,\n real-time generative responses and suggested actions, and links to relevant documents and\n articles. Agents can also query Amazon Q in Connect directly using natural language or keywords to answer\n customer requests.

\n

Use the Amazon Q in Connect APIs to create an assistant and a knowledge base, for example, or\n manage content by uploading custom files.

\n

For more information, see Use Amazon Q in Connect for generative AI\n powered agent assistance in real-time in the Amazon Connect\n Administrator Guide.

", "smithy.api#title": "Amazon Q Connect", "smithy.rules#endpointRuleSet": { "version": "1.0", diff --git a/models/quicksight.json b/models/quicksight.json index 7394a04364..63489f660e 100644 --- a/models/quicksight.json +++ b/models/quicksight.json @@ -866,19 +866,40 @@ "traits": { "smithy.api#documentation": "

The Q search bar that you want to use for anonymous user embedding.

" } + }, + "GenerativeQnA": { + "target": "com.amazonaws.quicksight#AnonymousUserGenerativeQnAEmbeddingConfiguration", + "traits": { + "smithy.api#documentation": "

The Generative Q&A experience that you want to use for anonymous user embedding.

" + } } }, "traits": { "smithy.api#documentation": "

The type of experience you want to embed. For anonymous users, you can embed Amazon QuickSight dashboards.

" } }, + "com.amazonaws.quicksight#AnonymousUserGenerativeQnAEmbeddingConfiguration": { + "type": "structure", + "members": { + "InitialTopicId": { + "target": "com.amazonaws.quicksight#RestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The Amazon QuickSight Q topic ID of the new reader experience topic that you want the anonymous user to see first. This ID is included in the output URL. When the URL in response is accessed, Amazon QuickSight renders the Generative Q&A experience with this new reader experience topic pre selected.

\n

The Amazon Resource Name (ARN) of this Q new reader experience topic must be included in the AuthorizedResourceArns parameter. Otherwise, the request fails with an InvalidParameterValueException error.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The settings that you want to use for the Generative Q&A experience.

" + } + }, "com.amazonaws.quicksight#AnonymousUserQSearchBarEmbeddingConfiguration": { "type": "structure", "members": { "InitialTopicId": { "target": "com.amazonaws.quicksight#RestrictiveResourceId", "traits": { - "smithy.api#documentation": "

The QuickSight Q topic ID of the topic that you want the anonymous user to see first. This ID is included in the output URL. When the URL in response is accessed, Amazon QuickSight renders the Q search bar with this topic pre-selected.

\n

The Amazon Resource Name (ARN) of this Q topic must be included in the AuthorizedResourceArns parameter. Otherwise, the request will fail with InvalidParameterValueException.

", + "smithy.api#documentation": "

The Amazon QuickSight Q topic ID of the legacy topic that you want the anonymous user to see first. This ID is included in the output URL. When the URL in response is accessed, Amazon QuickSight renders the Q search bar with this legacy topic pre-selected.

\n

The Amazon Resource Name (ARN) of this Q legacy topic must be included in the AuthorizedResourceArns parameter. Otherwise, the request fails with an InvalidParameterValueException error.

", "smithy.api#required": {} } } @@ -1428,6 +1449,12 @@ "traits": { "smithy.api#enumValue": "RoleArn" } + }, + "PRODUCT_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ProductType" + } } } }, @@ -1779,7 +1806,7 @@ } }, "traits": { - "smithy.api#documentation": "

The option to relax the validation that is required to export each asset. When StrictModeForAllResource is set to true, validation is skipped for specific UI errors.

" + "smithy.api#documentation": "

The option to relax the validation that is required to export each asset. When StrictModeForAllResource is set to false, validation is skipped for specific UI errors.

" } }, "com.amazonaws.quicksight#AssetBundleExportJobWarning": { @@ -2824,6 +2851,32 @@ } } }, + "com.amazonaws.quicksight#AssetBundleImportJobWarning": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.quicksight#Arn", + "traits": { + "smithy.api#documentation": "

The ARN of the resource that the warning occurred for.

" + } + }, + "Message": { + "target": "com.amazonaws.quicksight#NonEmptyString", + "traits": { + "smithy.api#documentation": "

A description of the warning that occurred during an Asset Bundle import job.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a warning that occurred during an Asset Bundle import job.

" + } + }, + "com.amazonaws.quicksight#AssetBundleImportJobWarningList": { + "type": "list", + "member": { + "target": "com.amazonaws.quicksight#AssetBundleImportJobWarning" + } + }, "com.amazonaws.quicksight#AssetBundleImportSource": { "type": "structure", "members": { @@ -4693,7 +4746,7 @@ } }, "traits": { - "smithy.api#documentation": "

The numeric equality type drill down filter.

" + "smithy.api#documentation": "

The category drill down filter.

" } }, "com.amazonaws.quicksight#CategoryFilter": { @@ -4719,6 +4772,12 @@ "smithy.api#documentation": "

The configuration for a CategoryFilter.

", "smithy.api#required": {} } + }, + "DefaultFilterControlConfiguration": { + "target": "com.amazonaws.quicksight#DefaultFilterControlConfiguration", + "traits": { + "smithy.api#documentation": "

The default configurations for the associated controls. This applies only for filters that are scoped to multiple sheets.

" + } } }, "traits": { @@ -6565,8 +6624,7 @@ "Edition": { "target": "com.amazonaws.quicksight#Edition", "traits": { - "smithy.api#documentation": "

The edition of Amazon QuickSight that you want your account to have. Currently, you can\n choose from ENTERPRISE or\n ENTERPRISE_AND_Q.

\n

If you choose ENTERPRISE_AND_Q, the following parameters are\n required:

\n
    \n
  • \n

    \n FirstName\n

    \n
  • \n
  • \n

    \n LastName\n

    \n
  • \n
  • \n

    \n EmailAddress\n

    \n
  • \n
  • \n

    \n ContactNumber\n

    \n
  • \n
", - "smithy.api#required": {} + "smithy.api#documentation": "

The edition of Amazon QuickSight that you want your account to have. Currently, you can\n choose from ENTERPRISE or\n ENTERPRISE_AND_Q.

\n

If you choose ENTERPRISE_AND_Q, the following parameters are\n required:

\n
    \n
  • \n

    \n FirstName\n

    \n
  • \n
  • \n

    \n LastName\n

    \n
  • \n
  • \n

    \n EmailAddress\n

    \n
  • \n
  • \n

    \n ContactNumber\n

    \n
  • \n
" } }, "AuthenticationMethod": { @@ -6619,7 +6677,7 @@ "AdminGroup": { "target": "com.amazonaws.quicksight#GroupsList", "traits": { - "smithy.api#documentation": "

The admin group associated with your Active Directory or IAM Identity Center account. This field is required if ACTIVE_DIRECTORY or IAM_IDENTITY_CENTER is the selected authentication method of the new Amazon QuickSight account.

\n

For more information about using IAM Identity Center in Amazon QuickSight, see Using IAM Identity Center with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide.

" + "smithy.api#documentation": "

The admin group associated with your Active Directory or IAM Identity Center account. Either this field or the AdminProGroup field is required if ACTIVE_DIRECTORY or IAM_IDENTITY_CENTER is the selected authentication method of the new Amazon QuickSight account.

\n

For more information about using IAM Identity Center in Amazon QuickSight, see Using IAM Identity Center with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide.

" } }, "AuthorGroup": { @@ -6634,6 +6692,24 @@ "smithy.api#documentation": "

The reader group associated with your Active Directory or IAM Identity Center account.

\n

For more information about using IAM Identity Center in Amazon QuickSight, see Using IAM Identity Center with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide.

" } }, + "AdminProGroup": { + "target": "com.amazonaws.quicksight#GroupsList", + "traits": { + "smithy.api#documentation": "

The admin pro group associated with your Active Directory or IAM Identity Center account. Either this field or the AdminGroup field is required if ACTIVE_DIRECTORY or IAM_IDENTITY_CENTER is the selected authentication method of the new Amazon QuickSight account.

\n

For more information about using IAM Identity Center in Amazon QuickSight, see Using IAM Identity Center with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide.

" + } + }, + "AuthorProGroup": { + "target": "com.amazonaws.quicksight#GroupsList", + "traits": { + "smithy.api#documentation": "

The author pro group associated with your Active Directory or IAM Identity Center account.

\n

For more information about using IAM Identity Center in Amazon QuickSight, see Using IAM Identity Center with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide.

" + } + }, + "ReaderProGroup": { + "target": "com.amazonaws.quicksight#GroupsList", + "traits": { + "smithy.api#documentation": "

The reader pro group associated with your Active Directory or IAM Identity Center account.

\n

For more information about using IAM Identity Center in Amazon QuickSight, see Using IAM Identity Center with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide.

" + } + }, "FirstName": { "target": "com.amazonaws.quicksight#String", "traits": { @@ -13328,6 +13404,150 @@ } } }, + "com.amazonaws.quicksight#DefaultDateTimePickerControlOptions": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.quicksight#SheetControlDateTimePickerType", + "traits": { + "smithy.api#documentation": "

The date time picker type of the DefaultDateTimePickerControlOptions. Choose one of the following options:

\n
    \n
  • \n

    \n SINGLE_VALUED: The filter condition is a fixed date.

    \n
  • \n
  • \n

    \n DATE_RANGE: The filter condition is a date time range.

    \n
  • \n
" + } + }, + "DisplayOptions": { + "target": "com.amazonaws.quicksight#DateTimePickerControlDisplayOptions", + "traits": { + "smithy.api#documentation": "

The display options of a control.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The default options that correspond to the filter control type of a DateTimePicker.

" + } + }, + "com.amazonaws.quicksight#DefaultFilterControlConfiguration": { + "type": "structure", + "members": { + "Title": { + "target": "com.amazonaws.quicksight#SheetControlTitle", + "traits": { + "smithy.api#documentation": "

The title of the DefaultFilterControlConfiguration. This title is shared by all controls that are tied to this filter.

", + "smithy.api#required": {} + } + }, + "ControlOptions": { + "target": "com.amazonaws.quicksight#DefaultFilterControlOptions", + "traits": { + "smithy.api#documentation": "

The control option for the DefaultFilterControlConfiguration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The default configuration for all dependent controls of the filter.

" + } + }, + "com.amazonaws.quicksight#DefaultFilterControlOptions": { + "type": "structure", + "members": { + "DefaultDateTimePickerOptions": { + "target": "com.amazonaws.quicksight#DefaultDateTimePickerControlOptions", + "traits": { + "smithy.api#documentation": "

The default options that correspond to the filter control type of a DateTimePicker.

" + } + }, + "DefaultListOptions": { + "target": "com.amazonaws.quicksight#DefaultFilterListControlOptions", + "traits": { + "smithy.api#documentation": "

The default options that correspond to the List filter control type.

" + } + }, + "DefaultDropdownOptions": { + "target": "com.amazonaws.quicksight#DefaultFilterDropDownControlOptions", + "traits": { + "smithy.api#documentation": "

The default options that correspond to the Dropdown filter control type.

" + } + }, + "DefaultTextFieldOptions": { + "target": "com.amazonaws.quicksight#DefaultTextFieldControlOptions", + "traits": { + "smithy.api#documentation": "

The default options that correspond to the TextField filter control type.

" + } + }, + "DefaultTextAreaOptions": { + "target": "com.amazonaws.quicksight#DefaultTextAreaControlOptions", + "traits": { + "smithy.api#documentation": "

The default options that correspond to the TextArea filter control type.

" + } + }, + "DefaultSliderOptions": { + "target": "com.amazonaws.quicksight#DefaultSliderControlOptions", + "traits": { + "smithy.api#documentation": "

The default options that correspond to the Slider filter control type.

" + } + }, + "DefaultRelativeDateTimeOptions": { + "target": "com.amazonaws.quicksight#DefaultRelativeDateTimeControlOptions", + "traits": { + "smithy.api#documentation": "

The default options that correspond to the RelativeDateTime filter control type.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The option that corresponds to the control type of the filter.

" + } + }, + "com.amazonaws.quicksight#DefaultFilterDropDownControlOptions": { + "type": "structure", + "members": { + "DisplayOptions": { + "target": "com.amazonaws.quicksight#DropDownControlDisplayOptions", + "traits": { + "smithy.api#documentation": "

The display options of a control.

" + } + }, + "Type": { + "target": "com.amazonaws.quicksight#SheetControlListType", + "traits": { + "smithy.api#documentation": "

The type of the FilterDropDownControl. Choose one of the following options:

\n
    \n
  • \n

    \n MULTI_SELECT: The user can select multiple entries from a dropdown menu.

    \n
  • \n
  • \n

    \n SINGLE_SELECT: The user can select a single entry from a dropdown menu.

    \n
  • \n
" + } + }, + "SelectableValues": { + "target": "com.amazonaws.quicksight#FilterSelectableValues", + "traits": { + "smithy.api#documentation": "

A list of selectable values that are used in a control.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The default options that correspond to the Dropdown filter control type.

" + } + }, + "com.amazonaws.quicksight#DefaultFilterListControlOptions": { + "type": "structure", + "members": { + "DisplayOptions": { + "target": "com.amazonaws.quicksight#ListControlDisplayOptions", + "traits": { + "smithy.api#documentation": "

The display options of a control.

" + } + }, + "Type": { + "target": "com.amazonaws.quicksight#SheetControlListType", + "traits": { + "smithy.api#documentation": "

The type of the DefaultFilterListControlOptions. Choose one of the following options:

\n
    \n
  • \n

    \n MULTI_SELECT: The user can select multiple entries from the list.

    \n
  • \n
  • \n

    \n SINGLE_SELECT: The user can select a single entry from the list.

    \n
  • \n
" + } + }, + "SelectableValues": { + "target": "com.amazonaws.quicksight#FilterSelectableValues", + "traits": { + "smithy.api#documentation": "

A list of selectable values that are used in a control.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The default options that correspond to the List filter control type.

" + } + }, "com.amazonaws.quicksight#DefaultFormatting": { "type": "structure", "members": { @@ -13438,6 +13658,20 @@ "smithy.api#documentation": "

The options that determine the default settings for a paginated layout configuration.

" } }, + "com.amazonaws.quicksight#DefaultRelativeDateTimeControlOptions": { + "type": "structure", + "members": { + "DisplayOptions": { + "target": "com.amazonaws.quicksight#RelativeDateTimeControlDisplayOptions", + "traits": { + "smithy.api#documentation": "

The display options of a control.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The default options that correspond to the RelativeDateTime filter control type.

" + } + }, "com.amazonaws.quicksight#DefaultSectionBasedLayoutConfiguration": { "type": "structure", "members": { @@ -13453,6 +13687,84 @@ "smithy.api#documentation": "

The options that determine the default settings for a section-based layout configuration.

" } }, + "com.amazonaws.quicksight#DefaultSliderControlOptions": { + "type": "structure", + "members": { + "DisplayOptions": { + "target": "com.amazonaws.quicksight#SliderControlDisplayOptions", + "traits": { + "smithy.api#documentation": "

The display options of a control.

" + } + }, + "Type": { + "target": "com.amazonaws.quicksight#SheetControlSliderType", + "traits": { + "smithy.api#documentation": "

The type of the DefaultSliderControlOptions. Choose one of the following options:

\n
    \n
  • \n

    \n SINGLE_POINT: Filter against(equals) a single data point.

    \n
  • \n
  • \n

    \n RANGE: Filter data that is in a specified range.

    \n
  • \n
" + } + }, + "MaximumValue": { + "target": "com.amazonaws.quicksight#Double", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The larger value that is displayed at the right of the slider.

", + "smithy.api#required": {} + } + }, + "MinimumValue": { + "target": "com.amazonaws.quicksight#Double", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The smaller value that is displayed at the left of the slider.

", + "smithy.api#required": {} + } + }, + "StepSize": { + "target": "com.amazonaws.quicksight#Double", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of increments that the slider bar is divided into.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The default options that correspond to the Slider filter control type.

" + } + }, + "com.amazonaws.quicksight#DefaultTextAreaControlOptions": { + "type": "structure", + "members": { + "Delimiter": { + "target": "com.amazonaws.quicksight#TextAreaControlDelimiter", + "traits": { + "smithy.api#documentation": "

The delimiter that is used to separate the lines in text.

" + } + }, + "DisplayOptions": { + "target": "com.amazonaws.quicksight#TextAreaControlDisplayOptions", + "traits": { + "smithy.api#documentation": "

The display options of a control.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The default options that correspond to the TextArea filter control type.

" + } + }, + "com.amazonaws.quicksight#DefaultTextFieldControlOptions": { + "type": "structure", + "members": { + "DisplayOptions": { + "target": "com.amazonaws.quicksight#TextFieldControlDisplayOptions", + "traits": { + "smithy.api#documentation": "

The display options of a control.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The default options that correspond to the TextField filter control type.

" + } + }, "com.amazonaws.quicksight#DeleteAccountCustomization": { "type": "operation", "input": { @@ -16913,6 +17225,12 @@ "traits": { "smithy.api#documentation": "

An optional validation strategy override for all analyses and dashboards to be applied to the resource configuration before import.

" } + }, + "Warnings": { + "target": "com.amazonaws.quicksight#AssetBundleImportJobWarningList", + "traits": { + "smithy.api#documentation": "

An array of warning records that describe all permitted errors that are encountered during the import job.

" + } } }, "traits": { @@ -21847,6 +22165,12 @@ "traits": { "smithy.api#documentation": "

A control from a date filter that is used to specify the relative date.

" } + }, + "CrossSheet": { + "target": "com.amazonaws.quicksight#FilterCrossSheetControl", + "traits": { + "smithy.api#documentation": "

A control from a filter that is scoped across more than one sheet. This represents your filter control on a sheet

" + } } }, "traits": { @@ -21865,6 +22189,34 @@ } } }, + "com.amazonaws.quicksight#FilterCrossSheetControl": { + "type": "structure", + "members": { + "FilterControlId": { + "target": "com.amazonaws.quicksight#ShortRestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the FilterCrossSheetControl.

", + "smithy.api#required": {} + } + }, + "SourceFilterId": { + "target": "com.amazonaws.quicksight#ShortRestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The source filter ID of the FilterCrossSheetControl.

", + "smithy.api#required": {} + } + }, + "CascadingControlConfiguration": { + "target": "com.amazonaws.quicksight#CascadingControlConfiguration", + "traits": { + "smithy.api#documentation": "

The values that are displayed in a control can be configured to only show values that are valid based on what's selected in other controls.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A control from a filter that is scoped across more than one sheet. This represents your filter control on a sheet

" + } + }, "com.amazonaws.quicksight#FilterDateTimePickerControl": { "type": "structure", "members": { @@ -21898,7 +22250,7 @@ "Type": { "target": "com.amazonaws.quicksight#SheetControlDateTimePickerType", "traits": { - "smithy.api#documentation": "

The date time picker type of a FilterDateTimePickerControl. Choose one of the following options:

\n
    \n
  • \n

    \n SINGLE_VALUED: The filter condition is a fixed date.

    \n
  • \n
  • \n

    \n DATE_RANGE: The filter condition is a date time range.

    \n
  • \n
" + "smithy.api#documentation": "

The type of the FilterDropDownControl. Choose one of the following options:

\n
    \n
  • \n

    \n MULTI_SELECT: The user can select multiple entries from a dropdown menu.

    \n
  • \n
  • \n

    \n SINGLE_SELECT: The user can select a single entry from a dropdown menu.

    \n
  • \n
" } } }, @@ -22091,7 +22443,7 @@ "Type": { "target": "com.amazonaws.quicksight#SheetControlListType", "traits": { - "smithy.api#documentation": "

The type of FilterListControl. Choose one of the following options:

\n
    \n
  • \n

    \n MULTI_SELECT: The user can select multiple entries from the list.

    \n
  • \n
  • \n

    \n SINGLE_SELECT: The user can select a single entry from the list.

    \n
  • \n
" + "smithy.api#documentation": "

The type of the FilterListControl. Choose one of the following options:

\n
    \n
  • \n

    \n MULTI_SELECT: The user can select multiple entries from the list.

    \n
  • \n
  • \n

    \n SINGLE_SELECT: The user can select a single entry from the list.

    \n
  • \n
" } }, "SelectableValues": { @@ -22308,14 +22660,14 @@ "Type": { "target": "com.amazonaws.quicksight#SheetControlSliderType", "traits": { - "smithy.api#documentation": "

The type of FilterSliderControl. Choose one of the following options:

\n
    \n
  • \n

    \n SINGLE_POINT: Filter against(equals) a single data point.

    \n
  • \n
  • \n

    \n RANGE: Filter data that is in a specified range.

    \n
  • \n
" + "smithy.api#documentation": "

The type of the FilterSliderControl. Choose one of the following options:

\n
    \n
  • \n

    \n SINGLE_POINT: Filter against(equals) a single data point.

    \n
  • \n
  • \n

    \n RANGE: Filter data that is in a specified range.

    \n
  • \n
" } }, "MaximumValue": { "target": "com.amazonaws.quicksight#Double", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The smaller value that is displayed at the left of the slider.

", + "smithy.api#documentation": "

The larger value that is displayed at the right of the slider.

", "smithy.api#required": {} } }, @@ -22323,7 +22675,7 @@ "target": "com.amazonaws.quicksight#Double", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The larger value that is displayed at the right of the slider.

", + "smithy.api#documentation": "

The smaller value that is displayed at the left of the slider.

", "smithy.api#required": {} } }, @@ -23532,6 +23884,26 @@ "smithy.api#documentation": "

The options that determine the presentation of the arc of a GaugeChartVisual.

" } }, + "com.amazonaws.quicksight#GaugeChartColorConfiguration": { + "type": "structure", + "members": { + "ForegroundColor": { + "target": "com.amazonaws.quicksight#HexColor", + "traits": { + "smithy.api#documentation": "

The foreground color configuration of a GaugeChartVisual.

" + } + }, + "BackgroundColor": { + "target": "com.amazonaws.quicksight#HexColor", + "traits": { + "smithy.api#documentation": "

The background color configuration of a GaugeChartVisual.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The color configuration of a GaugeChartVisual.

" + } + }, "com.amazonaws.quicksight#GaugeChartConditionalFormatting": { "type": "structure", "members": { @@ -23611,6 +23983,12 @@ "smithy.api#documentation": "

The visual palette configuration of a GaugeChartVisual.

" } }, + "ColorConfiguration": { + "target": "com.amazonaws.quicksight#GaugeChartColorConfiguration", + "traits": { + "smithy.api#documentation": "

The color configuration of a GaugeChartVisual.

" + } + }, "Interactions": { "target": "com.amazonaws.quicksight#VisualInteractionOptions", "traits": { @@ -23954,7 +24332,7 @@ "ExperienceConfiguration": { "target": "com.amazonaws.quicksight#RegisteredUserEmbeddingExperienceConfiguration", "traits": { - "smithy.api#documentation": "

The experience you are embedding. For registered users, you can embed Amazon QuickSight dashboards, Amazon QuickSight visuals, the Amazon QuickSight Q search bar, or the entire Amazon QuickSight console.

", + "smithy.api#documentation": "

The experience that you want to embed. For registered users, you can embed Amazon QuickSight dashboards, Amazon QuickSight visuals, the Amazon QuickSight Q search bar, the Amazon QuickSight Generative Q&A experience, or the entire Amazon QuickSight console.

", "smithy.api#required": {} } }, @@ -23975,7 +24353,7 @@ "EmbedUrl": { "target": "com.amazonaws.quicksight#EmbeddingUrl", "traits": { - "smithy.api#documentation": "

The embed URL for the Amazon QuickSight dashboard, visual, Q search bar, or console.

", + "smithy.api#documentation": "

The embed URL for the Amazon QuickSight dashboard, visual, Q search bar, Generative Q&A experience, or console.

", "smithy.api#required": {} } }, @@ -33047,7 +33425,7 @@ } }, "traits": { - "smithy.api#documentation": "

The category drill down filter.

" + "smithy.api#documentation": "

The numeric equality type drill down filter.

" } }, "com.amazonaws.quicksight#NumericEqualityFilter": { @@ -33105,6 +33483,12 @@ "smithy.api#documentation": "

This option determines how null values should be treated when filtering data.

\n
    \n
  • \n

    \n ALL_VALUES: Include null values in filtered results.

    \n
  • \n
  • \n

    \n NULLS_ONLY: Only include null values in filtered results.

    \n
  • \n
  • \n

    \n NON_NULLS_ONLY: Exclude null values from filtered results.

    \n
  • \n
", "smithy.api#required": {} } + }, + "DefaultFilterControlConfiguration": { + "target": "com.amazonaws.quicksight#DefaultFilterControlConfiguration", + "traits": { + "smithy.api#documentation": "

The default configurations for the associated controls. This applies only for filters that are scoped to multiple sheets.

" + } } }, "traits": { @@ -33226,6 +33610,12 @@ "smithy.api#documentation": "

This option determines how null values should be treated when filtering data.

\n
    \n
  • \n

    \n ALL_VALUES: Include null values in filtered results.

    \n
  • \n
  • \n

    \n NULLS_ONLY: Only include null values in filtered results.

    \n
  • \n
  • \n

    \n NON_NULLS_ONLY: Exclude null values from filtered results.

    \n
  • \n
", "smithy.api#required": {} } + }, + "DefaultFilterControlConfiguration": { + "target": "com.amazonaws.quicksight#DefaultFilterControlConfiguration", + "traits": { + "smithy.api#documentation": "

The default configurations for the associated controls. This applies only for filters that are scoped to multiple sheets.

" + } } }, "traits": { @@ -34058,7 +34448,7 @@ "target": "com.amazonaws.quicksight#Double", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The smaller value that is displayed at the left of the slider.

", + "smithy.api#documentation": "

The larger value that is displayed at the right of the slider.

", "smithy.api#required": {} } }, @@ -34066,7 +34456,7 @@ "target": "com.amazonaws.quicksight#Double", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The larger value that is displayed at the right of the slider.

", + "smithy.api#documentation": "

The smaller value that is displayed at the left of the slider.

", "smithy.api#required": {} } }, @@ -34807,7 +35197,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 100 + "max": 500 } } }, @@ -35819,6 +36209,23 @@ } } }, + "com.amazonaws.quicksight#PurchaseMode": { + "type": "enum", + "members": { + "MANUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MANUAL" + } + }, + "AUTO_PURCHASE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTO_PURCHASE" + } + } + } + }, "com.amazonaws.quicksight#PutDataSetRefreshProperties": { "type": "operation", "input": { @@ -36449,6 +36856,9 @@ { "target": "com.amazonaws.quicksight#UpdateRoleCustomPermission" }, + { + "target": "com.amazonaws.quicksight#UpdateSPICECapacityConfiguration" + }, { "target": "com.amazonaws.quicksight#UpdateTemplate" }, @@ -38310,7 +38720,7 @@ "IdentityType": { "target": "com.amazonaws.quicksight#IdentityType", "traits": { - "smithy.api#documentation": "

Amazon QuickSight supports several ways of managing the identity of users. This\n\t\t\tparameter accepts two values:

\n
    \n
  • \n

    \n IAM: A user whose identity maps to an existing IAM user or role.\n\t\t\t\t

    \n
  • \n
  • \n

    \n QUICKSIGHT: A user whose identity is owned and managed internally by\n\t\t\t\t\tAmazon QuickSight.

    \n
  • \n
", + "smithy.api#documentation": "

The identity type that your Amazon QuickSight account uses to manage the identity of users.

", "smithy.api#required": {} } }, @@ -38365,7 +38775,7 @@ "CustomPermissionsName": { "target": "com.amazonaws.quicksight#RoleName", "traits": { - "smithy.api#documentation": "

(Enterprise edition only) The name of the custom permissions profile that you want to\n assign to this user. Customized permissions allows you to control a user's access by\n restricting access the following operations:

\n
    \n
  • \n

    Create and update data sources

    \n
  • \n
  • \n

    Create and update datasets

    \n
  • \n
  • \n

    Create and update email reports

    \n
  • \n
  • \n

    Subscribe to email reports

    \n
  • \n
\n

To add custom permissions to an existing user, use \n UpdateUser\n instead.

\n

A set of custom permissions includes any combination of these restrictions. Currently,\n you need to create the profile names for custom permission sets by using the Amazon QuickSight\n console. Then, you use the RegisterUser API operation to assign the named set of\n permissions to a Amazon QuickSight user.

\n

Amazon QuickSight custom permissions are applied through IAM policies. Therefore, they\n override the permissions typically granted by assigning Amazon QuickSight users to one of the\n default security cohorts in Amazon QuickSight (admin, author, reader).

\n

This feature is available only to Amazon QuickSight Enterprise edition subscriptions.

" + "smithy.api#documentation": "

(Enterprise edition only) The name of the custom permissions profile that you want to\n assign to this user. Customized permissions allows you to control a user's access by\n restricting access the following operations:

\n
    \n
  • \n

    Create and update data sources

    \n
  • \n
  • \n

    Create and update datasets

    \n
  • \n
  • \n

    Create and update email reports

    \n
  • \n
  • \n

    Subscribe to email reports

    \n
  • \n
\n

To add custom permissions to an existing user, use \n UpdateUser\n instead.

\n

A set of custom permissions includes any combination of these restrictions. Currently,\n you need to create the profile names for custom permission sets by using the Amazon QuickSight\n console. Then, you use the RegisterUser API operation to assign the named set of\n permissions to a Amazon QuickSight user.

\n

Amazon QuickSight custom permissions are applied through IAM policies. Therefore, they\n override the permissions typically granted by assigning Amazon QuickSight users to one of the\n default security cohorts in Amazon QuickSight (admin, author, reader, admin pro, author pro, reader pro).

\n

This feature is available only to Amazon QuickSight Enterprise edition subscriptions.

" } }, "ExternalLoginFederationProviderType": { @@ -38527,19 +38937,39 @@ "traits": { "smithy.api#documentation": "

The type of embedding experience. In this case, Amazon QuickSight visuals.

" } + }, + "GenerativeQnA": { + "target": "com.amazonaws.quicksight#RegisteredUserGenerativeQnAEmbeddingConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration details for embedding the Generative Q&A experience.

\n

For more information about embedding the Generative Q&A experience, see Embedding Overview in\n the Amazon QuickSight User Guide.

" + } } }, "traits": { "smithy.api#documentation": "

The type of experience you want to embed. For registered users, you can embed Amazon QuickSight dashboards or the Amazon QuickSight console.

\n \n

Exactly one of the experience configurations is required. You can choose\n Dashboard or QuickSightConsole. You cannot choose more\n than one experience configuration.

\n
" } }, + "com.amazonaws.quicksight#RegisteredUserGenerativeQnAEmbeddingConfiguration": { + "type": "structure", + "members": { + "InitialTopicId": { + "target": "com.amazonaws.quicksight#RestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the new Q reader experience topic that you want to make the starting topic in the Generative Q&A experience.\n You can find a topic ID by navigating to the Topics pane in the Amazon QuickSight application and opening\n a topic. The ID is in the URL for the topic that you open.

\n

If you don't specify an initial topic or you specify a legacy topic, a list of all shared new reader experience topics is shown in the Generative Q&A experience for your readers. When you select an initial new reader experience topic, you can specify whether or not readers are allowed to select other new reader experience topics from the available ones in the list.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that provides information about the configuration of a Generative Q&A experience.

" + } + }, "com.amazonaws.quicksight#RegisteredUserQSearchBarEmbeddingConfiguration": { "type": "structure", "members": { "InitialTopicId": { "target": "com.amazonaws.quicksight#RestrictiveResourceId", "traits": { - "smithy.api#documentation": "

The ID of the Q topic that you want to make the starting topic in the Q search bar.\n You can find a topic ID by navigating to the Topics pane in the Amazon QuickSight application and opening\n a topic. The ID is in the URL for the topic that you open.

\n

If you don't specify an initial topic, a list of all shared topics is shown in the Q bar\n for your readers. When you select an initial topic, you can specify whether or not readers\n are allowed to select other topics from the available ones in the list.

" + "smithy.api#documentation": "

The ID of the legacy Q topic that you want to use as the starting topic in the Q search bar. To locate the topic ID of the topic that you want to use, open the Amazon QuickSight console, navigate to the Topics pane, and choose thre topic that you want to use. The TopicID is located in the URL of the topic that opens. When you select an initial topic, you can specify whether or not readers\n are allowed to select other topics from the list of available topics.

\n

If you don't specify an initial topic or if you specify a new reader experience topic, a list of all shared legacy topics is shown in the Q bar.

" } } }, @@ -38765,6 +39195,12 @@ "traits": { "smithy.api#documentation": "

The configuration for the exclude period of the filter.

" } + }, + "DefaultFilterControlConfiguration": { + "target": "com.amazonaws.quicksight#DefaultFilterControlConfiguration", + "traits": { + "smithy.api#documentation": "

The default configurations for the associated controls. This applies only for filters that are scoped to multiple sheets.

" + } } }, "traits": { @@ -39138,6 +39574,24 @@ "traits": { "smithy.api#enumValue": "READER" } + }, + "ADMIN_PRO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ADMIN_PRO" + } + }, + "AUTHOR_PRO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTHOR_PRO" + } + }, + "READER_PRO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "READER_PRO" + } } } }, @@ -41124,7 +41578,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 10 + "max": 2000 } } }, @@ -43156,7 +43610,7 @@ } ], "traits": { - "smithy.api#documentation": "

Starts an asynchronous job that generates a dashboard snapshot. You can request one of the following format configurations per API call.

\n
    \n
  • \n

    1 paginated PDF

    \n
  • \n
  • \n

    1 Excel workbook

    \n
  • \n
  • \n

    5 CSVs

    \n
  • \n
\n

Poll job descriptions with a DescribeDashboardSnapshotJob API call. Once the job succeeds, use the DescribeDashboardSnapshotJobResult API to obtain the download URIs that the job generates.

", + "smithy.api#documentation": "

Starts an asynchronous job that generates a snapshot of a dashboard's output. You can request one or several of the following format configurations in each API call.

\n
    \n
  • \n

    1 Paginated PDF

    \n
  • \n
  • \n

    1 Excel workbook that includes up to 5 table or pivot table visuals

    \n
  • \n
  • \n

    5 CSVs from table or pivot table visuals

    \n
  • \n
\n

The status of a submitted job can be polled with the DescribeDashboardSnapshotJob API. When you call the DescribeDashboardSnapshotJob API, check the JobStatus field in the response. Once the job reaches a COMPLETED or FAILED status, use the DescribeDashboardSnapshotJobResult API to obtain the URLs for the generated files. If the job fails, the DescribeDashboardSnapshotJobResult API returns detailed information about the error that occurred.

\n

\n StartDashboardSnapshotJob API throttling\n

\n

Amazon QuickSight utilizes API throttling to create a more consistent user experience within a time span for customers when they call the StartDashboardSnapshotJob. By default, 12 jobs can run simlutaneously in one Amazon Web Services account and users can submit up 10 API requests per second before an account is throttled. If an overwhelming number of API requests are made by the same user in a short period of time, Amazon QuickSight throttles the API calls to maintin an optimal experience and reliability for all Amazon QuickSight users.

\n

\n Common throttling scenarios\n

\n

The following list provides information about the most commin throttling scenarios that can occur.

\n
    \n
  • \n

    \n A large number of SnapshotExport API jobs are running simultaneously on an Amazon Web Services account. When a new StartDashboardSnapshotJob is created and there are already 12 jobs with the RUNNING status, the new job request fails and returns a LimitExceededException error. Wait for a current job to comlpete before you resubmit the new job.

    \n
  • \n
  • \n

    \n A large number of API requests are submitted on an Amazon Web Services account. When a user makes more than 10 API calls to the Amazon QuickSight API in one second, a ThrottlingException is returned.

    \n
  • \n
\n

If your use case requires a higher throttling limit, contact your account admin or Amazon Web ServicesSupport to explore options to tailor a more optimal expereince for your account.

\n

\n Best practices to handle throttling\n

\n

If your use case projects high levels of API traffic, try to reduce the degree of frequency and parallelism of API calls as much as you can to avoid throttling. You can also perform a timing test to calculate an estimate for the total processing time of your projected load that stays within the throttling limits of the Amazon QuickSight APIs. For example, if your projected traffic is 100 snapshot jobs before 12:00 PM per day, start 12 jobs in parallel and measure the amount of time it takes to proccess all 12 jobs. Once you obtain the result, multiply the duration by 9, for example (12 minutes * 9 = 108 minutes). Use the new result to determine the latest time at which the jobs need to be started to meet your target deadline.

\n

The time that it takes to process a job can be impacted by the following factors:

\n
    \n
  • \n

    The dataset type (Direct Query or SPICE).

    \n
  • \n
  • \n

    The size of the dataset.

    \n
  • \n
  • \n

    The complexity of the calculated fields that are used in the dashboard.

    \n
  • \n
  • \n

    The number of visuals that are on a sheet.

    \n
  • \n
  • \n

    The types of visuals that are on the sheet.

    \n
  • \n
  • \n

    The number of formats and snapshots that are requested in the job configuration.

    \n
  • \n
  • \n

    The size of the generated snapshots.

    \n
  • \n
", "smithy.api#http": { "method": "POST", "uri": "/accounts/{AwsAccountId}/dashboards/{DashboardId}/snapshot-jobs", @@ -43850,7 +44304,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 100 + "max": 500 } } }, @@ -45770,6 +46224,12 @@ "traits": { "smithy.api#documentation": "

The rolling date input for the TimeEquality filter.

\n

This field is mutually exclusive to Value and ParameterName.

" } + }, + "DefaultFilterControlConfiguration": { + "target": "com.amazonaws.quicksight#DefaultFilterControlConfiguration", + "traits": { + "smithy.api#documentation": "

The default configurations for the associated controls. This applies only for filters that are scoped to multiple sheets.

" + } } }, "traits": { @@ -45932,6 +46392,12 @@ "traits": { "smithy.api#documentation": "

The level of time precision that is used to aggregate DateTime values.

" } + }, + "DefaultFilterControlConfiguration": { + "target": "com.amazonaws.quicksight#DefaultFilterControlConfiguration", + "traits": { + "smithy.api#documentation": "

The default configurations for the associated controls. This applies only for filters that are scoped to multiple sheets.

" + } } }, "traits": { @@ -46124,6 +46590,12 @@ "traits": { "smithy.api#documentation": "

The parameter whose value should be used for the filter value.

" } + }, + "DefaultFilterControlConfiguration": { + "target": "com.amazonaws.quicksight#DefaultFilterControlConfiguration", + "traits": { + "smithy.api#documentation": "

The default configurations for the associated controls. This applies only for filters that are scoped to multiple sheets.

" + } } }, "traits": { @@ -47126,6 +47598,12 @@ "traits": { "smithy.api#documentation": "

The name of the topic.

" } + }, + "UserExperienceVersion": { + "target": "com.amazonaws.quicksight#TopicUserExperienceVersion", + "traits": { + "smithy.api#documentation": "

The user experience version of the topic.

" + } } }, "traits": { @@ -50515,6 +50993,85 @@ "smithy.api#output": {} } }, + "com.amazonaws.quicksight#UpdateSPICECapacityConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#UpdateSPICECapacityConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#UpdateSPICECapacityConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#InternalFailureException" + }, + { + "target": "com.amazonaws.quicksight#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the SPICE capacity configuration for a Amazon QuickSight account.

", + "smithy.api#http": { + "method": "POST", + "uri": "/accounts/{AwsAccountId}/spice-capacity-configuration", + "code": 200 + } + } + }, + "com.amazonaws.quicksight#UpdateSPICECapacityConfigurationRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the SPICE configuration that you want to update.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "PurchaseMode": { + "target": "com.amazonaws.quicksight#PurchaseMode", + "traits": { + "smithy.api#documentation": "

Determines how SPICE capacity can be purchased. The following options are available.

\n
    \n
  • \n

    \n MANUAL: SPICE capacity can only be purchased manually.

    \n
  • \n
  • \n

    \n AUTO_PURCHASE: Extra SPICE capacity is automatically purchased on your behalf as needed. SPICE capacity can also be purchased manually with this option.

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#UpdateSPICECapacityConfigurationResponse": { + "type": "structure", + "members": { + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + }, + "Status": { + "target": "com.amazonaws.quicksight#StatusCode", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The HTTP status of the request.

", + "smithy.api#httpResponseCode": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.quicksight#UpdateTemplate": { "type": "operation", "input": { @@ -51668,7 +52225,7 @@ "Role": { "target": "com.amazonaws.quicksight#UserRole", "traits": { - "smithy.api#documentation": "

The Amazon QuickSight role of the user. The role can be one of the\n\t\t\tfollowing default security cohorts:

\n
    \n
  • \n

    \n READER: A user who has read-only access to dashboards.

    \n
  • \n
  • \n

    \n AUTHOR: A user who can create data sources, datasets, analyses, and\n\t\t\t\t\tdashboards.

    \n
  • \n
  • \n

    \n ADMIN: A user who is an author, who can also manage Amazon QuickSight\n\t\t\t\t\tsettings.

    \n
  • \n
\n

The name of the Amazon QuickSight role is invisible to the user except for the console\n\t screens dealing with permissions.

", + "smithy.api#documentation": "

The Amazon QuickSight role of the user. The role can be one of the\n\t\t\tfollowing default security cohorts:

\n
    \n
  • \n

    \n READER: A user who has read-only access to dashboards.

    \n
  • \n
  • \n

    \n AUTHOR: A user who can create data sources, datasets, analyses, and\n\t\t\t\t\tdashboards.

    \n
  • \n
  • \n

    \n ADMIN: A user who is an author, who can also manage Amazon QuickSight\n\t\t\t\t\tsettings.

    \n
  • \n
  • \n

    \n READER_PRO: Reader Pro adds Generative BI capabilities to the Reader role. Reader Pros have access to Amazon Q Business, can build stories with Amazon Q, and can generate executive summaries from dashboards.

    \n
  • \n
  • \n

    \n AUTHOR_PRO: Author Pro adds Generative BI capabilities to the Author role. Author Pros can author dashboards with natural language with Amazon Q, build stories with Amazon Q, create Topics for Q&A, and generate executive summaries from dashboards.

    \n
  • \n
  • \n

    \n ADMIN_PRO: Admin Pros are Author Pros who can also manage Amazon QuickSight administrative settings. Admin Pro users are billed at Author Pro pricing.

    \n
  • \n
\n

The name of the Amazon QuickSight role is invisible to the user except for the console\n\t screens dealing with permissions.

", "smithy.api#required": {} } }, @@ -51946,7 +52503,7 @@ "Role": { "target": "com.amazonaws.quicksight#UserRole", "traits": { - "smithy.api#documentation": "

The Amazon QuickSight role for the user. The user role can be one of the\n following:.

\n
    \n
  • \n

    \n READER: A user who has read-only access to dashboards.

    \n
  • \n
  • \n

    \n AUTHOR: A user who can create data sources, datasets, analyses,\n and dashboards.

    \n
  • \n
  • \n

    \n ADMIN: A user who is an author, who can also manage Amazon\n Amazon QuickSight settings.

    \n
  • \n
  • \n

    \n RESTRICTED_READER: This role isn't currently available for\n use.

    \n
  • \n
  • \n

    \n RESTRICTED_AUTHOR: This role isn't currently available for\n use.

    \n
  • \n
" + "smithy.api#documentation": "

The Amazon QuickSight role for the user. The user role can be one of the\n following:.

\n
    \n
  • \n

    \n READER: A user who has read-only access to dashboards.

    \n
  • \n
  • \n

    \n AUTHOR: A user who can create data sources, datasets, analyses,\n and dashboards.

    \n
  • \n
  • \n

    \n ADMIN: A user who is an author, who can also manage Amazon\n Amazon QuickSight settings.

    \n
  • \n
  • \n

    \n READER_PRO: Reader Pro adds Generative BI capabilities to the Reader role. Reader Pros have access to Amazon Q Business, can build stories with Amazon Q, and can generate executive summaries from dashboards.

    \n
  • \n
  • \n

    \n AUTHOR_PRO: Author Pro adds Generative BI capabilities to the Author role. Author Pros can author dashboards with natural language with Amazon Q, build stories with Amazon Q, create Topics for Q&A, and generate executive summaries from dashboards.

    \n
  • \n
  • \n

    \n ADMIN_PRO: Admin Pros are Author Pros who can also manage Amazon QuickSight administrative settings. Admin Pro users are billed at Author Pro pricing.

    \n
  • \n
  • \n

    \n RESTRICTED_READER: This role isn't currently available for\n use.

    \n
  • \n
  • \n

    \n RESTRICTED_AUTHOR: This role isn't currently available for\n use.

    \n
  • \n
" } }, "IdentityType": { @@ -52044,6 +52601,24 @@ "traits": { "smithy.api#enumValue": "RESTRICTED_READER" } + }, + "ADMIN_PRO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ADMIN_PRO" + } + }, + "AUTHOR_PRO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTHOR_PRO" + } + }, + "READER_PRO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "READER_PRO" + } } } }, diff --git a/models/rds.json b/models/rds.json index b43b6ef28a..b1c3b4943d 100644 --- a/models/rds.json +++ b/models/rds.json @@ -3797,7 +3797,7 @@ "target": "com.amazonaws.rds#CustomEngineName", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The database engine to use for your custom engine version (CEV). The only supported value is \n custom-oracle-ee.

", + "smithy.api#documentation": "

The database engine. RDS Custom for Oracle supports the following values:

\n
    \n
  • \n

    \n custom-oracle-ee\n

    \n
  • \n
  • \n

    \n custom-oracle-ee-cdb\n

    \n
  • \n
  • \n

    \n custom-oracle-se2\n

    \n
  • \n
  • \n

    \n custom-oracle-se2-cdb\n

    \n
  • \n
", "smithy.api#required": {} } }, @@ -4325,7 +4325,7 @@ "EngineMode": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

The DB engine mode of the DB cluster, either provisioned or serverless.

\n

The serverless engine mode only applies for Aurora Serverless v1 DB clusters.

\n

For information about limitations and requirements for Serverless DB clusters, see the \n following sections in the Amazon Aurora User Guide:

\n \n

Valid for Cluster Type: Aurora DB clusters only

" + "smithy.api#documentation": "

The DB engine mode of the DB cluster, either provisioned or serverless.

\n

The serverless engine mode only applies for Aurora Serverless v1 DB clusters. Aurora Serverless v2 DB clusters use the \n provisioned engine mode.

\n

For information about limitations and requirements for Serverless DB clusters, see the \n following sections in the Amazon Aurora User Guide:

\n \n

Valid for Cluster Type: Aurora DB clusters only

" } }, "ScalingConfiguration": { @@ -4926,7 +4926,7 @@ "target": "com.amazonaws.rds#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The database engine to use for this DB instance.

\n

Not every database engine is available in every Amazon Web Services Region.

\n

Valid Values:

\n
    \n
  • \n

    \n aurora-mysql (for Aurora MySQL DB instances)

    \n
  • \n
  • \n

    \n aurora-postgresql (for Aurora PostgreSQL DB instances)

    \n
  • \n
  • \n

    \n custom-oracle-ee (for RDS Custom for Oracle DB instances)

    \n
  • \n
  • \n

    \n custom-oracle-ee-cdb (for RDS Custom for Oracle DB instances)

    \n
  • \n
  • \n

    \n custom-sqlserver-ee (for RDS Custom for SQL Server DB instances)

    \n
  • \n
  • \n

    \n custom-sqlserver-se (for RDS Custom for SQL Server DB instances)

    \n
  • \n
  • \n

    \n custom-sqlserver-web (for RDS Custom for SQL Server DB instances)

    \n
  • \n
  • \n

    \n db2-ae\n

    \n
  • \n
  • \n

    \n db2-se\n

    \n
  • \n
  • \n

    \n mariadb\n

    \n
  • \n
  • \n

    \n mysql\n

    \n
  • \n
  • \n

    \n oracle-ee\n

    \n
  • \n
  • \n

    \n oracle-ee-cdb\n

    \n
  • \n
  • \n

    \n oracle-se2\n

    \n
  • \n
  • \n

    \n oracle-se2-cdb\n

    \n
  • \n
  • \n

    \n postgres\n

    \n
  • \n
  • \n

    \n sqlserver-ee\n

    \n
  • \n
  • \n

    \n sqlserver-se\n

    \n
  • \n
  • \n

    \n sqlserver-ex\n

    \n
  • \n
  • \n

    \n sqlserver-web\n

    \n
  • \n
", + "smithy.api#documentation": "

The database engine to use for this DB instance.

\n

Not every database engine is available in every Amazon Web Services Region.

\n

Valid Values:

\n
    \n
  • \n

    \n aurora-mysql (for Aurora MySQL DB instances)

    \n
  • \n
  • \n

    \n aurora-postgresql (for Aurora PostgreSQL DB instances)

    \n
  • \n
  • \n

    \n custom-oracle-ee (for RDS Custom for Oracle DB instances)

    \n
  • \n
  • \n

    \n custom-oracle-ee-cdb (for RDS Custom for Oracle DB instances)

    \n
  • \n
  • \n

    \n custom-oracle-se2 (for RDS Custom for Oracle DB instances)

    \n
  • \n
  • \n

    \n custom-oracle-se2-cdb (for RDS Custom for Oracle DB\n instances)

    \n
  • \n
  • \n

    \n custom-sqlserver-ee (for RDS Custom for SQL Server DB instances)

    \n
  • \n
  • \n

    \n custom-sqlserver-se (for RDS Custom for SQL Server DB instances)

    \n
  • \n
  • \n

    \n custom-sqlserver-web (for RDS Custom for SQL Server DB instances)

    \n
  • \n
  • \n

    \n db2-ae\n

    \n
  • \n
  • \n

    \n db2-se\n

    \n
  • \n
  • \n

    \n mariadb\n

    \n
  • \n
  • \n

    \n mysql\n

    \n
  • \n
  • \n

    \n oracle-ee\n

    \n
  • \n
  • \n

    \n oracle-ee-cdb\n

    \n
  • \n
  • \n

    \n oracle-se2\n

    \n
  • \n
  • \n

    \n oracle-se2-cdb\n

    \n
  • \n
  • \n

    \n postgres\n

    \n
  • \n
  • \n

    \n sqlserver-ee\n

    \n
  • \n
  • \n

    \n sqlserver-se\n

    \n
  • \n
  • \n

    \n sqlserver-ex\n

    \n
  • \n
  • \n

    \n sqlserver-web\n

    \n
  • \n
", "smithy.api#required": {} } }, @@ -5155,7 +5155,7 @@ "Timezone": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

The time zone of the DB instance. \n The time zone parameter is currently supported only by\n Microsoft SQL Server.

" + "smithy.api#documentation": "

The time zone of the DB instance. \n The time zone parameter is currently supported only by RDS for Db2 and\n RDS for SQL Server.

" } }, "EnableIAMDatabaseAuthentication": { @@ -5287,6 +5287,9 @@ "target": "com.amazonaws.rds#CreateDBInstanceReadReplicaResult" }, "errors": [ + { + "target": "com.amazonaws.rds#CertificateNotFoundFault" + }, { "target": "com.amazonaws.rds#DBClusterNotFoundFault" }, @@ -5645,6 +5648,12 @@ "traits": { "smithy.api#documentation": "

Whether to upgrade the storage file system configuration on the read replica. This option\n migrates the read replica from the old storage file system layout to the preferred layout.

" } + }, + "CACertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The CA certificate identifier to use for the read replica's server certificate.

\n

This setting doesn't apply to RDS Custom DB instances.

\n

For more information, see Using SSL/TLS to encrypt a connection to a DB \n instance in the Amazon RDS User Guide and \n \n Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora \n User Guide.

" + } } }, "traits": { @@ -8848,6 +8857,12 @@ "smithy.api#documentation": "

JSON string that lists the installation files and parameters that RDS Custom uses to create a custom engine version (CEV). \n RDS Custom applies the patches in the order in which they're listed in the manifest. You can set the Oracle home, Oracle base, \n and UNIX/Linux user and group using the installation parameters. For more information, \n see JSON fields in the CEV manifest in the Amazon RDS User Guide.\n

" } }, + "SupportsLimitlessDatabase": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB engine version supports Aurora Limitless Database.

" + } + }, "SupportsCertificateRotationWithoutRestart": { "target": "com.amazonaws.rds#BooleanOptional", "traits": { @@ -9213,7 +9228,7 @@ "Timezone": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

The time zone of the DB instance.\n In most cases, the Timezone element is empty.\n Timezone content appears only for\n Microsoft SQL Server DB instances \n that were created with a time zone specified.

" + "smithy.api#documentation": "

The time zone of the DB instance.\n In most cases, the Timezone element is empty.\n Timezone content appears only for\n RDS for Db2 and RDS for SQL Server DB instances \n that were created with a time zone specified.

" } }, "IAMDatabaseAuthenticationEnabled": { @@ -11892,7 +11907,7 @@ "target": "com.amazonaws.rds#CustomEngineName", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The database engine. The only supported engines are custom-oracle-ee and custom-oracle-ee-cdb.

", + "smithy.api#documentation": "

The database engine. RDS Custom for Oracle supports the following values:

\n
    \n
  • \n

    \n custom-oracle-ee\n

    \n
  • \n
  • \n

    \n custom-oracle-ee-cdb\n

    \n
  • \n
  • \n

    \n custom-oracle-se2\n

    \n
  • \n
  • \n

    \n custom-oracle-se2-cdb\n

    \n
  • \n
", "smithy.api#required": {} } }, @@ -14579,7 +14594,7 @@ "Engine": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

The database engine to return version details for.

\n

Valid Values:

\n
    \n
  • \n

    \n aurora-mysql\n

    \n
  • \n
  • \n

    \n aurora-postgresql\n

    \n
  • \n
  • \n

    \n custom-oracle-ee\n

    \n
  • \n
  • \n

    \n db2-ae\n

    \n
  • \n
  • \n

    \n db2-se\n

    \n
  • \n
  • \n

    \n mariadb\n

    \n
  • \n
  • \n

    \n mysql\n

    \n
  • \n
  • \n

    \n oracle-ee\n

    \n
  • \n
  • \n

    \n oracle-ee-cdb\n

    \n
  • \n
  • \n

    \n oracle-se2\n

    \n
  • \n
  • \n

    \n oracle-se2-cdb\n

    \n
  • \n
  • \n

    \n postgres\n

    \n
  • \n
  • \n

    \n sqlserver-ee\n

    \n
  • \n
  • \n

    \n sqlserver-se\n

    \n
  • \n
  • \n

    \n sqlserver-ex\n

    \n
  • \n
  • \n

    \n sqlserver-web\n

    \n
  • \n
" + "smithy.api#documentation": "

The database engine to return version details for.

\n

Valid Values:

\n
    \n
  • \n

    \n aurora-mysql\n

    \n
  • \n
  • \n

    \n aurora-postgresql\n

    \n
  • \n
  • \n

    \n custom-oracle-ee\n

    \n
  • \n
  • \n

    \n custom-oracle-ee-cdb\n

    \n
  • \n
  • \n

    \n custom-oracle-se2\n

    \n
  • \n
  • \n

    \n custom-oracle-se2-cdb\n

    \n
  • \n
  • \n

    \n db2-ae\n

    \n
  • \n
  • \n

    \n db2-se\n

    \n
  • \n
  • \n

    \n mariadb\n

    \n
  • \n
  • \n

    \n mysql\n

    \n
  • \n
  • \n

    \n oracle-ee\n

    \n
  • \n
  • \n

    \n oracle-ee-cdb\n

    \n
  • \n
  • \n

    \n oracle-se2\n

    \n
  • \n
  • \n

    \n oracle-se2-cdb\n

    \n
  • \n
  • \n

    \n postgres\n

    \n
  • \n
  • \n

    \n sqlserver-ee\n

    \n
  • \n
  • \n

    \n sqlserver-se\n

    \n
  • \n
  • \n

    \n sqlserver-ex\n

    \n
  • \n
  • \n

    \n sqlserver-web\n

    \n
  • \n
" } }, "EngineVersion": { @@ -16490,7 +16505,7 @@ "target": "com.amazonaws.rds#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of the DB parameter group family.

\n

Valid Values:

\n
    \n
  • \n

    \n aurora-mysql5.7\n

    \n
  • \n
  • \n

    \n aurora-mysql8.0\n

    \n
  • \n
  • \n

    \n aurora-postgresql10\n

    \n
  • \n
  • \n

    \n aurora-postgresql11\n

    \n
  • \n
  • \n

    \n aurora-postgresql12\n

    \n
  • \n
  • \n

    \n aurora-postgresql13\n

    \n
  • \n
  • \n

    \n aurora-postgresql14\n

    \n
  • \n
  • \n

    \n custom-oracle-ee-19\n

    \n
  • \n
  • \n

    \n db2-ae\n

    \n
  • \n
  • \n

    \n db2-se\n

    \n
  • \n
  • \n

    \n mariadb10.2\n

    \n
  • \n
  • \n

    \n mariadb10.3\n

    \n
  • \n
  • \n

    \n mariadb10.4\n

    \n
  • \n
  • \n

    \n mariadb10.5\n

    \n
  • \n
  • \n

    \n mariadb10.6\n

    \n
  • \n
  • \n

    \n mysql5.7\n

    \n
  • \n
  • \n

    \n mysql8.0\n

    \n
  • \n
  • \n

    \n oracle-ee-19\n

    \n
  • \n
  • \n

    \n oracle-ee-cdb-19\n

    \n
  • \n
  • \n

    \n oracle-ee-cdb-21\n

    \n
  • \n
  • \n

    \n oracle-se2-19\n

    \n
  • \n
  • \n

    \n oracle-se2-cdb-19\n

    \n
  • \n
  • \n

    \n oracle-se2-cdb-21\n

    \n
  • \n
  • \n

    \n postgres10\n

    \n
  • \n
  • \n

    \n postgres11\n

    \n
  • \n
  • \n

    \n postgres12\n

    \n
  • \n
  • \n

    \n postgres13\n

    \n
  • \n
  • \n

    \n postgres14\n

    \n
  • \n
  • \n

    \n sqlserver-ee-11.0\n

    \n
  • \n
  • \n

    \n sqlserver-ee-12.0\n

    \n
  • \n
  • \n

    \n sqlserver-ee-13.0\n

    \n
  • \n
  • \n

    \n sqlserver-ee-14.0\n

    \n
  • \n
  • \n

    \n sqlserver-ee-15.0\n

    \n
  • \n
  • \n

    \n sqlserver-ex-11.0\n

    \n
  • \n
  • \n

    \n sqlserver-ex-12.0\n

    \n
  • \n
  • \n

    \n sqlserver-ex-13.0\n

    \n
  • \n
  • \n

    \n sqlserver-ex-14.0\n

    \n
  • \n
  • \n

    \n sqlserver-ex-15.0\n

    \n
  • \n
  • \n

    \n sqlserver-se-11.0\n

    \n
  • \n
  • \n

    \n sqlserver-se-12.0\n

    \n
  • \n
  • \n

    \n sqlserver-se-13.0\n

    \n
  • \n
  • \n

    \n sqlserver-se-14.0\n

    \n
  • \n
  • \n

    \n sqlserver-se-15.0\n

    \n
  • \n
  • \n

    \n sqlserver-web-11.0\n

    \n
  • \n
  • \n

    \n sqlserver-web-12.0\n

    \n
  • \n
  • \n

    \n sqlserver-web-13.0\n

    \n
  • \n
  • \n

    \n sqlserver-web-14.0\n

    \n
  • \n
  • \n

    \n sqlserver-web-15.0\n

    \n
  • \n
", + "smithy.api#documentation": "

The name of the DB parameter group family.

\n

Valid Values:

\n
    \n
  • \n

    \n aurora-mysql5.7\n

    \n
  • \n
  • \n

    \n aurora-mysql8.0\n

    \n
  • \n
  • \n

    \n aurora-postgresql10\n

    \n
  • \n
  • \n

    \n aurora-postgresql11\n

    \n
  • \n
  • \n

    \n aurora-postgresql12\n

    \n
  • \n
  • \n

    \n aurora-postgresql13\n

    \n
  • \n
  • \n

    \n aurora-postgresql14\n

    \n
  • \n
  • \n

    \n custom-oracle-ee-19\n

    \n
  • \n
  • \n

    \n custom-oracle-ee-cdb-19\n

    \n
  • \n
  • \n

    \n db2-ae\n

    \n
  • \n
  • \n

    \n db2-se\n

    \n
  • \n
  • \n

    \n mariadb10.2\n

    \n
  • \n
  • \n

    \n mariadb10.3\n

    \n
  • \n
  • \n

    \n mariadb10.4\n

    \n
  • \n
  • \n

    \n mariadb10.5\n

    \n
  • \n
  • \n

    \n mariadb10.6\n

    \n
  • \n
  • \n

    \n mysql5.7\n

    \n
  • \n
  • \n

    \n mysql8.0\n

    \n
  • \n
  • \n

    \n oracle-ee-19\n

    \n
  • \n
  • \n

    \n oracle-ee-cdb-19\n

    \n
  • \n
  • \n

    \n oracle-ee-cdb-21\n

    \n
  • \n
  • \n

    \n oracle-se2-19\n

    \n
  • \n
  • \n

    \n oracle-se2-cdb-19\n

    \n
  • \n
  • \n

    \n oracle-se2-cdb-21\n

    \n
  • \n
  • \n

    \n postgres10\n

    \n
  • \n
  • \n

    \n postgres11\n

    \n
  • \n
  • \n

    \n postgres12\n

    \n
  • \n
  • \n

    \n postgres13\n

    \n
  • \n
  • \n

    \n postgres14\n

    \n
  • \n
  • \n

    \n sqlserver-ee-11.0\n

    \n
  • \n
  • \n

    \n sqlserver-ee-12.0\n

    \n
  • \n
  • \n

    \n sqlserver-ee-13.0\n

    \n
  • \n
  • \n

    \n sqlserver-ee-14.0\n

    \n
  • \n
  • \n

    \n sqlserver-ee-15.0\n

    \n
  • \n
  • \n

    \n sqlserver-ex-11.0\n

    \n
  • \n
  • \n

    \n sqlserver-ex-12.0\n

    \n
  • \n
  • \n

    \n sqlserver-ex-13.0\n

    \n
  • \n
  • \n

    \n sqlserver-ex-14.0\n

    \n
  • \n
  • \n

    \n sqlserver-ex-15.0\n

    \n
  • \n
  • \n

    \n sqlserver-se-11.0\n

    \n
  • \n
  • \n

    \n sqlserver-se-12.0\n

    \n
  • \n
  • \n

    \n sqlserver-se-13.0\n

    \n
  • \n
  • \n

    \n sqlserver-se-14.0\n

    \n
  • \n
  • \n

    \n sqlserver-se-15.0\n

    \n
  • \n
  • \n

    \n sqlserver-web-11.0\n

    \n
  • \n
  • \n

    \n sqlserver-web-12.0\n

    \n
  • \n
  • \n

    \n sqlserver-web-13.0\n

    \n
  • \n
  • \n

    \n sqlserver-web-14.0\n

    \n
  • \n
  • \n

    \n sqlserver-web-15.0\n

    \n
  • \n
", "smithy.api#required": {} } }, @@ -17368,7 +17383,7 @@ "target": "com.amazonaws.rds#String", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of the engine to describe DB instance options for.

\n

Valid Values:

\n
    \n
  • \n

    \n aurora-mysql\n

    \n
  • \n
  • \n

    \n aurora-postgresql\n

    \n
  • \n
  • \n

    \n custom-oracle-ee\n

    \n
  • \n
  • \n

    \n db2-ae\n

    \n
  • \n
  • \n

    \n db2-se\n

    \n
  • \n
  • \n

    \n mariadb\n

    \n
  • \n
  • \n

    \n mysql\n

    \n
  • \n
  • \n

    \n oracle-ee\n

    \n
  • \n
  • \n

    \n oracle-ee-cdb\n

    \n
  • \n
  • \n

    \n oracle-se2\n

    \n
  • \n
  • \n

    \n oracle-se2-cdb\n

    \n
  • \n
  • \n

    \n postgres\n

    \n
  • \n
  • \n

    \n sqlserver-ee\n

    \n
  • \n
  • \n

    \n sqlserver-se\n

    \n
  • \n
  • \n

    \n sqlserver-ex\n

    \n
  • \n
  • \n

    \n sqlserver-web\n

    \n
  • \n
", + "smithy.api#documentation": "

The name of the database engine to describe DB instance options for.

\n

Valid Values:

\n
    \n
  • \n

    \n aurora-mysql\n

    \n
  • \n
  • \n

    \n aurora-postgresql\n

    \n
  • \n
  • \n

    \n custom-oracle-ee\n

    \n
  • \n
  • \n

    \n custom-oracle-ee-cdb\n

    \n
  • \n
  • \n

    \n custom-oracle-se2\n

    \n
  • \n
  • \n

    \n custom-oracle-se2-cdb\n

    \n
  • \n
  • \n

    \n db2-ae\n

    \n
  • \n
  • \n

    \n db2-se\n

    \n
  • \n
  • \n

    \n mariadb\n

    \n
  • \n
  • \n

    \n mysql\n

    \n
  • \n
  • \n

    \n oracle-ee\n

    \n
  • \n
  • \n

    \n oracle-ee-cdb\n

    \n
  • \n
  • \n

    \n oracle-se2\n

    \n
  • \n
  • \n

    \n oracle-se2-cdb\n

    \n
  • \n
  • \n

    \n postgres\n

    \n
  • \n
  • \n

    \n sqlserver-ee\n

    \n
  • \n
  • \n

    \n sqlserver-se\n

    \n
  • \n
  • \n

    \n sqlserver-ex\n

    \n
  • \n
  • \n

    \n sqlserver-web\n

    \n
  • \n
", "smithy.api#required": {} } }, @@ -17411,7 +17426,7 @@ "MaxRecords": { "target": "com.amazonaws.rds#IntegerOptional", "traits": { - "smithy.api#documentation": "

The maximum number of records to include in the response.\n If more records exist than the specified MaxRecords value,\n a pagination token called a marker is included in the response so that\n you can retrieve the remaining results.

\n

Default: 100

\n

Constraints: Minimum 20, maximum 10000.

" + "smithy.api#documentation": "

The maximum number of records to include in the response.\n If more records exist than the specified MaxRecords value,\n a pagination token called a marker is included in the response so that\n you can retrieve the remaining results.

\n

Default: 100

\n

Constraints: Minimum 20, maximum 1000.

" } }, "Marker": { @@ -20979,7 +20994,7 @@ "ResourceArn": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the RDS for Oracle or Microsoft SQL Server DB instance.\n For example, arn:aws:rds:us-east-1:12345667890:instance:my-orcl-db.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the RDS for Oracle or Microsoft SQL Server DB instance.\n For example, arn:aws:rds:us-east-1:12345667890:db:my-orcl-db.

" } }, "AuditPolicyState": { @@ -21207,7 +21222,7 @@ "target": "com.amazonaws.rds#CustomEngineName", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The DB engine. The only supported values are custom-oracle-ee and custom-oracle-ee-cdb.

", + "smithy.api#documentation": "

The database engine. RDS Custom for Oracle supports the following values:

\n
    \n
  • \n

    \n custom-oracle-ee\n

    \n
  • \n
  • \n

    \n custom-oracle-ee-cdb\n

    \n
  • \n
  • \n

    \n custom-oracle-se2\n

    \n
  • \n
  • \n

    \n custom-oracle-se2-cdb\n

    \n
  • \n
", "smithy.api#required": {} } }, @@ -22047,7 +22062,7 @@ "AllocatedStorage": { "target": "com.amazonaws.rds#IntegerOptional", "traits": { - "smithy.api#documentation": "

The new amount of storage in gibibytes (GiB) to allocate for the DB instance.

\n

For RDS for Db2, MariaDB, RDS for MySQL, RDS for Oracle, and RDS for PostgreSQL, \n the value supplied must be at least 10% greater than the current value. \n Values that are not at least 10% greater than the existing value are rounded up \n so that they are 10% greater than the current value.

\n

For the valid values for allocated storage for each engine,\n see CreateDBInstance.

" + "smithy.api#documentation": "

The new amount of storage in gibibytes (GiB) to allocate for the DB instance.

\n

For RDS for Db2, MariaDB, RDS for MySQL, RDS for Oracle, and RDS for PostgreSQL, \n the value supplied must be at least 10% greater than the current value. \n Values that are not at least 10% greater than the existing value are rounded up \n so that they are 10% greater than the current value.

\n

For the valid values for allocated storage for each engine,\n see CreateDBInstance.

\n

Constraints:

\n
    \n
  • \n

    When you increase the allocated storage for a DB instance that uses\n Provisioned IOPS (gp3, io1, or io2\n storage type), you must also specify the Iops parameter. You can\n use the current value for Iops.

    \n
  • \n
" } }, "DBInstanceClass": { @@ -22059,7 +22074,7 @@ "DBSubnetGroupName": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

The new DB subnet group for the DB instance.\n You can use this parameter to move your DB instance to a different VPC.\n \n \n If your DB instance isn't in a VPC, you can also use this parameter to move your DB instance into a VPC.\n For more information, see \n Working with a DB instance in a VPC \n in the Amazon RDS User Guide.

\n

Changing the subnet group causes an outage during the change. \n The change is applied during the next maintenance window,\n unless you enable ApplyImmediately.

\n

This parameter doesn't apply to RDS Custom DB instances.

\n

Constraints:

\n
    \n
  • \n

    If supplied, must match existing DB subnet group.

    \n
  • \n
\n

Example: mydbsubnetgroup\n

" + "smithy.api#documentation": "

The new DB subnet group for the DB instance.\n You can use this parameter to move your DB instance to a different VPC.\n \n \n If your DB instance isn't in a VPC, you can also use this parameter to move your DB instance into a VPC.\n For more information, see \n Working with a DB instance in a VPC \n in the Amazon RDS User Guide.

\n

Changing the subnet group causes an outage during the change. \n The change is applied during the next maintenance window,\n unless you enable ApplyImmediately.

\n

This setting doesn't apply to RDS Custom DB instances.

\n

Constraints:

\n
    \n
  • \n

    If supplied, must match existing DB subnet group.

    \n
  • \n
\n

Example: mydbsubnetgroup\n

" } }, "DBSecurityGroups": { @@ -22143,7 +22158,7 @@ "Iops": { "target": "com.amazonaws.rds#IntegerOptional", "traits": { - "smithy.api#documentation": "

The new Provisioned IOPS (I/O operations per second) value for the RDS instance.

\n

Changing this setting doesn't result in an outage and\n the change is applied during the next maintenance window\n unless the ApplyImmediately parameter is enabled for this request.\n If you are migrating from Provisioned IOPS to standard storage, set this value to 0. \n The DB instance will require a reboot for the change in storage type to take effect.

\n

If you choose to migrate your DB instance from using standard storage to using\n Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process\n can take time. The duration of the migration depends on several factors such as database\n load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS\n provisioned (if any), and the number of prior scale storage operations. Typical\n migration times are under 24 hours, but the process can take up to several days in some\n cases. During the migration, the DB instance is available for use, but might experience\n performance degradation. While the migration takes place, nightly backups for the\n instance are suspended. No other Amazon RDS operations can take place for the instance,\n including modifying the instance, rebooting the instance, deleting the instance,\n creating a read replica for the instance, and creating a DB snapshot of the instance.

\n

Constraints:

\n
    \n
  • \n

    For RDS for MariaDB, RDS for MySQL, RDS for Oracle, and RDS for PostgreSQL - The value supplied must be at least 10% greater than the current value. \n 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.

    \n
  • \n
\n

Default: Uses existing setting

" + "smithy.api#documentation": "

The new Provisioned IOPS (I/O operations per second) value for the RDS instance.

\n

Changing this setting doesn't result in an outage and\n the change is applied during the next maintenance window\n unless the ApplyImmediately parameter is enabled for this request.\n If you are migrating from Provisioned IOPS to standard storage, set this value to 0. \n The DB instance will require a reboot for the change in storage type to take effect.

\n

If you choose to migrate your DB instance from using standard storage to using\n Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process\n can take time. The duration of the migration depends on several factors such as database\n load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS\n provisioned (if any), and the number of prior scale storage operations. Typical\n migration times are under 24 hours, but the process can take up to several days in some\n cases. During the migration, the DB instance is available for use, but might experience\n performance degradation. While the migration takes place, nightly backups for the\n instance are suspended. No other Amazon RDS operations can take place for the instance,\n including modifying the instance, rebooting the instance, deleting the instance,\n creating a read replica for the instance, and creating a DB snapshot of the instance.

\n

Constraints:

\n
    \n
  • \n

    For RDS for MariaDB, RDS for MySQL, RDS for Oracle, and RDS for PostgreSQL - The value supplied must be at least 10% greater than the current value. \n 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.

    \n
  • \n
  • \n

    When you increase the Provisioned IOPS, you must also specify the\n AllocatedStorage parameter. You can use the current value for\n AllocatedStorage.

    \n
  • \n
\n

Default: Uses existing setting

" } }, "OptionGroupName": { @@ -22305,7 +22320,7 @@ "DeletionProtection": { "target": "com.amazonaws.rds#BooleanOptional", "traits": { - "smithy.api#documentation": "

Specifies whether the DB instance has deletion protection enabled. \n The database can't be deleted when deletion protection is enabled. By default, \n deletion protection isn't enabled. For more information, see \n \n Deleting a DB Instance.

" + "smithy.api#documentation": "

Specifies whether the DB instance has deletion protection enabled. \n The database can't be deleted when deletion protection is enabled. By default, \n deletion protection isn't enabled. For more information, see \n \n Deleting a DB Instance.

\n

This setting doesn't apply to Amazon Aurora DB instances. You can enable or disable deletion protection for the DB cluster. \n For more information, see ModifyDBCluster. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster.

" } }, "MaxAllocatedStorage": { @@ -27613,6 +27628,9 @@ { "target": "com.amazonaws.rds#BackupPolicyNotFoundFault" }, + { + "target": "com.amazonaws.rds#CertificateNotFoundFault" + }, { "target": "com.amazonaws.rds#DBClusterSnapshotNotFoundFault" }, @@ -27953,6 +27971,12 @@ "traits": { "smithy.api#documentation": "

Specifies whether to enable a dedicated log volume (DLV) for the DB instance.

" } + }, + "CACertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The CA certificate identifier to use for the DB instance's server certificate.

\n

This setting doesn't apply to RDS Custom DB instances.

\n

For more information, see Using SSL/TLS to encrypt a connection to a DB \n instance in the Amazon RDS User Guide and \n \n Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora \n User Guide.

" + } } }, "traits": { @@ -27986,6 +28010,9 @@ { "target": "com.amazonaws.rds#BackupPolicyNotFoundFault" }, + { + "target": "com.amazonaws.rds#CertificateNotFoundFault" + }, { "target": "com.amazonaws.rds#DBInstanceAlreadyExistsFault" }, @@ -28349,6 +28376,12 @@ "traits": { "smithy.api#documentation": "

Specifies whether to enable a dedicated log volume (DLV) for the DB instance.

" } + }, + "CACertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The CA certificate identifier to use for the DB instance's server certificate.

\n

This setting doesn't apply to RDS Custom DB instances.

\n

For more information, see Using SSL/TLS to encrypt a connection to a DB \n instance in the Amazon RDS User Guide and \n \n Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora \n User Guide.

" + } } }, "traits": { @@ -28381,6 +28414,9 @@ { "target": "com.amazonaws.rds#BackupPolicyNotFoundFault" }, + { + "target": "com.amazonaws.rds#CertificateNotFoundFault" + }, { "target": "com.amazonaws.rds#DBInstanceAlreadyExistsFault" }, @@ -28807,6 +28843,12 @@ "traits": { "smithy.api#documentation": "

Specifies whether to enable a dedicated log volume (DLV) for the DB instance.

" } + }, + "CACertificateIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

The CA certificate identifier to use for the DB instance's server certificate.

\n

This setting doesn't apply to RDS Custom DB instances.

\n

For more information, see Using SSL/TLS to encrypt a connection to a DB \n instance in the Amazon RDS User Guide and \n \n Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora \n User Guide.

" + } } }, "traits": { @@ -31123,6 +31165,12 @@ "smithy.api#documentation": "

Indicates whether you can use Babelfish for Aurora PostgreSQL with the target engine version.

" } }, + "SupportsLimitlessDatabase": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

Indicates whether the DB engine version supports Aurora Limitless Database.

" + } + }, "SupportsLocalWriteForwarding": { "target": "com.amazonaws.rds#BooleanOptional", "traits": { diff --git a/models/redshift-serverless.json b/models/redshift-serverless.json index 825fedc9a6..bf66f50b8c 100644 --- a/models/redshift-serverless.json +++ b/models/redshift-serverless.json @@ -77,7 +77,7 @@ "parameterKey": { "target": "com.amazonaws.redshiftserverless#ParameterKey", "traits": { - "smithy.api#documentation": "

The key of the parameter. The\n options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging,\n query_group, search_path, require_ssl, and query monitoring metrics that let \n you define performance boundaries. For more information about query monitoring rules and available metrics, see \n Query monitoring metrics for Amazon Redshift Serverless.

" + "smithy.api#documentation": "

The key of the parameter. The\n options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging,\n query_group, search_path, require_ssl, use_fips_ssl, and query monitoring metrics that let \n you define performance boundaries. For more information about query monitoring rules and available metrics, see \n Query monitoring metrics for Amazon Redshift Serverless.

" } }, "parameterValue": { @@ -543,7 +543,7 @@ "schedule": { "target": "com.amazonaws.redshiftserverless#Schedule", "traits": { - "smithy.api#documentation": "

The schedule for a one-time (at format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour.

\n

Format of at expressions is \"at(yyyy-mm-ddThh:mm:ss)\". For example, \"at(2016-03-04T17:27:00)\".

\n

Format of cron expressions is \"cron(Minutes Hours Day-of-month Month Day-of-week Year)\". For example, \"cron(0 10 ? * MON *)\". For more information, see \n Cron Expressions in the Amazon CloudWatch Events User Guide.

", + "smithy.api#documentation": "

The schedule for a one-time (at timestamp format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour. Times are in UTC.

\n
    \n
  • \n

    Format of at timestamp is yyyy-mm-ddThh:mm:ss. For example, 2016-03-04T17:27:00.

    \n
  • \n
  • \n

    Format of cron expression is (Minutes Hours Day-of-month Month Day-of-week Year). For example, \"(0 10 ? * MON *)\". For more information, see \n Cron Expressions in the Amazon CloudWatch Events User Guide.

    \n
  • \n
", "smithy.api#required": {} } }, @@ -951,7 +951,7 @@ "configParameters": { "target": "com.amazonaws.redshiftserverless#ConfigParameterList", "traits": { - "smithy.api#documentation": "

An array of parameters to set for advanced control over a database. The\n options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging,\n query_group, search_path, require_ssl, and query monitoring metrics that let you define performance boundaries. For more information about query monitoring rules and available metrics, see \n \n Query monitoring metrics for Amazon Redshift Serverless.

" + "smithy.api#documentation": "

An array of parameters to set for advanced control over a database. The\n options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging,\n query_group, search_path, require_ssl, use_fips_ssl, and query monitoring metrics that let you define performance boundaries. For more information about query monitoring rules and available metrics, see \n \n Query monitoring metrics for Amazon Redshift Serverless.

" } }, "securityGroupIds": { @@ -2855,7 +2855,7 @@ "scheduledActions": { "target": "com.amazonaws.redshiftserverless#ScheduledActionsList", "traits": { - "smithy.api#documentation": "

All of the returned scheduled action objects.

" + "smithy.api#documentation": "

All of the returned scheduled action association objects.

" } } }, @@ -5072,13 +5072,13 @@ "at": { "target": "smithy.api#Timestamp", "traits": { - "smithy.api#documentation": "

The timestamp of when Amazon Redshift Serverless should run the scheduled action. Format of at expressions is \"at(yyyy-mm-ddThh:mm:ss)\". For example, \"at(2016-03-04T17:27:00)\".

" + "smithy.api#documentation": "

The timestamp of when Amazon Redshift Serverless should run the scheduled action. Timestamp is in UTC. Format of at expression is yyyy-mm-ddThh:mm:ss. For example, 2016-03-04T17:27:00.

" } }, "cron": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The cron expression to use to schedule a recurring scheduled action. Schedule invocations must be separated by at least one hour.

\n

Format of cron expressions is \"cron(Minutes Hours Day-of-month Month Day-of-week Year)\". For example, \"cron(0 10 ? * MON *)\". For more information, see \n Cron Expressions in the Amazon CloudWatch Events User Guide.

" + "smithy.api#documentation": "

The cron expression to use to schedule a recurring scheduled action. Schedule invocations must be separated by at least one hour. Times are in UTC.

\n

Format of cron expressions is (Minutes Hours Day-of-month Month Day-of-week Year). For example, \"(0 10 ? * MON *)\". For more information, see \n Cron Expressions in the Amazon CloudWatch Events User Guide.

" } } }, @@ -5086,6 +5086,26 @@ "smithy.api#documentation": "

The schedule of when Amazon Redshift Serverless should run the scheduled action.

" } }, + "com.amazonaws.redshiftserverless#ScheduledActionAssociation": { + "type": "structure", + "members": { + "namespaceName": { + "target": "com.amazonaws.redshiftserverless#NamespaceName", + "traits": { + "smithy.api#documentation": "

Name of associated Amazon Redshift Serverless namespace.

" + } + }, + "scheduledActionName": { + "target": "com.amazonaws.redshiftserverless#ScheduledActionName", + "traits": { + "smithy.api#documentation": "

Name of associated scheduled action.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains names of objects associated with a scheduled action.

" + } + }, "com.amazonaws.redshiftserverless#ScheduledActionName": { "type": "string", "traits": { @@ -5128,7 +5148,7 @@ "schedule": { "target": "com.amazonaws.redshiftserverless#Schedule", "traits": { - "smithy.api#documentation": "

The schedule for a one-time (at format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour.

\n

Format of at expressions is \"at(yyyy-mm-ddThh:mm:ss)\". For example, \"at(2016-03-04T17:27:00)\".

\n

Format of cron expressions is \"cron(Minutes Hours Day-of-month Month Day-of-week Year)\". For example, \"cron(0 10 ? * MON *)\". For more information, see \n Cron Expressions in the Amazon CloudWatch Events User Guide.

" + "smithy.api#documentation": "

The schedule for a one-time (at timestamp format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour. Times are in UTC.

\n
    \n
  • \n

    Format of at timestamp is yyyy-mm-ddThh:mm:ss. For example, 2016-03-04T17:27:00.

    \n
  • \n
  • \n

    Format of cron expression is (Minutes Hours Day-of-month Month Day-of-week Year). For example, \"(0 10 ? * MON *)\". For more information, see \n Cron Expressions in the Amazon CloudWatch Events User Guide.

    \n
  • \n
" } }, "scheduledActionDescription": { @@ -5190,7 +5210,7 @@ "com.amazonaws.redshiftserverless#ScheduledActionsList": { "type": "list", "member": { - "target": "com.amazonaws.redshiftserverless#ScheduledActionName" + "target": "com.amazonaws.redshiftserverless#ScheduledActionAssociation" } }, "com.amazonaws.redshiftserverless#SecurityGroupId": { @@ -6169,7 +6189,7 @@ "schedule": { "target": "com.amazonaws.redshiftserverless#Schedule", "traits": { - "smithy.api#documentation": "

The schedule for a one-time (at format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour.

\n

Format of at expressions is \"at(yyyy-mm-ddThh:mm:ss)\". For example, \"at(2016-03-04T17:27:00)\".

\n

Format of cron expressions is \"cron(Minutes Hours Day-of-month Month Day-of-week Year)\". For example, \"cron(0 10 ? * MON *)\". For more information, see \n Cron Expressions in the Amazon CloudWatch Events User Guide.

" + "smithy.api#documentation": "

The schedule for a one-time (at timestamp format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour. Times are in UTC.

\n
    \n
  • \n

    Format of at timestamp is yyyy-mm-ddThh:mm:ss. For example, 2016-03-04T17:27:00.

    \n
  • \n
  • \n

    Format of cron expression is (Minutes Hours Day-of-month Month Day-of-week Year). For example, \"(0 10 ? * MON *)\". For more information, see \n Cron Expressions in the Amazon CloudWatch Events User Guide.

    \n
  • \n
" } }, "roleArn": { @@ -6468,7 +6488,7 @@ "configParameters": { "target": "com.amazonaws.redshiftserverless#ConfigParameterList", "traits": { - "smithy.api#documentation": "

An array of parameters to set for advanced control over a database. The\n options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging,\n query_group, search_path, require_ssl, and query monitoring metrics that let you \n define performance boundaries. For more information about query monitoring rules and available metrics, see \n \n Query monitoring metrics for Amazon Redshift Serverless.

" + "smithy.api#documentation": "

An array of parameters to set for advanced control over a database. The\n options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging,\n query_group, search_path, require_ssl, use_fips_ssl, and query monitoring metrics that let you \n define performance boundaries. For more information about query monitoring rules and available metrics, see \n \n Query monitoring metrics for Amazon Redshift Serverless.

" } }, "publiclyAccessible": { @@ -6787,7 +6807,7 @@ "configParameters": { "target": "com.amazonaws.redshiftserverless#ConfigParameterList", "traits": { - "smithy.api#documentation": "

An array of parameters to set for advanced control over a database. The\n options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging,\n query_group, search_path, require_ssl, and query monitoring metrics that let you define performance boundaries. \n For more information about query monitoring rules and available metrics, see Query monitoring metrics for Amazon Redshift Serverless.

" + "smithy.api#documentation": "

An array of parameters to set for advanced control over a database. The\n options are auto_mv, datestyle, enable_case_sensitive_identifier, enable_user_activity_logging,\n query_group, search_path, require_ssl, use_fips_ssl, and query monitoring metrics that let you define performance boundaries. \n For more information about query monitoring rules and available metrics, see Query monitoring metrics for Amazon Redshift Serverless.

" } }, "securityGroupIds": { @@ -6817,7 +6837,7 @@ "publiclyAccessible": { "target": "smithy.api#Boolean", "traits": { - "smithy.api#documentation": "

A value that specifies whether the workgroup \n can be accessible from a public network

" + "smithy.api#documentation": "

A value that specifies whether the workgroup can be accessible from a public network.

" } }, "creationDate": { diff --git a/models/redshift.json b/models/redshift.json index f7a46dd42f..5a49d50171 100644 --- a/models/redshift.json +++ b/models/redshift.json @@ -17586,6 +17586,12 @@ "traits": { "smithy.api#documentation": "

The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin credentials secret.

" } + }, + "SnapshotArn": { + "target": "com.amazonaws.redshift#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the snapshot.

" + } } }, "traits": { diff --git a/models/rekognition.json b/models/rekognition.json index de18bed957..1310144456 100644 --- a/models/rekognition.json +++ b/models/rekognition.json @@ -1150,6 +1150,12 @@ "traits": { "smithy.api#documentation": "

The time duration of a segment in milliseconds, I.e. time elapsed from\n StartTimestampMillis to EndTimestampMillis.

" } + }, + "ContentTypes": { + "target": "com.amazonaws.rekognition#ContentTypes", + "traits": { + "smithy.api#documentation": "

A list of predicted results for the type of content an image contains. For example, \n the image content might be from animation, sports, or a video game.

" + } } }, "traits": { @@ -1646,7 +1652,7 @@ "SessionId": { "target": "com.amazonaws.rekognition#LivenessSessionId", "traits": { - "smithy.api#documentation": "

A unique 128-bit UUID identifying a Face Liveness session.

", + "smithy.api#documentation": "

A unique 128-bit UUID identifying a Face Liveness session. \n A new sessionID must be used for every Face Liveness check. If a given sessionID is used for subsequent \n Face Liveness checks, the checks will fail. Additionally, a SessionId expires 3 minutes after it's sent, \n making all Liveness data associated with the session (e.g., sessionID, reference image, audit images, etc.) unavailable.\n

", "smithy.api#required": {} } } diff --git a/models/rolesanywhere.json b/models/rolesanywhere.json index f9d39c8382..0d7da1ff85 100644 --- a/models/rolesanywhere.json +++ b/models/rolesanywhere.json @@ -23,6 +23,51 @@ } } }, + "com.amazonaws.rolesanywhere#AttributeMapping": { + "type": "structure", + "members": { + "certificateField": { + "target": "com.amazonaws.rolesanywhere#CertificateField", + "traits": { + "smithy.api#documentation": "

Fields (x509Subject, x509Issuer and x509SAN) within X.509 certificates.

" + } + }, + "mappingRules": { + "target": "com.amazonaws.rolesanywhere#MappingRules", + "traits": { + "smithy.api#documentation": "

A list of mapping entries for every supported specifier or sub-field.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A mapping applied to the authenticating end-entity certificate.

" + } + }, + "com.amazonaws.rolesanywhere#AttributeMappings": { + "type": "list", + "member": { + "target": "com.amazonaws.rolesanywhere#AttributeMapping" + } + }, + "com.amazonaws.rolesanywhere#CertificateField": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "x509Subject", + "value": "x509Subject" + }, + { + "name": "x509Issuer", + "value": "x509Issuer" + }, + { + "name": "x509SAN", + "value": "x509SAN" + } + ] + } + }, "com.amazonaws.rolesanywhere#CreateProfile": { "type": "operation", "input": { @@ -327,6 +372,120 @@ "target": "com.amazonaws.rolesanywhere#CrlDetail" } }, + "com.amazonaws.rolesanywhere#DeleteAttributeMapping": { + "type": "operation", + "input": { + "target": "com.amazonaws.rolesanywhere#DeleteAttributeMappingRequest" + }, + "output": { + "target": "com.amazonaws.rolesanywhere#DeleteAttributeMappingResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rolesanywhere#AccessDeniedException" + }, + { + "target": "com.amazonaws.rolesanywhere#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.rolesanywhere#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Delete an entry from the attribute mapping rules enforced by a given profile.

", + "smithy.api#examples": [ + { + "title": "DeleteAttributeMapping - Deletes a custom attribute mapping rule", + "input": { + "profileId": "00000000-0000-0000-0000-000000000000", + "specifiers": [ + "OU" + ], + "certificateField": "x509Subject" + }, + "output": { + "profile": { + "attributeMappings": [ + { + "mappingRules": [ + { + "specifier": "CN" + } + ], + "certificateField": "x509Subject" + } + ], + "createdAt": "2021-07-19T15:55:25.986591Z", + "createdBy": "arn:aws:sts::123456789012:assumed-role/Admin/DummyRole", + "durationSeconds": 3600, + "enabled": true, + "managedPolicyArns": [], + "name": "Dummy Profile", + "profileArn": "arn:aws:rolesanywhere:us-east-1:123456789012:profile/00000000-0000-0000-0000-000000000000", + "profileId": "00000000-0000-0000-0000-000000000000", + "requireInstanceProperties": false, + "roleArns": [ + "arn:aws:iam::123456789012:role/DummyRole" + ], + "sessionPolicy": "", + "updatedAt": "2021-07-19T15:55:25.986591Z" + } + } + } + ], + "smithy.api#http": { + "uri": "/profiles/{profileId}/mappings", + "method": "DELETE" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.rolesanywhere#DeleteAttributeMappingRequest": { + "type": "structure", + "members": { + "profileId": { + "target": "com.amazonaws.rolesanywhere#Uuid", + "traits": { + "smithy.api#documentation": "

The unique identifier of the profile.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "certificateField": { + "target": "com.amazonaws.rolesanywhere#CertificateField", + "traits": { + "smithy.api#documentation": "

Fields (x509Subject, x509Issuer and x509SAN) within X.509 certificates.

", + "smithy.api#httpQuery": "certificateField", + "smithy.api#required": {} + } + }, + "specifiers": { + "target": "com.amazonaws.rolesanywhere#SpecifierList", + "traits": { + "smithy.api#documentation": "

A list of specifiers of a certificate field; for example, CN, OU, UID from a Subject.

", + "smithy.api#httpQuery": "specifiers" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rolesanywhere#DeleteAttributeMappingResponse": { + "type": "structure", + "members": { + "profile": { + "target": "com.amazonaws.rolesanywhere#ProfileDetail", + "traits": { + "smithy.api#documentation": "

The state of the profile after a read or write operation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.rolesanywhere#DeleteCrl": { "type": "operation", "input": { @@ -1054,6 +1213,30 @@ } } }, + "com.amazonaws.rolesanywhere#MappingRule": { + "type": "structure", + "members": { + "specifier": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Specifier within a certificate field, such as CN, OU, or UID from the Subject field.

", + "smithy.api#length": { + "max": 60 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A single mapping entry for each supported specifier or sub-field.

" + } + }, + "com.amazonaws.rolesanywhere#MappingRules": { + "type": "list", + "member": { + "target": "com.amazonaws.rolesanywhere#MappingRule" + } + }, "com.amazonaws.rolesanywhere#NotificationChannel": { "type": "string", "traits": { @@ -1246,11 +1429,17 @@ "target": "com.amazonaws.rolesanywhere#ListProfiles" }, "operations": [ + { + "target": "com.amazonaws.rolesanywhere#DeleteAttributeMapping" + }, { "target": "com.amazonaws.rolesanywhere#DisableProfile" }, { "target": "com.amazonaws.rolesanywhere#EnableProfile" + }, + { + "target": "com.amazonaws.rolesanywhere#PutAttributeMapping" } ], "traits": { @@ -1343,6 +1532,12 @@ "traits": { "smithy.api#documentation": "

Used to determine how long sessions vended using this profile are valid for. See the Expiration section of the \nCreateSession API documentation\npage for more details. In requests, if this value is not provided, the default value will be 3600.

" } + }, + "attributeMappings": { + "target": "com.amazonaws.rolesanywhere#AttributeMappings", + "traits": { + "smithy.api#documentation": "

A mapping applied to the authenticating end-entity certificate.

" + } } }, "traits": { @@ -1366,6 +1561,121 @@ "target": "com.amazonaws.rolesanywhere#ProfileDetail" } }, + "com.amazonaws.rolesanywhere#PutAttributeMapping": { + "type": "operation", + "input": { + "target": "com.amazonaws.rolesanywhere#PutAttributeMappingRequest" + }, + "output": { + "target": "com.amazonaws.rolesanywhere#PutAttributeMappingResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rolesanywhere#AccessDeniedException" + }, + { + "target": "com.amazonaws.rolesanywhere#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.rolesanywhere#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Put an entry in the attribute mapping rules that will be enforced by a given profile. \n A mapping specifies a certificate field and one or more specifiers that have contextual meanings.

", + "smithy.api#examples": [ + { + "title": "PutAttributeMapping - Adds a custom attribute mapping rule", + "input": { + "profileId": "00000000-0000-0000-0000-000000000000", + "mappingRules": [ + { + "specifier": "CN" + } + ], + "certificateField": "x509Subject" + }, + "output": { + "profile": { + "attributeMappings": [ + { + "mappingRules": [ + { + "specifier": "CN" + } + ], + "certificateField": "x509Subject" + } + ], + "createdAt": "2021-07-19T15:55:25.986591Z", + "createdBy": "arn:aws:sts::123456789012:assumed-role/Admin/DummyRole", + "durationSeconds": 3600, + "enabled": true, + "managedPolicyArns": [], + "name": "Dummy Profile", + "profileArn": "arn:aws:rolesanywhere:us-east-1:123456789012:profile/00000000-0000-0000-0000-000000000000", + "profileId": "00000000-0000-0000-0000-000000000000", + "requireInstanceProperties": false, + "roleArns": [ + "arn:aws:iam::123456789012:role/DummyRole" + ], + "sessionPolicy": "", + "updatedAt": "2021-07-19T15:55:25.986591Z" + } + } + } + ], + "smithy.api#http": { + "uri": "/profiles/{profileId}/mappings", + "method": "PUT" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.rolesanywhere#PutAttributeMappingRequest": { + "type": "structure", + "members": { + "profileId": { + "target": "com.amazonaws.rolesanywhere#Uuid", + "traits": { + "smithy.api#documentation": "

The unique identifier of the profile.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "certificateField": { + "target": "com.amazonaws.rolesanywhere#CertificateField", + "traits": { + "smithy.api#documentation": "

Fields (x509Subject, x509Issuer and x509SAN) within X.509 certificates.

", + "smithy.api#required": {} + } + }, + "mappingRules": { + "target": "com.amazonaws.rolesanywhere#MappingRules", + "traits": { + "smithy.api#documentation": "

A list of mapping entries for every supported specifier or sub-field.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rolesanywhere#PutAttributeMappingResponse": { + "type": "structure", + "members": { + "profile": { + "target": "com.amazonaws.rolesanywhere#ProfileDetail", + "traits": { + "smithy.api#documentation": "

The state of the profile after a read or write operation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.rolesanywhere#PutNotificationSettings": { "type": "operation", "input": { @@ -2635,6 +2945,12 @@ "smithy.api#documentation": "

The data field of the trust anchor depending on its type.

" } }, + "com.amazonaws.rolesanywhere#SpecifierList": { + "type": "list", + "member": { + "target": "smithy.api#String" + } + }, "com.amazonaws.rolesanywhere#Subject": { "type": "resource", "identifiers": { diff --git a/models/route53profiles.json b/models/route53profiles.json new file mode 100644 index 0000000000..54abbdfaa3 --- /dev/null +++ b/models/route53profiles.json @@ -0,0 +1,2610 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.route53profiles#AccessDeniedException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.route53profiles#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

\n The current account doesn't have the IAM permissions required to perform the specified operation.\n

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.route53profiles#AccountId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 12, + "max": 32 + } + } + }, + "com.amazonaws.route53profiles#Arn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.route53profiles#AssociateProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#AssociateProfileRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#AssociateProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#ConflictException" + }, + { + "target": "com.amazonaws.route53profiles#InvalidParameterException" + }, + { + "target": "com.amazonaws.route53profiles#LimitExceededException" + }, + { + "target": "com.amazonaws.route53profiles#ResourceExistsException" + }, + { + "target": "com.amazonaws.route53profiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Associates a Route 53 Profiles profile with a VPC. A VPC can have only one Profile associated with it, but a Profile can be associated with up to 5000 VPCs.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/profileassociation", + "code": 200 + } + } + }, + "com.amazonaws.route53profiles#AssociateProfileRequest": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n ID of the Profile.\n

", + "smithy.api#required": {} + } + }, + "ResourceId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the VPC.\n

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.route53profiles#Name", + "traits": { + "smithy.api#documentation": "

\n A name for the association.\n

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.route53profiles#TagList", + "traits": { + "smithy.api#documentation": "

\n A list of the tag keys and values that you want to identify the Profile association.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#AssociateProfileResponse": { + "type": "structure", + "members": { + "ProfileAssociation": { + "target": "com.amazonaws.route53profiles#ProfileAssociation", + "traits": { + "smithy.api#documentation": "

\n The association that you just created. The association has an ID that you can use to identify it in other requests, like update and delete.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#AssociateResourceToProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#AssociateResourceToProfileRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#AssociateResourceToProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#ConflictException" + }, + { + "target": "com.amazonaws.route53profiles#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.route53profiles#InvalidParameterException" + }, + { + "target": "com.amazonaws.route53profiles#LimitExceededException" + }, + { + "target": "com.amazonaws.route53profiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Associates a DNS reource configuration to a Route 53 Profile.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/profileresourceassociation", + "code": 200 + } + } + }, + "com.amazonaws.route53profiles#AssociateResourceToProfileRequest": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n ID of the Profile.\n

", + "smithy.api#required": {} + } + }, + "ResourceArn": { + "target": "com.amazonaws.route53profiles#Arn", + "traits": { + "smithy.api#documentation": "

\n Amazon resource number, ARN, of the DNS resource.\n

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.route53profiles#Name", + "traits": { + "smithy.api#documentation": "

\n Name for the resource association.\n

", + "smithy.api#required": {} + } + }, + "ResourceProperties": { + "target": "com.amazonaws.route53profiles#ResourceProperties", + "traits": { + "smithy.api#documentation": "

\n If you are adding a DNS Firewall rule group, include also a priority in this format:\n

\n

\n Key=FirewallRuleGroupPriority,Value=100\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#AssociateResourceToProfileResponse": { + "type": "structure", + "members": { + "ProfileResourceAssociation": { + "target": "com.amazonaws.route53profiles#ProfileResourceAssociation", + "traits": { + "smithy.api#documentation": "

\n Infromation about the AssociateResourceToProfile, including a status message.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#ConflictException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.route53profiles#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

\nThe request you submitted conflicts with an existing request.\n

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.route53profiles#CreateProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#CreateProfileRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#CreateProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#InvalidParameterException" + }, + { + "target": "com.amazonaws.route53profiles#LimitExceededException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Creates an empty Route 53 Profile.\n

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/profile" + } + } + }, + "com.amazonaws.route53profiles#CreateProfileRequest": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.route53profiles#Name", + "traits": { + "smithy.api#documentation": "

\n A name for the Profile.\n

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.route53profiles#CreatorRequestId", + "traits": { + "smithy.api#documentation": "

\n ClientToken is an idempotency token that ensures a call to CreateProfile completes only once. You choose the value to pass. \n For example, an issue might prevent you from getting a response from CreateProfile. \n In this case, safely retry your call to CreateProfile by using the same CreateProfile parameter value.\n

", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.route53profiles#TagList", + "traits": { + "smithy.api#documentation": "

\n A list of the tag keys and values that you want to associate with the Route 53 Profile.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#CreateProfileResponse": { + "type": "structure", + "members": { + "Profile": { + "target": "com.amazonaws.route53profiles#Profile", + "traits": { + "smithy.api#documentation": "

\n The Profile that you just created.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#CreatorRequestId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.route53profiles#DeleteProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#DeleteProfileRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#DeleteProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#ConflictException" + }, + { + "target": "com.amazonaws.route53profiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Deletes the specified Route 53 Profile. Before you can delete a profile, you must first disassociate it from all VPCs.\n

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/profile/{ProfileId}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.route53profiles#DeleteProfileRequest": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the Profile that you want to delete.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#DeleteProfileResponse": { + "type": "structure", + "members": { + "Profile": { + "target": "com.amazonaws.route53profiles#Profile", + "traits": { + "smithy.api#documentation": "

\n Information about the DeleteProfile request, including the status of the request.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#DisassociateProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#DisassociateProfileRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#DisassociateProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#InvalidParameterException" + }, + { + "target": "com.amazonaws.route53profiles#LimitExceededException" + }, + { + "target": "com.amazonaws.route53profiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Dissociates a specified Route 53 Profile from the specified VPC.\n

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/profileassociation/Profileid/{ProfileId}/resourceid/{ResourceId}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.route53profiles#DisassociateProfileRequest": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n ID of the Profile.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ResourceId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the VPC.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#DisassociateProfileResponse": { + "type": "structure", + "members": { + "ProfileAssociation": { + "target": "com.amazonaws.route53profiles#ProfileAssociation", + "traits": { + "smithy.api#documentation": "

\n Information about the DisassociateProfile request.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#DisassociateResourceFromProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#DisassociateResourceFromProfileRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#DisassociateResourceFromProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#ConflictException" + }, + { + "target": "com.amazonaws.route53profiles#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.route53profiles#InvalidParameterException" + }, + { + "target": "com.amazonaws.route53profiles#LimitExceededException" + }, + { + "target": "com.amazonaws.route53profiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Dissoaciated a specified resource, from the Route 53 Profile.\n

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/profileresourceassociation/profileid/{ProfileId}/resourcearn/{ResourceArn}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.route53profiles#DisassociateResourceFromProfileRequest": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the Profile.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ResourceArn": { + "target": "com.amazonaws.route53profiles#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#DisassociateResourceFromProfileResponse": { + "type": "structure", + "members": { + "ProfileResourceAssociation": { + "target": "com.amazonaws.route53profiles#ProfileResourceAssociation", + "traits": { + "smithy.api#documentation": "

\n Information about the DisassociateResourceFromProfile request, including the status of the request.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#ExceptionMessage": { + "type": "string" + }, + "com.amazonaws.route53profiles#GetProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#GetProfileRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#GetProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Returns information about a specified Route 53 Profile, such as whether whether the Profile is shared, and the current status of the Profile.\n

", + "smithy.api#http": { + "method": "GET", + "uri": "/profile/{ProfileId}", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.route53profiles#GetProfileAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#GetProfileAssociationRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#GetProfileAssociationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Retrieves a Route 53 Profile association for a VPC. A VPC can have only one Profile association, but a Profile can be associated with up to 5000 VPCs. \n

", + "smithy.api#http": { + "method": "GET", + "uri": "/profileassociation/{ProfileAssociationId}", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.route53profiles#GetProfileAssociationRequest": { + "type": "structure", + "members": { + "ProfileAssociationId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The identifier of the association you want to get information about.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#GetProfileAssociationResponse": { + "type": "structure", + "members": { + "ProfileAssociation": { + "target": "com.amazonaws.route53profiles#ProfileAssociation", + "traits": { + "smithy.api#documentation": "

\n Information about the Profile association that you specified in a GetProfileAssociation request.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#GetProfileRequest": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n ID of the Profile.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#GetProfileResourceAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#GetProfileResourceAssociationRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#GetProfileResourceAssociationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#InvalidParameterException" + }, + { + "target": "com.amazonaws.route53profiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Returns information about a specified Route 53 Profile resource association.\n

", + "smithy.api#http": { + "method": "GET", + "uri": "/profileresourceassociation/{ProfileResourceAssociationId}", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.route53profiles#GetProfileResourceAssociationRequest": { + "type": "structure", + "members": { + "ProfileResourceAssociationId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n \n The ID of the profile resource association that you want to get information about.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#GetProfileResourceAssociationResponse": { + "type": "structure", + "members": { + "ProfileResourceAssociation": { + "target": "com.amazonaws.route53profiles#ProfileResourceAssociation", + "traits": { + "smithy.api#documentation": "

\n Information about the Profile resource association that you specified in a GetProfileResourceAssociation request.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#GetProfileResponse": { + "type": "structure", + "members": { + "Profile": { + "target": "com.amazonaws.route53profiles#Profile", + "traits": { + "smithy.api#documentation": "

\n Information about the Profile, including the status of the Profile.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#InternalServiceErrorException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.route53profiles#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

\nAn internal server error occured. Retry your request.\n

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.route53profiles#InvalidNextTokenException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.route53profiles#String" + } + }, + "traits": { + "smithy.api#documentation": "

\nThe NextToken you provided isn;t valid.\n

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.route53profiles#InvalidParameterException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.route53profiles#ExceptionMessage", + "traits": { + "smithy.api#required": {} + } + }, + "FieldName": { + "target": "com.amazonaws.route53profiles#String", + "traits": { + "smithy.api#documentation": "

\n The parameter field name for the invalid parameter exception.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n One or more parameters in this request are not valid.\n

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.route53profiles#LimitExceededException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.route53profiles#String" + }, + "ResourceType": { + "target": "com.amazonaws.route53profiles#String", + "traits": { + "smithy.api#documentation": "

\n The resource type that caused the limits to be exceeded.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The request caused one or more limits to be exceeded.\n

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.route53profiles#ListProfileAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#ListProfileAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#ListProfileAssociationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#InvalidNextTokenException" + }, + { + "target": "com.amazonaws.route53profiles#InvalidParameterException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Lists all the VPCs that the specified Route 53 Profile is associated with.\n

", + "smithy.api#http": { + "method": "GET", + "uri": "/profileassociations", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ProfileAssociations", + "pageSize": "MaxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.route53profiles#ListProfileAssociationsRequest": { + "type": "structure", + "members": { + "ResourceId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n ID of the VPC.\n

", + "smithy.api#httpQuery": "resourceId" + } + }, + "ProfileId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\nID of the Profile.\n

", + "smithy.api#httpQuery": "profileId" + } + }, + "MaxResults": { + "target": "com.amazonaws.route53profiles#MaxResults", + "traits": { + "smithy.api#documentation": "

\n The maximum number of objects that you want to return for this request. If more objects are available, in the response, \n a NextToken value, which you can use in a subsequent call to get the next batch of objects, is provided.

\n

\n If you don't specify a value for MaxResults, up to 100 objects are returned.\n

", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.route53profiles#NextToken", + "traits": { + "smithy.api#documentation": "

\n For the first call to this list request, omit this value.\n

\n

When you request a list of objects, at most the number of objects specified by MaxResults is returned. \n If more objects are available for retrieval, a NextToken value is returned in the response. \n To retrieve the next batch of objects, use the token that was returned for the prior request in your next request.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#ListProfileAssociationsResponse": { + "type": "structure", + "members": { + "ProfileAssociations": { + "target": "com.amazonaws.route53profiles#ProfileAssociations", + "traits": { + "smithy.api#documentation": "

\n A complex type that containts settings information about the profile's VPC associations.\n

" + } + }, + "NextToken": { + "target": "com.amazonaws.route53profiles#NextToken", + "traits": { + "smithy.api#documentation": "

\n If more than MaxResults profile associations match the specified criteria, you can submit another \n ListProfileAssociations request to get the next group of results. In the next request, specify the value of NextToken from the previous response.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#ListProfileResourceAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#ListProfileResourceAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#ListProfileResourceAssociationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.route53profiles#InvalidNextTokenException" + }, + { + "target": "com.amazonaws.route53profiles#InvalidParameterException" + }, + { + "target": "com.amazonaws.route53profiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Lists all the resource associations for the specified Route 53 Profile.\n

", + "smithy.api#http": { + "method": "GET", + "uri": "/profileresourceassociations/profileid/{ProfileId}", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ProfileResourceAssociations", + "pageSize": "MaxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.route53profiles#ListProfileResourceAssociationsRequest": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\nThe ID of the Profile.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ResourceType": { + "target": "com.amazonaws.route53profiles#String", + "traits": { + "smithy.api#documentation": "

\n ID of a resource if you want information on only one type.\n

", + "smithy.api#httpQuery": "resourceType" + } + }, + "MaxResults": { + "target": "com.amazonaws.route53profiles#MaxResults", + "traits": { + "smithy.api#documentation": "

\n The maximum number of objects that you want to return for this request. If more objects are available, in the response, \n a NextToken value, which you can use in a subsequent call to get the next batch of objects, is provided.

\n

\n If you don't specify a value for MaxResults, up to 100 objects are returned.\n

", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.route53profiles#NextToken", + "traits": { + "smithy.api#documentation": "

\n For the first call to this list request, omit this value.\n

\n

When you request a list of objects, at most the number of objects specified by MaxResults is returned. \n If more objects are available for retrieval, a NextToken value is returned in the response. \n To retrieve the next batch of objects, use the token that was returned for the prior request in your next request.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#ListProfileResourceAssociationsResponse": { + "type": "structure", + "members": { + "ProfileResourceAssociations": { + "target": "com.amazonaws.route53profiles#ProfileResourceAssociations", + "traits": { + "smithy.api#documentation": "

\n Information about the profile resource association that you specified in a GetProfileResourceAssociation request.\n

" + } + }, + "NextToken": { + "target": "com.amazonaws.route53profiles#NextToken", + "traits": { + "smithy.api#documentation": "

\n If more than MaxResults resource associations match the specified criteria, you can submit another \n ListProfileResourceAssociations request to get the next group of results. In the next request, specify the value of NextToken from the previous response.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#ListProfiles": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#ListProfilesRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#ListProfilesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#InvalidNextTokenException" + }, + { + "target": "com.amazonaws.route53profiles#InvalidParameterException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Lists all the Route 53 Profiles associated with your Amazon Web Services account.\n

", + "smithy.api#http": { + "method": "GET", + "uri": "/profiles", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ProfileSummaries", + "pageSize": "MaxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.route53profiles#ListProfilesRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.route53profiles#MaxResults", + "traits": { + "smithy.api#documentation": "

\n The maximum number of objects that you want to return for this request. If more objects are available, in the response, \n a NextToken value, which you can use in a subsequent call to get the next batch of objects, is provided.

\n

\n If you don't specify a value for MaxResults, up to 100 objects are returned.\n

", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.route53profiles#NextToken", + "traits": { + "smithy.api#documentation": "

\n For the first call to this list request, omit this value.\n

\n

When you request a list of objects, at most the number of objects specified by MaxResults is returned. \n If more objects are available for retrieval, a NextToken value is returned in the response. \n To retrieve the next batch of objects, use the token that was returned for the prior request in your next request.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#ListProfilesResponse": { + "type": "structure", + "members": { + "ProfileSummaries": { + "target": "com.amazonaws.route53profiles#ProfileSummaryList", + "traits": { + "smithy.api#documentation": "

\n Summary information about the Profiles.\n

" + } + }, + "NextToken": { + "target": "com.amazonaws.route53profiles#NextToken", + "traits": { + "smithy.api#documentation": "

\n If more than MaxResults resource associations match the specified criteria, you can submit another \n ListProfiles request to get the next group of results. In the next request, specify the value of NextToken from the previous response.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#ConflictException" + }, + { + "target": "com.amazonaws.route53profiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Lists the tags that you associated with the specified resource.\n

", + "smithy.api#http": { + "uri": "/tags/{ResourceArn}", + "method": "GET", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.route53profiles#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.route53profiles#Arn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) for the resource that you want to list the tags for.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.route53profiles#TagMap", + "traits": { + "smithy.api#documentation": "

\n The tags that are associated with the resource that you specified in the ListTagsForResource request.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#MaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.route53profiles#Name": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 64 + }, + "smithy.api#pattern": "^(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)$" + } + }, + "com.amazonaws.route53profiles#NextToken": { + "type": "string" + }, + "com.amazonaws.route53profiles#Profile": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\nID of the Profile.\n

" + } + }, + "Arn": { + "target": "com.amazonaws.route53profiles#Arn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the Profile.\n

" + } + }, + "Name": { + "target": "com.amazonaws.route53profiles#Name", + "traits": { + "smithy.api#documentation": "

\nName of the Profile.\n

" + } + }, + "OwnerId": { + "target": "com.amazonaws.route53profiles#AccountId", + "traits": { + "smithy.api#documentation": "

\n Amazon Web Services account ID of the Profile owner.\n

" + } + }, + "Status": { + "target": "com.amazonaws.route53profiles#ProfileStatus", + "traits": { + "smithy.api#documentation": "

\n The status for the Profile.\n

" + } + }, + "StatusMessage": { + "target": "com.amazonaws.route53profiles#String", + "traits": { + "smithy.api#documentation": "

\n Status message that includes additiona information about the Profile.\n

" + } + }, + "ShareStatus": { + "target": "com.amazonaws.route53profiles#ShareStatus", + "traits": { + "smithy.api#documentation": "

\n Sharing status for the Profile.\n

" + } + }, + "CreationTime": { + "target": "com.amazonaws.route53profiles#Rfc3339Timestamp", + "traits": { + "smithy.api#documentation": "

\n The date and time that the Profile was created, in Unix time format and Coordinated Universal Time (UTC).\n

" + } + }, + "ModificationTime": { + "target": "com.amazonaws.route53profiles#Rfc3339Timestamp", + "traits": { + "smithy.api#documentation": "

\n The date and time that the Profile was modified, in Unix time format and Coordinated Universal Time (UTC).\n

" + } + }, + "ClientToken": { + "target": "com.amazonaws.route53profiles#CreatorRequestId", + "traits": { + "smithy.api#documentation": "

\n The ClientToken value that was assigned when the Profile was created.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n A complex type that includes settings for a Route 53 Profile.\n

" + } + }, + "com.amazonaws.route53profiles#ProfileAssociation": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n ID of the Profile association.\n

" + } + }, + "Name": { + "target": "com.amazonaws.route53profiles#Name", + "traits": { + "smithy.api#documentation": "

\n Name of the Profile association.\n

" + } + }, + "OwnerId": { + "target": "com.amazonaws.route53profiles#AccountId", + "traits": { + "smithy.api#documentation": "

\n Amazon Web Services account ID of the Profile association owner.\n

" + } + }, + "ProfileId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\nID of the Profile.\n

" + } + }, + "ResourceId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the VPC.\n

" + } + }, + "Status": { + "target": "com.amazonaws.route53profiles#ProfileStatus", + "traits": { + "smithy.api#documentation": "

\n Status of the Profile association.\n

" + } + }, + "StatusMessage": { + "target": "com.amazonaws.route53profiles#String", + "traits": { + "smithy.api#documentation": "

\n Additional information about the Profile association.\n

" + } + }, + "CreationTime": { + "target": "com.amazonaws.route53profiles#Rfc3339Timestamp", + "traits": { + "smithy.api#documentation": "

\n The date and time that the Profile association was created, in Unix time format and Coordinated Universal Time (UTC).\n

" + } + }, + "ModificationTime": { + "target": "com.amazonaws.route53profiles#Rfc3339Timestamp", + "traits": { + "smithy.api#documentation": "

\n The date and time that the Profile association was modified, in Unix time format and Coordinated Universal Time (UTC).\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n An association between a Route 53 Profile and a VPC.\n

" + } + }, + "com.amazonaws.route53profiles#ProfileAssociations": { + "type": "list", + "member": { + "target": "com.amazonaws.route53profiles#ProfileAssociation" + } + }, + "com.amazonaws.route53profiles#ProfileResourceAssociation": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n ID of the Profile resource association.\n

" + } + }, + "Name": { + "target": "com.amazonaws.route53profiles#Name", + "traits": { + "smithy.api#documentation": "

\n Name of the Profile resource association.\n

" + } + }, + "OwnerId": { + "target": "com.amazonaws.route53profiles#AccountId", + "traits": { + "smithy.api#documentation": "

\n Amazon Web Services account ID of the Profile resource association owner.\n

" + } + }, + "ProfileId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n Profile ID of the Profile that the resources are associated with.\n

" + } + }, + "ResourceArn": { + "target": "com.amazonaws.route53profiles#Arn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the resource association.\n

" + } + }, + "ResourceType": { + "target": "com.amazonaws.route53profiles#String", + "traits": { + "smithy.api#documentation": "

\n Resource type, such as a private hosted zone, or DNS Firewall rule group.\n

" + } + }, + "ResourceProperties": { + "target": "com.amazonaws.route53profiles#ResourceProperties", + "traits": { + "smithy.api#documentation": "

\n If the DNS resource is a DNS Firewall rule group, this indicates the priority.\n

" + } + }, + "Status": { + "target": "com.amazonaws.route53profiles#ProfileStatus", + "traits": { + "smithy.api#documentation": "

\n Status of the Profile resource association.\n

" + } + }, + "StatusMessage": { + "target": "com.amazonaws.route53profiles#String", + "traits": { + "smithy.api#documentation": "

\n Additional information about the Profile resource association.\n

" + } + }, + "CreationTime": { + "target": "com.amazonaws.route53profiles#Rfc3339Timestamp", + "traits": { + "smithy.api#documentation": "

\n The date and time that the Profile resource association was created, in Unix time format and Coordinated Universal Time (UTC).\n

" + } + }, + "ModificationTime": { + "target": "com.amazonaws.route53profiles#Rfc3339Timestamp", + "traits": { + "smithy.api#documentation": "

\n The date and time that the Profile resource association was modified, in Unix time format and Coordinated Universal Time (UTC).\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The association between a Route 53 Profile and resources.\n

" + } + }, + "com.amazonaws.route53profiles#ProfileResourceAssociations": { + "type": "list", + "member": { + "target": "com.amazonaws.route53profiles#ProfileResourceAssociation" + } + }, + "com.amazonaws.route53profiles#ProfileStatus": { + "type": "enum", + "members": { + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETING" + } + }, + "UPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATING" + } + }, + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATING" + } + }, + "DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.route53profiles#ProfileSummary": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\n ID of the Profile.\n

" + } + }, + "Arn": { + "target": "com.amazonaws.route53profiles#Arn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the Profile.\n

" + } + }, + "Name": { + "target": "com.amazonaws.route53profiles#Name", + "traits": { + "smithy.api#documentation": "

\n Name of the Profile.\n

" + } + }, + "ShareStatus": { + "target": "com.amazonaws.route53profiles#ShareStatus", + "traits": { + "smithy.api#documentation": "

\n Share status of the Profile.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Summary information about a Route 53 Profile.\n

" + } + }, + "com.amazonaws.route53profiles#ProfileSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.route53profiles#ProfileSummary" + } + }, + "com.amazonaws.route53profiles#ResourceExistsException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.route53profiles#String" + }, + "ResourceType": { + "target": "com.amazonaws.route53profiles#String", + "traits": { + "smithy.api#documentation": "

\n The resource type that caused the resource exists exception.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The resource you are trying to associate, has already been associated.\n

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.route53profiles#ResourceId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + } + } + }, + "com.amazonaws.route53profiles#ResourceNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.route53profiles#String" + }, + "ResourceType": { + "target": "com.amazonaws.route53profiles#String", + "traits": { + "smithy.api#documentation": "

\n The resource type that caused the resource not found exception.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\nThe resource you are associating is not found.\n

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.route53profiles#ResourceProperties": { + "type": "string" + }, + "com.amazonaws.route53profiles#Rfc3339Timestamp": { + "type": "timestamp" + }, + "com.amazonaws.route53profiles#Route53Profiles": { + "type": "service", + "version": "2018-05-10", + "operations": [ + { + "target": "com.amazonaws.route53profiles#AssociateProfile" + }, + { + "target": "com.amazonaws.route53profiles#AssociateResourceToProfile" + }, + { + "target": "com.amazonaws.route53profiles#CreateProfile" + }, + { + "target": "com.amazonaws.route53profiles#DeleteProfile" + }, + { + "target": "com.amazonaws.route53profiles#DisassociateProfile" + }, + { + "target": "com.amazonaws.route53profiles#DisassociateResourceFromProfile" + }, + { + "target": "com.amazonaws.route53profiles#GetProfile" + }, + { + "target": "com.amazonaws.route53profiles#GetProfileAssociation" + }, + { + "target": "com.amazonaws.route53profiles#GetProfileResourceAssociation" + }, + { + "target": "com.amazonaws.route53profiles#ListProfileAssociations" + }, + { + "target": "com.amazonaws.route53profiles#ListProfileResourceAssociations" + }, + { + "target": "com.amazonaws.route53profiles#ListProfiles" + }, + { + "target": "com.amazonaws.route53profiles#ListTagsForResource" + }, + { + "target": "com.amazonaws.route53profiles#TagResource" + }, + { + "target": "com.amazonaws.route53profiles#UntagResource" + }, + { + "target": "com.amazonaws.route53profiles#UpdateProfileResourceAssociation" + } + ], + "traits": { + "aws.api#service": { + "cloudTrailEventSource": "route53profiles.amazonaws.com", + "sdkId": "Route53Profiles", + "arnNamespace": "route53profiles" + }, + "aws.auth#sigv4": { + "name": "route53profiles" + }, + "aws.iam#defineConditionKeys": { + "aws:ResourceTag/${TagKey}": { + "type": "String", + "documentation": "Filters access by the presence of tag key-value pairs attached to the resource", + "externalDocumentation": "${DocHomeURL}IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag" + }, + "aws:RequestTag/${TagKey}": { + "type": "String", + "documentation": "Filters access by the presence of tag key-value pairs in the request", + "externalDocumentation": "${DocHomeURL}IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag" + }, + "aws:TagKeys": { + "type": "ArrayOfString", + "documentation": "Filters access by the presence of tag keys in the request", + "externalDocumentation": "${DocHomeURL}IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys" + } + }, + "aws.iam#supportedPrincipalTypes": [ + "Root", + "IAMUser", + "IAMRole", + "FederatedUser" + ], + "aws.protocols#restJson1": {}, + "smithy.api#cors": {}, + "smithy.api#documentation": "

\n With Amazon Route 53 Profiles you can share Route 53 configurations with VPCs and AWS accounts\n

", + "smithy.api#title": "Route 53 Profiles", + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53profiles-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53profiles-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53profiles.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53profiles.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53profiles-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53profiles-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53profiles.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53profiles.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53profiles-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53profiles-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53profiles.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53profiles.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53profiles-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53profiles-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53profiles.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53profiles.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53profiles-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53profiles.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53profiles-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53profiles.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" + } + } + }, + "com.amazonaws.route53profiles#ShareStatus": { + "type": "enum", + "members": { + "NOT_SHARED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_SHARED" + } + }, + "SHARED_WITH_ME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SHARED_WITH_ME" + } + }, + "SHARED_BY_ME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SHARED_BY_ME" + } + } + } + }, + "com.amazonaws.route53profiles#String": { + "type": "string" + }, + "com.amazonaws.route53profiles#Tag": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.route53profiles#TagKey", + "traits": { + "smithy.api#documentation": "

\n Key associated with the Tag.\n

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.route53profiles#TagValue", + "traits": { + "smithy.api#documentation": "

\nValue for the Tag.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\nTag for the Profile.\n

" + } + }, + "com.amazonaws.route53profiles#TagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.route53profiles#TagKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.route53profiles#TagKey" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.route53profiles#TagList": { + "type": "list", + "member": { + "target": "com.amazonaws.route53profiles#Tag" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.route53profiles#TagMap": { + "type": "map", + "key": { + "target": "com.amazonaws.route53profiles#TagKey" + }, + "value": { + "target": "com.amazonaws.route53profiles#TagValue" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.route53profiles#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Adds one or more tags to a specified resource.\n

", + "smithy.api#http": { + "uri": "/tags/{ResourceArn}", + "method": "POST", + "code": 204 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.route53profiles#TagResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.route53profiles#Arn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) for the resource that you want to add tags to. \n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.route53profiles#TagMap", + "traits": { + "smithy.api#documentation": "

\n The tags that you want to add to the specified resource.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#TagResourceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } + }, + "com.amazonaws.route53profiles#ThrottlingException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.route53profiles#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

\n The request was throttled. Try again in a few minutes.\n

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.route53profiles#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#ConflictException" + }, + { + "target": "com.amazonaws.route53profiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Removes one or more tags from a specified resource.\n

", + "smithy.api#http": { + "uri": "/tags/{ResourceArn}", + "method": "DELETE", + "code": 204 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.route53profiles#UntagResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.route53profiles#Arn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) for the resource that you want to remove tags from.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.route53profiles#TagKeyList", + "traits": { + "smithy.api#documentation": "

\n The tags that you want to remove to the specified resource.\n

", + "smithy.api#httpQuery": "tagKeys", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#UntagResourceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#UpdateProfileResourceAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53profiles#UpdateProfileResourceAssociationRequest" + }, + "output": { + "target": "com.amazonaws.route53profiles#UpdateProfileResourceAssociationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53profiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53profiles#ConflictException" + }, + { + "target": "com.amazonaws.route53profiles#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.route53profiles#InvalidParameterException" + }, + { + "target": "com.amazonaws.route53profiles#LimitExceededException" + }, + { + "target": "com.amazonaws.route53profiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53profiles#ThrottlingException" + }, + { + "target": "com.amazonaws.route53profiles#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\nUpdates the specified Route 53 Profile resourse association.\n

", + "smithy.api#http": { + "method": "PATCH", + "uri": "/profileresourceassociation/{ProfileResourceAssociationId}", + "code": 200 + } + } + }, + "com.amazonaws.route53profiles#UpdateProfileResourceAssociationRequest": { + "type": "structure", + "members": { + "ProfileResourceAssociationId": { + "target": "com.amazonaws.route53profiles#ResourceId", + "traits": { + "smithy.api#documentation": "

\nID of the resource association.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.route53profiles#Name", + "traits": { + "smithy.api#documentation": "

\nName of the resource association.\n

" + } + }, + "ResourceProperties": { + "target": "com.amazonaws.route53profiles#ResourceProperties", + "traits": { + "smithy.api#documentation": "

\n If you are adding a DNS Firewall rule group, include also a priority in this format:

\n

\n Key=FirewallRuleGroupPriority,Value=100.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53profiles#UpdateProfileResourceAssociationResponse": { + "type": "structure", + "members": { + "ProfileResourceAssociation": { + "target": "com.amazonaws.route53profiles#ProfileResourceAssociation", + "traits": { + "smithy.api#documentation": "

\n Information about the UpdateProfileResourceAssociation request, including a status message.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.route53profiles#ValidationException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.route53profiles#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

\n You have provided an invalid command.\n

", + "smithy.api#error": "client" + } + } + } +} \ No newline at end of file diff --git a/models/route53resolver.json b/models/route53resolver.json index f8ae5ce718..8d56c9b1a0 100644 --- a/models/route53resolver.json +++ b/models/route53resolver.json @@ -37,7 +37,7 @@ } }, "traits": { - "smithy.api#documentation": "

The current account doesn't have the IAM permissions required to perform the specified Resolver operation.

", + "smithy.api#documentation": "

The current account doesn't have the IAM permissions required to perform the specified Resolver operation.

\n

This error can also be thrown when a customer has reached the 5120 character limit for a\n\t\t\tresource policy for CloudWatch Logs.

", "smithy.api#error": "client" } }, @@ -757,10 +757,16 @@ "smithy.api#required": {} } }, + "FirewallDomainRedirectionAction": { + "target": "com.amazonaws.route53resolver#FirewallDomainRedirectionAction", + "traits": { + "smithy.api#documentation": "

\n\t\t\tHow you want the the rule to evaluate DNS redirection in the DNS redirection chain, such as CNAME, DNAME, ot ALIAS. \n\t\t

\n

\n Inspect_Redirection_Domain (Default) inspects all domains in the redirection chain. The individual domains in the redirection chain must be \n\t\t\tadded to the allow domain list.

\n

\n Trust_Redirection_Domain inspects only the first domain in the redirection chain. You don't need to add the subsequent domains in the redirection list to \n\t\tthe domain alloww list.

" + } + }, "Qtype": { "target": "com.amazonaws.route53resolver#Qtype", "traits": { - "smithy.api#documentation": "

\n\t\t\tThe DNS query type you want the rule to evaluate. Allowed values are;\n\t\t

\n
    \n
  • \n

    \n\t\t\t\tA: Returns an IPv4 address.

    \n
  • \n
  • \n

    AAAA: Returns an Ipv6 address.

    \n
  • \n
  • \n

    CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

    \n
  • \n
  • \n

    CNAME: Returns another domain name.

    \n
  • \n
  • \n

    DS: Record that identifies the DNSSEC signing key of a delegated zone.

    \n
  • \n
  • \n

    MX: Specifies mail servers.

    \n
  • \n
  • \n

    NAPTR: Regular-expression-based rewriting of domain names.

    \n
  • \n
  • \n

    NS: Authoritative name servers.

    \n
  • \n
  • \n

    PTR: Maps an IP address to a domain name.

    \n
  • \n
  • \n

    SOA: Start of authority record for the zone.

    \n
  • \n
  • \n

    SPF: Lists the servers authorized to send emails from a domain.

    \n
  • \n
  • \n

    SRV: Application specific values that identify servers.

    \n
  • \n
  • \n

    TXT: Verifies email senders and application-specific values.

    \n
  • \n
" + "smithy.api#documentation": "

\n\t\t\tThe DNS query type you want the rule to evaluate. Allowed values are;\n\t\t

\n
    \n
  • \n

    \n\t\t\t\tA: Returns an IPv4 address.

    \n
  • \n
  • \n

    AAAA: Returns an Ipv6 address.

    \n
  • \n
  • \n

    CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

    \n
  • \n
  • \n

    CNAME: Returns another domain name.

    \n
  • \n
  • \n

    DS: Record that identifies the DNSSEC signing key of a delegated zone.

    \n
  • \n
  • \n

    MX: Specifies mail servers.

    \n
  • \n
  • \n

    NAPTR: Regular-expression-based rewriting of domain names.

    \n
  • \n
  • \n

    NS: Authoritative name servers.

    \n
  • \n
  • \n

    PTR: Maps an IP address to a domain name.

    \n
  • \n
  • \n

    SOA: Start of authority record for the zone.

    \n
  • \n
  • \n

    SPF: Lists the servers authorized to send emails from a domain.

    \n
  • \n
  • \n

    SRV: Application specific values that identify servers.

    \n
  • \n
  • \n

    TXT: Verifies email senders and application-specific values.

    \n
  • \n
  • \n

    A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be\n\t\t\t\tdefined as TYPENUMBER, where the\n\t\t\t\tNUMBER can be 1-65334, for\n\t\t\t\texample, TYPE28. For more information, see \n\t\t\t\tList of DNS record types.

    \n
  • \n
" } } }, @@ -933,7 +939,7 @@ "SecurityGroupIds": { "target": "com.amazonaws.route53resolver#SecurityGroupIds", "traits": { - "smithy.api#documentation": "

The ID of one or more security groups that you want to use to control access to this VPC. The security group that you specify \n\t\t\tmust include one or more inbound rules (for inbound Resolver endpoints) or outbound rules (for outbound Resolver endpoints). \n\t\t\tInbound and outbound rules must allow TCP and UDP access. For inbound access, open port 53. For outbound access, open the port \n\t\t\tthat you're using for DNS queries on your network.

", + "smithy.api#documentation": "

The ID of one or more security groups that you want to use to control access to this VPC. The security group that you specify \n\t\t\tmust include one or more inbound rules (for inbound Resolver endpoints) or outbound rules (for outbound Resolver endpoints). \n\t\t\tInbound and outbound rules must allow TCP and UDP access. For inbound access, open port 53. For outbound access, open the port \n\t\t\tthat you're using for DNS queries on your network.

\n

Some security group rules will cause your connection to be tracked. For outbound resolver endpoint, it can potentially impact the \n\t\t\tmaximum queries per second from outbound endpoint to your target name server. For inbound resolver endpoint, it can bring down the overall maximum queries per second per IP address to as low as 1500. \n\t\t\tTo avoid connection tracking caused by security group, see \n\t\t\tUntracked connections.

", "smithy.api#required": {} } }, @@ -1369,7 +1375,7 @@ "Qtype": { "target": "com.amazonaws.route53resolver#Qtype", "traits": { - "smithy.api#documentation": "

\n\t\t\tThe DNS query type that the rule you are deleting evaluates. Allowed values are;\n\t\t

\n
    \n
  • \n

    \n\t\t\t\tA: Returns an IPv4 address.

    \n
  • \n
  • \n

    AAAA: Returns an Ipv6 address.

    \n
  • \n
  • \n

    CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

    \n
  • \n
  • \n

    CNAME: Returns another domain name.

    \n
  • \n
  • \n

    DS: Record that identifies the DNSSEC signing key of a delegated zone.

    \n
  • \n
  • \n

    MX: Specifies mail servers.

    \n
  • \n
  • \n

    NAPTR: Regular-expression-based rewriting of domain names.

    \n
  • \n
  • \n

    NS: Authoritative name servers.

    \n
  • \n
  • \n

    PTR: Maps an IP address to a domain name.

    \n
  • \n
  • \n

    SOA: Start of authority record for the zone.

    \n
  • \n
  • \n

    SPF: Lists the servers authorized to send emails from a domain.

    \n
  • \n
  • \n

    SRV: Application specific values that identify servers.

    \n
  • \n
  • \n

    TXT: Verifies email senders and application-specific values.

    \n
  • \n
" + "smithy.api#documentation": "

\n\t\t\tThe DNS query type that the rule you are deleting evaluates. Allowed values are;\n\t\t

\n
    \n
  • \n

    \n\t\t\t\tA: Returns an IPv4 address.

    \n
  • \n
  • \n

    AAAA: Returns an Ipv6 address.

    \n
  • \n
  • \n

    CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

    \n
  • \n
  • \n

    CNAME: Returns another domain name.

    \n
  • \n
  • \n

    DS: Record that identifies the DNSSEC signing key of a delegated zone.

    \n
  • \n
  • \n

    MX: Specifies mail servers.

    \n
  • \n
  • \n

    NAPTR: Regular-expression-based rewriting of domain names.

    \n
  • \n
  • \n

    NS: Authoritative name servers.

    \n
  • \n
  • \n

    PTR: Maps an IP address to a domain name.

    \n
  • \n
  • \n

    SOA: Start of authority record for the zone.

    \n
  • \n
  • \n

    SPF: Lists the servers authorized to send emails from a domain.

    \n
  • \n
  • \n

    SRV: Application specific values that identify servers.

    \n
  • \n
  • \n

    TXT: Verifies email senders and application-specific values.

    \n
  • \n
  • \n

    A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be\n\t\t\t\tdefined as TYPENUMBER, where the\n\t\t\t\tNUMBER can be 1-65334, for\n\t\t\t\texample, TYPE28. For more information, see \n\t\t\t\tList of DNS record types.

    \n
  • \n
" } } }, @@ -2173,6 +2179,23 @@ } } }, + "com.amazonaws.route53resolver#FirewallDomainRedirectionAction": { + "type": "enum", + "members": { + "INSPECT_REDIRECTION_DOMAIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSPECT_REDIRECTION_DOMAIN" + } + }, + "TRUST_REDIRECTION_DOMAIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TRUST_REDIRECTION_DOMAIN" + } + } + } + }, "com.amazonaws.route53resolver#FirewallDomainUpdateOperation": { "type": "enum", "members": { @@ -2300,10 +2323,16 @@ "smithy.api#documentation": "

The date and time that the rule was last modified, in Unix time format and Coordinated Universal Time (UTC).

" } }, + "FirewallDomainRedirectionAction": { + "target": "com.amazonaws.route53resolver#FirewallDomainRedirectionAction", + "traits": { + "smithy.api#documentation": "

\n\t\t\tHow you want the the rule to evaluate DNS redirection in the DNS redirection chain, such as CNAME, DNAME, ot ALIAS. \n\t\t

\n

\n Inspect_Redirection_Domain (Default) inspects all domains in the redirection chain. The individual domains in the redirection chain must be \n\t\t\tadded to the allow domain list.

\n

\n Trust_Redirection_Domain inspects only the first domain in the redirection chain. You don't need to add the subsequent domains in the domain in the redirection list to \n\t\t\tthe domain alloww list.

" + } + }, "Qtype": { "target": "com.amazonaws.route53resolver#Qtype", "traits": { - "smithy.api#documentation": "

\n\t\t\tThe DNS query type you want the rule to evaluate. Allowed values are;\n\t\t

\n
    \n
  • \n

    \n\t\t\t\tA: Returns an IPv4 address.

    \n
  • \n
  • \n

    AAAA: Returns an Ipv6 address.

    \n
  • \n
  • \n

    CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

    \n
  • \n
  • \n

    CNAME: Returns another domain name.

    \n
  • \n
  • \n

    DS: Record that identifies the DNSSEC signing key of a delegated zone.

    \n
  • \n
  • \n

    MX: Specifies mail servers.

    \n
  • \n
  • \n

    NAPTR: Regular-expression-based rewriting of domain names.

    \n
  • \n
  • \n

    NS: Authoritative name servers.

    \n
  • \n
  • \n

    PTR: Maps an IP address to a domain name.

    \n
  • \n
  • \n

    SOA: Start of authority record for the zone.

    \n
  • \n
  • \n

    SPF: Lists the servers authorized to send emails from a domain.

    \n
  • \n
  • \n

    SRV: Application specific values that identify servers.

    \n
  • \n
  • \n

    TXT: Verifies email senders and application-specific values.

    \n
  • \n
" + "smithy.api#documentation": "

\n\t\t\tThe DNS query type you want the rule to evaluate. Allowed values are;\n\t\t

\n
    \n
  • \n

    \n\t\t\t\tA: Returns an IPv4 address.

    \n
  • \n
  • \n

    AAAA: Returns an Ipv6 address.

    \n
  • \n
  • \n

    CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

    \n
  • \n
  • \n

    CNAME: Returns another domain name.

    \n
  • \n
  • \n

    DS: Record that identifies the DNSSEC signing key of a delegated zone.

    \n
  • \n
  • \n

    MX: Specifies mail servers.

    \n
  • \n
  • \n

    NAPTR: Regular-expression-based rewriting of domain names.

    \n
  • \n
  • \n

    NS: Authoritative name servers.

    \n
  • \n
  • \n

    PTR: Maps an IP address to a domain name.

    \n
  • \n
  • \n

    SOA: Start of authority record for the zone.

    \n
  • \n
  • \n

    SPF: Lists the servers authorized to send emails from a domain.

    \n
  • \n
  • \n

    SRV: Application specific values that identify servers.

    \n
  • \n
  • \n

    TXT: Verifies email senders and application-specific values.

    \n
  • \n
  • \n

    A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be\n\t\t\t\tdefined as TYPENUMBER, where the\n\t\t\t\tNUMBER can be 1-65334, for\n\t\t\t\texample, TYPE28. For more information, see \n\t\t\t\tList of DNS record types.

    \n
  • \n
" } } }, @@ -8597,10 +8626,16 @@ "smithy.api#documentation": "

The name of the rule.

" } }, + "FirewallDomainRedirectionAction": { + "target": "com.amazonaws.route53resolver#FirewallDomainRedirectionAction", + "traits": { + "smithy.api#documentation": "

\n\t\t\tHow you want the the rule to evaluate DNS redirection in the DNS redirection chain, such as CNAME, DNAME, ot ALIAS. \n\t\t

\n

\n Inspect_Redirection_Domain (Default) inspects all domains in the redirection chain. The individual domains in the redirection chain must be \n\t\t\tadded to the allow domain list.

\n

\n Trust_Redirection_Domain inspects only the first domain in the redirection chain. You don't need to add the subsequent domains in the domain in the redirection list to \n\t\t\tthe domain alloww list.

" + } + }, "Qtype": { "target": "com.amazonaws.route53resolver#Qtype", "traits": { - "smithy.api#documentation": "

\n\t\t\tThe DNS query type you want the rule to evaluate. Allowed values are;\n\t\t

\n
    \n
  • \n

    \n\t\t\t\tA: Returns an IPv4 address.

    \n
  • \n
  • \n

    AAAA: Returns an Ipv6 address.

    \n
  • \n
  • \n

    CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

    \n
  • \n
  • \n

    CNAME: Returns another domain name.

    \n
  • \n
  • \n

    DS: Record that identifies the DNSSEC signing key of a delegated zone.

    \n
  • \n
  • \n

    MX: Specifies mail servers.

    \n
  • \n
  • \n

    NAPTR: Regular-expression-based rewriting of domain names.

    \n
  • \n
  • \n

    NS: Authoritative name servers.

    \n
  • \n
  • \n

    PTR: Maps an IP address to a domain name.

    \n
  • \n
  • \n

    SOA: Start of authority record for the zone.

    \n
  • \n
  • \n

    SPF: Lists the servers authorized to send emails from a domain.

    \n
  • \n
  • \n

    SRV: Application specific values that identify servers.

    \n
  • \n
  • \n

    TXT: Verifies email senders and application-specific values.

    \n
  • \n
" + "smithy.api#documentation": "

\n\t\t\tThe DNS query type you want the rule to evaluate. Allowed values are;\n\t\t

\n
    \n
  • \n

    \n\t\t\t\tA: Returns an IPv4 address.

    \n
  • \n
  • \n

    AAAA: Returns an Ipv6 address.

    \n
  • \n
  • \n

    CAA: Restricts CAs that can create SSL/TLS certifications for the domain.

    \n
  • \n
  • \n

    CNAME: Returns another domain name.

    \n
  • \n
  • \n

    DS: Record that identifies the DNSSEC signing key of a delegated zone.

    \n
  • \n
  • \n

    MX: Specifies mail servers.

    \n
  • \n
  • \n

    NAPTR: Regular-expression-based rewriting of domain names.

    \n
  • \n
  • \n

    NS: Authoritative name servers.

    \n
  • \n
  • \n

    PTR: Maps an IP address to a domain name.

    \n
  • \n
  • \n

    SOA: Start of authority record for the zone.

    \n
  • \n
  • \n

    SPF: Lists the servers authorized to send emails from a domain.

    \n
  • \n
  • \n

    SRV: Application specific values that identify servers.

    \n
  • \n
  • \n

    TXT: Verifies email senders and application-specific values.

    \n
  • \n
  • \n

    A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be\n\t\t\t\tdefined as TYPENUMBER, where the\n\t\t\t\tNUMBER can be 1-65334, for\n\t\t\t\texample, TYPE28. For more information, see \n\t\t\t\tList of DNS record types.

    \n
  • \n
" } } }, diff --git a/models/s3-control.json b/models/s3-control.json index 75e5c663b0..718467956e 100644 --- a/models/s3-control.json +++ b/models/s3-control.json @@ -7826,7 +7826,7 @@ "BucketAccountId": { "target": "com.amazonaws.s3control#AccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account ID associated with the S3 bucket associated with this access point.

" + "smithy.api#documentation": "

The Amazon Web Services account ID associated with the S3 bucket associated with this access point.

\n

For same account access point when your bucket and access point belong to the same account owner, the BucketAccountId is not required. \n For cross-account access point when your bucket and access point are not in the same account, the BucketAccountId is required.\n

" } } }, @@ -8025,7 +8025,7 @@ } ], "traits": { - "smithy.api#documentation": "

This operation creates an S3 Batch Operations job.

\n

You can use S3 Batch Operations to perform large-scale batch actions on Amazon S3 objects.\n Batch Operations can run a single action on lists of Amazon S3 objects that you specify. For more\n information, see S3 Batch Operations in the Amazon S3 User Guide.

\n
\n
Permissions
\n
\n

For information about permissions required to use the Batch Operations, see Granting permissions for S3 Batch Operations in the Amazon S3\n User Guide.

\n
\n
\n

\n

Related actions include:

\n ", + "smithy.api#documentation": "

This operation creates an S3 Batch Operations job.

\n

You can use S3 Batch Operations to perform large-scale batch actions on Amazon S3 objects.\n Batch Operations can run a single action on lists of Amazon S3 objects that you specify. For more\n information, see S3 Batch Operations in the Amazon S3 User Guide.

\n
\n
Permissions
\n
\n

For information about permissions required to use the Batch Operations, see Granting permissions for S3 Batch Operations in the Amazon S3\n User Guide.

\n
\n
\n

\n

Related actions include:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -8152,7 +8152,7 @@ "target": "com.amazonaws.s3control#CreateMultiRegionAccessPointResult" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Creates a Multi-Region Access Point and associates it with the specified buckets. For more information\n about creating Multi-Region Access Points, see Creating\n Multi-Region Access Points in the Amazon S3 User Guide.

\n

This action will always be routed to the US West (Oregon) Region. For more information\n about the restrictions around managing Multi-Region Access Points, see Managing\n Multi-Region Access Points in the Amazon S3 User Guide.

\n

This request is asynchronous, meaning that you might receive a response before the\n command has completed. When this request provides a response, it provides a token that you\n can use to monitor the status of the request with\n DescribeMultiRegionAccessPointOperation.

\n

The following actions are related to CreateMultiRegionAccessPoint:

\n ", + "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Creates a Multi-Region Access Point and associates it with the specified buckets. For more information\n about creating Multi-Region Access Points, see Creating Multi-Region Access Points in the Amazon S3 User Guide.

\n

This action will always be routed to the US West (Oregon) Region. For more information\n about the restrictions around working with Multi-Region Access Points, see Multi-Region Access Point\n restrictions and limitations in the Amazon S3 User Guide.

\n

This request is asynchronous, meaning that you might receive a response before the\n command has completed. When this request provides a response, it provides a token that you\n can use to monitor the status of the request with\n DescribeMultiRegionAccessPointOperation.

\n

The following actions are related to CreateMultiRegionAccessPoint:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -9165,7 +9165,7 @@ "target": "com.amazonaws.s3control#DeleteMultiRegionAccessPointResult" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Deletes a Multi-Region Access Point. This action does not delete the buckets associated with the Multi-Region Access Point,\n only the Multi-Region Access Point itself.

\n

This action will always be routed to the US West (Oregon) Region. For more information\n about the restrictions around managing Multi-Region Access Points, see Managing\n Multi-Region Access Points in the Amazon S3 User Guide.

\n

This request is asynchronous, meaning that you might receive a response before the\n command has completed. When this request provides a response, it provides a token that you\n can use to monitor the status of the request with\n DescribeMultiRegionAccessPointOperation.

\n

The following actions are related to DeleteMultiRegionAccessPoint:

\n ", + "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Deletes a Multi-Region Access Point. This action does not delete the buckets associated with the Multi-Region Access Point,\n only the Multi-Region Access Point itself.

\n

This action will always be routed to the US West (Oregon) Region. For more information\n about the restrictions around working with Multi-Region Access Points, see Multi-Region Access Point\n restrictions and limitations in the Amazon S3 User Guide.

\n

This request is asynchronous, meaning that you might receive a response before the\n command has completed. When this request provides a response, it provides a token that you\n can use to monitor the status of the request with\n DescribeMultiRegionAccessPointOperation.

\n

The following actions are related to DeleteMultiRegionAccessPoint:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -9547,7 +9547,7 @@ "target": "com.amazonaws.s3control#DescribeMultiRegionAccessPointOperationResult" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Retrieves the status of an asynchronous request to manage a Multi-Region Access Point. For more information\n about managing Multi-Region Access Points and how asynchronous requests work, see Managing\n Multi-Region Access Points in the Amazon S3 User Guide.

\n

The following actions are related to GetMultiRegionAccessPoint:

\n ", + "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Retrieves the status of an asynchronous request to manage a Multi-Region Access Point. For more information\n about managing Multi-Region Access Points and how asynchronous requests work, see Using Multi-Region Access Points in the Amazon S3 User Guide.

\n

The following actions are related to GetMultiRegionAccessPoint:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -10896,7 +10896,7 @@ "target": "com.amazonaws.s3control#GetBucketResult" }, "traits": { - "smithy.api#documentation": "\n

Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon S3 on Outposts in the\n Amazon S3 User Guide.

\n
\n

If you are using an identity other than the root user of the Amazon Web Services account that owns the\n Outposts bucket, the calling identity must have the s3-outposts:GetBucket\n permissions on the specified Outposts bucket and belong to the Outposts bucket owner's\n account in order to use this action. Only users from Outposts bucket owner account with\n the right permissions can perform actions on an Outposts bucket.

\n

If you don't have s3-outposts:GetBucket permissions or you're not using an\n identity that belongs to the bucket owner's account, Amazon S3 returns a 403 Access\n Denied error.

\n

The following actions are related to GetBucket for Amazon S3 on Outposts:

\n

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

\n ", + "smithy.api#documentation": "

Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon S3 on Outposts in the\n Amazon S3 User Guide.

\n

If you are using an identity other than the root user of the Amazon Web Services account that owns the\n Outposts bucket, the calling identity must have the s3-outposts:GetBucket\n permissions on the specified Outposts bucket and belong to the Outposts bucket owner's\n account in order to use this action. Only users from Outposts bucket owner account with\n the right permissions can perform actions on an Outposts bucket.

\n

If you don't have s3-outposts:GetBucket permissions or you're not using an\n identity that belongs to the bucket owner's account, Amazon S3 returns a 403 Access\n Denied error.

\n

The following actions are related to GetBucket for Amazon S3 on Outposts:

\n

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -11337,7 +11337,7 @@ "target": "com.amazonaws.s3control#GetDataAccessResult" }, "traits": { - "smithy.api#documentation": "

Returns a temporary access credential from S3 Access Grants to the grantee or client application. The temporary credential is an Amazon Web Services STS token that grants them access to the S3 data.

\n
\n
Permissions
\n
\n

You must have the s3:GetDataAccess permission to use this operation.

\n
\n
Additional Permissions
\n
\n

The IAM role that S3 Access Grants assumes must have the following permissions specified in the trust policy when registering the location: sts:AssumeRole, for directory users or groups sts:SetContext, and for IAM users or roles sts:SourceIdentity.

\n
\n
", + "smithy.api#documentation": "

Returns a temporary access credential from S3 Access Grants to the grantee or client application. The temporary credential is an Amazon Web Services STS token that grants them access to the S3 data.

\n
\n
Permissions
\n
\n

You must have the s3:GetDataAccess permission to use this operation.

\n
\n
Additional Permissions
\n
\n

The IAM role that S3 Access Grants assumes must have the following permissions specified in the trust policy when registering the location: sts:AssumeRole, for directory users or groups sts:SetContext, and for IAM users or roles sts:SetSourceIdentity.

\n
\n
", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -11518,7 +11518,7 @@ "target": "com.amazonaws.s3control#GetMultiRegionAccessPointResult" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns configuration information about the specified Multi-Region Access Point.

\n

This action will always be routed to the US West (Oregon) Region. For more information\n about the restrictions around managing Multi-Region Access Points, see Managing\n Multi-Region Access Points in the Amazon S3 User Guide.

\n

The following actions are related to GetMultiRegionAccessPoint:

\n ", + "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns configuration information about the specified Multi-Region Access Point.

\n

This action will always be routed to the US West (Oregon) Region. For more information\n about the restrictions around working with Multi-Region Access Points, see Multi-Region Access Point\n restrictions and limitations in the Amazon S3 User Guide.

\n

The following actions are related to GetMultiRegionAccessPoint:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -11544,7 +11544,7 @@ "target": "com.amazonaws.s3control#GetMultiRegionAccessPointPolicyResult" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns the access control policy of the specified Multi-Region Access Point.

\n

This action will always be routed to the US West (Oregon) Region. For more information\n about the restrictions around managing Multi-Region Access Points, see Managing\n Multi-Region Access Points in the Amazon S3 User Guide.

\n

The following actions are related to\n GetMultiRegionAccessPointPolicy:

\n ", + "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns the access control policy of the specified Multi-Region Access Point.

\n

This action will always be routed to the US West (Oregon) Region. For more information\n about the restrictions around working with Multi-Region Access Points, see Multi-Region Access Point\n restrictions and limitations in the Amazon S3 User Guide.

\n

The following actions are related to\n GetMultiRegionAccessPointPolicy:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -11579,7 +11579,7 @@ "Name": { "target": "com.amazonaws.s3control#MultiRegionAccessPointName", "traits": { - "smithy.api#documentation": "

Specifies the Multi-Region Access Point. The name of the Multi-Region Access Point is different from the alias. For more\n information about the distinction between the name and the alias of an Multi-Region Access Point, see Managing Multi-Region Access Points in the\n Amazon S3 User Guide.

", + "smithy.api#documentation": "

Specifies the Multi-Region Access Point. The name of the Multi-Region Access Point is different from the alias. For more\n information about the distinction between the name and the alias of an Multi-Region Access Point, see Rules for naming Amazon S3 Multi-Region Access Points in the\n Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -11612,7 +11612,7 @@ "target": "com.amazonaws.s3control#GetMultiRegionAccessPointPolicyStatusResult" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Indicates whether the specified Multi-Region Access Point has an access control policy that allows public\n access.

\n

This action will always be routed to the US West (Oregon) Region. For more information\n about the restrictions around managing Multi-Region Access Points, see Managing\n Multi-Region Access Points in the Amazon S3 User Guide.

\n

The following actions are related to\n GetMultiRegionAccessPointPolicyStatus:

\n ", + "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Indicates whether the specified Multi-Region Access Point has an access control policy that allows public\n access.

\n

This action will always be routed to the US West (Oregon) Region. For more information\n about the restrictions around working with Multi-Region Access Points, see Multi-Region Access Point\n restrictions and limitations in the Amazon S3 User Guide.

\n

The following actions are related to\n GetMultiRegionAccessPointPolicyStatus:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -11647,7 +11647,7 @@ "Name": { "target": "com.amazonaws.s3control#MultiRegionAccessPointName", "traits": { - "smithy.api#documentation": "

Specifies the Multi-Region Access Point. The name of the Multi-Region Access Point is different from the alias. For more\n information about the distinction between the name and the alias of an Multi-Region Access Point, see Managing Multi-Region Access Points in the\n Amazon S3 User Guide.

", + "smithy.api#documentation": "

Specifies the Multi-Region Access Point. The name of the Multi-Region Access Point is different from the alias. For more\n information about the distinction between the name and the alias of an Multi-Region Access Point, see Rules for naming Amazon S3 Multi-Region Access Points in the\n Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -11686,7 +11686,7 @@ "Name": { "target": "com.amazonaws.s3control#MultiRegionAccessPointName", "traits": { - "smithy.api#documentation": "

The name of the Multi-Region Access Point whose configuration information you want to receive. The name of\n the Multi-Region Access Point is different from the alias. For more information about the distinction between\n the name and the alias of an Multi-Region Access Point, see Managing Multi-Region Access Points in the\n Amazon S3 User Guide.

", + "smithy.api#documentation": "

The name of the Multi-Region Access Point whose configuration information you want to receive. The name of\n the Multi-Region Access Point is different from the alias. For more information about the distinction between\n the name and the alias of an Multi-Region Access Point, see Rules for naming Amazon S3 Multi-Region Access Points in the\n Amazon S3 User Guide.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -11719,7 +11719,7 @@ "target": "com.amazonaws.s3control#GetMultiRegionAccessPointRoutesResult" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns the routing configuration for a Multi-Region Access Point, indicating which Regions are active or\n passive.

\n

To obtain routing control changes and failover requests, use the Amazon S3 failover control\n infrastructure endpoints in these five Amazon Web Services Regions:

\n
    \n
  • \n

    \n us-east-1\n

    \n
  • \n
  • \n

    \n us-west-2\n

    \n
  • \n
  • \n

    \n ap-southeast-2\n

    \n
  • \n
  • \n

    \n ap-northeast-1\n

    \n
  • \n
  • \n

    \n eu-west-1\n

    \n
  • \n
\n \n

Your Amazon S3 bucket does not need to be in these five Regions.

\n
", + "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns the routing configuration for a Multi-Region Access Point, indicating which Regions are active or\n passive.

\n

To obtain routing control changes and failover requests, use the Amazon S3 failover control\n infrastructure endpoints in these five Amazon Web Services Regions:

\n
    \n
  • \n

    \n us-east-1\n

    \n
  • \n
  • \n

    \n us-west-2\n

    \n
  • \n
  • \n

    \n ap-southeast-2\n

    \n
  • \n
  • \n

    \n ap-northeast-1\n

    \n
  • \n
  • \n

    \n eu-west-1\n

    \n
  • \n
", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -13056,13 +13056,13 @@ "InvocationSchemaVersion": { "target": "com.amazonaws.s3control#NonEmptyMaxLength64String", "traits": { - "smithy.api#documentation": "

Specifies the schema version for the payload that Batch Operations sends when invoking\n an Lambda function. Version 1.0 is the default. Version\n 2.0 is required when you use Batch Operations to invoke Lambda functions that act on directory buckets, or if you need to specify\n UserArguments. For more information, see Using Lambda with Amazon S3 Batch Operations and Amazon S3 Express One Zone in the Amazon Web Services Storage\n Blog.

\n \n

Ensure that your Lambda function code expects\n InvocationSchemaVersion\n 2.0 and uses bucket name rather than bucket ARN. If the\n InvocationSchemaVersion does not match what your Lambda\n function expects, your function might not work as expected.

\n
\n \n

\n Directory buckets - To initiate Amazon Web Services Lambda function to perform custom actions on objects in directory buckets, you must specify 2.0.

\n
" + "smithy.api#documentation": "

Specifies the schema version for the payload that Batch Operations sends when invoking\n an Lambda function. Version 1.0 is the default. Version\n 2.0 is required when you use Batch Operations to invoke Lambda functions that act on directory buckets, or if you need to specify\n UserArguments. For more information, see Automate object processing in Amazon S3 directory buckets with S3 Batch Operations and\n Lambda in the Amazon Web Services Storage Blog.

\n \n

Ensure that your Lambda function code expects\n InvocationSchemaVersion\n 2.0 and uses bucket name rather than bucket ARN. If the\n InvocationSchemaVersion does not match what your Lambda\n function expects, your function might not work as expected.

\n
\n \n

\n Directory buckets - To initiate Amazon Web Services Lambda function to perform custom actions on objects in directory buckets, you must specify 2.0.

\n
" } }, "UserArguments": { "target": "com.amazonaws.s3control#UserArguments", "traits": { - "smithy.api#documentation": "

Key-value pairs that are passed in the payload that Batch Operations sends when invoking\n an Lambda function. You must specify InvocationSchemaVersion\n 2.0 for LambdaInvoke operations that include\n UserArguments. For more information, see Using Lambda with Amazon S3 Batch Operations and Amazon S3 Express One Zone in the Amazon Web Services Storage\n Blog.

" + "smithy.api#documentation": "

Key-value pairs that are passed in the payload that Batch Operations sends when invoking\n an Lambda function. You must specify InvocationSchemaVersion\n 2.0 for LambdaInvoke operations that include\n UserArguments. For more information, see Automate object processing in Amazon S3 directory buckets with S3 Batch Operations and\n Lambda in the Amazon Web Services Storage Blog.

" } } }, @@ -13188,14 +13188,14 @@ "target": "com.amazonaws.s3control#ObjectSizeGreaterThanBytes", "traits": { "smithy.api#default": null, - "smithy.api#documentation": "

Minimum object size to which the rule applies.

" + "smithy.api#documentation": "

The non-inclusive minimum object size for the lifecycle rule. Setting this property to 7 means the rule applies to objects with a size that is greater than 7.

" } }, "ObjectSizeLessThan": { "target": "com.amazonaws.s3control#ObjectSizeLessThanBytes", "traits": { "smithy.api#default": null, - "smithy.api#documentation": "

Maximum object size to which the rule applies.

" + "smithy.api#documentation": "

The non-inclusive maximum object size for the lifecycle rule. Setting this property to 77 means the rule applies to objects with a size that is less than 77.

" } } }, @@ -13882,7 +13882,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists current S3 Batch Operations jobs as well as the jobs that have ended within the last 30 days for\n the Amazon Web Services account making the request. For more information, see S3 Batch Operations in the\n Amazon S3 User Guide.

\n
\n
Permissions
\n
\n

To use the\n ListJobs operation, you must have permission to\n perform the s3:ListJobs action.

\n
\n
\n

Related actions include:

\n

\n ", + "smithy.api#documentation": "

Lists current S3 Batch Operations jobs as well as the jobs that have ended within the last 90\n days for the Amazon Web Services account making the request. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

\n
\n
Permissions
\n
\n

To use the\n ListJobs operation, you must have permission to\n perform the s3:ListJobs action.

\n
\n
\n

Related actions include:

\n

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -13974,7 +13974,7 @@ "target": "com.amazonaws.s3control#ListMultiRegionAccessPointsResult" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns a list of the Multi-Region Access Points currently associated with the specified Amazon Web Services account.\n Each call can return up to 100 Multi-Region Access Points, the maximum number of Multi-Region Access Points that can be\n associated with a single account.

\n

This action will always be routed to the US West (Oregon) Region. For more information\n about the restrictions around managing Multi-Region Access Points, see Managing\n Multi-Region Access Points in the Amazon S3 User Guide.

\n

The following actions are related to ListMultiRegionAccessPoint:

\n ", + "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns a list of the Multi-Region Access Points currently associated with the specified Amazon Web Services account.\n Each call can return up to 100 Multi-Region Access Points, the maximum number of Multi-Region Access Points that can be\n associated with a single account.

\n

This action will always be routed to the US West (Oregon) Region. For more information\n about the restrictions around working with Multi-Region Access Points, see Multi-Region Access Point\n restrictions and limitations in the Amazon S3 User Guide.

\n

The following actions are related to ListMultiRegionAccessPoint:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -14725,7 +14725,7 @@ "Alias": { "target": "com.amazonaws.s3control#MultiRegionAccessPointAlias", "traits": { - "smithy.api#documentation": "

The alias for the Multi-Region Access Point. For more information about the distinction between the name\n and the alias of an Multi-Region Access Point, see Managing Multi-Region Access Points.

" + "smithy.api#documentation": "

The alias for the Multi-Region Access Point. For more information about the distinction between the name\n and the alias of an Multi-Region Access Point, see Rules for naming Amazon S3 Multi-Region Access Points.

" } }, "CreatedAt": { @@ -16262,7 +16262,7 @@ "target": "com.amazonaws.s3control#PutMultiRegionAccessPointPolicyResult" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Associates an access control policy with the specified Multi-Region Access Point. Each Multi-Region Access Point can have only\n one policy, so a request made to this action replaces any existing policy that is\n associated with the specified Multi-Region Access Point.

\n

This action will always be routed to the US West (Oregon) Region. For more information\n about the restrictions around managing Multi-Region Access Points, see Managing\n Multi-Region Access Points in the Amazon S3 User Guide.

\n

The following actions are related to\n PutMultiRegionAccessPointPolicy:

\n ", + "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Associates an access control policy with the specified Multi-Region Access Point. Each Multi-Region Access Point can have only\n one policy, so a request made to this action replaces any existing policy that is\n associated with the specified Multi-Region Access Point.

\n

This action will always be routed to the US West (Oregon) Region. For more information\n about the restrictions around working with Multi-Region Access Points, see Multi-Region Access Point\n restrictions and limitations in the Amazon S3 User Guide.

\n

The following actions are related to\n PutMultiRegionAccessPointPolicy:

\n ", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, @@ -17267,7 +17267,7 @@ "TargetResource": { "target": "com.amazonaws.s3control#S3RegionalOrS3ExpressBucketArnString", "traits": { - "smithy.api#documentation": "

Specifies the destination bucket\n Amazon Resource Name\n (ARN)\n for the batch copy operation.

\n
    \n
  • \n

    \n General purpose buckets - For example, to copy objects to a general purpose bucket named\n destinationBucket, set the TargetResource property to\n arn:aws:s3:::destinationBucket.

    \n
  • \n
  • \n

    \n Directory buckets - For example, to copy objects to a directory bucket named\n destinationBucket in the Availability Zone; identified by the AZ ID usw2-az2, set the TargetResource property to\n arn:aws:s3express:region:account_id:/bucket/destination_bucket_base_name--usw2-az2--x-s3.

    \n
  • \n
" + "smithy.api#documentation": "

Specifies the destination bucket\n Amazon Resource Name\n (ARN)\n for the batch copy operation.

\n
    \n
  • \n

    \n General purpose buckets - For example, to copy objects to a general purpose bucket named\n destinationBucket, set the TargetResource property to\n arn:aws:s3:::destinationBucket.

    \n
  • \n
  • \n

    \n Directory buckets - For example, to copy objects to a directory bucket named\n destinationBucket in the Availability Zone; identified by the AZ ID usw2-az1, set the TargetResource property to\n arn:aws:s3express:region:account_id:/bucket/destination_bucket_base_name--usw2-az1--x-s3.

    \n
  • \n
" } }, "CannedAccessControlList": { @@ -18680,7 +18680,7 @@ "target": "com.amazonaws.s3control#SubmitMultiRegionAccessPointRoutesResult" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Submits an updated route configuration for a Multi-Region Access Point. This API operation updates the\n routing status for the specified Regions from active to passive, or from passive to active.\n A value of 0 indicates a passive status, which means that traffic won't be\n routed to the specified Region. A value of 100 indicates an active status,\n which means that traffic will be routed to the specified Region. At least one Region must\n be active at all times.

\n

When the routing configuration is changed, any in-progress operations (uploads, copies,\n deletes, and so on) to formerly active Regions will continue to run to their final\n completion state (success or failure). The routing configurations of any Regions that\n aren’t specified remain unchanged.

\n \n

Updated routing configurations might not be immediately applied. It can take up to 2\n minutes for your changes to take effect.

\n
\n

To submit routing control changes and failover requests, use the Amazon S3 failover control\n infrastructure endpoints in these five Amazon Web Services Regions:

\n
    \n
  • \n

    \n us-east-1\n

    \n
  • \n
  • \n

    \n us-west-2\n

    \n
  • \n
  • \n

    \n ap-southeast-2\n

    \n
  • \n
  • \n

    \n ap-northeast-1\n

    \n
  • \n
  • \n

    \n eu-west-1\n

    \n
  • \n
\n \n

Your Amazon S3 bucket does not need to be in these five Regions.

\n
", + "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Submits an updated route configuration for a Multi-Region Access Point. This API operation updates the\n routing status for the specified Regions from active to passive, or from passive to active.\n A value of 0 indicates a passive status, which means that traffic won't be\n routed to the specified Region. A value of 100 indicates an active status,\n which means that traffic will be routed to the specified Region. At least one Region must\n be active at all times.

\n

When the routing configuration is changed, any in-progress operations (uploads, copies,\n deletes, and so on) to formerly active Regions will continue to run to their final\n completion state (success or failure). The routing configurations of any Regions that\n aren’t specified remain unchanged.

\n \n

Updated routing configurations might not be immediately applied. It can take up to 2\n minutes for your changes to take effect.

\n
\n

To submit routing control changes and failover requests, use the Amazon S3 failover control\n infrastructure endpoints in these five Amazon Web Services Regions:

\n
    \n
  • \n

    \n us-east-1\n

    \n
  • \n
  • \n

    \n us-west-2\n

    \n
  • \n
  • \n

    \n ap-southeast-2\n

    \n
  • \n
  • \n

    \n ap-northeast-1\n

    \n
  • \n
  • \n

    \n eu-west-1\n

    \n
  • \n
", "smithy.api#endpoint": { "hostPrefix": "{AccountId}." }, diff --git a/models/sagemaker.json b/models/sagemaker.json index f68dafdf08..f843b6bb34 100644 --- a/models/sagemaker.json +++ b/models/sagemaker.json @@ -4356,24 +4356,6 @@ "traits": { "smithy.api#enumValue": "AWS/Textract/AnalyzeDocument/Forms/V1" } - }, - "TEXTRACT_ANALYZE_EXPENSE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AWS/Textract/AnalyzeExpense" - } - }, - "HANDSHAKE_VERIFY_IDENTITY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AWS/Handshake/VerifyIdentity" - } - }, - "BEDROCK_MODEL_EVALUATION": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "AWS/Bedrock/ModelEvaluation" - } } } }, @@ -6814,7 +6796,7 @@ "target": "com.amazonaws.sagemaker#S3Uri", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

An Amazon S3 bucket path where your LifeCycle scripts are stored.

", + "smithy.api#documentation": "

An Amazon S3 bucket path where your lifecycle scripts are stored.

\n \n

Make sure that the S3 bucket path starts with s3://sagemaker-. The\n IAM role for SageMaker HyperPod has the managed \n AmazonSageMakerClusterInstanceRolePolicy\n attached, which\n allows access to S3 buckets with the specific prefix sagemaker-.

\n
", "smithy.api#required": {} } }, @@ -6822,13 +6804,13 @@ "target": "com.amazonaws.sagemaker#ClusterLifeCycleConfigFileName", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The directory of the LifeCycle script under SourceS3Uri. This LifeCycle\n script runs during cluster creation.

", + "smithy.api#documentation": "

The file name of the entrypoint script of lifecycle scripts under\n SourceS3Uri. This entrypoint script runs during cluster creation.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

The LifeCycle configuration for a SageMaker HyperPod cluster.

" + "smithy.api#documentation": "

The lifecycle configuration for a SageMaker HyperPod cluster.

" } }, "com.amazonaws.sagemaker#ClusterLifeCycleConfigFileName": { @@ -9899,7 +9881,7 @@ "target": "com.amazonaws.sagemaker#FeatureGroupName", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of the FeatureGroup. The name must be unique within an Amazon Web Services Region in an Amazon Web Services account.

\n

The name:

\n
    \n
  • \n

    Must start and end with an alphanumeric character.

    \n
  • \n
  • \n

    Can only include alphanumeric characters, underscores, and hyphens. Spaces are not\n allowed.

    \n
  • \n
", + "smithy.api#documentation": "

The name of the FeatureGroup. The name must be unique within an Amazon Web Services Region in an Amazon Web Services account.

\n

The name:

\n
    \n
  • \n

    Must start with an alphanumeric character.

    \n
  • \n
  • \n

    Can only include alphanumeric characters, underscores, and hyphens. Spaces are not\n allowed.

    \n
  • \n
", "smithy.api#required": {} } }, @@ -9907,7 +9889,7 @@ "target": "com.amazonaws.sagemaker#FeatureName", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of the Feature whose value uniquely identifies a\n Record defined in the FeatureStore. Only the latest record per\n identifier value will be stored in the OnlineStore.\n RecordIdentifierFeatureName must be one of feature definitions'\n names.

\n

You use the RecordIdentifierFeatureName to access data in a\n FeatureStore.

\n

This name:

\n
    \n
  • \n

    Must start and end with an alphanumeric character.

    \n
  • \n
  • \n

    Can only contains alphanumeric characters, hyphens, underscores. Spaces are not\n allowed.

    \n
  • \n
", + "smithy.api#documentation": "

The name of the Feature whose value uniquely identifies a\n Record defined in the FeatureStore. Only the latest record per\n identifier value will be stored in the OnlineStore.\n RecordIdentifierFeatureName must be one of feature definitions'\n names.

\n

You use the RecordIdentifierFeatureName to access data in a\n FeatureStore.

\n

This name:

\n
    \n
  • \n

    Must start with an alphanumeric character.

    \n
  • \n
  • \n

    Can only contains alphanumeric characters, hyphens, underscores. Spaces are not\n allowed.

    \n
  • \n
", "smithy.api#required": {} } }, @@ -12755,6 +12737,12 @@ "traits": { "smithy.api#documentation": "

Contains information about the infrastructure health check configuration for the training job.

" } + }, + "SessionChainingConfig": { + "target": "com.amazonaws.sagemaker#SessionChainingConfig", + "traits": { + "smithy.api#documentation": "

Contains information about attribute-based access control (ABAC) for the training\n job.

" + } } }, "traits": { @@ -14099,7 +14087,7 @@ "target": "com.amazonaws.sagemaker#SpaceEbsVolumeSizeInGb", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The default size of the EBS storage volume for a private space.

", + "smithy.api#documentation": "

The default size of the EBS storage volume for a space.

", "smithy.api#required": {} } }, @@ -14107,13 +14095,13 @@ "target": "com.amazonaws.sagemaker#SpaceEbsVolumeSizeInGb", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The maximum size of the EBS storage volume for a private space.

", + "smithy.api#documentation": "

The maximum size of the EBS storage volume for a space.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

A collection of default EBS storage settings that applies to private spaces created within a domain or user profile.

" + "smithy.api#documentation": "

A collection of default EBS storage settings that apply to spaces created within a domain or user profile.

" } }, "com.amazonaws.sagemaker#DefaultGid": { @@ -14145,6 +14133,21 @@ }, "KernelGatewayAppSettings": { "target": "com.amazonaws.sagemaker#KernelGatewayAppSettings" + }, + "JupyterLabAppSettings": { + "target": "com.amazonaws.sagemaker#JupyterLabAppSettings" + }, + "SpaceStorageSettings": { + "target": "com.amazonaws.sagemaker#DefaultSpaceStorageSettings" + }, + "CustomPosixUserConfig": { + "target": "com.amazonaws.sagemaker#CustomPosixUserConfig" + }, + "CustomFileSystemConfigs": { + "target": "com.amazonaws.sagemaker#CustomFileSystemConfigs", + "traits": { + "smithy.api#documentation": "

The settings for assigning a custom file system to a domain. Permitted users can access this file system in Amazon SageMaker Studio.

" + } } }, "traits": { @@ -14157,12 +14160,12 @@ "DefaultEbsStorageSettings": { "target": "com.amazonaws.sagemaker#DefaultEbsStorageSettings", "traits": { - "smithy.api#documentation": "

The default EBS storage settings for a private space.

" + "smithy.api#documentation": "

The default EBS storage settings for a space.

" } } }, "traits": { - "smithy.api#documentation": "

The default storage settings for a private space.

" + "smithy.api#documentation": "

The default storage settings for a space.

" } }, "com.amazonaws.sagemaker#DefaultUid": { @@ -25384,13 +25387,13 @@ "target": "com.amazonaws.sagemaker#SpaceEbsVolumeSizeInGb", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The size of an EBS storage volume for a private space.

", + "smithy.api#documentation": "

The size of an EBS storage volume for a space.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

A collection of EBS storage settings that applies to private spaces.

" + "smithy.api#documentation": "

A collection of EBS storage settings that apply to both private and shared spaces.

" } }, "com.amazonaws.sagemaker#Edge": { @@ -26023,6 +26026,9 @@ "smithy.api#output": {} } }, + "com.amazonaws.sagemaker#EnableSessionTagChaining": { + "type": "boolean" + }, "com.amazonaws.sagemaker#Endpoint": { "type": "structure", "members": { @@ -27129,7 +27135,7 @@ "target": "com.amazonaws.sagemaker#FeatureName", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of a feature. The type must be a string. FeatureName cannot be any\n of the following: is_deleted, write_time,\n api_invocation_time.

\n

The name:

\n
    \n
  • \n

    Must start and end with an alphanumeric character.

    \n
  • \n
  • \n

    Can only include alphanumeric characters, underscores, and hyphens. Spaces are not\n allowed.

    \n
  • \n
", + "smithy.api#documentation": "

The name of a feature. The type must be a string. FeatureName cannot be any\n of the following: is_deleted, write_time,\n api_invocation_time.

\n

The name:

\n
    \n
  • \n

    Must start with an alphanumeric character.

    \n
  • \n
  • \n

    Can only include alphanumeric characters, underscores, and hyphens. Spaces are not\n allowed.

    \n
  • \n
", "smithy.api#required": {} } }, @@ -47640,7 +47646,7 @@ "target": "com.amazonaws.sagemaker#UserProfileName", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The user profile who is the owner of the private space.

", + "smithy.api#documentation": "

The user profile who is the owner of the space.

", "smithy.api#required": {} } } @@ -47655,7 +47661,7 @@ "OwnerUserProfileName": { "target": "com.amazonaws.sagemaker#UserProfileName", "traits": { - "smithy.api#documentation": "

The user profile who is the owner of the private space.

" + "smithy.api#documentation": "

The user profile who is the owner of the space.

" } } }, @@ -50487,6 +50493,54 @@ "smithy.api#enumValue": "ml.g5.48xlarge" } }, + "ML_G6_XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g6.xlarge" + } + }, + "ML_G6_2XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g6.2xlarge" + } + }, + "ML_G6_4XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g6.4xlarge" + } + }, + "ML_G6_8XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g6.8xlarge" + } + }, + "ML_G6_12XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g6.12xlarge" + } + }, + "ML_G6_16XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g6.16xlarge" + } + }, + "ML_G6_24XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g6.24xlarge" + } + }, + "ML_G6_48XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g6.48xlarge" + } + }, "ML_P4D_24XLARGE": { "target": "smithy.api#Unit", "traits": { @@ -57364,6 +57418,20 @@ "smithy.api#documentation": "

Details that you specify to provision a service catalog product. \n For information about service catalog, see What is Amazon Web Services Service Catalog.\n

" } }, + "com.amazonaws.sagemaker#SessionChainingConfig": { + "type": "structure", + "members": { + "EnableSessionTagChaining": { + "target": "com.amazonaws.sagemaker#EnableSessionTagChaining", + "traits": { + "smithy.api#documentation": "

Set to True to allow SageMaker to extract session tags from a \n training job creation role and reuse these tags when assuming the training \n job execution role.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about attribute-based access control (ABAC) for a training job.\n The session chaining configuration uses Amazon Security Token Service (STS) for your\n training job to request temporary, limited-privilege credentials to tenants. For more\n information, see Attribute-based access control (ABAC) for multi-tenancy\n training.

" + } + }, "com.amazonaws.sagemaker#SessionExpirationDurationInSeconds": { "type": "integer", "traits": { @@ -58022,7 +58090,7 @@ "SpaceStorageSettings": { "target": "com.amazonaws.sagemaker#SpaceStorageSettings", "traits": { - "smithy.api#documentation": "

The storage settings for a private space.

" + "smithy.api#documentation": "

The storage settings for a space.

" } }, "CustomFileSystems": { @@ -58048,7 +58116,7 @@ "SpaceStorageSettings": { "target": "com.amazonaws.sagemaker#SpaceStorageSettings", "traits": { - "smithy.api#documentation": "

The storage settings for a private space.

" + "smithy.api#documentation": "

The storage settings for a space.

" } } }, @@ -58156,12 +58224,12 @@ "EbsStorageSettings": { "target": "com.amazonaws.sagemaker#EbsStorageSettings", "traits": { - "smithy.api#documentation": "

A collection of EBS storage settings for a private space.

" + "smithy.api#documentation": "

A collection of EBS storage settings for a space.

" } } }, "traits": { - "smithy.api#documentation": "

The storage settings for a private space.

" + "smithy.api#documentation": "

The storage settings for a space.

" } }, "com.amazonaws.sagemaker#SpawnRate": { @@ -62150,6 +62218,330 @@ "smithy.api#enumValue": "ml.m5.24xlarge" } }, + "ML_M6I_LARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m6i.large" + } + }, + "ML_M6I_XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m6i.xlarge" + } + }, + "ML_M6I_2XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m6i.2xlarge" + } + }, + "ML_M6I_4XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m6i.4xlarge" + } + }, + "ML_M6I_8XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m6i.8xlarge" + } + }, + "ML_M6I_12XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m6i.12xlarge" + } + }, + "ML_M6I_16XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m6i.16xlarge" + } + }, + "ML_M6I_24XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m6i.24xlarge" + } + }, + "ML_M6I_32XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m6i.32xlarge" + } + }, + "ML_C6I_LARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c6i.large" + } + }, + "ML_C6I_XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c6i.xlarge" + } + }, + "ML_C6I_2XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c6i.2xlarge" + } + }, + "ML_C6I_4XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c6i.4xlarge" + } + }, + "ML_C6I_8XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c6i.8xlarge" + } + }, + "ML_C6I_12XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c6i.12xlarge" + } + }, + "ML_C6I_16XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c6i.16xlarge" + } + }, + "ML_C6I_24XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c6i.24xlarge" + } + }, + "ML_C6I_32XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c6i.32xlarge" + } + }, + "ML_R6I_LARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r6i.large" + } + }, + "ML_R6I_XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r6i.xlarge" + } + }, + "ML_R6I_2XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r6i.2xlarge" + } + }, + "ML_R6I_4XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r6i.4xlarge" + } + }, + "ML_R6I_8XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r6i.8xlarge" + } + }, + "ML_R6I_12XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r6i.12xlarge" + } + }, + "ML_R6I_16XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r6i.16xlarge" + } + }, + "ML_R6I_24XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r6i.24xlarge" + } + }, + "ML_R6I_32XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r6i.32xlarge" + } + }, + "ML_M7I_LARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m7i.large" + } + }, + "ML_M7I_XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m7i.xlarge" + } + }, + "ML_M7I_2XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m7i.2xlarge" + } + }, + "ML_M7I_4XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m7i.4xlarge" + } + }, + "ML_M7I_8XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m7i.8xlarge" + } + }, + "ML_M7I_12XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m7i.12xlarge" + } + }, + "ML_M7I_16XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m7i.16xlarge" + } + }, + "ML_M7I_24XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m7i.24xlarge" + } + }, + "ML_M7I_48XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.m7i.48xlarge" + } + }, + "ML_C7I_LARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c7i.large" + } + }, + "ML_C7I_XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c7i.xlarge" + } + }, + "ML_C7I_2XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c7i.2xlarge" + } + }, + "ML_C7I_4XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c7i.4xlarge" + } + }, + "ML_C7I_8XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c7i.8xlarge" + } + }, + "ML_C7I_12XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c7i.12xlarge" + } + }, + "ML_C7I_16XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c7i.16xlarge" + } + }, + "ML_C7I_24XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c7i.24xlarge" + } + }, + "ML_C7I_48XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.c7i.48xlarge" + } + }, + "ML_R7I_LARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r7i.large" + } + }, + "ML_R7I_XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r7i.xlarge" + } + }, + "ML_R7I_2XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r7i.2xlarge" + } + }, + "ML_R7I_4XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r7i.4xlarge" + } + }, + "ML_R7I_8XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r7i.8xlarge" + } + }, + "ML_R7I_12XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r7i.12xlarge" + } + }, + "ML_R7I_16XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r7i.16xlarge" + } + }, + "ML_R7I_24XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r7i.24xlarge" + } + }, + "ML_R7I_48XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.r7i.48xlarge" + } + }, "ML_G4DN_XLARGE": { "target": "smithy.api#Unit", "traits": { @@ -62185,6 +62577,54 @@ "traits": { "smithy.api#enumValue": "ml.g4dn.16xlarge" } + }, + "ML_G5_XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g5.xlarge" + } + }, + "ML_G5_2XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g5.2xlarge" + } + }, + "ML_G5_4XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g5.4xlarge" + } + }, + "ML_G5_8XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g5.8xlarge" + } + }, + "ML_G5_12XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g5.12xlarge" + } + }, + "ML_G5_16XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g5.16xlarge" + } + }, + "ML_G5_24XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g5.24xlarge" + } + }, + "ML_G5_48XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.g5.48xlarge" + } } } }, @@ -66384,7 +66824,7 @@ "SpaceStorageSettings": { "target": "com.amazonaws.sagemaker#DefaultSpaceStorageSettings", "traits": { - "smithy.api#documentation": "

The storage settings for a private space.

" + "smithy.api#documentation": "

The storage settings for a space.

" } }, "DefaultLandingUri": { diff --git a/models/securityhub.json b/models/securityhub.json index ec1616ef5f..7a5383ff17 100644 --- a/models/securityhub.json +++ b/models/securityhub.json @@ -214,6 +214,12 @@ "type": "list", "member": { "target": "com.amazonaws.securityhub#AccountDetails" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } } }, "com.amazonaws.securityhub#AccountId": { @@ -33952,7 +33958,7 @@ "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) or universally unique identifier (UUID) of the configuration policy.\n

", + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of a configuration policy, the universally unique identifier (UUID) of a \n configuration policy, or a value of SELF_MANAGED_SECURITY_HUB for a self-managed configuration.\n

", "smithy.api#required": {} } }, @@ -34081,7 +34087,7 @@ "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) or universally unique identifier (UUID) of the configuration policy.\n

", + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of a configuration policy, the universally unique identifier (UUID) of a \n configuration policy, or a value of SELF_MANAGED_SECURITY_HUB for a self-managed configuration.\n

", "smithy.api#required": {} } } @@ -35468,7 +35474,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n UpdateFindings is deprecated. Instead of UpdateFindings, use\n BatchUpdateFindings.

\n

Updates the Note and RecordState of the Security Hub-aggregated\n findings that the filter attributes specify. Any member account that can view the finding\n also sees the update to the finding.

", + "smithy.api#documentation": "

\n UpdateFindings is a deprecated operation. Instead of UpdateFindings, use\n the BatchUpdateFindings operation.

\n

Updates the Note and RecordState of the Security Hub-aggregated\n findings that the filter attributes specify. Any member account that can view the finding\n also sees the update to the finding.

\n

Finding updates made with UpdateFindings might not be persisted if the same finding is later updated by the \n finding provider through the BatchImportFindings operation.

", "smithy.api#http": { "method": "PATCH", "uri": "/findings", diff --git a/models/servicediscovery.json b/models/servicediscovery.json index 5ff916fb3a..483b9e0671 100644 --- a/models/servicediscovery.json +++ b/models/servicediscovery.json @@ -105,7 +105,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an HTTP namespace. Service instances registered using an HTTP namespace can be\n discovered using a DiscoverInstances request but can't be discovered using\n DNS.

\n

For the current quota on the number of namespaces that you can create using the same Amazon Web Services account, see Cloud Map quotas in the\n Cloud Map Developer Guide.

", + "smithy.api#documentation": "

Creates an HTTP namespace. Service instances registered using an HTTP namespace can be discovered using a\n DiscoverInstances request but can't be discovered using DNS.

\n

For the current quota on the number of namespaces that you can create using the same Amazon Web Services account, see Cloud Map\n quotas in the Cloud Map Developer Guide.

", "smithy.api#examples": [ { "title": "CreateHttpNamespace example", @@ -135,7 +135,7 @@ "CreatorRequestId": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

A unique string that identifies the request and that allows failed\n CreateHttpNamespace requests to be retried without the risk of running the\n operation twice. CreatorRequestId can be any unique string (for example, a date/time\n stamp).

", + "smithy.api#documentation": "

A unique string that identifies the request and that allows failed CreateHttpNamespace\n requests to be retried without the risk of running the operation twice. CreatorRequestId can be any\n unique string (for example, a date/time stamp).

", "smithy.api#idempotencyToken": {} } }, @@ -148,7 +148,7 @@ "Tags": { "target": "com.amazonaws.servicediscovery#TagList", "traits": { - "smithy.api#documentation": "

The tags to add to the namespace. Each tag consists of a key and an optional value that you\n define. Tags keys can be up to 128 characters in length, and tag values can be up to 256\n characters in length.

" + "smithy.api#documentation": "

The tags to add to the namespace. Each tag consists of a key and an optional value that you define.\n Tags keys can be up to 128 characters in length, and tag values can be up to 256\n characters in length.

" } } }, @@ -196,7 +196,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a private namespace based on DNS, which is visible only inside a specified Amazon\n VPC. The namespace defines your service naming scheme. For example, if you name your namespace\n example.com and name your service backend, the resulting DNS name for\n the service is backend.example.com. Service instances that are registered using a\n private DNS namespace can be discovered using either a DiscoverInstances request or\n using DNS. For the current quota on the number of namespaces that you can create using the same\n Amazon Web Services account, see Cloud Map quotas in the\n Cloud Map Developer Guide.

", + "smithy.api#documentation": "

Creates a private namespace based on DNS, which is visible only inside a specified Amazon VPC. The\n namespace defines your service naming scheme. For example, if you name your namespace example.com\n and name your service backend, the resulting DNS name for the service is\n backend.example.com. Service instances that are registered using a private DNS namespace can be\n discovered using either a DiscoverInstances request or using DNS. For the current quota on the\n number of namespaces that you can create using the same Amazon Web Services account, see Cloud Map quotas in the\n Cloud Map Developer Guide.

", "smithy.api#examples": [ { "title": "Example: Create private DNS namespace", @@ -219,14 +219,14 @@ "Name": { "target": "com.amazonaws.servicediscovery#NamespaceNamePrivate", "traits": { - "smithy.api#documentation": "

The name that you want to assign to this namespace. When you create a private DNS namespace,\n Cloud Map automatically creates an Amazon Route 53 private hosted zone that has the same name as the\n namespace.

", + "smithy.api#documentation": "

The name that you want to assign to this namespace. When you create a private DNS namespace, Cloud Map\n automatically creates an Amazon Route 53 private hosted zone that has the same name as the namespace.

", "smithy.api#required": {} } }, "CreatorRequestId": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

A unique string that identifies the request and that allows failed\n CreatePrivateDnsNamespace requests to be retried without the risk of running the\n operation twice. CreatorRequestId can be any unique string (for example, a\n date/timestamp).

", + "smithy.api#documentation": "

A unique string that identifies the request and that allows failed CreatePrivateDnsNamespace\n requests to be retried without the risk of running the operation twice. CreatorRequestId can be any\n unique string (for example, a date/timestamp).

", "smithy.api#idempotencyToken": {} } }, @@ -246,13 +246,13 @@ "Tags": { "target": "com.amazonaws.servicediscovery#TagList", "traits": { - "smithy.api#documentation": "

The tags to add to the namespace. Each tag consists of a key and an optional value that you\n define. Tags keys can be up to 128 characters in length, and tag values can be up to 256\n characters in length.

" + "smithy.api#documentation": "

The tags to add to the namespace. Each tag consists of a key and an optional value that you define.\n Tags keys can be up to 128 characters in length, and tag values can be up to 256\n characters in length.

" } }, "Properties": { "target": "com.amazonaws.servicediscovery#PrivateDnsNamespaceProperties", "traits": { - "smithy.api#documentation": "

Properties for the\n private DNS namespace.

" + "smithy.api#documentation": "

Properties for the private DNS\n namespace.

" } } }, @@ -300,7 +300,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a public namespace based on DNS, which is visible on the internet. The namespace\n defines your service naming scheme. For example, if you name your namespace\n example.com and name your service backend, the resulting DNS name for\n the service is backend.example.com. You can discover instances that were registered\n with a public DNS namespace by using either a DiscoverInstances request or using\n DNS. For the current quota on the number of namespaces that you can create using the same Amazon Web Services account, see Cloud Map quotas in the\n Cloud Map Developer Guide.

\n \n

The CreatePublicDnsNamespace API operation is not supported in the Amazon Web Services GovCloud (US) Regions.

\n
", + "smithy.api#documentation": "

Creates a public namespace based on DNS, which is visible on the internet. The namespace defines your\n service naming scheme. For example, if you name your namespace example.com and name your service\n backend, the resulting DNS name for the service is backend.example.com. You can\n discover instances that were registered with a public DNS namespace by using either a\n DiscoverInstances request or using DNS. For the current quota on the number of namespaces that you\n can create using the same Amazon Web Services account, see Cloud Map quotas in the\n Cloud Map Developer Guide.

\n \n

The CreatePublicDnsNamespace API operation is not supported in the Amazon Web Services GovCloud (US)\n Regions.

\n
", "smithy.api#examples": [ { "title": "CreatePublicDnsNamespace example", @@ -323,14 +323,14 @@ "Name": { "target": "com.amazonaws.servicediscovery#NamespaceNamePublic", "traits": { - "smithy.api#documentation": "

The name that you want to assign to this namespace.

\n \n

Do not include sensitive information in the name. The name is publicly available using DNS\n queries.

\n
", + "smithy.api#documentation": "

The name that you want to assign to this namespace.

\n \n

Do not include sensitive information in the name. The name is publicly available using DNS queries.

\n
", "smithy.api#required": {} } }, "CreatorRequestId": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

A unique string that identifies the request and that allows failed\n CreatePublicDnsNamespace requests to be retried without the risk of running the\n operation twice. CreatorRequestId can be any unique string (for example, a\n date/timestamp).

", + "smithy.api#documentation": "

A unique string that identifies the request and that allows failed CreatePublicDnsNamespace\n requests to be retried without the risk of running the operation twice. CreatorRequestId can be any\n unique string (for example, a date/timestamp).

", "smithy.api#idempotencyToken": {} } }, @@ -343,13 +343,13 @@ "Tags": { "target": "com.amazonaws.servicediscovery#TagList", "traits": { - "smithy.api#documentation": "

The tags to add to the namespace. Each tag consists of a key and an optional value that you\n define. Tags keys can be up to 128 characters in length, and tag values can be up to 256\n characters in length.

" + "smithy.api#documentation": "

The tags to add to the namespace. Each tag consists of a key and an optional value that you define.\n Tags keys can be up to 128 characters in length, and tag values can be up to 256\n characters in length.

" } }, "Properties": { "target": "com.amazonaws.servicediscovery#PublicDnsNamespaceProperties", "traits": { - "smithy.api#documentation": "

Properties for the\n public DNS namespace.

" + "smithy.api#documentation": "

Properties for the public DNS\n namespace.

" } } }, @@ -363,7 +363,7 @@ "OperationId": { "target": "com.amazonaws.servicediscovery#OperationId", "traits": { - "smithy.api#documentation": "

A value that you can use to determine whether the request completed successfully. To get the\n status of the operation, see GetOperation.

" + "smithy.api#documentation": "

A value that you can use to determine whether the request completed successfully. To get the status of the\n operation, see GetOperation.

" } } }, @@ -397,7 +397,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a service. This action defines the configuration for the following entities:

\n
    \n
  • \n

    For public and private DNS namespaces, one of the following combinations of DNS records in\n Amazon Route 53:

    \n
      \n
    • \n

      \n A\n

      \n
    • \n
    • \n

      \n AAAA\n

      \n
    • \n
    • \n

      \n A and AAAA\n

      \n
    • \n
    • \n

      \n SRV\n

      \n
    • \n
    • \n

      \n CNAME\n

      \n
    • \n
    \n
  • \n
  • \n

    Optionally, a health check

    \n
  • \n
\n

After you create the service, you can submit a RegisterInstance request, and\n Cloud Map uses the values in the configuration to create the specified entities.

\n

For the current quota on the number of instances that you can register using the same\n namespace and using the same service, see Cloud Map quotas in the\n Cloud Map Developer Guide.

", + "smithy.api#documentation": "

Creates a service. This action defines the configuration for the following entities:

\n
    \n
  • \n

    For public and private DNS namespaces, one of the following combinations of DNS records in\n Amazon Route 53:

    \n
      \n
    • \n

      \n A\n

      \n
    • \n
    • \n

      \n AAAA\n

      \n
    • \n
    • \n

      \n A and AAAA\n

      \n
    • \n
    • \n

      \n SRV\n

      \n
    • \n
    • \n

      \n CNAME\n

      \n
    • \n
    \n
  • \n
  • \n

    Optionally, a health check

    \n
  • \n
\n

After you create the service, you can submit a RegisterInstance request, and Cloud Map uses the\n values in the configuration to create the specified entities.

\n

For the current quota on the number of instances that you can register using the same namespace and using\n the same service, see Cloud Map\n quotas in the Cloud Map Developer Guide.

", "smithy.api#examples": [ { "title": "Example: Create service", @@ -447,20 +447,20 @@ "Name": { "target": "com.amazonaws.servicediscovery#ServiceName", "traits": { - "smithy.api#documentation": "

The name that you want to assign to the service.

\n \n

Do not include sensitive information in the name if the namespace is discoverable by public\n DNS queries.

\n
\n

If you want Cloud Map to create an SRV record when you register an instance\n and you're using a system that requires a specific SRV format, such as HAProxy, specify the following for\n Name:

\n
    \n
  • \n

    Start the name with an underscore (_), such as _exampleservice.

    \n
  • \n
  • \n

    End the name with ._protocol, such as ._tcp.

    \n
  • \n
\n

When you register an instance, Cloud Map creates an SRV record and assigns a\n name to the record by concatenating the service name and the namespace name (for example,

\n

\n _exampleservice._tcp.example.com).

\n \n

For services that are accessible by DNS queries, you can't create multiple services with\n names that differ only by case (such as EXAMPLE and example). Otherwise, these services have the\n same DNS name and can't be distinguished. However, if you use a namespace that's only accessible\n by API calls, then you can create services that with names that differ only by case.

\n
", + "smithy.api#documentation": "

The name that you want to assign to the service.

\n \n

Do not include sensitive information in the name if the namespace is discoverable by public DNS\n queries.

\n
\n

If you want Cloud Map to create an SRV record when you register an instance and you're using\n a system that requires a specific SRV format, such as HAProxy, specify the following for Name:

\n
    \n
  • \n

    Start the name with an underscore (_), such as _exampleservice.

    \n
  • \n
  • \n

    End the name with ._protocol, such as ._tcp.

    \n
  • \n
\n

When you register an instance, Cloud Map creates an SRV record and assigns a name to the\n record by concatenating the service name and the namespace name (for example,

\n

\n _exampleservice._tcp.example.com).

\n \n

For services that are accessible by DNS queries, you can't create multiple services with names that differ\n only by case (such as EXAMPLE and example). Otherwise, these services have the same DNS name and can't be\n distinguished. However, if you use a namespace that's only accessible by API calls, then you can create\n services that with names that differ only by case.

\n
", "smithy.api#required": {} } }, "NamespaceId": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the namespace that you want to use to create the service. The namespace ID must be\n specified, but it can be specified either here or in the DnsConfig object.

" + "smithy.api#documentation": "

The ID of the namespace that you want to use to create the service. The namespace ID must be specified, but\n it can be specified either here or in the DnsConfig object.

" } }, "CreatorRequestId": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

A unique string that identifies the request and that allows failed\n CreateService requests to be retried without the risk of running the operation\n twice. CreatorRequestId can be any unique string (for example, a\n date/timestamp).

", + "smithy.api#documentation": "

A unique string that identifies the request and that allows failed CreateService requests to\n be retried without the risk of running the operation twice. CreatorRequestId can be any unique\n string (for example, a date/timestamp).

", "smithy.api#idempotencyToken": {} } }, @@ -473,31 +473,31 @@ "DnsConfig": { "target": "com.amazonaws.servicediscovery#DnsConfig", "traits": { - "smithy.api#documentation": "

A complex type that contains information about the Amazon Route 53 records that you want\n Cloud Map to create when you register an instance.

" + "smithy.api#documentation": "

A complex type that contains information about the Amazon Route 53 records that you want Cloud Map to create\n when you register an instance.

" } }, "HealthCheckConfig": { "target": "com.amazonaws.servicediscovery#HealthCheckConfig", "traits": { - "smithy.api#documentation": "

\n Public DNS and HTTP namespaces only. A complex type that contains\n settings for an optional Route 53 health check. If you specify settings for a health check,\n Cloud Map associates the health check with all the Route 53 DNS records that you specify in\n DnsConfig.

\n \n

If you specify a health check configuration, you can specify either\n HealthCheckCustomConfig or HealthCheckConfig but not both.

\n
\n

For information about the charges for health checks, see Cloud Map Pricing.

" + "smithy.api#documentation": "

\n Public DNS and HTTP namespaces only. A complex type that contains settings for an\n optional Route 53 health check. If you specify settings for a health check, Cloud Map associates the health check\n with all the Route 53 DNS records that you specify in DnsConfig.

\n \n

If you specify a health check configuration, you can specify either HealthCheckCustomConfig\n or HealthCheckConfig but not both.

\n
\n

For information about the charges for health checks, see Cloud Map Pricing.

" } }, "HealthCheckCustomConfig": { "target": "com.amazonaws.servicediscovery#HealthCheckCustomConfig", "traits": { - "smithy.api#documentation": "

A complex type that contains information about an optional custom health check.

\n \n

If you specify a health check configuration, you can specify either\n HealthCheckCustomConfig or HealthCheckConfig but not both.

\n
\n

You can't add, update, or delete a HealthCheckCustomConfig configuration from\n an existing service.

" + "smithy.api#documentation": "

A complex type that contains information about an optional custom health check.

\n \n

If you specify a health check configuration, you can specify either HealthCheckCustomConfig\n or HealthCheckConfig but not both.

\n
\n

You can't add, update, or delete a HealthCheckCustomConfig configuration from an existing\n service.

" } }, "Tags": { "target": "com.amazonaws.servicediscovery#TagList", "traits": { - "smithy.api#documentation": "

The tags to add to the service. Each tag consists of a key and an optional value that you\n define. Tags keys can be up to 128 characters in length, and tag values can be up to 256\n characters in length.

" + "smithy.api#documentation": "

The tags to add to the service. Each tag consists of a key and an optional value that you define.\n Tags keys can be up to 128 characters in length, and tag values can be up to 256\n characters in length.

" } }, "Type": { "target": "com.amazonaws.servicediscovery#ServiceTypeOption", "traits": { - "smithy.api#documentation": "

If present, specifies that the service instances are only discoverable using the\n DiscoverInstances API operation. No DNS records is registered for the service\n instances. The only valid value is HTTP.

" + "smithy.api#documentation": "

If present, specifies that the service instances are only discoverable using the\n DiscoverInstances API operation. No DNS records is registered for the service instances. The only\n valid value is HTTP.

" } } }, @@ -527,7 +527,7 @@ } }, "traits": { - "smithy.api#documentation": "

The health check for the instance that's specified by ServiceId and\n InstanceId isn't a custom health check.

", + "smithy.api#documentation": "

The health check for the instance that's specified by ServiceId and InstanceId\n isn't a custom health check.

", "smithy.api#error": "client", "smithy.api#httpError": 404 } @@ -572,7 +572,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a namespace from the current account. If the namespace still contains one or more\n services, the request fails.

", + "smithy.api#documentation": "

Deletes a namespace from the current account. If the namespace still contains one or more services, the\n request fails.

", "smithy.api#examples": [ { "title": "Example: Delete namespace", @@ -636,7 +636,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a specified service. If the service still contains one or more registered instances,\n the request fails.

", + "smithy.api#documentation": "

Deletes a specified service. If the service still contains one or more registered instances, the request\n fails.

", "smithy.api#examples": [ { "title": "Example: Delete service", @@ -697,7 +697,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the Amazon Route 53 DNS records and health check, if any, that Cloud Map created for the\n specified instance.

", + "smithy.api#documentation": "

Deletes the Amazon Route 53 DNS records and health check, if any, that Cloud Map created for the specified\n instance.

", "smithy.api#examples": [ { "title": "Example: Deregister a service instance", @@ -772,7 +772,7 @@ } ], "traits": { - "smithy.api#documentation": "

Discovers registered instances for a specified namespace and service. You can use\n DiscoverInstances to discover instances for any type of namespace.\n DiscoverInstances returns a randomized list of instances allowing customers to\n distribute traffic evenly across instances. For public and private DNS namespaces, you can also\n use DNS queries to discover instances.

", + "smithy.api#documentation": "

Discovers registered instances for a specified namespace and service. You can use\n DiscoverInstances to discover instances for any type of namespace. DiscoverInstances\n returns a randomized list of instances allowing customers to distribute traffic evenly across instances. For\n public and private DNS namespaces, you can also use DNS queries to discover instances.

", "smithy.api#endpoint": { "hostPrefix": "data-" }, @@ -810,7 +810,7 @@ "NamespaceName": { "target": "com.amazonaws.servicediscovery#NamespaceName", "traits": { - "smithy.api#documentation": "

The HttpName name of the namespace. It's found in the\n HttpProperties member of the Properties member of the\n namespace.

", + "smithy.api#documentation": "

The HttpName name of the namespace. It's found in the HttpProperties member of\n the Properties member of the namespace. In most cases, Name and HttpName\n match. However, if you reuse Name for namespace creation, a generated hash is added to\n HttpName to distinguish the two.

", "smithy.api#required": {} } }, @@ -824,25 +824,25 @@ "MaxResults": { "target": "com.amazonaws.servicediscovery#DiscoverMaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of instances that you want Cloud Map to return in the response to a\n DiscoverInstances request. If you don't specify a value for\n MaxResults, Cloud Map returns up to 100 instances.

" + "smithy.api#documentation": "

The maximum number of instances that you want Cloud Map to return in the response to a\n DiscoverInstances request. If you don't specify a value for MaxResults, Cloud Map\n returns up to 100 instances.

" } }, "QueryParameters": { "target": "com.amazonaws.servicediscovery#Attributes", "traits": { - "smithy.api#documentation": "

Filters to scope the results based on custom attributes for the instance (for example,\n {version=v1, az=1a}). Only instances that match all the specified key-value pairs\n are returned.

" + "smithy.api#documentation": "

Filters to scope the results based on custom attributes for the instance (for example, {version=v1,\n az=1a}). Only instances that match all the specified key-value pairs are returned.

" } }, "OptionalParameters": { "target": "com.amazonaws.servicediscovery#Attributes", "traits": { - "smithy.api#documentation": "

Opportunistic filters to scope the results based on custom attributes. If there are\n instances that match both the filters specified in both the QueryParameters\n parameter and this parameter, all of these instances are returned. Otherwise, the filters are\n ignored, and only instances that match the filters that are specified in the\n QueryParameters parameter are returned.

" + "smithy.api#documentation": "

Opportunistic filters to scope the results based on custom attributes. If there are instances that match\n both the filters specified in both the QueryParameters parameter and this parameter, all of these\n instances are returned. Otherwise, the filters are ignored, and only instances that match the filters that are\n specified in the QueryParameters parameter are returned.

" } }, "HealthStatus": { "target": "com.amazonaws.servicediscovery#HealthStatusFilter", "traits": { - "smithy.api#documentation": "

The health status of the instances that you want to discover. This parameter is ignored for\n services that don't have a health check configured, and\n all\n instances are returned.

\n
\n
HEALTHY
\n
\n

Returns healthy instances.

\n
\n
UNHEALTHY
\n
\n

Returns unhealthy instances.

\n
\n
ALL
\n
\n

Returns all instances.

\n
\n
HEALTHY_OR_ELSE_ALL
\n
\n

Returns healthy instances, unless none are reporting a healthy state. In that case,\n return all instances. This is also called failing open.

\n
\n
" + "smithy.api#documentation": "

The health status of the instances that you want to discover. This parameter is ignored for services that\n don't have a health check configured, and\n all\n instances are returned.

\n
\n
HEALTHY
\n
\n

Returns healthy instances.

\n
\n
UNHEALTHY
\n
\n

Returns unhealthy instances.

\n
\n
ALL
\n
\n

Returns all instances.

\n
\n
HEALTHY_OR_ELSE_ALL
\n
\n

Returns healthy instances, unless none are reporting a healthy state. In that case, return all\n instances. This is also called failing open.

\n
\n
" } } }, @@ -856,13 +856,13 @@ "Instances": { "target": "com.amazonaws.servicediscovery#HttpInstanceSummaryList", "traits": { - "smithy.api#documentation": "

A complex type that contains one HttpInstanceSummary for each registered\n instance.

" + "smithy.api#documentation": "

A complex type that contains one HttpInstanceSummary for each registered instance.

" } }, "InstancesRevision": { "target": "com.amazonaws.servicediscovery#Revision", "traits": { - "smithy.api#documentation": "

The increasing revision associated to the response Instances list. If a new instance is\n registered or deregistered, the InstancesRevision updates. The health status updates\n don't update InstancesRevision.

" + "smithy.api#documentation": "

The increasing revision associated to the response Instances list. If a new instance is registered or\n deregistered, the InstancesRevision updates. The health status updates don't update\n InstancesRevision.

" } } }, @@ -896,7 +896,20 @@ "smithy.api#documentation": "

Discovers the increasing revision associated with an instance.

", "smithy.api#endpoint": { "hostPrefix": "data-" - } + }, + "smithy.api#examples": [ + { + "title": "To discover the revision for a registered instance", + "documentation": "The following example discovers the revision ID for a registered instance.", + "input": { + "NamespaceName": "example-namespace", + "ServiceName": "example-service" + }, + "output": { + "InstancesRevision": 123456 + } + } + ] } }, "com.amazonaws.servicediscovery#DiscoverInstancesRevisionRequest": { @@ -905,7 +918,7 @@ "NamespaceName": { "target": "com.amazonaws.servicediscovery#NamespaceName", "traits": { - "smithy.api#documentation": "

The HttpName name of the namespace. It's found in the\n HttpProperties member of the Properties member of the\n namespace.

", + "smithy.api#documentation": "

The HttpName name of the namespace. It's found in the HttpProperties member of\n the Properties member of the namespace.

", "smithy.api#required": {} } }, @@ -927,7 +940,7 @@ "InstancesRevision": { "target": "com.amazonaws.servicediscovery#Revision", "traits": { - "smithy.api#documentation": "

The increasing revision associated to the response Instances list. If a new instance is\n registered or deregistered, the InstancesRevision updates. The health status updates\n don't update InstancesRevision.

" + "smithy.api#documentation": "

The increasing revision associated to the response Instances list. If a new instance is registered or\n deregistered, the InstancesRevision updates. The health status updates don't update\n InstancesRevision.

" } } }, @@ -953,25 +966,25 @@ "smithy.api#deprecated": { "message": "Top level attribute in request should be used to reference namespace-id" }, - "smithy.api#documentation": "

\n Use\n NamespaceId in Service instead.\n

\n

The ID of the namespace to use for DNS configuration.

" + "smithy.api#documentation": "

\n Use\n NamespaceId in Service\n instead.\n

\n

The ID of the namespace to use for DNS configuration.

" } }, "RoutingPolicy": { "target": "com.amazonaws.servicediscovery#RoutingPolicy", "traits": { - "smithy.api#documentation": "

The routing policy that you want to apply to all Route 53 DNS records that Cloud Map creates\n when you register an instance and specify this service.

\n \n

If you want to use this service to register instances that create alias records, specify\n WEIGHTED for the routing policy.

\n
\n

You can specify the following values:

\n
\n
MULTIVALUE
\n
\n

If you define a health check for the service and the health check is healthy, Route 53\n returns the applicable value for up to eight instances.

\n

For example, suppose that the service includes configurations for one A\n record and a health check. You use the service to register 10 instances. Route 53 responds to DNS\n queries with IP addresses for up to eight healthy instances. If fewer than eight instances are\n healthy, Route 53 responds to every DNS query with the IP addresses for all of the healthy\n instances.

\n

If you don't define a health check for the service, Route 53 assumes that all instances are\n healthy and returns the values for up to eight instances.

\n

For more information about the multivalue routing policy, see Multivalue\n Answer Routing in the Route 53 Developer Guide.

\n
\n
WEIGHTED
\n
\n

Route 53 returns the applicable value from one randomly selected instance from among the\n instances that you registered using the same service. Currently, all records have the same\n weight, so you can't route more or less traffic to any instances.

\n

For example, suppose that the service includes configurations for one A\n record and a health check. You use the service to register 10 instances. Route 53 responds to DNS\n queries with the IP address for one randomly selected instance from among the healthy\n instances. If no instances are healthy, Route 53 responds to DNS queries as if all of the\n instances were healthy.

\n

If you don't define a health check for the service, Route 53 assumes that all instances are\n healthy and returns the applicable value for one randomly selected instance.

\n

For more information about the weighted routing policy, see Weighted\n Routing in the Route 53 Developer Guide.

\n
\n
" + "smithy.api#documentation": "

The routing policy that you want to apply to all Route 53 DNS records that Cloud Map creates when you\n register an instance and specify this service.

\n \n

If you want to use this service to register instances that create alias records, specify\n WEIGHTED for the routing policy.

\n
\n

You can specify the following values:

\n
\n
MULTIVALUE
\n
\n

If you define a health check for the service and the health check is healthy, Route 53 returns the\n applicable value for up to eight instances.

\n

For example, suppose that the service includes configurations for one A record and a health\n check. You use the service to register 10 instances. Route 53 responds to DNS queries with IP addresses for up\n to eight healthy instances. If fewer than eight instances are healthy, Route 53 responds to every DNS query with\n the IP addresses for all of the healthy instances.

\n

If you don't define a health check for the service, Route 53 assumes that all instances are healthy and\n returns the values for up to eight instances.

\n

For more information about the multivalue routing policy, see Multivalue Answer\n Routing in the Route 53 Developer Guide.

\n
\n
WEIGHTED
\n
\n

Route 53 returns the applicable value from one randomly selected instance from among the instances that you\n registered using the same service. Currently, all records have the same weight, so you can't route more or\n less traffic to any instances.

\n

For example, suppose that the service includes configurations for one A record and a health\n check. You use the service to register 10 instances. Route 53 responds to DNS queries with the IP address for\n one randomly selected instance from among the healthy instances. If no instances are healthy, Route 53 responds\n to DNS queries as if all of the instances were healthy.

\n

If you don't define a health check for the service, Route 53 assumes that all instances are healthy and\n returns the applicable value for one randomly selected instance.

\n

For more information about the weighted routing policy, see Weighted Routing in\n the Route 53 Developer Guide.

\n
\n
" } }, "DnsRecords": { "target": "com.amazonaws.servicediscovery#DnsRecordList", "traits": { - "smithy.api#documentation": "

An array that contains one DnsRecord object for each Route 53 DNS record that you\n want Cloud Map to create when you register an instance.

", + "smithy.api#documentation": "

An array that contains one DnsRecord object for each Route 53 DNS record that you want Cloud Map\n to create when you register an instance.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

A complex type that contains information about the Amazon Route 53 DNS records that you want\n Cloud Map to create when you register an instance.

\n \n

The record types of a service can only be changed by deleting the service and recreating it\n with a new Dnsconfig.

\n
" + "smithy.api#documentation": "

A complex type that contains information about the Amazon Route 53 DNS records that you want Cloud Map to create\n when you register an instance.

\n \n

The record types of a service can only be changed by deleting the service and recreating it with a new\n Dnsconfig.

\n
" } }, "com.amazonaws.servicediscovery#DnsConfigChange": { @@ -980,13 +993,13 @@ "DnsRecords": { "target": "com.amazonaws.servicediscovery#DnsRecordList", "traits": { - "smithy.api#documentation": "

An array that contains one DnsRecord object for each Route 53 record that you want\n Cloud Map to create when you register an instance.

", + "smithy.api#documentation": "

An array that contains one DnsRecord object for each Route 53 record that you want Cloud Map to\n create when you register an instance.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

A complex type that contains information about changes to the Route 53 DNS records that\n Cloud Map creates when you register an instance.

" + "smithy.api#documentation": "

A complex type that contains information about changes to the Route 53 DNS records that Cloud Map creates\n when you register an instance.

" } }, "com.amazonaws.servicediscovery#DnsProperties": { @@ -1006,7 +1019,7 @@ } }, "traits": { - "smithy.api#documentation": "

A complex type that contains the ID for the Route 53 hosted zone that Cloud Map creates when\n you create a namespace.

" + "smithy.api#documentation": "

A complex type that contains the ID for the Route 53 hosted zone that Cloud Map creates when you create a\n namespace.

" } }, "com.amazonaws.servicediscovery#DnsRecord": { @@ -1015,20 +1028,20 @@ "Type": { "target": "com.amazonaws.servicediscovery#RecordType", "traits": { - "smithy.api#documentation": "

The type of the resource, which indicates the type of value that Route 53 returns in response\n to DNS queries. You can specify values for Type in the following\n combinations:

\n
    \n
  • \n

    \n \n A\n \n

    \n
  • \n
  • \n

    \n \n AAAA\n \n

    \n
  • \n
  • \n

    \n \n A\n and \n AAAA\n \n

    \n
  • \n
  • \n

    \n \n SRV\n \n

    \n
  • \n
  • \n

    \n \n CNAME\n \n

    \n
  • \n
\n

If you want Cloud Map to create a Route 53 alias record when you register an instance, specify\n A or AAAA for Type.

\n

You specify other settings, such as the IP address for A and AAAA\n records, when you register an instance. For more information, see RegisterInstance.

\n

The following values are supported:

\n
\n
A
\n
\n

Route 53 returns the IP address of the resource in IPv4 format, such as 192.0.2.44.

\n
\n
AAAA
\n
\n

Route 53 returns the IP address of the resource in IPv6 format, such as\n 2001:0db8:85a3:0000:0000:abcd:0001:2345.

\n
\n
CNAME
\n
\n

Route 53 returns the domain name of the resource, such as www.example.com. Note the\n following:

\n
    \n
  • \n

    You specify the domain name that you want to route traffic to when you register an\n instance. For more information, see Attributes in the topic RegisterInstance.

    \n
  • \n
  • \n

    You must specify WEIGHTED for the value of\n RoutingPolicy.

    \n
  • \n
  • \n

    You can't specify both CNAME for Type and settings for\n HealthCheckConfig. If you do, the request will fail with an\n InvalidInput error.

    \n
  • \n
\n
\n
SRV
\n
\n

Route 53 returns the value for an SRV record. The value for an SRV\n record uses the following values:

\n

\n priority weight port service-hostname\n

\n

Note the following about the values:

\n
    \n
  • \n

    The values of priority and weight are both set to\n 1 and can't be changed.

    \n
  • \n
  • \n

    The value of port comes from the value that you specify for the\n AWS_INSTANCE_PORT attribute when you submit a RegisterInstance\n request.

    \n
  • \n
  • \n

    The value of service-hostname is a concatenation of the following\n values:

    \n
      \n
    • \n

      The value that you specify for InstanceId when you register an\n instance.

      \n
    • \n
    • \n

      The name of the service.

      \n
    • \n
    • \n

      The name of the namespace.

      \n
    • \n
    \n

    For example, if the value of InstanceId is test, the name of\n the service is backend, and the name of the namespace is\n example.com, the value of service-hostname is the\n following:

    \n

    \n test.backend.example.com\n

    \n
  • \n
\n

If you specify settings for an SRV record, note the following:

\n
    \n
  • \n

    If you specify values for AWS_INSTANCE_IPV4,\n AWS_INSTANCE_IPV6, or both in the RegisterInstance request,\n Cloud Map automatically creates A and/or AAAA records that have\n the same name as the value of service-hostname in the SRV record.\n You can ignore these records.

    \n
  • \n
  • \n

    If you're using a system that requires a specific SRV format, such as\n HAProxy, see the Name element in the documentation about CreateService for information\n about how to specify the correct name format.

    \n
  • \n
\n
\n
", + "smithy.api#documentation": "

The type of the resource, which indicates the type of value that Route 53 returns in response to DNS queries.\n You can specify values for Type in the following combinations:

\n
    \n
  • \n

    \n \n A\n \n

    \n
  • \n
  • \n

    \n \n AAAA\n \n

    \n
  • \n
  • \n

    \n \n A\n and \n AAAA\n \n

    \n
  • \n
  • \n

    \n \n SRV\n \n

    \n
  • \n
  • \n

    \n \n CNAME\n \n

    \n
  • \n
\n

If you want Cloud Map to create a Route 53 alias record when you register an instance, specify A\n or AAAA for Type.

\n

You specify other settings, such as the IP address for A and AAAA records, when\n you register an instance. For more information, see RegisterInstance.

\n

The following values are supported:

\n
\n
A
\n
\n

Route 53 returns the IP address of the resource in IPv4 format, such as 192.0.2.44.

\n
\n
AAAA
\n
\n

Route 53 returns the IP address of the resource in IPv6 format, such as\n 2001:0db8:85a3:0000:0000:abcd:0001:2345.

\n
\n
CNAME
\n
\n

Route 53 returns the domain name of the resource, such as www.example.com. Note the following:

\n
    \n
  • \n

    You specify the domain name that you want to route traffic to when you register an instance. For more\n information, see Attributes in the topic RegisterInstance.

    \n
  • \n
  • \n

    You must specify WEIGHTED for the value of RoutingPolicy.

    \n
  • \n
  • \n

    You can't specify both CNAME for Type and settings for\n HealthCheckConfig. If you do, the request will fail with an InvalidInput\n error.

    \n
  • \n
\n
\n
SRV
\n
\n

Route 53 returns the value for an SRV record. The value for an SRV record uses\n the following values:

\n

\n priority weight port service-hostname\n

\n

Note the following about the values:

\n
    \n
  • \n

    The values of priority and weight are both set to 1 and can't\n be changed.

    \n
  • \n
  • \n

    The value of port comes from the value that you specify for the\n AWS_INSTANCE_PORT attribute when you submit a RegisterInstance request.

    \n
  • \n
  • \n

    The value of service-hostname is a concatenation of the following values:

    \n
      \n
    • \n

      The value that you specify for InstanceId when you register an instance.

      \n
    • \n
    • \n

      The name of the service.

      \n
    • \n
    • \n

      The name of the namespace.

      \n
    • \n
    \n

    For example, if the value of InstanceId is test, the name of the service is\n backend, and the name of the namespace is example.com, the value of\n service-hostname is the following:

    \n

    \n test.backend.example.com\n

    \n
  • \n
\n

If you specify settings for an SRV record, note the following:

\n
    \n
  • \n

    If you specify values for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both in\n the RegisterInstance request, Cloud Map automatically creates A and/or\n AAAA records that have the same name as the value of service-hostname in the\n SRV record. You can ignore these records.

    \n
  • \n
  • \n

    If you're using a system that requires a specific SRV format, such as HAProxy, see the\n Name element\n in the documentation about CreateService for information about how to specify the correct name\n format.

    \n
  • \n
\n
\n
", "smithy.api#required": {} } }, "TTL": { "target": "com.amazonaws.servicediscovery#RecordTTL", "traits": { - "smithy.api#documentation": "

The amount of time, in seconds, that you want DNS resolvers to cache the settings for this\n record.

\n \n

Alias records don't include a TTL because Route 53 uses the TTL for the Amazon Web Services resource that an\n alias record routes traffic to. If you include the AWS_ALIAS_DNS_NAME attribute\n when you submit a RegisterInstance request, the\n TTL value is ignored. Always specify a TTL for the service; you can use a service\n to register instances that create either alias or non-alias records.

\n
", + "smithy.api#documentation": "

The amount of time, in seconds, that you want DNS resolvers to cache the settings for this record.

\n \n

Alias records don't include a TTL because Route 53 uses the TTL for the Amazon Web Services resource that an alias record\n routes traffic to. If you include the AWS_ALIAS_DNS_NAME attribute when you submit a RegisterInstance request,\n the TTL value is ignored. Always specify a TTL for the service; you can use a service to register\n instances that create either alias or non-alias records.

\n
", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

A complex type that contains information about the Route 53 DNS records that you want\n Cloud Map to create when you register an instance.

" + "smithy.api#documentation": "

A complex type that contains information about the Route 53 DNS records that you want Cloud Map to create\n when you register an instance.

" } }, "com.amazonaws.servicediscovery#DnsRecordList": { @@ -1216,7 +1229,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets the current health status (Healthy, Unhealthy, or\n Unknown) of one or more instances that are associated with a specified\n service.

\n \n

There's a brief delay between when you register an instance and when the health status for\n the instance is available.

\n
", + "smithy.api#documentation": "

Gets the current health status (Healthy, Unhealthy, or Unknown) of\n one or more instances that are associated with a specified service.

\n \n

There's a brief delay between when you register an instance and when the health status for the instance is\n available.

\n
", "smithy.api#examples": [ { "title": "GetInstancesHealthStatus example", @@ -1252,19 +1265,19 @@ "Instances": { "target": "com.amazonaws.servicediscovery#InstanceIdList", "traits": { - "smithy.api#documentation": "

An array that contains the IDs of all the instances that you want to get the health status\n for.

\n

If you omit Instances, Cloud Map returns the health status for all the\n instances that are associated with the specified service.

\n \n

To get the IDs for the instances that you've registered by using a specified service,\n submit a ListInstances request.

\n
" + "smithy.api#documentation": "

An array that contains the IDs of all the instances that you want to get the health status for.

\n

If you omit Instances, Cloud Map returns the health status for all the instances that are\n associated with the specified service.

\n \n

To get the IDs for the instances that you've registered by using a specified service, submit a ListInstances request.

\n
" } }, "MaxResults": { "target": "com.amazonaws.servicediscovery#MaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of instances that you want Cloud Map to return in the response to a\n GetInstancesHealthStatus request. If you don't specify a value for\n MaxResults, Cloud Map returns up to 100 instances.

" + "smithy.api#documentation": "

The maximum number of instances that you want Cloud Map to return in the response to a\n GetInstancesHealthStatus request. If you don't specify a value for MaxResults,\n Cloud Map returns up to 100 instances.

" } }, "NextToken": { "target": "com.amazonaws.servicediscovery#NextToken", "traits": { - "smithy.api#documentation": "

For the first GetInstancesHealthStatus request, omit this value.

\n

If more than MaxResults instances match the specified criteria, you can submit\n another GetInstancesHealthStatus request to get the next group of results. Specify\n the value of NextToken from the previous response in the next request.

" + "smithy.api#documentation": "

For the first GetInstancesHealthStatus request, omit this value.

\n

If more than MaxResults instances match the specified criteria, you can submit another\n GetInstancesHealthStatus request to get the next group of results. Specify the value of\n NextToken from the previous response in the next request.

" } } }, @@ -1278,13 +1291,13 @@ "Status": { "target": "com.amazonaws.servicediscovery#InstanceHealthStatusMap", "traits": { - "smithy.api#documentation": "

A complex type that contains the IDs and the health status of the instances that you\n specified in the GetInstancesHealthStatus request.

" + "smithy.api#documentation": "

A complex type that contains the IDs and the health status of the instances that you specified in the\n GetInstancesHealthStatus request.

" } }, "NextToken": { "target": "com.amazonaws.servicediscovery#NextToken", "traits": { - "smithy.api#documentation": "

If more than MaxResults instances match the specified criteria, you can submit\n another GetInstancesHealthStatus request to get the next group of results. Specify\n the value of NextToken from the previous response in the next request.

" + "smithy.api#documentation": "

If more than MaxResults instances match the specified criteria, you can submit another\n GetInstancesHealthStatus request to get the next group of results. Specify the value of\n NextToken from the previous response in the next request.

" } } }, @@ -1466,25 +1479,25 @@ "Type": { "target": "com.amazonaws.servicediscovery#HealthCheckType", "traits": { - "smithy.api#documentation": "

The type of health check that you want to create, which indicates how Route 53 determines\n whether an endpoint is healthy.

\n \n

You can't change the value of Type after you create a health check.

\n
\n

You can create the following types of health checks:

\n
    \n
  • \n

    \n HTTP: Route 53 tries to establish a TCP connection. If\n successful, Route 53 submits an HTTP request and waits for an HTTP status code of 200 or greater\n and less than 400.

    \n
  • \n
  • \n

    \n HTTPS: Route 53 tries to establish a TCP connection. If\n successful, Route 53 submits an HTTPS request and waits for an HTTP status code of 200 or greater\n and less than 400.

    \n \n

    If you specify HTTPS for the value of Type, the endpoint must support TLS\n v1.0 or later.

    \n
    \n
  • \n
  • \n

    \n TCP: Route 53 tries to establish a TCP connection.

    \n

    If you specify TCP for Type, don't specify a value for\n ResourcePath.

    \n
  • \n
\n

For more information, see How Route 53\n Determines Whether an Endpoint Is Healthy in the\n Route 53 Developer Guide.

", + "smithy.api#documentation": "

The type of health check that you want to create, which indicates how Route 53 determines whether an endpoint\n is healthy.

\n \n

You can't change the value of Type after you create a health check.

\n
\n

You can create the following types of health checks:

\n
    \n
  • \n

    \n HTTP: Route 53 tries to establish a TCP connection. If successful, Route 53\n submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400.

    \n
  • \n
  • \n

    \n HTTPS: Route 53 tries to establish a TCP connection. If successful, Route 53\n submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400.

    \n \n

    If you specify HTTPS for the value of Type, the endpoint must support TLS v1.0 or\n later.

    \n
    \n
  • \n
  • \n

    \n TCP: Route 53 tries to establish a TCP connection.

    \n

    If you specify TCP for Type, don't specify a value for\n ResourcePath.

    \n
  • \n
\n

For more information, see How Route 53 Determines\n Whether an Endpoint Is Healthy in the Route 53 Developer Guide.

", "smithy.api#required": {} } }, "ResourcePath": { "target": "com.amazonaws.servicediscovery#ResourcePath", "traits": { - "smithy.api#documentation": "

The path that you want Route 53 to request when performing health checks. The path can be any\n value that your endpoint returns an HTTP status code of a 2xx or 3xx format for when the endpoint\n is healthy. An example file is /docs/route53-health-check.html. Route 53 automatically\n adds the DNS name for the service. If you don't specify a value for ResourcePath,\n the default value is /.

\n

If you specify TCP for Type, you must not\n specify a value for ResourcePath.

" + "smithy.api#documentation": "

The path that you want Route 53 to request when performing health checks. The path can be any value that your\n endpoint returns an HTTP status code of a 2xx or 3xx format for when the endpoint is healthy. An example file is\n /docs/route53-health-check.html. Route 53 automatically adds the DNS name for the service. If you\n don't specify a value for ResourcePath, the default value is /.

\n

If you specify TCP for Type, you must not specify a value\n for ResourcePath.

" } }, "FailureThreshold": { "target": "com.amazonaws.servicediscovery#FailureThreshold", "traits": { - "smithy.api#documentation": "

The number of consecutive health checks that an endpoint must pass or fail for Route 53 to\n change the current status of the endpoint from unhealthy to healthy or the other way around. For\n more information, see How Route 53\n Determines Whether an Endpoint Is Healthy in the\n Route 53 Developer Guide.

" + "smithy.api#documentation": "

The number of consecutive health checks that an endpoint must pass or fail for Route 53 to change the current\n status of the endpoint from unhealthy to healthy or the other way around. For more information, see How\n Route 53 Determines Whether an Endpoint Is Healthy in the Route 53 Developer Guide.

" } } }, "traits": { - "smithy.api#documentation": "

\n Public DNS and HTTP namespaces only. A complex type that contains\n settings for an optional health check. If you specify settings for a health check, Cloud Map\n associates the health check with the records that you specify in DnsConfig.

\n \n

If you specify a health check configuration, you can specify either\n HealthCheckCustomConfig or HealthCheckConfig but not both.

\n
\n

Health checks are basic Route 53 health checks that monitor an Amazon Web Services endpoint. For\n information about pricing for health checks, see Amazon Route 53 Pricing.

\n

Note the following about configuring health checks.

\n
\n
A and AAAA records
\n
\n

If DnsConfig includes configurations for both A and\n AAAA records, Cloud Map creates a health check that uses the IPv4 address to\n check the health of the resource. If the endpoint tthat's specified by the IPv4 address is\n unhealthy, Route 53 considers both the A and AAAA records to be\n unhealthy.

\n
\n
CNAME records
\n
\n

You can't specify settings for HealthCheckConfig when the\n DNSConfig includes CNAME for the value of Type. If you\n do, the CreateService request will fail with an InvalidInput\n error.

\n
\n
Request interval
\n
\n

A Route 53 health checker in each health-checking Amazon Web Services Region sends a health check request\n to an endpoint every 30 seconds. On average, your endpoint receives a health check request\n about every two seconds. However, health checkers don't coordinate with one another.\n Therefore, you might sometimes see several requests in one second that's followed by a few\n seconds with no health checks at all.

\n
\n
Health checking regions
\n
\n

Health checkers perform checks from all Route 53 health-checking Regions. For a list of the\n current Regions, see Regions.

\n
\n
Alias records
\n
\n

When you register an instance, if you include the AWS_ALIAS_DNS_NAME\n attribute, Cloud Map creates a Route 53 alias record. Note the following:

\n
    \n
  • \n

    Route 53 automatically sets EvaluateTargetHealth to true for alias records.\n When EvaluateTargetHealth is true, the alias record inherits the health of the\n referenced Amazon Web Services resource. such as an ELB load balancer. For more information, see EvaluateTargetHealth.

    \n
  • \n
  • \n

    If you include HealthCheckConfig and then use the service to register an\n instance that creates an alias record, Route 53 doesn't create the health check.

    \n
  • \n
\n
\n
Charges for health checks
\n
\n

Health checks are basic Route 53 health checks that monitor an Amazon Web Services endpoint. For\n information about pricing for health checks, see Amazon Route 53 Pricing.

\n
\n
" + "smithy.api#documentation": "

\n Public DNS and HTTP namespaces only. A complex type that contains settings for an\n optional health check. If you specify settings for a health check, Cloud Map associates the health check with\n the records that you specify in DnsConfig.

\n \n

If you specify a health check configuration, you can specify either HealthCheckCustomConfig\n or HealthCheckConfig but not both.

\n
\n

Health checks are basic Route 53 health checks that monitor an Amazon Web Services endpoint. For information\n about pricing for health checks, see Amazon Route 53\n Pricing.

\n

Note the following about configuring health checks.

\n
\n
A and AAAA records
\n
\n

If DnsConfig includes configurations for both A and AAAA records,\n Cloud Map creates a health check that uses the IPv4 address to check the health of the resource. If the\n endpoint tthat's specified by the IPv4 address is unhealthy, Route 53 considers both the A and\n AAAA records to be unhealthy.

\n
\n
CNAME records
\n
\n

You can't specify settings for HealthCheckConfig when the DNSConfig includes\n CNAME for the value of Type. If you do, the CreateService request\n will fail with an InvalidInput error.

\n
\n
Request interval
\n
\n

A Route 53 health checker in each health-checking Amazon Web Services Region sends a health check request to an endpoint\n every 30 seconds. On average, your endpoint receives a health check request about every two seconds. However,\n health checkers don't coordinate with one another. Therefore, you might sometimes see several requests in one\n second that's followed by a few seconds with no health checks at all.

\n
\n
Health checking regions
\n
\n

Health checkers perform checks from all Route 53 health-checking Regions. For a list of the current\n Regions, see Regions.

\n
\n
Alias records
\n
\n

When you register an instance, if you include the AWS_ALIAS_DNS_NAME attribute, Cloud Map\n creates a Route 53 alias record. Note the following:

\n
    \n
  • \n

    Route 53 automatically sets EvaluateTargetHealth to true for alias records. When\n EvaluateTargetHealth is true, the alias record inherits the health of the referenced Amazon Web Services\n resource. such as an ELB load balancer. For more information, see EvaluateTargetHealth.

    \n
  • \n
  • \n

    If you include HealthCheckConfig and then use the service to register an instance that\n creates an alias record, Route 53 doesn't create the health check.

    \n
  • \n
\n
\n
Charges for health checks
\n
\n

Health checks are basic Route 53 health checks that monitor an Amazon Web Services endpoint. For information about\n pricing for health checks, see Amazon Route 53\n Pricing.

\n
\n
" } }, "com.amazonaws.servicediscovery#HealthCheckCustomConfig": { @@ -1496,12 +1509,12 @@ "smithy.api#deprecated": { "message": "Configurable FailureThreshold of HealthCheckCustomConfig is deprecated. It will always have value 1." }, - "smithy.api#documentation": "\n

This parameter is no longer supported and is always set to 1. Cloud Map waits for\n approximately 30 seconds after receiving an UpdateInstanceCustomHealthStatus\n request before changing the status of the service instance.

\n
\n

The number of 30-second intervals that you want Cloud Map to wait after receiving an\n UpdateInstanceCustomHealthStatus request before it changes the health status of a\n service instance.

\n

Sending a second or subsequent UpdateInstanceCustomHealthStatus request with\n the same value before 30 seconds has passed doesn't accelerate the change. Cloud Map still waits\n 30 seconds after the first request to make the change.

" + "smithy.api#documentation": "\n

This parameter is no longer supported and is always set to 1. Cloud Map waits for approximately 30 seconds\n after receiving an UpdateInstanceCustomHealthStatus request before changing the status of the\n service instance.

\n
\n

The number of 30-second intervals that you want Cloud Map to wait after receiving an\n UpdateInstanceCustomHealthStatus request before it changes the health status of a service\n instance.

\n

Sending a second or subsequent UpdateInstanceCustomHealthStatus request with the same value\n before 30 seconds has passed doesn't accelerate the change. Cloud Map still waits 30 seconds after the\n first request to make the change.

" } } }, "traits": { - "smithy.api#documentation": "

A complex type that contains information about an optional custom health check. A custom\n health check, which requires that you use a third-party health checker to evaluate the health of\n your resources, is useful in the following circumstances:

\n
    \n
  • \n

    You can't use a health check that's defined by HealthCheckConfig because the\n resource isn't available over the internet. For example, you can use a custom health check when\n the instance is in an Amazon VPC. (To check the health of resources in a VPC, the health\n checker must also be in the VPC.)

    \n
  • \n
  • \n

    You want to use a third-party health checker regardless of where your resources are\n located.

    \n
  • \n
\n \n

If you specify a health check configuration, you can specify either\n HealthCheckCustomConfig or HealthCheckConfig but not both.

\n
\n

To change the status of a custom health check, submit an\n UpdateInstanceCustomHealthStatus request. Cloud Map doesn't monitor the status of the\n resource, it just keeps a record of the status specified in the most recent\n UpdateInstanceCustomHealthStatus request.

\n

Here's how custom health checks work:

\n
    \n
  1. \n

    You create a service.

    \n
  2. \n
  3. \n

    You register an instance.

    \n
  4. \n
  5. \n

    You configure a third-party health checker to monitor the resource that's associated with\n the new instance.

    \n \n

    Cloud Map doesn't check the health of the resource directly.

    \n
    \n
  6. \n
  7. \n

    The third-party health-checker determines that the resource is unhealthy and notifies your\n application.

    \n
  8. \n
  9. \n

    Your application submits an UpdateInstanceCustomHealthStatus request.

    \n
  10. \n
  11. \n

    Cloud Map waits for 30 seconds.

    \n
  12. \n
  13. \n

    If another UpdateInstanceCustomHealthStatus request doesn't arrive during\n that time to change the status back to healthy, Cloud Map stops routing traffic to the\n resource.

    \n
  14. \n
" + "smithy.api#documentation": "

A complex type that contains information about an optional custom health check. A custom health check,\n which requires that you use a third-party health checker to evaluate the health of your resources, is useful in\n the following circumstances:

\n
    \n
  • \n

    You can't use a health check that's defined by HealthCheckConfig because the resource isn't\n available over the internet. For example, you can use a custom health check when the instance is in an Amazon\n VPC. (To check the health of resources in a VPC, the health checker must also be in the VPC.)

    \n
  • \n
  • \n

    You want to use a third-party health checker regardless of where your resources are located.

    \n
  • \n
\n \n

If you specify a health check configuration, you can specify either HealthCheckCustomConfig\n or HealthCheckConfig but not both.

\n
\n

To change the status of a custom health check, submit an UpdateInstanceCustomHealthStatus\n request. Cloud Map doesn't monitor the status of the resource, it just keeps a record of the status specified in\n the most recent UpdateInstanceCustomHealthStatus request.

\n

Here's how custom health checks work:

\n
    \n
  1. \n

    You create a service.

    \n
  2. \n
  3. \n

    You register an instance.

    \n
  4. \n
  5. \n

    You configure a third-party health checker to monitor the resource that's associated with the new\n instance.

    \n \n

    Cloud Map doesn't check the health of the resource directly.

    \n
    \n
  6. \n
  7. \n

    The third-party health-checker determines that the resource is unhealthy and notifies your\n application.

    \n
  8. \n
  9. \n

    Your application submits an UpdateInstanceCustomHealthStatus request.

    \n
  10. \n
  11. \n

    Cloud Map waits for 30 seconds.

    \n
  12. \n
  13. \n

    If another UpdateInstanceCustomHealthStatus request doesn't arrive during that time to\n change the status back to healthy, Cloud Map stops routing traffic to the resource.

    \n
  14. \n
" } }, "com.amazonaws.servicediscovery#HealthCheckType": { @@ -1591,7 +1604,7 @@ "NamespaceName": { "target": "com.amazonaws.servicediscovery#NamespaceNameHttp", "traits": { - "smithy.api#documentation": "

\n \n \n \n

\n

The HttpName name of the namespace. It's found in the\n HttpProperties member of the Properties member of the\n namespace.

" + "smithy.api#documentation": "

\n \n \n \n

\n

The HttpName name of the namespace. It's found in the HttpProperties member of\n the Properties member of the namespace.

" } }, "ServiceName": { @@ -1603,18 +1616,18 @@ "HealthStatus": { "target": "com.amazonaws.servicediscovery#HealthStatus", "traits": { - "smithy.api#documentation": "

If you configured health checking in the service, the current health status of the service\n instance.

" + "smithy.api#documentation": "

If you configured health checking in the service, the current health status of the service instance.

" } }, "Attributes": { "target": "com.amazonaws.servicediscovery#Attributes", "traits": { - "smithy.api#documentation": "

If you included any attributes when you registered the instance, the values of those\n attributes.

" + "smithy.api#documentation": "

If you included any attributes when you registered the instance, the values of those attributes.

" } } }, "traits": { - "smithy.api#documentation": "

In a response to a DiscoverInstances request,\n HttpInstanceSummary contains information about one instance that matches the values\n that you specified in the request.

" + "smithy.api#documentation": "

In a response to a DiscoverInstances request, HttpInstanceSummary contains information about one instance\n that matches the values that you specified in the request.

" } }, "com.amazonaws.servicediscovery#HttpInstanceSummaryList": { @@ -1629,13 +1642,13 @@ "Description": { "target": "com.amazonaws.servicediscovery#ResourceDescription", "traits": { - "smithy.api#documentation": "

An updated\n description for the HTTP namespace.

", + "smithy.api#documentation": "

An updated description for the HTTP\n namespace.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Updated properties\n for the HTTP namespace.

" + "smithy.api#documentation": "

Updated properties for the HTTP\n namespace.

" } }, "com.amazonaws.servicediscovery#HttpProperties": { @@ -1658,25 +1671,25 @@ "Id": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

An identifier that you want to associate with the instance. Note the following:

\n
    \n
  • \n

    If the service that's specified by ServiceId includes settings for an\n SRV record, the value of InstanceId is automatically included as\n part of the value for the SRV record. For more information, see DnsRecord >\n Type.

    \n
  • \n
  • \n

    You can use this value to update an existing instance.

    \n
  • \n
  • \n

    To register a new instance, you must specify a value that's unique among instances that\n you register by using the same service.

    \n
  • \n
  • \n

    If you specify an existing InstanceId and ServiceId, Cloud Map\n updates the existing DNS records. If there's also an existing health check, Cloud Map deletes\n the old health check and creates a new one.

    \n \n

    The health check isn't deleted immediately, so it will still appear for a while if you\n submit a ListHealthChecks request, for example.

    \n
    \n
  • \n
", + "smithy.api#documentation": "

An identifier that you want to associate with the instance. Note the following:

\n
    \n
  • \n

    If the service that's specified by ServiceId includes settings for an SRV\n record, the value of InstanceId is automatically included as part of the value for the\n SRV record. For more information, see DnsRecord > Type.

    \n
  • \n
  • \n

    You can use this value to update an existing instance.

    \n
  • \n
  • \n

    To register a new instance, you must specify a value that's unique among instances that you register by\n using the same service.

    \n
  • \n
  • \n

    If you specify an existing InstanceId and ServiceId, Cloud Map updates the\n existing DNS records. If there's also an existing health check, Cloud Map deletes the old health check and\n creates a new one.

    \n \n

    The health check isn't deleted immediately, so it will still appear for a while if you submit a\n ListHealthChecks request, for example.

    \n
    \n
  • \n
", "smithy.api#required": {} } }, "CreatorRequestId": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

A unique string that identifies the request and that allows failed\n RegisterInstance requests to be retried without the risk of executing the operation\n twice. You must use a unique CreatorRequestId string every time you submit a\n RegisterInstance request if you're registering additional instances for the same\n namespace and service. CreatorRequestId can be any unique string (for example, a\n date/time stamp).

" + "smithy.api#documentation": "

A unique string that identifies the request and that allows failed RegisterInstance requests\n to be retried without the risk of executing the operation twice. You must use a unique\n CreatorRequestId string every time you submit a RegisterInstance request if you're\n registering additional instances for the same namespace and service. CreatorRequestId can be any\n unique string (for example, a date/time stamp).

" } }, "Attributes": { "target": "com.amazonaws.servicediscovery#Attributes", "traits": { - "smithy.api#documentation": "

A string map that contains the following information for the service that you specify in\n ServiceId:

\n
    \n
  • \n

    The attributes that apply to the records that are defined in the service.

    \n
  • \n
  • \n

    For each attribute, the applicable value.

    \n
  • \n
\n \n

Do not include sensitive information in the attributes if the namespace is discoverable by\n public DNS queries.

\n
\n

Supported attribute keys include the following:

\n
\n
AWS_ALIAS_DNS_NAME
\n
\n

If you want Cloud Map to create a Route 53 alias record that routes traffic to an Elastic Load Balancing\n load balancer, specify the DNS name that's associated with the load balancer. For information\n about how to get the DNS name, see AliasTarget->DNSName in the Route 53 API Reference.

\n

Note the following:

\n
    \n
  • \n

    The configuration for the service that's specified by ServiceId must\n include settings for an A record, an AAAA record, or both.

    \n
  • \n
  • \n

    In the service that's specified by ServiceId, the value of\n RoutingPolicy must be WEIGHTED.

    \n
  • \n
  • \n

    If the service that's specified by ServiceId includes\n HealthCheckConfig settings, Cloud Map creates the health check, but it won't\n associate the health check with the alias record.

    \n
  • \n
  • \n

    Auto naming currently doesn't support creating alias records that route traffic to\n Amazon Web Services resources other than ELB load balancers.

    \n
  • \n
  • \n

    If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for\n any of the AWS_INSTANCE attributes.

    \n
  • \n
\n
\n
AWS_EC2_INSTANCE_ID
\n
\n

\n HTTP namespaces only. The Amazon EC2 instance ID for the instance. The\n AWS_INSTANCE_IPV4 attribute contains the primary private IPv4 address.

\n
\n
AWS_INIT_HEALTH_STATUS
\n
\n

If the service configuration includes HealthCheckCustomConfig, you can\n optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom\n health check, HEALTHY or UNHEALTHY. If you don't specify a value for\n AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

\n
\n
AWS_INSTANCE_CNAME
\n
\n

If the service configuration includes a CNAME record, the domain name that\n you want Route 53 to return in response to DNS queries (for example,\n example.com).

\n

This value is required if the service specified by ServiceId includes\n settings for an CNAME record.

\n
\n
AWS_INSTANCE_IPV4
\n
\n

If the service configuration includes an A record, the IPv4 address that you\n want Route 53 to return in response to DNS queries (for example, 192.0.2.44).

\n

This value is required if the service specified by ServiceId includes\n settings for an A record. If the service includes settings for an\n SRV record, you must specify a value for AWS_INSTANCE_IPV4,\n AWS_INSTANCE_IPV6, or both.

\n
\n
AWS_INSTANCE_IPV6
\n
\n

If the service configuration includes an AAAA record, the IPv6 address that\n you want Route 53 to return in response to DNS queries (for example,\n 2001:0db8:85a3:0000:0000:abcd:0001:2345).

\n

This value is required if the service specified by ServiceId includes\n settings for an AAAA record. If the service includes settings for an\n SRV record, you must specify a value for AWS_INSTANCE_IPV4,\n AWS_INSTANCE_IPV6, or both.

\n
\n
AWS_INSTANCE_PORT
\n
\n

If the service includes an SRV record, the value that you want Route 53 to\n return for the port.

\n

If the service includes HealthCheckConfig, the port on the endpoint that you\n want Route 53 to send requests to.

\n

This value is required if you specified settings for an SRV record or a\n Route 53 health check when you created the service.

\n
\n
" + "smithy.api#documentation": "

A string map that contains the following information for the service that you specify in\n ServiceId:

\n
    \n
  • \n

    The attributes that apply to the records that are defined in the service.

    \n
  • \n
  • \n

    For each attribute, the applicable value.

    \n
  • \n
\n \n

Do not include sensitive information in the attributes if the namespace is discoverable by public DNS\n queries.

\n
\n

Supported attribute keys include the following:

\n
\n
AWS_ALIAS_DNS_NAME
\n
\n

If you want Cloud Map to create a Route 53 alias record that routes traffic to an Elastic Load Balancing load balancer,\n specify the DNS name that's associated with the load balancer. For information about how to get the DNS name,\n see AliasTarget->DNSName in the Route 53 API Reference.

\n

Note the following:

\n
    \n
  • \n

    The configuration for the service that's specified by ServiceId must include settings for\n an A record, an AAAA record, or both.

    \n
  • \n
  • \n

    In the service that's specified by ServiceId, the value of RoutingPolicy\n must be WEIGHTED.

    \n
  • \n
  • \n

    If the service that's specified by ServiceId includes HealthCheckConfig\n settings, Cloud Map creates the health check, but it won't associate the health check with the alias\n record.

    \n
  • \n
  • \n

    Auto naming currently doesn't support creating alias records that route traffic to Amazon Web Services resources\n other than ELB load balancers.

    \n
  • \n
  • \n

    If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for any of the\n AWS_INSTANCE attributes.

    \n
  • \n
\n
\n
AWS_EC2_INSTANCE_ID
\n
\n

\n HTTP namespaces only. The Amazon EC2 instance ID for the instance. The\n AWS_INSTANCE_IPV4 attribute contains the primary private IPv4 address.

\n
\n
AWS_INIT_HEALTH_STATUS
\n
\n

If the service configuration includes HealthCheckCustomConfig, you can optionally use\n AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check,\n HEALTHY or UNHEALTHY. If you don't specify a value for\n AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

\n
\n
AWS_INSTANCE_CNAME
\n
\n

If the service configuration includes a CNAME record, the domain name that you want Route 53\n to return in response to DNS queries (for example, example.com).

\n

This value is required if the service specified by ServiceId includes settings for an\n CNAME record.

\n
\n
AWS_INSTANCE_IPV4
\n
\n

If the service configuration includes an A record, the IPv4 address that you want Route 53 to\n return in response to DNS queries (for example, 192.0.2.44).

\n

This value is required if the service specified by ServiceId includes settings for an\n A record. If the service includes settings for an SRV record, you must specify a\n value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

\n
\n
AWS_INSTANCE_IPV6
\n
\n

If the service configuration includes an AAAA record, the IPv6 address that you want Route 53\n to return in response to DNS queries (for example,\n 2001:0db8:85a3:0000:0000:abcd:0001:2345).

\n

This value is required if the service specified by ServiceId includes settings for an\n AAAA record. If the service includes settings for an SRV record, you must specify\n a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

\n
\n
AWS_INSTANCE_PORT
\n
\n

If the service includes an SRV record, the value that you want Route 53 to return for the\n port.

\n

If the service includes HealthCheckConfig, the port on the endpoint that you want Route 53 to\n send requests to.

\n

This value is required if you specified settings for an SRV record or a Route 53 health check\n when you created the service.

\n
\n
" } } }, "traits": { - "smithy.api#documentation": "

A complex type that contains information about an instance that Cloud Map creates when you\n submit a RegisterInstance request.

" + "smithy.api#documentation": "

A complex type that contains information about an instance that Cloud Map creates when you submit a\n RegisterInstance request.

" } }, "com.amazonaws.servicediscovery#InstanceHealthStatusMap": { @@ -1720,7 +1733,7 @@ } }, "traits": { - "smithy.api#documentation": "

No instance exists with the specified ID, or the instance was recently registered, and\n information about the instance hasn't propagated yet.

", + "smithy.api#documentation": "

No instance exists with the specified ID, or the instance was recently registered, and information about\n the instance hasn't propagated yet.

", "smithy.api#error": "client", "smithy.api#httpError": 404 } @@ -1737,12 +1750,12 @@ "Attributes": { "target": "com.amazonaws.servicediscovery#Attributes", "traits": { - "smithy.api#documentation": "

A string map that contains the following information:

\n
    \n
  • \n

    The attributes that are associated with the instance.

    \n
  • \n
  • \n

    For each attribute, the applicable value.

    \n
  • \n
\n

Supported attribute keys include the following:

\n
\n
AWS_ALIAS_DNS_NAME
\n
\n

For an alias record that routes traffic to an Elastic Load Balancing load balancer, the DNS name that's\n associated with the load balancer.

\n
\n
AWS_EC2_INSTANCE_ID (HTTP namespaces only)
\n
\n

The Amazon EC2 instance ID for the instance. When the AWS_EC2_INSTANCE_ID\n attribute is specified, then the AWS_INSTANCE_IPV4 attribute contains the primary\n private IPv4 address.

\n
\n
AWS_INIT_HEALTH_STATUS
\n
\n

If the service configuration includes HealthCheckCustomConfig, you can\n optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom\n health check, HEALTHY or UNHEALTHY. If you don't specify a value for\n AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

\n
\n
AWS_INSTANCE_CNAME
\n
\n

For a CNAME record, the domain name that Route 53 returns in response to DNS\n queries (for example, example.com).

\n
\n
AWS_INSTANCE_IPV4
\n
\n

For an A record, the IPv4 address that Route 53 returns in response to DNS\n queries (for example, 192.0.2.44).

\n
\n
AWS_INSTANCE_IPV6
\n
\n

For an AAAA record, the IPv6 address that Route 53 returns in response to DNS\n queries (for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345).

\n
\n
AWS_INSTANCE_PORT
\n
\n

For an SRV record, the value that Route 53 returns for the port. In addition,\n if the service includes HealthCheckConfig, the port on the endpoint that Route 53\n sends requests to.

\n
\n
" + "smithy.api#documentation": "

A string map that contains the following information:

\n
    \n
  • \n

    The attributes that are associated with the instance.

    \n
  • \n
  • \n

    For each attribute, the applicable value.

    \n
  • \n
\n

Supported attribute keys include the following:

\n
\n
AWS_ALIAS_DNS_NAME
\n
\n

For an alias record that routes traffic to an Elastic Load Balancing load balancer, the DNS name that's associated with\n the load balancer.

\n
\n
AWS_EC2_INSTANCE_ID (HTTP namespaces only)
\n
\n

The Amazon EC2 instance ID for the instance. When the AWS_EC2_INSTANCE_ID attribute is\n specified, then the AWS_INSTANCE_IPV4 attribute contains the primary private IPv4\n address.

\n
\n
AWS_INIT_HEALTH_STATUS
\n
\n

If the service configuration includes HealthCheckCustomConfig, you can optionally use\n AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check,\n HEALTHY or UNHEALTHY. If you don't specify a value for\n AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

\n
\n
AWS_INSTANCE_CNAME
\n
\n

For a CNAME record, the domain name that Route 53 returns in response to DNS queries (for\n example, example.com).

\n
\n
AWS_INSTANCE_IPV4
\n
\n

For an A record, the IPv4 address that Route 53 returns in response to DNS queries (for\n example, 192.0.2.44).

\n
\n
AWS_INSTANCE_IPV6
\n
\n

For an AAAA record, the IPv6 address that Route 53 returns in response to DNS queries (for\n example, 2001:0db8:85a3:0000:0000:abcd:0001:2345).

\n
\n
AWS_INSTANCE_PORT
\n
\n

For an SRV record, the value that Route 53 returns for the port. In addition, if the service\n includes HealthCheckConfig, the port on the endpoint that Route 53 sends requests to.

\n
\n
" } } }, "traits": { - "smithy.api#documentation": "

A complex type that contains information about the instances that you registered by using a\n specified service.

" + "smithy.api#documentation": "

A complex type that contains information about the instances that you registered by using a specified\n service.

" } }, "com.amazonaws.servicediscovery#InstanceSummaryList": { @@ -1762,7 +1775,7 @@ } }, "traits": { - "smithy.api#documentation": "

One or more specified values aren't valid. For example, a required value might be missing, a\n numeric value might be outside the allowed range, or a string value might exceed length\n constraints.

", + "smithy.api#documentation": "

One or more specified values aren't valid. For example, a required value might be missing, a numeric value\n might be outside the allowed range, or a string value might exceed length constraints.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -1784,7 +1797,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists summary information about the instances that you registered by using a specified\n service.

", + "smithy.api#documentation": "

Lists summary information about the instances that you registered by using a specified service.

", "smithy.api#examples": [ { "title": "Example: List service instances", @@ -1825,13 +1838,13 @@ "NextToken": { "target": "com.amazonaws.servicediscovery#NextToken", "traits": { - "smithy.api#documentation": "

For the first ListInstances request, omit this value.

\n

If more than MaxResults instances match the specified criteria, you can submit\n another ListInstances request to get the next group of results. Specify the value of\n NextToken from the previous response in the next request.

" + "smithy.api#documentation": "

For the first ListInstances request, omit this value.

\n

If more than MaxResults instances match the specified criteria, you can submit another\n ListInstances request to get the next group of results. Specify the value of\n NextToken from the previous response in the next request.

" } }, "MaxResults": { "target": "com.amazonaws.servicediscovery#MaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of instances that you want Cloud Map to return in the response to a\n ListInstances request. If you don't specify a value for MaxResults,\n Cloud Map returns up to 100 instances.

" + "smithy.api#documentation": "

The maximum number of instances that you want Cloud Map to return in the response to a\n ListInstances request. If you don't specify a value for MaxResults, Cloud Map\n returns up to 100 instances.

" } } }, @@ -1845,13 +1858,13 @@ "Instances": { "target": "com.amazonaws.servicediscovery#InstanceSummaryList", "traits": { - "smithy.api#documentation": "

Summary information about the instances that are associated with the specified\n service.

" + "smithy.api#documentation": "

Summary information about the instances that are associated with the specified service.

" } }, "NextToken": { "target": "com.amazonaws.servicediscovery#NextToken", "traits": { - "smithy.api#documentation": "

If more than MaxResults instances match the specified criteria, you can submit\n another ListInstances request to get the next group of results. Specify the value of\n NextToken from the previous response in the next request.

" + "smithy.api#documentation": "

If more than MaxResults instances match the specified criteria, you can submit another\n ListInstances request to get the next group of results. Specify the value of\n NextToken from the previous response in the next request.

" } } }, @@ -1941,13 +1954,13 @@ "NextToken": { "target": "com.amazonaws.servicediscovery#NextToken", "traits": { - "smithy.api#documentation": "

For the first ListNamespaces request, omit this value.

\n

If the response contains NextToken, submit another ListNamespaces\n request to get the next group of results. Specify the value of NextToken from the\n previous response in the next request.

\n \n

Cloud Map gets MaxResults namespaces and then filters them based on the\n specified criteria. It's possible that no namespaces in the first MaxResults\n namespaces matched the specified criteria but that subsequent groups of MaxResults\n namespaces do contain namespaces that match the criteria.

\n
" + "smithy.api#documentation": "

For the first ListNamespaces request, omit this value.

\n

If the response contains NextToken, submit another ListNamespaces request to get\n the next group of results. Specify the value of NextToken from the previous response in the next\n request.

\n \n

Cloud Map gets MaxResults namespaces and then filters them based on the specified criteria.\n It's possible that no namespaces in the first MaxResults namespaces matched the specified criteria\n but that subsequent groups of MaxResults namespaces do contain namespaces that match the\n criteria.

\n
" } }, "MaxResults": { "target": "com.amazonaws.servicediscovery#MaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of namespaces that you want Cloud Map to return in the response to a\n ListNamespaces request. If you don't specify a value for MaxResults,\n Cloud Map returns up to 100 namespaces.

" + "smithy.api#documentation": "

The maximum number of namespaces that you want Cloud Map to return in the response to a\n ListNamespaces request. If you don't specify a value for MaxResults, Cloud Map\n returns up to 100 namespaces.

" } }, "Filters": { @@ -1967,13 +1980,13 @@ "Namespaces": { "target": "com.amazonaws.servicediscovery#NamespaceSummariesList", "traits": { - "smithy.api#documentation": "

An array that contains one NamespaceSummary object for each namespace that\n matches the specified filter criteria.

" + "smithy.api#documentation": "

An array that contains one NamespaceSummary object for each namespace that matches the\n specified filter criteria.

" } }, "NextToken": { "target": "com.amazonaws.servicediscovery#NextToken", "traits": { - "smithy.api#documentation": "

If the response contains NextToken, submit another ListNamespaces\n request to get the next group of results. Specify the value of NextToken from the\n previous response in the next request.

\n \n

Cloud Map gets MaxResults namespaces and then filters them based on the\n specified criteria. It's possible that no namespaces in the first MaxResults\n namespaces matched the specified criteria but that subsequent groups of MaxResults\n namespaces do contain namespaces that match the criteria.

\n
" + "smithy.api#documentation": "

If the response contains NextToken, submit another ListNamespaces request to get\n the next group of results. Specify the value of NextToken from the previous response in the next\n request.

\n \n

Cloud Map gets MaxResults namespaces and then filters them based on the specified criteria.\n It's possible that no namespaces in the first MaxResults namespaces matched the specified criteria\n but that subsequent groups of MaxResults namespaces do contain namespaces that match the\n criteria.

\n
" } } }, @@ -2043,19 +2056,19 @@ "NextToken": { "target": "com.amazonaws.servicediscovery#NextToken", "traits": { - "smithy.api#documentation": "

For the first ListOperations request, omit this value.

\n

If the response contains NextToken, submit another ListOperations\n request to get the next group of results. Specify the value of NextToken from the\n previous response in the next request.

\n \n

Cloud Map gets MaxResults operations and then filters them based on the\n specified criteria. It's possible that no operations in the first MaxResults\n operations matched the specified criteria but that subsequent groups of MaxResults\n operations do contain operations that match the criteria.

\n
" + "smithy.api#documentation": "

For the first ListOperations request, omit this value.

\n

If the response contains NextToken, submit another ListOperations request to get\n the next group of results. Specify the value of NextToken from the previous response in the next\n request.

\n \n

Cloud Map gets MaxResults operations and then filters them based on the specified criteria.\n It's possible that no operations in the first MaxResults operations matched the specified criteria\n but that subsequent groups of MaxResults operations do contain operations that match the\n criteria.

\n
" } }, "MaxResults": { "target": "com.amazonaws.servicediscovery#MaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of items that you want Cloud Map to return in the response to a\n ListOperations request. If you don't specify a value for MaxResults,\n Cloud Map returns up to 100 operations.

" + "smithy.api#documentation": "

The maximum number of items that you want Cloud Map to return in the response to a\n ListOperations request. If you don't specify a value for MaxResults, Cloud Map\n returns up to 100 operations.

" } }, "Filters": { "target": "com.amazonaws.servicediscovery#OperationFilters", "traits": { - "smithy.api#documentation": "

A complex type that contains specifications for the operations that you want to list, for\n example, operations that you started between a specified start date and end date.

\n

If you specify more than one filter, an operation must match all filters to be returned by\n ListOperations.

" + "smithy.api#documentation": "

A complex type that contains specifications for the operations that you want to list, for example,\n operations that you started between a specified start date and end date.

\n

If you specify more than one filter, an operation must match all filters to be returned by\n ListOperations.

" } } }, @@ -2075,7 +2088,7 @@ "NextToken": { "target": "com.amazonaws.servicediscovery#NextToken", "traits": { - "smithy.api#documentation": "

If the response contains NextToken, submit another ListOperations\n request to get the next group of results. Specify the value of NextToken from the\n previous response in the next request.

\n \n

Cloud Map gets MaxResults operations and then filters them based on the\n specified criteria. It's possible that no operations in the first MaxResults\n operations matched the specified criteria but that subsequent groups of MaxResults\n operations do contain operations that match the criteria.

\n
" + "smithy.api#documentation": "

If the response contains NextToken, submit another ListOperations request to get\n the next group of results. Specify the value of NextToken from the previous response in the next\n request.

\n \n

Cloud Map gets MaxResults operations and then filters them based on the specified criteria.\n It's possible that no operations in the first MaxResults operations matched the specified criteria\n but that subsequent groups of MaxResults operations do contain operations that match the\n criteria.

\n
" } } }, @@ -2097,7 +2110,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists summary information for all the services that are associated with one or more\n specified namespaces.

", + "smithy.api#documentation": "

Lists summary information for all the services that are associated with one or more\n namespaces.

", "smithy.api#examples": [ { "title": "Example: List services", @@ -2136,19 +2149,19 @@ "NextToken": { "target": "com.amazonaws.servicediscovery#NextToken", "traits": { - "smithy.api#documentation": "

For the first ListServices request, omit this value.

\n

If the response contains NextToken, submit another ListServices\n request to get the next group of results. Specify the value of NextToken from the\n previous response in the next request.

\n \n

Cloud Map gets MaxResults services and then filters them based on the\n specified criteria. It's possible that no services in the first MaxResults services\n matched the specified criteria but that subsequent groups of MaxResults services do\n contain services that match the criteria.

\n
" + "smithy.api#documentation": "

For the first ListServices request, omit this value.

\n

If the response contains NextToken, submit another ListServices request to get\n the next group of results. Specify the value of NextToken from the previous response in the next\n request.

\n \n

Cloud Map gets MaxResults services and then filters them based on the specified criteria.\n It's possible that no services in the first MaxResults services matched the specified criteria but\n that subsequent groups of MaxResults services do contain services that match the criteria.

\n
" } }, "MaxResults": { "target": "com.amazonaws.servicediscovery#MaxResults", "traits": { - "smithy.api#documentation": "

The maximum number of services that you want Cloud Map to return in the response to a\n ListServices request. If you don't specify a value for MaxResults,\n Cloud Map returns up to 100 services.

" + "smithy.api#documentation": "

The maximum number of services that you want Cloud Map to return in the response to a\n ListServices request. If you don't specify a value for MaxResults, Cloud Map returns\n up to 100 services.

" } }, "Filters": { "target": "com.amazonaws.servicediscovery#ServiceFilters", "traits": { - "smithy.api#documentation": "

A complex type that contains specifications for the namespaces that you want to list\n services for.

\n

If you specify more than one filter, an operation must match all filters to be returned by\n ListServices.

" + "smithy.api#documentation": "

A complex type that contains specifications for the namespaces that you want to list services for.

\n

If you specify more than one filter, an operation must match all filters to be returned by\n ListServices.

" } } }, @@ -2162,13 +2175,13 @@ "Services": { "target": "com.amazonaws.servicediscovery#ServiceSummariesList", "traits": { - "smithy.api#documentation": "

An array that contains one ServiceSummary object for each service that matches\n the specified filter criteria.

" + "smithy.api#documentation": "

An array that contains one ServiceSummary object for each service that matches the specified\n filter criteria.

" } }, "NextToken": { "target": "com.amazonaws.servicediscovery#NextToken", "traits": { - "smithy.api#documentation": "

If the response contains NextToken, submit another ListServices\n request to get the next group of results. Specify the value of NextToken from the\n previous response in the next request.

\n \n

Cloud Map gets MaxResults services and then filters them based on the\n specified criteria. It's possible that no services in the first MaxResults services\n matched the specified criteria but that subsequent groups of MaxResults services do\n contain services that match the criteria.

\n
" + "smithy.api#documentation": "

If the response contains NextToken, submit another ListServices request to get\n the next group of results. Specify the value of NextToken from the previous response in the next\n request.

\n \n

Cloud Map gets MaxResults services and then filters them based on the specified criteria.\n It's possible that no services in the first MaxResults services matched the specified criteria but\n that subsequent groups of MaxResults services do contain services that match the criteria.

\n
" } } }, @@ -2282,7 +2295,7 @@ "Type": { "target": "com.amazonaws.servicediscovery#NamespaceType", "traits": { - "smithy.api#documentation": "

The type of the namespace. The methods for discovering instances depends on the value that\n you specify:

\n
\n
HTTP
\n
\n

Instances can be discovered only programmatically, using the Cloud Map\n DiscoverInstances API.

\n
\n
DNS_PUBLIC
\n
\n

Instances can be discovered using public DNS queries and using the\n DiscoverInstances API.

\n
\n
DNS_PRIVATE
\n
\n

Instances can be discovered using DNS queries in VPCs and using the\n DiscoverInstances API.

\n
\n
" + "smithy.api#documentation": "

The type of the namespace. The methods for discovering instances depends on the value that you\n specify:

\n
\n
HTTP
\n
\n

Instances can be discovered only programmatically, using the Cloud Map DiscoverInstances\n API.

\n
\n
DNS_PUBLIC
\n
\n

Instances can be discovered using public DNS queries and using the DiscoverInstances\n API.

\n
\n
DNS_PRIVATE
\n
\n

Instances can be discovered using DNS queries in VPCs and using the DiscoverInstances\n API.

\n
\n
" } }, "Description": { @@ -2300,19 +2313,19 @@ "Properties": { "target": "com.amazonaws.servicediscovery#NamespaceProperties", "traits": { - "smithy.api#documentation": "

A complex type that contains information that's specific to the type of the\n namespace.

" + "smithy.api#documentation": "

A complex type that contains information that's specific to the type of the namespace.

" } }, "CreateDate": { "target": "com.amazonaws.servicediscovery#Timestamp", "traits": { - "smithy.api#documentation": "

The date that the namespace was created, in Unix date/time format and Coordinated Universal\n Time (UTC). The value of CreateDate is accurate to milliseconds. For example, the\n value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" + "smithy.api#documentation": "

The date that the namespace was created, in Unix date/time format and Coordinated Universal Time (UTC). The\n value of CreateDate is accurate to milliseconds. For example, the value 1516925490.087\n represents Friday, January 26, 2018 12:11:30.087 AM.

" } }, "CreatorRequestId": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

A unique string that identifies the request and that allows failed requests to be retried\n without the risk of running an operation twice.

" + "smithy.api#documentation": "

A unique string that identifies the request and that allows failed requests to be retried without the risk\n of running an operation twice.

" } } }, @@ -2358,19 +2371,19 @@ "Values": { "target": "com.amazonaws.servicediscovery#FilterValues", "traits": { - "smithy.api#documentation": "

Specify the values that are applicable to the value that you specify for\n Name.

\n
    \n
  • \n

    \n TYPE: Specify HTTP, DNS_PUBLIC, or\n DNS_PRIVATE.

    \n
  • \n
  • \n

    \n NAME: Specify the name of the namespace, which is found in\n Namespace.Name.

    \n
  • \n
  • \n

    \n HTTP_NAME: Specify the HTTP name of the namespace, which is found in\n Namespace.Properties.HttpProperties.HttpName.

    \n
  • \n
", + "smithy.api#documentation": "

Specify the values that are applicable to the value that you specify for Name.

\n
    \n
  • \n

    \n TYPE: Specify HTTP, DNS_PUBLIC, or\n DNS_PRIVATE.

    \n
  • \n
  • \n

    \n NAME: Specify the name of the namespace, which is found in\n Namespace.Name.

    \n
  • \n
  • \n

    \n HTTP_NAME: Specify the HTTP name of the namespace, which is found in\n Namespace.Properties.HttpProperties.HttpName.

    \n
  • \n
", "smithy.api#required": {} } }, "Condition": { "target": "com.amazonaws.servicediscovery#FilterCondition", "traits": { - "smithy.api#documentation": "

Specify the operator that you want to use to determine whether a namespace matches the\n specified value. Valid values for Condition are one of the following.

\n
    \n
  • \n

    \n EQ: When you specify EQ for Condition, you can\n specify only one value. EQ is supported for TYPE, NAME,\n and HTTP_NAME. EQ is the default condition and can be omitted.

    \n
  • \n
  • \n

    \n BEGINS_WITH: When you specify BEGINS_WITH for\n Condition, you can specify only one value. BEGINS_WITH is supported\n for TYPE, NAME, and HTTP_NAME.

    \n
  • \n
" + "smithy.api#documentation": "

Specify the operator that you want to use to determine whether a namespace matches the specified value.\n Valid values for Condition are one of the following.

\n
    \n
  • \n

    \n EQ: When you specify EQ for Condition, you can specify only one\n value. EQ is supported for TYPE, NAME, and HTTP_NAME.\n EQ is the default condition and can be omitted.

    \n
  • \n
  • \n

    \n BEGINS_WITH: When you specify BEGINS_WITH for Condition, you can\n specify only one value. BEGINS_WITH is supported for TYPE, NAME, and\n HTTP_NAME.

    \n
  • \n
" } } }, "traits": { - "smithy.api#documentation": "

A complex type that identifies the namespaces that you want to list. You can choose to list\n public or private namespaces.

" + "smithy.api#documentation": "

A complex type that identifies the namespaces that you want to list. You can choose to list public or\n private namespaces.

" } }, "com.amazonaws.servicediscovery#NamespaceFilterName": { @@ -2463,7 +2476,7 @@ "DnsProperties": { "target": "com.amazonaws.servicediscovery#DnsProperties", "traits": { - "smithy.api#documentation": "

A complex type that contains the ID for the Route 53 hosted zone that Cloud Map creates when\n you create a namespace.

" + "smithy.api#documentation": "

A complex type that contains the ID for the Route 53 hosted zone that Cloud Map creates when you create a\n namespace.

" } }, "HttpProperties": { @@ -2501,7 +2514,7 @@ "Name": { "target": "com.amazonaws.servicediscovery#NamespaceName", "traits": { - "smithy.api#documentation": "

The name of the namespace. When you create a namespace, Cloud Map automatically creates a\n Route 53 hosted zone that has the same name as the namespace.

" + "smithy.api#documentation": "

The name of the namespace. When you create a namespace, Cloud Map automatically creates a Route 53 hosted\n zone that has the same name as the namespace.

" } }, "Type": { @@ -2595,25 +2608,25 @@ "ErrorMessage": { "target": "com.amazonaws.servicediscovery#Message", "traits": { - "smithy.api#documentation": "

If the value of Status is FAIL, the reason that the operation\n failed.

" + "smithy.api#documentation": "

If the value of Status is FAIL, the reason that the operation failed.

" } }, "ErrorCode": { "target": "com.amazonaws.servicediscovery#Code", "traits": { - "smithy.api#documentation": "

The code associated with ErrorMessage. Values for ErrorCode\n include the following:

\n
    \n
  • \n

    \n ACCESS_DENIED\n

    \n
  • \n
  • \n

    \n CANNOT_CREATE_HOSTED_ZONE\n

    \n
  • \n
  • \n

    \n EXPIRED_TOKEN\n

    \n
  • \n
  • \n

    \n HOSTED_ZONE_NOT_FOUND\n

    \n
  • \n
  • \n

    \n INTERNAL_FAILURE\n

    \n
  • \n
  • \n

    \n INVALID_CHANGE_BATCH\n

    \n
  • \n
  • \n

    \n THROTTLED_REQUEST\n

    \n
  • \n
" + "smithy.api#documentation": "

The code associated with ErrorMessage. Values for ErrorCode include the\n following:

\n
    \n
  • \n

    \n ACCESS_DENIED\n

    \n
  • \n
  • \n

    \n CANNOT_CREATE_HOSTED_ZONE\n

    \n
  • \n
  • \n

    \n EXPIRED_TOKEN\n

    \n
  • \n
  • \n

    \n HOSTED_ZONE_NOT_FOUND\n

    \n
  • \n
  • \n

    \n INTERNAL_FAILURE\n

    \n
  • \n
  • \n

    \n INVALID_CHANGE_BATCH\n

    \n
  • \n
  • \n

    \n THROTTLED_REQUEST\n

    \n
  • \n
" } }, "CreateDate": { "target": "com.amazonaws.servicediscovery#Timestamp", "traits": { - "smithy.api#documentation": "

The date and time that the request was submitted, in Unix date/time format and Coordinated\n Universal Time (UTC). The value of CreateDate is accurate to milliseconds. For\n example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087\n AM.

" + "smithy.api#documentation": "

The date and time that the request was submitted, in Unix date/time format and Coordinated Universal Time\n (UTC). The value of CreateDate is accurate to milliseconds. For example, the value\n 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" } }, "UpdateDate": { "target": "com.amazonaws.servicediscovery#Timestamp", "traits": { - "smithy.api#documentation": "

The date and time that the value of Status changed to the current value, in\n Unix date/time format and Coordinated Universal Time (UTC). The value of UpdateDate\n is accurate to milliseconds. For example, the value 1516925490.087 represents\n Friday, January 26, 2018 12:11:30.087 AM.

" + "smithy.api#documentation": "

The date and time that the value of Status changed to the current value, in Unix date/time\n format and Coordinated Universal Time (UTC). The value of UpdateDate is accurate to milliseconds.\n For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" } }, "Targets": { @@ -2633,21 +2646,21 @@ "Name": { "target": "com.amazonaws.servicediscovery#OperationFilterName", "traits": { - "smithy.api#documentation": "

Specify the operations that you want to get:

\n
    \n
  • \n

    \n NAMESPACE_ID: Gets operations related to specified\n namespaces.

    \n
  • \n
  • \n

    \n SERVICE_ID: Gets operations related to specified\n services.

    \n
  • \n
  • \n

    \n STATUS: Gets operations based on the status of the\n operations: SUBMITTED, PENDING, SUCCEED, or\n FAIL.

    \n
  • \n
  • \n

    \n TYPE: Gets specified types of operation.

    \n
  • \n
  • \n

    \n UPDATE_DATE: Gets operations that changed status during a\n specified date/time range.

    \n
  • \n
", + "smithy.api#documentation": "

Specify the operations that you want to get:

\n
    \n
  • \n

    \n NAMESPACE_ID: Gets operations related to specified namespaces.

    \n
  • \n
  • \n

    \n SERVICE_ID: Gets operations related to specified services.

    \n
  • \n
  • \n

    \n STATUS: Gets operations based on the status of the operations:\n SUBMITTED, PENDING, SUCCEED, or FAIL.

    \n
  • \n
  • \n

    \n TYPE: Gets specified types of operation.

    \n
  • \n
  • \n

    \n UPDATE_DATE: Gets operations that changed status during a specified\n date/time range.

    \n
  • \n
", "smithy.api#required": {} } }, "Values": { "target": "com.amazonaws.servicediscovery#FilterValues", "traits": { - "smithy.api#documentation": "

Specify values that are applicable to the value that you specify for Name:

\n
    \n
  • \n

    \n NAMESPACE_ID: Specify one namespace ID.

    \n
  • \n
  • \n

    \n SERVICE_ID: Specify one service ID.

    \n
  • \n
  • \n

    \n STATUS: Specify one or more statuses:\n SUBMITTED, PENDING, SUCCEED, or\n FAIL.

    \n
  • \n
  • \n

    \n TYPE: Specify one or more of the following types:\n CREATE_NAMESPACE, DELETE_NAMESPACE, UPDATE_SERVICE,\n REGISTER_INSTANCE, or DEREGISTER_INSTANCE.

    \n
  • \n
  • \n

    \n UPDATE_DATE: Specify a start date and an end date in Unix\n date/time format and Coordinated Universal Time (UTC). The start date must be the first\n value.

    \n
  • \n
", + "smithy.api#documentation": "

Specify values that are applicable to the value that you specify for Name:

\n
    \n
  • \n

    \n NAMESPACE_ID: Specify one namespace ID.

    \n
  • \n
  • \n

    \n SERVICE_ID: Specify one service ID.

    \n
  • \n
  • \n

    \n STATUS: Specify one or more statuses: SUBMITTED,\n PENDING, SUCCEED, or FAIL.

    \n
  • \n
  • \n

    \n TYPE: Specify one or more of the following types:\n CREATE_NAMESPACE, DELETE_NAMESPACE, UPDATE_SERVICE,\n REGISTER_INSTANCE, or DEREGISTER_INSTANCE.

    \n
  • \n
  • \n

    \n UPDATE_DATE: Specify a start date and an end date in Unix date/time\n format and Coordinated Universal Time (UTC). The start date must be the first value.

    \n
  • \n
", "smithy.api#required": {} } }, "Condition": { "target": "com.amazonaws.servicediscovery#FilterCondition", "traits": { - "smithy.api#documentation": "

The operator that you want to use to determine whether an operation matches the specified\n value. Valid values for condition include:

\n
    \n
  • \n

    \n EQ: When you specify EQ for the condition, you can specify only\n one value. EQ is supported for NAMESPACE_ID, SERVICE_ID,\n STATUS, and TYPE. EQ is the default condition and can\n be omitted.

    \n
  • \n
  • \n

    \n IN: When you specify IN for the condition, you can specify a\n list of one or more values. IN is supported for STATUS and\n TYPE. An operation must match one of the specified values to be returned in the\n response.

    \n
  • \n
  • \n

    \n BETWEEN: Specify a start date and an end date in Unix date/time format and\n Coordinated Universal Time (UTC). The start date must be the first value. BETWEEN\n is supported for UPDATE_DATE.

    \n
  • \n
" + "smithy.api#documentation": "

The operator that you want to use to determine whether an operation matches the specified value. Valid\n values for condition include:

\n
    \n
  • \n

    \n EQ: When you specify EQ for the condition, you can specify only one value.\n EQ is supported for NAMESPACE_ID, SERVICE_ID, STATUS, and\n TYPE. EQ is the default condition and can be omitted.

    \n
  • \n
  • \n

    \n IN: When you specify IN for the condition, you can specify a list of one or\n more values. IN is supported for STATUS and TYPE. An operation must\n match one of the specified values to be returned in the response.

    \n
  • \n
  • \n

    \n BETWEEN: Specify a start date and an end date in Unix date/time format and Coordinated\n Universal Time (UTC). The start date must be the first value. BETWEEN is supported for\n UPDATE_DATE.

    \n
  • \n
" } } }, @@ -2762,12 +2775,12 @@ "Status": { "target": "com.amazonaws.servicediscovery#OperationStatus", "traits": { - "smithy.api#documentation": "

The status of the operation. Values include the following:

\n
    \n
  • \n

    \n SUBMITTED: This is the initial state immediately after\n you submit a request.

    \n
  • \n
  • \n

    \n PENDING: Cloud Map is performing the operation.

    \n
  • \n
  • \n

    \n SUCCESS: The operation succeeded.

    \n
  • \n
  • \n

    \n FAIL: The operation failed. For the failure reason, see\n ErrorMessage.

    \n
  • \n
" + "smithy.api#documentation": "

The status of the operation. Values include the following:

\n
    \n
  • \n

    \n SUBMITTED: This is the initial state immediately after you submit a\n request.

    \n
  • \n
  • \n

    \n PENDING: Cloud Map is performing the operation.

    \n
  • \n
  • \n

    \n SUCCESS: The operation succeeded.

    \n
  • \n
  • \n

    \n FAIL: The operation failed. For the failure reason, see\n ErrorMessage.

    \n
  • \n
" } } }, "traits": { - "smithy.api#documentation": "

A complex type that contains information about an operation that matches the criteria that\n you specified in a ListOperations request.

" + "smithy.api#documentation": "

A complex type that contains information about an operation that matches the criteria that you specified in\n a ListOperations\n request.

" } }, "com.amazonaws.servicediscovery#OperationSummaryList": { @@ -2858,18 +2871,18 @@ "Description": { "target": "com.amazonaws.servicediscovery#ResourceDescription", "traits": { - "smithy.api#documentation": "

An updated\n description for the private DNS namespace.

" + "smithy.api#documentation": "

An updated description for the\n private DNS namespace.

" } }, "Properties": { "target": "com.amazonaws.servicediscovery#PrivateDnsNamespacePropertiesChange", "traits": { - "smithy.api#documentation": "

Properties to be\n updated in the private DNS namespace.

" + "smithy.api#documentation": "

Properties to be updated in the\n private DNS namespace.

" } } }, "traits": { - "smithy.api#documentation": "

Updated properties\n for the private DNS namespace.

" + "smithy.api#documentation": "

Updated properties for the private\n DNS namespace.

" } }, "com.amazonaws.servicediscovery#PrivateDnsNamespaceProperties": { @@ -2878,13 +2891,13 @@ "DnsProperties": { "target": "com.amazonaws.servicediscovery#PrivateDnsPropertiesMutable", "traits": { - "smithy.api#documentation": "

DNS properties for\n the private DNS namespace.

", + "smithy.api#documentation": "

DNS properties for the private DNS\n namespace.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

DNS properties for\n the private DNS namespace.

" + "smithy.api#documentation": "

DNS properties for the private DNS\n namespace.

" } }, "com.amazonaws.servicediscovery#PrivateDnsNamespacePropertiesChange": { @@ -2893,13 +2906,13 @@ "DnsProperties": { "target": "com.amazonaws.servicediscovery#PrivateDnsPropertiesMutableChange", "traits": { - "smithy.api#documentation": "

Updated DNS\n properties for the private DNS namespace.

", + "smithy.api#documentation": "

Updated DNS properties for the\n private DNS namespace.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Updated properties\n for the private DNS namespace.

" + "smithy.api#documentation": "

Updated properties for the private\n DNS namespace.

" } }, "com.amazonaws.servicediscovery#PrivateDnsPropertiesMutable": { @@ -2908,13 +2921,13 @@ "SOA": { "target": "com.amazonaws.servicediscovery#SOA", "traits": { - "smithy.api#documentation": "

Fields for the Start\n of Authority (SOA) record for the hosted zone for the private DNS\n namespace.

", + "smithy.api#documentation": "

Fields for the Start of Authority\n (SOA) record for the hosted zone for the private DNS namespace.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

DNS properties for\n the private DNS namespace.

" + "smithy.api#documentation": "

DNS properties for the private DNS\n namespace.

" } }, "com.amazonaws.servicediscovery#PrivateDnsPropertiesMutableChange": { @@ -2923,13 +2936,13 @@ "SOA": { "target": "com.amazonaws.servicediscovery#SOAChange", "traits": { - "smithy.api#documentation": "

Updated fields for\n the Start of Authority (SOA) record for the hosted zone for the private DNS\n namespace.

", + "smithy.api#documentation": "

Updated fields for the Start of\n Authority (SOA) record for the hosted zone for the private DNS namespace.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Updated DNS\n properties for the private DNS namespace.

" + "smithy.api#documentation": "

Updated DNS properties for the\n private DNS namespace.

" } }, "com.amazonaws.servicediscovery#PublicDnsNamespaceChange": { @@ -2938,18 +2951,18 @@ "Description": { "target": "com.amazonaws.servicediscovery#ResourceDescription", "traits": { - "smithy.api#documentation": "

An updated\n description for the public DNS namespace.

" + "smithy.api#documentation": "

An updated description for the\n public DNS namespace.

" } }, "Properties": { "target": "com.amazonaws.servicediscovery#PublicDnsNamespacePropertiesChange", "traits": { - "smithy.api#documentation": "

Properties to be\n updated in the public DNS namespace.

" + "smithy.api#documentation": "

Properties to be updated in the\n public DNS namespace.

" } } }, "traits": { - "smithy.api#documentation": "

Updated properties\n for the public DNS namespace.

" + "smithy.api#documentation": "

Updated properties for the public\n DNS namespace.

" } }, "com.amazonaws.servicediscovery#PublicDnsNamespaceProperties": { @@ -2958,13 +2971,13 @@ "DnsProperties": { "target": "com.amazonaws.servicediscovery#PublicDnsPropertiesMutable", "traits": { - "smithy.api#documentation": "

DNS properties for\n the public DNS namespace.

", + "smithy.api#documentation": "

DNS properties for the public DNS\n namespace.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

DNS properties for\n the public DNS namespace.

" + "smithy.api#documentation": "

DNS properties for the public DNS\n namespace.

" } }, "com.amazonaws.servicediscovery#PublicDnsNamespacePropertiesChange": { @@ -2973,13 +2986,13 @@ "DnsProperties": { "target": "com.amazonaws.servicediscovery#PublicDnsPropertiesMutableChange", "traits": { - "smithy.api#documentation": "

Updated DNS\n properties for the hosted zone for the public DNS namespace.

", + "smithy.api#documentation": "

Updated DNS properties for the\n hosted zone for the public DNS namespace.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Updated properties\n for the public DNS namespace.

" + "smithy.api#documentation": "

Updated properties for the public\n DNS namespace.

" } }, "com.amazonaws.servicediscovery#PublicDnsPropertiesMutable": { @@ -2988,13 +3001,13 @@ "SOA": { "target": "com.amazonaws.servicediscovery#SOA", "traits": { - "smithy.api#documentation": "

Start of Authority\n (SOA) record for the hosted zone for the public DNS namespace.

", + "smithy.api#documentation": "

Start of Authority (SOA) record for\n the hosted zone for the public DNS namespace.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

DNS properties for\n the public DNS namespace.

" + "smithy.api#documentation": "

DNS properties for the public DNS\n namespace.

" } }, "com.amazonaws.servicediscovery#PublicDnsPropertiesMutableChange": { @@ -3003,13 +3016,13 @@ "SOA": { "target": "com.amazonaws.servicediscovery#SOAChange", "traits": { - "smithy.api#documentation": "

Updated fields for\n the Start of Authority (SOA) record for the hosted zone for the public DNS\n namespace.

", + "smithy.api#documentation": "

Updated fields for the Start of\n Authority (SOA) record for the hosted zone for the public DNS namespace.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Updated DNS\n properties for the public DNS namespace.

" + "smithy.api#documentation": "

Updated DNS properties for the\n public DNS namespace.

" } }, "com.amazonaws.servicediscovery#RecordTTL": { @@ -3076,7 +3089,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates or updates one or more records and, optionally, creates a health check based on the\n settings in a specified service. When you submit a RegisterInstance request, the\n following occurs:

\n
    \n
  • \n

    For each DNS record that you define in the service that's specified by\n ServiceId, a record is created or updated in the hosted zone that's associated\n with the corresponding namespace.

    \n
  • \n
  • \n

    If the service includes HealthCheckConfig, a health check is created based on\n the settings in the health check configuration.

    \n
  • \n
  • \n

    The health check, if any, is associated with each of the new or updated records.

    \n
  • \n
\n \n

One RegisterInstance request must complete before you can submit another\n request and specify the same service ID and instance ID.

\n
\n

For more information, see CreateService.

\n

When Cloud Map receives a DNS query for the specified DNS name, it returns the applicable\n value:

\n
    \n
  • \n

    \n If the health check is healthy: returns all the\n records

    \n
  • \n
  • \n

    \n If the health check is unhealthy: returns the applicable\n value for the last healthy instance

    \n
  • \n
  • \n

    \n If you didn't specify a health check configuration:\n returns all the records

    \n
  • \n
\n

For the current quota on the number of instances that you can register using the same\n namespace and using the same service, see Cloud Map quotas in the\n Cloud Map Developer Guide.

", + "smithy.api#documentation": "

Creates or updates one or more records and, optionally, creates a health check based on the settings in a\n specified service. When you submit a RegisterInstance request, the following occurs:

\n
    \n
  • \n

    For each DNS record that you define in the service that's specified by ServiceId, a record\n is created or updated in the hosted zone that's associated with the corresponding namespace.

    \n
  • \n
  • \n

    If the service includes HealthCheckConfig, a health check is created based on the settings\n in the health check configuration.

    \n
  • \n
  • \n

    The health check, if any, is associated with each of the new or updated records.

    \n
  • \n
\n \n

One RegisterInstance request must complete before you can submit another request and specify\n the same service ID and instance ID.

\n
\n

For more information, see CreateService.

\n

When Cloud Map receives a DNS query for the specified DNS name, it returns the applicable value:

\n
    \n
  • \n

    \n If the health check is healthy: returns all the records

    \n
  • \n
  • \n

    \n If the health check is unhealthy: returns the applicable value for the\n last healthy instance

    \n
  • \n
  • \n

    \n If you didn't specify a health check configuration: returns all the\n records

    \n
  • \n
\n

For the current quota on the number of instances that you can register using the same namespace and using\n the same service, see Cloud Map\n quotas in the Cloud Map Developer Guide.

", "smithy.api#examples": [ { "title": "Example: Register Instance", @@ -3110,21 +3123,21 @@ "InstanceId": { "target": "com.amazonaws.servicediscovery#InstanceId", "traits": { - "smithy.api#documentation": "

An identifier that you want to associate with the instance. Note the following:

\n
    \n
  • \n

    If the service that's specified by ServiceId includes settings for an\n SRV record, the value of InstanceId is automatically included as\n part of the value for the SRV record. For more information, see DnsRecord >\n Type.

    \n
  • \n
  • \n

    You can use this value to update an existing instance.

    \n
  • \n
  • \n

    To register a new instance, you must specify a value that's unique among instances that\n you register by using the same service.

    \n
  • \n
  • \n

    If you specify an existing InstanceId and ServiceId, Cloud Map\n updates the existing DNS records, if any. If there's also an existing health check, Cloud Map\n deletes the old health check and creates a new one.

    \n \n

    The health check isn't deleted immediately, so it will still appear for a while if you\n submit a ListHealthChecks request, for example.

    \n
    \n
  • \n
\n \n

Do not include sensitive information in InstanceId if the namespace is\n discoverable by public DNS queries and any Type member of DnsRecord\n for the service contains SRV because the InstanceId is discoverable by\n public DNS queries.

\n
", + "smithy.api#documentation": "

An identifier that you want to associate with the instance. Note the following:

\n
    \n
  • \n

    If the service that's specified by ServiceId includes settings for an SRV\n record, the value of InstanceId is automatically included as part of the value for the\n SRV record. For more information, see DnsRecord > Type.

    \n
  • \n
  • \n

    You can use this value to update an existing instance.

    \n
  • \n
  • \n

    To register a new instance, you must specify a value that's unique among instances that you register by\n using the same service.

    \n
  • \n
  • \n

    If you specify an existing InstanceId and ServiceId, Cloud Map updates the\n existing DNS records, if any. If there's also an existing health check, Cloud Map deletes the old health\n check and creates a new one.

    \n \n

    The health check isn't deleted immediately, so it will still appear for a while if you submit a\n ListHealthChecks request, for example.

    \n
    \n
  • \n
\n \n

Do not include sensitive information in InstanceId if the namespace is discoverable by public\n DNS queries and any Type member of DnsRecord for the service contains\n SRV because the InstanceId is discoverable by public DNS queries.

\n
", "smithy.api#required": {} } }, "CreatorRequestId": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

A unique string that identifies the request and that allows failed\n RegisterInstance requests to be retried without the risk of executing the operation\n twice. You must use a unique CreatorRequestId string every time you submit a\n RegisterInstance request if you're registering additional instances for the same\n namespace and service. CreatorRequestId can be any unique string (for example, a\n date/time stamp).

", + "smithy.api#documentation": "

A unique string that identifies the request and that allows failed RegisterInstance requests\n to be retried without the risk of executing the operation twice. You must use a unique\n CreatorRequestId string every time you submit a RegisterInstance request if you're\n registering additional instances for the same namespace and service. CreatorRequestId can be any\n unique string (for example, a date/time stamp).

", "smithy.api#idempotencyToken": {} } }, "Attributes": { "target": "com.amazonaws.servicediscovery#Attributes", "traits": { - "smithy.api#documentation": "

A string map that contains the following information for the service that you specify in\n ServiceId:

\n
    \n
  • \n

    The attributes that apply to the records that are defined in the service.

    \n
  • \n
  • \n

    For each attribute, the applicable value.

    \n
  • \n
\n \n

Do not include sensitive information in the attributes if the namespace is discoverable by\n public DNS queries.

\n
\n

Supported attribute keys include the following:

\n
\n
AWS_ALIAS_DNS_NAME
\n
\n

If you want Cloud Map to create an Amazon Route 53 alias record that routes traffic to an\n Elastic Load Balancing load balancer, specify the DNS name that's associated with the load balancer. For\n information about how to get the DNS name, see \"DNSName\" in the topic AliasTarget in the Route 53 API Reference.

\n

Note the following:

\n
    \n
  • \n

    The configuration for the service that's specified by ServiceId must\n include settings for an A record, an AAAA record, or both.

    \n
  • \n
  • \n

    In the service that's specified by ServiceId, the value of\n RoutingPolicy must be WEIGHTED.

    \n
  • \n
  • \n

    If the service that's specified by ServiceId includes\n HealthCheckConfig settings, Cloud Map will create the Route 53 health check, but\n it doesn't associate the health check with the alias record.

    \n
  • \n
  • \n

    Cloud Map currently doesn't support creating alias records that route traffic to\n Amazon Web Services resources other than Elastic Load Balancing load balancers.

    \n
  • \n
  • \n

    If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for\n any of the AWS_INSTANCE attributes.

    \n
  • \n
\n
\n
AWS_EC2_INSTANCE_ID
\n
\n

\n HTTP namespaces only. The Amazon EC2 instance ID for the instance. If the\n AWS_EC2_INSTANCE_ID attribute is specified, then the only other attribute that\n can be specified is AWS_INIT_HEALTH_STATUS. When the\n AWS_EC2_INSTANCE_ID attribute is specified, then the\n AWS_INSTANCE_IPV4 attribute will be filled out with the primary private IPv4\n address.

\n
\n
AWS_INIT_HEALTH_STATUS
\n
\n

If the service configuration includes HealthCheckCustomConfig, you can\n optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom\n health check, HEALTHY or UNHEALTHY. If you don't specify a value for\n AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

\n
\n
AWS_INSTANCE_CNAME
\n
\n

If the service configuration includes a CNAME record, the domain name that\n you want Route 53 to return in response to DNS queries (for example,\n example.com).

\n

This value is required if the service specified by ServiceId includes\n settings for an CNAME record.

\n
\n
AWS_INSTANCE_IPV4
\n
\n

If the service configuration includes an A record, the IPv4 address that you\n want Route 53 to return in response to DNS queries (for example, 192.0.2.44).

\n

This value is required if the service specified by ServiceId includes\n settings for an A record. If the service includes settings for an\n SRV record, you must specify a value for AWS_INSTANCE_IPV4,\n AWS_INSTANCE_IPV6, or both.

\n
\n
AWS_INSTANCE_IPV6
\n
\n

If the service configuration includes an AAAA record, the IPv6 address that\n you want Route 53 to return in response to DNS queries (for example,\n 2001:0db8:85a3:0000:0000:abcd:0001:2345).

\n

This value is required if the service specified by ServiceId includes\n settings for an AAAA record. If the service includes settings for an\n SRV record, you must specify a value for AWS_INSTANCE_IPV4,\n AWS_INSTANCE_IPV6, or both.

\n
\n
AWS_INSTANCE_PORT
\n
\n

If the service includes an SRV record, the value that you want Route 53 to\n return for the port.

\n

If the service includes HealthCheckConfig, the port on the endpoint that you\n want Route 53 to send requests to.

\n

This value is required if you specified settings for an SRV record or a\n Route 53 health check when you created the service.

\n
\n
Custom attributes
\n
\n

You can add up to 30 custom attributes. For each key-value pair, the maximum length of\n the attribute name is 255 characters, and the maximum length of the attribute value is 1,024\n characters. The total size of all provided attributes (sum of all keys and values) must not\n exceed 5,000 characters.

\n
\n
", + "smithy.api#documentation": "

A string map that contains the following information for the service that you specify in\n ServiceId:

\n
    \n
  • \n

    The attributes that apply to the records that are defined in the service.

    \n
  • \n
  • \n

    For each attribute, the applicable value.

    \n
  • \n
\n \n

Do not include sensitive information in the attributes if the namespace is discoverable by public DNS\n queries.

\n
\n

The following are the supported attribute keys.

\n
\n
AWS_ALIAS_DNS_NAME
\n
\n

If you want Cloud Map to create an Amazon Route 53 alias record that routes traffic to an Elastic Load Balancing load\n balancer, specify the DNS name that's associated with the load balancer. For information about how to get the\n DNS name, see \"DNSName\" in the topic AliasTarget in the\n Route 53 API Reference.

\n

Note the following:

\n
    \n
  • \n

    The configuration for the service that's specified by ServiceId must include settings for\n an A record, an AAAA record, or both.

    \n
  • \n
  • \n

    In the service that's specified by ServiceId, the value of RoutingPolicy\n must be WEIGHTED.

    \n
  • \n
  • \n

    If the service that's specified by ServiceId includes HealthCheckConfig\n settings, Cloud Map will create the Route 53 health check, but it doesn't associate the health check with the\n alias record.

    \n
  • \n
  • \n

    Cloud Map currently doesn't support creating alias records that route traffic to Amazon Web Services\n resources other than Elastic Load Balancing load balancers.

    \n
  • \n
  • \n

    If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for any of the\n AWS_INSTANCE attributes.

    \n
  • \n
  • \n

    The AWS_ALIAS_DNS_NAME is not supported in the GovCloud (US) Regions.

    \n
  • \n
\n
\n
AWS_EC2_INSTANCE_ID
\n
\n

\n HTTP namespaces only. The Amazon EC2 instance ID for the instance. If the\n AWS_EC2_INSTANCE_ID attribute is specified, then the only other attribute that can be specified\n is AWS_INIT_HEALTH_STATUS. When the AWS_EC2_INSTANCE_ID attribute is specified,\n then the AWS_INSTANCE_IPV4 attribute will be filled out with the primary private IPv4\n address.

\n
\n
AWS_INIT_HEALTH_STATUS
\n
\n

If the service configuration includes HealthCheckCustomConfig, you can optionally use\n AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check,\n HEALTHY or UNHEALTHY. If you don't specify a value for\n AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

\n
\n
AWS_INSTANCE_CNAME
\n
\n

If the service configuration includes a CNAME record, the domain name that you want Route 53\n to return in response to DNS queries (for example, example.com).

\n

This value is required if the service specified by ServiceId includes settings for an\n CNAME record.

\n
\n
AWS_INSTANCE_IPV4
\n
\n

If the service configuration includes an A record, the IPv4 address that you want Route 53 to\n return in response to DNS queries (for example, 192.0.2.44).

\n

This value is required if the service specified by ServiceId includes settings for an\n A record. If the service includes settings for an SRV record, you must specify a\n value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

\n
\n
AWS_INSTANCE_IPV6
\n
\n

If the service configuration includes an AAAA record, the IPv6 address that you want Route 53\n to return in response to DNS queries (for example,\n 2001:0db8:85a3:0000:0000:abcd:0001:2345).

\n

This value is required if the service specified by ServiceId includes settings for an\n AAAA record. If the service includes settings for an SRV record, you must specify\n a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

\n
\n
AWS_INSTANCE_PORT
\n
\n

If the service includes an SRV record, the value that you want Route 53 to return for the\n port.

\n

If the service includes HealthCheckConfig, the port on the endpoint that you want Route 53 to\n send requests to.

\n

This value is required if you specified settings for an SRV record or a Route 53 health check\n when you created the service.

\n
\n
Custom attributes
\n
\n

You can add up to 30 custom attributes. For each key-value pair, the maximum length of the attribute\n name is 255 characters, and the maximum length of the attribute value is 1,024 characters. The total size of\n all provided attributes (sum of all keys and values) must not exceed 5,000 characters.

\n
\n
", "smithy.api#required": {} } } @@ -3155,7 +3168,7 @@ } }, "traits": { - "smithy.api#documentation": "

The operation can't be completed because you've reached the quota for the number of\n requests. For more information, see Cloud Map API request throttling quota in the\n Cloud Map Developer Guide.

", + "smithy.api#documentation": "

The operation can't be completed because you've reached the quota for the number of requests. For more\n information, see Cloud Map API request\n throttling quota in the Cloud Map Developer Guide.

", "smithy.api#error": "client", "smithy.api#httpError": 429 } @@ -3189,7 +3202,7 @@ } }, "traits": { - "smithy.api#documentation": "

The specified resource can't be deleted because it contains other resources. For example,\n you can't delete a service that contains any instances.

", + "smithy.api#documentation": "

The specified resource can't be deleted because it contains other resources. For example, you can't delete\n a service that contains any instances.

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -3202,7 +3215,7 @@ } }, "traits": { - "smithy.api#documentation": "

The resource can't be created because you've reached the quota on the number of\n resources.

", + "smithy.api#documentation": "

The resource can't be created because you've reached the quota on the number of resources.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -3330,7 +3343,7 @@ "name": "servicediscovery" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "Cloud Map\n

With Cloud Map, you can configure public DNS, private DNS, or HTTP namespaces that your\n microservice applications run in. When an instance becomes available, you can call the Cloud Map\n API to register the instance with Cloud Map. For public or private DNS namespaces, Cloud Map\n automatically creates DNS records and an optional health check. Clients that submit public or\n private DNS queries, or HTTP requests, for the service receive an answer that contains up to\n eight healthy records.

", + "smithy.api#documentation": "Cloud Map\n

With Cloud Map, you can configure public DNS, private DNS, or HTTP namespaces that your microservice\n applications run in. When an instance becomes available, you can call the Cloud Map API to register the\n instance with Cloud Map. For public or private DNS namespaces, Cloud Map automatically creates DNS records and\n an optional health check. Clients that submit public or private DNS queries, or HTTP requests, for the service\n receive an answer that contains up to eight healthy records.

", "smithy.api#title": "AWS Cloud Map", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -3374,7 +3387,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -3417,7 +3429,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -3430,7 +3443,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -3444,7 +3456,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -3467,7 +3478,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -3502,7 +3512,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -3513,14 +3522,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -3534,14 +3545,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -3550,11 +3559,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -3565,14 +3574,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -3586,7 +3597,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -3606,7 +3616,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -3692,14 +3701,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -3710,9 +3721,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -4398,13 +4411,13 @@ "TTL": { "target": "com.amazonaws.servicediscovery#RecordTTL", "traits": { - "smithy.api#documentation": "

The time to live\n (TTL) for purposes of negative caching.

", + "smithy.api#documentation": "

The time to live (TTL) for purposes\n of negative caching.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Start of Authority\n (SOA) properties for a public or private DNS namespace.

" + "smithy.api#documentation": "

Start of Authority (SOA) properties\n for a public or private DNS namespace.

" } }, "com.amazonaws.servicediscovery#SOAChange": { @@ -4413,13 +4426,13 @@ "TTL": { "target": "com.amazonaws.servicediscovery#RecordTTL", "traits": { - "smithy.api#documentation": "

The updated time to\n live (TTL) for purposes of negative caching.

", + "smithy.api#documentation": "

The updated time to live (TTL) for\n purposes of negative caching.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Updated Start of\n Authority (SOA) properties for a public or private DNS namespace.

" + "smithy.api#documentation": "

Updated Start of Authority (SOA)\n properties for a public or private DNS namespace.

" } }, "com.amazonaws.servicediscovery#Service": { @@ -4458,43 +4471,43 @@ "InstanceCount": { "target": "com.amazonaws.servicediscovery#ResourceCount", "traits": { - "smithy.api#documentation": "

The number of instances that are currently associated with the service. Instances that were\n previously associated with the service but that are deleted aren't included in the count. The\n count might not reflect pending registrations and deregistrations.

" + "smithy.api#documentation": "

The number of instances that are currently associated with the service. Instances that were previously\n associated with the service but that are deleted aren't included in the count. The count might not reflect\n pending registrations and deregistrations.

" } }, "DnsConfig": { "target": "com.amazonaws.servicediscovery#DnsConfig", "traits": { - "smithy.api#documentation": "

A complex type that contains information about the Route 53 DNS records that you want\n Cloud Map to create when you register an instance.

\n \n

The record types of a service can only be changed by deleting the service and recreating it\n with a new Dnsconfig.

\n
" + "smithy.api#documentation": "

A complex type that contains information about the Route 53 DNS records that you want Cloud Map to create\n when you register an instance.

\n \n

The record types of a service can only be changed by deleting the service and recreating it with a new\n Dnsconfig.

\n
" } }, "Type": { "target": "com.amazonaws.servicediscovery#ServiceType", "traits": { - "smithy.api#documentation": "

Describes the systems that can be used to discover the service instances.

\n
\n
DNS_HTTP
\n
\n

The service instances can be discovered using either DNS queries or the\n DiscoverInstances API operation.

\n
\n
HTTP
\n
\n

The service instances can only be discovered using the DiscoverInstances API\n operation.

\n
\n
DNS
\n
\n

Reserved.

\n
\n
" + "smithy.api#documentation": "

Describes the systems that can be used to discover the service instances.

\n
\n
DNS_HTTP
\n
\n

The service instances can be discovered using either DNS queries or the DiscoverInstances\n API operation.

\n
\n
HTTP
\n
\n

The service instances can only be discovered using the DiscoverInstances API\n operation.

\n
\n
DNS
\n
\n

Reserved.

\n
\n
" } }, "HealthCheckConfig": { "target": "com.amazonaws.servicediscovery#HealthCheckConfig", "traits": { - "smithy.api#documentation": "

\n Public DNS and HTTP namespaces only. A complex type that contains\n settings for an optional health check. If you specify settings for a health check, Cloud Map\n associates the health check with the records that you specify in DnsConfig.

\n

For information about the charges for health checks, see Amazon Route 53 Pricing.

" + "smithy.api#documentation": "

\n Public DNS and HTTP namespaces only. A complex type that contains settings for an\n optional health check. If you specify settings for a health check, Cloud Map associates the health check with\n the records that you specify in DnsConfig.

\n

For information about the charges for health checks, see Amazon Route 53 Pricing.

" } }, "HealthCheckCustomConfig": { "target": "com.amazonaws.servicediscovery#HealthCheckCustomConfig", "traits": { - "smithy.api#documentation": "

A complex type that contains information about an optional custom health check.

\n \n

If you specify a health check configuration, you can specify either\n HealthCheckCustomConfig or HealthCheckConfig but not both.

\n
" + "smithy.api#documentation": "

A complex type that contains information about an optional custom health check.

\n \n

If you specify a health check configuration, you can specify either HealthCheckCustomConfig\n or HealthCheckConfig but not both.

\n
" } }, "CreateDate": { "target": "com.amazonaws.servicediscovery#Timestamp", "traits": { - "smithy.api#documentation": "

The date and time that the service was created, in Unix format and Coordinated Universal\n Time (UTC). The value of CreateDate is accurate to milliseconds. For example, the\n value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" + "smithy.api#documentation": "

The date and time that the service was created, in Unix format and Coordinated Universal Time (UTC). The\n value of CreateDate is accurate to milliseconds. For example, the value 1516925490.087\n represents Friday, January 26, 2018 12:11:30.087 AM.

" } }, "CreatorRequestId": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

A unique string that identifies the request and that allows failed requests to be retried\n without the risk of running the operation twice. CreatorRequestId can be any unique\n string (for example, a date/timestamp).

" + "smithy.api#documentation": "

A unique string that identifies the request and that allows failed requests to be retried without the risk\n of running the operation twice. CreatorRequestId can be any unique string (for example, a\n date/timestamp).

" } } }, @@ -4539,13 +4552,13 @@ "DnsConfig": { "target": "com.amazonaws.servicediscovery#DnsConfigChange", "traits": { - "smithy.api#documentation": "

Information about the Route 53 DNS records that you want Cloud Map to create when you register\n an instance.

" + "smithy.api#documentation": "

Information about the Route 53 DNS records that you want Cloud Map to create when you register an\n instance.

" } }, "HealthCheckConfig": { "target": "com.amazonaws.servicediscovery#HealthCheckConfig", "traits": { - "smithy.api#documentation": "

\n Public DNS and HTTP namespaces only. Settings for an optional health\n check. If you specify settings for a health check, Cloud Map associates the health check with\n the records that you specify in DnsConfig.

" + "smithy.api#documentation": "

\n Public DNS and HTTP namespaces only. Settings for an optional health check. If you\n specify settings for a health check, Cloud Map associates the health check with the records that you specify in\n DnsConfig.

" } } }, @@ -4566,19 +4579,19 @@ "Values": { "target": "com.amazonaws.servicediscovery#FilterValues", "traits": { - "smithy.api#documentation": "

The values that are applicable to the value that you specify for Condition to\n filter the list of services.

", + "smithy.api#documentation": "

The values that are applicable to the value that you specify for Condition to filter the list\n of services.

", "smithy.api#required": {} } }, "Condition": { "target": "com.amazonaws.servicediscovery#FilterCondition", "traits": { - "smithy.api#documentation": "

The operator that you want to use to determine whether a service is returned by\n ListServices. Valid values for Condition include the following:

\n
    \n
  • \n

    \n EQ: When you specify EQ, specify one namespace ID for\n Values. EQ is the default condition and can be omitted.

    \n
  • \n
" + "smithy.api#documentation": "

The operator that you want to use to determine whether a service is returned by ListServices.\n Valid values for Condition include the following:

\n
    \n
  • \n

    \n EQ: When you specify EQ, specify one namespace ID for Values.\n EQ is the default condition and can be omitted.

    \n
  • \n
" } } }, "traits": { - "smithy.api#documentation": "

A complex type that lets you specify the namespaces that you want to list services\n for.

" + "smithy.api#documentation": "

A complex type that lets you specify the namespaces that you want to list services for.

" } }, "com.amazonaws.servicediscovery#ServiceFilterName": { @@ -4650,7 +4663,7 @@ "Type": { "target": "com.amazonaws.servicediscovery#ServiceType", "traits": { - "smithy.api#documentation": "

Describes the systems that can be used to discover the service instances.

\n
\n
DNS_HTTP
\n
\n

The service instances can be discovered using either DNS queries or the\n DiscoverInstances API operation.

\n
\n
HTTP
\n
\n

The service instances can only be discovered using the DiscoverInstances API\n operation.

\n
\n
DNS
\n
\n

Reserved.

\n
\n
" + "smithy.api#documentation": "

Describes the systems that can be used to discover the service instances.

\n
\n
DNS_HTTP
\n
\n

The service instances can be discovered using either DNS queries or the DiscoverInstances\n API operation.

\n
\n
HTTP
\n
\n

The service instances can only be discovered using the DiscoverInstances API\n operation.

\n
\n
DNS
\n
\n

Reserved.

\n
\n
" } }, "Description": { @@ -4662,25 +4675,25 @@ "InstanceCount": { "target": "com.amazonaws.servicediscovery#ResourceCount", "traits": { - "smithy.api#documentation": "

The number of instances that are currently associated with the service. Instances that were\n previously associated with the service but that are deleted aren't included in the count. The\n count might not reflect pending registrations and deregistrations.

" + "smithy.api#documentation": "

The number of instances that are currently associated with the service. Instances that were previously\n associated with the service but that are deleted aren't included in the count. The count might not reflect\n pending registrations and deregistrations.

" } }, "DnsConfig": { "target": "com.amazonaws.servicediscovery#DnsConfig", "traits": { - "smithy.api#documentation": "

Information about the Route 53 DNS records that you want Cloud Map to create when you register\n an instance.

" + "smithy.api#documentation": "

Information about the Route 53 DNS records that you want Cloud Map to create when you register an\n instance.

" } }, "HealthCheckConfig": { "target": "com.amazonaws.servicediscovery#HealthCheckConfig", "traits": { - "smithy.api#documentation": "

\n Public DNS and HTTP namespaces only. Settings for an optional health\n check. If you specify settings for a health check, Cloud Map associates the health check with\n the records that you specify in DnsConfig.

" + "smithy.api#documentation": "

\n Public DNS and HTTP namespaces only. Settings for an optional health check. If you\n specify settings for a health check, Cloud Map associates the health check with the records that you specify in\n DnsConfig.

" } }, "HealthCheckCustomConfig": { "target": "com.amazonaws.servicediscovery#HealthCheckCustomConfig", "traits": { - "smithy.api#documentation": "

Information about an optional custom health check. A custom health check, which requires\n that you use a third-party health checker to evaluate the health of your resources, is useful in\n the following circumstances:

\n
    \n
  • \n

    You can't use a health check that's defined by HealthCheckConfig because the\n resource isn't available over the internet. For example, you can use a custom health check when\n the instance is in an Amazon VPC. (To check the health of resources in a VPC, the health\n checker must also be in the VPC.)

    \n
  • \n
  • \n

    You want to use a third-party health checker regardless of where your resources are\n located.

    \n
  • \n
\n \n

If you specify a health check configuration, you can specify either\n HealthCheckCustomConfig or HealthCheckConfig but not both.

\n
" + "smithy.api#documentation": "

Information about an optional custom health check. A custom health check, which requires that you use a\n third-party health checker to evaluate the health of your resources, is useful in the following\n circumstances:

\n
    \n
  • \n

    You can't use a health check that's defined by HealthCheckConfig because the resource isn't\n available over the internet. For example, you can use a custom health check when the instance is in an Amazon\n VPC. (To check the health of resources in a VPC, the health checker must also be in the VPC.)

    \n
  • \n
  • \n

    You want to use a third-party health checker regardless of where your resources are located.

    \n
  • \n
\n \n

If you specify a health check configuration, you can specify either HealthCheckCustomConfig\n or HealthCheckConfig but not both.

\n
" } }, "CreateDate": { @@ -4741,7 +4754,7 @@ "Value": { "target": "com.amazonaws.servicediscovery#TagValue", "traits": { - "smithy.api#documentation": "

The string value that's associated with the key of the tag. You can set the value of a tag\n to an empty string, but you can't set the value of a tag to null.

", + "smithy.api#documentation": "

The string value that's associated with the key of the tag. You can set the value of a tag to an empty\n string, but you can't set the value of a tag to null.

", "smithy.api#required": {} } } @@ -4839,7 +4852,7 @@ "Tags": { "target": "com.amazonaws.servicediscovery#TagList", "traits": { - "smithy.api#documentation": "

The tags to add to the specified resource. Specifying the tag key is required. You can set\n the value of a tag to an empty string, but you can't set the value of a tag to null.

", + "smithy.api#documentation": "

The tags to add to the specified resource. Specifying the tag key is required. You can set the value of a\n tag to an empty string, but you can't set the value of a tag to null.

", "smithy.api#required": {} } } @@ -4881,7 +4894,7 @@ } }, "traits": { - "smithy.api#documentation": "

The list of tags on the resource is over the quota. The maximum number of tags that can be\n applied to a resource is 50.

", + "smithy.api#documentation": "

The list of tags on the resource is over the quota. The maximum number of tags that can be applied to a\n resource is 50.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -4972,7 +4985,22 @@ } ], "traits": { - "smithy.api#documentation": "

Updates an HTTP\n namespace.

" + "smithy.api#documentation": "

Updates an HTTP\n namespace.

", + "smithy.api#examples": [ + { + "title": "To update a HTTP namespace", + "documentation": "The following example updates the description of a HTTP namespace.", + "input": { + "Id": "ns-vh4nbmEXAMPLE", + "Namespace": { + "Description": "The updated namespace description." + } + }, + "output": { + "OperationId": "ft52xe2koxhoeormaceymagglsdjyvEXAMPLE" + } + } + ] } }, "com.amazonaws.servicediscovery#UpdateHttpNamespaceRequest": { @@ -4981,21 +5009,21 @@ "Id": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the\n namespace that you want to update.

", + "smithy.api#documentation": "

The ID of the namespace that you\n want to update.

", "smithy.api#required": {} } }, "UpdaterRequestId": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

A unique string that\n identifies the request and that allows failed UpdateHttpNamespace requests to be\n retried without the risk of running the operation twice. UpdaterRequestId can be any\n unique string (for example, a date/timestamp).

", + "smithy.api#documentation": "

A unique string that identifies the\n request and that allows failed UpdateHttpNamespace requests to be retried without the risk of\n running the operation twice. UpdaterRequestId can be any unique string (for example, a\n date/timestamp).

", "smithy.api#idempotencyToken": {} } }, "Namespace": { "target": "com.amazonaws.servicediscovery#HttpNamespaceChange", "traits": { - "smithy.api#documentation": "

Updated properties\n for the the HTTP namespace.

", + "smithy.api#documentation": "

Updated properties for the the HTTP\n namespace.

", "smithy.api#required": {} } } @@ -5041,7 +5069,7 @@ } ], "traits": { - "smithy.api#documentation": "

Submits a request to change the health status of a custom health check to healthy or\n unhealthy.

\n

You can use UpdateInstanceCustomHealthStatus to change the status only for\n custom health checks, which you define using HealthCheckCustomConfig when you create\n a service. You can't use it to change the status for Route 53 health checks, which you define using\n HealthCheckConfig.

\n

For more information, see HealthCheckCustomConfig.

", + "smithy.api#documentation": "

Submits a request to change the health status of a custom health check to healthy or unhealthy.

\n

You can use UpdateInstanceCustomHealthStatus to change the status only for custom health\n checks, which you define using HealthCheckCustomConfig when you create a service. You can't use it\n to change the status for Route 53 health checks, which you define using HealthCheckConfig.

\n

For more information, see HealthCheckCustomConfig.

", "smithy.api#examples": [ { "title": "UpdateInstanceCustomHealthStatus Example", @@ -5061,7 +5089,7 @@ "ServiceId": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the service that includes the configuration for the custom health check that you\n want to change the status for.

", + "smithy.api#documentation": "

The ID of the service that includes the configuration for the custom health check that you want to change\n the status for.

", "smithy.api#required": {} } }, @@ -5107,7 +5135,37 @@ } ], "traits": { - "smithy.api#documentation": "

Updates a private DNS\n namespace.

" + "smithy.api#documentation": "

Updates a private DNS\n namespace.

", + "smithy.api#examples": [ + { + "title": "To update a private DNS namespace", + "documentation": "The following example updates the description of a private DNS namespace.", + "input": { + "Id": "ns-bk3aEXAMPLE", + "UpdaterRequestId": "", + "Namespace": { + "Description": "The updated namespace description." + } + }, + "output": { + "OperationId": "ft52xe2koxhoeormaceymagglsdjyvEXAMPLE" + } + }, + { + "title": "To update a public DNS namespace", + "documentation": "The following example updates the description of a public DNS namespace.", + "input": { + "Id": "ns-bk3aEXAMPLE", + "UpdaterRequestId": "", + "Namespace": { + "Description": "The updated namespace description." + } + }, + "output": { + "OperationId": "ft52xe2koxhoeormaceymagglsdjEXAMPLE" + } + } + ] } }, "com.amazonaws.servicediscovery#UpdatePrivateDnsNamespaceRequest": { @@ -5116,21 +5174,21 @@ "Id": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the\n namespace that you want to update.

", + "smithy.api#documentation": "

The ID of the namespace that you\n want to update.

", "smithy.api#required": {} } }, "UpdaterRequestId": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

A unique string that\n identifies the request and that allows failed UpdatePrivateDnsNamespace requests to\n be retried without the risk of running the operation twice. UpdaterRequestId can be\n any unique string (for example, a date/timestamp).

", + "smithy.api#documentation": "

A unique string that identifies the\n request and that allows failed UpdatePrivateDnsNamespace requests to be retried without the risk of\n running the operation twice. UpdaterRequestId can be any unique string (for example, a\n date/timestamp).

", "smithy.api#idempotencyToken": {} } }, "Namespace": { "target": "com.amazonaws.servicediscovery#PrivateDnsNamespaceChange", "traits": { - "smithy.api#documentation": "

Updated properties\n for the private DNS namespace.

", + "smithy.api#documentation": "

Updated properties for the private\n DNS namespace.

", "smithy.api#required": {} } } @@ -5185,21 +5243,21 @@ "Id": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

The ID of the\n namespace being updated.

", + "smithy.api#documentation": "

The ID of the namespace being\n updated.

", "smithy.api#required": {} } }, "UpdaterRequestId": { "target": "com.amazonaws.servicediscovery#ResourceId", "traits": { - "smithy.api#documentation": "

A unique string that\n identifies the request and that allows failed UpdatePublicDnsNamespace requests to\n be retried without the risk of running the operation twice. UpdaterRequestId can be\n any unique string (for example, a date/timestamp).

", + "smithy.api#documentation": "

A unique string that identifies the\n request and that allows failed UpdatePublicDnsNamespace requests to be retried without the risk of\n running the operation twice. UpdaterRequestId can be any unique string (for example, a\n date/timestamp).

", "smithy.api#idempotencyToken": {} } }, "Namespace": { "target": "com.amazonaws.servicediscovery#PublicDnsNamespaceChange", "traits": { - "smithy.api#documentation": "

Updated properties\n for the public DNS namespace.

", + "smithy.api#documentation": "

Updated properties for the public\n DNS namespace.

", "smithy.api#required": {} } } @@ -5242,7 +5300,7 @@ } ], "traits": { - "smithy.api#documentation": "

Submits a request to perform the following operations:

\n
    \n
  • \n

    Update the TTL setting for existing DnsRecords configurations

    \n
  • \n
  • \n

    Add, update, or delete HealthCheckConfig for a specified service

    \n \n

    You can't add, update, or delete a HealthCheckCustomConfig\n configuration.

    \n
    \n
  • \n
\n

For public and private DNS namespaces, note the following:

\n
    \n
  • \n

    If you omit any existing DnsRecords or HealthCheckConfig\n configurations from an UpdateService request, the configurations are deleted from\n the service.

    \n
  • \n
  • \n

    If you omit an existing HealthCheckCustomConfig configuration from an\n UpdateService request, the configuration isn't deleted from the service.

    \n
  • \n
\n

When you update settings for a service, Cloud Map also updates the corresponding settings\n in all the records and health checks that were created by using the specified service.

", + "smithy.api#documentation": "

Submits a request to perform the following operations:

\n
    \n
  • \n

    Update the TTL setting for existing DnsRecords configurations

    \n
  • \n
  • \n

    Add, update, or delete HealthCheckConfig for a specified service

    \n \n

    You can't add, update, or delete a HealthCheckCustomConfig configuration.

    \n
    \n
  • \n
\n

For public and private DNS namespaces, note the following:

\n
    \n
  • \n

    If you omit any existing DnsRecords or HealthCheckConfig configurations from an\n UpdateService request, the configurations are deleted from the service.

    \n
  • \n
  • \n

    If you omit an existing HealthCheckCustomConfig configuration from an\n UpdateService request, the configuration isn't deleted from the service.

    \n
  • \n
\n

When you update settings for a service, Cloud Map also updates the corresponding settings in all the\n records and health checks that were created by using the specified service.

", "smithy.api#examples": [ { "title": "UpdateService Example", diff --git a/models/sesv2.json b/models/sesv2.json index 68f31c8d7d..95bdbe5fa2 100644 --- a/models/sesv2.json +++ b/models/sesv2.json @@ -460,6 +460,12 @@ "traits": { "smithy.api#documentation": "

The ReplacementEmailContent associated with a\n BulkEmailEntry.

" } + }, + "ReplacementHeaders": { + "target": "com.amazonaws.sesv2#MessageHeaderList", + "traits": { + "smithy.api#documentation": "

The list of message headers associated with the BulkEmailEntry data type.

\n
    \n
  • \n

    Headers Not Present in BulkEmailEntry: If a header is specified in\n \n Template\n but not in BulkEmailEntry, the header\n from Template will be added to the outgoing email.

    \n
  • \n
  • \n

    Headers Present in BulkEmailEntry: If a header is specified in\n BulkEmailEntry, it takes precedence over any header of the same name specified\n in \n Template\n :

    \n
      \n
    • \n

      If the header is also defined within Template,\n the value from BulkEmailEntry will replace the header's\n value in the email.

      \n
    • \n
    • \n

      If the header is not defined within Template,\n it will simply be added to the email as specified in\n BulkEmailEntry.

      \n
    • \n
    \n
  • \n
" + } } } }, @@ -6276,8 +6282,8 @@ "traits": { "smithy.api#documentation": "

Lists the contacts present in a specific contact list.

", "smithy.api#http": { - "method": "GET", - "uri": "/v2/email/contact-lists/{ContactListName}/contacts", + "method": "POST", + "uri": "/v2/email/contact-lists/{ContactListName}/contacts/list", "code": 200 }, "smithy.api#paginated": { @@ -6327,15 +6333,13 @@ "PageSize": { "target": "com.amazonaws.sesv2#MaxItems", "traits": { - "smithy.api#documentation": "

The number of contacts that may be returned at once, which is dependent on if there\n are more or less contacts than the value of the PageSize. Use this parameter to paginate\n results. If additional contacts exist beyond the specified limit, the\n NextToken element is sent in the response. Use the\n NextToken value in subsequent requests to retrieve additional\n contacts.

", - "smithy.api#httpQuery": "PageSize" + "smithy.api#documentation": "

The number of contacts that may be returned at once, which is dependent on if there\n are more or less contacts than the value of the PageSize. Use this parameter to paginate\n results. If additional contacts exist beyond the specified limit, the\n NextToken element is sent in the response. Use the\n NextToken value in subsequent requests to retrieve additional\n contacts.

" } }, "NextToken": { "target": "com.amazonaws.sesv2#NextToken", "traits": { - "smithy.api#documentation": "

A string token indicating that there might be additional contacts available to be\n listed. Use the token provided in the Response to use in the subsequent call to\n ListContacts with the same parameters to retrieve the next page of contacts.

", - "smithy.api#httpQuery": "NextToken" + "smithy.api#documentation": "

A string token indicating that there might be additional contacts available to be\n listed. Use the token provided in the Response to use in the subsequent call to\n ListContacts with the same parameters to retrieve the next page of contacts.

" } } }, @@ -6942,8 +6946,8 @@ "traits": { "smithy.api#documentation": "

Lists all of the import jobs.

", "smithy.api#http": { - "method": "GET", - "uri": "/v2/email/import-jobs", + "method": "POST", + "uri": "/v2/email/import-jobs/list", "code": 200 }, "smithy.api#paginated": { @@ -6965,15 +6969,13 @@ "NextToken": { "target": "com.amazonaws.sesv2#NextToken", "traits": { - "smithy.api#documentation": "

A string token indicating that there might be additional import jobs available to be\n listed. Copy this token to a subsequent call to ListImportJobs with the\n same parameters to retrieve the next page of import jobs.

", - "smithy.api#httpQuery": "NextToken" + "smithy.api#documentation": "

A string token indicating that there might be additional import jobs available to be\n listed. Copy this token to a subsequent call to ListImportJobs with the\n same parameters to retrieve the next page of import jobs.

" } }, "PageSize": { "target": "com.amazonaws.sesv2#MaxItems", "traits": { - "smithy.api#documentation": "

Maximum number of import jobs to return at once. Use this parameter to paginate\n results. If additional import jobs exist beyond the specified limit, the\n NextToken element is sent in the response. Use the\n NextToken value in subsequent requests to retrieve additional\n addresses.

", - "smithy.api#httpQuery": "PageSize" + "smithy.api#documentation": "

Maximum number of import jobs to return at once. Use this parameter to paginate\n results. If additional import jobs exist beyond the specified limit, the\n NextToken element is sent in the response. Use the\n NextToken value in subsequent requests to retrieve additional\n addresses.

" } } }, diff --git a/models/sfn.json b/models/sfn.json index a87b87d519..2ba9e6cc3f 100644 --- a/models/sfn.json +++ b/models/sfn.json @@ -140,6 +140,9 @@ }, { "target": "com.amazonaws.sfn#UpdateStateMachineAlias" + }, + { + "target": "com.amazonaws.sfn#ValidateStateMachineDefinition" } ], "traits": { @@ -5304,6 +5307,9 @@ }, { "target": "com.amazonaws.sfn#InvalidArn" + }, + { + "target": "com.amazonaws.sfn#ValidationException" } ], "traits": { @@ -7193,6 +7199,144 @@ "smithy.api#output": {} } }, + "com.amazonaws.sfn#ValidateStateMachineDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.sfn#ValidateStateMachineDefinitionInput" + }, + "output": { + "target": "com.amazonaws.sfn#ValidateStateMachineDefinitionOutput" + }, + "errors": [ + { + "target": "com.amazonaws.sfn#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Validates the syntax of a state machine definition.

\n

You can validate that a state machine definition is correct without \n creating a state machine resource. Step Functions will implicitly perform the same\n syntax check when you invoke CreateStateMachine and\n UpdateStateMachine. State machine definitions are specified using a\n JSON-based, structured language. For more information on Amazon States Language see Amazon States Language (ASL).

\n

Suggested uses for ValidateStateMachineDefinition:

\n
    \n
  • \n

    Integrate automated checks into your code review or Continuous Integration\n (CI) process to validate state machine definitions before starting\n deployments.

    \n
  • \n
  • \n

    Run the validation from a Git pre-commit hook to check your state machine\n definitions before committing them to your source repository.

    \n
  • \n
\n \n

Errors found in the state machine definition will be returned in the response as a list of diagnostic elements, rather than raise an exception.

\n
" + } + }, + "com.amazonaws.sfn#ValidateStateMachineDefinitionCode": { + "type": "string" + }, + "com.amazonaws.sfn#ValidateStateMachineDefinitionDiagnostic": { + "type": "structure", + "members": { + "severity": { + "target": "com.amazonaws.sfn#ValidateStateMachineDefinitionSeverity", + "traits": { + "smithy.api#documentation": "

A value of ERROR means that you cannot create or update a state machine with this definition.

", + "smithy.api#required": {} + } + }, + "code": { + "target": "com.amazonaws.sfn#ValidateStateMachineDefinitionCode", + "traits": { + "smithy.api#documentation": "

Identifying code for the diagnostic.

", + "smithy.api#required": {} + } + }, + "message": { + "target": "com.amazonaws.sfn#ValidateStateMachineDefinitionMessage", + "traits": { + "smithy.api#documentation": "

Message describing the diagnostic condition.

", + "smithy.api#required": {} + } + }, + "location": { + "target": "com.amazonaws.sfn#ValidateStateMachineDefinitionLocation", + "traits": { + "smithy.api#documentation": "

Location of the issue in the state machine, if available.

\n

For errors specific to a field, the location could be in the format: /States//, for example: /States/FailState/ErrorPath.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes an error found during validation. Validation errors found in the definition\n return in the response as diagnostic elements, rather\n than raise an exception.

" + } + }, + "com.amazonaws.sfn#ValidateStateMachineDefinitionDiagnosticList": { + "type": "list", + "member": { + "target": "com.amazonaws.sfn#ValidateStateMachineDefinitionDiagnostic" + } + }, + "com.amazonaws.sfn#ValidateStateMachineDefinitionInput": { + "type": "structure", + "members": { + "definition": { + "target": "com.amazonaws.sfn#Definition", + "traits": { + "smithy.api#documentation": "

The Amazon States Language definition of the state machine. For more information, see\n Amazon States Language (ASL).

", + "smithy.api#required": {} + } + }, + "type": { + "target": "com.amazonaws.sfn#StateMachineType", + "traits": { + "smithy.api#documentation": "

The target type of state machine for this definition. The default is STANDARD.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sfn#ValidateStateMachineDefinitionLocation": { + "type": "string" + }, + "com.amazonaws.sfn#ValidateStateMachineDefinitionMessage": { + "type": "string" + }, + "com.amazonaws.sfn#ValidateStateMachineDefinitionOutput": { + "type": "structure", + "members": { + "result": { + "target": "com.amazonaws.sfn#ValidateStateMachineDefinitionResultCode", + "traits": { + "smithy.api#documentation": "

The result value will be OK when no syntax errors are found, or\n FAIL if the workflow definition does not pass verification.

", + "smithy.api#required": {} + } + }, + "diagnostics": { + "target": "com.amazonaws.sfn#ValidateStateMachineDefinitionDiagnosticList", + "traits": { + "smithy.api#documentation": "

If the result is OK, this field will be empty. When there are errors,\n this field will contain an array of Diagnostic objects\n to help you troubleshoot.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.sfn#ValidateStateMachineDefinitionResultCode": { + "type": "enum", + "members": { + "OK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OK" + } + }, + "FAIL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAIL" + } + } + } + }, + "com.amazonaws.sfn#ValidateStateMachineDefinitionSeverity": { + "type": "enum", + "members": { + "ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ERROR" + } + } + } + }, "com.amazonaws.sfn#ValidationException": { "type": "structure", "members": { diff --git a/models/signer.json b/models/signer.json index e8130694a0..0977eb8bf9 100644 --- a/models/signer.json +++ b/models/signer.json @@ -115,7 +115,7 @@ "action": { "target": "com.amazonaws.signer#String", "traits": { - "smithy.api#documentation": "

The AWS Signer action permitted as part of cross-account permissions.

", + "smithy.api#documentation": "

For cross-account signing. Grant a designated account permission to perform one or more of the following actions. Each action is associated with a specific API's operations. For more information about cross-account signing, see Using cross-account signing with signing profiles in the AWS Signer Developer Guide.

\n\t\t

You can designate the following actions to an account.

\n\t\t
    \n
  • \n

    \n signer:StartSigningJob. This action isn't supported for container image workflows. For details, see StartSigningJob.

    \n
  • \n
  • \n

    \n signer:SignPayload. This action isn't supported for AWS Lambda workflows. For details, see SignPayload\n

    \n
  • \n
  • \n

    \n signer:GetSigningProfile. For details, see GetSigningProfile.

    \n
  • \n
  • \n

    \n signer:RevokeSignature. For details, see RevokeSignature.

    \n
  • \n
", "smithy.api#required": {} } }, @@ -2677,7 +2677,7 @@ } ], "traits": { - "smithy.api#documentation": "

Initiates a signing job to be performed on the code provided. Signing jobs are\n\t\t\tviewable by the ListSigningJobs operation for two years after they are\n\t\t\tperformed. Note the following requirements:

\n\t\t
    \n
  • \n\t\t\t\t

    You must create an Amazon S3 source bucket. For more information, see Creating a Bucket in the\n\t\t\t\t\t\tAmazon S3 Getting Started Guide.

    \n\t\t\t
  • \n
  • \n\t\t\t\t

    Your S3 source bucket must be version enabled.

    \n\t\t\t
  • \n
  • \n\t\t\t\t

    You must create an S3 destination bucket. AWS Signer uses your S3 destination bucket to\n\t\t\t\t\twrite your signed code.

    \n\t\t\t
  • \n
  • \n\t\t\t\t

    You specify the name of the source and destination buckets when calling the\n\t\t\t\t\t\tStartSigningJob operation.

    \n\t\t\t
  • \n
  • \n\t\t\t\t

    You must also specify a request token that identifies your request to Signer.

    \n\t\t\t
  • \n
\n\t\t

You can call the DescribeSigningJob and the ListSigningJobs actions after you call\n\t\t\tStartSigningJob.

\n\t\t

For a Java example that shows how to use this action, see StartSigningJob.

", + "smithy.api#documentation": "

Initiates a signing job to be performed on the code provided. Signing jobs are\n\t\t\tviewable by the ListSigningJobs operation for two years after they are\n\t\t\tperformed. Note the following requirements:

\n\t\t
    \n
  • \n\t\t\t\t

    You must create an Amazon S3 source bucket. For more information, see Creating a Bucket in the\n\t\t\t\t\t\tAmazon S3 Getting Started Guide.

    \n\t\t\t
  • \n
  • \n\t\t\t\t

    Your S3 source bucket must be version enabled.

    \n\t\t\t
  • \n
  • \n\t\t\t\t

    You must create an S3 destination bucket. AWS Signer uses your S3 destination bucket to\n\t\t\t\t\twrite your signed code.

    \n\t\t\t
  • \n
  • \n\t\t\t\t

    You specify the name of the source and destination buckets when calling the\n\t\t\t\t\t\tStartSigningJob operation.

    \n\t\t\t
  • \n
  • \n\t\t\t\t

    You must ensure the S3 buckets are from the same Region as the signing profile. Cross-Region signing isn't supported.

    \n\t\t\t
  • \n
  • \n\t\t\t\t

    You must also specify a request token that identifies your request to Signer.

    \n\t\t\t
  • \n
\n\t\t

You can call the DescribeSigningJob and the ListSigningJobs actions after you call\n\t\t\tStartSigningJob.

\n\t\t

For a Java example that shows how to use this action, see StartSigningJob.

", "smithy.api#http": { "method": "POST", "uri": "/signing-jobs", diff --git a/models/ssm.json b/models/ssm.json index 7fb525c864..9622ad1d88 100644 --- a/models/ssm.json +++ b/models/ssm.json @@ -533,6 +533,9 @@ { "target": "com.amazonaws.ssm#DescribeInstancePatchStatesForPatchGroup" }, + { + "target": "com.amazonaws.ssm#DescribeInstanceProperties" + }, { "target": "com.amazonaws.ssm#DescribeInventoryDeletions" }, @@ -1868,6 +1871,15 @@ } } }, + "com.amazonaws.ssm#Architecture": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 120 + } + } + }, "com.amazonaws.ssm#AssociateOpsItemRelatedItem": { "type": "operation", "input": { @@ -6186,7 +6198,7 @@ "Name": { "target": "com.amazonaws.ssm#DocumentName", "traits": { - "smithy.api#documentation": "

A name for the SSM document.

\n \n

You can't use the following strings as document name prefixes. These are reserved by Amazon Web Services\n for use as document name prefixes:

\n
    \n
  • \n

    \n aws\n

    \n
  • \n
  • \n

    \n amazon\n

    \n
  • \n
  • \n

    \n amzn\n

    \n
  • \n
\n
", + "smithy.api#documentation": "

A name for the SSM document.

\n \n

You can't use the following strings as document name prefixes. These are reserved by Amazon Web Services\n for use as document name prefixes:

\n
    \n
  • \n

    \n aws\n

    \n
  • \n
  • \n

    \n amazon\n

    \n
  • \n
  • \n

    \n amzn\n

    \n
  • \n
  • \n

    \n AWSEC2\n

    \n
  • \n
  • \n

    \n AWSConfigRemediation\n

    \n
  • \n
  • \n

    \n AWSSupport\n

    \n
  • \n
\n
", "smithy.api#required": {} } }, @@ -6287,7 +6299,7 @@ "StartDate": { "target": "com.amazonaws.ssm#MaintenanceWindowStringDateTime", "traits": { - "smithy.api#documentation": "

The date and time, in ISO-8601 Extended format, for when you want the maintenance window to\n become active. StartDate allows you to delay activation of the maintenance window\n until the specified future date.

" + "smithy.api#documentation": "

The date and time, in ISO-8601 Extended format, for when you want the maintenance window to\n become active. StartDate allows you to delay activation of the maintenance window\n until the specified future date.

\n \n

When using a rate schedule, if you provide a start date that occurs in the past, the\n current date and time are used as the start date.

\n
" } }, "EndDate": { @@ -9058,6 +9070,108 @@ "smithy.api#output": {} } }, + "com.amazonaws.ssm#DescribeInstanceProperties": { + "type": "operation", + "input": { + "target": "com.amazonaws.ssm#DescribeInstancePropertiesRequest" + }, + "output": { + "target": "com.amazonaws.ssm#DescribeInstancePropertiesResult" + }, + "errors": [ + { + "target": "com.amazonaws.ssm#InternalServerError" + }, + { + "target": "com.amazonaws.ssm#InvalidActivationId" + }, + { + "target": "com.amazonaws.ssm#InvalidDocument" + }, + { + "target": "com.amazonaws.ssm#InvalidFilterKey" + }, + { + "target": "com.amazonaws.ssm#InvalidInstanceId" + }, + { + "target": "com.amazonaws.ssm#InvalidInstancePropertyFilterValue" + }, + { + "target": "com.amazonaws.ssm#InvalidNextToken" + } + ], + "traits": { + "smithy.api#documentation": "

An API operation used by the Systems Manager console to display information about Systems Manager managed nodes.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "InstanceProperties", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.ssm#DescribeInstancePropertiesMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 1000 + } + } + }, + "com.amazonaws.ssm#DescribeInstancePropertiesRequest": { + "type": "structure", + "members": { + "InstancePropertyFilterList": { + "target": "com.amazonaws.ssm#InstancePropertyFilterList", + "traits": { + "smithy.api#documentation": "

An array of instance property filters.

" + } + }, + "FiltersWithOperator": { + "target": "com.amazonaws.ssm#InstancePropertyStringFilterList", + "traits": { + "smithy.api#documentation": "

The request filters to use with the operator.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.ssm#DescribeInstancePropertiesMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of items to return for the call. The call also returns a token that you\n can specify in a subsequent call to get the next set of results.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ssm#NextToken", + "traits": { + "smithy.api#documentation": "

The token provided by a previous request to use to return the next set of properties.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ssm#DescribeInstancePropertiesResult": { + "type": "structure", + "members": { + "InstanceProperties": { + "target": "com.amazonaws.ssm#InstanceProperties", + "traits": { + "smithy.api#documentation": "

Properties for the managed instances.

" + } + }, + "NextToken": { + "target": "com.amazonaws.ssm#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of properties to return. Use this token to get the next set of\n results.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.ssm#DescribeInventoryDeletions": { "type": "operation", "input": { @@ -13900,7 +14014,7 @@ "Names": { "target": "com.amazonaws.ssm#ParameterNameList", "traits": { - "smithy.api#documentation": "

The names or Amazon Resource Names (ARNs) of the parameters that you want to query. For\n parameters shared with you from another account, you must use the full ARNs.

\n

To query by parameter label, use \"Name\": \"name:label\". To query by parameter\n version, use \"Name\": \"name:version\".

\n

For more information about shared parameters, see Working with\n shared parameters in the Amazon Web Services Systems Manager User Guide.

", + "smithy.api#documentation": "

The names or Amazon Resource Names (ARNs) of the parameters that you want to query. For\n parameters shared with you from another account, you must use the full ARNs.

\n

To query by parameter label, use \"Name\": \"name:label\". To query by parameter\n version, use \"Name\": \"name:version\".

\n \n

The results for GetParameters requests are listed in alphabetical order in\n query responses.

\n
\n

For information about shared parameters, see Working with\n shared parameters in the Amazon Web Services Systems Manager User Guide.

", "smithy.api#required": {} } }, @@ -14921,6 +15035,15 @@ } } }, + "com.amazonaws.ssm#InstanceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 255 + } + } + }, "com.amazonaws.ssm#InstancePatchState": { "type": "structure", "members": { @@ -15190,6 +15313,403 @@ } } }, + "com.amazonaws.ssm#InstanceProperties": { + "type": "list", + "member": { + "target": "com.amazonaws.ssm#InstanceProperty", + "traits": { + "smithy.api#xmlName": "InstanceProperty" + } + } + }, + "com.amazonaws.ssm#InstanceProperty": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.ssm#InstanceName", + "traits": { + "smithy.api#documentation": "

The value of the EC2 Name tag associated with the node. If a Name tag hasn't been applied to the node, this value is blank.

" + } + }, + "InstanceId": { + "target": "com.amazonaws.ssm#InstanceId", + "traits": { + "smithy.api#documentation": "

The ID of the managed node.

" + } + }, + "InstanceType": { + "target": "com.amazonaws.ssm#InstanceType", + "traits": { + "smithy.api#documentation": "

The instance type of the managed node. For example, t3.large.

" + } + }, + "InstanceRole": { + "target": "com.amazonaws.ssm#InstanceRole", + "traits": { + "smithy.api#documentation": "

The instance profile attached to the node. If an instance profile isn't attached to the node, this value is blank.

" + } + }, + "KeyName": { + "target": "com.amazonaws.ssm#KeyName", + "traits": { + "smithy.api#documentation": "

The name of the key pair associated with the node. If a key pair isnt't associated with the node, this value is blank.

" + } + }, + "InstanceState": { + "target": "com.amazonaws.ssm#InstanceState", + "traits": { + "smithy.api#documentation": "

The current state of the node.

" + } + }, + "Architecture": { + "target": "com.amazonaws.ssm#Architecture", + "traits": { + "smithy.api#documentation": "

The CPU architecture of the node. For example, x86_64.

" + } + }, + "IPAddress": { + "target": "com.amazonaws.ssm#IPAddress", + "traits": { + "smithy.api#documentation": "

The public IPv4 address assigned to the node. If a public IPv4 address isn't assigned to the node, this value is blank.

" + } + }, + "LaunchTime": { + "target": "com.amazonaws.ssm#DateTime", + "traits": { + "smithy.api#documentation": "

The timestamp for when the node was launched.

" + } + }, + "PingStatus": { + "target": "com.amazonaws.ssm#PingStatus", + "traits": { + "smithy.api#documentation": "

Connection status of the SSM Agent on the managed node.

" + } + }, + "LastPingDateTime": { + "target": "com.amazonaws.ssm#DateTime", + "traits": { + "smithy.api#documentation": "

The date and time when the SSM Agent last pinged the Systems Manager service.

" + } + }, + "AgentVersion": { + "target": "com.amazonaws.ssm#Version", + "traits": { + "smithy.api#documentation": "

The version of SSM Agent running on your managed node.

" + } + }, + "PlatformType": { + "target": "com.amazonaws.ssm#PlatformType", + "traits": { + "smithy.api#documentation": "

The operating system platform type of the managed node. For example, Windows.

" + } + }, + "PlatformName": { + "target": "com.amazonaws.ssm#PlatformName", + "traits": { + "smithy.api#documentation": "

The name of the operating system platform running on your managed node.

" + } + }, + "PlatformVersion": { + "target": "com.amazonaws.ssm#PlatformVersion", + "traits": { + "smithy.api#documentation": "

The version of the OS platform running on your managed node.

" + } + }, + "ActivationId": { + "target": "com.amazonaws.ssm#ActivationId", + "traits": { + "smithy.api#documentation": "

The activation ID created by Systems Manager when the server or virtual machine (VM) was registered

" + } + }, + "IamRole": { + "target": "com.amazonaws.ssm#IamRole", + "traits": { + "smithy.api#documentation": "

The IAM role used in the hybrid activation to register the node with Systems Manager.

" + } + }, + "RegistrationDate": { + "target": "com.amazonaws.ssm#DateTime", + "traits": { + "smithy.api#documentation": "

The date the node was registered with Systems Manager.

" + } + }, + "ResourceType": { + "target": "com.amazonaws.ssm#String", + "traits": { + "smithy.api#documentation": "

The type of managed node.

" + } + }, + "ComputerName": { + "target": "com.amazonaws.ssm#ComputerName", + "traits": { + "smithy.api#documentation": "

The fully qualified host name of the managed node.

" + } + }, + "AssociationStatus": { + "target": "com.amazonaws.ssm#StatusName", + "traits": { + "smithy.api#documentation": "

The status of the State Manager association applied to the managed node.

" + } + }, + "LastAssociationExecutionDate": { + "target": "com.amazonaws.ssm#DateTime", + "traits": { + "smithy.api#documentation": "

The date the association was last run.

" + } + }, + "LastSuccessfulAssociationExecutionDate": { + "target": "com.amazonaws.ssm#DateTime", + "traits": { + "smithy.api#documentation": "

The last date the association was successfully run.

" + } + }, + "AssociationOverview": { + "target": "com.amazonaws.ssm#InstanceAggregatedAssociationOverview" + }, + "SourceId": { + "target": "com.amazonaws.ssm#SourceId", + "traits": { + "smithy.api#documentation": "

The ID of the source resource.

" + } + }, + "SourceType": { + "target": "com.amazonaws.ssm#SourceType", + "traits": { + "smithy.api#documentation": "

The type of the source resource.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object containing various properties of a managed node.

" + } + }, + "com.amazonaws.ssm#InstancePropertyFilter": { + "type": "structure", + "members": { + "key": { + "target": "com.amazonaws.ssm#InstancePropertyFilterKey", + "traits": { + "smithy.api#documentation": "

The name of the filter.

", + "smithy.api#required": {} + } + }, + "valueSet": { + "target": "com.amazonaws.ssm#InstancePropertyFilterValueSet", + "traits": { + "smithy.api#documentation": "

The filter values.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a filter for a specific list of managed nodes. You can filter node information by using tags. You specify tags by using a key-value mapping.

" + } + }, + "com.amazonaws.ssm#InstancePropertyFilterKey": { + "type": "enum", + "members": { + "INSTANCE_IDS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InstanceIds" + } + }, + "AGENT_VERSION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AgentVersion" + } + }, + "PING_STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PingStatus" + } + }, + "PLATFORM_TYPES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PlatformTypes" + } + }, + "DOCUMENT_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DocumentName" + } + }, + "ACTIVATION_IDS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ActivationIds" + } + }, + "IAM_ROLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IamRole" + } + }, + "RESOURCE_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ResourceType" + } + }, + "ASSOCIATION_STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AssociationStatus" + } + } + } + }, + "com.amazonaws.ssm#InstancePropertyFilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.ssm#InstancePropertyFilter", + "traits": { + "smithy.api#xmlName": "InstancePropertyFilter" + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 40 + } + } + }, + "com.amazonaws.ssm#InstancePropertyFilterOperator": { + "type": "enum", + "members": { + "EQUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Equal" + } + }, + "NOT_EQUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NotEqual" + } + }, + "BEGIN_WITH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BeginWith" + } + }, + "LESS_THAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LessThan" + } + }, + "GREATER_THAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GreaterThan" + } + } + } + }, + "com.amazonaws.ssm#InstancePropertyFilterValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100000 + }, + "smithy.api#pattern": "^.{1,100000}$" + } + }, + "com.amazonaws.ssm#InstancePropertyFilterValueSet": { + "type": "list", + "member": { + "target": "com.amazonaws.ssm#InstancePropertyFilterValue", + "traits": { + "smithy.api#xmlName": "InstancePropertyFilterValue" + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 40 + } + } + }, + "com.amazonaws.ssm#InstancePropertyStringFilter": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.ssm#InstancePropertyStringFilterKey", + "traits": { + "smithy.api#documentation": "

The filter key name to describe your managed nodes.

", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.ssm#InstancePropertyFilterValueSet", + "traits": { + "smithy.api#documentation": "

The filter key name to describe your managed nodes.

", + "smithy.api#required": {} + } + }, + "Operator": { + "target": "com.amazonaws.ssm#InstancePropertyFilterOperator", + "traits": { + "smithy.api#documentation": "

The operator used by the filter call.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The filters to describe or get information about your managed nodes.

" + } + }, + "com.amazonaws.ssm#InstancePropertyStringFilterKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100000 + }, + "smithy.api#pattern": "^.{1,100000}$" + } + }, + "com.amazonaws.ssm#InstancePropertyStringFilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.ssm#InstancePropertyStringFilter", + "traits": { + "smithy.api#xmlName": "InstancePropertyStringFilter" + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 40 + } + } + }, + "com.amazonaws.ssm#InstanceRole": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 120 + } + } + }, + "com.amazonaws.ssm#InstanceState": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 120 + } + } + }, "com.amazonaws.ssm#InstanceTagName": { "type": "string", "traits": { @@ -15199,6 +15719,15 @@ } } }, + "com.amazonaws.ssm#InstanceType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 120 + } + } + }, "com.amazonaws.ssm#InstancesCount": { "type": "integer", "traits": { @@ -15615,6 +16144,22 @@ "smithy.api#error": "client" } }, + "com.amazonaws.ssm#InvalidInstancePropertyFilterValue": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ssm#String" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidInstancePropertyFilterValue", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The specified filter value isn't valid.

", + "smithy.api#error": "client" + } + }, "com.amazonaws.ssm#InvalidInventoryGroupException": { "type": "structure", "members": { @@ -16766,6 +17311,15 @@ "target": "com.amazonaws.ssm#TagKey" } }, + "com.amazonaws.ssm#KeyName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 255 + } + } + }, "com.amazonaws.ssm#LabelParameterVersion": { "type": "operation", "input": { @@ -23654,6 +24208,15 @@ } } }, + "com.amazonaws.ssm#PlatformName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 120 + } + } + }, "com.amazonaws.ssm#PlatformType": { "type": "enum", "members": { @@ -23686,6 +24249,15 @@ } } }, + "com.amazonaws.ssm#PlatformVersion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 120 + } + } + }, "com.amazonaws.ssm#PoliciesLimitExceededException": { "type": "structure", "members": { @@ -24496,7 +25068,7 @@ "ServiceRoleArn": { "target": "com.amazonaws.ssm#ServiceRole", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM service role for Amazon Web Services Systems Manager to assume when running a \n maintenance window task. If you do not specify a service role ARN, Systems Manager uses your account's \n service-linked role. If no service-linked role for Systems Manager exists in your account, it is created when you run \n RegisterTaskWithMaintenanceWindow.

\n

For more information, see Using \n service-linked roles for Systems Manager in the in the Amazon Web Services Systems Manager User Guide:

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM service role for\n Amazon Web Services Systems Manager to assume when running a maintenance window task. If you do not specify a\n service role ARN, Systems Manager uses a service-linked role in your account. If no\n appropriate service-linked role for Systems Manager exists in your account, it is created when\n you run RegisterTaskWithMaintenanceWindow.

\n

However, for an improved security posture, we strongly recommend creating a custom\n policy and custom service role for running your maintenance window tasks. The policy\n can be crafted to provide only the permissions needed for your particular\n maintenance window tasks. For more information, see Setting up maintenance windows in the in the\n Amazon Web Services Systems Manager User Guide.

" } }, "TaskType": { @@ -27708,7 +28280,7 @@ } }, "traits": { - "smithy.api#documentation": "

An array of search criteria that targets managed nodes using a key-value pair that you\n specify.

\n \n

One or more targets must be specified for maintenance window Run Command-type tasks.\n Depending on the task, targets are optional for other maintenance window task types (Automation,\n Lambda, and Step Functions). For more information about running tasks\n that don't specify targets, see Registering\n maintenance window tasks without targets in the\n Amazon Web Services Systems Manager User Guide.

\n
\n

Supported formats include the following.

\n
    \n
  • \n

    \n Key=InstanceIds,Values=,,\n

    \n
  • \n
  • \n

    \n Key=tag:,Values=,\n

    \n
  • \n
  • \n

    \n Key=tag-key,Values=,\n

    \n
  • \n
  • \n

    \n Run Command and Maintenance window targets only:\n Key=resource-groups:Name,Values=\n

    \n
  • \n
  • \n

    \n Maintenance window targets only:\n Key=resource-groups:ResourceTypeFilters,Values=,\n

    \n
  • \n
  • \n

    \n Automation targets only:\n Key=ResourceGroup;Values=\n

    \n
  • \n
\n

For example:

\n
    \n
  • \n

    \n Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE,i-07782c72faEXAMPLE\n

    \n
  • \n
  • \n

    \n Key=tag:CostCenter,Values=CostCenter1,CostCenter2,CostCenter3\n

    \n
  • \n
  • \n

    \n Key=tag-key,Values=Name,Instance-Type,CostCenter\n

    \n
  • \n
  • \n

    \n Run Command and Maintenance window targets only:\n Key=resource-groups:Name,Values=ProductionResourceGroup\n

    \n

    This example demonstrates how to target all resources in the resource group ProductionResourceGroup in your maintenance window.

    \n
  • \n
  • \n

    \n Maintenance window targets only:\n Key=resource-groups:ResourceTypeFilters,Values=AWS::EC2::INSTANCE,AWS::EC2::VPC\n

    \n

    This example demonstrates how to target only Amazon Elastic Compute Cloud (Amazon EC2)\n instances and VPCs in your maintenance window.

    \n
  • \n
  • \n

    \n Automation targets only:\n Key=ResourceGroup,Values=MyResourceGroup\n

    \n
  • \n
  • \n

    \n State Manager association targets only:\n Key=InstanceIds,Values=*\n

    \n

    This example demonstrates how to target all managed instances in the Amazon Web Services Region where\n the association was created.

    \n
  • \n
\n

For more information about how to send commands that target managed nodes using\n Key,Value parameters, see Targeting multiple managed nodes in the Amazon Web Services Systems Manager User Guide.

" + "smithy.api#documentation": "

An array of search criteria that targets managed nodes using a key-value pair that you\n specify.

\n \n

One or more targets must be specified for maintenance window Run Command-type tasks.\n Depending on the task, targets are optional for other maintenance window task types (Automation,\n Lambda, and Step Functions). For more information about running tasks\n that don't specify targets, see Registering\n maintenance window tasks without targets in the\n Amazon Web Services Systems Manager User Guide.

\n
\n

Supported formats include the following.

\n

\n For all Systems Manager capabilities:\n

\n
    \n
  • \n

    \n Key=tag-key,Values=tag-value-1,tag-value-2\n

    \n
  • \n
\n

\n For Automation and Change Manager:\n

\n
    \n
  • \n

    \n Key=tag:tag-key,Values=tag-value\n

    \n
  • \n
  • \n

    \n Key=ResourceGroup,Values=resource-group-name\n

    \n
  • \n
  • \n

    \n Key=ParameterValues,Values=value-1,value-2,value-3\n

    \n
  • \n
  • \n

    To target all instances in the Amazon Web Services Region:

    \n
      \n
    • \n

      \n Key=AWS::EC2::Instance,Values=*\n

      \n
    • \n
    • \n

      \n Key=InstanceIds,Values=*\n

      \n
    • \n
    \n
  • \n
\n

\n For Run Command and Maintenance Windows:\n

\n
    \n
  • \n

    \n Key=InstanceIds,Values=instance-id-1,instance-id-2,instance-id-3\n

    \n
  • \n
  • \n

    \n Key=tag:tag-key,Values=tag-value-1,tag-value-2\n

    \n
  • \n
  • \n

    \n Key=resource-groups:Name,Values=resource-group-name\n

    \n
  • \n
  • \n

    Additionally, Maintenance Windows support targeting resource types:

    \n
      \n
    • \n

      \n Key=resource-groups:ResourceTypeFilters,Values=resource-type-1,resource-type-2\n

      \n
    • \n
    \n
  • \n
\n

\n For State Manager:\n

\n
    \n
  • \n

    \n Key=InstanceIds,Values=instance-id-1,instance-id-2,instance-id-3\n

    \n
  • \n
  • \n

    \n Key=tag:tag-key,Values=tag-value-1,tag-value-2\n

    \n
  • \n
  • \n

    To target all instances in the Amazon Web Services Region:

    \n
      \n
    • \n

      \n Key=InstanceIds,Values=*\n

      \n
    • \n
    \n
  • \n
\n

For more information about how to send commands that target managed nodes using\n Key,Value parameters, see Targeting multiple managed nodes in the Amazon Web Services Systems Manager User Guide.

" } }, "com.amazonaws.ssm#TargetCount": { @@ -28782,7 +29354,7 @@ "StartDate": { "target": "com.amazonaws.ssm#MaintenanceWindowStringDateTime", "traits": { - "smithy.api#documentation": "

The date and time, in ISO-8601 Extended format, for when you want the maintenance window to\n become active. StartDate allows you to delay activation of the maintenance window\n until the specified future date.

" + "smithy.api#documentation": "

The date and time, in ISO-8601 Extended format, for when you want the maintenance window to\n become active. StartDate allows you to delay activation of the maintenance window\n until the specified future date.

\n \n

When using a rate schedule, if you provide a start date that occurs in the past, the\n current date and time are used as the start date.

\n
" } }, "EndDate": { @@ -29100,7 +29672,7 @@ "ServiceRoleArn": { "target": "com.amazonaws.ssm#ServiceRole", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM service role for Amazon Web Services Systems Manager to assume when running a \n maintenance window task. If you do not specify a service role ARN, Systems Manager uses your account's \n service-linked role. If no service-linked role for Systems Manager exists in your account, it is created when you run \n RegisterTaskWithMaintenanceWindow.

\n

For more information, see Using \n service-linked roles for Systems Manager in the in the Amazon Web Services Systems Manager User Guide:

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM service role for\n Amazon Web Services Systems Manager to assume when running a maintenance window task. If you do not specify a\n service role ARN, Systems Manager uses a service-linked role in your account. If no\n appropriate service-linked role for Systems Manager exists in your account, it is created when\n you run RegisterTaskWithMaintenanceWindow.

\n

However, for an improved security posture, we strongly recommend creating a custom\n policy and custom service role for running your maintenance window tasks. The policy\n can be crafted to provide only the permissions needed for your particular\n maintenance window tasks. For more information, see Setting up maintenance windows in the in the\n Amazon Web Services Systems Manager User Guide.

" } }, "TaskParameters": { diff --git a/models/supplychain.json b/models/supplychain.json index f79e717f53..79911da8b9 100644 --- a/models/supplychain.json +++ b/models/supplychain.json @@ -259,12 +259,162 @@ "smithy.api#output": {} } }, + "com.amazonaws.supplychain#DataIntegrationEventData": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1048576 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.supplychain#DataIntegrationEventGroupId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.supplychain#DataIntegrationEventResource": { + "type": "resource", + "identifiers": { + "instanceId": { + "target": "com.amazonaws.supplychain#UUID" + }, + "eventId": { + "target": "com.amazonaws.supplychain#UUID" + } + }, + "properties": { + "eventType": { + "target": "com.amazonaws.supplychain#DataIntegrationEventType" + }, + "data": { + "target": "com.amazonaws.supplychain#DataIntegrationEventData" + }, + "eventGroupId": { + "target": "com.amazonaws.supplychain#DataIntegrationEventGroupId" + }, + "eventTimestamp": { + "target": "smithy.api#Timestamp" + } + }, + "create": { + "target": "com.amazonaws.supplychain#SendDataIntegrationEvent" + }, + "traits": { + "aws.api#arn": { + "template": "instance/{instanceId}/data-integration-events/{eventId}" + } + } + }, + "com.amazonaws.supplychain#DataIntegrationEventType": { + "type": "enum", + "members": { + "FORECAST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scn.data.forecast" + } + }, + "INVENTORY_LEVEL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scn.data.inventorylevel" + } + }, + "INBOUND_ORDER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scn.data.inboundorder" + } + }, + "INBOUND_ORDER_LINE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scn.data.inboundorderline" + } + }, + "INBOUND_ORDER_LINE_SCHEDULE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scn.data.inboundorderlineschedule" + } + }, + "OUTBOUND_ORDER_LINE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scn.data.outboundorderline" + } + }, + "OUTBOUND_SHIPMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scn.data.outboundshipment" + } + }, + "PROCESS_HEADER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scn.data.processheader" + } + }, + "PROCESS_OPERATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scn.data.processoperation" + } + }, + "PROCESS_PRODUCT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scn.data.processproduct" + } + }, + "RESERVATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scn.data.reservation" + } + }, + "SHIPMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scn.data.shipment" + } + }, + "SHIPMENT_STOP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scn.data.shipmentstop" + } + }, + "SHIPMENT_STOP_ORDER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scn.data.shipmentstoporder" + } + }, + "SUPPLY_PLAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scn.data.supplyplan" + } + } + } + }, "com.amazonaws.supplychain#GalaxyPublicAPIGateway": { "type": "service", "version": "2024-01-01", "resources": [ { "target": "com.amazonaws.supplychain#BillOfMaterialsImportJobResource" + }, + { + "target": "com.amazonaws.supplychain#DataIntegrationEventResource" } ], "errors": [ @@ -1121,6 +1271,312 @@ "smithy.api#httpError": 404 } }, + "com.amazonaws.supplychain#SendDataIntegrationEvent": { + "type": "operation", + "input": { + "target": "com.amazonaws.supplychain#SendDataIntegrationEventRequest" + }, + "output": { + "target": "com.amazonaws.supplychain#SendDataIntegrationEventResponse" + }, + "errors": [ + { + "target": "com.amazonaws.supplychain#AccessDeniedException" + }, + { + "target": "com.amazonaws.supplychain#ConflictException" + }, + { + "target": "com.amazonaws.supplychain#InternalServerException" + }, + { + "target": "com.amazonaws.supplychain#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.supplychain#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.supplychain#ThrottlingException" + }, + { + "target": "com.amazonaws.supplychain#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Send transactional data events with real-time data for analysis or monitoring.

", + "smithy.api#examples": [ + { + "title": "Successful SendDataIntegrationEvent for inboundorder event type", + "input": { + "instanceId": "8928ae12-15e5-4441-825d-ec2184f0a43a", + "eventType": "scn.data.inboundorder", + "data": "{\"id\": \"inbound-order-id-test-123\", \"tpartner_id\": \"partner-id-test-123\" }", + "eventGroupId": "inboundOrderId", + "eventTimestamp": 1.515531081123E9 + }, + "output": { + "eventId": "c4132c1d-8f60-44a2-9932-f723c4f7b8a7" + } + }, + { + "title": "Successful SendDataIntegrationEvent for inboundorderline event type", + "input": { + "instanceId": "8928ae12-15e5-4441-825d-ec2184f0a43a", + "eventType": "scn.data.inboundorderline", + "data": "{\"id\": \"inbound-order-line-id-test-123\", \"order_id\": \"order-id-test-123\", \"tpartner_id\": \"partner-id-test-123\", \"product_id\": \"product-id-test-123\", \"quantity_submitted\": \"100.0\" }", + "eventGroupId": "inboundOrderLineId", + "eventTimestamp": 1.515531081123E9 + }, + "output": { + "eventId": "45d95db2-d106-40e0-aa98-f1204230a691" + } + }, + { + "title": "Successful SendDataIntegrationEvent for inboundorderlineschedule event type", + "input": { + "instanceId": "8928ae12-15e5-4441-825d-ec2184f0a43a", + "eventType": "scn.data.inboundorderlineschedule", + "data": "{\"id\": \"inbound-order-line-schedule-id-test-123\", \"order_id\": \"order-id-test-123\", \"order_line_id\": \"order-line-id-test-123\", \"product_id\": \"product-id-test-123\"}", + "eventGroupId": "inboundOrderLineScheduleId", + "eventTimestamp": 1.515531081123E9 + }, + "output": { + "eventId": "5abba995-7735-4d1e-95c4-7cc93e48cf9f" + } + }, + { + "title": "Successful SendDataIntegrationEvent for forecast event type", + "input": { + "instanceId": "8928ae12-15e5-4441-825d-ec2184f0a43a", + "eventType": "scn.data.forecast", + "data": "{\"snapshot_date\": \"1672470400000\", \"product_id\": \"product-id-test-123\", \"site_id\": \"site-id-test-123\", \"region_id\": \"region-id-test-123\", \"product_group_id\": \"product-group-id-test-123\", \"forecast_start_dttm\": \"1672470400000\", \"forecast_end_dttm\": \"1672470400000\" }", + "eventGroupId": "forecastId", + "eventTimestamp": 1.515531081123E9 + }, + "output": { + "eventId": "29312d5b-f499-4dcd-b017-3dab3cd34d61" + } + }, + { + "title": "Successful SendDataIntegrationEvent for inventorylevel event type", + "input": { + "instanceId": "8928ae12-15e5-4441-825d-ec2184f0a43a", + "eventType": "scn.data.inventorylevel", + "data": "{\"snapshot_date\": \"1672470400000\", \"site_id\": \"site-id-test-123\", \"product_id\": \"product-id-test-123\", \"on_hand_inventory\": \"100.0\", \"inv_condition\": \"good\", \"lot_number\": \"lot-number-test-123\"}", + "eventGroupId": "inventoryLevelId", + "eventTimestamp": 1.515531081123E9 + }, + "output": { + "eventId": "3aa78324-acd8-4fdd-a19e-231ea003c2b3" + } + }, + { + "title": "Successful SendDataIntegrationEvent for outboundorderline event type", + "input": { + "instanceId": "8928ae12-15e5-4441-825d-ec2184f0a43a", + "eventType": "scn.data.outboundorderline", + "data": "{\"id\": \"outbound-orderline-id-test-123\", \"cust_order_id\": \"cust-order-id-test-123\", \"product_id\": \"product-id-test-123\" }", + "eventGroupId": "outboundOrderLineId", + "eventTimestamp": 1.515531081123E9 + }, + "output": { + "eventId": "959b7ef9-5e2d-4795-b1ca-5b16a3eb6b89" + } + }, + { + "title": "Successful SendDataIntegrationEvent for outboundshipment event type", + "input": { + "instanceId": "8928ae12-15e5-4441-825d-ec2184f0a43a", + "eventType": "scn.data.outboundshipment", + "data": "{\"id\": \"outbound-shipment-id-test-123\", \"cust_order_id\": \"cust-order-id-test-123\", \"cust_order_line_id\": \"cust-order-line-id-test-123\", \"product_id\": \"product-id-test-123\" }", + "eventGroupId": "outboundShipmentId", + "eventTimestamp": 1.515531081123E9 + }, + "output": { + "eventId": "59feded3-5e46-4126-81bf-0137ca176ee0" + } + }, + { + "title": "Successful SendDataIntegrationEvent for processheader event type", + "input": { + "instanceId": "8928ae12-15e5-4441-825d-ec2184f0a43a", + "eventType": "scn.data.processheader", + "data": "{\"process_id\": \"process-id-test-123\" }", + "eventGroupId": "processHeaderId", + "eventTimestamp": 1.515531081123E9 + }, + "output": { + "eventId": "564130eb-2d8a-4550-a768-ddf0daf7b4a9" + } + }, + { + "title": "Successful SendDataIntegrationEvent for processoperation event type", + "input": { + "instanceId": "8928ae12-15e5-4441-825d-ec2184f0a43a", + "eventType": "scn.data.processoperation", + "data": "{\"process_operation_id\": \"process-operation-id-test-123\", \"process_id\": \"process-id-test-123\" }", + "eventGroupId": "processOperationId", + "eventTimestamp": 1.515531081123E9 + }, + "output": { + "eventId": "db5df408-89c7-4b9f-a326-016f6c2b3396" + } + }, + { + "title": "Successful SendDataIntegrationEvent for processproduct event type", + "input": { + "instanceId": "8928ae12-15e5-4441-825d-ec2184f0a43a", + "eventType": "scn.data.processproduct", + "data": "{\"process_product_id\": \"process-product-id-test-123\", \"process_id\": \"process-id-test-123\" }", + "eventGroupId": "processProductId", + "eventTimestamp": 1.515531081123E9 + }, + "output": { + "eventId": "6929b275-485e-4035-a798-99077ca6d669" + } + }, + { + "title": "Successful SendDataIntegrationEvent for reservation event type", + "input": { + "instanceId": "8928ae12-15e5-4441-825d-ec2184f0a43a", + "eventType": "scn.data.reservation", + "data": "{\"reservation_id\": \"reservation-id-test-123\", \"reservation_detail_id\": \"reservation-detail-id-test-123\" }", + "eventGroupId": "reservationId", + "eventTimestamp": 1.515531081123E9 + }, + "output": { + "eventId": "f6c55a8b-fde2-44f6-848a-9b4336c77209" + } + }, + { + "title": "Successful SendDataIntegrationEvent for shipment event type", + "input": { + "instanceId": "8928ae12-15e5-4441-825d-ec2184f0a43a", + "eventType": "scn.data.shipment", + "data": "{\"id\": \"shipment-id-test-123\", \"supplier_tpartner_id\": \"supplier-tpartner-id-test-123\", \"product_id\": \"product-id-test-123\", \"order_id\": \"order-id-test-123\", \"order_line_id\": \"order-line-id-test-123\", \"package_id\": \"package-id-test-123\" }", + "eventGroupId": "shipmentId", + "eventTimestamp": 1.515531081123E9 + }, + "output": { + "eventId": "61d079d8-3f56-49bb-b35a-c0271a4e4f0a" + } + }, + { + "title": "Successful SendDataIntegrationEvent for shipmentstop event type", + "input": { + "instanceId": "8928ae12-15e5-4441-825d-ec2184f0a43a", + "eventType": "scn.data.shipmentstop", + "data": "{\"shipment_stop_id\": \"shipment-stop-id-test-123\", \"shipment_id\": \"shipment-id-test-123\" }", + "eventGroupId": "shipmentStopId", + "eventTimestamp": 1.515531081123E9 + }, + "output": { + "eventId": "3610992a-fc2f-4da4-9beb-724994622ba1" + } + }, + { + "title": "Successful SendDataIntegrationEvent for shipmentstoporder event type", + "input": { + "instanceId": "8928ae12-15e5-4441-825d-ec2184f0a43a", + "eventType": "scn.data.shipmentstoporder", + "data": "{\"shipment_stop_order_id\": \"shipment-stop-order-id-test-123\", \"shipment_stop_id\": \"shipment-stop-id-test-123\", \"shipment_id\": \"shipment-id-test-123\" }", + "eventGroupId": "shipmentStopOrderId", + "eventTimestamp": 1.515531081123E9 + }, + "output": { + "eventId": "1d550a60-9321-4d25-a132-9dd4b2d9e934" + } + }, + { + "title": "Successful SendDataIntegrationEvent for supplyplan event type", + "input": { + "instanceId": "8928ae12-15e5-4441-825d-ec2184f0a43a", + "eventType": "scn.data.supplyplan", + "data": "{\"supply_plan_id\": \"supply-plan-id-test-123\" }", + "eventGroupId": "supplyPlanId", + "eventTimestamp": 1.515531081123E9 + }, + "output": { + "eventId": "9abaee56-5dc4-4c31-8250-3206a651d8a1" + } + } + ], + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/api-data/data-integration/instance/{instanceId}/data-integration-events" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.supplychain#SendDataIntegrationEventRequest": { + "type": "structure", + "members": { + "instanceId": { + "target": "com.amazonaws.supplychain#UUID", + "traits": { + "smithy.api#documentation": "

The AWS Supply Chain instance identifier.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "eventType": { + "target": "com.amazonaws.supplychain#DataIntegrationEventType", + "traits": { + "smithy.api#documentation": "

The data event type.

", + "smithy.api#required": {} + } + }, + "data": { + "target": "com.amazonaws.supplychain#DataIntegrationEventData", + "traits": { + "smithy.api#documentation": "

The data payload of the event.

", + "smithy.api#required": {} + } + }, + "eventGroupId": { + "target": "com.amazonaws.supplychain#DataIntegrationEventGroupId", + "traits": { + "smithy.api#documentation": "

Event identifier (for example, orderId for InboundOrder) used for data sharing or partitioning.

", + "smithy.api#required": {} + } + }, + "eventTimestamp": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The event timestamp (in epoch seconds).

", + "smithy.api#timestampFormat": "epoch-seconds" + } + }, + "clientToken": { + "target": "com.amazonaws.supplychain#ClientToken", + "traits": { + "smithy.api#documentation": "

The idempotent client token.

", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The request parameters for SendDataIntegrationEvent.

", + "smithy.api#input": {} + } + }, + "com.amazonaws.supplychain#SendDataIntegrationEventResponse": { + "type": "structure", + "members": { + "eventId": { + "target": "com.amazonaws.supplychain#UUID", + "traits": { + "smithy.api#documentation": "

The unique event identifier.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The response parameters for SendDataIntegrationEvent.

", + "smithy.api#output": {} + } + }, "com.amazonaws.supplychain#ServiceQuotaExceededException": { "type": "structure", "members": { diff --git a/models/support.json b/models/support.json index 0515f6a42a..b0f5eb9a8e 100644 --- a/models/support.json +++ b/models/support.json @@ -141,7 +141,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -184,7 +183,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -197,7 +197,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -211,7 +210,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -366,6 +364,57 @@ }, "type": "endpoint" }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://support.us-gov-west-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "support", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [ { @@ -489,7 +538,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -524,7 +572,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -535,14 +582,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -556,14 +605,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -572,11 +619,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -587,14 +634,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -608,7 +657,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -628,7 +676,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -639,14 +686,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -657,9 +706,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -858,6 +909,28 @@ "UseDualStack": false } }, + { + "documentation": "For region aws-us-gov-global with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "support", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://support.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "aws-us-gov-global", + "UseFIPS": true, + "UseDualStack": false + } + }, { "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { @@ -875,7 +948,16 @@ "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://support-fips.us-gov-east-1.amazonaws.com" + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "support", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://support.us-gov-west-1.amazonaws.com" } }, "params": { @@ -1745,7 +1827,7 @@ } }, "serviceCode": { - "target": "com.amazonaws.support#ServiceCode", + "target": "com.amazonaws.support#ServiceCode2", "traits": { "smithy.api#documentation": "

The code for the Amazon Web Services service. You can use the DescribeServices\n operation to get the possible serviceCode values.

" } @@ -2137,7 +2219,7 @@ } }, "serviceCode": { - "target": "com.amazonaws.support#ServiceCode", + "target": "com.amazonaws.support#ServiceCode2", "traits": { "smithy.api#documentation": "

The code for the Amazon Web Services service. You can use the DescribeServices\n operation to get the possible serviceCode values.

", "smithy.api#required": {} @@ -2782,6 +2864,9 @@ } }, "com.amazonaws.support#ServiceCode": { + "type": "string" + }, + "com.amazonaws.support#ServiceCode2": { "type": "string", "traits": { "smithy.api#pattern": "^[0-9a-z\\-_]+$" @@ -2790,7 +2875,7 @@ "com.amazonaws.support#ServiceCodeList": { "type": "list", "member": { - "target": "com.amazonaws.support#ServiceCode" + "target": "com.amazonaws.support#ServiceCode2" }, "traits": { "smithy.api#length": { diff --git a/models/timestream-query.json b/models/timestream-query.json index 0b3e199f75..720ffb3560 100644 --- a/models/timestream-query.json +++ b/models/timestream-query.json @@ -401,6 +401,62 @@ "smithy.api#input": {} } }, + "com.amazonaws.timestreamquery#DescribeAccountSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.timestreamquery#DescribeAccountSettingsRequest" + }, + "output": { + "target": "com.amazonaws.timestreamquery#DescribeAccountSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.timestreamquery#AccessDeniedException" + }, + { + "target": "com.amazonaws.timestreamquery#InternalServerException" + }, + { + "target": "com.amazonaws.timestreamquery#InvalidEndpointException" + }, + { + "target": "com.amazonaws.timestreamquery#ThrottlingException" + } + ], + "traits": { + "aws.api#clientDiscoveredEndpoint": { + "required": true + }, + "smithy.api#documentation": "

Describes the settings for your account that include the query pricing model and the configured maximum TCUs the service can use for your query workload.

\n

You're charged only for the duration of compute units used for your workloads.

" + } + }, + "com.amazonaws.timestreamquery#DescribeAccountSettingsRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.timestreamquery#DescribeAccountSettingsResponse": { + "type": "structure", + "members": { + "MaxQueryTCU": { + "target": "com.amazonaws.timestreamquery#MaxQueryCapacity", + "traits": { + "smithy.api#documentation": "

The maximum number of Timestream compute units (TCUs) the service will use at any point in time to serve your queries.

" + } + }, + "QueryPricingModel": { + "target": "com.amazonaws.timestreamquery#QueryPricingModel", + "traits": { + "smithy.api#documentation": "

The pricing model for queries in your account.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.timestreamquery#DescribeEndpoints": { "type": "operation", "input": { @@ -706,6 +762,13 @@ "smithy.api#documentation": "

Bytes metered for a single scheduled query run.

" } }, + "CumulativeBytesScanned": { + "target": "com.amazonaws.timestreamquery#Long", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Bytes scanned for a single scheduled query run.

" + } + }, "RecordsIngested": { "target": "com.amazonaws.timestreamquery#Long", "traits": { @@ -733,7 +796,7 @@ } }, "traits": { - "smithy.api#documentation": "

\n Timestream was unable to fully process this request because of an internal\n server error.

", + "smithy.api#documentation": "

\n The service was unable to fully process this request because of an internal\n server error.

", "smithy.api#error": "server", "smithy.api#httpError": 500 } @@ -919,6 +982,9 @@ "smithy.api#default": 0 } }, + "com.amazonaws.timestreamquery#MaxQueryCapacity": { + "type": "integer" + }, "com.amazonaws.timestreamquery#MaxQueryResults": { "type": "integer", "traits": { @@ -1302,6 +1368,23 @@ "smithy.api#pattern": "^[a-zA-Z0-9]+$" } }, + "com.amazonaws.timestreamquery#QueryPricingModel": { + "type": "enum", + "members": { + "BYTES_SCANNED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BYTES_SCANNED" + } + }, + "COMPUTE_UNITS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPUTE_UNITS" + } + } + } + }, "com.amazonaws.timestreamquery#QueryRequest": { "type": "structure", "members": { @@ -1861,7 +1944,7 @@ "min": 1, "max": 64 }, - "smithy.api#pattern": "^[a-zA-Z0-9_.-]+$" + "smithy.api#pattern": "^[a-zA-Z0-9|!\\-_*'\\(\\)]([a-zA-Z0-9]|[!\\-_*'\\(\\)\\/.])+$" } }, "com.amazonaws.timestreamquery#ScheduledQueryRunStatus": { @@ -2335,6 +2418,9 @@ { "target": "com.amazonaws.timestreamquery#DeleteScheduledQuery" }, + { + "target": "com.amazonaws.timestreamquery#DescribeAccountSettings" + }, { "target": "com.amazonaws.timestreamquery#DescribeEndpoints" }, @@ -2362,6 +2448,9 @@ { "target": "com.amazonaws.timestreamquery#UntagResource" }, + { + "target": "com.amazonaws.timestreamquery#UpdateAccountSettings" + }, { "target": "com.amazonaws.timestreamquery#UpdateScheduledQuery" } @@ -3104,6 +3193,79 @@ "smithy.api#output": {} } }, + "com.amazonaws.timestreamquery#UpdateAccountSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.timestreamquery#UpdateAccountSettingsRequest" + }, + "output": { + "target": "com.amazonaws.timestreamquery#UpdateAccountSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.timestreamquery#AccessDeniedException" + }, + { + "target": "com.amazonaws.timestreamquery#InternalServerException" + }, + { + "target": "com.amazonaws.timestreamquery#InvalidEndpointException" + }, + { + "target": "com.amazonaws.timestreamquery#ThrottlingException" + }, + { + "target": "com.amazonaws.timestreamquery#ValidationException" + } + ], + "traits": { + "aws.api#clientDiscoveredEndpoint": { + "required": true + }, + "smithy.api#documentation": "

Transitions your account to use TCUs for query pricing and modifies the maximum query compute units that you've configured. If you reduce the value of MaxQueryTCU to a desired configuration, the new value can take up to 24 hours to be effective.

\n \n

After you've transitioned your account to use TCUs for query pricing, you can't transition to using bytes scanned for query pricing.

\n
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.timestreamquery#UpdateAccountSettingsRequest": { + "type": "structure", + "members": { + "MaxQueryTCU": { + "target": "com.amazonaws.timestreamquery#MaxQueryCapacity", + "traits": { + "smithy.api#documentation": "

The maximum number of compute units the service will use at any point in time to serve your queries. To run queries, you must set a minimum capacity of 4 TCU. You can set the maximum number of TCU in multiples of 4, for example, 4, 8, 16, 32, and so on.

\n

The maximum value supported for MaxQueryTCU is 1000. To request an increase to this soft limit, contact Amazon Web Services Support. For information about the default quota for maxQueryTCU, see Default quotas.

" + } + }, + "QueryPricingModel": { + "target": "com.amazonaws.timestreamquery#QueryPricingModel", + "traits": { + "smithy.api#documentation": "

The pricing model for queries in an account.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.timestreamquery#UpdateAccountSettingsResponse": { + "type": "structure", + "members": { + "MaxQueryTCU": { + "target": "com.amazonaws.timestreamquery#MaxQueryCapacity", + "traits": { + "smithy.api#documentation": "

The configured maximum number of compute units the service will use at any point in time to serve your queries.

" + } + }, + "QueryPricingModel": { + "target": "com.amazonaws.timestreamquery#QueryPricingModel", + "traits": { + "smithy.api#documentation": "

The pricing model for an account.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.timestreamquery#UpdateScheduledQuery": { "type": "operation", "input": { diff --git a/models/transcribe.json b/models/transcribe.json index 61361b501d..9446a7bc14 100644 --- a/models/transcribe.json +++ b/models/transcribe.json @@ -141,6 +141,17 @@ } } }, + "com.amazonaws.transcribe#CallAnalyticsFeature": { + "type": "enum", + "members": { + "GENERATIVE_SUMMARIZATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GENERATIVE_SUMMARIZATION" + } + } + } + }, "com.amazonaws.transcribe#CallAnalyticsJob": { "type": "structure", "members": { @@ -156,6 +167,12 @@ "smithy.api#documentation": "

Provides the status of the specified Call Analytics job.

\n

If the status is COMPLETED, the job is finished and you can find the\n results at the location specified in TranscriptFileUri (or\n RedactedTranscriptFileUri, if you requested transcript redaction). If\n the status is FAILED, FailureReason provides details on why\n your transcription job failed.

" } }, + "CallAnalyticsJobDetails": { + "target": "com.amazonaws.transcribe#CallAnalyticsJobDetails", + "traits": { + "smithy.api#documentation": "

Provides detailed information about a call analytics job, including information about skipped analytics features.

" + } + }, "LanguageCode": { "target": "com.amazonaws.transcribe#LanguageCode", "traits": { @@ -236,6 +253,20 @@ "smithy.api#documentation": "

Provides detailed information about a Call Analytics job.

\n

To view the job's status, refer to CallAnalyticsJobStatus. If the status\n is COMPLETED, the job is finished. You can find your completed transcript\n at the URI specified in TranscriptFileUri. If the status is\n FAILED, FailureReason provides details on why your\n transcription job failed.

\n

If you enabled personally identifiable information (PII) redaction, the redacted\n transcript appears at the location specified in\n RedactedTranscriptFileUri.

\n

If you chose to redact the audio in your media file, you can find your redacted media\n file at the location specified in the RedactedMediaFileUri field of your\n response.

" } }, + "com.amazonaws.transcribe#CallAnalyticsJobDetails": { + "type": "structure", + "members": { + "Skipped": { + "target": "com.amazonaws.transcribe#CallAnalyticsSkippedFeatureList", + "traits": { + "smithy.api#documentation": "

Contains information about any skipped analytics features during the analysis of a call analytics job.

\n

This array lists all the analytics features that were skipped, along with their corresponding reason code and message.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about a call analytics job, including information about skipped analytics features.

" + } + }, "com.amazonaws.transcribe#CallAnalyticsJobName": { "type": "string", "traits": { @@ -373,6 +404,12 @@ "smithy.api#documentation": "

Provides the status of your Call Analytics job.

\n

If the status is COMPLETED, the job is finished and you can find the\n results at the location specified in TranscriptFileUri (or\n RedactedTranscriptFileUri, if you requested transcript redaction). If\n the status is FAILED, FailureReason provides details on why\n your transcription job failed.

" } }, + "CallAnalyticsJobDetails": { + "target": "com.amazonaws.transcribe#CallAnalyticsJobDetails", + "traits": { + "smithy.api#documentation": "

Provides detailed information about a call analytics job, including information about skipped analytics features.

" + } + }, "FailureReason": { "target": "com.amazonaws.transcribe#FailureReason", "traits": { @@ -384,6 +421,55 @@ "smithy.api#documentation": "

Provides detailed information about a specific Call Analytics job.

" } }, + "com.amazonaws.transcribe#CallAnalyticsSkippedFeature": { + "type": "structure", + "members": { + "Feature": { + "target": "com.amazonaws.transcribe#CallAnalyticsFeature", + "traits": { + "smithy.api#documentation": "

Indicates the type of analytics feature that was skipped during the analysis of a call analytics job.

" + } + }, + "ReasonCode": { + "target": "com.amazonaws.transcribe#CallAnalyticsSkippedReasonCode", + "traits": { + "smithy.api#documentation": "

Provides a code indicating the reason why a specific analytics feature was skipped during the analysis of a call analytics job.

" + } + }, + "Message": { + "target": "com.amazonaws.transcribe#String", + "traits": { + "smithy.api#documentation": "

Contains additional information or a message explaining why a specific analytics feature was skipped during the analysis of a call analytics job.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents a skipped analytics feature during the analysis of a call analytics job.

\n

The Feature field indicates the type of analytics feature that was skipped.

\n

The Message field contains additional information or a message explaining why the analytics feature was skipped.

\n

The ReasonCode field provides a code indicating the reason why the analytics feature was skipped.

" + } + }, + "com.amazonaws.transcribe#CallAnalyticsSkippedFeatureList": { + "type": "list", + "member": { + "target": "com.amazonaws.transcribe#CallAnalyticsSkippedFeature" + } + }, + "com.amazonaws.transcribe#CallAnalyticsSkippedReasonCode": { + "type": "enum", + "members": { + "INSUFFICIENT_CONVERSATION_CONTENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSUFFICIENT_CONVERSATION_CONTENT" + } + }, + "FAILED_SAFETY_GUIDELINES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED_SAFETY_GUIDELINES" + } + } + } + }, "com.amazonaws.transcribe#CategoryName": { "type": "string", "traits": { @@ -3927,7 +4013,7 @@ "traits": { "smithy.api#range": { "min": 2, - "max": 10 + "max": 30 } } }, diff --git a/models/transfer.json b/models/transfer.json index e074956080..9a7d0b552f 100644 --- a/models/transfer.json +++ b/models/transfer.json @@ -292,6 +292,12 @@ "traits": { "smithy.api#enumValue": "ENCRYPTION" } + }, + "TLS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLS" + } } } }, @@ -5622,6 +5628,16 @@ "target": "com.amazonaws.transfer#ListedWorkflow" } }, + "com.amazonaws.transfer#ListingId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^[0-9a-zA-Z./-]+$" + } + }, "com.amazonaws.transfer#LogGroupName": { "type": "string", "traits": { @@ -5689,6 +5705,15 @@ } } }, + "com.amazonaws.transfer#MaxItems": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10000 + } + } + }, "com.amazonaws.transfer#MaxResults": { "type": "integer", "traits": { @@ -5812,6 +5837,16 @@ } } }, + "com.amazonaws.transfer#OutputFileName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 26, + "max": 537 + }, + "smithy.api#pattern": "^c-([0-9a-f]{17})-[0-9a-zA-Z./-]+.json$" + } + }, "com.amazonaws.transfer#OverwriteExisting": { "type": "enum", "members": { @@ -6714,6 +6749,92 @@ } } }, + "com.amazonaws.transfer#StartDirectoryListing": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#StartDirectoryListingRequest" + }, + "output": { + "target": "com.amazonaws.transfer#StartDirectoryListingResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.transfer#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a list of the contents of a directory from a remote SFTP server. You specify the\n connector ID, the output path, and the remote directory path. You can also specify the\n optional MaxItems value to control the maximum number of items that are listed\n from the remote directory. This API returns a list of all files and directories in the remote\n directory (up to the maximum value), but does not return files or folders in sub-directories.\n That is, it only returns a list of files and directories one-level deep.

\n

After you receive the listing file, you can provide the files that you want to transfer to\n the RetrieveFilePaths parameter of the StartFileTransfer API\n call.

\n

The naming convention for the output file is\n \n connector-ID-listing-ID.json. The\n output file contains the following information:

\n
    \n
  • \n

    \n filePath: the complete path of a remote file, relative to the directory\n of the listing request for your SFTP connector on the remote server.

    \n
  • \n
  • \n

    \n modifiedTimestamp: the last time the file was modified, in UTC time\n format. This field is optional. If the remote file attributes don't contain a timestamp,\n it is omitted from the file listing.

    \n
  • \n
  • \n

    \n size: the size of the file, in bytes. This field is optional. If the\n remote file attributes don't contain a file size, it is omitted from the file\n listing.

    \n
  • \n
  • \n

    \n path: the complete path of a remote directory, relative to the directory\n of the listing request for your SFTP connector on the remote server.

    \n
  • \n
  • \n

    \n truncated: a flag indicating whether the list output contains all of the\n items contained in the remote directory or not. If your Truncated output\n value is true, you can increase the value provided in the optional max-items\n input attribute to be able to list more items (up to the maximum allowed list size of\n 10,000 items).

    \n
  • \n
" + } + }, + "com.amazonaws.transfer#StartDirectoryListingRequest": { + "type": "structure", + "members": { + "ConnectorId": { + "target": "com.amazonaws.transfer#ConnectorId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the connector.

", + "smithy.api#required": {} + } + }, + "RemoteDirectoryPath": { + "target": "com.amazonaws.transfer#FilePath", + "traits": { + "smithy.api#documentation": "

Specifies the directory on the remote SFTP server for which you want to list its contents.

", + "smithy.api#required": {} + } + }, + "MaxItems": { + "target": "com.amazonaws.transfer#MaxItems", + "traits": { + "smithy.api#documentation": "

An optional parameter where you can specify the maximum number of file/directory names to\n retrieve. The default value is 1,000.

" + } + }, + "OutputDirectoryPath": { + "target": "com.amazonaws.transfer#FilePath", + "traits": { + "smithy.api#documentation": "

Specifies the path (bucket and prefix) in Amazon S3 storage to store the results of the directory listing.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.transfer#StartDirectoryListingResponse": { + "type": "structure", + "members": { + "ListingId": { + "target": "com.amazonaws.transfer#ListingId", + "traits": { + "smithy.api#documentation": "

Returns a unique identifier for the directory listing call.

", + "smithy.api#required": {} + } + }, + "OutputFileName": { + "target": "com.amazonaws.transfer#OutputFileName", + "traits": { + "smithy.api#documentation": "

Returns the file name where the results are stored. This is a combination of the connector ID and the listing ID: <connector-id>-<listing-id>.json.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.transfer#StartFileTransfer": { "type": "operation", "input": { @@ -6740,7 +6861,7 @@ } ], "traits": { - "smithy.api#documentation": "

Begins a file transfer between local Amazon Web Services storage and a remote AS2 or SFTP server.

\n
    \n
  • \n

    For an AS2 connector, you specify the ConnectorId and one or more SendFilePaths to identify the files\n you want to transfer.

    \n
  • \n
  • \n

    For an SFTP connector, the file transfer can be either outbound or inbound. In both\n cases, you specify the ConnectorId. Depending on the direction of the transfer,\n you also specify the following items:

    \n
      \n
    • \n

      If you are transferring file from a partner's SFTP server to Amazon Web Services\n storage, you specify one or more RetreiveFilePaths to identify the files\n you want to transfer, and a LocalDirectoryPath to specify the destination\n folder.

      \n
    • \n
    • \n

      If you are transferring file to a partner's SFTP server from Amazon Web Services\n storage, you specify one or more SendFilePaths to identify the files you\n want to transfer, and a RemoteDirectoryPath to specify the destination\n folder.

      \n
    • \n
    \n
  • \n
" + "smithy.api#documentation": "

Begins a file transfer between local Amazon Web Services storage and a remote AS2 or SFTP server.

\n
    \n
  • \n

    For an AS2 connector, you specify the ConnectorId and one or more SendFilePaths to identify the files\n you want to transfer.

    \n
  • \n
  • \n

    For an SFTP connector, the file transfer can be either outbound or inbound. In both\n cases, you specify the ConnectorId. Depending on the direction of the transfer,\n you also specify the following items:

    \n
      \n
    • \n

      If you are transferring file from a partner's SFTP server to Amazon Web Services\n storage, you specify one or more RetrieveFilePaths to identify the files\n you want to transfer, and a LocalDirectoryPath to specify the destination\n folder.

      \n
    • \n
    • \n

      If you are transferring file to a partner's SFTP server from Amazon Web Services\n storage, you specify one or more SendFilePaths to identify the files you\n want to transfer, and a RemoteDirectoryPath to specify the destination\n folder.

      \n
    • \n
    \n
  • \n
" } }, "com.amazonaws.transfer#StartFileTransferRequest": { @@ -7459,6 +7580,9 @@ { "target": "com.amazonaws.transfer#SendWorkflowStepState" }, + { + "target": "com.amazonaws.transfer#StartDirectoryListing" + }, { "target": "com.amazonaws.transfer#StartFileTransfer" }, diff --git a/models/trustedadvisor.json b/models/trustedadvisor.json index 0c2e7dcc5b..03d3ad81b5 100644 --- a/models/trustedadvisor.json +++ b/models/trustedadvisor.json @@ -110,6 +110,94 @@ "target": "com.amazonaws.trustedadvisor#AccountRecommendationLifecycleSummary" } }, + "com.amazonaws.trustedadvisor#BatchUpdateRecommendationResourceExclusion": { + "type": "operation", + "input": { + "target": "com.amazonaws.trustedadvisor#BatchUpdateRecommendationResourceExclusionRequest" + }, + "output": { + "target": "com.amazonaws.trustedadvisor#BatchUpdateRecommendationResourceExclusionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.trustedadvisor#AccessDeniedException" + }, + { + "target": "com.amazonaws.trustedadvisor#ConflictException" + }, + { + "target": "com.amazonaws.trustedadvisor#InternalServerException" + }, + { + "target": "com.amazonaws.trustedadvisor#ThrottlingException" + }, + { + "target": "com.amazonaws.trustedadvisor#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Update one or more exclusion status for a list of recommendation resources

", + "smithy.api#examples": [ + { + "title": "Batch updates the exclusion status for a list of recommendation resources", + "input": { + "recommendationResourceExclusions": [ + { + "arn": "arn:aws:trustedadvisor::000000000000:recommendation-resource/55fa4d2e-bbb7-491a-833b-5773e9589578/18959a1f1973cff8e706e9d9bde28bba36cd602a6b2cb86c8b61252835236010", + "isExcluded": true + } + ] + }, + "output": { + "batchUpdateRecommendationResourceExclusionErrors": [ + { + "arn": "arn:aws:trustedadvisor::000000000000:recommendation-resource/55fa4d2e-bbb7-491a-833b-5773e9589578/18959a1f1973cff8e706e9d9bde28bba36cd602a6b2cb86c8b61252835236010", + "errorCode": "404", + "errorMessage": "Exception that the requested resource has not been found" + } + ] + } + } + ], + "smithy.api#http": { + "method": "PUT", + "uri": "/v1/batch-update-recommendation-resource-exclusion", + "code": 200 + }, + "smithy.api#idempotent": {}, + "smithy.api#tags": [] + } + }, + "com.amazonaws.trustedadvisor#BatchUpdateRecommendationResourceExclusionRequest": { + "type": "structure", + "members": { + "recommendationResourceExclusions": { + "target": "com.amazonaws.trustedadvisor#RecommendationResourceExclusionList", + "traits": { + "smithy.api#documentation": "

A list of recommendation resource ARNs and exclusion status to update

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.trustedadvisor#BatchUpdateRecommendationResourceExclusionResponse": { + "type": "structure", + "members": { + "batchUpdateRecommendationResourceExclusionErrors": { + "target": "com.amazonaws.trustedadvisor#UpdateRecommendationResourceExclusionErrorList", + "traits": { + "smithy.api#documentation": "

A list of recommendation resource ARNs whose exclusion status failed to update, if any

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.trustedadvisor#CheckArn": { "type": "string", "traits": { @@ -216,6 +304,23 @@ "smithy.api#httpError": 409 } }, + "com.amazonaws.trustedadvisor#ExclusionStatus": { + "type": "enum", + "members": { + "EXCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "excluded" + } + }, + "INCLUDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "included" + } + } + } + }, "com.amazonaws.trustedadvisor#GetOrganizationRecommendation": { "type": "operation", "input": { @@ -264,13 +369,13 @@ "security" ], "resourcesAggregates": { - "errorCount": 150, - "okCount": 500, - "warningCount": 100 + "errorCount": 0, + "okCount": 0, + "warningCount": 0 }, "source": "ta_check", - "status": "ok", - "type": "standard" + "status": "warning", + "type": "priority" } } } @@ -368,7 +473,7 @@ "security" ], "resourcesAggregates": { - "errorCount": 0, + "errorCount": 1, "okCount": 0, "warningCount": 0 }, @@ -472,7 +577,15 @@ ], "description": "Checks security groups for rules that allow unrestricted access to a resource. Unrestricted access increases opportunities for malicious activity (hacking, denial-of-service attacks, loss of data).\n
\n
Note: This check only evaluates security groups that you create and their inbound rules for IPv4 addresses. Security groups created by AWS Directory Services are flagged as red or yellow, but they don’t pose a security risk and can be safely ignored or excluded. For more information, see the Trusted Advisor FAQ.\n
\n
\n

Alert Criteria

\n
\nRed: A security group rule has a source IP address with a /0 suffix for ports other than 25, 80, or 443.\n
\n
\n

Recommended Action

\n
\nRestrict access to only those IP addresses that require it. To restrict access to a specific IP address, set the suffix to /32 (for example, 192.0.2.10/32). Be sure to delete overly permissive rules after creating rules that are more restrictive.\n
\n
\n

Additional Resources

\n
Amazon EC2 Security Groups
\nClassless Inter-Domain Routing (Wikipedia)", "id": "1iG5NDGVre", - "metadata": {}, + "metadata": { + "0": "Region", + "1": "Security Group Name", + "2": "Security Group ID", + "3": "Protocol", + "4": "Port", + "5": "Status", + "6": "IP Range" + }, "name": "Security Groups - Unrestricted Access", "pillars": [ "security" @@ -487,22 +600,22 @@ "description": "Checks your usage of RDS and provides recommendations on purchase of Reserved Instances to help reduce costs incurred from using RDS On-Demand. AWS generates these recommendations by analyzing your On-Demand usage for the past 30 days. We then simulate every combination of reservations in the generated category of usage in order to identify the best number of each type of Reserved Instance to purchase to maximize your savings. This check covers recommendations based on partial upfront payment option with 1-year or 3-year commitment. This check is not available to accounts linked in Consolidated Billing. Recommendations are only available for the Paying Account.

\r\n

Alert Criteria


\nYellow: Optimizing the purchase of RDS Reserved Instances can help reduce costs.

\r\n

Recommended Action


\r\nSee the Cost Explorer page for more detailed recommendations, customization options (e.g. look-back period, payment option, etc.) and to purchase RDS Reserved Instances.\n
\n
\n

Additional Resources


\nInformation on RDS Reserved Instances and how they can save you money can be found here.
\nFor more information on this recommendation, see Reserved Instance Optimization Check Questions in the Trusted Advisor FAQs.
\nFor more detailed description of fields, see Cost Explorer documentation", "id": "1qazXsw23e", "metadata": { - "properties.averageUtilization": "Expected Average Reserved Instance Utilization", - "properties.databaseEdition": "Database Edition", - "properties.databaseEngine": "Database Engine", - "properties.deploymentOption": "Deployment Option", - "properties.estimatedBreakEvenInMonths": "Estimated Break Even (months)", - "properties.estimatedMonthlyOnDemandCost": "Estimated On-Demand Cost Post Recommended Reserved Instance Purchase (monthly)", - "properties.estimatedMonthlySavingsAmount": "Estimated Savings with Recommendation (monthly)", - "properties.family": "Family", - "properties.instanceType": "Instance Type", - "properties.licenseModel": "License Model", - "properties.lookbackPeriodInDays": "Lookback Period (days)", - "properties.recommendedNumberOfInstancesToPurchase": "Recommended number of Reserved Instances to purchase", - "properties.recurringStandardMonthlyCost": "Estimated cost of Reserved Instances (monthly)", - "properties.region": "Region", - "properties.termInYears": "Term (years)", - "properties.upfrontCost": "Upfront Cost of Reserved Instances" + "0": "Region", + "1": "Family", + "10": "Upfront Cost of Reserved Instances", + "11": "Estimated cost of Reserved Instances (monthly)", + "12": "Estimated On-Demand Cost Post Recommended Reserved Instance Purchase (monthly)", + "13": "Estimated Break Even (months)", + "14": "Lookback Period (days)", + "15": "Term (years)", + "2": "Instance Type", + "3": "License Model", + "4": "Database Edition", + "5": "Database Engine", + "6": "Deployment Option", + "7": "Recommended number of Reserved Instances to purchase", + "8": "Expected Average Reserved Instance Utilization", + "9": "Estimated Savings with Recommendation (monthly)" }, "name": "Amazon Relational Database Service (RDS) Reserved Instance Optimization", "pillars": [ @@ -518,18 +631,18 @@ "description": "Checks your usage of Redshift and provides recommendations on purchase of Reserved Nodes to help reduce costs incurred from using Redshift On-Demand. AWS generates these recommendations by analyzing your On-Demand usage for the past 30 days. We then simulate every combination of reservations in the generated category of usage in order to identify the best number of each type of Reserved Nodes to purchase to maximize your savings. This check covers recommendations based on partial upfront payment option with 1-year or 3-year commitment. This check is not available to accounts linked in Consolidated Billing. Recommendations are only available for the Paying Account.

\n

Alert Criteria


Yellow: Optimizing the purchase of Redshift Reserved Nodes can help reduce costs.

\n

Recommended Action


See the Cost Explorer page for more detailed recommendations, customization options (e.g. look-back period, payment option, etc.) and to purchase Redshift Reserved Nodes.

\n

Additional Resources


Information on Redshift Reserved Nodes and how they can save you money can be found here.
\nFor more information on this recommendation, see Reserved Instance Optimization Check Questions in the Trusted Advisor FAQs.
\nFor more detailed description of fields, see Cost Explorer documentation", "id": "1qw23er45t", "metadata": { - "properties.averageUtilization": "Expected Average Reserved Node Utilization", - "properties.estimatedBreakEvenInMonths": "Estimated Break Even (months)", - "properties.estimatedMonthlyOnDemandCost": "Estimated On-Demand Cost Post Recommended Reserved Nodes Purchase (monthly)", - "properties.estimatedMonthlySavingsAmount": "Estimated Savings with Recommendation (monthly)", - "properties.family": "Family", - "properties.lookbackPeriodInDays": "Lookback Period (days)", - "properties.nodeType": "Node Type", - "properties.recommendedNumberOfInstancesToPurchase": "Recommended number of Reserved Nodes to purchase", - "properties.recurringStandardMonthlyCost": "Estimated cost of Reserved Nodes (monthly)", - "properties.region": "Region", - "properties.termInYears": "Term (years)", - "properties.upfrontCost": "Upfront Cost of Reserved Nodes" + "0": "Region", + "1": "Family", + "10": "Lookback Period (days)", + "11": "Term (years)", + "2": "Node Type", + "3": "Recommended number of Reserved Nodes to purchase", + "4": "Expected Average Reserved Node Utilization", + "5": "Estimated Savings with Recommendation (monthly)", + "6": "Upfront Cost of Reserved Nodes", + "7": "Estimated cost of Reserved Nodes (monthly)", + "8": "Estimated On-Demand Cost Post Recommended Reserved Nodes Purchase (monthly)", + "9": "Estimated Break Even (months)" }, "name": "Amazon Redshift Reserved Node Optimization", "pillars": [ @@ -538,7 +651,7 @@ "source": "ta_check" } ], - "nextToken": "AAMA-EFRSURBSGhRVGVBMmRTaGNReVg2WmJuREtyc2QxUDBYdktFVDg3dXVCMkM2UHVseVBBRVVwQzBxdDBCOFAzZDRJczV2aGN0cUFBQUFmakI4QmdrcWhraUc5dzBCQndhZ2J6QnRBZ0VBTUdnR0NTcUdTSWIzRFFFSEFUQWVCZ2xnaGtnQlpRTUVBUzR3RVFRTWxoM2N4K1JBTm9TM2tqVHNBZ0VRZ0R0U1hlNzVJNG4vZHljU0plUWN6NHJONVVHZmVEQ1FsT3pQdmx3V29lUndJMWs4QldJZ3FIRnNJMDUzSTRNSnlWQUsxeCtJN1ROM2hrcmZPUT09sJdl-7H5vLEjKO0UvvSHSUgK48BRPR5gU8d9MbO68zE_aQsbJcIiW0AAVnc6YGhUFEcdpnIszLoB6QHKZwTnEIXv5jkt7nFhorlfeT_YqCAPMrQsbJKGwCRAyTkHYPbQCHZtlE-hb9TnGmBO1I44yB9yoqE2iy9BwsdGm_GDAtBkDWng_WJP0_qWBnZlbtGnJrseVbV5UN1vNfTvxFJ1TQ8JSQpiFwgQ_JIMcj3fVyhON1K1QoWGn6fPpYyN5ZwNh4imjrIBl3O3RoKz5EXpJG3yFqA_UhXIfQa0eaNcRqNadbYkLok=" + "nextToken": "" } } ], @@ -678,10 +791,13 @@ { "accountId": "000000000000", "accountRecommendationArn": "arn:aws:trustedadvisor::000000000000:recommendation/9534ec9b-bf3a-44e8-8213-2ed68b39d9d5", - "lifecycleStage": "resolved" + "lifecycleStage": "resolved", + "updateReason": "Resolved issue", + "updateReasonCode": "valid_business_case", + "lastUpdatedAt": "2023-01-17T18:25:44.552Z" } ], - "nextToken": "AAMA-EFRSURBSGhRVGVBMmRTaGNReVg2WmJuREtyc2QxUDBYdktFVDg3dXVCMkM2UHVseVBBRXh1QXZLTHlrTTFGcExuNmxVbWcxdEFBQUFmakI4QmdrcWhraUc5dzBCQndhZ2J6QnRBZ0VBTUdnR0NTcUdTSWIzRFFFSEFUQWVCZ2xnaGtnQlpRTUVBUzR3RVFRTUY2WWU5NVVZZXVBY0ZyOS9BZ0VRZ0RzZmZWdkFNYWU3akxUS0Fmc1dBUmdsTlJadWI3ZDhGWHF5eTNBOTloenpzNUJ3WUZnWjY3MzM1N3B2eGVQcDhQMHl3NGJrSFlHMTNEN0NaQT09KF3n6Ghj-Z9I8pjzwpxNB8fZMSZCS2Eh5pZdfoz5BP87e0KUXIzWLwupY-OGmK_klEh_J6lQMjVZmvR_C1BqTqZs0t3O0UNh29UPNdvfxIC2y2Wkrl4vKf8Zjs60ysx_eP9vVX01kpv1mxacIji9gp6lCRkMEAMmCfqW8a4bUKLZ93umoGVdYCPn_nKZHMHvqDtpHO-zHMeW2hXf8RQNQKR9pfWDsp_NBjWBqkaTuNyjOE3ardMrFnyK7CMvIHjBwn8_8guzGpY0UKVNldWzyUQRbgVXTxF-xkSMzxrOm6rxMXFbrAE=" + "nextToken": "" } } ], @@ -811,18 +927,19 @@ "id": "bb38affc0ce0681d9a6cd13f302383ba03a8f63dfe7a379dc403c619119d86af", "lastUpdatedAt": "2023-11-01T15:09:51.891Z", "metadata": { - "daysSinceLastConnection": "14", - "estimatedMonthlySavings": "208.79999999999998", - "instanceName": "database-1-instance-1", - "instanceType": "db.r5.large", - "multiAZ": "false", - "region": "us-west-2", - "resourceARN": "arn:aws:rds:us-west-2:000000000000:db:database-1-instance-1", - "storageSizeGB": "1" + "0": "14", + "1": "208.79999999999998", + "2": "database-1-instance-1", + "3": "db.r5.large", + "4": "false", + "5": "us-west-2", + "6": "arn:aws:rds:us-west-2:000000000000:db:database-1-instance-1", + "7": "1" }, "recommendationArn": "arn:aws:trustedadvisor:::organization-recommendation/5a694939-2e54-45a2-ae72-730598fa89d0", "regionCode": "us-west-2", - "status": "warning" + "status": "warning", + "exclusionStatus": "excluded" }, { "arn": "arn:aws:trustedadvisor::000000000000:recommendation-resource/5a694939-2e54-45a2-ae72-730598fa89d0/51fded4d7a3278818df9cfe344ff5762cec46c095a6763d1ba1ba53bd0e1b0e6", @@ -830,18 +947,19 @@ "id": "51fded4d7a3278818df9cfe344ff5762cec46c095a6763d1ba1ba53bd0e1b0e6", "lastUpdatedAt": "2023-11-01T15:09:51.891Z", "metadata": { - "daysSinceLastConnection": "14", - "estimatedMonthlySavings": "31.679999999999996", - "instanceName": "database-1", - "instanceType": "db.t3.small", - "multiAZ": "false", - "region": "us-west-2", - "resourceARN": "arn:aws:rds:us-west-2:000000000000:db:database-1", - "storageSizeGB": "20" + "0": "14", + "1": "31.679999999999996", + "2": "database-1", + "3": "db.t3.small", + "4": "false", + "5": "us-west-2", + "6": "arn:aws:rds:us-west-2:000000000000:db:database-1", + "7": "20" }, "recommendationArn": "arn:aws:trustedadvisor:::organization-recommendation/5a694939-2e54-45a2-ae72-730598fa89d0", "regionCode": "us-west-2", - "status": "warning" + "status": "warning", + "exclusionStatus": "excluded" }, { "arn": "arn:aws:trustedadvisor::000000000000:recommendation-resource/5a694939-2e54-45a2-ae72-730598fa89d0/f4d01bd20f4cd5372062aafc8786c489e48f0ead7cdab121463bf9f89e40a36b", @@ -849,21 +967,22 @@ "id": "f4d01bd20f4cd5372062aafc8786c489e48f0ead7cdab121463bf9f89e40a36b", "lastUpdatedAt": "2023-11-01T15:09:51.891Z", "metadata": { - "daysSinceLastConnection": "14", - "estimatedMonthlySavings": "187.20000000000002", - "instanceName": "database-2-instance-1-us-west-2a", - "instanceType": "db.r6g.large", - "multiAZ": "true", - "region": "us-west-2", - "resourceARN": "arn:aws:rds:us-west-2:000000000000:db:database-2-instance-1-us-west-2a", - "storageSizeGB": "1" + "0": "14", + "1": "187.20000000000002", + "2": "database-2-instance-1-us-west-2a", + "3": "db.r6g.large", + "4": "true", + "5": "us-west-2", + "6": "arn:aws:rds:us-west-2:000000000000:db:database-2-instance-1-us-west-2a", + "7": "1" }, "recommendationArn": "arn:aws:trustedadvisor:::organization-recommendation/5a694939-2e54-45a2-ae72-730598fa89d0", "regionCode": "us-west-2", - "status": "warning" + "status": "warning", + "exclusionStatus": "included" } ], - "nextToken": "AAMA-EFRSURBSGhRVGVBMmRTaGNReVg2WmJuREtyc2QxUDBYdktFVDg3dXVCMkM2UHVseVBBRkh6azN0L1pnN1RldmE4L0N2TjRBOUFBQUFmakI4QmdrcWhraUc5dzBCQndhZ2J6QnRBZ0VBTUdnR0NTcUdTSWIzRFFFSEFUQWVCZ2xnaGtnQlpRTUVBUzR3RVFRTTF2dEdvL0hyYjgrekZxL3FBZ0VRZ0Rzem5HWHZiV2NhOG5TdEE5ZmFoWHpSRm1xU0dUcVAvOFBteW5OWFFkZjNKT3NMUXNDblVsMTlCUnZHS3BKQnFZTlNwbXl2VEllaGFEU1gvUT09W0JMIfQ6puz70ZdK2v6sV1XDCgBIh_e6D-jVUuQQjUaIoy0uLO9QfGrlcSiJ-WvNfhbg8zO0JLcNl6s6bXqZZPZYtnMXiZ_-ygAQhajX_ObCAOedCjpcfikGf6d6KwrjVUplGOaO_NA0Xp6LJExCnViusJCzmKbLOHoBSsdEknb4kY88-iZ1lebblumsWBxsZ8ADcguSLon5IXlejoDf6UukwoM3Z7EjIue3O_OR0gT9DST52shjyNObOzPizO-auI2ZoNKE1y4bzIKtWHzqRfAHHMT4VspFBm58564FqedKqF-D71k=" + "nextToken": "" } } ], @@ -914,6 +1033,13 @@ "smithy.api#httpQuery": "status" } }, + "exclusionStatus": { + "target": "com.amazonaws.trustedadvisor#ExclusionStatus", + "traits": { + "smithy.api#documentation": "

The exclusion status of the resource

", + "smithy.api#httpQuery": "exclusionStatus" + } + }, "regionCode": { "target": "smithy.api#String", "traits": { @@ -1009,13 +1135,13 @@ "security" ], "resourcesAggregates": { - "errorCount": 150, - "okCount": 500, - "warningCount": 100 + "errorCount": 0, + "okCount": 0, + "warningCount": 0 }, "source": "ta_check", - "status": "ok", - "type": "standard" + "status": "warning", + "type": "priority" }, { "arn": "arn:aws:trustedadvisor:::organization-recommendation/4ecff4d4-1bc1-4c99-a5b8-0fff9ee500d6", @@ -1030,23 +1156,23 @@ "security" ], "resourcesAggregates": { - "errorCount": 150, - "okCount": 500, - "warningCount": 100 + "errorCount": 0, + "okCount": 0, + "warningCount": 0 }, "source": "ta_check", - "status": "ok", - "type": "standard" + "status": "warning", + "type": "priority" } ], - "nextToken": "AAMA-EFRSURBSGhRVGVBCmRTaGNReVg2WmJuREtyc2QxUDBYdktFVDg3dXVCMkM2UHVseVBBSEwveUo0WGtzUERDZUEweDdjVXNJUkFBQUFmakI4QmdrcWhraUc5dzBCQndhZ2J6QnRBZ0VBTUdnR0NTcUdTSWIzRFFFSEFUQWVCZ2xnaGtnQlpRTUVBUzR3RVFRTVA1Q0tvVHlvaVBMMXBheFJBZ0VRZ0R0M3NSQXhJNVNoNVJGdFpXN2tjc3JRenlDSDFqaHRkbXp6VTYxZkw0V2lKbkhWeTFqZllaY2prNERPd1hUM2lZVjdZdnJpblRjRFNIVHExZz09wONgOWmSmHcQa82lL7tfrIIiz5kwiP348ZRHDFnNtRRBmuyjwEy8nWAjw_ldisYaifLWtlT31JCln5EAe7tt9c5D_pn2gh-m6EIakcQKX61DY-wuxYIKfeu1ibferY2wq_dTEbqXY6OVN-0N84GKe2azBRV9N80PLouIpG-bt9VjsqdTviEFs3eQnEDJnxRGQmgXrJQFTZIqSLDSsC2-niOVkY7HNvWtLT3fHvXUfFDfD5XlMeWL3DBbnD9beij553VbvnbuKj50BcoV2zWqgc8_eFM4xM0Gsc16OajX0Xio6ZdmwOM=" + "nextToken": "" } }, { "title": "Filter and return a max of one AWS Organization Recommendation that is a part of the \"security\" pillar", "input": { "pillar": "security", - "maxResults": 1 + "maxResults": 100 }, "output": { "organizationRecommendationSummaries": [ @@ -1063,24 +1189,24 @@ "security" ], "resourcesAggregates": { - "errorCount": 150, - "okCount": 500, - "warningCount": 100 + "errorCount": 0, + "okCount": 0, + "warningCount": 0 }, "source": "ta_check", - "status": "ok", - "type": "standard" + "status": "warning", + "type": "priority" } ], - "nextToken": "AAMA-EFRSURBSGhRVGVBMmRTaGNReVg2WmJuREtyc2QxUDBYdktFVDg3dXVCMkM2UHVseVBBSG15cmpVYXd3bUtUM0J2dzhleUsyakFBQUFmakI4QmdrcWhraUc5dzBCQndhZ2J6QnRBZ0VBTUdnR0NTcUdTSWIzRFFFSEFUQWVCZ2xnaGtnQlpRTUVBUzR3RVFRTUFadFFiRTl2VmlCZWN4WHNBZ0VRZ0RzdWRPMTFVWDNjUW9MNStEeTU0QktWQlNMeDBSa3RoeG9UZVJONjRFQzJBUDdvMTdvRTMxTWlJL1FvdE9neGtYWk1aZmx1dFpybHBwRjRTUT093orMKsmELla57p7di2_DnzTGQJxzgjD9HBZApR3831zITqaZo5aTHJ8q59gon_DhD0s2sm3dY8f3SmZxI7IevqI6Vz1UTY0C3IIsyA6XrQiXwfNo36mumo_W7eSf9xNk1CD_to2qwxq-b6m1-88SfNzfvzoA4x52DBczJZNYERmdQRkh-CRs3CSnTdFdXvb8fuyONmJnJuSB5x06IIBpMhLIQqNYLkofnsWRxDUAppOE0aRNfzC4iajmWq9JiYytfc9yGsbU4bqplPYerEtSIRau0QfBrnfifJL7VilfaIwrEs_j_ekqLQ==" + "nextToken": "" } }, { "title": "Use the \"nextToken\" returned from a previous request to fetch the next page of filtered AWS Organization Recommendations that are a part of the \"security\" pillar", "input": { - "nextToken": "AAMA-EFRSURBSGhRVGVBMmRTaGNReVg2WmJuREtyc2QxUDBYdktFVDg3dXVCMkM2UHVseVBBSG15cmpVYXd3bUtUM0J2dzhleUsyakFBQUFmakI4QmdrcWhraUc5dzBCQndhZ2J6QnRBZ0VBTUdnR0NTcUdTSWIzRFFFSEFUQWVCZ2xnaGtnQlpRTUVBUzR3RVFRTUFadFFiRTl2VmlCZWN4WHNBZ0VRZ0RzdWRPMTFVWDNjUW9MNStEeTU0QktWQlNMeDBSa3RoeG9UZVJONjRFQzJBUDdvMTdvRTMxTWlJL1FvdE9neGtYWk1aZmx1dFpybHBwRjRTUT093orMKsmELla57p7di2_DnzTGQJxzgjD9HBZApR3831zITqaZo5aTHJ8q59gon_DhD0s2sm3dY8f3SmZxI7IevqI6Vz1UTY0C3IIsyA6XrQiXwfNo36mumo_W7eSf9xNk1CD_to2qwxq-b6m1-88SfNzfvzoA4x52DBczJZNYERmdQRkh-CRs3CSnTdFdXvb8fuyONmJnJuSB5x06IIBpMhLIQqNYLkofnsWRxDUAppOE0aRNfzC4iajmWq9JiYytfc9yGsbU4bqplPYerEtSIRau0QfBrnfifJL7VilfaIwrEs_j_ekqLQ==", + "nextToken": "", "pillar": "security", - "maxResults": 1 + "maxResults": 100 }, "output": { "organizationRecommendationSummaries": [ @@ -1097,13 +1223,13 @@ "security" ], "resourcesAggregates": { - "errorCount": 150, - "okCount": 500, - "warningCount": 100 + "errorCount": 0, + "okCount": 0, + "warningCount": 0 }, "source": "ta_check", - "status": "ok", - "type": "standard" + "status": "warning", + "type": "priority" } ] } @@ -1276,18 +1402,19 @@ "awsResourceId": "webcms-dev-01", "lastUpdatedAt": "2023-11-01T15:09:51.891Z", "metadata": { - "daysSinceLastConnection": "14", - "estimatedMonthlySavings": "123.12000000000002", - "instanceName": "webcms-dev-01", - "instanceType": "db.m6i.large", - "multiAZ": "false", - "region": "us-east-1", - "resourceARN": "arn:aws:rds:us-east-1:000000000000:db:webcms-dev-01", - "storageSizeGB": "20" + "0": "14", + "1": "123.12000000000002", + "2": "webcms-dev-01", + "3": "db.m6i.large", + "4": "false", + "5": "us-east-1", + "6": "arn:aws:rds:us-east-1:000000000000:db:webcms-dev-01", + "7": "20" }, "recommendationArn": "arn:aws:trustedadvisor::000000000000:recommendation/55fa4d2e-bbb7-491a-833b-5773e9589578", "regionCode": "us-east-1", - "status": "warning" + "status": "warning", + "exclusionStatus": "excluded" }, { "arn": "arn:aws:trustedadvisor::000000000000:recommendation-resource/55fa4d2e-bbb7-491a-833b-5773e9589578/e6367ff500ac90db8e4adeb4892e39ee9c36bbf812dcbce4b9e4fefcec9eb63e", @@ -1295,18 +1422,19 @@ "awsResourceId": "aws-dev-db-stack-instance-1", "lastUpdatedAt": "2023-11-01T15:09:51.891Z", "metadata": { - "daysSinceLastConnection": "14", - "estimatedMonthlySavings": "29.52", - "instanceName": "aws-dev-db-stack-instance-1", - "instanceType": "db.t2.small", - "multiAZ": "false", - "region": "us-east-1", - "resourceARN": "arn:aws:rds:us-east-1:000000000000:db:aws-dev-db-stack-instance-1", - "storageSizeGB": "1" + "0": "14", + "1": "29.52", + "2": "aws-dev-db-stack-instance-1", + "3": "db.t2.small", + "4": "false", + "5": "us-east-1", + "6": "arn:aws:rds:us-east-1:000000000000:db:aws-dev-db-stack-instance-1", + "7": "1" }, "recommendationArn": "arn:aws:trustedadvisor::000000000000:recommendation/55fa4d2e-bbb7-491a-833b-5773e9589578", "regionCode": "us-east-1", - "status": "warning" + "status": "warning", + "exclusionStatus": "included" }, { "arn": "arn:aws:trustedadvisor::000000000000:recommendation-resource/55fa4d2e-bbb7-491a-833b-5773e9589578/31aa78ba050a5015d2d38cca7f5f1ce88f70857c4e1c3ad03f8f9fd95dad7459", @@ -1314,21 +1442,22 @@ "awsResourceId": "aws-awesome-apps-stack-db", "lastUpdatedAt": "2023-11-01T15:09:51.891Z", "metadata": { - "daysSinceLastConnection": "14", - "estimatedMonthlySavings": "114.48000000000002", - "instanceName": "aws-awesome-apps-stack-db", - "instanceType": "db.m6g.large", - "multiAZ": "false", - "region": "us-east-1", - "resourceARN": "arn:aws:rds:us-east-1:000000000000:db:aws-awesome-apps-stack-db", - "storageSizeGB": "100" + "0": "14", + "1": "114.48000000000002", + "2": "aws-awesome-apps-stack-db", + "3": "db.m6g.large", + "4": "false", + "5": "us-east-1", + "6": "arn:aws:rds:us-east-1:000000000000:db:aws-awesome-apps-stack-db", + "7": "100" }, "recommendationArn": "arn:aws:trustedadvisor::000000000000:recommendation/55fa4d2e-bbb7-491a-833b-5773e9589578", "regionCode": "us-east-1", - "status": "warning" + "status": "warning", + "exclusionStatus": "excluded" } ], - "nextToken": "AAMA-EFRSURBSGhRVGVBMmJTaGNReVg2WmJuREtyc2QxUDBYdktFVDg3dXVCMkM2UHVseVBBRmZpZ2taY09rdSt5VXhocEdLR0k3TUFBQUFmakI4QmdrcWhraUc5dzBCQndhZ2J6QnRBZ0VBTUdnR0NTcUdTSWIzRFFFSEFUQWVCZ2xnaGtnQlpRTUVBUzR3RVFRTWZoU3BQNUxtMkt3THpCTG5BZ0VRZ0R2WjBHdzljc3RsV2ZiSkg0QkcvUkJQZDhIc0dGTHNLOXhLc1p5bU8vVlBtYy90dThSYmVKVUhxM3RTS1JwUDB4bWp2dU1jSGQxV3BOTU40UT09pyOzpADaUjX5i75XDGEpw6TEkHoxZsepcoWjQtXjvAYrKILVkdI0lpSZqghK4mPnFGgecInr0_-BJ4ud9TPCZmnNxr7MuYTYJVFWArAaddEw3oJFOY8YLQHjJ37LsY_dEpMN6oDwdAdcdyEZBUBeK71f6XPQa0S1sw5Si_NYuJEvQ3bPZiS8V07IUkUUhe_gE1_xjGK2mA3eTW0wiylW0l8jfz3u8lC6md_5GmvVrtphEkWoc4A9DIfR9CsX_bmvOa4P3NI9rZ9-gezuhkd3k3nXqH52hZPI1fl5iyd4vSFXlvaeawI=" + "nextToken": "" } } ], @@ -1379,6 +1508,13 @@ "smithy.api#httpQuery": "status" } }, + "exclusionStatus": { + "target": "com.amazonaws.trustedadvisor#ExclusionStatus", + "traits": { + "smithy.api#documentation": "

The exclusion status of the resource

", + "smithy.api#httpQuery": "exclusionStatus" + } + }, "regionCode": { "target": "smithy.api#String", "traits": { @@ -1473,7 +1609,7 @@ "security" ], "resourcesAggregates": { - "errorCount": 0, + "errorCount": 1, "okCount": 0, "warningCount": 0 }, @@ -1501,22 +1637,22 @@ ], "resourcesAggregates": { "errorCount": 0, - "okCount": 0, - "warningCount": 0 + "okCount": 3, + "warningCount": 6 }, "source": "ta_check", - "status": "ok", + "status": "warning", "type": "standard" } ], - "nextToken": "AAMA-EFRSURBSGhRVGVBMmRTaGNReVg2WmJuREtyc2QxUDBYdktFVDg3dXVCMkM2UHVseVBBR3RUWW1ma3MwY0plS0llWENTZHV0SkFBQUFmakI4QmdrcWhraUc5dzBCQndhZ2J6QnRBZ0VBTUdnR0NTcUdTSWIzRFFFSEFUQWVCZ2xnaGtnQlpRTUVBUzR3RVFRTUVSUDNkclhLblpkd3h4MW5BZ0VRZ0RzTFBpOTlzZmppYXJxMjJoMHlRWDV6bkFuRGZna3FOZEpKaWtuUGloUWpFRzFrSnR6eWV2UGVjWFZudEw1RHQ0dkdvQ1RXL2hGeERFNG44QT09NZONpU850LXJxneOHiAMVmAkpDmCUH5-ob34VBXNqkq9y3s54mW4se3VGv6Ds85WwEaW9uEAM3HpLWMLJjw6u3rLFdwzvNsmicgmGvBd_kZVXJ_bo3Oqgo9koXDg5ltCZt8nxhp-6FnU8dyBDdSENAlQ3ldIb6QIyyRCH5185coh7UYIjbtd7Ne-TMgHk2HsLongKnbz1Lq6dfOm3mqHyJHAmrU8Qnbm10X2Ph9ZsolloEw4HiGMdEKL5-DnGRgXp3gZLuOTrAuukHwqpd1-cRZYHxmjaIUFiSuVuSC4QlWDeeiqlPo=" + "nextToken": "" } }, { "title": "Filter and return a max of one Recommendation that is a part of AWS IAM", "input": { "awsService": "iam", - "maxResults": 1 + "maxResults": 100 }, "output": { "recommendationSummaries": [ @@ -1539,7 +1675,7 @@ "security" ], "resourcesAggregates": { - "errorCount": 0, + "errorCount": 1, "okCount": 0, "warningCount": 0 }, @@ -1548,15 +1684,15 @@ "type": "standard" } ], - "nextToken": "AAMA-EFRSURBSGhRVGVBMmRTaGNReVg2WmJuREtyc2QxUDBYdktFVDg3dXVCMkM2UHVseVBBR01zYktEMDlmSm5nSkM1TGYzaWtTNkFBQUFmakI4QmdrcWhraUc5dzBCQndhZ2J6QnRBZ0VBTUdnR0NTcUdTSWIzRFFFSEFUQWVCZ2xnaGtnQlpRTUVBUzR3RVFRTVlwVDdDRk01cTdzV0JnRmhBZ0VRZ0R1dVg4dkVOYjZYTHJ6WVhvUlBWQVg1YU5KZkkraElsNk5lTjh3TXpzWkhHUEVzWXNkbXI2bTZzNTl1TEhKWUN2dGpqOENpTzVzM0FDT3BqZz09S35zPCUsSxxYFtdXw7z8BaSuDmz9P1Toit_MFrXsfpnPmDd6Q1f1NaJhi3O8NoZvzinXknKoKxTeqSumUaHe7W3n6Xa3661LF979aPdhifpKw3-MQpb5oGdXGgU7UMlXHzwISkND7sLlh_s0V-jkRvWPZjLHwLg4dUCQnIqMEwo5G3IG6Ffn-SKHhqPimTnzgOrxK2i9LA0EEj6msvH00h4YXuG9M3hFP9X52T19ZGZfdDPhVKCtSshXtQ8zcCUB8ykgw8ROJvAwzQk8I1PMIS4dirHySKOgoowu4Um3bZE6hHex-zXsjA==" + "nextToken": "" } }, { - "title": "Use the \"nextToken\" returned from a previous request to fetch the next page of filtered Recommendations that are a part of AWS IAM", + "title": "Use the \"nextToken\" returned from a previous request to fetch the next page of filtered Recommendations", "input": { - "nextToken": "AAMA-EFRSURBSGhRVGVBMmRTaGNReVg2WmJuREtyc2QxUDBYdktFVDg3dXVCMkM2UHVseVBBR01zYktEMDlmSm5nSkM1TGYzaWtTNkFBQUFmakI4QmdrcWhraUc5dzBCQndhZ2J6QnRBZ0VBTUdnR0NTcUdTSWIzRFFFSEFUQWVCZ2xnaGtnQlpRTUVBUzR3RVFRTVlwVDdDRk01cTdzV0JnRmhBZ0VRZ0R1dVg4dkVOYjZYTHJ6WVhvUlBWQVg1YU5KZkkraElsNk5lTjh3TXpzWkhHUEVzWXNkbXI2bTZzNTl1TEhKWUN2dGpqOENpTzVzM0FDT3BqZz09S35zPCUsSxxYFtdXw7z8BaSuDmz9P1Toit_MFrXsfpnPmDd6Q1f1NaJhi3O8NoZvzinXknKoKxTeqSumUaHe7W3n6Xa3661LF979aPdhifpKw3-MQpb5oGdXGgU7UMlXHzwISkND7sLlh_s0V-jkRvWPZjLHwLg4dUCQnIqMEwo5G3IG6Ffn-SKHhqPimTnzgOrxK2i9LA0EEj6msvH00h4YXuG9M3hFP9X52T19ZGZfdDPhVKCtSshXtQ8zcCUB8ykgw8ROJvAwzQk8I1PMIS4dirHySKOgoowu4Um3bZE6hHex-zXsjA==", - "awsService": "iam", - "maxResults": 1 + "nextToken": "", + "awsService": "rds", + "maxResults": 100 }, "output": { "recommendationSummaries": [ @@ -1580,11 +1716,11 @@ ], "resourcesAggregates": { "errorCount": 0, - "okCount": 0, - "warningCount": 0 + "okCount": 3, + "warningCount": 6 }, "source": "ta_check", - "status": "ok", + "status": "warning", "type": "standard" } ] @@ -1936,6 +2072,13 @@ "smithy.api#timestampFormat": "date-time" } }, + "exclusionStatus": { + "target": "com.amazonaws.trustedadvisor#ExclusionStatus", + "traits": { + "smithy.api#default": "included", + "smithy.api#documentation": "

The exclusion status of the Recommendation Resource

" + } + }, "accountId": { "target": "com.amazonaws.trustedadvisor#AccountId", "traits": { @@ -2437,6 +2580,41 @@ "smithy.api#pattern": "^arn:[\\w-]+:trustedadvisor::\\d{12}:recommendation-resource\\/[\\w-]+\\/[\\w-]+$" } }, + "com.amazonaws.trustedadvisor#RecommendationResourceExclusion": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.trustedadvisor#RecommendationResourceArn", + "traits": { + "smithy.api#documentation": "

The ARN of the Recommendation Resource

", + "smithy.api#required": {} + } + }, + "isExcluded": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

The exclusion status

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The request entry for Recommendation Resource exclusion. Each entry is a combination of Recommendation Resource ARN and corresponding exclusion status

" + } + }, + "com.amazonaws.trustedadvisor#RecommendationResourceExclusionList": { + "type": "list", + "member": { + "target": "com.amazonaws.trustedadvisor#RecommendationResourceExclusion" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#uniqueItems": {} + } + }, "com.amazonaws.trustedadvisor#RecommendationResourceSummary": { "type": "structure", "members": { @@ -2490,6 +2668,13 @@ "smithy.api#timestampFormat": "date-time" } }, + "exclusionStatus": { + "target": "com.amazonaws.trustedadvisor#ExclusionStatus", + "traits": { + "smithy.api#default": "included", + "smithy.api#documentation": "

The exclusion status of the Recommendation Resource

" + } + }, "recommendationArn": { "target": "com.amazonaws.trustedadvisor#AccountRecommendationArn", "traits": { @@ -2850,6 +3035,9 @@ "type": "service", "version": "2022-09-15", "operations": [ + { + "target": "com.amazonaws.trustedadvisor#BatchUpdateRecommendationResourceExclusion" + }, { "target": "com.amazonaws.trustedadvisor#GetOrganizationRecommendation" }, @@ -3624,7 +3812,7 @@ } ], "traits": { - "smithy.api#documentation": "

Update the lifecyle of a Recommendation within an Organization. This API only supports prioritized\n recommendations.\n

", + "smithy.api#documentation": "

Update the lifecycle of a Recommendation within an Organization. This API only supports prioritized\n recommendations.\n

", "smithy.api#examples": [ { "title": "Update the lifecycle stage of an AWS Organization's Recommendation that is managed by AWS Trusted Advisor Priority", @@ -3843,6 +4031,38 @@ } } }, + "com.amazonaws.trustedadvisor#UpdateRecommendationResourceExclusionError": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.trustedadvisor#RecommendationResourceArn", + "traits": { + "smithy.api#documentation": "

The ARN of the Recommendation Resource

" + } + }, + "errorCode": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The error code

" + } + }, + "errorMessage": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The error message

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The error entry for Recommendation Resource exclusion. Each entry is a combination of Recommendation Resource ARN, error code and error message

" + } + }, + "com.amazonaws.trustedadvisor#UpdateRecommendationResourceExclusionErrorList": { + "type": "list", + "member": { + "target": "com.amazonaws.trustedadvisor#UpdateRecommendationResourceExclusionError" + } + }, "com.amazonaws.trustedadvisor#ValidationException": { "type": "structure", "members": { diff --git a/models/wafv2.json b/models/wafv2.json index 0b3edf2478..fcf56f5884 100644 --- a/models/wafv2.json +++ b/models/wafv2.json @@ -8163,7 +8163,23 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves an array of WebACLSummary objects for the web ACLs that you\n manage.

" + "smithy.api#documentation": "

Retrieves an array of WebACLSummary objects for the web ACLs that you\n manage.

", + "smithy.test#smokeTests": [ + { + "id": "ListWebACLsSuccess", + "params": { + "Scope": "REGIONAL", + "Limit": 20 + }, + "vendorParams": { + "region": "us-east-1" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "success": {} + } + } + ] } }, "com.amazonaws.wafv2#ListWebACLsRequest": { diff --git a/models/wellarchitected.json b/models/wellarchitected.json index 01c131ec3d..f381759fc5 100644 --- a/models/wellarchitected.json +++ b/models/wellarchitected.json @@ -46,6 +46,99 @@ "smithy.api#httpError": 403 } }, + "com.amazonaws.wellarchitected#AccountJiraConfigurationInput": { + "type": "structure", + "members": { + "IssueManagementStatus": { + "target": "com.amazonaws.wellarchitected#AccountJiraIssueManagementStatus", + "traits": { + "smithy.api#documentation": "

Account-level: Jira issue management status.

" + } + }, + "IssueManagementType": { + "target": "com.amazonaws.wellarchitected#IssueManagementType", + "traits": { + "smithy.api#documentation": "

Account-level: Jira issue management type.

" + } + }, + "JiraProjectKey": { + "target": "com.amazonaws.wellarchitected#JiraProjectKey", + "traits": { + "smithy.api#documentation": "

Account-level: Jira project key to sync workloads to.

" + } + }, + "IntegrationStatus": { + "target": "com.amazonaws.wellarchitected#IntegrationStatusInput", + "traits": { + "smithy.api#documentation": "

Account-level: Configuration status of the Jira integration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Account-level: Input for the Jira configuration.

" + } + }, + "com.amazonaws.wellarchitected#AccountJiraConfigurationOutput": { + "type": "structure", + "members": { + "IntegrationStatus": { + "target": "com.amazonaws.wellarchitected#IntegrationStatus", + "traits": { + "smithy.api#documentation": "

Account-level: Configuration status of the Jira integration.

" + } + }, + "IssueManagementStatus": { + "target": "com.amazonaws.wellarchitected#AccountJiraIssueManagementStatus", + "traits": { + "smithy.api#documentation": "

Account-level: Jira issue management status.

" + } + }, + "IssueManagementType": { + "target": "com.amazonaws.wellarchitected#IssueManagementType", + "traits": { + "smithy.api#documentation": "

Account-level: Jira issue management type.

" + } + }, + "Subdomain": { + "target": "com.amazonaws.wellarchitected#Subdomain", + "traits": { + "smithy.api#documentation": "

Account-level: Jira subdomain URL.

" + } + }, + "JiraProjectKey": { + "target": "com.amazonaws.wellarchitected#JiraProjectKey", + "traits": { + "smithy.api#documentation": "

Account-level: Jira project key to sync workloads to.

" + } + }, + "StatusMessage": { + "target": "com.amazonaws.wellarchitected#StatusMessage", + "traits": { + "smithy.api#documentation": "

Account-level: Status message on configuration of the Jira integration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Account-level: Output configuration of the Jira integration.

" + } + }, + "com.amazonaws.wellarchitected#AccountJiraIssueManagementStatus": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, "com.amazonaws.wellarchitected#AccountSummary": { "type": "map", "key": { @@ -154,6 +247,12 @@ "traits": { "smithy.api#documentation": "

The reason why the question is not applicable to your workload.

" } + }, + "JiraConfiguration": { + "target": "com.amazonaws.wellarchitected#JiraConfiguration", + "traits": { + "smithy.api#documentation": "

Configuration of the Jira integration.

" + } } }, "traits": { @@ -245,6 +344,12 @@ "traits": { "smithy.api#documentation": "

The type of the question.

" } + }, + "JiraConfiguration": { + "target": "com.amazonaws.wellarchitected#JiraConfiguration", + "traits": { + "smithy.api#documentation": "

Configuration of the Jira integration.

" + } } }, "traits": { @@ -1850,6 +1955,12 @@ "traits": { "smithy.api#documentation": "

The list of review template ARNs to associate with the workload.

" } + }, + "JiraConfiguration": { + "target": "com.amazonaws.wellarchitected#WorkloadJiraConfigurationInput", + "traits": { + "smithy.api#documentation": "

Jira configuration settings when creating a workload.

" + } } }, "traits": { @@ -2981,6 +3092,63 @@ "smithy.api#output": {} } }, + "com.amazonaws.wellarchitected#GetGlobalSettings": { + "type": "operation", + "input": { + "target": "smithy.api#Unit" + }, + "output": { + "target": "com.amazonaws.wellarchitected#GetGlobalSettingsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.wellarchitected#AccessDeniedException" + }, + { + "target": "com.amazonaws.wellarchitected#InternalServerException" + }, + { + "target": "com.amazonaws.wellarchitected#ThrottlingException" + }, + { + "target": "com.amazonaws.wellarchitected#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Global settings for all workloads.

", + "smithy.api#http": { + "method": "GET", + "uri": "/global-settings", + "code": 200 + } + } + }, + "com.amazonaws.wellarchitected#GetGlobalSettingsOutput": { + "type": "structure", + "members": { + "OrganizationSharingStatus": { + "target": "com.amazonaws.wellarchitected#OrganizationSharingStatus", + "traits": { + "smithy.api#documentation": "

Amazon Web Services Organizations sharing status.

" + } + }, + "DiscoveryIntegrationStatus": { + "target": "com.amazonaws.wellarchitected#DiscoveryIntegrationStatus", + "traits": { + "smithy.api#documentation": "

Discovery integration status.

" + } + }, + "JiraConfiguration": { + "target": "com.amazonaws.wellarchitected#AccountJiraConfigurationOutput", + "traits": { + "smithy.api#documentation": "

Jira configuration status.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.wellarchitected#GetLens": { "type": "operation", "input": { @@ -3970,6 +4138,12 @@ "traits": { "smithy.api#documentation": "

The improvement plan details.

" } + }, + "JiraConfiguration": { + "target": "com.amazonaws.wellarchitected#JiraConfiguration", + "traits": { + "smithy.api#documentation": "

Configuration of the Jira integration.

" + } } }, "traits": { @@ -3979,6 +4153,45 @@ "com.amazonaws.wellarchitected#IncludeSharedResources": { "type": "boolean" }, + "com.amazonaws.wellarchitected#IntegratingService": { + "type": "enum", + "members": { + "JIRA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "JIRA" + } + } + } + }, + "com.amazonaws.wellarchitected#IntegrationStatus": { + "type": "enum", + "members": { + "CONFIGURED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONFIGURED" + } + }, + "NOT_CONFIGURED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_CONFIGURED" + } + } + } + }, + "com.amazonaws.wellarchitected#IntegrationStatusInput": { + "type": "enum", + "members": { + "NOT_CONFIGURED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_CONFIGURED" + } + } + } + }, "com.amazonaws.wellarchitected#InternalServerException": { "type": "structure", "members": { @@ -4008,6 +4221,73 @@ "com.amazonaws.wellarchitected#IsReviewOwnerUpdateAcknowledged": { "type": "boolean" }, + "com.amazonaws.wellarchitected#IssueManagementType": { + "type": "enum", + "members": { + "AUTO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUTO" + } + }, + "MANUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MANUAL" + } + } + } + }, + "com.amazonaws.wellarchitected#JiraConfiguration": { + "type": "structure", + "members": { + "JiraIssueUrl": { + "target": "com.amazonaws.wellarchitected#JiraIssueUrl", + "traits": { + "smithy.api#documentation": "

The URL of the associated Jira issue.

" + } + }, + "LastSyncedTime": { + "target": "com.amazonaws.wellarchitected#Timestamp" + } + }, + "traits": { + "smithy.api#documentation": "

Configuration of the Jira integration.

" + } + }, + "com.amazonaws.wellarchitected#JiraIssueUrl": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "com.amazonaws.wellarchitected#JiraProjectKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#pattern": "^[A-Z][A-Z0-9_]*$" + } + }, + "com.amazonaws.wellarchitected#JiraSelectedQuestionConfiguration": { + "type": "structure", + "members": { + "SelectedPillars": { + "target": "com.amazonaws.wellarchitected#SelectedPillars", + "traits": { + "smithy.api#documentation": "

Selected pillars in the workload.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Selected questions in the workload.

" + } + }, "com.amazonaws.wellarchitected#Lens": { "type": "structure", "members": { @@ -4177,6 +4457,12 @@ "PillarReviewSummaries": { "target": "com.amazonaws.wellarchitected#PillarReviewSummaries" }, + "JiraConfiguration": { + "target": "com.amazonaws.wellarchitected#JiraSelectedQuestionConfiguration", + "traits": { + "smithy.api#documentation": "

Jira configuration status of the Lens review.

" + } + }, "UpdatedAt": { "target": "com.amazonaws.wellarchitected#Timestamp" }, @@ -4880,7 +5166,7 @@ } ], "traits": { - "smithy.api#documentation": "

List lens review improvements.

", + "smithy.api#documentation": "

List the improvements of a particular lens review.

", "smithy.api#http": { "method": "GET", "uri": "/workloads/{WorkloadId}/lensReviews/{LensAlias}/improvements", @@ -6801,8 +7087,7 @@ "smithy.api#length": { "min": 3, "max": 100 - }, - "smithy.api#pattern": "^[A-Za-z0-9-_.,:/()@!&?#+'’\\s]+$" + } } }, "com.amazonaws.wellarchitected#ProfileName": { @@ -6811,8 +7096,7 @@ "smithy.api#length": { "min": 3, "max": 100 - }, - "smithy.api#pattern": "^[A-Za-z0-9-_.,:/()@!&?#+'’\\s]+$" + } } }, "com.amazonaws.wellarchitected#ProfileNamePrefix": { @@ -6821,8 +7105,7 @@ "smithy.api#length": { "min": 0, "max": 100 - }, - "smithy.api#pattern": "^[A-Za-z0-9-_.,:/()@!&?#+'’\\s]+$" + } } }, "com.amazonaws.wellarchitected#ProfileNotificationSummaries": { @@ -7805,12 +8088,44 @@ "smithy.api#documentation": "

List of selected choice IDs in a question answer.

\n

The values entered replace the previously selected choices.

" } }, + "com.amazonaws.wellarchitected#SelectedPillar": { + "type": "structure", + "members": { + "PillarId": { + "target": "com.amazonaws.wellarchitected#PillarId" + }, + "SelectedQuestionIds": { + "target": "com.amazonaws.wellarchitected#SelectedQuestionIds", + "traits": { + "smithy.api#documentation": "

Selected question IDs in the selected pillar.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The selected pillar.

" + } + }, + "com.amazonaws.wellarchitected#SelectedPillars": { + "type": "list", + "member": { + "target": "com.amazonaws.wellarchitected#SelectedPillar" + } + }, "com.amazonaws.wellarchitected#SelectedProfileChoiceIds": { "type": "list", "member": { "target": "com.amazonaws.wellarchitected#ChoiceId" } }, + "com.amazonaws.wellarchitected#SelectedQuestionId": { + "type": "string" + }, + "com.amazonaws.wellarchitected#SelectedQuestionIds": { + "type": "list", + "member": { + "target": "com.amazonaws.wellarchitected#SelectedQuestionId" + } + }, "com.amazonaws.wellarchitected#ServiceCode": { "type": "string", "traits": { @@ -8118,6 +8433,15 @@ } } }, + "com.amazonaws.wellarchitected#Subdomain": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, "com.amazonaws.wellarchitected#TagKey": { "type": "string", "traits": { @@ -8533,7 +8857,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates whether the Amazon Web Services account is opted into organization sharing and discovery integration features.

", + "smithy.api#documentation": "

Update whether the Amazon Web Services account is opted into organization sharing and discovery integration features.

", "smithy.api#http": { "method": "PATCH", "uri": "/global-settings", @@ -8555,6 +8879,80 @@ "traits": { "smithy.api#documentation": "

The status of discovery support settings.

" } + }, + "JiraConfiguration": { + "target": "com.amazonaws.wellarchitected#AccountJiraConfigurationInput", + "traits": { + "smithy.api#documentation": "

The status of Jira integration settings.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.wellarchitected#UpdateIntegration": { + "type": "operation", + "input": { + "target": "com.amazonaws.wellarchitected#UpdateIntegrationInput" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.wellarchitected#AccessDeniedException" + }, + { + "target": "com.amazonaws.wellarchitected#ConflictException" + }, + { + "target": "com.amazonaws.wellarchitected#InternalServerException" + }, + { + "target": "com.amazonaws.wellarchitected#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.wellarchitected#ThrottlingException" + }, + { + "target": "com.amazonaws.wellarchitected#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Update integration features.

", + "smithy.api#http": { + "method": "POST", + "uri": "/workloads/{WorkloadId}/updateIntegration", + "code": 200 + } + } + }, + "com.amazonaws.wellarchitected#UpdateIntegrationInput": { + "type": "structure", + "members": { + "WorkloadId": { + "target": "com.amazonaws.wellarchitected#WorkloadId", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.wellarchitected#ClientRequestToken", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + }, + "IntegratingService": { + "target": "com.amazonaws.wellarchitected#IntegratingService", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Which integrated service to update.

", + "smithy.api#required": {} + } } }, "traits": { @@ -8620,6 +9018,12 @@ }, "PillarNotes": { "target": "com.amazonaws.wellarchitected#PillarNotes" + }, + "JiraConfiguration": { + "target": "com.amazonaws.wellarchitected#JiraSelectedQuestionConfiguration", + "traits": { + "smithy.api#documentation": "

Configuration of the Jira integration.

" + } } }, "traits": { @@ -9190,6 +9594,12 @@ "traits": { "smithy.api#documentation": "

List of AppRegistry application ARNs to associate to the workload.

" } + }, + "JiraConfiguration": { + "target": "com.amazonaws.wellarchitected#WorkloadJiraConfigurationInput", + "traits": { + "smithy.api#documentation": "

Configuration of the Jira integration.

" + } } }, "traits": { @@ -9312,6 +9722,9 @@ { "target": "com.amazonaws.wellarchitected#ResourceNotFoundException" }, + { + "target": "com.amazonaws.wellarchitected#ServiceQuotaExceededException" + }, { "target": "com.amazonaws.wellarchitected#ThrottlingException" }, @@ -9381,6 +9794,9 @@ { "target": "com.amazonaws.wellarchitected#ResourceNotFoundException" }, + { + "target": "com.amazonaws.wellarchitected#ServiceQuotaExceededException" + }, { "target": "com.amazonaws.wellarchitected#ThrottlingException" }, @@ -9680,6 +10096,9 @@ { "target": "com.amazonaws.wellarchitected#GetConsolidatedReport" }, + { + "target": "com.amazonaws.wellarchitected#GetGlobalSettings" + }, { "target": "com.amazonaws.wellarchitected#GetLens" }, @@ -9785,6 +10204,9 @@ { "target": "com.amazonaws.wellarchitected#UpdateGlobalSettings" }, + { + "target": "com.amazonaws.wellarchitected#UpdateIntegration" + }, { "target": "com.amazonaws.wellarchitected#UpdateLensReview" }, @@ -10785,6 +11207,12 @@ }, "PrioritizedRiskCounts": { "target": "com.amazonaws.wellarchitected#RiskCounts" + }, + "JiraConfiguration": { + "target": "com.amazonaws.wellarchitected#WorkloadJiraConfigurationOutput", + "traits": { + "smithy.api#documentation": "

Jira configuration for a specific workload.

" + } } }, "traits": { @@ -10965,6 +11393,87 @@ } } }, + "com.amazonaws.wellarchitected#WorkloadIssueManagementStatus": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENABLED" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + }, + "INHERIT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INHERIT" + } + } + } + }, + "com.amazonaws.wellarchitected#WorkloadJiraConfigurationInput": { + "type": "structure", + "members": { + "IssueManagementStatus": { + "target": "com.amazonaws.wellarchitected#WorkloadIssueManagementStatus", + "traits": { + "smithy.api#documentation": "

Workload-level: Jira issue management status.

" + } + }, + "IssueManagementType": { + "target": "com.amazonaws.wellarchitected#IssueManagementType", + "traits": { + "smithy.api#documentation": "

Workload-level: Jira issue management type.

" + } + }, + "JiraProjectKey": { + "target": "com.amazonaws.wellarchitected#JiraProjectKey", + "traits": { + "smithy.api#documentation": "

Workload-level: Jira project key to sync workloads to.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Workload-level: Input for the Jira configuration.

" + } + }, + "com.amazonaws.wellarchitected#WorkloadJiraConfigurationOutput": { + "type": "structure", + "members": { + "IssueManagementStatus": { + "target": "com.amazonaws.wellarchitected#WorkloadIssueManagementStatus", + "traits": { + "smithy.api#documentation": "

Workload-level: Jira issue management status.

" + } + }, + "IssueManagementType": { + "target": "com.amazonaws.wellarchitected#IssueManagementType", + "traits": { + "smithy.api#documentation": "

Workload-level: Jira issue management type.

" + } + }, + "JiraProjectKey": { + "target": "com.amazonaws.wellarchitected#JiraProjectKey", + "traits": { + "smithy.api#documentation": "

Workload-level: Jira project key to sync workloads to.

" + } + }, + "StatusMessage": { + "target": "com.amazonaws.wellarchitected#StatusMessage", + "traits": { + "smithy.api#documentation": "

Workload-level: Status message on configuration of the Jira integration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Workload-level: Output configuration of the Jira integration.

" + } + }, "com.amazonaws.wellarchitected#WorkloadLenses": { "type": "list", "member": { diff --git a/models/workspaces-thin-client.json b/models/workspaces-thin-client.json index 860bb55527..5b1c36302b 100644 --- a/models/workspaces-thin-client.json +++ b/models/workspaces-thin-client.json @@ -655,7 +655,7 @@ } }, "tags": { - "target": "com.amazonaws.workspacesthinclient#EmbeddedTag", + "target": "com.amazonaws.workspacesthinclient#TagsMap", "traits": { "smithy.api#documentation": "

The tag keys and optional values for the resource.

" } @@ -828,39 +828,12 @@ "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the device.

" } - }, - "tags": { - "target": "com.amazonaws.workspacesthinclient#EmbeddedTag", - "traits": { - "smithy.api#documentation": "

The tag keys and optional values for the resource.

" - } } }, "traits": { "smithy.api#documentation": "

Describes a thin client device.

" } }, - "com.amazonaws.workspacesthinclient#EmbeddedTag": { - "type": "structure", - "members": { - "resourceArn": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of a resource to tag.

" - } - }, - "internalId": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

The internal ID of a resource to tag.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

The resource and internal ID of a resource to tag.

", - "smithy.api#sensitive": {} - } - }, "com.amazonaws.workspacesthinclient#Environment": { "type": "structure", "members": { @@ -973,7 +946,7 @@ } }, "tags": { - "target": "com.amazonaws.workspacesthinclient#EmbeddedTag", + "target": "com.amazonaws.workspacesthinclient#TagsMap", "traits": { "smithy.api#documentation": "

The tag keys and optional values for the resource.

" } @@ -1111,12 +1084,6 @@ "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the environment.

" } - }, - "tags": { - "target": "com.amazonaws.workspacesthinclient#EmbeddedTag", - "traits": { - "smithy.api#documentation": "

The tag keys and optional values for the resource.

" - } } }, "traits": { @@ -1363,26 +1330,6 @@ "smithy.api#httpError": 500 } }, - "com.amazonaws.workspacesthinclient#InternalServiceException": { - "type": "structure", - "members": { - "message": { - "target": "com.amazonaws.workspacesthinclient#ExceptionMessage" - }, - "retryAfterSeconds": { - "target": "com.amazonaws.workspacesthinclient#RetryAfterSeconds", - "traits": { - "smithy.api#documentation": "

The number of seconds to wait before retrying the next request.

", - "smithy.api#httpHeader": "Retry-After" - } - } - }, - "traits": { - "smithy.api#documentation": "

Request processing failed due to some unknown error, exception, or failure.

", - "smithy.api#error": "server", - "smithy.api#httpError": 500 - } - }, "com.amazonaws.workspacesthinclient#KmsKeyArn": { "type": "string", "traits": { @@ -1652,11 +1599,17 @@ }, "errors": [ { - "target": "com.amazonaws.workspacesthinclient#InternalServiceException" + "target": "com.amazonaws.workspacesthinclient#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspacesthinclient#InternalServerException" }, { "target": "com.amazonaws.workspacesthinclient#ResourceNotFoundException" }, + { + "target": "com.amazonaws.workspacesthinclient#ThrottlingException" + }, { "target": "com.amazonaws.workspacesthinclient#ValidationException" } @@ -1945,6 +1898,12 @@ "traits": { "smithy.api#documentation": "

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

" } + }, + "tags": { + "target": "com.amazonaws.workspacesthinclient#TagsMap", + "traits": { + "smithy.api#documentation": "

The tag keys and optional values for the resource.

" + } } }, "traits": { @@ -2106,11 +2065,20 @@ }, "errors": [ { - "target": "com.amazonaws.workspacesthinclient#InternalServiceException" + "target": "com.amazonaws.workspacesthinclient#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspacesthinclient#ConflictException" + }, + { + "target": "com.amazonaws.workspacesthinclient#InternalServerException" }, { "target": "com.amazonaws.workspacesthinclient#ResourceNotFoundException" }, + { + "target": "com.amazonaws.workspacesthinclient#ThrottlingException" + }, { "target": "com.amazonaws.workspacesthinclient#ValidationException" } @@ -2962,11 +2930,20 @@ }, "errors": [ { - "target": "com.amazonaws.workspacesthinclient#InternalServiceException" + "target": "com.amazonaws.workspacesthinclient#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspacesthinclient#ConflictException" + }, + { + "target": "com.amazonaws.workspacesthinclient#InternalServerException" }, { "target": "com.amazonaws.workspacesthinclient#ResourceNotFoundException" }, + { + "target": "com.amazonaws.workspacesthinclient#ThrottlingException" + }, { "target": "com.amazonaws.workspacesthinclient#ValidationException" } diff --git a/models/workspaces-web.json b/models/workspaces-web.json index be9e68daed..15865eb8b1 100644 --- a/models/workspaces-web.json +++ b/models/workspaces-web.json @@ -108,7 +108,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -151,7 +150,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -164,7 +164,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -178,7 +177,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -201,7 +199,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -236,7 +233,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -247,14 +243,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -268,14 +266,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -284,11 +280,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -299,14 +295,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -320,7 +318,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -340,7 +337,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -351,14 +347,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -369,9 +367,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -1296,6 +1296,18 @@ "traits": { "smithy.api#documentation": "

A JSON string containing Chrome Enterprise policies that will be applied to all\n streaming sessions.

" } + }, + "customerManagedKey": { + "target": "com.amazonaws.workspacesweb#keyArn", + "traits": { + "smithy.api#documentation": "

The customer managed key used to encrypt sensitive information in the browser settings.

" + } + }, + "additionalEncryptionContext": { + "target": "com.amazonaws.workspacesweb#EncryptionContextMap", + "traits": { + "smithy.api#documentation": "

The additional encryption context of the browser settings.

" + } } }, "traits": { @@ -1551,7 +1563,8 @@ "min": 0, "max": 253 }, - "smithy.api#pattern": "^(\\.?)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$" + "smithy.api#pattern": "^(\\.?)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$", + "smithy.api#sensitive": {} } }, "com.amazonaws.workspacesweb#CookieName": { @@ -1560,7 +1573,8 @@ "smithy.api#length": { "min": 0, "max": 4096 - } + }, + "smithy.api#sensitive": {} } }, "com.amazonaws.workspacesweb#CookiePath": { @@ -1570,7 +1584,8 @@ "min": 0, "max": 2000 }, - "smithy.api#pattern": "^/(\\S)*$" + "smithy.api#pattern": "^/(\\S)*$", + "smithy.api#sensitive": {} } }, "com.amazonaws.workspacesweb#CookieSpecification": { @@ -1706,7 +1721,7 @@ "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.

", "smithy.api#idempotencyToken": {} } } @@ -1797,14 +1812,14 @@ "identityProviderDetails": { "target": "com.amazonaws.workspacesweb#IdentityProviderDetails", "traits": { - "smithy.api#documentation": "

The identity provider details. The following list describes the provider detail keys for\n each identity provider type.

\n
    \n
  • \n

    For Google and Login with Amazon:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    \n
  • \n
  • \n

    For Facebook:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    • \n

      \n api_version\n

      \n
    • \n
    \n
  • \n
  • \n

    For Sign in with Apple:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n team_id\n

      \n
    • \n
    • \n

      \n key_id\n

      \n
    • \n
    • \n

      \n private_key\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    \n
  • \n
  • \n

    For OIDC providers:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n attributes_request_method\n

      \n
    • \n
    • \n

      \n oidc_issuer\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    • \n

      \n authorize_url\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    • \n

      \n token_url\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    • \n

      \n attributes_url\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    • \n

      \n jwks_uri\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    \n
  • \n
  • \n

    For SAML providers:

    \n
      \n
    • \n

      \n MetadataFile OR MetadataURL\n

      \n
    • \n
    • \n

      \n IDPSignout (boolean) \n optional\n

      \n
    • \n
    \n
  • \n
", + "smithy.api#documentation": "

The identity provider details. The following list describes the provider detail keys for\n each identity provider type.

\n
    \n
  • \n

    For Google and Login with Amazon:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    \n
  • \n
  • \n

    For Facebook:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    • \n

      \n api_version\n

      \n
    • \n
    \n
  • \n
  • \n

    For Sign in with Apple:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n team_id\n

      \n
    • \n
    • \n

      \n key_id\n

      \n
    • \n
    • \n

      \n private_key\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    \n
  • \n
  • \n

    For OIDC providers:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n attributes_request_method\n

      \n
    • \n
    • \n

      \n oidc_issuer\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    • \n

      \n authorize_url\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    • \n

      \n token_url\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    • \n

      \n attributes_url\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    • \n

      \n jwks_uri\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    \n
  • \n
  • \n

    For SAML providers:

    \n
      \n
    • \n

      \n MetadataFile OR MetadataURL\n

      \n
    • \n
    • \n

      \n IDPSignout (boolean) \n optional\n

      \n
    • \n
    • \n

      \n IDPInit (boolean) optional\n

      \n
    • \n
    • \n

      \n RequestSigningAlgorithm (string) optional\n - Only accepts rsa-sha256\n

      \n
    • \n
    • \n

      \n EncryptedResponses (boolean) optional\n

      \n
    • \n
    \n
  • \n
", "smithy.api#required": {} } }, "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } } @@ -1909,7 +1924,7 @@ "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } } @@ -2004,7 +2019,7 @@ "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } } @@ -2099,14 +2114,26 @@ "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } }, "authenticationType": { "target": "com.amazonaws.workspacesweb#AuthenticationType", "traits": { - "smithy.api#documentation": "

The type of authentication integration points used when signing into the web portal.\n Defaults to Standard.

\n

\n Standard web portals are authenticated directly through your identity\n provider. You need to call CreateIdentityProvider to integrate your identity\n provider with your web portal. User and group access to your web portal is controlled\n through your identity provider.

\n

\n IAM_Identity_Center web portals are authenticated through AWS IAM Identity\n Center (successor to AWS Single Sign-On). They provide additional features, such as\n IdP-initiated authentication. Identity sources (including external identity provider\n integration), plus user and group access to your web portal, can be configured in the IAM\n Identity Center.

" + "smithy.api#documentation": "

The type of authentication integration points used when signing into the web portal.\n Defaults to Standard.

\n

\n Standard web portals are authenticated directly through your identity\n provider. You need to call CreateIdentityProvider to integrate your identity\n provider with your web portal. User and group access to your web portal is controlled\n through your identity provider.

\n

\n IAM Identity Center web portals are authenticated through IAM Identity Center (successor to Single Sign-On). Identity sources (including\n external identity provider integration), plus user and group access to your web portal,\n can be configured in the IAM Identity Center.

" + } + }, + "instanceType": { + "target": "com.amazonaws.workspacesweb#InstanceType", + "traits": { + "smithy.api#documentation": "

The type and resources of the underlying instance.

" + } + }, + "maxConcurrentSessions": { + "target": "com.amazonaws.workspacesweb#MaxConcurrentSessions", + "traits": { + "smithy.api#documentation": "

The maximum number of concurrent sessions for the portal.

" } } }, @@ -2193,7 +2220,7 @@ "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } } @@ -2274,7 +2301,7 @@ "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } } @@ -2397,7 +2424,7 @@ "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } }, @@ -4023,7 +4050,7 @@ "identityProviderDetails": { "target": "com.amazonaws.workspacesweb#IdentityProviderDetails", "traits": { - "smithy.api#documentation": "

The identity provider details. The following list describes the provider detail keys for\n each identity provider type.

\n
    \n
  • \n

    For Google and Login with Amazon:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    \n
  • \n
  • \n

    For Facebook:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    • \n

      \n api_version\n

      \n
    • \n
    \n
  • \n
  • \n

    For Sign in with Apple:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n team_id\n

      \n
    • \n
    • \n

      \n key_id\n

      \n
    • \n
    • \n

      \n private_key\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    \n
  • \n
  • \n

    For OIDC providers:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n attributes_request_method\n

      \n
    • \n
    • \n

      \n oidc_issuer\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    • \n

      \n authorize_url\n if not available from discovery URL specified by oidc_issuer\n key\n

      \n
    • \n
    • \n

      \n token_url\n if not available from discovery URL specified by oidc_issuer\n key\n

      \n
    • \n
    • \n

      \n attributes_url\n if not available from discovery URL specified by oidc_issuer\n key\n

      \n
    • \n
    • \n

      \n jwks_uri\n if not available from discovery URL specified by oidc_issuer\n key\n

      \n
    • \n
    \n
  • \n
  • \n

    For SAML providers:

    \n
      \n
    • \n

      \n MetadataFile OR MetadataURL\n

      \n
    • \n
    • \n

      \n IDPSignout\n optional\n

      \n
    • \n
    \n
  • \n
" + "smithy.api#documentation": "

The identity provider details. The following list describes the provider detail keys for\n each identity provider type.

\n
    \n
  • \n

    For Google and Login with Amazon:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    \n
  • \n
  • \n

    For Facebook:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    • \n

      \n api_version\n

      \n
    • \n
    \n
  • \n
  • \n

    For Sign in with Apple:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n team_id\n

      \n
    • \n
    • \n

      \n key_id\n

      \n
    • \n
    • \n

      \n private_key\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    \n
  • \n
  • \n

    For OIDC providers:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n attributes_request_method\n

      \n
    • \n
    • \n

      \n oidc_issuer\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    • \n

      \n authorize_url\n if not available from discovery URL specified by oidc_issuer\n key\n

      \n
    • \n
    • \n

      \n token_url\n if not available from discovery URL specified by oidc_issuer\n key\n

      \n
    • \n
    • \n

      \n attributes_url\n if not available from discovery URL specified by oidc_issuer\n key\n

      \n
    • \n
    • \n

      \n jwks_uri\n if not available from discovery URL specified by oidc_issuer\n key\n

      \n
    • \n
    \n
  • \n
  • \n

    For SAML providers:

    \n
      \n
    • \n

      \n MetadataFile OR MetadataURL\n

      \n
    • \n
    • \n

      \n IDPSignout (boolean) optional\n

      \n
    • \n
    • \n

      \n IDPInit (boolean) optional\n

      \n
    • \n
    • \n

      \n RequestSigningAlgorithm (string) optional\n - Only accepts rsa-sha256\n

      \n
    • \n
    • \n

      \n EncryptedResponses (boolean) optional\n

      \n
    • \n
    \n
  • \n
" } } }, @@ -4174,6 +4201,25 @@ } } }, + "com.amazonaws.workspacesweb#InstanceType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "standard.regular", + "name": "STANDARD_REGULAR" + }, + { + "value": "standard.large", + "name": "STANDARD_LARGE" + }, + { + "value": "standard.xlarge", + "name": "STANDARD_XLARGE" + } + ] + } + }, "com.amazonaws.workspacesweb#InternalServerException": { "type": "structure", "members": { @@ -4235,6 +4281,18 @@ "traits": { "smithy.api#documentation": "

The creation date timestamp of the IP access settings.

" } + }, + "customerManagedKey": { + "target": "com.amazonaws.workspacesweb#keyArn", + "traits": { + "smithy.api#documentation": "

The customer managed key used to encrypt sensitive information in the IP access settings.

" + } + }, + "additionalEncryptionContext": { + "target": "com.amazonaws.workspacesweb#EncryptionContextMap", + "traits": { + "smithy.api#documentation": "

The additional encryption context of the IP access settings.

" + } } }, "traits": { @@ -5205,6 +5263,15 @@ "smithy.api#output": {} } }, + "com.amazonaws.workspacesweb#MaxConcurrentSessions": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 5000 + } + } + }, "com.amazonaws.workspacesweb#MaxResults": { "type": "integer", "traits": { @@ -5429,7 +5496,7 @@ "authenticationType": { "target": "com.amazonaws.workspacesweb#AuthenticationType", "traits": { - "smithy.api#documentation": "

The type of authentication integration points used when signing into the web portal.\n Defaults to Standard.

\n

\n Standard web portals are authenticated directly through your identity\n provider. You need to call CreateIdentityProvider to integrate your identity\n provider with your web portal. User and group access to your web portal is controlled\n through your identity provider.

\n

\n IAM_Identity_Center web portals are authenticated through AWS IAM Identity\n Center (successor to AWS Single Sign-On). They provide additional features, such as\n IdP-initiated authentication. Identity sources (including external identity provider\n integration), plus user and group access to your web portal, can be configured in the IAM\n Identity Center.

" + "smithy.api#documentation": "

The type of authentication integration points used when signing into the web portal.\n Defaults to Standard.

\n

\n Standard web portals are authenticated directly through your identity\n provider. You need to call CreateIdentityProvider to integrate your identity\n provider with your web portal. User and group access to your web portal is controlled\n through your identity provider.

\n

\n IAM Identity Center web portals are authenticated through IAM Identity Center (successor to Single Sign-On). Identity sources (including\n external identity provider integration), plus user and group access to your web portal,\n can be configured in the IAM Identity Center.

" } }, "ipAccessSettingsArn": { @@ -5437,6 +5504,30 @@ "traits": { "smithy.api#documentation": "

The ARN of the IP access settings.

" } + }, + "customerManagedKey": { + "target": "com.amazonaws.workspacesweb#keyArn", + "traits": { + "smithy.api#documentation": "

The customer managed key used to encrypt sensitive information in the portal.

" + } + }, + "additionalEncryptionContext": { + "target": "com.amazonaws.workspacesweb#EncryptionContextMap", + "traits": { + "smithy.api#documentation": "

The additional encryption context of the portal.

" + } + }, + "instanceType": { + "target": "com.amazonaws.workspacesweb#InstanceType", + "traits": { + "smithy.api#documentation": "

The type and resources of the underlying instance.

" + } + }, + "maxConcurrentSessions": { + "target": "com.amazonaws.workspacesweb#MaxConcurrentSessions", + "traits": { + "smithy.api#documentation": "

The maximum number of concurrent sessions for the portal.

" + } } }, "traits": { @@ -5520,6 +5611,12 @@ }, "additionalEncryptionContext": { "target": "com.amazonaws.workspacesweb#EncryptionContextMap" + }, + "instanceType": { + "target": "com.amazonaws.workspacesweb#InstanceType" + }, + "maxConcurrentSessions": { + "target": "com.amazonaws.workspacesweb#MaxConcurrentSessions" } }, "create": { @@ -5700,7 +5797,7 @@ "authenticationType": { "target": "com.amazonaws.workspacesweb#AuthenticationType", "traits": { - "smithy.api#documentation": "

The type of authentication integration points used when signing into the web portal.\n Defaults to Standard.

\n

\n Standard web portals are authenticated directly through your identity\n provider. You need to call CreateIdentityProvider to integrate your identity\n provider with your web portal. User and group access to your web portal is controlled\n through your identity provider.

\n

\n IAM_Identity_Center web portals are authenticated through AWS IAM Identity\n Center (successor to AWS Single Sign-On). They provide additional features, such as\n IdP-initiated authentication. Identity sources (including external identity provider\n integration), plus user and group access to your web portal, can be configured in the IAM\n Identity Center.

" + "smithy.api#documentation": "

The type of authentication integration points used when signing into the web portal.\n Defaults to Standard.

\n

\n Standard web portals are authenticated directly through your identity\n provider. You need to call CreateIdentityProvider to integrate your identity\n provider with your web portal. User and group access to your web portal is controlled\n through your identity provider.

\n

\n IAM Identity Center web portals are authenticated through IAM Identity Center (successor to Single Sign-On). Identity sources (including\n external identity provider integration), plus user and group access to your web portal,\n can be configured in the IAM Identity Center.

" } }, "ipAccessSettingsArn": { @@ -5708,6 +5805,18 @@ "traits": { "smithy.api#documentation": "

The ARN of the IP access settings.

" } + }, + "instanceType": { + "target": "com.amazonaws.workspacesweb#InstanceType", + "traits": { + "smithy.api#documentation": "

The type and resources of the underlying instance.

" + } + }, + "maxConcurrentSessions": { + "target": "com.amazonaws.workspacesweb#MaxConcurrentSessions", + "traits": { + "smithy.api#documentation": "

The maximum number of concurrent sessions for the portal.

" + } } }, "traits": { @@ -6008,7 +6117,7 @@ "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } } @@ -6309,7 +6418,7 @@ "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token return the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token return the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } } @@ -6394,13 +6503,13 @@ "identityProviderDetails": { "target": "com.amazonaws.workspacesweb#IdentityProviderDetails", "traits": { - "smithy.api#documentation": "

The details of the identity provider. The following list describes the provider detail keys for\n each identity provider type.

\n
    \n
  • \n

    For Google and Login with Amazon:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    \n
  • \n
  • \n

    For Facebook:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    • \n

      \n api_version\n

      \n
    • \n
    \n
  • \n
  • \n

    For Sign in with Apple:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n team_id\n

      \n
    • \n
    • \n

      \n key_id\n

      \n
    • \n
    • \n

      \n private_key\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    \n
  • \n
  • \n

    For OIDC providers:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n attributes_request_method\n

      \n
    • \n
    • \n

      \n oidc_issuer\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    • \n

      \n authorize_url\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    • \n

      \n token_url\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    • \n

      \n attributes_url\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    • \n

      \n jwks_uri\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    \n
  • \n
  • \n

    For SAML providers:

    \n
      \n
    • \n

      \n MetadataFile OR MetadataURL\n

      \n
    • \n
    • \n

      \n IDPSignout (boolean) \n optional\n

      \n
    • \n
    \n
  • \n
" + "smithy.api#documentation": "

The details of the identity provider. The following list describes the provider detail keys for\n each identity provider type.

\n
    \n
  • \n

    For Google and Login with Amazon:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    \n
  • \n
  • \n

    For Facebook:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    • \n

      \n api_version\n

      \n
    • \n
    \n
  • \n
  • \n

    For Sign in with Apple:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n team_id\n

      \n
    • \n
    • \n

      \n key_id\n

      \n
    • \n
    • \n

      \n private_key\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    \n
  • \n
  • \n

    For OIDC providers:

    \n
      \n
    • \n

      \n client_id\n

      \n
    • \n
    • \n

      \n client_secret\n

      \n
    • \n
    • \n

      \n attributes_request_method\n

      \n
    • \n
    • \n

      \n oidc_issuer\n

      \n
    • \n
    • \n

      \n authorize_scopes\n

      \n
    • \n
    • \n

      \n authorize_url\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    • \n

      \n token_url\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    • \n

      \n attributes_url\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    • \n

      \n jwks_uri\n if not available from discovery URL specified by\n oidc_issuer key\n

      \n
    • \n
    \n
  • \n
  • \n

    For SAML providers:

    \n
      \n
    • \n

      \n MetadataFile OR MetadataURL\n

      \n
    • \n
    • \n

      \n IDPSignout (boolean) optional\n

      \n
    • \n
    • \n

      \n IDPInit (boolean) optional\n

      \n
    • \n
    • \n

      \n RequestSigningAlgorithm (string) optional\n - Only accepts rsa-sha256\n

      \n
    • \n
    • \n

      \n EncryptedResponses (boolean) optional\n

      \n
    • \n
    \n
  • \n
" } }, "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token return the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token return the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } } @@ -6491,7 +6600,7 @@ "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token return the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token return the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } } @@ -6582,7 +6691,7 @@ "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token return the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token return the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } } @@ -6628,6 +6737,9 @@ { "target": "com.amazonaws.workspacesweb#ResourceNotFoundException" }, + { + "target": "com.amazonaws.workspacesweb#ServiceQuotaExceededException" + }, { "target": "com.amazonaws.workspacesweb#ThrottlingException" }, @@ -6665,7 +6777,19 @@ "authenticationType": { "target": "com.amazonaws.workspacesweb#AuthenticationType", "traits": { - "smithy.api#documentation": "

The type of authentication integration points used when signing into the web portal.\n Defaults to Standard.

\n

\n Standard web portals are authenticated directly through your identity\n provider. You need to call CreateIdentityProvider to integrate your identity\n provider with your web portal. User and group access to your web portal is controlled\n through your identity provider.

\n

\n IAM_Identity_Center web portals are authenticated through AWS IAM Identity\n Center (successor to AWS Single Sign-On). They provide additional features, such as\n IdP-initiated authentication. Identity sources (including external identity provider\n integration), plus user and group access to your web portal, can be configured in the IAM\n Identity Center.

" + "smithy.api#documentation": "

The type of authentication integration points used when signing into the web portal.\n Defaults to Standard.

\n

\n Standard web portals are authenticated directly through your identity\n provider. You need to call CreateIdentityProvider to integrate your identity\n provider with your web portal. User and group access to your web portal is controlled\n through your identity provider.

\n

\n IAM Identity Center web portals are authenticated through IAM Identity Center (successor to Single Sign-On). Identity sources (including\n external identity provider integration), plus user and group access to your web portal,\n can be configured in the IAM Identity Center.

" + } + }, + "instanceType": { + "target": "com.amazonaws.workspacesweb#InstanceType", + "traits": { + "smithy.api#documentation": "

The type and resources of the underlying instance.

" + } + }, + "maxConcurrentSessions": { + "target": "com.amazonaws.workspacesweb#MaxConcurrentSessions", + "traits": { + "smithy.api#documentation": "

The maximum number of concurrent sessions for the portal.

" } } }, @@ -6753,7 +6877,7 @@ "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token return the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token return the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } } @@ -6831,7 +6955,7 @@ "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token return the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token return the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } } @@ -6948,7 +7072,7 @@ "clientToken": { "target": "com.amazonaws.workspacesweb#ClientToken", "traits": { - "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token return the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the AWS\n SDK.

", + "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token return the result from the original successful request.

\n

If you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.

", "smithy.api#idempotencyToken": {} } }, @@ -7147,6 +7271,18 @@ "traits": { "smithy.api#documentation": "

The configuration that specifies which cookies should be synchronized from the end user's local browser to the remote browser.

" } + }, + "customerManagedKey": { + "target": "com.amazonaws.workspacesweb#keyArn", + "traits": { + "smithy.api#documentation": "

The customer managed key used to encrypt sensitive information in the user settings.

" + } + }, + "additionalEncryptionContext": { + "target": "com.amazonaws.workspacesweb#EncryptionContextMap", + "traits": { + "smithy.api#documentation": "

The additional encryption context of the user settings.

" + } } }, "traits": { diff --git a/models/workspaces.json b/models/workspaces.json index 74b4d58833..06482832e7 100644 --- a/models/workspaces.json +++ b/models/workspaces.json @@ -35,6 +35,70 @@ "smithy.api#pattern": "^arn:aws:[A-Za-z0-9][A-za-z0-9_/.-]{0,62}:[A-za-z0-9_/.-]{0,63}:[A-za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-za-z0-9_/.-]{0,127}$" } }, + "com.amazonaws.workspaces#AcceptAccountLinkInvitation": { + "type": "operation", + "input": { + "target": "com.amazonaws.workspaces#AcceptAccountLinkInvitationRequest" + }, + "output": { + "target": "com.amazonaws.workspaces#AcceptAccountLinkInvitationResult" + }, + "errors": [ + { + "target": "com.amazonaws.workspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspaces#ConflictException" + }, + { + "target": "com.amazonaws.workspaces#InternalServerException" + }, + { + "target": "com.amazonaws.workspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.workspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Accepts the account link invitation.

\n \n

There's currently no unlinking capability after you accept the account linking invitation.

\n
" + } + }, + "com.amazonaws.workspaces#AcceptAccountLinkInvitationRequest": { + "type": "structure", + "members": { + "LinkId": { + "target": "com.amazonaws.workspaces#LinkId", + "traits": { + "smithy.api#documentation": "

The identifier of the account link.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.workspaces#ClientToken", + "traits": { + "smithy.api#documentation": "

A string of up to 64 ASCII characters that Amazon EFS uses to ensure idempotent creation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.workspaces#AcceptAccountLinkInvitationResult": { + "type": "structure", + "members": { + "AccountLink": { + "target": "com.amazonaws.workspaces#AccountLink", + "traits": { + "smithy.api#documentation": "

Information about the account link.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.workspaces#AccessDeniedException": { "type": "structure", "members": { @@ -64,6 +128,79 @@ } } }, + "com.amazonaws.workspaces#AccountLink": { + "type": "structure", + "members": { + "AccountLinkId": { + "target": "com.amazonaws.workspaces#LinkId", + "traits": { + "smithy.api#documentation": "

The identifier of the account link.

" + } + }, + "AccountLinkStatus": { + "target": "com.amazonaws.workspaces#AccountLinkStatusEnum", + "traits": { + "smithy.api#documentation": "

The status of the account link.

" + } + }, + "SourceAccountId": { + "target": "com.amazonaws.workspaces#AwsAccount", + "traits": { + "smithy.api#documentation": "

The identifier of the source account.

" + } + }, + "TargetAccountId": { + "target": "com.amazonaws.workspaces#AwsAccount", + "traits": { + "smithy.api#documentation": "

The identifier of the target account.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about about the account link.

" + } + }, + "com.amazonaws.workspaces#AccountLinkList": { + "type": "list", + "member": { + "target": "com.amazonaws.workspaces#AccountLink" + } + }, + "com.amazonaws.workspaces#AccountLinkStatusEnum": { + "type": "enum", + "members": { + "LINKED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LINKED" + } + }, + "LINKING_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LINKING_FAILED" + } + }, + "LINK_NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LINK_NOT_FOUND" + } + }, + "PENDING_ACCEPTANCE_BY_TARGET_ACCOUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING_ACCEPTANCE_BY_TARGET_ACCOUNT" + } + }, + "REJECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REJECTED" + } + } + } + }, "com.amazonaws.workspaces#AccountModification": { "type": "structure", "members": { @@ -987,6 +1124,12 @@ "smithy.api#documentation": "

Information about the Amazon WorkSpaces client.

" } }, + "com.amazonaws.workspaces#ClientToken": { + "type": "string", + "traits": { + "smithy.api#pattern": "^.{1,64}$" + } + }, "com.amazonaws.workspaces#ClientUrl": { "type": "string", "traits": { @@ -1087,6 +1230,18 @@ "com.amazonaws.workspaces#ComputerName": { "type": "string" }, + "com.amazonaws.workspaces#ConflictException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.workspaces#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The TargetAccountId is already linked or invited.

", + "smithy.api#error": "client" + } + }, "com.amazonaws.workspaces#ConnectClientAddIn": { "type": "structure", "members": { @@ -1431,6 +1586,67 @@ "smithy.api#output": {} } }, + "com.amazonaws.workspaces#CreateAccountLinkInvitation": { + "type": "operation", + "input": { + "target": "com.amazonaws.workspaces#CreateAccountLinkInvitationRequest" + }, + "output": { + "target": "com.amazonaws.workspaces#CreateAccountLinkInvitationResult" + }, + "errors": [ + { + "target": "com.amazonaws.workspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspaces#ConflictException" + }, + { + "target": "com.amazonaws.workspaces#InternalServerException" + }, + { + "target": "com.amazonaws.workspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates the account link invitation.

" + } + }, + "com.amazonaws.workspaces#CreateAccountLinkInvitationRequest": { + "type": "structure", + "members": { + "TargetAccountId": { + "target": "com.amazonaws.workspaces#AwsAccount", + "traits": { + "smithy.api#documentation": "

The identifier of the target account.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.workspaces#ClientToken", + "traits": { + "smithy.api#documentation": "

A string of up to 64 ASCII characters that Amazon EFS uses to ensure idempotent creation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.workspaces#CreateAccountLinkInvitationResult": { + "type": "structure", + "members": { + "AccountLink": { + "target": "com.amazonaws.workspaces#AccountLink", + "traits": { + "smithy.api#documentation": "

Information about the account link.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.workspaces#CreateConnectClientAddIn": { "type": "operation", "input": { @@ -2164,6 +2380,23 @@ "smithy.api#documentation": "

Describes the data replication settings.

" } }, + "com.amazonaws.workspaces#DedicatedTenancyAccountType": { + "type": "enum", + "members": { + "SOURCE_ACCOUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SOURCE_ACCOUNT" + } + }, + "TARGET_ACCOUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TARGET_ACCOUNT" + } + } + } + }, "com.amazonaws.workspaces#DedicatedTenancyCidrRangeList": { "type": "list", "member": { @@ -2399,6 +2632,70 @@ } } }, + "com.amazonaws.workspaces#DeleteAccountLinkInvitation": { + "type": "operation", + "input": { + "target": "com.amazonaws.workspaces#DeleteAccountLinkInvitationRequest" + }, + "output": { + "target": "com.amazonaws.workspaces#DeleteAccountLinkInvitationResult" + }, + "errors": [ + { + "target": "com.amazonaws.workspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspaces#ConflictException" + }, + { + "target": "com.amazonaws.workspaces#InternalServerException" + }, + { + "target": "com.amazonaws.workspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.workspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the account link invitation.

" + } + }, + "com.amazonaws.workspaces#DeleteAccountLinkInvitationRequest": { + "type": "structure", + "members": { + "LinkId": { + "target": "com.amazonaws.workspaces#LinkId", + "traits": { + "smithy.api#documentation": "

The identifier of the account link.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.workspaces#ClientToken", + "traits": { + "smithy.api#documentation": "

A string of up to 64 ASCII characters that Amazon EFS uses to ensure idempotent creation.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.workspaces#DeleteAccountLinkInvitationResult": { + "type": "structure", + "members": { + "AccountLink": { + "target": "com.amazonaws.workspaces#AccountLink", + "traits": { + "smithy.api#documentation": "

Information about the account link.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.workspaces#DeleteClientBranding": { "type": "operation", "input": { @@ -2953,6 +3250,12 @@ "traits": { "smithy.api#documentation": "

The IP address range, specified as an IPv4 CIDR block, used for the management network\n interface.

\n

The management network interface is connected to a secure Amazon WorkSpaces management\n network. It is used for interactive streaming of the WorkSpace desktop to Amazon WorkSpaces\n clients, and to allow Amazon WorkSpaces to manage the WorkSpace.

" } + }, + "DedicatedTenancyAccountType": { + "target": "com.amazonaws.workspaces#DedicatedTenancyAccountType", + "traits": { + "smithy.api#documentation": "

The type of linked account.

" + } } }, "traits": { @@ -4665,6 +4968,66 @@ "smithy.api#documentation": "

Describes a WorkSpace that could not be rebooted. (RebootWorkspaces),\n rebuilt (RebuildWorkspaces), restored (RestoreWorkspace), terminated (TerminateWorkspaces), started (StartWorkspaces), or stopped (StopWorkspaces).

" } }, + "com.amazonaws.workspaces#GetAccountLink": { + "type": "operation", + "input": { + "target": "com.amazonaws.workspaces#GetAccountLinkRequest" + }, + "output": { + "target": "com.amazonaws.workspaces#GetAccountLinkResult" + }, + "errors": [ + { + "target": "com.amazonaws.workspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspaces#InternalServerException" + }, + { + "target": "com.amazonaws.workspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.workspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves account link information.

" + } + }, + "com.amazonaws.workspaces#GetAccountLinkRequest": { + "type": "structure", + "members": { + "LinkId": { + "target": "com.amazonaws.workspaces#LinkId", + "traits": { + "smithy.api#documentation": "

The identifier of the account to link.

" + } + }, + "LinkedAccountId": { + "target": "com.amazonaws.workspaces#AwsAccount", + "traits": { + "smithy.api#documentation": "

The identifier of the account link

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.workspaces#GetAccountLinkResult": { + "type": "structure", + "members": { + "AccountLink": { + "target": "com.amazonaws.workspaces#AccountLink", + "traits": { + "smithy.api#documentation": "

The account link of the account link to retrieve.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.workspaces#ImageAssociatedResourceType": { "type": "enum", "members": { @@ -4998,6 +5361,18 @@ "smithy.api#error": "client" } }, + "com.amazonaws.workspaces#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.workspaces#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

Unexpected server error occured.

", + "smithy.api#error": "client" + } + }, "com.amazonaws.workspaces#InvalidParameterValuesException": { "type": "structure", "members": { @@ -5220,6 +5595,93 @@ } } }, + "com.amazonaws.workspaces#LinkId": { + "type": "string", + "traits": { + "smithy.api#pattern": "^link-.{8,24}$" + } + }, + "com.amazonaws.workspaces#LinkStatusFilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.workspaces#AccountLinkStatusEnum" + } + }, + "com.amazonaws.workspaces#ListAccountLinks": { + "type": "operation", + "input": { + "target": "com.amazonaws.workspaces#ListAccountLinksRequest" + }, + "output": { + "target": "com.amazonaws.workspaces#ListAccountLinksResult" + }, + "errors": [ + { + "target": "com.amazonaws.workspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspaces#InternalServerException" + }, + { + "target": "com.amazonaws.workspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all account links.

", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "AccountLinks", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.workspaces#ListAccountLinksRequest": { + "type": "structure", + "members": { + "LinkStatusFilter": { + "target": "com.amazonaws.workspaces#LinkStatusFilterList", + "traits": { + "smithy.api#documentation": "

Filters the account based on their link status.

" + } + }, + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

" + } + }, + "MaxResults": { + "target": "com.amazonaws.workspaces#Limit", + "traits": { + "smithy.api#documentation": "

The maximum number of accounts to return.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.workspaces#ListAccountLinksResult": { + "type": "structure", + "members": { + "AccountLinks": { + "target": "com.amazonaws.workspaces#AccountLinkList", + "traits": { + "smithy.api#documentation": "

Information about the account links.

" + } + }, + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", + "traits": { + "smithy.api#documentation": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.workspaces#ListAvailableManagementCidrRanges": { "type": "operation", "input": { @@ -6476,6 +6938,70 @@ } } }, + "com.amazonaws.workspaces#RejectAccountLinkInvitation": { + "type": "operation", + "input": { + "target": "com.amazonaws.workspaces#RejectAccountLinkInvitationRequest" + }, + "output": { + "target": "com.amazonaws.workspaces#RejectAccountLinkInvitationResult" + }, + "errors": [ + { + "target": "com.amazonaws.workspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspaces#ConflictException" + }, + { + "target": "com.amazonaws.workspaces#InternalServerException" + }, + { + "target": "com.amazonaws.workspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.workspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Rejects the account link invitation.

" + } + }, + "com.amazonaws.workspaces#RejectAccountLinkInvitationRequest": { + "type": "structure", + "members": { + "LinkId": { + "target": "com.amazonaws.workspaces#LinkId", + "traits": { + "smithy.api#documentation": "

The identifier of the account link

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.workspaces#ClientToken", + "traits": { + "smithy.api#documentation": "

The client token of the account link invitation to reject.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.workspaces#RejectAccountLinkInvitationResult": { + "type": "structure", + "members": { + "AccountLink": { + "target": "com.amazonaws.workspaces#AccountLink", + "traits": { + "smithy.api#documentation": "

Information about the account link.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.workspaces#RelatedWorkspaceProperties": { "type": "structure", "members": { @@ -7713,6 +8239,18 @@ "com.amazonaws.workspaces#UserVolumeSizeGib": { "type": "integer" }, + "com.amazonaws.workspaces#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.workspaces#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

You either haven't provided a TargetAccountId or \n are using the same value for TargetAccountId and SourceAccountId.

", + "smithy.api#error": "client" + } + }, "com.amazonaws.workspaces#VolumeEncryptionKey": { "type": "string" }, @@ -9188,6 +9726,9 @@ "type": "service", "version": "2015-04-08", "operations": [ + { + "target": "com.amazonaws.workspaces#AcceptAccountLinkInvitation" + }, { "target": "com.amazonaws.workspaces#AssociateConnectionAlias" }, @@ -9203,6 +9744,9 @@ { "target": "com.amazonaws.workspaces#CopyWorkspaceImage" }, + { + "target": "com.amazonaws.workspaces#CreateAccountLinkInvitation" + }, { "target": "com.amazonaws.workspaces#CreateConnectClientAddIn" }, @@ -9230,6 +9774,9 @@ { "target": "com.amazonaws.workspaces#CreateWorkspaces" }, + { + "target": "com.amazonaws.workspaces#DeleteAccountLinkInvitation" + }, { "target": "com.amazonaws.workspaces#DeleteClientBranding" }, @@ -9329,12 +9876,18 @@ { "target": "com.amazonaws.workspaces#DisassociateWorkspaceApplication" }, + { + "target": "com.amazonaws.workspaces#GetAccountLink" + }, { "target": "com.amazonaws.workspaces#ImportClientBranding" }, { "target": "com.amazonaws.workspaces#ImportWorkspaceImage" }, + { + "target": "com.amazonaws.workspaces#ListAccountLinks" + }, { "target": "com.amazonaws.workspaces#ListAvailableManagementCidrRanges" }, @@ -9377,6 +9930,9 @@ { "target": "com.amazonaws.workspaces#RegisterWorkspaceDirectory" }, + { + "target": "com.amazonaws.workspaces#RejectAccountLinkInvitation" + }, { "target": "com.amazonaws.workspaces#RestoreWorkspace" },