diff --git a/README.md b/README.md
index 36013719b31..7d811553c57 100644
--- a/README.md
+++ b/README.md
@@ -644,6 +644,7 @@ RubyGems.org page under "LINKS" section.
| AmazonMWAA | Aws::MWAA | aws-sdk-mwaa | 2020-07-01 |
| AmazonNimbleStudio | Aws::NimbleStudio | aws-sdk-nimblestudio | 2020-08-01 |
| AmplifyBackend | Aws::AmplifyBackend | aws-sdk-amplifybackend | 2020-08-11 |
+| AppFabric | Aws::AppFabric | aws-sdk-appfabric | 2023-05-19 |
| Application Auto Scaling | Aws::ApplicationAutoScaling | aws-sdk-applicationautoscaling | 2016-02-06 |
| Application Migration Service | Aws::Mgn | aws-sdk-mgn | 2020-02-26 |
| Auto Scaling | Aws::AutoScaling | aws-sdk-autoscaling | 2011-01-01 |
diff --git a/apis/appfabric/2023-05-19/api-2.json b/apis/appfabric/2023-05-19/api-2.json
new file mode 100644
index 00000000000..3f4e27125ad
--- /dev/null
+++ b/apis/appfabric/2023-05-19/api-2.json
@@ -0,0 +1,1757 @@
+{
+ "version":"2.0",
+ "metadata":{
+ "apiVersion":"2023-05-19",
+ "endpointPrefix":"appfabric",
+ "jsonVersion":"1.1",
+ "protocol":"rest-json",
+ "serviceFullName":"AppFabric",
+ "serviceId":"AppFabric",
+ "signatureVersion":"v4",
+ "signingName":"appfabric",
+ "uid":"appfabric-2023-05-19"
+ },
+ "operations":{
+ "BatchGetUserAccessTasks":{
+ "name":"BatchGetUserAccessTasks",
+ "http":{
+ "method":"POST",
+ "requestUri":"/useraccess/batchget",
+ "responseCode":200
+ },
+ "input":{"shape":"BatchGetUserAccessTasksRequest"},
+ "output":{"shape":"BatchGetUserAccessTasksResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "ConnectAppAuthorization":{
+ "name":"ConnectAppAuthorization",
+ "http":{
+ "method":"POST",
+ "requestUri":"/appbundles/{appBundleIdentifier}/appauthorizations/{appAuthorizationIdentifier}/connect",
+ "responseCode":200
+ },
+ "input":{"shape":"ConnectAppAuthorizationRequest"},
+ "output":{"shape":"ConnectAppAuthorizationResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "CreateAppAuthorization":{
+ "name":"CreateAppAuthorization",
+ "http":{
+ "method":"POST",
+ "requestUri":"/appbundles/{appBundleIdentifier}/appauthorizations",
+ "responseCode":201
+ },
+ "input":{"shape":"CreateAppAuthorizationRequest"},
+ "output":{"shape":"CreateAppAuthorizationResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ServiceQuotaExceededException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ConflictException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ],
+ "idempotent":true
+ },
+ "CreateAppBundle":{
+ "name":"CreateAppBundle",
+ "http":{
+ "method":"POST",
+ "requestUri":"/appbundles",
+ "responseCode":201
+ },
+ "input":{"shape":"CreateAppBundleRequest"},
+ "output":{"shape":"CreateAppBundleResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ServiceQuotaExceededException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ConflictException"},
+ {"shape":"ValidationException"},
+ {"shape":"AccessDeniedException"}
+ ],
+ "idempotent":true
+ },
+ "CreateIngestion":{
+ "name":"CreateIngestion",
+ "http":{
+ "method":"POST",
+ "requestUri":"/appbundles/{appBundleIdentifier}/ingestions",
+ "responseCode":201
+ },
+ "input":{"shape":"CreateIngestionRequest"},
+ "output":{"shape":"CreateIngestionResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ServiceQuotaExceededException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ConflictException"},
+ {"shape":"ValidationException"},
+ {"shape":"AccessDeniedException"}
+ ],
+ "idempotent":true
+ },
+ "CreateIngestionDestination":{
+ "name":"CreateIngestionDestination",
+ "http":{
+ "method":"POST",
+ "requestUri":"/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}/ingestiondestinations",
+ "responseCode":201
+ },
+ "input":{"shape":"CreateIngestionDestinationRequest"},
+ "output":{"shape":"CreateIngestionDestinationResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ServiceQuotaExceededException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ConflictException"},
+ {"shape":"ValidationException"},
+ {"shape":"AccessDeniedException"}
+ ],
+ "idempotent":true
+ },
+ "DeleteAppAuthorization":{
+ "name":"DeleteAppAuthorization",
+ "http":{
+ "method":"DELETE",
+ "requestUri":"/appbundles/{appBundleIdentifier}/appauthorizations/{appAuthorizationIdentifier}",
+ "responseCode":204
+ },
+ "input":{"shape":"DeleteAppAuthorizationRequest"},
+ "output":{"shape":"DeleteAppAuthorizationResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ],
+ "idempotent":true
+ },
+ "DeleteAppBundle":{
+ "name":"DeleteAppBundle",
+ "http":{
+ "method":"DELETE",
+ "requestUri":"/appbundles/{appBundleIdentifier}",
+ "responseCode":204
+ },
+ "input":{"shape":"DeleteAppBundleRequest"},
+ "output":{"shape":"DeleteAppBundleResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ConflictException"},
+ {"shape":"ValidationException"},
+ {"shape":"AccessDeniedException"}
+ ],
+ "idempotent":true
+ },
+ "DeleteIngestion":{
+ "name":"DeleteIngestion",
+ "http":{
+ "method":"DELETE",
+ "requestUri":"/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}",
+ "responseCode":204
+ },
+ "input":{"shape":"DeleteIngestionRequest"},
+ "output":{"shape":"DeleteIngestionResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ],
+ "idempotent":true
+ },
+ "DeleteIngestionDestination":{
+ "name":"DeleteIngestionDestination",
+ "http":{
+ "method":"DELETE",
+ "requestUri":"/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}/ingestiondestinations/{ingestionDestinationIdentifier}",
+ "responseCode":204
+ },
+ "input":{"shape":"DeleteIngestionDestinationRequest"},
+ "output":{"shape":"DeleteIngestionDestinationResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ],
+ "idempotent":true
+ },
+ "GetAppAuthorization":{
+ "name":"GetAppAuthorization",
+ "http":{
+ "method":"GET",
+ "requestUri":"/appbundles/{appBundleIdentifier}/appauthorizations/{appAuthorizationIdentifier}",
+ "responseCode":200
+ },
+ "input":{"shape":"GetAppAuthorizationRequest"},
+ "output":{"shape":"GetAppAuthorizationResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "GetAppBundle":{
+ "name":"GetAppBundle",
+ "http":{
+ "method":"GET",
+ "requestUri":"/appbundles/{appBundleIdentifier}",
+ "responseCode":200
+ },
+ "input":{"shape":"GetAppBundleRequest"},
+ "output":{"shape":"GetAppBundleResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "GetIngestion":{
+ "name":"GetIngestion",
+ "http":{
+ "method":"GET",
+ "requestUri":"/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}",
+ "responseCode":200
+ },
+ "input":{"shape":"GetIngestionRequest"},
+ "output":{"shape":"GetIngestionResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "GetIngestionDestination":{
+ "name":"GetIngestionDestination",
+ "http":{
+ "method":"GET",
+ "requestUri":"/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}/ingestiondestinations/{ingestionDestinationIdentifier}",
+ "responseCode":200
+ },
+ "input":{"shape":"GetIngestionDestinationRequest"},
+ "output":{"shape":"GetIngestionDestinationResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "ListAppAuthorizations":{
+ "name":"ListAppAuthorizations",
+ "http":{
+ "method":"GET",
+ "requestUri":"/appbundles/{appBundleIdentifier}/appauthorizations",
+ "responseCode":200
+ },
+ "input":{"shape":"ListAppAuthorizationsRequest"},
+ "output":{"shape":"ListAppAuthorizationsResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "ListAppBundles":{
+ "name":"ListAppBundles",
+ "http":{
+ "method":"GET",
+ "requestUri":"/appbundles",
+ "responseCode":200
+ },
+ "input":{"shape":"ListAppBundlesRequest"},
+ "output":{"shape":"ListAppBundlesResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "ListIngestionDestinations":{
+ "name":"ListIngestionDestinations",
+ "http":{
+ "method":"GET",
+ "requestUri":"/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}/ingestiondestinations",
+ "responseCode":200
+ },
+ "input":{"shape":"ListIngestionDestinationsRequest"},
+ "output":{"shape":"ListIngestionDestinationsResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "ListIngestions":{
+ "name":"ListIngestions",
+ "http":{
+ "method":"GET",
+ "requestUri":"/appbundles/{appBundleIdentifier}/ingestions",
+ "responseCode":200
+ },
+ "input":{"shape":"ListIngestionsRequest"},
+ "output":{"shape":"ListIngestionsResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "ListTagsForResource":{
+ "name":"ListTagsForResource",
+ "http":{
+ "method":"GET",
+ "requestUri":"/tags/{resourceArn}",
+ "responseCode":200
+ },
+ "input":{"shape":"ListTagsForResourceRequest"},
+ "output":{"shape":"ListTagsForResourceResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "StartIngestion":{
+ "name":"StartIngestion",
+ "http":{
+ "method":"POST",
+ "requestUri":"/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}/start",
+ "responseCode":200
+ },
+ "input":{"shape":"StartIngestionRequest"},
+ "output":{"shape":"StartIngestionResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ConflictException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "StartUserAccessTasks":{
+ "name":"StartUserAccessTasks",
+ "http":{
+ "method":"POST",
+ "requestUri":"/useraccess/start",
+ "responseCode":201
+ },
+ "input":{"shape":"StartUserAccessTasksRequest"},
+ "output":{"shape":"StartUserAccessTasksResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "StopIngestion":{
+ "name":"StopIngestion",
+ "http":{
+ "method":"POST",
+ "requestUri":"/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}/stop",
+ "responseCode":200
+ },
+ "input":{"shape":"StopIngestionRequest"},
+ "output":{"shape":"StopIngestionResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ConflictException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "TagResource":{
+ "name":"TagResource",
+ "http":{
+ "method":"POST",
+ "requestUri":"/tags/{resourceArn}",
+ "responseCode":200
+ },
+ "input":{"shape":"TagResourceRequest"},
+ "output":{"shape":"TagResourceResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "UntagResource":{
+ "name":"UntagResource",
+ "http":{
+ "method":"DELETE",
+ "requestUri":"/tags/{resourceArn}",
+ "responseCode":200
+ },
+ "input":{"shape":"UntagResourceRequest"},
+ "output":{"shape":"UntagResourceResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ],
+ "idempotent":true
+ },
+ "UpdateAppAuthorization":{
+ "name":"UpdateAppAuthorization",
+ "http":{
+ "method":"PATCH",
+ "requestUri":"/appbundles/{appBundleIdentifier}/appauthorizations/{appAuthorizationIdentifier}",
+ "responseCode":200
+ },
+ "input":{"shape":"UpdateAppAuthorizationRequest"},
+ "output":{"shape":"UpdateAppAuthorizationResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ },
+ "UpdateIngestionDestination":{
+ "name":"UpdateIngestionDestination",
+ "http":{
+ "method":"PATCH",
+ "requestUri":"/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}/ingestiondestinations/{ingestionDestinationIdentifier}",
+ "responseCode":200
+ },
+ "input":{"shape":"UpdateIngestionDestinationRequest"},
+ "output":{"shape":"UpdateIngestionDestinationResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"ServiceQuotaExceededException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"ConflictException"},
+ {"shape":"ValidationException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"}
+ ]
+ }
+ },
+ "shapes":{
+ "AccessDeniedException":{
+ "type":"structure",
+ "required":["message"],
+ "members":{
+ "message":{"shape":"String"}
+ },
+ "error":{
+ "httpStatusCode":403,
+ "senderFault":true
+ },
+ "exception":true
+ },
+ "ApiKeyCredential":{
+ "type":"structure",
+ "required":["apiKey"],
+ "members":{
+ "apiKey":{"shape":"SensitiveString2048"}
+ }
+ },
+ "AppAuthorization":{
+ "type":"structure",
+ "required":[
+ "appAuthorizationArn",
+ "appBundleArn",
+ "app",
+ "tenant",
+ "authType",
+ "status",
+ "createdAt",
+ "updatedAt"
+ ],
+ "members":{
+ "appAuthorizationArn":{"shape":"Arn"},
+ "appBundleArn":{"shape":"Arn"},
+ "app":{"shape":"String255"},
+ "tenant":{"shape":"Tenant"},
+ "authType":{"shape":"AuthType"},
+ "status":{"shape":"AppAuthorizationStatus"},
+ "createdAt":{"shape":"DateTime"},
+ "updatedAt":{"shape":"DateTime"},
+ "persona":{"shape":"Persona"},
+ "authUrl":{"shape":"String"}
+ }
+ },
+ "AppAuthorizationStatus":{
+ "type":"string",
+ "enum":[
+ "PendingConnect",
+ "Connected",
+ "ConnectionValidationFailed",
+ "TokenAutoRotationFailed"
+ ]
+ },
+ "AppAuthorizationSummary":{
+ "type":"structure",
+ "required":[
+ "appAuthorizationArn",
+ "appBundleArn",
+ "app",
+ "tenant",
+ "status",
+ "updatedAt"
+ ],
+ "members":{
+ "appAuthorizationArn":{"shape":"Arn"},
+ "appBundleArn":{"shape":"Arn"},
+ "app":{"shape":"String255"},
+ "tenant":{"shape":"Tenant"},
+ "status":{"shape":"AppAuthorizationStatus"},
+ "updatedAt":{"shape":"DateTime"}
+ }
+ },
+ "AppAuthorizationSummaryList":{
+ "type":"list",
+ "member":{"shape":"AppAuthorizationSummary"}
+ },
+ "AppBundle":{
+ "type":"structure",
+ "required":["arn"],
+ "members":{
+ "arn":{"shape":"Arn"},
+ "customerManagedKeyArn":{"shape":"Arn"}
+ }
+ },
+ "AppBundleSummary":{
+ "type":"structure",
+ "required":["arn"],
+ "members":{
+ "arn":{"shape":"Arn"}
+ }
+ },
+ "AppBundleSummaryList":{
+ "type":"list",
+ "member":{"shape":"AppBundleSummary"}
+ },
+ "Arn":{
+ "type":"string",
+ "max":1011,
+ "min":1,
+ "pattern":"arn:.+"
+ },
+ "AuditLogDestinationConfiguration":{
+ "type":"structure",
+ "required":["destination"],
+ "members":{
+ "destination":{"shape":"Destination"}
+ }
+ },
+ "AuditLogProcessingConfiguration":{
+ "type":"structure",
+ "required":[
+ "schema",
+ "format"
+ ],
+ "members":{
+ "schema":{"shape":"Schema"},
+ "format":{"shape":"Format"}
+ }
+ },
+ "AuthRequest":{
+ "type":"structure",
+ "required":[
+ "redirectUri",
+ "code"
+ ],
+ "members":{
+ "redirectUri":{"shape":"RedirectUri"},
+ "code":{"shape":"SensitiveString2048"}
+ }
+ },
+ "AuthType":{
+ "type":"string",
+ "enum":[
+ "oauth2",
+ "apiKey"
+ ]
+ },
+ "BatchGetUserAccessTasksRequest":{
+ "type":"structure",
+ "required":[
+ "appBundleIdentifier",
+ "taskIdList"
+ ],
+ "members":{
+ "appBundleIdentifier":{"shape":"Identifier"},
+ "taskIdList":{"shape":"TaskIdList"}
+ }
+ },
+ "BatchGetUserAccessTasksResponse":{
+ "type":"structure",
+ "members":{
+ "userAccessResultsList":{"shape":"UserAccessResultsList"}
+ }
+ },
+ "ConflictException":{
+ "type":"structure",
+ "required":[
+ "message",
+ "resourceId",
+ "resourceType"
+ ],
+ "members":{
+ "message":{"shape":"String"},
+ "resourceId":{"shape":"String"},
+ "resourceType":{"shape":"String"}
+ },
+ "error":{
+ "httpStatusCode":409,
+ "senderFault":true
+ },
+ "exception":true
+ },
+ "ConnectAppAuthorizationRequest":{
+ "type":"structure",
+ "required":[
+ "appBundleIdentifier",
+ "appAuthorizationIdentifier"
+ ],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ },
+ "appAuthorizationIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appAuthorizationIdentifier"
+ },
+ "authRequest":{"shape":"AuthRequest"}
+ }
+ },
+ "ConnectAppAuthorizationResponse":{
+ "type":"structure",
+ "required":["appAuthorizationSummary"],
+ "members":{
+ "appAuthorizationSummary":{"shape":"AppAuthorizationSummary"}
+ }
+ },
+ "CreateAppAuthorizationRequest":{
+ "type":"structure",
+ "required":[
+ "appBundleIdentifier",
+ "app",
+ "credential",
+ "tenant",
+ "authType"
+ ],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ },
+ "app":{"shape":"String255"},
+ "credential":{"shape":"Credential"},
+ "tenant":{"shape":"Tenant"},
+ "authType":{"shape":"AuthType"},
+ "clientToken":{
+ "shape":"UUID",
+ "idempotencyToken":true
+ },
+ "tags":{"shape":"TagList"}
+ }
+ },
+ "CreateAppAuthorizationResponse":{
+ "type":"structure",
+ "required":["appAuthorization"],
+ "members":{
+ "appAuthorization":{"shape":"AppAuthorization"}
+ }
+ },
+ "CreateAppBundleRequest":{
+ "type":"structure",
+ "members":{
+ "clientToken":{
+ "shape":"UUID",
+ "idempotencyToken":true
+ },
+ "customerManagedKeyIdentifier":{"shape":"Identifier"},
+ "tags":{"shape":"TagList"}
+ }
+ },
+ "CreateAppBundleResponse":{
+ "type":"structure",
+ "required":["appBundle"],
+ "members":{
+ "appBundle":{"shape":"AppBundle"}
+ }
+ },
+ "CreateIngestionDestinationRequest":{
+ "type":"structure",
+ "required":[
+ "appBundleIdentifier",
+ "ingestionIdentifier",
+ "processingConfiguration",
+ "destinationConfiguration"
+ ],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ },
+ "ingestionIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"ingestionIdentifier"
+ },
+ "processingConfiguration":{"shape":"ProcessingConfiguration"},
+ "destinationConfiguration":{"shape":"DestinationConfiguration"},
+ "clientToken":{
+ "shape":"UUID",
+ "idempotencyToken":true
+ },
+ "tags":{"shape":"TagList"}
+ }
+ },
+ "CreateIngestionDestinationResponse":{
+ "type":"structure",
+ "required":["ingestionDestination"],
+ "members":{
+ "ingestionDestination":{"shape":"IngestionDestination"}
+ }
+ },
+ "CreateIngestionRequest":{
+ "type":"structure",
+ "required":[
+ "appBundleIdentifier",
+ "app",
+ "tenantId",
+ "ingestionType"
+ ],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ },
+ "app":{"shape":"String255"},
+ "tenantId":{"shape":"TenantIdentifier"},
+ "ingestionType":{"shape":"IngestionType"},
+ "clientToken":{
+ "shape":"UUID",
+ "idempotencyToken":true
+ },
+ "tags":{"shape":"TagList"}
+ }
+ },
+ "CreateIngestionResponse":{
+ "type":"structure",
+ "required":["ingestion"],
+ "members":{
+ "ingestion":{"shape":"Ingestion"}
+ }
+ },
+ "Credential":{
+ "type":"structure",
+ "members":{
+ "oauth2Credential":{"shape":"Oauth2Credential"},
+ "apiKeyCredential":{"shape":"ApiKeyCredential"}
+ },
+ "union":true
+ },
+ "DateTime":{
+ "type":"timestamp",
+ "timestampFormat":"iso8601"
+ },
+ "DeleteAppAuthorizationRequest":{
+ "type":"structure",
+ "required":[
+ "appBundleIdentifier",
+ "appAuthorizationIdentifier"
+ ],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ },
+ "appAuthorizationIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appAuthorizationIdentifier"
+ }
+ }
+ },
+ "DeleteAppAuthorizationResponse":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "DeleteAppBundleRequest":{
+ "type":"structure",
+ "required":["appBundleIdentifier"],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ }
+ }
+ },
+ "DeleteAppBundleResponse":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "DeleteIngestionDestinationRequest":{
+ "type":"structure",
+ "required":[
+ "appBundleIdentifier",
+ "ingestionIdentifier",
+ "ingestionDestinationIdentifier"
+ ],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ },
+ "ingestionIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"ingestionIdentifier"
+ },
+ "ingestionDestinationIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"ingestionDestinationIdentifier"
+ }
+ }
+ },
+ "DeleteIngestionDestinationResponse":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "DeleteIngestionRequest":{
+ "type":"structure",
+ "required":[
+ "appBundleIdentifier",
+ "ingestionIdentifier"
+ ],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ },
+ "ingestionIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"ingestionIdentifier"
+ }
+ }
+ },
+ "DeleteIngestionResponse":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "Destination":{
+ "type":"structure",
+ "members":{
+ "s3Bucket":{"shape":"S3Bucket"},
+ "firehoseStream":{"shape":"FirehoseStream"}
+ },
+ "union":true
+ },
+ "DestinationConfiguration":{
+ "type":"structure",
+ "members":{
+ "auditLog":{"shape":"AuditLogDestinationConfiguration"}
+ },
+ "union":true
+ },
+ "Email":{
+ "type":"string",
+ "max":320,
+ "min":0,
+ "pattern":"[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*",
+ "sensitive":true
+ },
+ "FirehoseStream":{
+ "type":"structure",
+ "required":["streamName"],
+ "members":{
+ "streamName":{"shape":"String64"}
+ }
+ },
+ "Format":{
+ "type":"string",
+ "enum":[
+ "json",
+ "parquet"
+ ]
+ },
+ "GetAppAuthorizationRequest":{
+ "type":"structure",
+ "required":[
+ "appBundleIdentifier",
+ "appAuthorizationIdentifier"
+ ],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ },
+ "appAuthorizationIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appAuthorizationIdentifier"
+ }
+ }
+ },
+ "GetAppAuthorizationResponse":{
+ "type":"structure",
+ "required":["appAuthorization"],
+ "members":{
+ "appAuthorization":{"shape":"AppAuthorization"}
+ }
+ },
+ "GetAppBundleRequest":{
+ "type":"structure",
+ "required":["appBundleIdentifier"],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ }
+ }
+ },
+ "GetAppBundleResponse":{
+ "type":"structure",
+ "required":["appBundle"],
+ "members":{
+ "appBundle":{"shape":"AppBundle"}
+ }
+ },
+ "GetIngestionDestinationRequest":{
+ "type":"structure",
+ "required":[
+ "appBundleIdentifier",
+ "ingestionIdentifier",
+ "ingestionDestinationIdentifier"
+ ],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ },
+ "ingestionIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"ingestionIdentifier"
+ },
+ "ingestionDestinationIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"ingestionDestinationIdentifier"
+ }
+ }
+ },
+ "GetIngestionDestinationResponse":{
+ "type":"structure",
+ "required":["ingestionDestination"],
+ "members":{
+ "ingestionDestination":{"shape":"IngestionDestination"}
+ }
+ },
+ "GetIngestionRequest":{
+ "type":"structure",
+ "required":[
+ "appBundleIdentifier",
+ "ingestionIdentifier"
+ ],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ },
+ "ingestionIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"ingestionIdentifier"
+ }
+ }
+ },
+ "GetIngestionResponse":{
+ "type":"structure",
+ "required":["ingestion"],
+ "members":{
+ "ingestion":{"shape":"Ingestion"}
+ }
+ },
+ "Identifier":{
+ "type":"string",
+ "max":1011,
+ "min":1,
+ "pattern":"arn:.+$|^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
+ },
+ "Ingestion":{
+ "type":"structure",
+ "required":[
+ "arn",
+ "appBundleArn",
+ "app",
+ "tenantId",
+ "createdAt",
+ "updatedAt",
+ "state",
+ "ingestionType"
+ ],
+ "members":{
+ "arn":{"shape":"Arn"},
+ "appBundleArn":{"shape":"Arn"},
+ "app":{"shape":"String255"},
+ "tenantId":{"shape":"TenantIdentifier"},
+ "createdAt":{"shape":"DateTime"},
+ "updatedAt":{"shape":"DateTime"},
+ "state":{"shape":"IngestionState"},
+ "ingestionType":{"shape":"IngestionType"}
+ }
+ },
+ "IngestionDestination":{
+ "type":"structure",
+ "required":[
+ "arn",
+ "ingestionArn",
+ "processingConfiguration",
+ "destinationConfiguration"
+ ],
+ "members":{
+ "arn":{"shape":"Arn"},
+ "ingestionArn":{"shape":"Arn"},
+ "processingConfiguration":{"shape":"ProcessingConfiguration"},
+ "destinationConfiguration":{"shape":"DestinationConfiguration"},
+ "status":{"shape":"IngestionDestinationStatus"},
+ "statusReason":{"shape":"String"},
+ "createdAt":{"shape":"DateTime"},
+ "updatedAt":{"shape":"DateTime"}
+ }
+ },
+ "IngestionDestinationList":{
+ "type":"list",
+ "member":{"shape":"IngestionDestinationSummary"}
+ },
+ "IngestionDestinationStatus":{
+ "type":"string",
+ "enum":[
+ "Active",
+ "Failed"
+ ]
+ },
+ "IngestionDestinationSummary":{
+ "type":"structure",
+ "required":["arn"],
+ "members":{
+ "arn":{"shape":"Arn"}
+ }
+ },
+ "IngestionList":{
+ "type":"list",
+ "member":{"shape":"IngestionSummary"}
+ },
+ "IngestionState":{
+ "type":"string",
+ "enum":[
+ "enabled",
+ "disabled"
+ ]
+ },
+ "IngestionSummary":{
+ "type":"structure",
+ "required":[
+ "arn",
+ "app",
+ "tenantId",
+ "state"
+ ],
+ "members":{
+ "arn":{"shape":"Arn"},
+ "app":{"shape":"String255"},
+ "tenantId":{"shape":"TenantIdentifier"},
+ "state":{"shape":"IngestionState"}
+ }
+ },
+ "IngestionType":{
+ "type":"string",
+ "enum":["auditLog"]
+ },
+ "Integer":{
+ "type":"integer",
+ "box":true
+ },
+ "InternalServerException":{
+ "type":"structure",
+ "required":["message"],
+ "members":{
+ "message":{"shape":"String"},
+ "retryAfterSeconds":{
+ "shape":"Integer",
+ "location":"header",
+ "locationName":"Retry-After"
+ }
+ },
+ "error":{"httpStatusCode":500},
+ "exception":true,
+ "fault":true,
+ "retryable":{"throttling":false}
+ },
+ "ListAppAuthorizationsRequest":{
+ "type":"structure",
+ "required":["appBundleIdentifier"],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ },
+ "maxResults":{
+ "shape":"MaxResults",
+ "location":"querystring",
+ "locationName":"maxResults"
+ },
+ "nextToken":{
+ "shape":"String2048",
+ "location":"querystring",
+ "locationName":"nextToken"
+ }
+ }
+ },
+ "ListAppAuthorizationsResponse":{
+ "type":"structure",
+ "required":["appAuthorizationSummaryList"],
+ "members":{
+ "appAuthorizationSummaryList":{"shape":"AppAuthorizationSummaryList"},
+ "nextToken":{"shape":"String2048"}
+ }
+ },
+ "ListAppBundlesRequest":{
+ "type":"structure",
+ "members":{
+ "maxResults":{
+ "shape":"MaxResults",
+ "location":"querystring",
+ "locationName":"maxResults"
+ },
+ "nextToken":{
+ "shape":"String2048",
+ "location":"querystring",
+ "locationName":"nextToken"
+ }
+ }
+ },
+ "ListAppBundlesResponse":{
+ "type":"structure",
+ "required":["appBundleSummaryList"],
+ "members":{
+ "appBundleSummaryList":{"shape":"AppBundleSummaryList"},
+ "nextToken":{"shape":"String2048"}
+ }
+ },
+ "ListIngestionDestinationsRequest":{
+ "type":"structure",
+ "required":[
+ "appBundleIdentifier",
+ "ingestionIdentifier"
+ ],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ },
+ "ingestionIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"ingestionIdentifier"
+ },
+ "maxResults":{
+ "shape":"MaxResults",
+ "location":"querystring",
+ "locationName":"maxResults"
+ },
+ "nextToken":{
+ "shape":"String",
+ "location":"querystring",
+ "locationName":"nextToken"
+ }
+ }
+ },
+ "ListIngestionDestinationsResponse":{
+ "type":"structure",
+ "required":["ingestionDestinations"],
+ "members":{
+ "ingestionDestinations":{"shape":"IngestionDestinationList"},
+ "nextToken":{"shape":"String"}
+ }
+ },
+ "ListIngestionsRequest":{
+ "type":"structure",
+ "required":["appBundleIdentifier"],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ },
+ "maxResults":{
+ "shape":"MaxResults",
+ "location":"querystring",
+ "locationName":"maxResults"
+ },
+ "nextToken":{
+ "shape":"String",
+ "location":"querystring",
+ "locationName":"nextToken"
+ }
+ }
+ },
+ "ListIngestionsResponse":{
+ "type":"structure",
+ "required":["ingestions"],
+ "members":{
+ "ingestions":{"shape":"IngestionList"},
+ "nextToken":{"shape":"String"}
+ }
+ },
+ "ListTagsForResourceRequest":{
+ "type":"structure",
+ "required":["resourceArn"],
+ "members":{
+ "resourceArn":{
+ "shape":"Arn",
+ "location":"uri",
+ "locationName":"resourceArn"
+ }
+ }
+ },
+ "ListTagsForResourceResponse":{
+ "type":"structure",
+ "members":{
+ "tags":{"shape":"TagList"}
+ }
+ },
+ "MaxResults":{
+ "type":"integer",
+ "box":true,
+ "max":100,
+ "min":1
+ },
+ "Oauth2Credential":{
+ "type":"structure",
+ "required":[
+ "clientId",
+ "clientSecret"
+ ],
+ "members":{
+ "clientId":{"shape":"String2048"},
+ "clientSecret":{"shape":"SensitiveString2048"}
+ }
+ },
+ "Persona":{
+ "type":"string",
+ "enum":[
+ "admin",
+ "endUser"
+ ]
+ },
+ "ProcessingConfiguration":{
+ "type":"structure",
+ "members":{
+ "auditLog":{"shape":"AuditLogProcessingConfiguration"}
+ },
+ "union":true
+ },
+ "RedirectUri":{
+ "type":"string",
+ "max":1024,
+ "min":0,
+ "pattern":"https://[-a-zA-Z0-9-._~:/?#@!$&'()*+,;=]+"
+ },
+ "ResourceNotFoundException":{
+ "type":"structure",
+ "required":[
+ "message",
+ "resourceId",
+ "resourceType"
+ ],
+ "members":{
+ "message":{"shape":"String"},
+ "resourceId":{"shape":"String"},
+ "resourceType":{"shape":"String"}
+ },
+ "error":{
+ "httpStatusCode":404,
+ "senderFault":true
+ },
+ "exception":true
+ },
+ "ResultStatus":{
+ "type":"string",
+ "enum":[
+ "IN_PROGRESS",
+ "COMPLETED",
+ "FAILED",
+ "EXPIRED"
+ ]
+ },
+ "S3Bucket":{
+ "type":"structure",
+ "required":["bucketName"],
+ "members":{
+ "bucketName":{"shape":"String63"},
+ "prefix":{"shape":"String120"}
+ }
+ },
+ "Schema":{
+ "type":"string",
+ "enum":[
+ "ocsf",
+ "raw"
+ ]
+ },
+ "SensitiveString2048":{
+ "type":"string",
+ "max":2048,
+ "min":1,
+ "sensitive":true
+ },
+ "ServiceQuotaExceededException":{
+ "type":"structure",
+ "required":[
+ "message",
+ "resourceId",
+ "resourceType",
+ "serviceCode",
+ "quotaCode"
+ ],
+ "members":{
+ "message":{"shape":"String"},
+ "resourceId":{"shape":"String"},
+ "resourceType":{"shape":"String"},
+ "serviceCode":{"shape":"String"},
+ "quotaCode":{"shape":"String"}
+ },
+ "error":{
+ "httpStatusCode":402,
+ "senderFault":true
+ },
+ "exception":true
+ },
+ "StartIngestionRequest":{
+ "type":"structure",
+ "required":[
+ "ingestionIdentifier",
+ "appBundleIdentifier"
+ ],
+ "members":{
+ "ingestionIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"ingestionIdentifier"
+ },
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ }
+ }
+ },
+ "StartIngestionResponse":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "StartUserAccessTasksRequest":{
+ "type":"structure",
+ "required":[
+ "appBundleIdentifier",
+ "email"
+ ],
+ "members":{
+ "appBundleIdentifier":{"shape":"Identifier"},
+ "email":{"shape":"Email"}
+ }
+ },
+ "StartUserAccessTasksResponse":{
+ "type":"structure",
+ "members":{
+ "userAccessTasksList":{"shape":"UserAccessTasksList"}
+ }
+ },
+ "StopIngestionRequest":{
+ "type":"structure",
+ "required":[
+ "ingestionIdentifier",
+ "appBundleIdentifier"
+ ],
+ "members":{
+ "ingestionIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"ingestionIdentifier"
+ },
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ }
+ }
+ },
+ "StopIngestionResponse":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "String":{"type":"string"},
+ "String120":{
+ "type":"string",
+ "max":120,
+ "min":1
+ },
+ "String2048":{
+ "type":"string",
+ "max":2048,
+ "min":1
+ },
+ "String255":{
+ "type":"string",
+ "max":255,
+ "min":1
+ },
+ "String63":{
+ "type":"string",
+ "max":63,
+ "min":3
+ },
+ "String64":{
+ "type":"string",
+ "max":64,
+ "min":3
+ },
+ "Tag":{
+ "type":"structure",
+ "required":[
+ "key",
+ "value"
+ ],
+ "members":{
+ "key":{"shape":"TagKey"},
+ "value":{"shape":"TagValue"}
+ }
+ },
+ "TagKey":{
+ "type":"string",
+ "max":128,
+ "min":1
+ },
+ "TagKeyList":{
+ "type":"list",
+ "member":{"shape":"TagKey"},
+ "max":200,
+ "min":0
+ },
+ "TagList":{
+ "type":"list",
+ "member":{"shape":"Tag"},
+ "max":50,
+ "min":0
+ },
+ "TagResourceRequest":{
+ "type":"structure",
+ "required":[
+ "resourceArn",
+ "tags"
+ ],
+ "members":{
+ "resourceArn":{
+ "shape":"Arn",
+ "location":"uri",
+ "locationName":"resourceArn"
+ },
+ "tags":{"shape":"TagList"}
+ }
+ },
+ "TagResourceResponse":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "TagValue":{
+ "type":"string",
+ "max":256,
+ "min":0
+ },
+ "TaskError":{
+ "type":"structure",
+ "members":{
+ "errorCode":{"shape":"String"},
+ "errorMessage":{"shape":"String"}
+ }
+ },
+ "TaskIdList":{
+ "type":"list",
+ "member":{"shape":"UUID"},
+ "max":50,
+ "min":1
+ },
+ "Tenant":{
+ "type":"structure",
+ "required":[
+ "tenantIdentifier",
+ "tenantDisplayName"
+ ],
+ "members":{
+ "tenantIdentifier":{"shape":"TenantIdentifier"},
+ "tenantDisplayName":{"shape":"String2048"}
+ }
+ },
+ "TenantIdentifier":{
+ "type":"string",
+ "max":1024,
+ "min":1
+ },
+ "ThrottlingException":{
+ "type":"structure",
+ "required":["message"],
+ "members":{
+ "message":{"shape":"String"},
+ "serviceCode":{"shape":"String"},
+ "quotaCode":{"shape":"String"},
+ "retryAfterSeconds":{
+ "shape":"Integer",
+ "location":"header",
+ "locationName":"Retry-After"
+ }
+ },
+ "error":{
+ "httpStatusCode":429,
+ "senderFault":true
+ },
+ "exception":true,
+ "retryable":{"throttling":true}
+ },
+ "UUID":{
+ "type":"string",
+ "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
+ },
+ "UntagResourceRequest":{
+ "type":"structure",
+ "required":[
+ "resourceArn",
+ "tagKeys"
+ ],
+ "members":{
+ "resourceArn":{
+ "shape":"Arn",
+ "location":"uri",
+ "locationName":"resourceArn"
+ },
+ "tagKeys":{
+ "shape":"TagKeyList",
+ "location":"querystring",
+ "locationName":"tagKeys"
+ }
+ }
+ },
+ "UntagResourceResponse":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "UpdateAppAuthorizationRequest":{
+ "type":"structure",
+ "required":[
+ "appBundleIdentifier",
+ "appAuthorizationIdentifier"
+ ],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ },
+ "appAuthorizationIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appAuthorizationIdentifier"
+ },
+ "credential":{"shape":"Credential"},
+ "tenant":{"shape":"Tenant"}
+ }
+ },
+ "UpdateAppAuthorizationResponse":{
+ "type":"structure",
+ "required":["appAuthorization"],
+ "members":{
+ "appAuthorization":{"shape":"AppAuthorization"}
+ }
+ },
+ "UpdateIngestionDestinationRequest":{
+ "type":"structure",
+ "required":[
+ "appBundleIdentifier",
+ "ingestionIdentifier",
+ "ingestionDestinationIdentifier",
+ "destinationConfiguration"
+ ],
+ "members":{
+ "appBundleIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"appBundleIdentifier"
+ },
+ "ingestionIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"ingestionIdentifier"
+ },
+ "ingestionDestinationIdentifier":{
+ "shape":"Identifier",
+ "location":"uri",
+ "locationName":"ingestionDestinationIdentifier"
+ },
+ "destinationConfiguration":{"shape":"DestinationConfiguration"}
+ }
+ },
+ "UpdateIngestionDestinationResponse":{
+ "type":"structure",
+ "required":["ingestionDestination"],
+ "members":{
+ "ingestionDestination":{"shape":"IngestionDestination"}
+ }
+ },
+ "UserAccessResultItem":{
+ "type":"structure",
+ "members":{
+ "app":{"shape":"String255"},
+ "tenantId":{"shape":"TenantIdentifier"},
+ "tenantDisplayName":{"shape":"String2048"},
+ "taskId":{"shape":"UUID"},
+ "resultStatus":{"shape":"ResultStatus"},
+ "email":{"shape":"Email"},
+ "userId":{"shape":"SensitiveString2048"},
+ "userFullName":{"shape":"SensitiveString2048"},
+ "userFirstName":{"shape":"SensitiveString2048"},
+ "userLastName":{"shape":"SensitiveString2048"},
+ "userStatus":{"shape":"String"},
+ "taskError":{"shape":"TaskError"}
+ }
+ },
+ "UserAccessResultsList":{
+ "type":"list",
+ "member":{"shape":"UserAccessResultItem"}
+ },
+ "UserAccessTaskItem":{
+ "type":"structure",
+ "required":[
+ "app",
+ "tenantId"
+ ],
+ "members":{
+ "app":{"shape":"String255"},
+ "tenantId":{"shape":"TenantIdentifier"},
+ "taskId":{"shape":"UUID"},
+ "error":{"shape":"TaskError"}
+ }
+ },
+ "UserAccessTasksList":{
+ "type":"list",
+ "member":{"shape":"UserAccessTaskItem"}
+ },
+ "ValidationException":{
+ "type":"structure",
+ "required":[
+ "message",
+ "reason"
+ ],
+ "members":{
+ "message":{"shape":"String"},
+ "reason":{"shape":"ValidationExceptionReason"},
+ "fieldList":{"shape":"ValidationExceptionFieldList"}
+ },
+ "error":{
+ "httpStatusCode":400,
+ "senderFault":true
+ },
+ "exception":true
+ },
+ "ValidationExceptionField":{
+ "type":"structure",
+ "required":[
+ "name",
+ "message"
+ ],
+ "members":{
+ "name":{"shape":"String"},
+ "message":{"shape":"String"}
+ }
+ },
+ "ValidationExceptionFieldList":{
+ "type":"list",
+ "member":{"shape":"ValidationExceptionField"}
+ },
+ "ValidationExceptionReason":{
+ "type":"string",
+ "enum":[
+ "unknownOperation",
+ "cannotParse",
+ "fieldValidationFailed",
+ "other"
+ ]
+ }
+ }
+}
diff --git a/apis/appfabric/2023-05-19/docs-2.json b/apis/appfabric/2023-05-19/docs-2.json
new file mode 100644
index 00000000000..073e7639196
--- /dev/null
+++ b/apis/appfabric/2023-05-19/docs-2.json
@@ -0,0 +1,852 @@
+{
+ "version": "2.0",
+ "service": "
Amazon Web Services AppFabric quickly connects software as a service (SaaS) applications across your organization. This allows IT and security teams to easily manage and secure applications using a standard schema, and employees can complete everyday tasks faster using generative artificial intelligence (AI). You can use these APIs to complete AppFabric tasks, such as setting up audit log ingestions or viewing user access. For more information about AppFabric, including the required permissions to use the service, see the Amazon Web Services AppFabric Administration Guide. For more information about using the Command Line Interface (CLI) to manage your AppFabric resources, see the AppFabric section of the CLI Reference.
",
+ "operations": {
+ "BatchGetUserAccessTasks": "Gets user access details in a batch request.
This action polls data from the tasks that are kicked off by the StartUserAccessTasks
action.
",
+ "ConnectAppAuthorization": "Establishes a connection between Amazon Web Services AppFabric and an application, which allows AppFabric to call the APIs of the application.
",
+ "CreateAppAuthorization": "Creates an app authorization within an app bundle, which allows AppFabric to connect to an application.
",
+ "CreateAppBundle": "Creates an app bundle to collect data from an application using AppFabric.
",
+ "CreateIngestion": "Creates a data ingestion for an application.
",
+ "CreateIngestionDestination": "Creates an ingestion destination, which specifies how an application's ingested data is processed by Amazon Web Services AppFabric and where it's delivered.
",
+ "DeleteAppAuthorization": "Deletes an app authorization. You must delete the associated ingestion before you can delete an app authorization.
",
+ "DeleteAppBundle": "Deletes an app bundle. You must delete all associated app authorizations before you can delete an app bundle.
",
+ "DeleteIngestion": "Deletes an ingestion. You must stop (disable) the ingestion and you must delete all associated ingestion destinations before you can delete an app ingestion.
",
+ "DeleteIngestionDestination": "Deletes an ingestion destination.
This deletes the association between an ingestion and it's destination. It doesn't delete previously ingested data or the storage destination, such as the Amazon S3 bucket where the data is delivered. If the ingestion destination is deleted while the associated ingestion is enabled, the ingestion will fail and is eventually disabled.
",
+ "GetAppAuthorization": "Returns information about an app authorization.
",
+ "GetAppBundle": "Returns information about an app bundle.
",
+ "GetIngestion": "Returns information about an ingestion.
",
+ "GetIngestionDestination": "Returns information about an ingestion destination.
",
+ "ListAppAuthorizations": "Returns a list of all app authorizations configured for an app bundle.
",
+ "ListAppBundles": "Returns a list of app bundles.
",
+ "ListIngestionDestinations": "Returns a list of all ingestion destinations configured for an ingestion.
",
+ "ListIngestions": "Returns a list of all ingestions configured for an app bundle.
",
+ "ListTagsForResource": "Returns a list of tags for a resource.
",
+ "StartIngestion": "Starts (enables) an ingestion, which collects data from an application.
",
+ "StartUserAccessTasks": "Starts the tasks to search user access status for a specific email address.
The tasks are stopped when the user access status data is found. The tasks are terminated when the API calls to the application time out.
",
+ "StopIngestion": "Stops (disables) an ingestion.
",
+ "TagResource": "Assigns one or more tags (key-value pairs) to the specified resource.
",
+ "UntagResource": "Removes a tag or tags from a resource.
",
+ "UpdateAppAuthorization": "Updates an app authorization within an app bundle, which allows AppFabric to connect to an application.
If the app authorization was in a connected
state, updating the app authorization will set it back to a PendingConnect
state.
",
+ "UpdateIngestionDestination": "Updates an ingestion destination, which specifies how an application's ingested data is processed by Amazon Web Services AppFabric and where it's delivered.
"
+ },
+ "shapes": {
+ "AccessDeniedException": {
+ "base": "You are not authorized to perform this operation.
",
+ "refs": {
+ }
+ },
+ "ApiKeyCredential": {
+ "base": "Contains API key credential information.
",
+ "refs": {
+ "Credential$apiKeyCredential": "Contains API key credential information.
"
+ }
+ },
+ "AppAuthorization": {
+ "base": "Contains information about an app authorization.
",
+ "refs": {
+ "CreateAppAuthorizationResponse$appAuthorization": "Contains information about an app authorization.
",
+ "GetAppAuthorizationResponse$appAuthorization": "Contains information about an app authorization.
",
+ "UpdateAppAuthorizationResponse$appAuthorization": "Contains information about an app authorization.
"
+ }
+ },
+ "AppAuthorizationStatus": {
+ "base": null,
+ "refs": {
+ "AppAuthorization$status": "The state of the app authorization.
The following states are possible:
-
PendingConnect
: The initial state of the app authorization. The app authorization is created but not yet connected.
-
Connected
: The app authorization is connected to the application, and is ready to be used.
-
ConnectionValidationFailed
: The app authorization received a validation exception when trying to connect to the application. If the app authorization is in this state, you should verify the configured credentials and try to connect the app authorization again.
-
TokenAutoRotationFailed
: AppFabric failed to refresh the access token. If the app authorization is in this state, you should try to reconnect the app authorization.
",
+ "AppAuthorizationSummary$status": "The state of the app authorization.
The following states are possible:
-
PendingConnect
: The initial state of the app authorization. The app authorization is created but not yet connected.
-
Connected
: The app authorization is connected to the application, and is ready to be used.
-
ConnectionValidationFailed
: The app authorization received a validation exception when trying to connect to the application. If the app authorization is in this state, you should verify the configured credentials and try to connect the app authorization again.
-
TokenAutoRotationFailed
: AppFabric failed to refresh the access token. If the app authorization is in this state, you should try to reconnect the app authorization.
"
+ }
+ },
+ "AppAuthorizationSummary": {
+ "base": "Contains a summary of an app authorization.
",
+ "refs": {
+ "AppAuthorizationSummaryList$member": null,
+ "ConnectAppAuthorizationResponse$appAuthorizationSummary": "Contains a summary of the app authorization.
"
+ }
+ },
+ "AppAuthorizationSummaryList": {
+ "base": null,
+ "refs": {
+ "ListAppAuthorizationsResponse$appAuthorizationSummaryList": "Contains a list of app authorization summaries.
"
+ }
+ },
+ "AppBundle": {
+ "base": "Contains information about an app bundle.
",
+ "refs": {
+ "CreateAppBundleResponse$appBundle": "Contains information about an app bundle.
",
+ "GetAppBundleResponse$appBundle": "Contains information about an app bundle.
"
+ }
+ },
+ "AppBundleSummary": {
+ "base": "Contains a summary of an app bundle.
",
+ "refs": {
+ "AppBundleSummaryList$member": null
+ }
+ },
+ "AppBundleSummaryList": {
+ "base": null,
+ "refs": {
+ "ListAppBundlesResponse$appBundleSummaryList": "Contains a list of app bundle summaries.
"
+ }
+ },
+ "Arn": {
+ "base": null,
+ "refs": {
+ "AppAuthorization$appAuthorizationArn": "The Amazon Resource Name (ARN) of the app authorization.
",
+ "AppAuthorization$appBundleArn": "The Amazon Resource Name (ARN) of the app bundle for the app authorization.
",
+ "AppAuthorizationSummary$appAuthorizationArn": "The Amazon Resource Name (ARN) of the app authorization.
",
+ "AppAuthorizationSummary$appBundleArn": "The Amazon Resource Name (ARN) of the app bundle for the app authorization.
",
+ "AppBundle$arn": "The Amazon Resource Name (ARN) of the app bundle.
",
+ "AppBundle$customerManagedKeyArn": "The Amazon Resource Name (ARN) of the Key Management Service (KMS) key used to encrypt the application data.
",
+ "AppBundleSummary$arn": "The Amazon Resource Name (ARN) of the app bundle.
",
+ "Ingestion$arn": "The Amazon Resource Name (ARN) of the ingestion.
",
+ "Ingestion$appBundleArn": "The Amazon Resource Name (ARN) of the app bundle for the ingestion.
",
+ "IngestionDestination$arn": "The Amazon Resource Name (ARN) of the ingestion destination.
",
+ "IngestionDestination$ingestionArn": "The Amazon Resource Name (ARN) of the ingestion.
",
+ "IngestionDestinationSummary$arn": "The Amazon Resource Name (ARN) of the ingestion destination.
",
+ "IngestionSummary$arn": "The Amazon Resource Name (ARN) of the ingestion.
",
+ "ListTagsForResourceRequest$resourceArn": "The Amazon Resource Name (ARN) of the resource for which you want to retrieve tags.
",
+ "TagResourceRequest$resourceArn": "The Amazon Resource Name (ARN) of the resource that you want to tag.
",
+ "UntagResourceRequest$resourceArn": "The Amazon Resource Name (ARN) of the resource that you want to untag.
"
+ }
+ },
+ "AuditLogDestinationConfiguration": {
+ "base": "Contains information about an audit log destination configuration.
",
+ "refs": {
+ "DestinationConfiguration$auditLog": "Contains information about an audit log destination configuration.
"
+ }
+ },
+ "AuditLogProcessingConfiguration": {
+ "base": "Contains information about an audit log processing configuration.
",
+ "refs": {
+ "ProcessingConfiguration$auditLog": "Contains information about an audit log processing configuration.
"
+ }
+ },
+ "AuthRequest": {
+ "base": "Contains authorization request information, which is required for Amazon Web Services AppFabric to get the OAuth2 access token for an application.
",
+ "refs": {
+ "ConnectAppAuthorizationRequest$authRequest": "Contains OAuth2 authorization information.
This is required if the app authorization for the request is configured with an OAuth2 (oauth2
) authorization type.
"
+ }
+ },
+ "AuthType": {
+ "base": null,
+ "refs": {
+ "AppAuthorization$authType": "The authorization type.
",
+ "CreateAppAuthorizationRequest$authType": "The authorization type for the app authorization.
"
+ }
+ },
+ "BatchGetUserAccessTasksRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "BatchGetUserAccessTasksResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "ConflictException": {
+ "base": "The request has created a conflict. Check the request parameters and try again.
",
+ "refs": {
+ }
+ },
+ "ConnectAppAuthorizationRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "ConnectAppAuthorizationResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "CreateAppAuthorizationRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "CreateAppAuthorizationResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "CreateAppBundleRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "CreateAppBundleResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "CreateIngestionDestinationRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "CreateIngestionDestinationResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "CreateIngestionRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "CreateIngestionResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "Credential": {
+ "base": "Contains credential information for an application.
",
+ "refs": {
+ "CreateAppAuthorizationRequest$credential": "Contains credentials for the application, such as an API key or OAuth2 client ID and secret.
Specify credentials that match the authorization type for your request. For example, if the authorization type for your request is OAuth2 (oauth2
), then you should provide only the OAuth2 credentials.
",
+ "UpdateAppAuthorizationRequest$credential": "Contains credentials for the application, such as an API key or OAuth2 client ID and secret.
Specify credentials that match the authorization type of the app authorization to update. For example, if the authorization type of the app authorization is OAuth2 (oauth2
), then you should provide only the OAuth2 credentials.
"
+ }
+ },
+ "DateTime": {
+ "base": null,
+ "refs": {
+ "AppAuthorization$createdAt": "The timestamp of when the app authorization was created.
",
+ "AppAuthorization$updatedAt": "The timestamp of when the app authorization was last updated.
",
+ "AppAuthorizationSummary$updatedAt": "Timestamp for when the app authorization was last updated.
",
+ "Ingestion$createdAt": "The timestamp of when the ingestion was created.
",
+ "Ingestion$updatedAt": "The timestamp of when the ingestion was last updated.
",
+ "IngestionDestination$createdAt": "The timestamp of when the ingestion destination was created.
",
+ "IngestionDestination$updatedAt": "The timestamp of when the ingestion destination was last updated.
"
+ }
+ },
+ "DeleteAppAuthorizationRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "DeleteAppAuthorizationResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "DeleteAppBundleRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "DeleteAppBundleResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "DeleteIngestionDestinationRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "DeleteIngestionDestinationResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "DeleteIngestionRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "DeleteIngestionResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "Destination": {
+ "base": "Contains information about an audit log destination.
",
+ "refs": {
+ "AuditLogDestinationConfiguration$destination": "Contains information about an audit log destination.
"
+ }
+ },
+ "DestinationConfiguration": {
+ "base": "Contains information about the destination of ingested data.
",
+ "refs": {
+ "CreateIngestionDestinationRequest$destinationConfiguration": "Contains information about the destination of ingested data.
",
+ "IngestionDestination$destinationConfiguration": "Contains information about the destination of ingested data.
",
+ "UpdateIngestionDestinationRequest$destinationConfiguration": "Contains information about the destination of ingested data.
"
+ }
+ },
+ "Email": {
+ "base": null,
+ "refs": {
+ "StartUserAccessTasksRequest$email": "The email address of the target user.
",
+ "UserAccessResultItem$email": "The email address of the target user.
"
+ }
+ },
+ "FirehoseStream": {
+ "base": "Contains information about an Amazon Kinesis Data Firehose delivery stream.
",
+ "refs": {
+ "Destination$firehoseStream": "Contains information about an Amazon Kinesis Data Firehose delivery stream.
"
+ }
+ },
+ "Format": {
+ "base": null,
+ "refs": {
+ "AuditLogProcessingConfiguration$format": "The format in which the audit logs need to be formatted.
"
+ }
+ },
+ "GetAppAuthorizationRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "GetAppAuthorizationResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "GetAppBundleRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "GetAppBundleResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "GetIngestionDestinationRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "GetIngestionDestinationResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "GetIngestionRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "GetIngestionResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "Identifier": {
+ "base": null,
+ "refs": {
+ "BatchGetUserAccessTasksRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "ConnectAppAuthorizationRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle that contains the app authorization to use for the request.
",
+ "ConnectAppAuthorizationRequest$appAuthorizationIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app authorization to use for the request.
",
+ "CreateAppAuthorizationRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "CreateAppBundleRequest$customerManagedKeyIdentifier": "The Amazon Resource Name (ARN) of the Key Management Service (KMS) key to use to encrypt the application data. If this is not specified, an Amazon Web Services owned key is used for encryption.
",
+ "CreateIngestionDestinationRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "CreateIngestionDestinationRequest$ingestionIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the ingestion to use for the request.
",
+ "CreateIngestionRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "DeleteAppAuthorizationRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "DeleteAppAuthorizationRequest$appAuthorizationIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app authorization to use for the request.
",
+ "DeleteAppBundleRequest$appBundleIdentifier": "The ID or Amazon Resource Name (ARN) of the app bundle that needs to be deleted.
",
+ "DeleteIngestionDestinationRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "DeleteIngestionDestinationRequest$ingestionIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the ingestion to use for the request.
",
+ "DeleteIngestionDestinationRequest$ingestionDestinationIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the ingestion destination to use for the request.
",
+ "DeleteIngestionRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "DeleteIngestionRequest$ingestionIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the ingestion to use for the request.
",
+ "GetAppAuthorizationRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "GetAppAuthorizationRequest$appAuthorizationIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app authorization to use for the request.
",
+ "GetAppBundleRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "GetIngestionDestinationRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "GetIngestionDestinationRequest$ingestionIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the ingestion to use for the request.
",
+ "GetIngestionDestinationRequest$ingestionDestinationIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the ingestion destination to use for the request.
",
+ "GetIngestionRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "GetIngestionRequest$ingestionIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the ingestion to use for the request.
",
+ "ListAppAuthorizationsRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "ListIngestionDestinationsRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "ListIngestionDestinationsRequest$ingestionIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the ingestion to use for the request.
",
+ "ListIngestionsRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "StartIngestionRequest$ingestionIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the ingestion to use for the request.
",
+ "StartIngestionRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "StartUserAccessTasksRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "StopIngestionRequest$ingestionIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the ingestion to use for the request.
",
+ "StopIngestionRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "UpdateAppAuthorizationRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "UpdateAppAuthorizationRequest$appAuthorizationIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app authorization to use for the request.
",
+ "UpdateIngestionDestinationRequest$appBundleIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.
",
+ "UpdateIngestionDestinationRequest$ingestionIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the ingestion to use for the request.
",
+ "UpdateIngestionDestinationRequest$ingestionDestinationIdentifier": "The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the ingestion destination to use for the request.
"
+ }
+ },
+ "Ingestion": {
+ "base": "Contains information about an ingestion.
",
+ "refs": {
+ "CreateIngestionResponse$ingestion": "Contains information about an ingestion.
",
+ "GetIngestionResponse$ingestion": "Contains information about an ingestion.
"
+ }
+ },
+ "IngestionDestination": {
+ "base": "Contains information about an ingestion destination.
",
+ "refs": {
+ "CreateIngestionDestinationResponse$ingestionDestination": "Contains information about an ingestion destination.
",
+ "GetIngestionDestinationResponse$ingestionDestination": "Contains information about an ingestion destination.
",
+ "UpdateIngestionDestinationResponse$ingestionDestination": "Contains information about an ingestion destination.
"
+ }
+ },
+ "IngestionDestinationList": {
+ "base": null,
+ "refs": {
+ "ListIngestionDestinationsResponse$ingestionDestinations": "Contains a list of ingestion destination summaries.
"
+ }
+ },
+ "IngestionDestinationStatus": {
+ "base": null,
+ "refs": {
+ "IngestionDestination$status": "The state of the ingestion destination.
The following states are possible:
-
Active
: The ingestion destination is active and is ready to be used.
-
Failed
: The ingestion destination has failed. If the ingestion destination is in this state, you should verify the ingestion destination configuration and try again.
"
+ }
+ },
+ "IngestionDestinationSummary": {
+ "base": "Contains a summary of an ingestion destination.
",
+ "refs": {
+ "IngestionDestinationList$member": null
+ }
+ },
+ "IngestionList": {
+ "base": null,
+ "refs": {
+ "ListIngestionsResponse$ingestions": "Contains a list of ingestion summaries.
"
+ }
+ },
+ "IngestionState": {
+ "base": null,
+ "refs": {
+ "Ingestion$state": "The status of the ingestion.
",
+ "IngestionSummary$state": "The status of the ingestion.
"
+ }
+ },
+ "IngestionSummary": {
+ "base": "Contains a summary of an ingestion.
",
+ "refs": {
+ "IngestionList$member": null
+ }
+ },
+ "IngestionType": {
+ "base": null,
+ "refs": {
+ "CreateIngestionRequest$ingestionType": "The ingestion type.
",
+ "Ingestion$ingestionType": "The type of the ingestion.
"
+ }
+ },
+ "Integer": {
+ "base": null,
+ "refs": {
+ "InternalServerException$retryAfterSeconds": "The period of time after which you should retry your request.
",
+ "ThrottlingException$retryAfterSeconds": "The period of time after which you should retry your request.
"
+ }
+ },
+ "InternalServerException": {
+ "base": "The request processing has failed because of an unknown error, exception, or failure with an internal server.
",
+ "refs": {
+ }
+ },
+ "ListAppAuthorizationsRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "ListAppAuthorizationsResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "ListAppBundlesRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "ListAppBundlesResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "ListIngestionDestinationsRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "ListIngestionDestinationsResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "ListIngestionsRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "ListIngestionsResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "ListTagsForResourceRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "ListTagsForResourceResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "MaxResults": {
+ "base": null,
+ "refs": {
+ "ListAppAuthorizationsRequest$maxResults": "The maximum number of results that are returned per call. You can use nextToken
to obtain further pages of results.
This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.
",
+ "ListAppBundlesRequest$maxResults": "The maximum number of results that are returned per call. You can use nextToken
to obtain further pages of results.
This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.
",
+ "ListIngestionDestinationsRequest$maxResults": "The maximum number of results that are returned per call. You can use nextToken
to obtain further pages of results.
This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.
",
+ "ListIngestionsRequest$maxResults": "The maximum number of results that are returned per call. You can use nextToken
to obtain further pages of results.
This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.
"
+ }
+ },
+ "Oauth2Credential": {
+ "base": "Contains OAuth2 client credential information.
",
+ "refs": {
+ "Credential$oauth2Credential": "Contains OAuth2 client credential information.
"
+ }
+ },
+ "Persona": {
+ "base": null,
+ "refs": {
+ "AppAuthorization$persona": "The user persona of the app authorization.
This field should always be admin
.
"
+ }
+ },
+ "ProcessingConfiguration": {
+ "base": "Contains information about how ingested data is processed.
",
+ "refs": {
+ "CreateIngestionDestinationRequest$processingConfiguration": "Contains information about how ingested data is processed.
",
+ "IngestionDestination$processingConfiguration": "Contains information about how ingested data is processed.
"
+ }
+ },
+ "RedirectUri": {
+ "base": null,
+ "refs": {
+ "AuthRequest$redirectUri": "The redirect URL that is specified in the AuthURL and the application client.
"
+ }
+ },
+ "ResourceNotFoundException": {
+ "base": "The specified resource does not exist.
",
+ "refs": {
+ }
+ },
+ "ResultStatus": {
+ "base": null,
+ "refs": {
+ "UserAccessResultItem$resultStatus": "The status of the user access result item.
The following states are possible:
-
IN_PROGRESS
: The user access task is in progress.
-
COMPLETED
: The user access task completed successfully.
-
FAILED
: The user access task failed.
-
EXPIRED
: The user access task expired.
"
+ }
+ },
+ "S3Bucket": {
+ "base": "Contains information about an Amazon S3 bucket.
",
+ "refs": {
+ "Destination$s3Bucket": "Contains information about an Amazon S3 bucket.
"
+ }
+ },
+ "Schema": {
+ "base": null,
+ "refs": {
+ "AuditLogProcessingConfiguration$schema": "The event schema in which the audit logs need to be formatted.
"
+ }
+ },
+ "SensitiveString2048": {
+ "base": null,
+ "refs": {
+ "ApiKeyCredential$apiKey": "An API key for an application.
",
+ "AuthRequest$code": "The authorization code returned by the application after permission is granted in the application OAuth page (after clicking on the AuthURL).
",
+ "Oauth2Credential$clientSecret": "The client secret of the client application.
",
+ "UserAccessResultItem$userId": "The unique ID of user.
",
+ "UserAccessResultItem$userFullName": "The full name of the user.
",
+ "UserAccessResultItem$userFirstName": "The first name of the user.
",
+ "UserAccessResultItem$userLastName": "The last name of the user.
"
+ }
+ },
+ "ServiceQuotaExceededException": {
+ "base": "The request exceeds a service quota.
",
+ "refs": {
+ }
+ },
+ "StartIngestionRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "StartIngestionResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "StartUserAccessTasksRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "StartUserAccessTasksResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "StopIngestionRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "StopIngestionResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "String": {
+ "base": null,
+ "refs": {
+ "AccessDeniedException$message": null,
+ "AppAuthorization$authUrl": "The application URL for the OAuth flow.
",
+ "ConflictException$message": null,
+ "ConflictException$resourceId": "The resource ID.
",
+ "ConflictException$resourceType": "The resource type.
",
+ "IngestionDestination$statusReason": "The reason for the current status of the ingestion destination.
Only present when the status
of ingestion destination is Failed
.
",
+ "InternalServerException$message": null,
+ "ListIngestionDestinationsRequest$nextToken": "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. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.
",
+ "ListIngestionDestinationsResponse$nextToken": "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. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.
",
+ "ListIngestionsRequest$nextToken": "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. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.
",
+ "ListIngestionsResponse$nextToken": "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. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.
",
+ "ResourceNotFoundException$message": null,
+ "ResourceNotFoundException$resourceId": "The resource ID.
",
+ "ResourceNotFoundException$resourceType": "The resource type.
",
+ "ServiceQuotaExceededException$message": null,
+ "ServiceQuotaExceededException$resourceId": "The resource ID.
",
+ "ServiceQuotaExceededException$resourceType": "The resource type.
",
+ "ServiceQuotaExceededException$serviceCode": "The code of the service.
",
+ "ServiceQuotaExceededException$quotaCode": "The code for the quota exceeded.
",
+ "TaskError$errorCode": "The code of the error.
",
+ "TaskError$errorMessage": "The message of the error.
",
+ "ThrottlingException$message": null,
+ "ThrottlingException$serviceCode": "The code of the service.
",
+ "ThrottlingException$quotaCode": "The code for the quota exceeded.
",
+ "UserAccessResultItem$userStatus": "The status of the user returned by the application.
",
+ "ValidationException$message": null,
+ "ValidationExceptionField$name": "The field name where the invalid entry was detected.
",
+ "ValidationExceptionField$message": "A message about the validation exception.
"
+ }
+ },
+ "String120": {
+ "base": null,
+ "refs": {
+ "S3Bucket$prefix": "The object key to use.
"
+ }
+ },
+ "String2048": {
+ "base": null,
+ "refs": {
+ "ListAppAuthorizationsRequest$nextToken": "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. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.
",
+ "ListAppAuthorizationsResponse$nextToken": "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. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.
",
+ "ListAppBundlesRequest$nextToken": "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. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.
",
+ "ListAppBundlesResponse$nextToken": "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. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.
",
+ "Oauth2Credential$clientId": "The client ID of the client application.
",
+ "Tenant$tenantDisplayName": "The display name of the tenant.
",
+ "UserAccessResultItem$tenantDisplayName": "The display name of the tenant.
"
+ }
+ },
+ "String255": {
+ "base": null,
+ "refs": {
+ "AppAuthorization$app": "The name of the application.
",
+ "AppAuthorizationSummary$app": "The name of the application.
",
+ "CreateAppAuthorizationRequest$app": "The name of the application.
Valid values are:
-
SLACK
-
ASANA
-
JIRA
-
M365
-
M365AUDITLOGS
-
ZOOM
-
ZENDESK
-
OKTA
-
GOOGLE
-
DROPBOX
-
SMARTSHEET
-
CISCO
",
+ "CreateIngestionRequest$app": "The name of the application.
Valid values are:
-
SLACK
-
ASANA
-
JIRA
-
M365
-
M365AUDITLOGS
-
ZOOM
-
ZENDESK
-
OKTA
-
GOOGLE
-
DROPBOX
-
SMARTSHEET
-
CISCO
",
+ "Ingestion$app": "The name of the application.
",
+ "IngestionSummary$app": "The name of the application.
",
+ "UserAccessResultItem$app": "The name of the application.
",
+ "UserAccessTaskItem$app": "The name of the application.
"
+ }
+ },
+ "String63": {
+ "base": null,
+ "refs": {
+ "S3Bucket$bucketName": "The name of the Amazon S3 bucket.
"
+ }
+ },
+ "String64": {
+ "base": null,
+ "refs": {
+ "FirehoseStream$streamName": "The name of the Amazon Kinesis Data Firehose delivery stream.
"
+ }
+ },
+ "Tag": {
+ "base": "The key or keys of the key-value pairs for the tag or tags assigned to a resource.
",
+ "refs": {
+ "TagList$member": null
+ }
+ },
+ "TagKey": {
+ "base": null,
+ "refs": {
+ "Tag$key": "Tag key.
",
+ "TagKeyList$member": null
+ }
+ },
+ "TagKeyList": {
+ "base": null,
+ "refs": {
+ "UntagResourceRequest$tagKeys": "The keys of the key-value pairs for the tag or tags you want to remove from the specified resource.
"
+ }
+ },
+ "TagList": {
+ "base": null,
+ "refs": {
+ "CreateAppAuthorizationRequest$tags": "A map of the key-value pairs of the tag or tags to assign to the resource.
",
+ "CreateAppBundleRequest$tags": "A map of the key-value pairs of the tag or tags to assign to the resource.
",
+ "CreateIngestionDestinationRequest$tags": "A map of the key-value pairs of the tag or tags to assign to the resource.
",
+ "CreateIngestionRequest$tags": "A map of the key-value pairs of the tag or tags to assign to the resource.
",
+ "ListTagsForResourceResponse$tags": "A map of the key-value pairs for the tag or tags assigned to the specified resource.
",
+ "TagResourceRequest$tags": "A map of the key-value pairs of the tag or tags to assign to the resource.
"
+ }
+ },
+ "TagResourceRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "TagResourceResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "TagValue": {
+ "base": null,
+ "refs": {
+ "Tag$value": "Tag value.
"
+ }
+ },
+ "TaskError": {
+ "base": "Contains information about an error returned from a user access task.
",
+ "refs": {
+ "UserAccessResultItem$taskError": "Contains information about an error returned from a user access task.
",
+ "UserAccessTaskItem$error": "Error from the task, if any.
"
+ }
+ },
+ "TaskIdList": {
+ "base": null,
+ "refs": {
+ "BatchGetUserAccessTasksRequest$taskIdList": "The tasks IDs to use for the request.
"
+ }
+ },
+ "Tenant": {
+ "base": "Contains information about an application tenant.
",
+ "refs": {
+ "AppAuthorization$tenant": "Contains information about an application tenant, such as the application display name and identifier.
",
+ "AppAuthorizationSummary$tenant": "Contains information about an application tenant, such as the application display name and identifier.
",
+ "CreateAppAuthorizationRequest$tenant": "Contains information about an application tenant, such as the application display name and identifier.
",
+ "UpdateAppAuthorizationRequest$tenant": "Contains information about an application tenant, such as the application display name and identifier.
"
+ }
+ },
+ "TenantIdentifier": {
+ "base": null,
+ "refs": {
+ "CreateIngestionRequest$tenantId": "The ID of the application tenant.
",
+ "Ingestion$tenantId": "The ID of the application tenant.
",
+ "IngestionSummary$tenantId": "The ID of the application tenant.
",
+ "Tenant$tenantIdentifier": "The ID of the application tenant.
",
+ "UserAccessResultItem$tenantId": "The ID of the application tenant.
",
+ "UserAccessTaskItem$tenantId": "The ID of the application tenant.
"
+ }
+ },
+ "ThrottlingException": {
+ "base": "The request rate exceeds the limit.
",
+ "refs": {
+ }
+ },
+ "UUID": {
+ "base": null,
+ "refs": {
+ "CreateAppAuthorizationRequest$clientToken": "Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a UUID type of value.
If you don't provide this value, then Amazon Web Services generates a random one for you.
If you retry the operation with the same ClientToken
, but with different parameters, the retry fails with an IdempotentParameterMismatch
error.
",
+ "CreateAppBundleRequest$clientToken": "Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a UUID type of value.
If you don't provide this value, then Amazon Web Services generates a random one for you.
If you retry the operation with the same ClientToken
, but with different parameters, the retry fails with an IdempotentParameterMismatch
error.
",
+ "CreateIngestionDestinationRequest$clientToken": "Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a UUID type of value.
If you don't provide this value, then Amazon Web Services generates a random one for you.
If you retry the operation with the same ClientToken
, but with different parameters, the retry fails with an IdempotentParameterMismatch
error.
",
+ "CreateIngestionRequest$clientToken": "Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a UUID type of value.
If you don't provide this value, then Amazon Web Services generates a random one for you.
If you retry the operation with the same ClientToken
, but with different parameters, the retry fails with an IdempotentParameterMismatch
error.
",
+ "TaskIdList$member": null,
+ "UserAccessResultItem$taskId": "The unique ID of the task.
",
+ "UserAccessTaskItem$taskId": "The unique ID of the task.
"
+ }
+ },
+ "UntagResourceRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "UntagResourceResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "UpdateAppAuthorizationRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "UpdateAppAuthorizationResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "UpdateIngestionDestinationRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "UpdateIngestionDestinationResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "UserAccessResultItem": {
+ "base": "Contains information about a user's access to an application.
",
+ "refs": {
+ "UserAccessResultsList$member": null
+ }
+ },
+ "UserAccessResultsList": {
+ "base": null,
+ "refs": {
+ "BatchGetUserAccessTasksResponse$userAccessResultsList": "Contains a list of user access results.
"
+ }
+ },
+ "UserAccessTaskItem": {
+ "base": "Contains information about a user access task.
",
+ "refs": {
+ "UserAccessTasksList$member": null
+ }
+ },
+ "UserAccessTasksList": {
+ "base": null,
+ "refs": {
+ "StartUserAccessTasksResponse$userAccessTasksList": "Contains a list of user access task information.
"
+ }
+ },
+ "ValidationException": {
+ "base": "The request has invalid or missing parameters.
",
+ "refs": {
+ }
+ },
+ "ValidationExceptionField": {
+ "base": "The input failed to meet the constraints specified by the Amazon Web Services service in a specified field.
",
+ "refs": {
+ "ValidationExceptionFieldList$member": null
+ }
+ },
+ "ValidationExceptionFieldList": {
+ "base": null,
+ "refs": {
+ "ValidationException$fieldList": "The field list.
"
+ }
+ },
+ "ValidationExceptionReason": {
+ "base": null,
+ "refs": {
+ "ValidationException$reason": "The reason for the exception.
"
+ }
+ }
+ }
+}
diff --git a/apis/appfabric/2023-05-19/endpoint-rule-set-1.json b/apis/appfabric/2023-05-19/endpoint-rule-set-1.json
new file mode 100644
index 00000000000..4595d71cfd8
--- /dev/null
+++ b/apis/appfabric/2023-05-19/endpoint-rule-set-1.json
@@ -0,0 +1,350 @@
+{
+ "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": [],
+ "type": "tree",
+ "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"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "conditions": [],
+ "type": "tree",
+ "rules": [
+ {
+ "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": [],
+ "type": "tree",
+ "rules": [
+ {
+ "conditions": [],
+ "endpoint": {
+ "url": "https://appfabric-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": [],
+ "type": "tree",
+ "rules": [
+ {
+ "conditions": [],
+ "endpoint": {
+ "url": "https://appfabric-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": [],
+ "type": "tree",
+ "rules": [
+ {
+ "conditions": [],
+ "endpoint": {
+ "url": "https://appfabric.{Region}.{PartitionResult#dualStackDnsSuffix}",
+ "properties": {},
+ "headers": {}
+ },
+ "type": "endpoint"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "conditions": [],
+ "error": "DualStack is enabled but this partition does not support DualStack",
+ "type": "error"
+ }
+ ]
+ },
+ {
+ "conditions": [],
+ "type": "tree",
+ "rules": [
+ {
+ "conditions": [],
+ "endpoint": {
+ "url": "https://appfabric.{Region}.{PartitionResult#dnsSuffix}",
+ "properties": {},
+ "headers": {}
+ },
+ "type": "endpoint"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "conditions": [],
+ "error": "Invalid Configuration: Missing Region",
+ "type": "error"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/apis/appfabric/2023-05-19/endpoint-tests-1.json b/apis/appfabric/2023-05-19/endpoint-tests-1.json
new file mode 100644
index 00000000000..7f1f62b6d5a
--- /dev/null
+++ b/apis/appfabric/2023-05-19/endpoint-tests-1.json
@@ -0,0 +1,295 @@
+{
+ "testCases": [
+ {
+ "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric-fips.us-gov-east-1.api.aws"
+ }
+ },
+ "params": {
+ "UseFIPS": true,
+ "Region": "us-gov-east-1",
+ "UseDualStack": true
+ }
+ },
+ {
+ "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric-fips.us-gov-east-1.amazonaws.com"
+ }
+ },
+ "params": {
+ "UseFIPS": true,
+ "Region": "us-gov-east-1",
+ "UseDualStack": false
+ }
+ },
+ {
+ "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric.us-gov-east-1.api.aws"
+ }
+ },
+ "params": {
+ "UseFIPS": false,
+ "Region": "us-gov-east-1",
+ "UseDualStack": true
+ }
+ },
+ {
+ "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric.us-gov-east-1.amazonaws.com"
+ }
+ },
+ "params": {
+ "UseFIPS": false,
+ "Region": "us-gov-east-1",
+ "UseDualStack": false
+ }
+ },
+ {
+ "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric-fips.cn-north-1.api.amazonwebservices.com.cn"
+ }
+ },
+ "params": {
+ "UseFIPS": true,
+ "Region": "cn-north-1",
+ "UseDualStack": true
+ }
+ },
+ {
+ "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric-fips.cn-north-1.amazonaws.com.cn"
+ }
+ },
+ "params": {
+ "UseFIPS": true,
+ "Region": "cn-north-1",
+ "UseDualStack": false
+ }
+ },
+ {
+ "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric.cn-north-1.api.amazonwebservices.com.cn"
+ }
+ },
+ "params": {
+ "UseFIPS": false,
+ "Region": "cn-north-1",
+ "UseDualStack": true
+ }
+ },
+ {
+ "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric.cn-north-1.amazonaws.com.cn"
+ }
+ },
+ "params": {
+ "UseFIPS": false,
+ "Region": "cn-north-1",
+ "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": {
+ "UseFIPS": true,
+ "Region": "us-iso-east-1",
+ "UseDualStack": true
+ }
+ },
+ {
+ "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric-fips.us-iso-east-1.c2s.ic.gov"
+ }
+ },
+ "params": {
+ "UseFIPS": true,
+ "Region": "us-iso-east-1",
+ "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": {
+ "UseFIPS": false,
+ "Region": "us-iso-east-1",
+ "UseDualStack": true
+ }
+ },
+ {
+ "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric.us-iso-east-1.c2s.ic.gov"
+ }
+ },
+ "params": {
+ "UseFIPS": false,
+ "Region": "us-iso-east-1",
+ "UseDualStack": false
+ }
+ },
+ {
+ "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric-fips.us-east-1.api.aws"
+ }
+ },
+ "params": {
+ "UseFIPS": true,
+ "Region": "us-east-1",
+ "UseDualStack": true
+ }
+ },
+ {
+ "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric-fips.us-east-1.amazonaws.com"
+ }
+ },
+ "params": {
+ "UseFIPS": true,
+ "Region": "us-east-1",
+ "UseDualStack": false
+ }
+ },
+ {
+ "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric.us-east-1.api.aws"
+ }
+ },
+ "params": {
+ "UseFIPS": false,
+ "Region": "us-east-1",
+ "UseDualStack": true
+ }
+ },
+ {
+ "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric.us-east-1.amazonaws.com"
+ }
+ },
+ "params": {
+ "UseFIPS": false,
+ "Region": "us-east-1",
+ "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": {
+ "UseFIPS": true,
+ "Region": "us-isob-east-1",
+ "UseDualStack": true
+ }
+ },
+ {
+ "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric-fips.us-isob-east-1.sc2s.sgov.gov"
+ }
+ },
+ "params": {
+ "UseFIPS": true,
+ "Region": "us-isob-east-1",
+ "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": {
+ "UseFIPS": false,
+ "Region": "us-isob-east-1",
+ "UseDualStack": true
+ }
+ },
+ {
+ "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://appfabric.us-isob-east-1.sc2s.sgov.gov"
+ }
+ },
+ "params": {
+ "UseFIPS": false,
+ "Region": "us-isob-east-1",
+ "UseDualStack": false
+ }
+ },
+ {
+ "documentation": "For custom endpoint with fips disabled and dualstack disabled",
+ "expect": {
+ "endpoint": {
+ "url": "https://example.com"
+ }
+ },
+ "params": {
+ "UseFIPS": false,
+ "Region": "us-east-1",
+ "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": {
+ "UseFIPS": true,
+ "Region": "us-east-1",
+ "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": {
+ "UseFIPS": false,
+ "Region": "us-east-1",
+ "UseDualStack": true,
+ "Endpoint": "https://example.com"
+ }
+ }
+ ],
+ "version": "1.0"
+}
\ No newline at end of file
diff --git a/apis/appfabric/2023-05-19/examples-1.json b/apis/appfabric/2023-05-19/examples-1.json
new file mode 100644
index 00000000000..0ea7e3b0bbe
--- /dev/null
+++ b/apis/appfabric/2023-05-19/examples-1.json
@@ -0,0 +1,5 @@
+{
+ "version": "1.0",
+ "examples": {
+ }
+}
diff --git a/apis/appfabric/2023-05-19/paginators-1.json b/apis/appfabric/2023-05-19/paginators-1.json
new file mode 100644
index 00000000000..8138e8a2649
--- /dev/null
+++ b/apis/appfabric/2023-05-19/paginators-1.json
@@ -0,0 +1,28 @@
+{
+ "pagination": {
+ "ListAppAuthorizations": {
+ "input_token": "nextToken",
+ "output_token": "nextToken",
+ "limit_key": "maxResults",
+ "result_key": "appAuthorizationSummaryList"
+ },
+ "ListAppBundles": {
+ "input_token": "nextToken",
+ "output_token": "nextToken",
+ "limit_key": "maxResults",
+ "result_key": "appBundleSummaryList"
+ },
+ "ListIngestionDestinations": {
+ "input_token": "nextToken",
+ "output_token": "nextToken",
+ "limit_key": "maxResults",
+ "result_key": "ingestionDestinations"
+ },
+ "ListIngestions": {
+ "input_token": "nextToken",
+ "output_token": "nextToken",
+ "limit_key": "maxResults",
+ "result_key": "ingestions"
+ }
+ }
+}
diff --git a/apis/appfabric/2023-05-19/smoke.json b/apis/appfabric/2023-05-19/smoke.json
new file mode 100644
index 00000000000..a9756813e4a
--- /dev/null
+++ b/apis/appfabric/2023-05-19/smoke.json
@@ -0,0 +1,6 @@
+{
+ "version": 1,
+ "defaultRegion": "us-west-2",
+ "testCases": [
+ ]
+}
diff --git a/apis/appfabric/2023-05-19/waiters-2.json b/apis/appfabric/2023-05-19/waiters-2.json
new file mode 100644
index 00000000000..13f60ee66be
--- /dev/null
+++ b/apis/appfabric/2023-05-19/waiters-2.json
@@ -0,0 +1,5 @@
+{
+ "version": 2,
+ "waiters": {
+ }
+}
diff --git a/apis/appflow/2020-08-23/api-2.json b/apis/appflow/2020-08-23/api-2.json
index 81bf1e12581..acbf7b65d75 100644
--- a/apis/appflow/2020-08-23/api-2.json
+++ b/apis/appflow/2020-08-23/api-2.json
@@ -2748,7 +2748,8 @@
"clientNumber":{"shape":"ClientNumber"},
"logonLanguage":{"shape":"LogonLanguage"},
"privateLinkServiceName":{"shape":"PrivateLinkServiceName"},
- "oAuthProperties":{"shape":"OAuthProperties"}
+ "oAuthProperties":{"shape":"OAuthProperties"},
+ "disableSSO":{"shape":"Boolean"}
}
},
"SAPODataDestinationProperties":{
diff --git a/apis/appflow/2020-08-23/docs-2.json b/apis/appflow/2020-08-23/docs-2.json
index ba09a478418..f047d141565 100644
--- a/apis/appflow/2020-08-23/docs-2.json
+++ b/apis/appflow/2020-08-23/docs-2.json
@@ -257,6 +257,7 @@
"OAuth2CustomParameter$isSensitiveField": "Indicates whether this authentication custom parameter is a sensitive field.
",
"PardotConnectorProfileProperties$isSandboxEnvironment": "Indicates whether the connector profile applies to a sandbox or production environment.
",
"RedshiftConnectorProfileProperties$isRedshiftServerless": "Indicates whether the connector profile defines a connection to an Amazon Redshift Serverless data warehouse.
",
+ "SAPODataConnectorProfileProperties$disableSSO": "If you set this parameter to true
, Amazon AppFlow bypasses the single sign-on (SSO) settings in your SAP account when it accesses your SAP OData instance.
Whether you need this option depends on the types of credentials that you applied to your SAP OData connection profile. If your profile uses basic authentication credentials, SAP SSO can prevent Amazon AppFlow from connecting to your account with your username and password. In this case, bypassing SSO makes it possible for Amazon AppFlow to connect successfully. However, if your profile uses OAuth credentials, this parameter has no affect.
",
"SalesforceConnectorProfileProperties$isSandboxEnvironment": " Indicates whether the connector profile applies to a sandbox or production environment.
",
"SalesforceConnectorProfileProperties$usePrivateLinkForMetadataAndAuthorization": "If the connection mode for the connector profile is private, this parameter sets whether Amazon AppFlow uses the private network to send metadata and authorization calls to Salesforce. Amazon AppFlow sends private calls through Amazon Web Services PrivateLink. These calls travel through Amazon Web Services infrastructure without being exposed to the public internet.
Set either of the following values:
- true
-
Amazon AppFlow sends all calls to Salesforce over the private network.
These private calls are:
-
Calls to get metadata about your Salesforce records. This metadata describes your Salesforce objects and their fields.
-
Calls to get or refresh access tokens that allow Amazon AppFlow to access your Salesforce records.
-
Calls to transfer your Salesforce records as part of a flow run.
- false
-
The default value. Amazon AppFlow sends some calls to Salesforce privately and other calls over the public internet.
The public calls are:
The private calls are:
",
"SalesforceSourceProperties$enableDynamicFieldUpdate": " The flag that enables dynamic fetching of new (recently added) fields in the Salesforce objects while running a flow.
",
diff --git a/apis/emr-serverless/2021-07-13/api-2.json b/apis/emr-serverless/2021-07-13/api-2.json
index c350562adfe..8ad509800eb 100644
--- a/apis/emr-serverless/2021-07-13/api-2.json
+++ b/apis/emr-serverless/2021-07-13/api-2.json
@@ -1255,7 +1255,8 @@
"networkConfiguration":{"shape":"NetworkConfiguration"},
"architecture":{"shape":"Architecture"},
"imageConfiguration":{"shape":"ImageConfigurationInput"},
- "workerTypeSpecifications":{"shape":"WorkerTypeSpecificationInputMap"}
+ "workerTypeSpecifications":{"shape":"WorkerTypeSpecificationInputMap"},
+ "releaseLabel":{"shape":"ReleaseLabel"}
}
},
"UpdateApplicationResponse":{
diff --git a/apis/emr-serverless/2021-07-13/docs-2.json b/apis/emr-serverless/2021-07-13/docs-2.json
index 227abb5eaf9..bb953370c5e 100644
--- a/apis/emr-serverless/2021-07-13/docs-2.json
+++ b/apis/emr-serverless/2021-07-13/docs-2.json
@@ -1,6 +1,6 @@
{
"version": "2.0",
- "service": "Amazon EMR Serverless is a new deployment option for Amazon EMR. EMR Serverless provides a serverless runtime environment that simplifies running analytics applications using the latest open source frameworks such as Apache Spark and Apache Hive. With EMR Serverless, you don’t have to configure, optimize, secure, or operate clusters to run applications with these frameworks.
The API reference to Amazon EMR Serverless is emr-serverless
. The emr-serverless
prefix is used in the following scenarios:
-
It is the prefix in the CLI commands for Amazon EMR Serverless. For example, aws emr-serverless start-job-run
.
-
It is the prefix before IAM policy actions for Amazon EMR Serverless. For example, \"Action\": [\"emr-serverless:StartJobRun\"]
. For more information, see Policy actions for Amazon EMR Serverless.
-
It is the prefix used in Amazon EMR Serverless service endpoints. For example, emr-serverless.us-east-2.amazonaws.com
.
",
+ "service": "Amazon EMR Serverless is a new deployment option for Amazon EMR. Amazon EMR Serverless provides a serverless runtime environment that simplifies running analytics applications using the latest open source frameworks such as Apache Spark and Apache Hive. With Amazon EMR Serverless, you don’t have to configure, optimize, secure, or operate clusters to run applications with these frameworks.
The API reference to Amazon EMR Serverless is emr-serverless
. The emr-serverless
prefix is used in the following scenarios:
-
It is the prefix in the CLI commands for Amazon EMR Serverless. For example, aws emr-serverless start-job-run
.
-
It is the prefix before IAM policy actions for Amazon EMR Serverless. For example, \"Action\": [\"emr-serverless:StartJobRun\"]
. For more information, see Policy actions for Amazon EMR Serverless.
-
It is the prefix used in Amazon EMR Serverless service endpoints. For example, emr-serverless.us-east-2.amazonaws.com
.
",
"operations": {
"CancelJobRun": "Cancels a job run.
",
"CreateApplication": "Creates an application.
",
@@ -20,7 +20,7 @@
},
"shapes": {
"Application": {
- "base": "Information about an application. EMR Serverless uses applications to run jobs.
",
+ "base": "Information about an application. Amazon EMR Serverless uses applications to run jobs.
",
"refs": {
"GetApplicationResponse$application": "The output displays information about the specified application.
",
"UpdateApplicationResponse$application": "Information about the updated application.
"
@@ -398,7 +398,7 @@
}
},
"JobRun": {
- "base": "Information about a job run. A job run is a unit of work, such as a Spark JAR, Hive query, or SparkSQL query, that you submit to an EMR Serverless application.
",
+ "base": "Information about a job run. A job run is a unit of work, such as a Spark JAR, Hive query, or SparkSQL query, that you submit to an Amazon EMR Serverless application.
",
"refs": {
"GetJobRunResponse$jobRun": "The output displays information about the job run.
"
}
@@ -543,11 +543,12 @@
"ReleaseLabel": {
"base": null,
"refs": {
- "Application$releaseLabel": "The EMR release associated with the application.
",
- "ApplicationSummary$releaseLabel": "The EMR release associated with the application.
",
- "CreateApplicationRequest$releaseLabel": "The EMR release associated with the application.
",
- "JobRun$releaseLabel": "The EMR release associated with the application your job is running on.
",
- "JobRunSummary$releaseLabel": "The EMR release associated with the application your job is running on.
"
+ "Application$releaseLabel": "The Amazon EMR release associated with the application.
",
+ "ApplicationSummary$releaseLabel": "The Amazon EMR release associated with the application.
",
+ "CreateApplicationRequest$releaseLabel": "The Amazon EMR release associated with the application.
",
+ "JobRun$releaseLabel": "The Amazon EMR release associated with the application your job is running on.
",
+ "JobRunSummary$releaseLabel": "The Amazon EMR release associated with the application your job is running on.
",
+ "UpdateApplicationRequest$releaseLabel": "The Amazon EMR release label for the application. You can change the release label to use a different release of Amazon EMR.
"
}
},
"RequestIdentityUserArn": {
@@ -573,7 +574,7 @@
"ResourceUtilization": {
"base": "The resource utilization for memory, storage, and vCPU for jobs.
",
"refs": {
- "JobRun$billedResourceUtilization": "The aggregate vCPU, memory, and storage that AWS has billed for the job run. The billed resources include a 1-minute minimum usage for workers, plus additional storage over 20 GB per worker. Note that billed resources do not include usage for idle pre-initialized workers.
"
+ "JobRun$billedResourceUtilization": "The aggregate vCPU, memory, and storage that Amazon Web Services has billed for the job run. The billed resources include a 1-minute minimum usage for workers, plus additional storage over 20 GB per worker. Note that billed resources do not include usage for idle pre-initialized workers.
"
}
},
"S3MonitoringConfiguration": {
diff --git a/apis/ivs/2020-07-14/api-2.json b/apis/ivs/2020-07-14/api-2.json
index a164b833d40..e07dcec88c3 100644
--- a/apis/ivs/2020-07-14/api-2.json
+++ b/apis/ivs/2020-07-14/api-2.json
@@ -33,6 +33,19 @@
"input":{"shape":"BatchGetStreamKeyRequest"},
"output":{"shape":"BatchGetStreamKeyResponse"}
},
+ "BatchStartViewerSessionRevocation":{
+ "name":"BatchStartViewerSessionRevocation",
+ "http":{
+ "method":"POST",
+ "requestUri":"/BatchStartViewerSessionRevocation",
+ "responseCode":200
+ },
+ "input":{"shape":"BatchStartViewerSessionRevocationRequest"},
+ "output":{"shape":"BatchStartViewerSessionRevocationResponse"},
+ "errors":[
+ {"shape":"ValidationException"}
+ ]
+ },
"CreateChannel":{
"name":"CreateChannel",
"http":{
@@ -376,6 +389,22 @@
{"shape":"ThrottlingException"}
]
},
+ "StartViewerSessionRevocation":{
+ "name":"StartViewerSessionRevocation",
+ "http":{
+ "method":"POST",
+ "requestUri":"/StartViewerSessionRevocation",
+ "responseCode":200
+ },
+ "input":{"shape":"StartViewerSessionRevocationRequest"},
+ "output":{"shape":"StartViewerSessionRevocationResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ValidationException"},
+ {"shape":"ThrottlingException"}
+ ]
+ },
"StopStream":{
"name":"StopStream",
"http":{
@@ -503,6 +532,54 @@
"streamKeys":{"shape":"StreamKeys"}
}
},
+ "BatchStartViewerSessionRevocationError":{
+ "type":"structure",
+ "required":[
+ "channelArn",
+ "viewerId"
+ ],
+ "members":{
+ "channelArn":{"shape":"ChannelArn"},
+ "code":{"shape":"errorCode"},
+ "message":{"shape":"errorMessage"},
+ "viewerId":{"shape":"ViewerId"}
+ }
+ },
+ "BatchStartViewerSessionRevocationErrors":{
+ "type":"list",
+ "member":{"shape":"BatchStartViewerSessionRevocationError"}
+ },
+ "BatchStartViewerSessionRevocationRequest":{
+ "type":"structure",
+ "required":["viewerSessions"],
+ "members":{
+ "viewerSessions":{"shape":"BatchStartViewerSessionRevocationViewerSessionList"}
+ }
+ },
+ "BatchStartViewerSessionRevocationResponse":{
+ "type":"structure",
+ "members":{
+ "errors":{"shape":"BatchStartViewerSessionRevocationErrors"}
+ }
+ },
+ "BatchStartViewerSessionRevocationViewerSession":{
+ "type":"structure",
+ "required":[
+ "channelArn",
+ "viewerId"
+ ],
+ "members":{
+ "channelArn":{"shape":"ChannelArn"},
+ "viewerId":{"shape":"ViewerId"},
+ "viewerSessionVersionsLessThanOrEqualTo":{"shape":"ViewerSessionVersion"}
+ }
+ },
+ "BatchStartViewerSessionRevocationViewerSessionList":{
+ "type":"list",
+ "member":{"shape":"BatchStartViewerSessionRevocationViewerSession"},
+ "max":20,
+ "min":1
+ },
"Boolean":{"type":"boolean"},
"Channel":{
"type":"structure",
@@ -1121,6 +1198,23 @@
},
"exception":true
},
+ "StartViewerSessionRevocationRequest":{
+ "type":"structure",
+ "required":[
+ "channelArn",
+ "viewerId"
+ ],
+ "members":{
+ "channelArn":{"shape":"ChannelArn"},
+ "viewerId":{"shape":"ViewerId"},
+ "viewerSessionVersionsLessThanOrEqualTo":{"shape":"ViewerSessionVersion"}
+ }
+ },
+ "StartViewerSessionRevocationResponse":{
+ "type":"structure",
+ "members":{
+ }
+ },
"StopStreamRequest":{
"type":"structure",
"required":["channelArn"],
@@ -1432,6 +1526,15 @@
"videoWidth":{"shape":"Integer"}
}
},
+ "ViewerId":{
+ "type":"string",
+ "max":40,
+ "min":1
+ },
+ "ViewerSessionVersion":{
+ "type":"integer",
+ "min":0
+ },
"errorCode":{"type":"string"},
"errorMessage":{"type":"string"}
}
diff --git a/apis/ivs/2020-07-14/docs-2.json b/apis/ivs/2020-07-14/docs-2.json
index 8fdf58c8c14..b459d90771e 100644
--- a/apis/ivs/2020-07-14/docs-2.json
+++ b/apis/ivs/2020-07-14/docs-2.json
@@ -1,9 +1,10 @@
{
"version": "2.0",
- "service": " Introduction
The Amazon Interactive Video Service (IVS) API is REST compatible, using a standard HTTP API and an Amazon Web Services EventBridge event stream for responses. JSON is used for both requests and responses, including errors.
The API is an Amazon Web Services regional service. For a list of supported regions and Amazon IVS HTTPS service endpoints, see the Amazon IVS page in the Amazon Web Services General Reference.
All API request parameters and URLs are case sensitive.
For a summary of notable documentation changes in each release, see Document History.
Allowed Header Values
Resources
The following resources contain information about your IVS live stream (see Getting Started with Amazon IVS):
-
Channel — Stores configuration data related to your live stream. You first create a channel and then use the channel’s stream key to start your live stream. See the Channel endpoints for more information.
-
Stream key — An identifier assigned by Amazon IVS when you create a channel, which is then used to authorize streaming. See the StreamKey endpoints for more information. Treat the stream key like a secret, since it allows anyone to stream to the channel.
-
Playback key pair — Video playback may be restricted using playback-authorization tokens, which use public-key encryption. A playback key pair is the public-private pair of keys used to sign and validate the playback-authorization token. See the PlaybackKeyPair endpoints for more information.
-
Recording configuration — Stores configuration related to recording a live stream and where to store the recorded content. Multiple channels can reference the same recording configuration. See the Recording Configuration endpoints for more information.
Tagging
A tag is a metadata label that you assign to an Amazon Web Services resource. A tag comprises a key and a value, both set by you. For example, you might set a tag as topic:nature
to label a particular video category. See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.
Tags can help you identify and organize your Amazon Web Services resources. For example, you can use the same tag for different resources to indicate that they are related. You can also use tags to manage access (see Access Tags).
The Amazon IVS API has these tag-related endpoints: TagResource, UntagResource, and ListTagsForResource. The following resources support tagging: Channels, Stream Keys, Playback Key Pairs, and Recording Configurations.
At most 50 tags can be applied to a resource.
Authentication versus Authorization
Note the differences between these concepts:
-
Authentication is about verifying identity. You need to be authenticated to sign Amazon IVS API requests.
-
Authorization is about granting permissions. Your IAM roles need to have permissions for Amazon IVS API requests. In addition, authorization is needed to view Amazon IVS private channels. (Private channels are channels that are enabled for \"playback authorization.\")
Authentication
All Amazon IVS API requests must be authenticated with a signature. The Amazon Web Services Command-Line Interface (CLI) and Amazon IVS Player SDKs take care of signing the underlying API calls for you. However, if your application calls the Amazon IVS API directly, it’s your responsibility to sign the requests.
You generate a signature using valid Amazon Web Services credentials that have permission to perform the requested action. For example, you must sign PutMetadata requests with a signature generated from a user account that has the ivs:PutMetadata
permission.
For more information:
Amazon Resource Names (ARNs)
ARNs uniquely identify AWS resources. An ARN is required when you need to specify a resource unambiguously across all of AWS, such as in IAM policies and API calls. For more information, see Amazon Resource Names in the AWS General Reference.
Channel Endpoints
-
CreateChannel — Creates a new channel and an associated stream key to start streaming.
-
GetChannel — Gets the channel configuration for the specified channel ARN.
-
BatchGetChannel — Performs GetChannel on multiple ARNs simultaneously.
-
ListChannels — Gets summary information about all channels in your account, in the Amazon Web Services region where the API request is processed. This list can be filtered to match a specified name or recording-configuration ARN. Filters are mutually exclusive and cannot be used together. If you try to use both filters, you will get an error (409 Conflict Exception).
-
UpdateChannel — Updates a channel's configuration. This does not affect an ongoing stream of this channel. You must stop and restart the stream for the changes to take effect.
-
DeleteChannel — Deletes the specified channel.
StreamKey Endpoints
-
CreateStreamKey — Creates a stream key, used to initiate a stream, for the specified channel ARN.
-
GetStreamKey — Gets stream key information for the specified ARN.
-
BatchGetStreamKey — Performs GetStreamKey on multiple ARNs simultaneously.
-
ListStreamKeys — Gets summary information about stream keys for the specified channel.
-
DeleteStreamKey — Deletes the stream key for the specified ARN, so it can no longer be used to stream.
Stream Endpoints
-
GetStream — Gets information about the active (live) stream on a specified channel.
-
GetStreamSession — Gets metadata on a specified stream.
-
ListStreams — Gets summary information about live streams in your account, in the Amazon Web Services region where the API request is processed.
-
ListStreamSessions — Gets a summary of current and previous streams for a specified channel in your account, in the AWS region where the API request is processed.
-
StopStream — Disconnects the incoming RTMPS stream for the specified channel. Can be used in conjunction with DeleteStreamKey to prevent further streaming to a channel.
-
PutMetadata — Inserts metadata into the active stream of the specified channel. At most 5 requests per second per channel are allowed, each with a maximum 1 KB payload. (If 5 TPS is not sufficient for your needs, we recommend batching your data into a single PutMetadata call.) At most 155 requests per second per account are allowed.
PlaybackKeyPair Endpoints
For more information, see Setting Up Private Channels in the Amazon IVS User Guide.
-
ImportPlaybackKeyPair — Imports the public portion of a new key pair and returns its arn
and fingerprint
. The privateKey
can then be used to generate viewer authorization tokens, to grant viewers access to private channels (channels enabled for playback authorization).
-
GetPlaybackKeyPair — Gets a specified playback authorization key pair and returns the arn
and fingerprint
. The privateKey
held by the caller can be used to generate viewer authorization tokens, to grant viewers access to private channels.
-
ListPlaybackKeyPairs — Gets summary information about playback key pairs.
-
DeletePlaybackKeyPair — Deletes a specified authorization key pair. This invalidates future viewer tokens generated using the key pair’s privateKey
.
RecordingConfiguration Endpoints
Amazon Web Services Tags Endpoints
-
TagResource — Adds or updates tags for the Amazon Web Services resource with the specified ARN.
-
UntagResource — Removes tags from the resource with the specified ARN.
-
ListTagsForResource — Gets information about Amazon Web Services tags for the specified ARN.
",
+ "service": " Introduction
The Amazon Interactive Video Service (IVS) API is REST compatible, using a standard HTTP API and an Amazon Web Services EventBridge event stream for responses. JSON is used for both requests and responses, including errors.
The API is an Amazon Web Services regional service. For a list of supported regions and Amazon IVS HTTPS service endpoints, see the Amazon IVS page in the Amazon Web Services General Reference.
All API request parameters and URLs are case sensitive.
For a summary of notable documentation changes in each release, see Document History.
Allowed Header Values
Resources
The following resources contain information about your IVS live stream (see Getting Started with Amazon IVS):
-
Channel — Stores configuration data related to your live stream. You first create a channel and then use the channel’s stream key to start your live stream. See the Channel endpoints for more information.
-
Stream key — An identifier assigned by Amazon IVS when you create a channel, which is then used to authorize streaming. See the StreamKey endpoints for more information. Treat the stream key like a secret, since it allows anyone to stream to the channel.
-
Playback key pair — Video playback may be restricted using playback-authorization tokens, which use public-key encryption. A playback key pair is the public-private pair of keys used to sign and validate the playback-authorization token. See the PlaybackKeyPair endpoints for more information.
-
Recording configuration — Stores configuration related to recording a live stream and where to store the recorded content. Multiple channels can reference the same recording configuration. See the Recording Configuration endpoints for more information.
Tagging
A tag is a metadata label that you assign to an Amazon Web Services resource. A tag comprises a key and a value, both set by you. For example, you might set a tag as topic:nature
to label a particular video category. See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.
Tags can help you identify and organize your Amazon Web Services resources. For example, you can use the same tag for different resources to indicate that they are related. You can also use tags to manage access (see Access Tags).
The Amazon IVS API has these tag-related endpoints: TagResource, UntagResource, and ListTagsForResource. The following resources support tagging: Channels, Stream Keys, Playback Key Pairs, and Recording Configurations.
At most 50 tags can be applied to a resource.
Authentication versus Authorization
Note the differences between these concepts:
-
Authentication is about verifying identity. You need to be authenticated to sign Amazon IVS API requests.
-
Authorization is about granting permissions. Your IAM roles need to have permissions for Amazon IVS API requests. In addition, authorization is needed to view Amazon IVS private channels. (Private channels are channels that are enabled for \"playback authorization.\")
Authentication
All Amazon IVS API requests must be authenticated with a signature. The Amazon Web Services Command-Line Interface (CLI) and Amazon IVS Player SDKs take care of signing the underlying API calls for you. However, if your application calls the Amazon IVS API directly, it’s your responsibility to sign the requests.
You generate a signature using valid Amazon Web Services credentials that have permission to perform the requested action. For example, you must sign PutMetadata requests with a signature generated from a user account that has the ivs:PutMetadata
permission.
For more information:
Amazon Resource Names (ARNs)
ARNs uniquely identify AWS resources. An ARN is required when you need to specify a resource unambiguously across all of AWS, such as in IAM policies and API calls. For more information, see Amazon Resource Names in the AWS General Reference.
Channel Endpoints
-
CreateChannel — Creates a new channel and an associated stream key to start streaming.
-
GetChannel — Gets the channel configuration for the specified channel ARN.
-
BatchGetChannel — Performs GetChannel on multiple ARNs simultaneously.
-
ListChannels — Gets summary information about all channels in your account, in the Amazon Web Services region where the API request is processed. This list can be filtered to match a specified name or recording-configuration ARN. Filters are mutually exclusive and cannot be used together. If you try to use both filters, you will get an error (409 Conflict Exception).
-
UpdateChannel — Updates a channel's configuration. This does not affect an ongoing stream of this channel. You must stop and restart the stream for the changes to take effect.
-
DeleteChannel — Deletes the specified channel.
StreamKey Endpoints
-
CreateStreamKey — Creates a stream key, used to initiate a stream, for the specified channel ARN.
-
GetStreamKey — Gets stream key information for the specified ARN.
-
BatchGetStreamKey — Performs GetStreamKey on multiple ARNs simultaneously.
-
ListStreamKeys — Gets summary information about stream keys for the specified channel.
-
DeleteStreamKey — Deletes the stream key for the specified ARN, so it can no longer be used to stream.
Stream Endpoints
-
GetStream — Gets information about the active (live) stream on a specified channel.
-
GetStreamSession — Gets metadata on a specified stream.
-
ListStreams — Gets summary information about live streams in your account, in the Amazon Web Services region where the API request is processed.
-
ListStreamSessions — Gets a summary of current and previous streams for a specified channel in your account, in the AWS region where the API request is processed.
-
StopStream — Disconnects the incoming RTMPS stream for the specified channel. Can be used in conjunction with DeleteStreamKey to prevent further streaming to a channel.
-
PutMetadata — Inserts metadata into the active stream of the specified channel. At most 5 requests per second per channel are allowed, each with a maximum 1 KB payload. (If 5 TPS is not sufficient for your needs, we recommend batching your data into a single PutMetadata call.) At most 155 requests per second per account are allowed.
Private Channel Endpoints
For more information, see Setting Up Private Channels in the Amazon IVS User Guide.
-
ImportPlaybackKeyPair — Imports the public portion of a new key pair and returns its arn
and fingerprint
. The privateKey
can then be used to generate viewer authorization tokens, to grant viewers access to private channels (channels enabled for playback authorization).
-
GetPlaybackKeyPair — Gets a specified playback authorization key pair and returns the arn
and fingerprint
. The privateKey
held by the caller can be used to generate viewer authorization tokens, to grant viewers access to private channels.
-
ListPlaybackKeyPairs — Gets summary information about playback key pairs.
-
DeletePlaybackKeyPair — Deletes a specified authorization key pair. This invalidates future viewer tokens generated using the key pair’s privateKey
.
-
StartViewerSessionRevocation — Starts the process of revoking the viewer session associated with a specified channel ARN and viewer ID. Optionally, you can provide a version to revoke viewer sessions less than and including that version.
-
BatchStartViewerSessionRevocation — Performs StartViewerSessionRevocation on multiple channel ARN and viewer ID pairs simultaneously.
RecordingConfiguration Endpoints
Amazon Web Services Tags Endpoints
-
TagResource — Adds or updates tags for the Amazon Web Services resource with the specified ARN.
-
UntagResource — Removes tags from the resource with the specified ARN.
-
ListTagsForResource — Gets information about Amazon Web Services tags for the specified ARN.
",
"operations": {
"BatchGetChannel": "Performs GetChannel on multiple ARNs simultaneously.
",
"BatchGetStreamKey": "Performs GetStreamKey on multiple ARNs simultaneously.
",
+ "BatchStartViewerSessionRevocation": "Performs StartViewerSessionRevocation on multiple channel ARN and viewer ID pairs simultaneously.
",
"CreateChannel": "Creates a new channel and an associated stream key to start streaming.
",
"CreateRecordingConfiguration": "Creates a new recording configuration, used to enable recording to Amazon S3.
Known issue: In the us-east-1 region, if you use the Amazon Web Services CLI to create a recording configuration, it returns success even if the S3 bucket is in a different region. In this case, the state
of the recording configuration is CREATE_FAILED
(instead of ACTIVE
). (In other regions, the CLI correctly returns failure if the bucket is in a different region.)
Workaround: Ensure that your S3 bucket is in the same region as the recording configuration. If you create a recording configuration in a different region as your S3 bucket, delete that recording configuration and create a new one with an S3 bucket from the correct region.
",
"CreateStreamKey": "Creates a stream key, used to initiate a stream, for the specified channel ARN.
Note that CreateChannel creates a stream key. If you subsequently use CreateStreamKey on the same channel, it will fail because a stream key already exists and there is a limit of 1 stream key per channel. To reset the stream key on a channel, use DeleteStreamKey and then CreateStreamKey.
",
@@ -26,6 +27,7 @@
"ListStreams": "Gets summary information about live streams in your account, in the Amazon Web Services region where the API request is processed.
",
"ListTagsForResource": "Gets information about Amazon Web Services tags for the specified ARN.
",
"PutMetadata": "Inserts metadata into the active stream of the specified channel. At most 5 requests per second per channel are allowed, each with a maximum 1 KB payload. (If 5 TPS is not sufficient for your needs, we recommend batching your data into a single PutMetadata call.) At most 155 requests per second per account are allowed. Also see Embedding Metadata within a Video Stream in the Amazon IVS User Guide.
",
+ "StartViewerSessionRevocation": "Starts the process of revoking the viewer session associated with a specified channel ARN and viewer ID. Optionally, you can provide a version to revoke viewer sessions less than and including that version. For instructions on associating a viewer ID with a viewer session, see Setting Up Private Channels.
",
"StopStream": "Disconnects the incoming RTMPS stream for the specified channel. Can be used in conjunction with DeleteStreamKey to prevent further streaming to a channel.
Many streaming client-software libraries automatically reconnect a dropped RTMPS session, so to stop the stream permanently, you may want to first revoke the streamKey
attached to the channel.
",
"TagResource": "Adds or updates tags for the Amazon Web Services resource with the specified ARN.
",
"UntagResource": "Removes tags from the resource with the specified ARN.
",
@@ -76,6 +78,40 @@
"refs": {
}
},
+ "BatchStartViewerSessionRevocationError": {
+ "base": "Error for a request in the batch for BatchStartViewerSessionRevocation. Each error is related to a specific channel-ARN and viewer-ID pair.
",
+ "refs": {
+ "BatchStartViewerSessionRevocationErrors$member": null
+ }
+ },
+ "BatchStartViewerSessionRevocationErrors": {
+ "base": null,
+ "refs": {
+ "BatchStartViewerSessionRevocationResponse$errors": "Each error object is related to a specific channelArn
and viewerId
pair in the request.
"
+ }
+ },
+ "BatchStartViewerSessionRevocationRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "BatchStartViewerSessionRevocationResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "BatchStartViewerSessionRevocationViewerSession": {
+ "base": "A viewer session to revoke in the call to BatchStartViewerSessionRevocation.
",
+ "refs": {
+ "BatchStartViewerSessionRevocationViewerSessionList$member": null
+ }
+ },
+ "BatchStartViewerSessionRevocationViewerSessionList": {
+ "base": null,
+ "refs": {
+ "BatchStartViewerSessionRevocationRequest$viewerSessions": "Array of viewer sessions, one per channel-ARN and viewer-ID pair.
"
+ }
+ },
"Boolean": {
"base": null,
"refs": {
@@ -99,6 +135,8 @@
"ChannelArn": {
"base": null,
"refs": {
+ "BatchStartViewerSessionRevocationError$channelArn": "Channel ARN.
",
+ "BatchStartViewerSessionRevocationViewerSession$channelArn": "The ARN of the channel associated with the viewer session to revoke.
",
"Channel$arn": "Channel ARN.
",
"ChannelArnList$member": null,
"ChannelSummary$arn": "Channel ARN.
",
@@ -110,6 +148,7 @@
"ListStreamKeysRequest$channelArn": "Channel ARN used to filter the list.
",
"ListStreamSessionsRequest$channelArn": "Channel ARN used to filter the list.
",
"PutMetadataRequest$channelArn": "ARN of the channel into which metadata is inserted. This channel must have an active stream.
",
+ "StartViewerSessionRevocationRequest$channelArn": "The ARN of the channel associated with the viewer session to revoke.
",
"StopStreamRequest$channelArn": "ARN of the channel for which the stream is to be stopped.
",
"Stream$channelArn": "Channel ARN for the stream.
",
"StreamKey$channelArn": "Channel ARN for the stream.
",
@@ -637,6 +676,16 @@
"refs": {
}
},
+ "StartViewerSessionRevocationRequest": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "StartViewerSessionRevocationResponse": {
+ "base": null,
+ "refs": {
+ }
+ },
"StopStreamRequest": {
"base": null,
"refs": {
@@ -928,10 +977,26 @@
"IngestConfiguration$video": "Encoder settings for video.
"
}
},
+ "ViewerId": {
+ "base": null,
+ "refs": {
+ "BatchStartViewerSessionRevocationError$viewerId": "The ID of the viewer session to revoke.
",
+ "BatchStartViewerSessionRevocationViewerSession$viewerId": "The ID of the viewer associated with the viewer session to revoke. Do not use this field for personally identifying, confidential, or sensitive information.
",
+ "StartViewerSessionRevocationRequest$viewerId": "The ID of the viewer associated with the viewer session to revoke. Do not use this field for personally identifying, confidential, or sensitive information.
"
+ }
+ },
+ "ViewerSessionVersion": {
+ "base": null,
+ "refs": {
+ "BatchStartViewerSessionRevocationViewerSession$viewerSessionVersionsLessThanOrEqualTo": "An optional filter on which versions of the viewer session to revoke. All versions less than or equal to the specified version will be revoked. Default: 0.
",
+ "StartViewerSessionRevocationRequest$viewerSessionVersionsLessThanOrEqualTo": "An optional filter on which versions of the viewer session to revoke. All versions less than or equal to the specified version will be revoked. Default: 0.
"
+ }
+ },
"errorCode": {
"base": null,
"refs": {
- "BatchError$code": "Error code.
"
+ "BatchError$code": "Error code.
",
+ "BatchStartViewerSessionRevocationError$code": "Error code.
"
}
},
"errorMessage": {
@@ -939,6 +1004,7 @@
"refs": {
"AccessDeniedException$exceptionMessage": "User does not have sufficient access to perform this action.
",
"BatchError$message": "Error message, determined by the application.
",
+ "BatchStartViewerSessionRevocationError$message": "Error message, determined by the application.
",
"ChannelNotBroadcasting$exceptionMessage": "The stream is offline for the given channel ARN.
",
"ConflictException$exceptionMessage": "Updating or deleting a resource can cause an inconsistent state.
",
"InternalServerException$exceptionMessage": "Unexpected error during processing of request.
",
diff --git a/apis/kinesisvideo/2017-09-30/api-2.json b/apis/kinesisvideo/2017-09-30/api-2.json
index 876e8d900a7..96c5891dc0d 100644
--- a/apis/kinesisvideo/2017-09-30/api-2.json
+++ b/apis/kinesisvideo/2017-09-30/api-2.json
@@ -46,6 +46,22 @@
{"shape":"TagsPerResourceExceededLimitException"}
]
},
+ "DeleteEdgeConfiguration":{
+ "name":"DeleteEdgeConfiguration",
+ "http":{
+ "method":"POST",
+ "requestUri":"/deleteEdgeConfiguration"
+ },
+ "input":{"shape":"DeleteEdgeConfigurationInput"},
+ "output":{"shape":"DeleteEdgeConfigurationOutput"},
+ "errors":[
+ {"shape":"AccessDeniedException"},
+ {"shape":"ClientLimitExceededException"},
+ {"shape":"InvalidArgumentException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"StreamEdgeConfigurationNotFoundException"}
+ ]
+ },
"DeleteSignalingChannel":{
"name":"DeleteSignalingChannel",
"http":{
@@ -217,6 +233,20 @@
{"shape":"AccessDeniedException"}
]
},
+ "ListEdgeAgentConfigurations":{
+ "name":"ListEdgeAgentConfigurations",
+ "http":{
+ "method":"POST",
+ "requestUri":"/listEdgeAgentConfigurations"
+ },
+ "input":{"shape":"ListEdgeAgentConfigurationsInput"},
+ "output":{"shape":"ListEdgeAgentConfigurationsOutput"},
+ "errors":[
+ {"shape":"NotAuthorizedException"},
+ {"shape":"ClientLimitExceededException"},
+ {"shape":"InvalidArgumentException"}
+ ]
+ },
"ListSignalingChannels":{
"name":"ListSignalingChannels",
"http":{
@@ -611,6 +641,18 @@
"min":0
},
"DeleteAfterUpload":{"type":"boolean"},
+ "DeleteEdgeConfigurationInput":{
+ "type":"structure",
+ "members":{
+ "StreamName":{"shape":"StreamName"},
+ "StreamARN":{"shape":"ResourceARN"}
+ }
+ },
+ "DeleteEdgeConfigurationOutput":{
+ "type":"structure",
+ "members":{
+ }
+ },
"DeleteSignalingChannelInput":{
"type":"structure",
"required":["ChannelARN"],
@@ -661,7 +703,8 @@
"LastUpdatedTime":{"shape":"Timestamp"},
"SyncStatus":{"shape":"SyncStatus"},
"FailedStatusDetails":{"shape":"FailedStatusDetails"},
- "EdgeConfig":{"shape":"EdgeConfig"}
+ "EdgeConfig":{"shape":"EdgeConfig"},
+ "EdgeAgentStatus":{"shape":"EdgeAgentStatus"}
}
},
"DescribeImageGenerationConfigurationInput":{
@@ -776,6 +819,13 @@
"max":3600,
"min":60
},
+ "EdgeAgentStatus":{
+ "type":"structure",
+ "members":{
+ "LastRecorderStatus":{"shape":"LastRecorderStatus"},
+ "LastUploaderStatus":{"shape":"LastUploaderStatus"}
+ }
+ },
"EdgeConfig":{
"type":"structure",
"required":[
@@ -922,12 +972,68 @@
"error":{"httpStatusCode":400},
"exception":true
},
+ "JobStatusDetails":{"type":"string"},
"KmsKeyId":{
"type":"string",
"max":2048,
"min":1,
"pattern":".+"
},
+ "LastRecorderStatus":{
+ "type":"structure",
+ "members":{
+ "JobStatusDetails":{"shape":"JobStatusDetails"},
+ "LastCollectedTime":{"shape":"Timestamp"},
+ "LastUpdatedTime":{"shape":"Timestamp"},
+ "RecorderStatus":{"shape":"RecorderStatus"}
+ }
+ },
+ "LastUploaderStatus":{
+ "type":"structure",
+ "members":{
+ "JobStatusDetails":{"shape":"JobStatusDetails"},
+ "LastCollectedTime":{"shape":"Timestamp"},
+ "LastUpdatedTime":{"shape":"Timestamp"},
+ "UploaderStatus":{"shape":"UploaderStatus"}
+ }
+ },
+ "ListEdgeAgentConfigurationsEdgeConfig":{
+ "type":"structure",
+ "members":{
+ "StreamName":{"shape":"StreamName"},
+ "StreamARN":{"shape":"ResourceARN"},
+ "CreationTime":{"shape":"Timestamp"},
+ "LastUpdatedTime":{"shape":"Timestamp"},
+ "SyncStatus":{"shape":"SyncStatus"},
+ "FailedStatusDetails":{"shape":"FailedStatusDetails"},
+ "EdgeConfig":{"shape":"EdgeConfig"}
+ }
+ },
+ "ListEdgeAgentConfigurationsEdgeConfigList":{
+ "type":"list",
+ "member":{"shape":"ListEdgeAgentConfigurationsEdgeConfig"}
+ },
+ "ListEdgeAgentConfigurationsInput":{
+ "type":"structure",
+ "required":["HubDeviceArn"],
+ "members":{
+ "HubDeviceArn":{"shape":"HubDeviceArn"},
+ "MaxResults":{"shape":"ListEdgeAgentConfigurationsInputLimit"},
+ "NextToken":{"shape":"NextToken"}
+ }
+ },
+ "ListEdgeAgentConfigurationsInputLimit":{
+ "type":"integer",
+ "max":10,
+ "min":1
+ },
+ "ListEdgeAgentConfigurationsOutput":{
+ "type":"structure",
+ "members":{
+ "EdgeConfigs":{"shape":"ListEdgeAgentConfigurationsEdgeConfigList"},
+ "NextToken":{"shape":"NextToken"}
+ }
+ },
"ListOfProtocols":{
"type":"list",
"member":{"shape":"ChannelProtocol"},
@@ -1128,6 +1234,14 @@
"ScheduleConfig":{"shape":"ScheduleConfig"}
}
},
+ "RecorderStatus":{
+ "type":"string",
+ "enum":[
+ "SUCCESS",
+ "USER_ERROR",
+ "SYSTEM_ERROR"
+ ]
+ },
"ResourceARN":{
"type":"string",
"max":1024,
@@ -1288,7 +1402,8 @@
"IN_SYNC",
"SYNC_FAILED",
"DELETING",
- "DELETE_FAILED"
+ "DELETE_FAILED",
+ "DELETING_ACKNOWLEDGED"
]
},
"Tag":{
@@ -1511,6 +1626,14 @@
"ScheduleConfig":{"shape":"ScheduleConfig"}
}
},
+ "UploaderStatus":{
+ "type":"string",
+ "enum":[
+ "SUCCESS",
+ "USER_ERROR",
+ "SYSTEM_ERROR"
+ ]
+ },
"Version":{
"type":"string",
"max":64,
diff --git a/apis/kinesisvideo/2017-09-30/docs-2.json b/apis/kinesisvideo/2017-09-30/docs-2.json
index 8446c101163..891ccab6347 100644
--- a/apis/kinesisvideo/2017-09-30/docs-2.json
+++ b/apis/kinesisvideo/2017-09-30/docs-2.json
@@ -4,17 +4,19 @@
"operations": {
"CreateSignalingChannel": "Creates a signaling channel.
CreateSignalingChannel
is an asynchronous operation.
",
"CreateStream": "Creates a new Kinesis video stream.
When you create a new stream, Kinesis Video Streams assigns it a version number. When you change the stream's metadata, Kinesis Video Streams updates the version.
CreateStream
is an asynchronous operation.
For information about how the service works, see How it Works.
You must have permissions for the KinesisVideo:CreateStream
action.
",
+ "DeleteEdgeConfiguration": "An asynchronous API that deletes a stream’s existing edge configuration, as well as the corresponding media from the Edge Agent.
When you invoke this API, the sync status is set to DELETING
. A deletion process starts, in which active edge jobs are stopped and all media is deleted from the edge device. The time to delete varies, depending on the total amount of stored media. If the deletion process fails, the sync status changes to DELETE_FAILED
. You will need to re-try the deletion.
When the deletion process has completed successfully, the edge configuration is no longer accessible.
",
"DeleteSignalingChannel": "Deletes a specified signaling channel. DeleteSignalingChannel
is an asynchronous operation. If you don't specify the channel's current version, the most recent version is deleted.
",
"DeleteStream": "Deletes a Kinesis video stream and the data contained in the stream.
This method marks the stream for deletion, and makes the data in the stream inaccessible immediately.
To ensure that you have the latest version of the stream before deleting it, you can specify the stream version. Kinesis Video Streams assigns a version to each stream. When you update a stream, Kinesis Video Streams assigns a new version number. To get the latest stream version, use the DescribeStream
API.
This operation requires permission for the KinesisVideo:DeleteStream
action.
",
- "DescribeEdgeConfiguration": "Describes a stream’s edge configuration that was set using the StartEdgeConfigurationUpdate
API. Use this API to get the status of the configuration if the configuration is in sync with the Edge Agent.
",
+ "DescribeEdgeConfiguration": "Describes a stream’s edge configuration that was set using the StartEdgeConfigurationUpdate
API and the latest status of the edge agent's recorder and uploader jobs. Use this API to get the status of the configuration to determine if the configuration is in sync with the Edge Agent. Use this API to evaluate the health of the Edge Agent.
",
"DescribeImageGenerationConfiguration": "Gets the ImageGenerationConfiguration
for a given Kinesis video stream.
",
- "DescribeMappedResourceConfiguration": "Returns the most current information about the stream. Either streamName or streamARN should be provided in the input.
Returns the most current information about the stream. The streamName
or streamARN
should be provided in the input.
",
+ "DescribeMappedResourceConfiguration": "Returns the most current information about the stream. The streamName
or streamARN
should be provided in the input.
",
"DescribeMediaStorageConfiguration": "Returns the most current information about the channel. Specify the ChannelName
or ChannelARN
in the input.
",
"DescribeNotificationConfiguration": "Gets the NotificationConfiguration
for a given Kinesis video stream.
",
"DescribeSignalingChannel": "Returns the most current information about the signaling channel. You must specify either the name or the Amazon Resource Name (ARN) of the channel that you want to describe.
",
"DescribeStream": "Returns the most current information about the specified stream. You must specify either the StreamName
or the StreamARN
.
",
"GetDataEndpoint": "Gets an endpoint for a specified stream for either reading or writing. Use this endpoint in your application to read from the specified stream (using the GetMedia
or GetMediaForFragmentList
operations) or write to it (using the PutMedia
operation).
The returned endpoint does not have the API name appended. The client needs to add the API name to the returned endpoint.
In the request, specify the stream either by StreamName
or StreamARN
.
",
"GetSignalingChannelEndpoint": "Provides an endpoint for the specified signaling channel to send and receive messages. This API uses the SingleMasterChannelEndpointConfiguration
input parameter, which consists of the Protocols
and Role
properties.
Protocols
is used to determine the communication mechanism. For example, if you specify WSS
as the protocol, this API produces a secure websocket endpoint. If you specify HTTPS
as the protocol, this API generates an HTTPS endpoint.
Role
determines the messaging permissions. A MASTER
role results in this API generating an endpoint that a client can use to communicate with any of the viewers on the channel. A VIEWER
role results in this API generating an endpoint that a client can use to communicate only with a MASTER
.
",
+ "ListEdgeAgentConfigurations": "Returns an array of edge configurations associated with the specified Edge Agent.
In the request, you must specify the Edge Agent HubDeviceArn
.
",
"ListSignalingChannels": "Returns an array of ChannelInfo
objects. Each object describes a signaling channel. To retrieve only those channels that satisfy a specific condition, you can specify a ChannelNameCondition
.
",
"ListStreams": "Returns an array of StreamInfo
objects. Each object describes a stream. To retrieve only streams that satisfy a specific condition, you can specify a StreamNameCondition
.
",
"ListTagsForResource": "Returns a list of tags associated with the specified signaling channel.
",
@@ -163,7 +165,17 @@
"DeleteAfterUpload": {
"base": null,
"refs": {
- "DeletionConfig$DeleteAfterUpload": "The boolean
value used to indicate whether or not you want to mark the media for deletion, once it has been uploaded to the Kinesis Video Stream cloud. The media files can be deleted if any of the deletion configuration values are set to true
, such as when the limit for the EdgeRetentionInHours
, or the MaxLocalMediaSizeInMB
, has been reached.
Since the default value is set to true
, configure the uploader schedule such that the media files are not being deleted before they are initially uploaded to AWS cloud.
"
+ "DeletionConfig$DeleteAfterUpload": "The boolean
value used to indicate whether or not you want to mark the media for deletion, once it has been uploaded to the Kinesis Video Stream cloud. The media files can be deleted if any of the deletion configuration values are set to true
, such as when the limit for the EdgeRetentionInHours
, or the MaxLocalMediaSizeInMB
, has been reached.
Since the default value is set to true
, configure the uploader schedule such that the media files are not being deleted before they are initially uploaded to the Amazon Web Services cloud.
"
+ }
+ },
+ "DeleteEdgeConfigurationInput": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "DeleteEdgeConfigurationOutput": {
+ "base": null,
+ "refs": {
}
},
"DeleteSignalingChannelInput": {
@@ -265,7 +277,7 @@
"DestinationRegion": {
"base": null,
"refs": {
- "ImageGenerationDestinationConfig$DestinationRegion": "The AWS Region of the S3 bucket where images will be delivered. This DestinationRegion
must match the Region where the stream is located.
"
+ "ImageGenerationDestinationConfig$DestinationRegion": "The Amazon Web Services Region of the S3 bucket where images will be delivered. This DestinationRegion
must match the Region where the stream is located.
"
}
},
"DestinationUri": {
@@ -294,10 +306,17 @@
"ScheduleConfig$DurationInSeconds": "The total duration to record the media. If the ScheduleExpression
attribute is provided, then the DurationInSeconds
attribute should also be specified.
"
}
},
+ "EdgeAgentStatus": {
+ "base": "An object that contains the latest status details for an edge agent's recorder and uploader jobs. Use this information to determine the current health of an edge agent.
",
+ "refs": {
+ "DescribeEdgeConfigurationOutput$EdgeAgentStatus": "An object that contains the latest status details for an edge agent's recorder and uploader jobs. Use this information to determine the current health of an edge agent.
"
+ }
+ },
"EdgeConfig": {
"base": "A description of the stream's edge configuration that will be used to sync with the Edge Agent IoT Greengrass component. The Edge Agent component will run on an IoT Hub Device setup at your premise.
",
"refs": {
"DescribeEdgeConfigurationOutput$EdgeConfig": "A description of the stream's edge configuration that will be used to sync with the Edge Agent IoT Greengrass component. The Edge Agent component will run on an IoT Hub Device setup at your premise.
",
+ "ListEdgeAgentConfigurationsEdgeConfig$EdgeConfig": null,
"StartEdgeConfigurationUpdateInput$EdgeConfig": "The edge configuration details required to invoke the update process.
",
"StartEdgeConfigurationUpdateOutput$EdgeConfig": "A description of the stream's edge configuration that will be used to sync with the Edge Agent IoT Greengrass component. The Edge Agent component will run on an IoT Hub Device setup at your premise.
"
}
@@ -332,6 +351,7 @@
"base": null,
"refs": {
"DescribeEdgeConfigurationOutput$FailedStatusDetails": "A description of the generated failure status.
",
+ "ListEdgeAgentConfigurationsEdgeConfig$FailedStatusDetails": "A description of the generated failure status.
",
"StartEdgeConfigurationUpdateOutput$FailedStatusDetails": "A description of the generated failure status.
"
}
},
@@ -388,7 +408,8 @@
"HubDeviceArn": {
"base": null,
"refs": {
- "EdgeConfig$HubDeviceArn": "The \"Internet of Things (IoT) Thing\" Arn of the stream.
"
+ "EdgeConfig$HubDeviceArn": "The \"Internet of Things (IoT) Thing\" Arn of the stream.
",
+ "ListEdgeAgentConfigurationsInput$HubDeviceArn": "The \"Internet of Things (IoT) Thing\" Arn of the edge agent.
"
}
},
"ImageGenerationConfiguration": {
@@ -425,13 +446,60 @@
"refs": {
}
},
+ "JobStatusDetails": {
+ "base": null,
+ "refs": {
+ "LastRecorderStatus$JobStatusDetails": "A description of a recorder job’s latest status.
",
+ "LastUploaderStatus$JobStatusDetails": "A description of an uploader job’s latest status.
"
+ }
+ },
"KmsKeyId": {
"base": null,
"refs": {
- "CreateStreamInput$KmsKeyId": "The ID of the Key Management Service (KMS) key that you want Kinesis Video Streams to use to encrypt stream data.
If no key ID is specified, the default, Kinesis Video-managed key (aws/kinesisvideo
) is used.
For more information, see DescribeKey.
",
+ "CreateStreamInput$KmsKeyId": "The ID of the Key Management Service (KMS) key that you want Kinesis Video Streams to use to encrypt stream data.
If no key ID is specified, the default, Kinesis Video-managed key (Amazon Web Services/kinesisvideo
) is used.
For more information, see DescribeKey.
",
"StreamInfo$KmsKeyId": "The ID of the Key Management Service (KMS) key that Kinesis Video Streams uses to encrypt data on the stream.
"
}
},
+ "LastRecorderStatus": {
+ "base": "The latest status of a stream's edge recording job.
",
+ "refs": {
+ "EdgeAgentStatus$LastRecorderStatus": "The latest status of a stream’s edge recording job.
"
+ }
+ },
+ "LastUploaderStatus": {
+ "base": "The latest status of a stream’s edge to cloud uploader job.
",
+ "refs": {
+ "EdgeAgentStatus$LastUploaderStatus": "The latest status of a stream’s edge to cloud uploader job.
"
+ }
+ },
+ "ListEdgeAgentConfigurationsEdgeConfig": {
+ "base": "A description of a single stream's edge configuration.
",
+ "refs": {
+ "ListEdgeAgentConfigurationsEdgeConfigList$member": null
+ }
+ },
+ "ListEdgeAgentConfigurationsEdgeConfigList": {
+ "base": null,
+ "refs": {
+ "ListEdgeAgentConfigurationsOutput$EdgeConfigs": "A description of a single stream's edge configuration.
"
+ }
+ },
+ "ListEdgeAgentConfigurationsInput": {
+ "base": null,
+ "refs": {
+ }
+ },
+ "ListEdgeAgentConfigurationsInputLimit": {
+ "base": null,
+ "refs": {
+ "ListEdgeAgentConfigurationsInput$MaxResults": "The maximum number of edge configurations to return in the response. The default is 5.
"
+ }
+ },
+ "ListEdgeAgentConfigurationsOutput": {
+ "base": null,
+ "refs": {
+ }
+ },
"ListOfProtocols": {
"base": null,
"refs": {
@@ -545,7 +613,7 @@
"MediaUriSecretArn": {
"base": null,
"refs": {
- "MediaSourceConfig$MediaUriSecretArn": "The AWS Secrets Manager ARN for the username and password of the camera, or a local media file location.
"
+ "MediaSourceConfig$MediaUriSecretArn": "The Amazon Web Services Secrets Manager ARN for the username and password of the camera, or a local media file location.
"
}
},
"MediaUriType": {
@@ -565,6 +633,8 @@
"refs": {
"DescribeMappedResourceConfigurationInput$NextToken": "The token to provide in your next request, to get another batch of results.
",
"DescribeMappedResourceConfigurationOutput$NextToken": "The token that was used in the NextToken
request to fetch the next set of results.
",
+ "ListEdgeAgentConfigurationsInput$NextToken": "If you specify this parameter, when the result of a ListEdgeAgentConfigurations
operation is truncated, the call returns the NextToken
in the response. To get another batch of edge configurations, provide this token in your next request.
",
+ "ListEdgeAgentConfigurationsOutput$NextToken": "If the response is truncated, the call returns this element with a given token. To get the next batch of edge configurations, use this token in your next request.
",
"ListSignalingChannelsInput$NextToken": "If you specify this parameter, when the result of a ListSignalingChannels
operation is truncated, the call returns the NextToken
in the response. To get another batch of channels, provide this token in your next request.
",
"ListSignalingChannelsOutput$NextToken": "If the response is truncated, the call returns this element with a token. To get the next batch of streams, use this token in your next request.
",
"ListStreamsInput$NextToken": "If you specify this parameter, when the result of a ListStreams
operation is truncated, the call returns the NextToken
in the response. To get another batch of streams, provide this token in your next request.
",
@@ -604,12 +674,19 @@
"EdgeConfig$RecorderConfig": "The recorder configuration consists of the local MediaSourceConfig
details, that are used as credentials to access the local media files streamed on the camera.
"
}
},
+ "RecorderStatus": {
+ "base": null,
+ "refs": {
+ "LastRecorderStatus$RecorderStatus": "The status of the latest recorder job.
"
+ }
+ },
"ResourceARN": {
"base": null,
"refs": {
"ChannelInfo$ChannelARN": "The Amazon Resource Name (ARN) of the signaling channel.
",
"CreateSignalingChannelOutput$ChannelARN": "The Amazon Resource Name (ARN) of the created channel.
",
"CreateStreamOutput$StreamARN": "The Amazon Resource Name (ARN) of the stream.
",
+ "DeleteEdgeConfigurationInput$StreamARN": "The Amazon Resource Name (ARN) of the stream. Specify either the StreamName
or the StreamARN
.
",
"DeleteSignalingChannelInput$ChannelARN": "The Amazon Resource Name (ARN) of the signaling channel that you want to delete.
",
"DeleteStreamInput$StreamARN": "The Amazon Resource Name (ARN) of the stream that you want to delete.
",
"DescribeEdgeConfigurationInput$StreamARN": "The Amazon Resource Name (ARN) of the stream. Specify either the StreamName
or the StreamARN
.
",
@@ -622,6 +699,7 @@
"DescribeStreamInput$StreamARN": "The Amazon Resource Name (ARN) of the stream.
",
"GetDataEndpointInput$StreamARN": "The Amazon Resource Name (ARN) of the stream that you want to get the endpoint for. You must specify either this parameter or a StreamName
in the request.
",
"GetSignalingChannelEndpointInput$ChannelARN": "The Amazon Resource Name (ARN) of the signalling channel for which you want to get an endpoint.
",
+ "ListEdgeAgentConfigurationsEdgeConfig$StreamARN": "The Amazon Resource Name (ARN) of the stream.
",
"ListTagsForResourceInput$ResourceARN": "The Amazon Resource Name (ARN) of the signaling channel for which you want to list tags.
",
"ListTagsForStreamInput$StreamARN": "The Amazon Resource Name (ARN) of the stream that you want to list tags for.
",
"MappedResourceConfigurationListItem$ARN": "The Amazon Resource Name (ARN) of the Kinesis Video Stream resource, associated with the stream.
",
@@ -654,7 +732,7 @@
}
},
"ResourceEndpointListItem": {
- "base": "An object that describes the endpoint of the signaling channel returned by the GetSignalingChannelEndpoint
API.
",
+ "base": "An object that describes the endpoint of the signaling channel returned by the GetSignalingChannelEndpoint
API.
The media server endpoint will correspond to the WEBRTC
Protocol.
",
"refs": {
"ResourceEndpointList$member": null
}
@@ -685,10 +763,10 @@
}
},
"ScheduleConfig": {
- "base": "This API enables you to specify the duration that the camera, or local media file, should record onto the Edge Agent. The ScheduleConfig
consists of the ScheduleExpression
and the DurationInMinutes
attributes.
If the ScheduleExpression
is not provided, then the Edge Agent will always be set to recording mode.
",
+ "base": "This API enables you to specify the duration that the camera, or local media file, should record onto the Edge Agent. The ScheduleConfig
consists of the ScheduleExpression
and the DurationInMinutes
attributes.
If the ScheduleConfig
is not provided in the RecorderConfig
, then the Edge Agent will always be set to recording mode.
If the ScheduleConfig
is not provided in the UploaderConfig
, then the Edge Agent will upload at regular intervals (every 1 hour).
",
"refs": {
"RecorderConfig$ScheduleConfig": "The configuration that consists of the ScheduleExpression
and the DurationInMinutes
details that specify the scheduling to record from a camera, or local media file, onto the Edge Agent. If the ScheduleExpression
attribute is not provided, then the Edge Agent will always be set to recording mode.
",
- "UploaderConfig$ScheduleConfig": "The configuration that consists of the ScheduleExpression
and the DurationInMinutes
details that specify the scheduling to record from a camera, or local media file, onto the Edge Agent. If the ScheduleExpression
is not provided, then the Edge Agent will always be in recording mode.
"
+ "UploaderConfig$ScheduleConfig": "The configuration that consists of the ScheduleExpression
and the DurationInMinutes
details that specify the scheduling to record from a camera, or local media file, onto the Edge Agent. If the ScheduleConfig
is not provided in this UploaderConfig
, then the Edge Agent will upload at regular intervals (every 1 hour).
"
}
},
"ScheduleExpression": {
@@ -756,6 +834,7 @@
"base": null,
"refs": {
"CreateStreamInput$StreamName": "A name for the stream that you are creating.
The stream name is an identifier for the stream, and must be unique for each account and region.
",
+ "DeleteEdgeConfigurationInput$StreamName": "The name of the stream from which to delete the edge configuration. Specify either the StreamName
or the StreamARN
.
",
"DescribeEdgeConfigurationInput$StreamName": "The name of the stream whose edge configuration you want to update. Specify either the StreamName
or the StreamARN
.
",
"DescribeEdgeConfigurationOutput$StreamName": "The name of the stream from which the edge configuration was updated.
",
"DescribeImageGenerationConfigurationInput$StreamName": "The name of the stream from which to retrieve the image generation configuration. You must specify either the StreamName
or the StreamARN
.
",
@@ -763,6 +842,7 @@
"DescribeNotificationConfigurationInput$StreamName": "The name of the stream from which to retrieve the notification configuration. You must specify either the StreamName
or the StreamARN
.
",
"DescribeStreamInput$StreamName": "The name of the stream.
",
"GetDataEndpointInput$StreamName": "The name of the stream that you want to get the endpoint for. You must specify either this parameter or a StreamARN
in the request.
",
+ "ListEdgeAgentConfigurationsEdgeConfig$StreamName": "The name of the stream.
",
"ListTagsForStreamInput$StreamName": "The name of the stream that you want to list tags for.
",
"StartEdgeConfigurationUpdateInput$StreamName": "The name of the stream whose edge configuration you want to update. Specify either the StreamName
or the StreamARN
.
",
"StartEdgeConfigurationUpdateOutput$StreamName": "The name of the stream from which the edge configuration was updated.
",
@@ -786,6 +866,7 @@
"base": null,
"refs": {
"DescribeEdgeConfigurationOutput$SyncStatus": "The latest status of the edge configuration update.
",
+ "ListEdgeAgentConfigurationsEdgeConfig$SyncStatus": "The current sync status of the stream's edge configuration.
",
"StartEdgeConfigurationUpdateOutput$SyncStatus": " The current sync status of the stream's edge configuration. When you invoke this API, the sync status will be set to the SYNCING
state. Use the DescribeEdgeConfiguration
API to get the latest status of the edge configuration.
"
}
},
@@ -861,6 +942,12 @@
"ChannelInfo$CreationTime": "The time at which the signaling channel was created.
",
"DescribeEdgeConfigurationOutput$CreationTime": "The timestamp at which a stream’s edge configuration was first created.
",
"DescribeEdgeConfigurationOutput$LastUpdatedTime": "The timestamp at which a stream’s edge configuration was last updated.
",
+ "LastRecorderStatus$LastCollectedTime": "The timestamp at which the recorder job was last executed and media stored to local disk.
",
+ "LastRecorderStatus$LastUpdatedTime": "The timestamp at which the recorder status was last updated.
",
+ "LastUploaderStatus$LastCollectedTime": "The timestamp at which the uploader job was last executed and media collected to the cloud.
",
+ "LastUploaderStatus$LastUpdatedTime": "The timestamp at which the uploader status was last updated.
",
+ "ListEdgeAgentConfigurationsEdgeConfig$CreationTime": "The timestamp when the stream first created the edge config.
",
+ "ListEdgeAgentConfigurationsEdgeConfig$LastUpdatedTime": "The timestamp when the stream last updated the edge config.
",
"StartEdgeConfigurationUpdateOutput$CreationTime": "The timestamp at which a stream’s edge configuration was first created.
",
"StartEdgeConfigurationUpdateOutput$LastUpdatedTime": "The timestamp at which a stream’s edge configuration was last updated.
",
"StreamInfo$CreationTime": "A time stamp that indicates when the stream was created.
"
@@ -959,11 +1046,17 @@
}
},
"UploaderConfig": {
- "base": "The configuration that consists of the ScheduleExpression
and the DurationInMinutesdetails
, that specify the scheduling to record from a camera, or local media file, onto the Edge Agent. If the ScheduleExpression
is not provided, then the Edge Agent will always be in upload mode.
",
+ "base": "The configuration that consists of the ScheduleExpression
and the DurationInMinutes
details that specify the scheduling to record from a camera, or local media file, onto the Edge Agent. If the ScheduleConfig
is not provided in the UploaderConfig
, then the Edge Agent will upload at regular intervals (every 1 hour).
",
"refs": {
"EdgeConfig$UploaderConfig": "The uploader configuration contains the ScheduleExpression
details that are used to schedule upload jobs for the recorded media files from the Edge Agent to a Kinesis Video Stream.
"
}
},
+ "UploaderStatus": {
+ "base": null,
+ "refs": {
+ "LastUploaderStatus$UploaderStatus": "The status of the latest uploader job.
"
+ }
+ },
"Version": {
"base": null,
"refs": {
diff --git a/apis/kinesisvideo/2017-09-30/endpoint-rule-set-1.json b/apis/kinesisvideo/2017-09-30/endpoint-rule-set-1.json
index 88b2afecfa3..f61682a8f1f 100644
--- a/apis/kinesisvideo/2017-09-30/endpoint-rule-set-1.json
+++ b/apis/kinesisvideo/2017-09-30/endpoint-rule-set-1.json
@@ -3,7 +3,7 @@
"parameters": {
"Region": {
"builtIn": "AWS::Region",
- "required": true,
+ "required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
@@ -32,13 +32,12 @@
{
"conditions": [
{
- "fn": "aws.partition",
+ "fn": "isSet",
"argv": [
{
- "ref": "Region"
+ "ref": "Endpoint"
}
- ],
- "assign": "PartitionResult"
+ ]
}
],
"type": "tree",
@@ -46,14 +45,20 @@
{
"conditions": [
{
- "fn": "isSet",
+ "fn": "booleanEquals",
"argv": [
{
- "ref": "Endpoint"
- }
+ "ref": "UseFIPS"
+ },
+ true
]
}
],
+ "error": "Invalid Configuration: FIPS and custom endpoint are not supported",
+ "type": "error"
+ },
+ {
+ "conditions": [],
"type": "tree",
"rules": [
{
@@ -62,67 +67,42 @@
"fn": "booleanEquals",
"argv": [
{
- "ref": "UseFIPS"
+ "ref": "UseDualStack"
},
true
]
}
],
- "error": "Invalid Configuration: FIPS and custom endpoint are not supported",
+ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
- "type": "tree",
- "rules": [
- {
- "conditions": [
- {
- "fn": "booleanEquals",
- "argv": [
- {
- "ref": "UseDualStack"
- },
- true
- ]
- }
- ],
- "error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
- "type": "error"
+ "endpoint": {
+ "url": {
+ "ref": "Endpoint"
},
- {
- "conditions": [],
- "endpoint": {
- "url": {
- "ref": "Endpoint"
- },
- "properties": {},
- "headers": {}
- },
- "type": "endpoint"
- }
- ]
+ "properties": {},
+ "headers": {}
+ },
+ "type": "endpoint"
}
]
- },
+ }
+ ]
+ },
+ {
+ "conditions": [],
+ "type": "tree",
+ "rules": [
{
"conditions": [
{
- "fn": "booleanEquals",
- "argv": [
- {
- "ref": "UseFIPS"
- },
- true
- ]
- },
- {
- "fn": "booleanEquals",
+ "fn": "isSet",
"argv": [
{
- "ref": "UseDualStack"
- },
- true
+ "ref": "Region"
+ }
]
}
],
@@ -131,90 +111,215 @@
{
"conditions": [
{
- "fn": "booleanEquals",
+ "fn": "aws.partition",
"argv": [
- true,
{
- "fn": "getAttr",
+ "ref": "Region"
+ }
+ ],
+ "assign": "PartitionResult"
+ }
+ ],
+ "type": "tree",
+ "rules": [
+ {
+ "conditions": [
+ {
+ "fn": "booleanEquals",
+ "argv": [
+ {
+ "ref": "UseFIPS"
+ },
+ true
+ ]
+ },
+ {
+ "fn": "booleanEquals",
"argv": [
{
- "ref": "PartitionResult"
+ "ref": "UseDualStack"
+ },
+ true
+ ]
+ }
+ ],
+ "type": "tree",
+ "rules": [
+ {
+ "conditions": [
+ {
+ "fn": "booleanEquals",
+ "argv": [
+ true,
+ {
+ "fn": "getAttr",
+ "argv": [
+ {
+ "ref": "PartitionResult"
+ },
+ "supportsFIPS"
+ ]
+ }
+ ]
},
- "supportsFIPS"
+ {
+ "fn": "booleanEquals",
+ "argv": [
+ true,
+ {
+ "fn": "getAttr",
+ "argv": [
+ {
+ "ref": "PartitionResult"
+ },
+ "supportsDualStack"
+ ]
+ }
+ ]
+ }
+ ],
+ "type": "tree",
+ "rules": [
+ {
+ "conditions": [],
+ "type": "tree",
+ "rules": [
+ {
+ "conditions": [],
+ "endpoint": {
+ "url": "https://kinesisvideo-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"
}
]
},
{
- "fn": "booleanEquals",
- "argv": [
- true,
+ "conditions": [
{
- "fn": "getAttr",
+ "fn": "booleanEquals",
"argv": [
{
- "ref": "PartitionResult"
+ "ref": "UseFIPS"
},
- "supportsDualStack"
+ true
]
}
+ ],
+ "type": "tree",
+ "rules": [
+ {
+ "conditions": [
+ {
+ "fn": "booleanEquals",
+ "argv": [
+ true,
+ {
+ "fn": "getAttr",
+ "argv": [
+ {
+ "ref": "PartitionResult"
+ },
+ "supportsFIPS"
+ ]
+ }
+ ]
+ }
+ ],
+ "type": "tree",
+ "rules": [
+ {
+ "conditions": [],
+ "type": "tree",
+ "rules": [
+ {
+ "conditions": [],
+ "endpoint": {
+ "url": "https://kinesisvideo-fips.{Region}.{PartitionResult#dnsSuffix}",
+ "properties": {},
+ "headers": {}
+ },
+ "type": "endpoint"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "conditions": [],
+ "error": "FIPS is enabled but this partition does not support FIPS",
+ "type": "error"
+ }
]
- }
- ],
- "type": "tree",
- "rules": [
- {
- "conditions": [],
- "endpoint": {
- "url": "https://kinesisvideo-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,
+ "conditions": [
{
- "fn": "getAttr",
+ "fn": "booleanEquals",
"argv": [
{
- "ref": "PartitionResult"
+ "ref": "UseDualStack"
},
- "supportsFIPS"
+ true
+ ]
+ }
+ ],
+ "type": "tree",
+ "rules": [
+ {
+ "conditions": [
+ {
+ "fn": "booleanEquals",
+ "argv": [
+ true,
+ {
+ "fn": "getAttr",
+ "argv": [
+ {
+ "ref": "PartitionResult"
+ },
+ "supportsDualStack"
+ ]
+ }
+ ]
+ }
+ ],
+ "type": "tree",
+ "rules": [
+ {
+ "conditions": [],
+ "type": "tree",
+ "rules": [
+ {
+ "conditions": [],
+ "endpoint": {
+ "url": "https://kinesisvideo.{Region}.{PartitionResult#dualStackDnsSuffix}",
+ "properties": {},
+ "headers": {}
+ },
+ "type": "endpoint"
+ }
+ ]
+ }
]
+ },
+ {
+ "conditions": [],
+ "error": "DualStack is enabled but this partition does not support DualStack",
+ "type": "error"
}
]
- }
- ],
- "type": "tree",
- "rules": [
+ },
{
"conditions": [],
"type": "tree",
@@ -222,7 +327,7 @@
{
"conditions": [],
"endpoint": {
- "url": "https://kinesisvideo-fips.{Region}.{PartitionResult#dnsSuffix}",
+ "url": "https://kinesisvideo.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
@@ -231,74 +336,13 @@
]
}
]
- },
- {
- "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://kinesisvideo.{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://kinesisvideo.{Region}.{PartitionResult#dnsSuffix}",
- "properties": {},
- "headers": {}
- },
- "type": "endpoint"
+ "error": "Invalid Configuration: Missing Region",
+ "type": "error"
}
]
}
diff --git a/apis/kinesisvideo/2017-09-30/endpoint-tests-1.json b/apis/kinesisvideo/2017-09-30/endpoint-tests-1.json
index 0dbba04cff0..3e71d1d389b 100644
--- a/apis/kinesisvideo/2017-09-30/endpoint-tests-1.json
+++ b/apis/kinesisvideo/2017-09-30/endpoint-tests-1.json
@@ -1,1086 +1,401 @@
{
"testCases": [
{
- "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.ap-south-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "ap-south-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.ap-south-1.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "ap-south-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.ap-south-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "ap-south-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.ap-south-1.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "ap-south-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.us-gov-east-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "us-gov-east-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.us-gov-east-1.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "us-gov-east-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.us-gov-east-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "us-gov-east-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.us-gov-east-1.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "us-gov-east-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.ca-central-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "ca-central-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.ca-central-1.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "ca-central-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.ca-central-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "ca-central-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.ca-central-1.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "ca-central-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.eu-central-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "eu-central-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.eu-central-1.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "eu-central-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.eu-central-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "eu-central-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.eu-central-1.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "eu-central-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled",
- "expect": {
- "error": "FIPS and DualStack are enabled, but this partition does not support one or both"
- },
- "params": {
- "UseFIPS": true,
- "Region": "us-iso-west-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.us-iso-west-1.c2s.ic.gov"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "us-iso-west-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled",
- "expect": {
- "error": "DualStack is enabled but this partition does not support DualStack"
- },
- "params": {
- "UseFIPS": false,
- "Region": "us-iso-west-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.us-iso-west-1.c2s.ic.gov"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "us-iso-west-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.us-west-2.api.aws"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "us-west-2",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.us-west-2.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "us-west-2",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.us-west-2.api.aws"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "us-west-2",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.us-west-2.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "us-west-2",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.af-south-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "af-south-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.af-south-1.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "af-south-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.af-south-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "af-south-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.af-south-1.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "af-south-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.eu-west-3.api.aws"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "eu-west-3",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.eu-west-3.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "eu-west-3",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.eu-west-3.api.aws"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "eu-west-3",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.eu-west-3.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "eu-west-3",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.eu-west-2.api.aws"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "eu-west-2",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.eu-west-2.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "eu-west-2",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.eu-west-2.api.aws"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "eu-west-2",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.eu-west-2.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "eu-west-2",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.eu-west-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "eu-west-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.eu-west-1.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "eu-west-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.eu-west-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "eu-west-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.eu-west-1.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "eu-west-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.ap-northeast-2.api.aws"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "ap-northeast-2",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.ap-northeast-2.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "ap-northeast-2",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.ap-northeast-2.api.aws"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "ap-northeast-2",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.ap-northeast-2.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "ap-northeast-2",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.ap-northeast-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "ap-northeast-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.ap-northeast-1.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "ap-northeast-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.ap-northeast-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "ap-northeast-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo.ap-northeast-1.amazonaws.com"
- }
- },
- "params": {
- "UseFIPS": false,
- "Region": "ap-northeast-1",
- "UseDualStack": false
- }
- },
- {
- "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.sa-east-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "sa-east-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled",
+ "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo-fips.sa-east-1.amazonaws.com"
+ "url": "https://kinesisvideo.af-south-1.amazonaws.com"
}
},
"params": {
- "UseFIPS": true,
- "Region": "sa-east-1",
+ "Region": "af-south-1",
+ "UseFIPS": false,
"UseDualStack": false
}
},
{
- "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled",
+ "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.sa-east-1.api.aws"
+ "url": "https://kinesisvideo.ap-east-1.amazonaws.com"
}
},
"params": {
+ "Region": "ap-east-1",
"UseFIPS": false,
- "Region": "sa-east-1",
- "UseDualStack": true
+ "UseDualStack": false
}
},
{
- "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled",
+ "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.sa-east-1.amazonaws.com"
+ "url": "https://kinesisvideo.ap-northeast-1.amazonaws.com"
}
},
"params": {
+ "Region": "ap-northeast-1",
"UseFIPS": false,
- "Region": "sa-east-1",
"UseDualStack": false
}
},
{
- "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.ap-east-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "ap-east-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled",
+ "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo-fips.ap-east-1.amazonaws.com"
+ "url": "https://kinesisvideo.ap-northeast-2.amazonaws.com"
}
},
"params": {
- "UseFIPS": true,
- "Region": "ap-east-1",
+ "Region": "ap-northeast-2",
+ "UseFIPS": false,
"UseDualStack": false
}
},
{
- "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled",
+ "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.ap-east-1.api.aws"
+ "url": "https://kinesisvideo.ap-south-1.amazonaws.com"
}
},
"params": {
+ "Region": "ap-south-1",
"UseFIPS": false,
- "Region": "ap-east-1",
- "UseDualStack": true
+ "UseDualStack": false
}
},
{
- "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled",
+ "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.ap-east-1.amazonaws.com"
+ "url": "https://kinesisvideo.ap-southeast-1.amazonaws.com"
}
},
"params": {
+ "Region": "ap-southeast-1",
"UseFIPS": false,
- "Region": "ap-east-1",
"UseDualStack": false
}
},
{
- "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.cn-north-1.api.amazonwebservices.com.cn"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "cn-north-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled",
+ "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo-fips.cn-north-1.amazonaws.com.cn"
+ "url": "https://kinesisvideo.ap-southeast-2.amazonaws.com"
}
},
"params": {
- "UseFIPS": true,
- "Region": "cn-north-1",
+ "Region": "ap-southeast-2",
+ "UseFIPS": false,
"UseDualStack": false
}
},
{
- "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled",
+ "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.cn-north-1.api.amazonwebservices.com.cn"
+ "url": "https://kinesisvideo.ca-central-1.amazonaws.com"
}
},
"params": {
+ "Region": "ca-central-1",
"UseFIPS": false,
- "Region": "cn-north-1",
- "UseDualStack": true
+ "UseDualStack": false
}
},
{
- "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled",
+ "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.cn-north-1.amazonaws.com.cn"
+ "url": "https://kinesisvideo.eu-central-1.amazonaws.com"
}
},
"params": {
+ "Region": "eu-central-1",
"UseFIPS": false,
- "Region": "cn-north-1",
"UseDualStack": false
}
},
{
- "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled",
- "expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.us-gov-west-1.api.aws"
- }
- },
- "params": {
- "UseFIPS": true,
- "Region": "us-gov-west-1",
- "UseDualStack": true
- }
- },
- {
- "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled",
+ "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo-fips.us-gov-west-1.amazonaws.com"
+ "url": "https://kinesisvideo.eu-west-1.amazonaws.com"
}
},
"params": {
- "UseFIPS": true,
- "Region": "us-gov-west-1",
+ "Region": "eu-west-1",
+ "UseFIPS": false,
"UseDualStack": false
}
},
{
- "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled",
+ "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.us-gov-west-1.api.aws"
+ "url": "https://kinesisvideo.eu-west-2.amazonaws.com"
}
},
"params": {
+ "Region": "eu-west-2",
"UseFIPS": false,
- "Region": "us-gov-west-1",
- "UseDualStack": true
+ "UseDualStack": false
}
},
{
- "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled",
+ "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.us-gov-west-1.amazonaws.com"
+ "url": "https://kinesisvideo.eu-west-3.amazonaws.com"
}
},
"params": {
+ "Region": "eu-west-3",
"UseFIPS": false,
- "Region": "us-gov-west-1",
"UseDualStack": false
}
},
{
- "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled",
+ "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo-fips.ap-southeast-1.api.aws"
+ "url": "https://kinesisvideo.sa-east-1.amazonaws.com"
}
},
"params": {
- "UseFIPS": true,
- "Region": "ap-southeast-1",
- "UseDualStack": true
+ "Region": "sa-east-1",
+ "UseFIPS": false,
+ "UseDualStack": false
}
},
{
- "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled",
+ "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo-fips.ap-southeast-1.amazonaws.com"
+ "url": "https://kinesisvideo.us-east-1.amazonaws.com"
}
},
"params": {
- "UseFIPS": true,
- "Region": "ap-southeast-1",
+ "Region": "us-east-1",
+ "UseFIPS": false,
"UseDualStack": false
}
},
{
- "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled",
+ "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.ap-southeast-1.api.aws"
+ "url": "https://kinesisvideo.us-east-2.amazonaws.com"
}
},
"params": {
+ "Region": "us-east-2",
"UseFIPS": false,
- "Region": "ap-southeast-1",
- "UseDualStack": true
+ "UseDualStack": false
}
},
{
- "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled",
+ "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.ap-southeast-1.amazonaws.com"
+ "url": "https://kinesisvideo.us-west-2.amazonaws.com"
}
},
"params": {
+ "Region": "us-west-2",
"UseFIPS": false,
- "Region": "ap-southeast-1",
"UseDualStack": false
}
},
{
- "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled",
+ "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo-fips.ap-southeast-2.api.aws"
+ "url": "https://kinesisvideo-fips.us-east-1.api.aws"
}
},
"params": {
+ "Region": "us-east-1",
"UseFIPS": true,
- "Region": "ap-southeast-2",
"UseDualStack": true
}
},
{
- "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled",
+ "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo-fips.ap-southeast-2.amazonaws.com"
+ "url": "https://kinesisvideo-fips.us-east-1.amazonaws.com"
}
},
"params": {
+ "Region": "us-east-1",
"UseFIPS": true,
- "Region": "ap-southeast-2",
"UseDualStack": false
}
},
{
- "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled",
+ "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.ap-southeast-2.api.aws"
+ "url": "https://kinesisvideo.us-east-1.api.aws"
}
},
"params": {
+ "Region": "us-east-1",
"UseFIPS": false,
- "Region": "ap-southeast-2",
"UseDualStack": true
}
},
{
- "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled",
+ "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.ap-southeast-2.amazonaws.com"
+ "url": "https://kinesisvideo-fips.cn-north-1.api.amazonwebservices.com.cn"
}
},
"params": {
- "UseFIPS": false,
- "Region": "ap-southeast-2",
- "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": "cn-north-1",
"UseFIPS": true,
- "Region": "us-iso-east-1",
"UseDualStack": true
}
},
{
- "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled",
+ "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo-fips.us-iso-east-1.c2s.ic.gov"
+ "url": "https://kinesisvideo-fips.cn-north-1.amazonaws.com.cn"
}
},
"params": {
+ "Region": "cn-north-1",
"UseFIPS": true,
- "Region": "us-iso-east-1",
"UseDualStack": false
}
},
{
- "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled",
+ "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled",
"expect": {
- "error": "DualStack is enabled but this partition does not support DualStack"
+ "endpoint": {
+ "url": "https://kinesisvideo.cn-north-1.api.amazonwebservices.com.cn"
+ }
},
"params": {
+ "Region": "cn-north-1",
"UseFIPS": false,
- "Region": "us-iso-east-1",
"UseDualStack": true
}
},
{
- "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled",
+ "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.us-iso-east-1.c2s.ic.gov"
+ "url": "https://kinesisvideo.cn-north-1.amazonaws.com.cn"
}
},
"params": {
+ "Region": "cn-north-1",
"UseFIPS": false,
- "Region": "us-iso-east-1",
"UseDualStack": false
}
},
{
- "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled",
+ "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo-fips.us-east-1.api.aws"
+ "url": "https://kinesisvideo-fips.us-gov-east-1.api.aws"
}
},
"params": {
+ "Region": "us-gov-east-1",
"UseFIPS": true,
- "Region": "us-east-1",
"UseDualStack": true
}
},
{
- "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled",
+ "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo-fips.us-east-1.amazonaws.com"
+ "url": "https://kinesisvideo-fips.us-gov-east-1.amazonaws.com"
}
},
"params": {
+ "Region": "us-gov-east-1",
"UseFIPS": true,
- "Region": "us-east-1",
"UseDualStack": false
}
},
{
- "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled",
+ "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.us-east-1.api.aws"
+ "url": "https://kinesisvideo.us-gov-east-1.api.aws"
}
},
"params": {
+ "Region": "us-gov-east-1",
"UseFIPS": false,
- "Region": "us-east-1",
"UseDualStack": true
}
},
{
- "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled",
+ "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.us-east-1.amazonaws.com"
+ "url": "https://kinesisvideo.us-gov-east-1.amazonaws.com"
}
},
"params": {
+ "Region": "us-gov-east-1",
"UseFIPS": false,
- "Region": "us-east-1",
"UseDualStack": false
}
},
{
- "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled",
+ "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled",
"expect": {
- "endpoint": {
- "url": "https://kinesisvideo-fips.us-east-2.api.aws"
- }
+ "error": "FIPS and DualStack are enabled, but this partition does not support one or both"
},
"params": {
+ "Region": "us-iso-east-1",
"UseFIPS": true,
- "Region": "us-east-2",
"UseDualStack": true
}
},
{
- "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled",
+ "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo-fips.us-east-2.amazonaws.com"
+ "url": "https://kinesisvideo-fips.us-iso-east-1.c2s.ic.gov"
}
},
"params": {
+ "Region": "us-iso-east-1",
"UseFIPS": true,
- "Region": "us-east-2",
"UseDualStack": false
}
},
{
- "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled",
+ "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled",
"expect": {
- "endpoint": {
- "url": "https://kinesisvideo.us-east-2.api.aws"
- }
+ "error": "DualStack is enabled but this partition does not support DualStack"
},
"params": {
+ "Region": "us-iso-east-1",
"UseFIPS": false,
- "Region": "us-east-2",
"UseDualStack": true
}
},
{
- "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled",
+ "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled",
"expect": {
"endpoint": {
- "url": "https://kinesisvideo.us-east-2.amazonaws.com"
+ "url": "https://kinesisvideo.us-iso-east-1.c2s.ic.gov"
}
},
"params": {
+ "Region": "us-iso-east-1",
"UseFIPS": false,
- "Region": "us-east-2",
"UseDualStack": false
}
},
@@ -1090,8 +405,8 @@
"error": "FIPS and DualStack are enabled, but this partition does not support one or both"
},
"params": {
- "UseFIPS": true,
"Region": "us-isob-east-1",
+ "UseFIPS": true,
"UseDualStack": true
}
},
@@ -1103,8 +418,8 @@
}
},
"params": {
- "UseFIPS": true,
"Region": "us-isob-east-1",
+ "UseFIPS": true,
"UseDualStack": false
}
},
@@ -1114,8 +429,8 @@
"error": "DualStack is enabled but this partition does not support DualStack"
},
"params": {
- "UseFIPS": false,
"Region": "us-isob-east-1",
+ "UseFIPS": false,
"UseDualStack": true
}
},
@@ -1127,21 +442,34 @@
}
},
"params": {
- "UseFIPS": false,
"Region": "us-isob-east-1",
+ "UseFIPS": false,
"UseDualStack": false
}
},
{
- "documentation": "For custom endpoint with fips disabled and dualstack disabled",
+ "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled",
"expect": {
"endpoint": {
"url": "https://example.com"
}
},
"params": {
- "UseFIPS": false,
"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"
}
@@ -1152,8 +480,8 @@
"error": "Invalid Configuration: FIPS and custom endpoint are not supported"
},
"params": {
- "UseFIPS": true,
"Region": "us-east-1",
+ "UseFIPS": true,
"UseDualStack": false,
"Endpoint": "https://example.com"
}
@@ -1164,11 +492,17 @@
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported"
},
"params": {
- "UseFIPS": false,
"Region": "us-east-1",
+ "UseFIPS": false,
"UseDualStack": true,
"Endpoint": "https://example.com"
}
+ },
+ {
+ "documentation": "Missing region",
+ "expect": {
+ "error": "Invalid Configuration: Missing Region"
+ }
}
],
"version": "1.0"
diff --git a/apis/kinesisvideo/2017-09-30/paginators-1.json b/apis/kinesisvideo/2017-09-30/paginators-1.json
index cda37b8f836..4d01b072b11 100644
--- a/apis/kinesisvideo/2017-09-30/paginators-1.json
+++ b/apis/kinesisvideo/2017-09-30/paginators-1.json
@@ -6,6 +6,12 @@
"output_token": "NextToken",
"result_key": "MappedResourceConfigurationList"
},
+ "ListEdgeAgentConfigurations": {
+ "input_token": "NextToken",
+ "limit_key": "MaxResults",
+ "output_token": "NextToken",
+ "result_key": "EdgeConfigs"
+ },
"ListSignalingChannels": {
"input_token": "NextToken",
"limit_key": "MaxResults",
diff --git a/apis/macie2/2020-01-01/api-2.json b/apis/macie2/2020-01-01/api-2.json
index c51a7d99218..b166003c61e 100644
--- a/apis/macie2/2020-01-01/api-2.json
+++ b/apis/macie2/2020-01-01/api-2.json
@@ -6228,7 +6228,8 @@
"ALL",
"EXCLUDE",
"INCLUDE",
- "NONE"
+ "NONE",
+ "RECOMMENDED"
]
},
"ManagedDataIdentifierSummary": {
diff --git a/apis/macie2/2020-01-01/docs-2.json b/apis/macie2/2020-01-01/docs-2.json
index d5f34502bc2..de827384a90 100644
--- a/apis/macie2/2020-01-01/docs-2.json
+++ b/apis/macie2/2020-01-01/docs-2.json
@@ -34,7 +34,7 @@
"GetClassificationExportConfiguration" : "Retrieves the configuration settings for storing data classification results.
",
"GetClassificationScope" : "Retrieves the classification scope settings for an account.
",
"GetCustomDataIdentifier" : "Retrieves the criteria and other settings for a custom data identifier.
",
- "GetFindingStatistics" : " Retrieves (queries) aggregated statistical data about findings.
",
+ "GetFindingStatistics" : "Retrieves (queries) aggregated statistical data about findings.
",
"GetFindings" : "Retrieves the details of one or more findings.
",
"GetFindingsFilter" : "Retrieves the criteria and other settings for a findings filter.
",
"GetFindingsPublicationConfiguration" : "Retrieves the configuration settings for publishing findings to Security Hub.
",
@@ -382,7 +382,7 @@
"refs" : { }
},
"CreateClassificationJobRequest" : {
- "base" : "Specifies the scope, schedule, and other settings for a classification job. You can't change any settings for a classification job after you create it. This helps ensure that you have an immutable history of sensitive data findings and discovery results for data privacy and protection audits or investigations.
",
+ "base" : "Specifies the scope, schedule, and other settings for a classification job. You can't change any settings for a classification job after you create it. This helps to ensure that you have an immutable history of sensitive data findings and discovery results for data privacy and protection audits or investigations.
",
"refs" : { }
},
"CreateClassificationJobResponse" : {
@@ -390,7 +390,7 @@
"refs" : { }
},
"CreateCustomDataIdentifierRequest" : {
- "base" : "Specifies the detection criteria and other settings for a custom data identifier. You can't change a custom data identifier after you create it. This helps ensure that you have an immutable history of sensitive data findings and discovery results for data privacy and protection audits or investigations.
",
+ "base" : "Specifies the detection criteria and other settings for a custom data identifier. You can't change a custom data identifier after you create it. This helps to ensure that you have an immutable history of sensitive data findings and discovery results for data privacy and protection audits or investigations.
",
"refs" : { }
},
"CreateCustomDataIdentifierResponse" : {
@@ -1062,8 +1062,8 @@
"ManagedDataIdentifierSelector" : {
"base" : "The selection type that determines which managed data identifiers a classification job uses to analyze data. Valid values are:
",
"refs" : {
- "CreateClassificationJobRequest$ManagedDataIdentifierSelector" : "The selection type to apply when determining which managed data identifiers the job uses to analyze data. Valid values are:
ALL - Use all the managed data identifiers that Amazon Macie provides. If you specify this value, don't specify any values for the managedDataIdentifierIds property.
EXCLUDE - Use all the managed data identifiers that Macie provides except the managed data identifiers specified by the managedDataIdentifierIds property.
INCLUDE - Use only the managed data identifiers specified by the managedDataIdentifierIds property.
NONE - Don't use any managed data identifiers. If you specify this value, specify at least one custom data identifier for the job (customDataIdentifierIds) and don't specify any values for the managedDataIdentifierIds property.
If you don't specify a value for this property, the job uses all managed data identifiers. If you don't specify a value for this property or you specify ALL or EXCLUDE for a recurring job, the job also uses new managed data identifiers as they are released.
",
- "DescribeClassificationJobResponse$ManagedDataIdentifierSelector" : "The selection type that determines which managed data identifiers the job uses to analyze data. Possible values are:
ALL - Use all the managed data identifiers that Amazon Macie provides.
EXCLUDE - Use all the managed data identifiers that Macie provides except the managed data identifiers specified by the managedDataIdentifierIds property.
INCLUDE - Use only the managed data identifiers specified by the managedDataIdentifierIds property.
NONE - Don't use any managed data identifiers.
If this value is null, the job uses all managed data identifiers. If this value is null, ALL, or EXCLUDE for a recurring job, the job also uses new managed data identifiers as they are released.
"
+ "CreateClassificationJobRequest$ManagedDataIdentifierSelector" : "The selection type to apply when determining which managed data identifiers the job uses to analyze data. Valid values are:
ALL (default) - Use all managed data identifiers. If you specify this value, don't specify any values for the managedDataIdentifierIds property.
EXCLUDE - Use all managed data identifiers except the ones specified by the managedDataIdentifierIds property.
INCLUDE - Use only the managed data identifiers specified by the managedDataIdentifierIds property.
NONE - Don't use any managed data identifiers. If you specify this value, specify at least one custom data identifier for the job (customDataIdentifierIds) and don't specify any values for the managedDataIdentifierIds property.
RECOMMENDED - Use only the set of managed data identifiers that Amazon Web Services recommends for jobs. If you specify this value, don't specify any values for the managedDataIdentifierIds property.
If you don't specify a value for this property, the job uses all managed data identifiers.
If the job is a recurring job and you don't specify a value for this property or you specify ALL or EXCLUDE, each job run automatically uses new managed data identifiers that are released. If you specify RECOMMENDED for a recurring job, each job run automatically uses all the managed data identifiers that are in the recommended set when the job starts to run.
For information about individual managed data identifiers or to determine which ones are in the recommended set, see Using managed data identifiers and Recommended managed data identifiers in the Amazon Macie User Guide.
",
+ "DescribeClassificationJobResponse$ManagedDataIdentifierSelector" : "The selection type that determines which managed data identifiers the job uses when it analyzes data. Possible values are:
ALL (default) - Use all managed data identifiers.
EXCLUDE - Use all managed data identifiers except the ones specified by the managedDataIdentifierIds property.
INCLUDE - Use only the managed data identifiers specified by the managedDataIdentifierIds property.
NONE - Don't use any managed data identifiers. Use only custom data identifiers (customDataIdentifierIds).
RECOMMENDED - Use only the set of managed data identifiers that Amazon Web Services recommends for jobs.
If this value is null, the job uses all managed data identifiers.
If the job is a recurring job and this value is null, ALL, or EXCLUDE, each job run automatically uses new managed data identifiers that are released after the job was created or the preceding run ended. If this value is RECOMMENDED for a recurring job, each job run uses all the managed data identifiers that are in the recommended set when the run starts.
For information about individual managed data identifiers or to determine which ones are in the recommended set, see Using managed data identifiers and Recommended managed data identifiers in the Amazon Macie User Guide.
"
}
},
"ManagedDataIdentifierSummary" : {
@@ -1536,7 +1536,7 @@
}
},
"SeverityLevel" : {
- "base" : "Specifies a severity level for findings that a custom data identifier produces. A severity level determines which severity is assigned to the findings, based on the number of occurrences of text that matches the custom data identifier's detection criteria.
",
+ "base" : "Specifies a severity level for findings that a custom data identifier produces. A severity level determines which severity is assigned to the findings, based on the number of occurrences of text that match the custom data identifier's detection criteria.
",
"refs" : {
"SeverityLevelList$member" : null
}
@@ -1544,8 +1544,8 @@
"SeverityLevelList" : {
"base" : "The severity to assign to findings that the custom data identifier produces, based on the number of occurrences of text that matches the custom data identifier's detection criteria. You can specify as many as three SeverityLevel objects in this array, one for each severity: LOW, MEDIUM, or HIGH. If you specify more than one, the occurrences thresholds must be in ascending order by severity, moving from LOW to HIGH. For example, 1 for LOW, 50 for MEDIUM, and 100 for HIGH. If an S3 object contains fewer occurrences than the lowest specified threshold, Amazon Macie doesn't create a finding.
If you don't specify any values for this array, Macie creates findings for S3 objects that contain at least one occurrence of text that matches the detection criteria, and Macie automatically assigns the MEDIUM severity to those findings.
",
"refs" : {
- "CreateCustomDataIdentifierRequest$SeverityLevels" : "The severity to assign to findings that the custom data identifier produces, based on the number of occurrences of text that matches the custom data identifier's detection criteria. You can specify as many as three SeverityLevel objects in this array, one for each severity: LOW, MEDIUM, or HIGH. If you specify more than one, the occurrences thresholds must be in ascending order by severity, moving from LOW to HIGH. For example, 1 for LOW, 50 for MEDIUM, and 100 for HIGH. If an S3 object contains fewer occurrences than the lowest specified threshold, Amazon Macie doesn't create a finding.
If you don't specify any values for this array, Macie creates findings for S3 objects that contain at least one occurrence of text that matches the detection criteria, and Macie assigns the MEDIUM severity to those findings.
",
- "GetCustomDataIdentifierResponse$SeverityLevels" : "Specifies the severity that's assigned to findings that the custom data identifier produces, based on the number of occurrences of text that matches the custom data identifier's detection criteria. By default, Amazon Macie creates findings for S3 objects that contain at least one occurrence of text that matches the detection criteria, and Macie assigns the MEDIUM severity to those findings.
"
+ "CreateCustomDataIdentifierRequest$SeverityLevels" : "The severity to assign to findings that the custom data identifier produces, based on the number of occurrences of text that match the custom data identifier's detection criteria. You can specify as many as three SeverityLevel objects in this array, one for each severity: LOW, MEDIUM, or HIGH. If you specify more than one, the occurrences thresholds must be in ascending order by severity, moving from LOW to HIGH. For example, 1 for LOW, 50 for MEDIUM, and 100 for HIGH. If an S3 object contains fewer occurrences than the lowest specified threshold, Amazon Macie doesn't create a finding.
If you don't specify any values for this array, Macie creates findings for S3 objects that contain at least one occurrence of text that matches the detection criteria, and Macie assigns the MEDIUM severity to those findings.
",
+ "GetCustomDataIdentifierResponse$SeverityLevels" : "Specifies the severity that's assigned to findings that the custom data identifier produces, based on the number of occurrences of text that match the custom data identifier's detection criteria. By default, Amazon Macie creates findings for S3 objects that contain at least one occurrence of text that matches the detection criteria, and Macie assigns the MEDIUM severity to those findings.
"
}
},
"SharedAccess" : {
@@ -1877,7 +1877,7 @@
"BucketMetadata$Versioning" : "Specifies whether versioning is enabled for the bucket.
",
"BucketPolicy$AllowsPublicReadAccess" : "Specifies whether the bucket policy allows the general public to have read access to the bucket.
",
"BucketPolicy$AllowsPublicWriteAccess" : "Specifies whether the bucket policy allows the general public to have write access to the bucket.
",
- "ClassificationResult$AdditionalOccurrences" : "Specifies whether Amazon Macie detected additional occurrences of sensitive data in the S3 object. A finding includes location data for a maximum of 15 occurrences of sensitive data.
This value can help you determine whether to investigate additional occurrences of sensitive data in an object. You can do this by referring to the corresponding sensitive data discovery result for the finding (ClassificationDetails.detailedResultsLocation).
",
+ "ClassificationResult$AdditionalOccurrences" : "Specifies whether Amazon Macie detected additional occurrences of sensitive data in the S3 object. A finding includes location data for a maximum of 15 occurrences of sensitive data.
This value can help you determine whether to investigate additional occurrences of sensitive data in an object. You can do this by referring to the corresponding sensitive data discovery result for the finding (classificationDetails.detailedResultsLocation).
",
"CreateClassificationJobRequest$InitialRun" : "For a recurring job, specifies whether to analyze all existing, eligible objects immediately after the job is created (true). To analyze only those objects that are created or changed after you create the job and before the job's first scheduled run, set this value to false.
If you configure the job to run only once, don't specify a value for this property.
",
"CreateInvitationsRequest$DisableEmailNotification" : "Specifies whether to send the invitation as an email message. If this value is false, Amazon Macie sends the invitation (as an email message) to the email address that you specified for the recipient's account when you associated the account with your account. The default value is false.
",
"DescribeClassificationJobResponse$InitialRun" : "For a recurring job, specifies whether you configured the job to analyze all existing, eligible objects immediately after the job was created (true). If you configured the job to analyze only those objects that were created or changed after the job was created and before the job's first scheduled run, this value is false. This value is also false for a one-time job.
",
@@ -2120,7 +2120,7 @@
"__listOfUnavailabilityReasonCode" : {
"base" : null,
"refs" : {
- "GetSensitiveDataOccurrencesAvailabilityResponse$Reasons" : "Specifies why occurrences of sensitive data can't be retrieved for the finding. Possible values are:
INVALID_CLASSIFICATION_RESULT - Amazon Macie can't verify the location of the sensitive data to retrieve. There isn't a corresponding sensitive data discovery result for the finding. Or the sensitive data discovery result specified by the ClassificationDetails.detailedResultsLocation field of the finding isn't available, is malformed or corrupted, or uses an unsupported storage format.
OBJECT_EXCEEDS_SIZE_QUOTA - The storage size of the affected S3 object exceeds the size quota for retrieving occurrences of sensitive data.
OBJECT_UNAVAILABLE - The affected S3 object isn't available. The object might have been renamed, moved, or deleted. Or the object was changed after Macie created the finding.
UNSUPPORTED_FINDING_TYPE - The specified finding isn't a sensitive data finding.
UNSUPPORTED_OBJECT_TYPE - The affected S3 object uses a file or storage format that Macie doesn't support for retrieving occurrences of sensitive data.
This value is null if sensitive data can be retrieved for the finding.
"
+ "GetSensitiveDataOccurrencesAvailabilityResponse$Reasons" : "Specifies why occurrences of sensitive data can't be retrieved for the finding. Possible values are:
INVALID_CLASSIFICATION_RESULT - Amazon Macie can't verify the location of the sensitive data to retrieve. There isn't a corresponding sensitive data discovery result for the finding. Or the sensitive data discovery result specified by the classificationDetails.detailedResultsLocation field of the finding isn't available, is malformed or corrupted, or uses an unsupported storage format.
OBJECT_EXCEEDS_SIZE_QUOTA - The storage size of the affected S3 object exceeds the size quota for retrieving occurrences of sensitive data.
OBJECT_UNAVAILABLE - The affected S3 object isn't available. The object might have been renamed, moved, or deleted. Or the object was changed after Macie created the finding.
UNSUPPORTED_FINDING_TYPE - The specified finding isn't a sensitive data finding.
UNSUPPORTED_OBJECT_TYPE - The affected S3 object uses a file or storage format that Macie doesn't support for retrieving occurrences of sensitive data.
This value is null if sensitive data can be retrieved for the finding.
"
}
},
"__listOfUnprocessedAccount" : {
@@ -2175,7 +2175,7 @@
"DeleteInvitationsRequest$AccountIds" : "An array that lists Amazon Web Services account IDs, one for each account that sent an invitation to delete.
",
"DescribeClassificationJobResponse$AllowListIds" : "An array of unique identifiers, one for each allow list that the job uses when it analyzes data.
",
"DescribeClassificationJobResponse$CustomDataIdentifierIds" : "An array of unique identifiers, one for each custom data identifier that the job uses when it analyzes data. This value is null if the job uses only managed data identifiers to analyze data.
",
- "DescribeClassificationJobResponse$ManagedDataIdentifierIds" : "An array of unique identifiers, one for each managed data identifier that the job is explicitly configured to include (use) or exclude (not use) when it analyzes data. Inclusion or exclusion depends on the managed data identifier selection type specified for the job (managedDataIdentifierSelector). This value is null if the job's managed data identifier selection type is ALL or the job uses only custom data identifiers (customDataIdentifierIds) to analyze data.
",
+ "DescribeClassificationJobResponse$ManagedDataIdentifierIds" : "An array of unique identifiers, one for each managed data identifier that the job is explicitly configured to include (use) or exclude (not use) when it analyzes data. Inclusion or exclusion depends on the managed data identifier selection type specified for the job (managedDataIdentifierSelector).
This value is null if the job's managed data identifier selection type is ALL, NONE, or RECOMMENDED.
",
"GetCustomDataIdentifierResponse$IgnoreWords" : "An array that lists specific character sequences (ignore words) to exclude from the results. If the text matched by the regular expression contains any string in this array, Amazon Macie ignores it. Ignore words are case sensitive.
",
"GetCustomDataIdentifierResponse$Keywords" : "An array that lists specific character sequences (keywords), one of which must precede and be within proximity (maximumMatchDistance) of the regular expression to match. Keywords aren't case sensitive.
",
"GetFindingsRequest$FindingIds" : "An array of strings that lists the unique identifiers for the findings to retrieve. You can specify as many as 50 unique identifiers in this array.
",
@@ -2265,10 +2265,10 @@
"ResourceStatistics$TotalDetectionsSuppressed" : "The total number of occurrences of sensitive data that are currently suppressed by the sensitivity scoring settings for the bucket. These represent occurrences of sensitive data that Amazon Macie found in the bucket's objects, but the occurrences were manually suppressed. By default, suppressed occurrences are excluded from the bucket's sensitivity score.
",
"ResourceStatistics$TotalItemsClassified" : "The total number of objects that Amazon Macie has analyzed in the bucket.
",
"ResourceStatistics$TotalItemsSensitive" : "The total number of the bucket's objects that Amazon Macie has found sensitive data in.
",
- "ResourceStatistics$TotalItemsSkipped" : "The total number of objects that Amazon Macie hasn't analyzed in the bucket due to an error or issue. For example, the object is a malformed file. This value includes objects that Macie hasn't analyzed for reasons reported by other statistics in the ResourceStatistics object.
",
- "ResourceStatistics$TotalItemsSkippedInvalidEncryption" : "The total number of objects that Amazon Macie hasn't analyzed in the bucket because the objects are encrypted with a key that Macie isn't allowed to use.
",
- "ResourceStatistics$TotalItemsSkippedInvalidKms" : "The total number of objects that Amazon Macie hasn't analyzed in the bucket because the objects are encrypted with an KMS key that was disabled or deleted.
",
- "ResourceStatistics$TotalItemsSkippedPermissionDenied" : "The total number of objects that Amazon Macie hasn't analyzed in the bucket because Macie isn't allowed to access the objects.
",
+ "ResourceStatistics$TotalItemsSkipped" : "The total number of objects that Amazon Macie wasn't able to analyze in the bucket due to an object-level issue or error. For example, the object is a malformed file. This value includes objects that Macie wasn't able to analyze for reasons reported by other statistics in the ResourceStatistics object.
",
+ "ResourceStatistics$TotalItemsSkippedInvalidEncryption" : "The total number of objects that Amazon Macie wasn't able to analyze in the bucket because the objects are encrypted with a key that Macie can't access. The objects use server-side encryption with customer-provided keys (SSE-C).
",
+ "ResourceStatistics$TotalItemsSkippedInvalidKms" : "The total number of objects that Amazon Macie wasn't able to analyze in the bucket because the objects are encrypted with KMS keys that were disabled, are scheduled for deletion, or were deleted.
",
+ "ResourceStatistics$TotalItemsSkippedPermissionDenied" : "The total number of objects that Amazon Macie wasn't able to analyze in the bucket due to the permissions settings for the objects or the permissions settings for the keys that were used to encrypt the objects.
",
"S3Object$Size" : "The total storage size, in bytes, of the object.
",
"SensitiveDataItem$TotalCount" : "The total number of occurrences of the sensitive data that was detected.
",
"SensitivityAggregations$ClassifiableSizeInBytes" : "The total storage size, in bytes, of all the objects that Amazon Macie can analyze in the buckets. These objects use a supported storage class and have a file name extension for a supported file or storage format.
If versioning is enabled for any of the buckets, this value is based on the size of the latest version of each applicable object in the buckets. This value doesn't reflect the storage size of all versions of all applicable objects in the buckets.
",
@@ -2318,7 +2318,7 @@
"ClassificationDetails$JobId" : "The unique identifier for the classification job that produced the finding. This value is null if the origin of the finding (originType) is AUTOMATED_SENSITIVE_DATA_DISCOVERY.
",
"ClassificationResult$MimeType" : "The type of content, as a MIME type, that the finding applies to. For example, application/gzip, for a GNU Gzip compressed archive file, or application/pdf, for an Adobe Portable Document Format file.
",
"ClassificationResultStatus$Code" : " The status of the finding. Possible values are:
COMPLETE - Amazon Macie successfully completed its analysis of the S3 object that the finding applies to.
PARTIAL - Macie analyzed only a subset of the data in the S3 object that the finding applies to. For example, the object is an archive file that contains files in an unsupported format.
SKIPPED - Macie wasn't able to analyze the S3 object that the finding applies to. For example, the object is a file that uses an unsupported format.
",
- "ClassificationResultStatus$Reason" : "A brief description of the status of the finding. This value is null if the status (code) of the finding is COMPLETE.
Amazon Macie uses this value to notify you of any errors, warnings, or considerations that might impact your analysis of the finding and the affected S3 object. Possible values are:
ARCHIVE_CONTAINS_UNPROCESSED_FILES - The object is an archive file and Macie extracted and analyzed only some or none of the files in the archive. To determine which files Macie analyzed, if any, refer to the corresponding sensitive data discovery result for the finding (ClassificationDetails.detailedResultsLocation).
ARCHIVE_EXCEEDS_SIZE_LIMIT - The object is an archive file whose total storage size exceeds the size quota for this type of archive.
ARCHIVE_NESTING_LEVEL_OVER_LIMIT - The object is an archive file whose nested depth exceeds the quota for the maximum number of nested levels that Macie analyzes for this type of archive.
ARCHIVE_TOTAL_BYTES_EXTRACTED_OVER_LIMIT - The object is an archive file that exceeds the quota for the maximum amount of data that Macie extracts and analyzes for this type of archive.
ARCHIVE_TOTAL_DOCUMENTS_PROCESSED_OVER_LIMIT - The object is an archive file that contains more than the maximum number of files that Macie extracts and analyzes for this type of archive.
FILE_EXCEEDS_SIZE_LIMIT - The storage size of the object exceeds the size quota for this type of file.
INVALID_ENCRYPTION - The object is encrypted using server-side encryption but Macie isn't allowed to use the key. Macie can't decrypt and analyze the object.
INVALID_KMS_KEY - The object is encrypted with an KMS key that was disabled or is being deleted. Macie can't decrypt and analyze the object.
INVALID_OBJECT_STATE - The object doesn't use a supported Amazon S3 storage class.
JSON_NESTING_LEVEL_OVER_LIMIT - The object contains JSON data and the nested depth of the data exceeds the quota for the number of nested levels that Macie analyzes for this type of file.
MALFORMED_FILE - The object is a malformed or corrupted file. An error occurred when Macie attempted to detect the file's type or extract data from the file.
MALFORMED_OR_FILE_SIZE_EXCEEDS_LIMIT - The object is a Microsoft Office file that is malformed or exceeds the size quota for this type of file. If the file is malformed, an error occurred when Macie attempted to extract data from the file.
NO_SUCH_BUCKET_AVAILABLE - The object was in a bucket that was deleted shortly before or when Macie attempted to analyze the object.
OBJECT_VERSION_MISMATCH - The object was changed while Macie was analyzing it.
OOXML_UNCOMPRESSED_RATIO_EXCEEDS_LIMIT - The object is an Office Open XML file whose compression ratio exceeds the compression quota for this type of file.
OOXML_UNCOMPRESSED_SIZE_EXCEEDS_LIMIT - The object is an Office Open XML file that exceeds the size quota for this type of file.
PERMISSION_DENIED - Macie isn't allowed to access the object. The object's permissions settings prevent Macie from analyzing the object.
SOURCE_OBJECT_NO_LONGER_AVAILABLE - The object was deleted shortly before or when Macie attempted to analyze it.
TIME_CUT_OFF_REACHED - Macie started analyzing the object but additional analysis would exceed the time quota for analyzing an object.
UNABLE_TO_PARSE_FILE - The object is a file that contains structured data and an error occurred when Macie attempted to parse the data.
UNSUPPORTED_FILE_TYPE_EXCEPTION - The object is a file that uses an unsupported file or storage format.
For information about quotas, supported storage classes, and supported file and storage formats, see Quotas and Supported storage classes and formats in the Amazon Macie User Guide.
",
+ "ClassificationResultStatus$Reason" : "A brief description of the status of the finding. This value is null if the status (code) of the finding is COMPLETE.
Amazon Macie uses this value to notify you of any errors, warnings, or considerations that might impact your analysis of the finding and the affected S3 object. Possible values are:
ARCHIVE_CONTAINS_UNPROCESSED_FILES - The object is an archive file and Macie extracted and analyzed only some or none of the files in the archive. To determine which files Macie analyzed, if any, refer to the corresponding sensitive data discovery result for the finding (classificationDetails.detailedResultsLocation).
ARCHIVE_EXCEEDS_SIZE_LIMIT - The object is an archive file whose total storage size exceeds the size quota for this type of archive.
ARCHIVE_NESTING_LEVEL_OVER_LIMIT - The object is an archive file whose nested depth exceeds the quota for the maximum number of nested levels that Macie analyzes for this type of archive.
ARCHIVE_TOTAL_BYTES_EXTRACTED_OVER_LIMIT - The object is an archive file that exceeds the quota for the maximum amount of data that Macie extracts and analyzes for this type of archive.
ARCHIVE_TOTAL_DOCUMENTS_PROCESSED_OVER_LIMIT - The object is an archive file that contains more than the maximum number of files that Macie extracts and analyzes for this type of archive.
FILE_EXCEEDS_SIZE_LIMIT - The storage size of the object exceeds the size quota for this type of file.
INVALID_ENCRYPTION - The object is encrypted using server-side encryption but Macie isn't allowed to use the key. Macie can't decrypt and analyze the object.
INVALID_KMS_KEY - The object is encrypted with an KMS key that was disabled or is being deleted. Macie can't decrypt and analyze the object.
INVALID_OBJECT_STATE - The object doesn't use a supported Amazon S3 storage class.
JSON_NESTING_LEVEL_OVER_LIMIT - The object contains JSON data and the nested depth of the data exceeds the quota for the number of nested levels that Macie analyzes for this type of file.
MALFORMED_FILE - The object is a malformed or corrupted file. An error occurred when Macie attempted to detect the file's type or extract data from the file.
MALFORMED_OR_FILE_SIZE_EXCEEDS_LIMIT - The object is a Microsoft Office file that is malformed or exceeds the size quota for this type of file. If the file is malformed, an error occurred when Macie attempted to extract data from the file.
NO_SUCH_BUCKET_AVAILABLE - The object was in a bucket that was deleted shortly before or when Macie attempted to analyze the object.
OBJECT_VERSION_MISMATCH - The object was changed while Macie was analyzing it.
OOXML_UNCOMPRESSED_RATIO_EXCEEDS_LIMIT - The object is an Office Open XML file whose compression ratio exceeds the compression quota for this type of file.
OOXML_UNCOMPRESSED_SIZE_EXCEEDS_LIMIT - The object is an Office Open XML file that exceeds the size quota for this type of file.
PERMISSION_DENIED - Macie isn't allowed to access the object. The object's permissions settings prevent Macie from analyzing the object.
SOURCE_OBJECT_NO_LONGER_AVAILABLE - The object was deleted shortly before or when Macie attempted to analyze it.
TIME_CUT_OFF_REACHED - Macie started analyzing the object but additional analysis would exceed the time quota for analyzing an object.
UNABLE_TO_PARSE_FILE - The object is a file that contains structured data and an error occurred when Macie attempted to parse the data.
UNSUPPORTED_FILE_TYPE_EXCEPTION - The object is a file that uses an unsupported file or storage format.
For information about quotas, supported storage classes, and supported file and storage formats, see Quotas and Supported storage classes and formats in the Amazon Macie User Guide.
",
"ConflictException$Message" : "The explanation of the error that occurred.
",
"CreateAllowListRequest$ClientToken" : "A unique, case-sensitive token that you provide to ensure the idempotency of the request.
",
"CreateClassificationJobRequest$ClientToken" : "A unique, case-sensitive token that you provide to ensure the idempotency of the request.
",
@@ -2456,8 +2456,8 @@
"S3Object$BucketArn" : "The Amazon Resource Name (ARN) of the bucket that contains the object.
",
"S3Object$ETag" : "The entity tag (ETag) that identifies the affected version of the object. If the object was overwritten or changed after Amazon Macie produced the finding, this value might be different from the current ETag for the object.
",
"S3Object$Extension" : "The file name extension of the object. If the object doesn't have a file name extension, this value is \"\".
",
- "S3Object$Key" : "The full key (name) that's assigned to the object.
",
- "S3Object$Path" : "The path to the object, including the full key (name).
",
+ "S3Object$Key" : "The full name (key) of the object, including the object's prefix if applicable.
",
+ "S3Object$Path" : "The full path to the affected object, including the name of the affected bucket and the object's name (key).
",
"S3Object$VersionId" : "The identifier for the affected version of the object.
",
"SearchResourcesRequest$NextToken" : "The nextToken string that specifies which page of results to return in a paginated response.
",
"SearchResourcesResponse$NextToken" : "The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.
",
@@ -2472,7 +2472,7 @@
"SessionIssuer$PrincipalId" : "The unique identifier for the entity that was used to get the credentials.
",
"SessionIssuer$Type" : "The source of the temporary security credentials, such as Root, IAMUser, or Role.
",
"SessionIssuer$UserName" : "The name or alias of the user or role that issued the session. This value is null if the credentials were obtained from a root account that doesn't have an alias.
",
- "SortCriteria$AttributeName" : "The name of the property to sort the results by. This value can be the name of any property that Amazon Macie defines for a finding.
",
+ "SortCriteria$AttributeName" : "The name of the property to sort the results by. Valid values are: count, createdAt, policyDetails.action.apiCallDetails.firstSeen, policyDetails.action.apiCallDetails.lastSeen, resourcesAffected, severity.score, type, and updatedAt.
",
"SuppressDataIdentifier$Id" : "The unique identifier for the custom data identifier or managed data identifier that detected the type of sensitive data to exclude or include in the score.
",
"TagCriterionPairForJob$Key" : "The value for the tag key to use in the condition.
",
"TagCriterionPairForJob$Value" : "The tag value to use in the condition.
",
@@ -2483,7 +2483,7 @@
"TestCustomDataIdentifierRequest$Regex" : "The regular expression (regex) that defines the pattern to match. The expression can contain as many as 512 characters.
",
"TestCustomDataIdentifierRequest$SampleText" : "The sample text to inspect by using the custom data identifier. The text can contain as many as 1,000 characters.
",
"ThrottlingException$Message" : "The explanation of the error that occurred.
",
- "UnprocessableEntityException$Message" : "The type of error that occurred and prevented Amazon Macie from retrieving occurrences of sensitive data reported by the finding. Possible values are:
INVALID_CLASSIFICATION_RESULT - Amazon Macie can't verify the location of the sensitive data to retrieve. There isn't a corresponding sensitive data discovery result for the finding. Or the sensitive data discovery result specified by the ClassificationDetails.detailedResultsLocation field of the finding isn't available, is malformed or corrupted, or uses an unsupported storage format.
OBJECT_EXCEEDS_SIZE_QUOTA - The storage size of the affected S3 object exceeds the size quota for retrieving occurrences of sensitive data.
OBJECT_UNAVAILABLE - The affected S3 object isn't available. The object might have been renamed, moved, or deleted. Or the object was changed after Macie created the finding.
UNSUPPORTED_FINDING_TYPE - The specified finding isn't a sensitive data finding.
UNSUPPORTED_OBJECT_TYPE - The affected S3 object uses a file or storage format that Macie doesn't support for retrieving occurrences of sensitive data.
",
+ "UnprocessableEntityException$Message" : "The type of error that occurred and prevented Amazon Macie from retrieving occurrences of sensitive data reported by the finding. Possible values are:
INVALID_CLASSIFICATION_RESULT - Amazon Macie can't verify the location of the sensitive data to retrieve. There isn't a corresponding sensitive data discovery result for the finding. Or the sensitive data discovery result specified by the classificationDetails.detailedResultsLocation field of the finding isn't available, is malformed or corrupted, or uses an unsupported storage format.
OBJECT_EXCEEDS_SIZE_QUOTA - The storage size of the affected S3 object exceeds the size quota for retrieving occurrences of sensitive data.
OBJECT_UNAVAILABLE - The affected S3 object isn't available. The object might have been renamed, moved, or deleted. Or the object was changed after Macie created the finding.
UNSUPPORTED_FINDING_TYPE - The specified finding isn't a sensitive data finding.
UNSUPPORTED_OBJECT_TYPE - The affected S3 object uses a file or storage format that Macie doesn't support for retrieving occurrences of sensitive data.
",
"UnprocessedAccount$AccountId" : "The Amazon Web Services account ID for the account that the request applies to.
",
"UnprocessedAccount$ErrorMessage" : "The reason why the request hasn't been processed.
",
"UpdateFindingsFilterRequest$ClientToken" : "A unique, case-sensitive token that you provide to ensure the idempotency of the request.
",
diff --git a/apis/macie2/2020-01-01/endpoint-tests-1.json b/apis/macie2/2020-01-01/endpoint-tests-1.json
index 26119b4ea3c..5e98037ed60 100644
--- a/apis/macie2/2020-01-01/endpoint-tests-1.json
+++ b/apis/macie2/2020-01-01/endpoint-tests-1.json
@@ -8,9 +8,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "af-south-1",
"UseFIPS": false,
- "Region": "af-south-1"
+ "UseDualStack": false
}
},
{
@@ -21,9 +21,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "ap-east-1",
"UseFIPS": false,
- "Region": "ap-east-1"
+ "UseDualStack": false
}
},
{
@@ -34,9 +34,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "ap-northeast-1",
"UseFIPS": false,
- "Region": "ap-northeast-1"
+ "UseDualStack": false
}
},
{
@@ -47,9 +47,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "ap-northeast-2",
"UseFIPS": false,
- "Region": "ap-northeast-2"
+ "UseDualStack": false
}
},
{
@@ -60,9 +60,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "ap-northeast-3",
"UseFIPS": false,
- "Region": "ap-northeast-3"
+ "UseDualStack": false
}
},
{
@@ -73,9 +73,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "ap-south-1",
"UseFIPS": false,
- "Region": "ap-south-1"
+ "UseDualStack": false
}
},
{
@@ -86,9 +86,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "ap-southeast-1",
"UseFIPS": false,
- "Region": "ap-southeast-1"
+ "UseDualStack": false
}
},
{
@@ -99,9 +99,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "ap-southeast-2",
"UseFIPS": false,
- "Region": "ap-southeast-2"
+ "UseDualStack": false
}
},
{
@@ -112,9 +112,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "ca-central-1",
"UseFIPS": false,
- "Region": "ca-central-1"
+ "UseDualStack": false
}
},
{
@@ -125,9 +125,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "eu-central-1",
"UseFIPS": false,
- "Region": "eu-central-1"
+ "UseDualStack": false
}
},
{
@@ -138,9 +138,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "eu-north-1",
"UseFIPS": false,
- "Region": "eu-north-1"
+ "UseDualStack": false
}
},
{
@@ -151,9 +151,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "eu-south-1",
"UseFIPS": false,
- "Region": "eu-south-1"
+ "UseDualStack": false
}
},
{
@@ -164,9 +164,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "eu-west-1",
"UseFIPS": false,
- "Region": "eu-west-1"
+ "UseDualStack": false
}
},
{
@@ -177,9 +177,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "eu-west-2",
"UseFIPS": false,
- "Region": "eu-west-2"
+ "UseDualStack": false
}
},
{
@@ -190,9 +190,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "eu-west-3",
"UseFIPS": false,
- "Region": "eu-west-3"
+ "UseDualStack": false
}
},
{
@@ -203,9 +203,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "me-south-1",
"UseFIPS": false,
- "Region": "me-south-1"
+ "UseDualStack": false
}
},
{
@@ -216,9 +216,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "sa-east-1",
"UseFIPS": false,
- "Region": "sa-east-1"
+ "UseDualStack": false
}
},
{
@@ -229,9 +229,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "us-east-1",
"UseFIPS": false,
- "Region": "us-east-1"
+ "UseDualStack": false
}
},
{
@@ -242,9 +242,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "us-east-1",
"UseFIPS": true,
- "Region": "us-east-1"
+ "UseDualStack": false
}
},
{
@@ -255,9 +255,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "us-east-2",
"UseFIPS": false,
- "Region": "us-east-2"
+ "UseDualStack": false
}
},
{
@@ -268,9 +268,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "us-east-2",
"UseFIPS": true,
- "Region": "us-east-2"
+ "UseDualStack": false
}
},
{
@@ -281,9 +281,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "us-west-1",
"UseFIPS": false,
- "Region": "us-west-1"
+ "UseDualStack": false
}
},
{
@@ -294,9 +294,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "us-west-1",
"UseFIPS": true,
- "Region": "us-west-1"
+ "UseDualStack": false
}
},
{
@@ -307,9 +307,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "us-west-2",
"UseFIPS": false,
- "Region": "us-west-2"
+ "UseDualStack": false
}
},
{
@@ -320,9 +320,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "us-west-2",
"UseFIPS": true,
- "Region": "us-west-2"
+ "UseDualStack": false
}
},
{
@@ -333,9 +333,9 @@
}
},
"params": {
- "UseDualStack": true,
+ "Region": "us-east-1",
"UseFIPS": true,
- "Region": "us-east-1"
+ "UseDualStack": true
}
},
{
@@ -346,9 +346,9 @@
}
},
"params": {
- "UseDualStack": true,
+ "Region": "us-east-1",
"UseFIPS": false,
- "Region": "us-east-1"
+ "UseDualStack": true
}
},
{
@@ -359,9 +359,9 @@
}
},
"params": {
- "UseDualStack": true,
+ "Region": "cn-north-1",
"UseFIPS": true,
- "Region": "cn-north-1"
+ "UseDualStack": true
}
},
{
@@ -372,9 +372,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "cn-north-1",
"UseFIPS": true,
- "Region": "cn-north-1"
+ "UseDualStack": false
}
},
{
@@ -385,9 +385,9 @@
}
},
"params": {
- "UseDualStack": true,
+ "Region": "cn-north-1",
"UseFIPS": false,
- "Region": "cn-north-1"
+ "UseDualStack": true
}
},
{
@@ -398,9 +398,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "cn-north-1",
"UseFIPS": false,
- "Region": "cn-north-1"
+ "UseDualStack": false
}
},
{
@@ -411,9 +411,9 @@
}
},
"params": {
- "UseDualStack": true,
+ "Region": "us-gov-east-1",
"UseFIPS": true,
- "Region": "us-gov-east-1"
+ "UseDualStack": true
}
},
{
@@ -424,9 +424,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "us-gov-east-1",
"UseFIPS": true,
- "Region": "us-gov-east-1"
+ "UseDualStack": false
}
},
{
@@ -437,9 +437,9 @@
}
},
"params": {
- "UseDualStack": true,
+ "Region": "us-gov-east-1",
"UseFIPS": false,
- "Region": "us-gov-east-1"
+ "UseDualStack": true
}
},
{
@@ -450,9 +450,20 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "us-gov-east-1",
"UseFIPS": false,
- "Region": "us-gov-east-1"
+ "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
}
},
{
@@ -463,9 +474,20 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "us-iso-east-1",
"UseFIPS": true,
- "Region": "us-iso-east-1"
+ "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
}
},
{
@@ -476,9 +498,20 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "us-iso-east-1",
"UseFIPS": false,
- "Region": "us-iso-east-1"
+ "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
}
},
{
@@ -489,9 +522,20 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "us-isob-east-1",
"UseFIPS": true,
- "Region": "us-isob-east-1"
+ "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
}
},
{
@@ -502,9 +546,9 @@
}
},
"params": {
- "UseDualStack": false,
+ "Region": "us-isob-east-1",
"UseFIPS": false,
- "Region": "us-isob-east-1"
+ "UseDualStack": false
}
},
{
@@ -515,9 +559,9 @@
}
},
"params": {
- "UseDualStack": false,
- "UseFIPS": false,
"Region": "us-east-1",
+ "UseFIPS": false,
+ "UseDualStack": false,
"Endpoint": "https://example.com"
}
},
@@ -529,8 +573,8 @@
}
},
"params": {
- "UseDualStack": false,
"UseFIPS": false,
+ "UseDualStack": false,
"Endpoint": "https://example.com"
}
},
@@ -540,9 +584,9 @@
"error": "Invalid Configuration: FIPS and custom endpoint are not supported"
},
"params": {
- "UseDualStack": false,
- "UseFIPS": true,
"Region": "us-east-1",
+ "UseFIPS": true,
+ "UseDualStack": false,
"Endpoint": "https://example.com"
}
},
@@ -552,11 +596,17 @@
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported"
},
"params": {
- "UseDualStack": true,
- "UseFIPS": false,
"Region": "us-east-1",
+ "UseFIPS": false,
+ "UseDualStack": true,
"Endpoint": "https://example.com"
}
+ },
+ {
+ "documentation": "Missing region",
+ "expect": {
+ "error": "Invalid Configuration: Missing Region"
+ }
}
],
"version": "1.0"
diff --git a/apis/privatenetworks/2021-12-03/api-2.json b/apis/privatenetworks/2021-12-03/api-2.json
index 994fe490222..9eb5daa7652 100644
--- a/apis/privatenetworks/2021-12-03/api-2.json
+++ b/apis/privatenetworks/2021-12-03/api-2.json
@@ -477,6 +477,7 @@
],
"members":{
"clientToken":{"shape":"ClientToken"},
+ "commitmentConfiguration":{"shape":"CommitmentConfiguration"},
"networkSiteArn":{"shape":"Arn"},
"shippingAddress":{"shape":"Address"}
}
@@ -501,6 +502,7 @@
"city":{"shape":"AddressContent"},
"company":{"shape":"AddressContent"},
"country":{"shape":"AddressContent"},
+ "emailAddress":{"shape":"AddressContent"},
"name":{"shape":"AddressContent"},
"phoneNumber":{"shape":"AddressContent"},
"postalCode":{"shape":"AddressContent"},
@@ -520,11 +522,43 @@
"type":"string",
"pattern":"^arn:aws:private-networks:[a-z0-9-]+:[^:]*:.*$"
},
+ "Boolean":{
+ "type":"boolean",
+ "box":true
+ },
"ClientToken":{
"type":"string",
"max":100,
"min":1
},
+ "CommitmentConfiguration":{
+ "type":"structure",
+ "required":[
+ "automaticRenewal",
+ "commitmentLength"
+ ],
+ "members":{
+ "automaticRenewal":{"shape":"Boolean"},
+ "commitmentLength":{"shape":"CommitmentLength"}
+ }
+ },
+ "CommitmentInformation":{
+ "type":"structure",
+ "required":["commitmentConfiguration"],
+ "members":{
+ "commitmentConfiguration":{"shape":"CommitmentConfiguration"},
+ "expiresOn":{"shape":"Timestamp"},
+ "startAt":{"shape":"Timestamp"}
+ }
+ },
+ "CommitmentLength":{
+ "type":"string",
+ "enum":[
+ "SIXTY_DAYS",
+ "ONE_YEAR",
+ "THREE_YEARS"
+ ]
+ },
"ConfigureAccessPointRequest":{
"type":"structure",
"required":["accessPointArn"],
@@ -1055,6 +1089,7 @@
"type":"structure",
"members":{
"attributes":{"shape":"NameValuePairs"},
+ "commitmentInformation":{"shape":"CommitmentInformation"},
"createdAt":{"shape":"Timestamp"},
"description":{"shape":"Description"},
"health":{"shape":"HealthStatus"},
@@ -1209,6 +1244,7 @@
"networkArn":{"shape":"Arn"},
"networkSiteArn":{"shape":"Arn"},
"orderArn":{"shape":"Arn"},
+ "orderedResources":{"shape":"OrderedResourceDefinitions"},
"shippingAddress":{"shape":"Address"},
"trackingInformation":{"shape":"TrackingInformationList"}
}
@@ -1233,6 +1269,27 @@
"type":"list",
"member":{"shape":"Order"}
},
+ "OrderedResourceDefinition":{
+ "type":"structure",
+ "required":[
+ "count",
+ "type"
+ ],
+ "members":{
+ "commitmentConfiguration":{"shape":"CommitmentConfiguration"},
+ "count":{"shape":"OrderedResourceDefinitionCountInteger"},
+ "type":{"shape":"NetworkResourceDefinitionType"}
+ }
+ },
+ "OrderedResourceDefinitionCountInteger":{
+ "type":"integer",
+ "box":true,
+ "min":0
+ },
+ "OrderedResourceDefinitions":{
+ "type":"list",
+ "member":{"shape":"OrderedResourceDefinition"}
+ },
"PaginationToken":{"type":"string"},
"PingResponse":{
"type":"structure",
@@ -1291,6 +1348,7 @@
"updateType"
],
"members":{
+ "commitmentConfiguration":{"shape":"CommitmentConfiguration"},
"networkResourceArn":{"shape":"Arn"},
"returnReason":{"shape":"StartNetworkResourceUpdateRequestReturnReasonString"},
"shippingAddress":{"shape":"Address"},
@@ -1438,7 +1496,8 @@
"type":"string",
"enum":[
"REPLACE",
- "RETURN"
+ "RETURN",
+ "COMMITMENT"
]
},
"ValidationException":{
diff --git a/apis/privatenetworks/2021-12-03/docs-2.json b/apis/privatenetworks/2021-12-03/docs-2.json
index 5b36a6e7c09..152c7aaba01 100644
--- a/apis/privatenetworks/2021-12-03/docs-2.json
+++ b/apis/privatenetworks/2021-12-03/docs-2.json
@@ -23,7 +23,7 @@
"ListOrders": "Lists orders. Add filters to your request to return a more specific list of results. Use filters to match the Amazon Resource Name (ARN) of the network site or the status of the order.
If you specify multiple filters, filters are joined with an OR, and the request returns results that match all of the specified filters.
",
"ListTagsForResource": "Lists the tags for the specified resource.
",
"Ping": "Checks the health of the service.
",
- "StartNetworkResourceUpdate": "Starts an update of the specified network resource.
After you submit a request to replace or return a network resource, the status of the network resource is CREATING_SHIPPING_LABEL
. The shipping label is available when the status of the network resource is PENDING_RETURN
. After the network resource is successfully returned, its status is DELETED
. For more information, see Return a radio unit.
",
+ "StartNetworkResourceUpdate": "Use this action to do the following tasks:
-
Update the duration and renewal status of the commitment period for a radio unit. The update goes into effect immediately.
-
Request a replacement for a network resource.
-
Request that you return a network resource.
After you submit a request to replace or return a network resource, the status of the network resource changes to CREATING_SHIPPING_LABEL
. The shipping label is available when the status of the network resource is PENDING_RETURN
. After the network resource is successfully returned, its status changes to DELETED
. For more information, see Return a radio unit.
",
"TagResource": " Adds tags to the specified resource.
",
"UntagResource": "Removes tags from the specified resource.
",
"UpdateNetworkSite": "Updates the specified network site.
",
@@ -86,8 +86,9 @@
"Address$city": "The city for this address.
",
"Address$company": "The company name for this address.
",
"Address$country": "The country for this address.
",
+ "Address$emailAddress": "The recipient's email address.
",
"Address$name": "The recipient's name for this address.
",
- "Address$phoneNumber": "The phone number for this address.
",
+ "Address$phoneNumber": "The recipient's phone number.
",
"Address$postalCode": "The postal code for this address.
",
"Address$stateOrProvince": "The state or province for this address.
",
"Address$street1": "The first line of the street address.
",
@@ -137,6 +138,12 @@
"UpdateNetworkSiteRequest$networkSiteArn": "The Amazon Resource Name (ARN) of the network site.
"
}
},
+ "Boolean": {
+ "base": null,
+ "refs": {
+ "CommitmentConfiguration$automaticRenewal": "Determines whether the commitment period for a radio unit is set to automatically renew for an additional 1 year after your current commitment period expires.
Set to True
, if you want your commitment period to automatically renew. Set to False
if you do not want your commitment to automatically renew.
You can do the following:
-
Set a 1-year commitment to automatically renew for an additional 1 year. The hourly rate for the additional year will continue to be the same as your existing 1-year rate.
-
Set a 3-year commitment to automatically renew for an additional 1 year. The hourly rate for the additional year will continue to be the same as your existing 3-year rate.
-
Turn off a previously-enabled automatic renewal on a 1-year or 3-year commitment.
You cannot use the automatic-renewal option for a 60-day commitment.
"
+ }
+ },
"ClientToken": {
"base": null,
"refs": {
@@ -151,6 +158,27 @@
"UpdateNetworkSiteRequest$clientToken": "Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.
"
}
},
+ "CommitmentConfiguration": {
+ "base": "Determines the duration and renewal status of the commitment period for a radio unit.
For pricing, see Amazon Web Services Private 5G Pricing.
",
+ "refs": {
+ "ActivateNetworkSiteRequest$commitmentConfiguration": "Determines the duration and renewal status of the commitment period for all pending radio units.
If you include commitmentConfiguration
in the ActivateNetworkSiteRequest
action, you must specify the following:
-
The commitment period for the radio unit. You can choose a 60-day, 1-year, or 3-year period.
-
Whether you want your commitment period to automatically renew for one more year after your current commitment period expires.
For pricing, see Amazon Web Services Private 5G Pricing.
If you do not include commitmentConfiguration
in the ActivateNetworkSiteRequest
action, the commitment period is set to 60-days.
",
+ "CommitmentInformation$commitmentConfiguration": "The duration and renewal status of the commitment period for the radio unit.
",
+ "OrderedResourceDefinition$commitmentConfiguration": "The duration and renewal status of the commitment period for each radio unit in the order. Does not show details if the resource type is DEVICE_IDENTIFIER.
",
+ "StartNetworkResourceUpdateRequest$commitmentConfiguration": "Use this action to extend and automatically renew the commitment period for the radio unit. You can do the following:
-
Change a 60-day commitment to a 1-year or 3-year commitment. The change is immediate and the hourly rate decreases to the rate for the new commitment period.
-
Change a 1-year commitment to a 3-year commitment. The change is immediate and the hourly rate decreases to the rate for the 3-year commitment period.
-
Set a 1-year commitment to automatically renew for an additional 1 year. The hourly rate for the additional year will continue to be the same as your existing 1-year rate.
-
Set a 3-year commitment to automatically renew for an additional 1 year. The hourly rate for the additional year will continue to be the same as your existing 3-year rate.
-
Turn off a previously-enabled automatic renewal on a 1-year or 3-year commitment. You cannot use the automatic-renewal option for a 60-day commitment.
For pricing, see Amazon Web Services Private 5G Pricing.
"
+ }
+ },
+ "CommitmentInformation": {
+ "base": "Shows the duration, the date and time that the contract started and ends, and the renewal status of the commitment period for the radio unit.
",
+ "refs": {
+ "NetworkResource$commitmentInformation": "Information about the commitment period for the radio unit. Shows the duration, the date and time that the contract started and ends, and the renewal status of the commitment period.
"
+ }
+ },
+ "CommitmentLength": {
+ "base": null,
+ "refs": {
+ "CommitmentConfiguration$commitmentLength": "The duration of the commitment period for the radio unit. You can choose a 60-day, 1-year, or 3-year period.
"
+ }
+ },
"ConfigureAccessPointRequest": {
"base": null,
"refs": {
@@ -552,7 +580,8 @@
"NetworkResourceDefinitionType": {
"base": null,
"refs": {
- "NetworkResourceDefinition$type": "The type in the network resource definition.
"
+ "NetworkResourceDefinition$type": "The type in the network resource definition.
",
+ "OrderedResourceDefinition$type": "The type of network resource in the order.
"
}
},
"NetworkResourceDefinitions": {
@@ -683,6 +712,24 @@
"ListOrdersResponse$orders": "Information about the orders.
"
}
},
+ "OrderedResourceDefinition": {
+ "base": "Details of the network resources in the order.
",
+ "refs": {
+ "OrderedResourceDefinitions$member": null
+ }
+ },
+ "OrderedResourceDefinitionCountInteger": {
+ "base": null,
+ "refs": {
+ "OrderedResourceDefinition$count": "The number of network resources in the order.
"
+ }
+ },
+ "OrderedResourceDefinitions": {
+ "base": null,
+ "refs": {
+ "Order$orderedResources": "A list of the network resources placed in the order.
"
+ }
+ },
"PaginationToken": {
"base": null,
"refs": {
@@ -840,6 +887,8 @@
"Timestamp": {
"base": null,
"refs": {
+ "CommitmentInformation$expiresOn": "The date and time that the commitment period ends. If you do not cancel or renew the commitment before the expiration date, you will be billed at the 60-day-commitment rate.
",
+ "CommitmentInformation$startAt": "The date and time that the commitment period started.
",
"DeviceIdentifier$createdAt": "The creation time of this device identifier.
",
"Network$createdAt": "The creation time of the network.
",
"NetworkResource$createdAt": "The creation time of the network resource.
",
@@ -887,7 +936,7 @@
"UpdateType": {
"base": null,
"refs": {
- "StartNetworkResourceUpdateRequest$updateType": "The update type.
-
REPLACE
- Submits a request to replace a defective radio unit. We provide a shipping label that you can use for the return process and we ship a replacement radio unit to you.
-
RETURN
- Submits a request to replace a radio unit that you no longer need. We provide a shipping label that you can use for the return process.
"
+ "StartNetworkResourceUpdateRequest$updateType": "The update type.
-
REPLACE
- Submits a request to replace a defective radio unit. We provide a shipping label that you can use for the return process and we ship a replacement radio unit to you.
-
RETURN
- Submits a request to return a radio unit that you no longer need. We provide a shipping label that you can use for the return process.
-
COMMITMENT
- Submits a request to change or renew the commitment period. If you choose this value, then you must set commitmentConfiguration
.
"
}
},
"ValidationException": {
diff --git a/apis/privatenetworks/2021-12-03/endpoint-tests-1.json b/apis/privatenetworks/2021-12-03/endpoint-tests-1.json
index 24fcde110fb..4bce020482b 100644
--- a/apis/privatenetworks/2021-12-03/endpoint-tests-1.json
+++ b/apis/privatenetworks/2021-12-03/endpoint-tests-1.json
@@ -9,8 +9,8 @@
},
"params": {
"Region": "us-east-1",
- "UseDualStack": true,
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": true
}
},
{
@@ -22,8 +22,8 @@
},
"params": {
"Region": "us-east-1",
- "UseDualStack": false,
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": false
}
},
{
@@ -35,8 +35,8 @@
},
"params": {
"Region": "us-east-1",
- "UseDualStack": true,
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": true
}
},
{
@@ -48,8 +48,8 @@
},
"params": {
"Region": "us-east-1",
- "UseDualStack": false,
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": false
}
},
{
@@ -61,8 +61,8 @@
},
"params": {
"Region": "cn-north-1",
- "UseDualStack": true,
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": true
}
},
{
@@ -74,8 +74,8 @@
},
"params": {
"Region": "cn-north-1",
- "UseDualStack": false,
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": false
}
},
{
@@ -87,8 +87,8 @@
},
"params": {
"Region": "cn-north-1",
- "UseDualStack": true,
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": true
}
},
{
@@ -100,8 +100,8 @@
},
"params": {
"Region": "cn-north-1",
- "UseDualStack": false,
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": false
}
},
{
@@ -113,8 +113,8 @@
},
"params": {
"Region": "us-gov-east-1",
- "UseDualStack": true,
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": true
}
},
{
@@ -126,8 +126,8 @@
},
"params": {
"Region": "us-gov-east-1",
- "UseDualStack": false,
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": false
}
},
{
@@ -139,8 +139,8 @@
},
"params": {
"Region": "us-gov-east-1",
- "UseDualStack": true,
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": true
}
},
{
@@ -152,8 +152,19 @@
},
"params": {
"Region": "us-gov-east-1",
- "UseDualStack": false,
- "UseFIPS": false
+ "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
}
},
{
@@ -165,8 +176,19 @@
},
"params": {
"Region": "us-iso-east-1",
- "UseDualStack": false,
- "UseFIPS": true
+ "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
}
},
{
@@ -178,8 +200,19 @@
},
"params": {
"Region": "us-iso-east-1",
- "UseDualStack": false,
- "UseFIPS": false
+ "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
}
},
{
@@ -191,8 +224,19 @@
},
"params": {
"Region": "us-isob-east-1",
- "UseDualStack": false,
- "UseFIPS": true
+ "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
}
},
{
@@ -204,8 +248,8 @@
},
"params": {
"Region": "us-isob-east-1",
- "UseDualStack": false,
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": false
}
},
{
@@ -217,8 +261,8 @@
},
"params": {
"Region": "us-east-1",
- "UseDualStack": false,
"UseFIPS": false,
+ "UseDualStack": false,
"Endpoint": "https://example.com"
}
},
@@ -230,8 +274,8 @@
}
},
"params": {
- "UseDualStack": false,
"UseFIPS": false,
+ "UseDualStack": false,
"Endpoint": "https://example.com"
}
},
@@ -242,8 +286,8 @@
},
"params": {
"Region": "us-east-1",
- "UseDualStack": false,
"UseFIPS": true,
+ "UseDualStack": false,
"Endpoint": "https://example.com"
}
},
@@ -254,10 +298,16 @@
},
"params": {
"Region": "us-east-1",
- "UseDualStack": true,
"UseFIPS": false,
+ "UseDualStack": true,
"Endpoint": "https://example.com"
}
+ },
+ {
+ "documentation": "Missing region",
+ "expect": {
+ "error": "Invalid Configuration: Missing Region"
+ }
}
],
"version": "1.0"
diff --git a/apis/sagemaker-featurestore-runtime/2020-07-01/api-2.json b/apis/sagemaker-featurestore-runtime/2020-07-01/api-2.json
index 39432029ad5..b301858e7e4 100644
--- a/apis/sagemaker-featurestore-runtime/2020-07-01/api-2.json
+++ b/apis/sagemaker-featurestore-runtime/2020-07-01/api-2.json
@@ -124,7 +124,8 @@
"type":"structure",
"required":["Identifiers"],
"members":{
- "Identifiers":{"shape":"BatchGetRecordIdentifiers"}
+ "Identifiers":{"shape":"BatchGetRecordIdentifiers"},
+ "ExpirationTimeResponse":{"shape":"ExpirationTimeResponse"}
}
},
"BatchGetRecordResponse":{
@@ -150,7 +151,8 @@
"members":{
"FeatureGroupName":{"shape":"ValueAsString"},
"RecordIdentifierValueAsString":{"shape":"ValueAsString"},
- "Record":{"shape":"Record"}
+ "Record":{"shape":"Record"},
+ "ExpiresAt":{"shape":"ExpiresAt"}
}
},
"BatchGetRecordResultDetails":{
@@ -200,6 +202,14 @@
"HardDelete"
]
},
+ "ExpirationTimeResponse":{
+ "type":"string",
+ "enum":[
+ "Enabled",
+ "Disabled"
+ ]
+ },
+ "ExpiresAt":{"type":"string"},
"FeatureGroupName":{
"type":"string",
"max":64,
@@ -249,13 +259,19 @@
"shape":"FeatureNames",
"location":"querystring",
"locationName":"FeatureName"
+ },
+ "ExpirationTimeResponse":{
+ "shape":"ExpirationTimeResponse",
+ "location":"querystring",
+ "locationName":"ExpirationTimeResponse"
}
}
},
"GetRecordResponse":{
"type":"structure",
"members":{
- "Record":{"shape":"Record"}
+ "Record":{"shape":"Record"},
+ "ExpiresAt":{"shape":"ExpiresAt"}
}
},
"InternalFailure":{
@@ -285,7 +301,8 @@
"locationName":"FeatureGroupName"
},
"Record":{"shape":"Record"},
- "TargetStores":{"shape":"TargetStores"}
+ "TargetStores":{"shape":"TargetStores"},
+ "TtlDuration":{"shape":"TtlDuration"}
}
},
"Record":{
@@ -330,6 +347,31 @@
"max":2,
"min":1
},
+ "TtlDuration":{
+ "type":"structure",
+ "required":[
+ "Unit",
+ "Value"
+ ],
+ "members":{
+ "Unit":{"shape":"TtlDurationUnit"},
+ "Value":{"shape":"TtlDurationValue"}
+ }
+ },
+ "TtlDurationUnit":{
+ "type":"string",
+ "enum":[
+ "Seconds",
+ "Minutes",
+ "Hours",
+ "Days",
+ "Weeks"
+ ]
+ },
+ "TtlDurationValue":{
+ "type":"integer",
+ "min":1
+ },
"UnprocessedIdentifiers":{
"type":"list",
"member":{"shape":"BatchGetRecordIdentifier"},
diff --git a/apis/sagemaker-featurestore-runtime/2020-07-01/docs-2.json b/apis/sagemaker-featurestore-runtime/2020-07-01/docs-2.json
index feeb0e0798d..97184ef66b9 100644
--- a/apis/sagemaker-featurestore-runtime/2020-07-01/docs-2.json
+++ b/apis/sagemaker-featurestore-runtime/2020-07-01/docs-2.json
@@ -3,7 +3,7 @@
"service": "Contains all data plane API operations and data types for the Amazon SageMaker Feature Store. Use this API to put, delete, and retrieve (get) features from a feature store.
Use the following operations to configure your OnlineStore
and OfflineStore
features, and to create and manage feature groups:
",
"operations": {
"BatchGetRecord": "Retrieves a batch of Records
from a FeatureGroup
.
",
- "DeleteRecord": "Deletes a Record
from a FeatureGroup
in the OnlineStore
. Feature Store supports both SOFT_DELETE
and HARD_DELETE
. For SOFT_DELETE
(default), feature columns are set to null
and the record is no longer retrievable by GetRecord
or BatchGetRecord
. For HARD_DELETE
, the complete Record
is removed from the OnlineStore
. In both cases, Feature Store appends the deleted record marker to the OfflineStore
with feature values set to null
, is_deleted
value set to True
, and EventTime
set to the delete input EventTime
.
Note that the EventTime
specified in DeleteRecord
should be set later than the EventTime
of the existing record in the OnlineStore
for that RecordIdentifer
. If it is not, the deletion does not occur:
-
For SOFT_DELETE
, the existing (undeleted) record remains in the OnlineStore
, though the delete record marker is still written to the OfflineStore
.
-
HARD_DELETE
returns EventTime
: 400 ValidationException
to indicate that the delete operation failed. No delete record marker is written to the OfflineStore
.
",
+ "DeleteRecord": "Deletes a Record
from a FeatureGroup
in the OnlineStore
. Feature Store supports both SoftDelete
and HardDelete
. For SoftDelete
(default), feature columns are set to null
and the record is no longer retrievable by GetRecord
or BatchGetRecord
. For HardDelete
, the complete Record
is removed from the OnlineStore
. In both cases, Feature Store appends the deleted record marker to the OfflineStore
with feature values set to null
, is_deleted
value set to True
, and EventTime
set to the delete input EventTime
.
Note that the EventTime
specified in DeleteRecord
should be set later than the EventTime
of the existing record in the OnlineStore
for that RecordIdentifer
. If it is not, the deletion does not occur:
-
For SoftDelete
, the existing (undeleted) record remains in the OnlineStore
, though the delete record marker is still written to the OfflineStore
.
-
HardDelete
returns EventTime
: 400 ValidationException
to indicate that the delete operation failed. No delete record marker is written to the OfflineStore
.
",
"GetRecord": "Use for OnlineStore
serving from a FeatureStore
. Only the latest records stored in the OnlineStore
can be retrieved. If no Record with RecordIdentifierValue
is found, then an empty result is returned.
",
"PutRecord": "Used for data ingestion into the FeatureStore
. The PutRecord
API writes to both the OnlineStore
and OfflineStore
. If the record is the latest record for the recordIdentifier
, the record is written to both the OnlineStore
and OfflineStore
. If the record is a historic record, it is written only to the OfflineStore
.
"
},
@@ -71,6 +71,20 @@
"DeleteRecordRequest$DeletionMode": "The name of the deletion mode for deleting the record. By default, the deletion mode is set to SoftDelete
.
"
}
},
+ "ExpirationTimeResponse": {
+ "base": null,
+ "refs": {
+ "BatchGetRecordRequest$ExpirationTimeResponse": "Parameter to request ExpiresAt
in response. If Enabled
, BatchGetRecord
will return the value of ExpiresAt
, if it is not null. If Disabled
and null, BatchGetRecord
will return null.
",
+ "GetRecordRequest$ExpirationTimeResponse": "Parameter to request ExpiresAt
in response. If Enabled
, BatchGetRecord
will return the value of ExpiresAt
, if it is not null. If Disabled
and null, BatchGetRecord
will return null.
"
+ }
+ },
+ "ExpiresAt": {
+ "base": null,
+ "refs": {
+ "BatchGetRecordResultDetail$ExpiresAt": "The ExpiresAt
ISO string of the requested record.
",
+ "GetRecordResponse$ExpiresAt": "The ExpiresAt
ISO string of the requested record.
"
+ }
+ },
"FeatureGroupName": {
"base": null,
"refs": {
@@ -168,6 +182,24 @@
"PutRecordRequest$TargetStores": "A list of stores to which you're adding the record. By default, Feature Store adds the record to all of the stores that you're using for the FeatureGroup
.
"
}
},
+ "TtlDuration": {
+ "base": "Time to live duration, where the record is hard deleted after the expiration time is reached; ExpiresAt
= EventTime
+ TtlDuration
. For information on HardDelete, see the DeleteRecord API in the Amazon SageMaker API Reference guide.
",
+ "refs": {
+ "PutRecordRequest$TtlDuration": "Time to live duration, where the record is hard deleted after the expiration time is reached; ExpiresAt
= EventTime
+ TtlDuration
. For information on HardDelete, see the DeleteRecord API in the Amazon SageMaker API Reference guide.
"
+ }
+ },
+ "TtlDurationUnit": {
+ "base": null,
+ "refs": {
+ "TtlDuration$Unit": " TtlDuration
time unit.
"
+ }
+ },
+ "TtlDurationValue": {
+ "base": null,
+ "refs": {
+ "TtlDuration$Value": " TtlDuration
time value.
"
+ }
+ },
"UnprocessedIdentifiers": {
"base": null,
"refs": {
diff --git a/apis/sagemaker-featurestore-runtime/2020-07-01/endpoint-tests-1.json b/apis/sagemaker-featurestore-runtime/2020-07-01/endpoint-tests-1.json
index 90410889b79..a3d739c5116 100644
--- a/apis/sagemaker-featurestore-runtime/2020-07-01/endpoint-tests-1.json
+++ b/apis/sagemaker-featurestore-runtime/2020-07-01/endpoint-tests-1.json
@@ -8,9 +8,9 @@
}
},
"params": {
- "UseDualStack": true,
"Region": "us-east-1",
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": true
}
},
{
@@ -21,9 +21,9 @@
}
},
"params": {
- "UseDualStack": false,
"Region": "us-east-1",
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": false
}
},
{
@@ -34,9 +34,9 @@
}
},
"params": {
- "UseDualStack": true,
"Region": "us-east-1",
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": true
}
},
{
@@ -47,9 +47,9 @@
}
},
"params": {
- "UseDualStack": false,
"Region": "us-east-1",
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": false
}
},
{
@@ -60,9 +60,9 @@
}
},
"params": {
- "UseDualStack": true,
"Region": "cn-north-1",
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": true
}
},
{
@@ -73,9 +73,9 @@
}
},
"params": {
- "UseDualStack": false,
"Region": "cn-north-1",
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": false
}
},
{
@@ -86,9 +86,9 @@
}
},
"params": {
- "UseDualStack": true,
"Region": "cn-north-1",
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": true
}
},
{
@@ -99,9 +99,9 @@
}
},
"params": {
- "UseDualStack": false,
"Region": "cn-north-1",
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": false
}
},
{
@@ -112,9 +112,9 @@
}
},
"params": {
- "UseDualStack": true,
"Region": "us-gov-east-1",
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": true
}
},
{
@@ -125,9 +125,9 @@
}
},
"params": {
- "UseDualStack": false,
"Region": "us-gov-east-1",
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": false
}
},
{
@@ -138,9 +138,9 @@
}
},
"params": {
- "UseDualStack": true,
"Region": "us-gov-east-1",
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": true
}
},
{
@@ -151,9 +151,9 @@
}
},
"params": {
- "UseDualStack": false,
"Region": "us-gov-east-1",
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": false
}
},
{
@@ -162,9 +162,9 @@
"error": "FIPS and DualStack are enabled, but this partition does not support one or both"
},
"params": {
- "UseDualStack": true,
"Region": "us-iso-east-1",
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": true
}
},
{
@@ -175,9 +175,9 @@
}
},
"params": {
- "UseDualStack": false,
"Region": "us-iso-east-1",
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": false
}
},
{
@@ -186,9 +186,9 @@
"error": "DualStack is enabled but this partition does not support DualStack"
},
"params": {
- "UseDualStack": true,
"Region": "us-iso-east-1",
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": true
}
},
{
@@ -199,9 +199,9 @@
}
},
"params": {
- "UseDualStack": false,
"Region": "us-iso-east-1",
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": false
}
},
{
@@ -210,9 +210,9 @@
"error": "FIPS and DualStack are enabled, but this partition does not support one or both"
},
"params": {
- "UseDualStack": true,
"Region": "us-isob-east-1",
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": true
}
},
{
@@ -223,9 +223,9 @@
}
},
"params": {
- "UseDualStack": false,
"Region": "us-isob-east-1",
- "UseFIPS": true
+ "UseFIPS": true,
+ "UseDualStack": false
}
},
{
@@ -234,9 +234,9 @@
"error": "DualStack is enabled but this partition does not support DualStack"
},
"params": {
- "UseDualStack": true,
"Region": "us-isob-east-1",
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": true
}
},
{
@@ -247,9 +247,9 @@
}
},
"params": {
- "UseDualStack": false,
"Region": "us-isob-east-1",
- "UseFIPS": false
+ "UseFIPS": false,
+ "UseDualStack": false
}
},
{
@@ -260,9 +260,9 @@
}
},
"params": {
- "UseDualStack": false,
"Region": "us-east-1",
"UseFIPS": false,
+ "UseDualStack": false,
"Endpoint": "https://example.com"
}
},
@@ -274,8 +274,8 @@
}
},
"params": {
- "UseDualStack": false,
"UseFIPS": false,
+ "UseDualStack": false,
"Endpoint": "https://example.com"
}
},
@@ -285,9 +285,9 @@
"error": "Invalid Configuration: FIPS and custom endpoint are not supported"
},
"params": {
- "UseDualStack": false,
"Region": "us-east-1",
"UseFIPS": true,
+ "UseDualStack": false,
"Endpoint": "https://example.com"
}
},
@@ -297,9 +297,9 @@
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported"
},
"params": {
- "UseDualStack": true,
"Region": "us-east-1",
"UseFIPS": false,
+ "UseDualStack": true,
"Endpoint": "https://example.com"
}
},
diff --git a/apis/sagemaker/2017-07-24/api-2.json b/apis/sagemaker/2017-07-24/api-2.json
index 1cdf0a8bcec..b39d5f77637 100644
--- a/apis/sagemaker/2017-07-24/api-2.json
+++ b/apis/sagemaker/2017-07-24/api-2.json
@@ -16097,7 +16097,14 @@
"type":"structure",
"members":{
"SecurityConfig":{"shape":"OnlineStoreSecurityConfig"},
- "EnableOnlineStore":{"shape":"Boolean"}
+ "EnableOnlineStore":{"shape":"Boolean"},
+ "TtlDuration":{"shape":"TtlDuration"}
+ }
+ },
+ "OnlineStoreConfigUpdate":{
+ "type":"structure",
+ "members":{
+ "TtlDuration":{"shape":"TtlDuration"}
}
},
"OnlineStoreSecurityConfig":{
@@ -20083,6 +20090,27 @@
"LastModifiedTime":{"shape":"Timestamp"}
}
},
+ "TtlDuration":{
+ "type":"structure",
+ "members":{
+ "Unit":{"shape":"TtlDurationUnit"},
+ "Value":{"shape":"TtlDurationValue"}
+ }
+ },
+ "TtlDurationUnit":{
+ "type":"string",
+ "enum":[
+ "Seconds",
+ "Minutes",
+ "Hours",
+ "Days",
+ "Weeks"
+ ]
+ },
+ "TtlDurationValue":{
+ "type":"integer",
+ "min":1
+ },
"TuningJobCompletionCriteria":{
"type":"structure",
"members":{
@@ -20306,7 +20334,8 @@
"required":["FeatureGroupName"],
"members":{
"FeatureGroupName":{"shape":"FeatureGroupName"},
- "FeatureAdditions":{"shape":"FeatureAdditions"}
+ "FeatureAdditions":{"shape":"FeatureAdditions"},
+ "OnlineStoreConfig":{"shape":"OnlineStoreConfigUpdate"}
}
},
"UpdateFeatureGroupResponse":{
diff --git a/apis/sagemaker/2017-07-24/docs-2.json b/apis/sagemaker/2017-07-24/docs-2.json
index e4037cc847a..d47f4cacff1 100644
--- a/apis/sagemaker/2017-07-24/docs-2.json
+++ b/apis/sagemaker/2017-07-24/docs-2.json
@@ -8638,7 +8638,7 @@
"ModelCompressionType": {
"base": null,
"refs": {
- "S3ModelDataSource$CompressionType": "Specifies how the ML model data is prepared.
If you choose Gzip
and choose S3Object
as the value of S3DataType
, S3Uri
identifies an object that is a gzip-compressed TAR archive. SageMaker will attempt to decompress and untar the object during model deployment.
If you choose None
and chooose S3Object
as the value of S3DataType
, S3Uri
identifies an object that represents an uncompressed ML model to deploy.
If you choose None and choose S3Prefix
as the value of S3DataType
, S3Uri
identifies a key name prefix, under which all objects represents the uncompressed ML model to deploy.
If you choose None, then SageMaker will follow rules below when creating model data files under /opt/ml/model directory for use by your inference code:
-
If you choose S3Object
as the value of S3DataType
, then SageMaker will split the key of the S3 object referenced by S3Uri
by slash (/), and use the last part as the filename of the file holding the content of the S3 object.
-
If you choose S3Prefix
as the value of S3DataType
, then for each S3 object under the key name pefix referenced by S3Uri
, SageMaker will trim its key by the prefix, and use the remainder as the path (relative to /opt/ml/model
) of the file holding the content of the S3 object. SageMaker will split the remainder by slash (/), using intermediate parts as directory names and the last part as filename of the file holding the content of the S3 object.
-
Do not use any of the following as file names or directory names:
-
Ambiguous file names will result in model deployment failure. For example, if your uncompressed ML model consists of two S3 objects s3://mybucket/model/weights
and s3://mybucket/model/weights/part1
and you specify s3://mybucket/model/
as the value of S3Uri
and S3Prefix
as the value of S3DataType, then it will result in name clash between /opt/ml/model/weights
(a regular file) and /opt/ml/model/weights/
(a directory).
-
Do not organize the model artifacts in S3 console using folders. When you create a folder in S3 console, S3 creates a 0-byte object with a key set to the folder name you provide. They key of the 0-byte object ends with a slash (/) which violates SageMaker restrictions on model artifact file names, leading to model deployment failure.
"
+ "S3ModelDataSource$CompressionType": "Specifies how the ML model data is prepared.
If you choose Gzip
and choose S3Object
as the value of S3DataType
, S3Uri
identifies an object that is a gzip-compressed TAR archive. SageMaker will attempt to decompress and untar the object during model deployment.
If you choose None
and chooose S3Object
as the value of S3DataType
, S3Uri
identifies an object that represents an uncompressed ML model to deploy.
If you choose None and choose S3Prefix
as the value of S3DataType
, S3Uri
identifies a key name prefix, under which all objects represents the uncompressed ML model to deploy.
If you choose None, then SageMaker will follow rules below when creating model data files under /opt/ml/model directory for use by your inference code:
-
If you choose S3Object
as the value of S3DataType
, then SageMaker will split the key of the S3 object referenced by S3Uri
by slash (/), and use the last part as the filename of the file holding the content of the S3 object.
-
If you choose S3Prefix
as the value of S3DataType
, then for each S3 object under the key name pefix referenced by S3Uri
, SageMaker will trim its key by the prefix, and use the remainder as the path (relative to /opt/ml/model
) of the file holding the content of the S3 object. SageMaker will split the remainder by slash (/), using intermediate parts as directory names and the last part as filename of the file holding the content of the S3 object.
-
Do not use any of the following as file names or directory names:
-
Ambiguous file names will result in model deployment failure. For example, if your uncompressed ML model consists of two S3 objects s3://mybucket/model/weights
and s3://mybucket/model/weights/part1
and you specify s3://mybucket/model/
as the value of S3Uri
and S3Prefix
as the value of S3DataType
, then it will result in name clash between /opt/ml/model/weights
(a regular file) and /opt/ml/model/weights/
(a directory).
-
Do not organize the model artifacts in S3 console using folders. When you create a folder in S3 console, S3 creates a 0-byte object with a key set to the folder name you provide. They key of the 0-byte object ends with a slash (/) which violates SageMaker restrictions on model artifact file names, leading to model deployment failure.
"
}
},
"ModelConfiguration": {
@@ -8699,7 +8699,7 @@
"ModelDataSource": {
"base": "Specifies the location of ML model data to deploy. If specified, you must specify one and only one of the available data sources.
",
"refs": {
- "ContainerDefinition$ModelDataSource": "Specifies the location of ML model data to deploy.
Currently you cannot use ModelDataSource
in conjuction with SageMaker batch transform, SageMaker serverless endpoints, SageMaker multi-model endpoints, and SageMaker Marketplace.
"
+ "ContainerDefinition$ModelDataSource": "Specifies the location of ML model data to deploy.
Currently you cannot use ModelDataSource
in conjunction with SageMaker batch transform, SageMaker serverless endpoints, SageMaker multi-model endpoints, and SageMaker Marketplace.
"
}
},
"ModelDeployConfig": {
@@ -10120,6 +10120,12 @@
"FeatureGroup$OnlineStoreConfig": null
}
},
+ "OnlineStoreConfigUpdate": {
+ "base": "Updates the feature group online store configuration.
",
+ "refs": {
+ "UpdateFeatureGroupRequest$OnlineStoreConfig": "Updates the feature group online store configuration.
"
+ }
+ },
"OnlineStoreSecurityConfig": {
"base": "The security configuration for OnlineStore
.
",
"refs": {
@@ -11859,7 +11865,7 @@
"S3ModelDataType": {
"base": null,
"refs": {
- "S3ModelDataSource$S3DataType": "Specifies the type of ML model data to deploy.
If you choose S3Prefix
, S3Uri
identifies a key name prefix. SageMaker uses all objects that match the specified key name prefix as part of the ML model data to deploy. A valid key name prefix identified by S3Uri
always ends with a forward slash (/).
If you choose S3Object, S3Uri identifies an object that is the ML model data to deploy.
"
+ "S3ModelDataSource$S3DataType": "Specifies the type of ML model data to deploy.
If you choose S3Prefix
, S3Uri
identifies a key name prefix. SageMaker uses all objects that match the specified key name prefix as part of the ML model data to deploy. A valid key name prefix identified by S3Uri
always ends with a forward slash (/).
If you choose S3Object
, S3Uri
identifies an object that is the ML model data to deploy.
"
}
},
"S3ModelUri": {
@@ -14240,6 +14246,25 @@
"TrialSummaries$member": null
}
},
+ "TtlDuration": {
+ "base": "Time to live duration, where the record is hard deleted after the expiration time is reached; ExpiresAt
= EventTime
+ TtlDuration
. For information on HardDelete, see the DeleteRecord API in the Amazon SageMaker API Reference guide.
",
+ "refs": {
+ "OnlineStoreConfig$TtlDuration": "Time to live duration, where the record is hard deleted after the expiration time is reached; ExpiresAt
= EventTime
+ TtlDuration
. For information on HardDelete, see the DeleteRecord API in the Amazon SageMaker API Reference guide.
",
+ "OnlineStoreConfigUpdate$TtlDuration": "Time to live duration, where the record is hard deleted after the expiration time is reached; ExpiresAt
= EventTime
+ TtlDuration
. For information on HardDelete, see the DeleteRecord API in the Amazon SageMaker API Reference guide.
"
+ }
+ },
+ "TtlDurationUnit": {
+ "base": null,
+ "refs": {
+ "TtlDuration$Unit": " TtlDuration
time unit.
"
+ }
+ },
+ "TtlDurationValue": {
+ "base": null,
+ "refs": {
+ "TtlDuration$Value": " TtlDuration
time value.
"
+ }
+ },
"TuningJobCompletionCriteria": {
"base": "The job completion criteria.
",
"refs": {
diff --git a/apis/ssm/2014-11-06/docs-2.json b/apis/ssm/2014-11-06/docs-2.json
index 35be605e2d9..26c96aafb45 100644
--- a/apis/ssm/2014-11-06/docs-2.json
+++ b/apis/ssm/2014-11-06/docs-2.json
@@ -1,6 +1,6 @@
{
"version": "2.0",
- "service": "Amazon Web Services Systems Manager is the operations hub for your Amazon Web Services applications and resources and a secure end-to-end management solution for hybrid cloud environments that enables safe and secure operations at scale.
This reference is intended to be used with the Amazon Web Services Systems Manager User Guide. To get started, see Setting up Amazon Web Services Systems Manager.
Related resources
",
+ "service": "Amazon Web Services Systems Manager is the operations hub for your Amazon Web Services applications and resources and a secure end-to-end management solution for hybrid cloud environments that enables safe and secure operations at scale.
This reference is intended to be used with the Amazon Web Services Systems Manager User Guide. To get started, see Setting up Amazon Web Services Systems Manager.
Related resources
",
"operations": {
"AddTagsToResource": "Adds or overwrites one or more tags for the specified resource. Tags are metadata that you can assign to your automations, documents, managed nodes, maintenance windows, Parameter Store parameters, and patch baselines. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define. For example, you could define a set of tags for your account's managed nodes that helps you track each node's owner and stack level. For example:
-
Key=Owner,Value=DbAdmin
-
Key=Owner,Value=SysAdmin
-
Key=Owner,Value=Dev
-
Key=Stack,Value=Production
-
Key=Stack,Value=Pre-Production
-
Key=Stack,Value=Test
Most resources can have a maximum of 50 tags. Automations can have a maximum of 5 tags.
We recommend that you devise a set of tag keys that meets your needs for each resource type. Using a consistent set of tag keys makes it easier for you to manage your resources. You can search and filter the resources based on the tags you add. Tags don't have any semantic meaning to and are interpreted strictly as a string of characters.
For more information about using tags with Amazon Elastic Compute Cloud (Amazon EC2) instances, see Tagging your Amazon EC2 resources in the Amazon EC2 User Guide.
",
"AssociateOpsItemRelatedItem": "Associates a related item to a Systems Manager OpsCenter OpsItem. For example, you can associate an Incident Manager incident or analysis with an OpsItem. Incident Manager and OpsCenter are capabilities of Amazon Web Services Systems Manager.
",
@@ -11,7 +11,7 @@
"CreateAssociationBatch": "Associates the specified Amazon Web Services Systems Manager document (SSM document) with the specified managed nodes or targets.
When you associate a document with one or more managed nodes using IDs or tags, Amazon Web Services Systems Manager Agent (SSM Agent) running on the managed node processes the document and configures the node as specified.
If you associate a document with a managed node that already has an associated document, the system returns the AssociationAlreadyExists exception.
",
"CreateDocument": "Creates a Amazon Web Services Systems Manager (SSM document). An SSM document defines the actions that Systems Manager performs on your managed nodes. For more information about SSM documents, including information about supported schemas, features, and syntax, see Amazon Web Services Systems Manager Documents in the Amazon Web Services Systems Manager User Guide.
",
"CreateMaintenanceWindow": "Creates a new maintenance window.
The value you specify for Duration
determines the specific end time for the maintenance window based on the time it begins. No maintenance window tasks are permitted to start after the resulting endtime minus the number of hours you specify for Cutoff
. For example, if the maintenance window starts at 3 PM, the duration is three hours, and the value you specify for Cutoff
is one hour, no maintenance window tasks can start after 5 PM.
",
- "CreateOpsItem": "Creates a new OpsItem. You must have permission in Identity and Access Management (IAM) to create a new OpsItem. For more information, see Getting started with OpsCenter in the Amazon Web Services Systems Manager User Guide.
Operations engineers and IT professionals use Amazon Web Services Systems Manager OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their Amazon Web Services resources. For more information, see Amazon Web Services Systems Manager OpsCenter in the Amazon Web Services Systems Manager User Guide.
",
+ "CreateOpsItem": "Creates a new OpsItem. You must have permission in Identity and Access Management (IAM) to create a new OpsItem. For more information, see Set up OpsCenter in the Amazon Web Services Systems Manager User Guide.
Operations engineers and IT professionals use Amazon Web Services Systems Manager OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their Amazon Web Services resources. For more information, see Amazon Web Services Systems Manager OpsCenter in the Amazon Web Services Systems Manager User Guide.
",
"CreateOpsMetadata": "If you create a new application in Application Manager, Amazon Web Services Systems Manager calls this API operation to specify information about the new application, including the application type.
",
"CreatePatchBaseline": "Creates a patch baseline.
For information about valid key-value pairs in PatchFilters
for each supported operating system type, see PatchFilter.
",
"CreateResourceDataSync": "A resource data sync helps you view data from multiple sources in a single location. Amazon Web Services Systems Manager offers two types of resource data sync: SyncToDestination
and SyncFromSource
.
You can configure Systems Manager Inventory to use the SyncToDestination
type to synchronize Inventory data from multiple Amazon Web Services Regions to a single Amazon Simple Storage Service (Amazon S3) bucket. For more information, see Configuring resource data sync for Inventory in the Amazon Web Services Systems Manager User Guide.
You can configure Systems Manager Explorer to use the SyncFromSource
type to synchronize operational work items (OpsItems) and operational data (OpsData) from multiple Amazon Web Services Regions to a single Amazon S3 bucket. This type can synchronize OpsItems and OpsData from multiple Amazon Web Services accounts and Amazon Web Services Regions or EntireOrganization
by using Organizations. For more information, see Setting up Systems Manager Explorer to display data from multiple accounts and Regions in the Amazon Web Services Systems Manager User Guide.
A resource data sync is an asynchronous operation that returns immediately. After a successful initial sync is completed, the system continuously syncs data. To check the status of a sync, use the ListResourceDataSync.
By default, data isn't encrypted in Amazon S3. We strongly recommend that you enable encryption in Amazon S3 to ensure secure data storage. We also recommend that you secure access to the Amazon S3 bucket by creating a restrictive bucket policy.
",
@@ -42,7 +42,7 @@
"DescribeEffectiveInstanceAssociations": "All associations for the managed node(s).
",
"DescribeEffectivePatchesForPatchBaseline": "Retrieves the current effective patches (the patch and the approval state) for the specified patch baseline. Applies to patch baselines for Windows only.
",
"DescribeInstanceAssociationsStatus": "The status of the associations for the managed node(s).
",
- "DescribeInstanceInformation": "Describes one or more of your managed nodes, including information about the operating system platform, the version of SSM Agent installed on the managed node, node status, and so on.
If you specify one or more managed node IDs, it returns information for those managed nodes. If you don't specify node IDs, it returns information for all your managed nodes. If you specify a node ID that isn't valid or a node that you don't own, you receive an error.
The IamRole
field for this API operation is the Identity and Access Management (IAM) role assigned to on-premises managed nodes. This call doesn't return the IAM role for EC2 instances.
",
+ "DescribeInstanceInformation": "Provides information about one or more of your managed nodes, including the operating system platform, SSM Agent version, association status, and IP address. This operation does not return information for nodes that are either Stopped or Terminated.
If you specify one or more node IDs, the operation returns information for those managed nodes. If you don't specify node IDs, it returns information for all your managed nodes. If you specify a node ID that isn't valid or a node that you don't own, you receive an error.
The IamRole
field returned for this API operation is the Identity and Access Management (IAM) role assigned to on-premises managed nodes. This operation does not return the IAM role for EC2 instances.
",
"DescribeInstancePatchStates": "Retrieves the high-level patch state of one or more managed nodes.
",
"DescribeInstancePatchStatesForPatchGroup": "Retrieves the high-level patch state for the managed nodes in the specified patch group.
",
"DescribeInstancePatches": "Retrieves information about the patches on the specified managed node and their state relative to the patch baseline being used for the node.
",
@@ -55,7 +55,7 @@
"DescribeMaintenanceWindowTasks": "Lists the tasks in a maintenance window.
For maintenance window tasks without a specified target, you can't supply values for --max-errors
and --max-concurrency
. Instead, the system inserts a placeholder value of 1
, which may be reported in the response to this command. These values don't affect the running of your task and can be ignored.
",
"DescribeMaintenanceWindows": "Retrieves the maintenance windows in an Amazon Web Services account.
",
"DescribeMaintenanceWindowsForTarget": "Retrieves information about the maintenance window targets or tasks that a managed node is associated with.
",
- "DescribeOpsItems": "Query a set of OpsItems. You must have permission in Identity and Access Management (IAM) to query a list of OpsItems. For more information, see Getting started with OpsCenter in the Amazon Web Services Systems Manager User Guide.
Operations engineers and IT professionals use Amazon Web Services Systems Manager OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their Amazon Web Services resources. For more information, see OpsCenter in the Amazon Web Services Systems Manager User Guide.
",
+ "DescribeOpsItems": "Query a set of OpsItems. You must have permission in Identity and Access Management (IAM) to query a list of OpsItems. For more information, see Set up OpsCenter in the Amazon Web Services Systems Manager User Guide.
Operations engineers and IT professionals use Amazon Web Services Systems Manager OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their Amazon Web Services resources. For more information, see OpsCenter in the Amazon Web Services Systems Manager User Guide.
",
"DescribeParameters": "Get information about a parameter.
Request results are returned on a best-effort basis. If you specify MaxResults
in the request, the response includes information up to the limit specified. The number of items returned, however, can be between zero and the value of MaxResults
. If the service reaches an internal limit while processing the results, it stops the operation and returns the matching values up to that point and a NextToken
. You can specify the NextToken
in a subsequent call to get the next set of results.
If you change the KMS key alias for the KMS key used to encrypt a parameter, then you must also update the key alias the parameter uses to reference KMS. Otherwise, DescribeParameters
retrieves whatever the original key alias was referencing.
",
"DescribePatchBaselines": "Lists the patch baselines in your Amazon Web Services account.
",
"DescribePatchGroupState": "Returns high-level aggregated patch compliance state information for a patch group.
",
@@ -77,7 +77,7 @@
"GetMaintenanceWindowExecutionTask": "Retrieves the details about a specific task run as part of a maintenance window execution.
",
"GetMaintenanceWindowExecutionTaskInvocation": "Retrieves information about a specific task running on a specific target.
",
"GetMaintenanceWindowTask": "Retrieves the details of a maintenance window task.
For maintenance window tasks without a specified target, you can't supply values for --max-errors
and --max-concurrency
. Instead, the system inserts a placeholder value of 1
, which may be reported in the response to this command. These values don't affect the running of your task and can be ignored.
To retrieve a list of tasks in a maintenance window, instead use the DescribeMaintenanceWindowTasks command.
",
- "GetOpsItem": "Get information about an OpsItem by using the ID. You must have permission in Identity and Access Management (IAM) to view information about an OpsItem. For more information, see Getting started with OpsCenter in the Amazon Web Services Systems Manager User Guide.
Operations engineers and IT professionals use Amazon Web Services Systems Manager OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their Amazon Web Services resources. For more information, see OpsCenter in the Amazon Web Services Systems Manager User Guide.
",
+ "GetOpsItem": "Get information about an OpsItem by using the ID. You must have permission in Identity and Access Management (IAM) to view information about an OpsItem. For more information, see Set up OpsCenter in the Amazon Web Services Systems Manager User Guide.
Operations engineers and IT professionals use Amazon Web Services Systems Manager OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their Amazon Web Services resources. For more information, see OpsCenter in the Amazon Web Services Systems Manager User Guide.
",
"GetOpsMetadata": "View operational metadata related to an application in Application Manager.
",
"GetOpsSummary": "View a summary of operations metadata (OpsData) based on specified filters and aggregators. OpsData can include information about Amazon Web Services Systems Manager OpsCenter operational workitems (OpsItems) as well as information about any Amazon Web Services resource or service configured to report OpsData to Amazon Web Services Systems Manager Explorer.
",
"GetParameter": "Get information about a single parameter by specifying the parameter name.
To get information about more than one parameter at a time, use the GetParameters operation.
",
@@ -135,7 +135,7 @@
"UpdateMaintenanceWindowTarget": "Modifies the target of an existing maintenance window. You can change the following:
-
Name
-
Description
-
Owner
-
IDs for an ID target
-
Tags for a Tag target
-
From any supported tag type to another. The three supported tag types are ID target, Tag target, and resource group. For more information, see Target.
If a parameter is null, then the corresponding field isn't modified.
",
"UpdateMaintenanceWindowTask": "Modifies a task assigned to a maintenance window. You can't change the task type, but you can change the following values:
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.
If the value for a parameter in UpdateMaintenanceWindowTask
is null, then the corresponding field isn't modified. If you set Replace
to true, then all fields required by the RegisterTaskWithMaintenanceWindow operation are required for this request. Optional fields that aren't specified are set to null.
When you update a maintenance window task that has options specified in TaskInvocationParameters
, you must provide again all the TaskInvocationParameters
values that you want to retain. The values you don't specify again are removed. For example, suppose that when you registered a Run Command task, you specified TaskInvocationParameters
values for Comment
, NotificationConfig
, and OutputS3BucketName
. If you update the maintenance window task and specify only a different OutputS3BucketName
value, the values for Comment
and NotificationConfig
are removed.
",
"UpdateManagedInstanceRole": "Changes the Identity and Access Management (IAM) role that is assigned to the on-premises server, edge device, or virtual machines (VM). IAM roles are first assigned to these hybrid nodes during the activation process. For more information, see CreateActivation.
",
- "UpdateOpsItem": "Edit or change an OpsItem. You must have permission in Identity and Access Management (IAM) to update an OpsItem. For more information, see Getting started with OpsCenter in the Amazon Web Services Systems Manager User Guide.
Operations engineers and IT professionals use Amazon Web Services Systems Manager OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their Amazon Web Services resources. For more information, see OpsCenter in the Amazon Web Services Systems Manager User Guide.
",
+ "UpdateOpsItem": "Edit or change an OpsItem. You must have permission in Identity and Access Management (IAM) to update an OpsItem. For more information, see Set up OpsCenter in the Amazon Web Services Systems Manager User Guide.
Operations engineers and IT professionals use Amazon Web Services Systems Manager OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their Amazon Web Services resources. For more information, see OpsCenter in the Amazon Web Services Systems Manager User Guide.
",
"UpdateOpsMetadata": "Amazon Web Services Systems Manager calls this API operation when you edit OpsMetadata in Application Manager.
",
"UpdatePatchBaseline": "Modifies an existing patch baseline. Fields not specified in the request are left unchanged.
For information about valid key-value pairs in PatchFilters
for each supported operating system type, see PatchFilter.
",
"UpdateResourceDataSync": "Update a resource data sync. After you create a resource data sync for a Region, you can't change the account options for that sync. For example, if you create a sync in the us-east-2 (Ohio) Region and you choose the Include only the current account
option, you can't edit that sync later and choose the Include all accounts from my Organizations configuration
option. Instead, you must delete the first resource data sync, and create a new one.
This API operation only supports a resource data sync that was created with a SyncFromSource SyncType
.
",
@@ -3049,7 +3049,7 @@
"refs": {
"Activation$IamRole": "The Identity and Access Management (IAM) role to assign to the managed node.
",
"CreateActivationRequest$IamRole": "The name of the Identity and Access Management (IAM) role that you want to assign to the managed node. This IAM role must provide AssumeRole permissions for the Amazon Web Services Systems Manager service principal ssm.amazonaws.com
. For more information, see Create an IAM service role for a hybrid environment in the Amazon Web Services Systems Manager User Guide.
You can't specify an IAM service-linked role for this parameter. You must create a unique role.
",
- "InstanceInformation$IamRole": "The Identity and Access Management (IAM) role assigned to the on-premises Systems Manager managed node. This call doesn't return the IAM role for Amazon Elastic Compute Cloud (Amazon EC2) instances. To retrieve the IAM role for an EC2 instance, use the Amazon EC2 DescribeInstances
operation. For information, see DescribeInstances in the Amazon EC2 API Reference or describe-instances in the Amazon Web Services CLI Command Reference.
",
+ "InstanceInformation$IamRole": "The Identity and Access Management (IAM) role assigned to the on-premises Systems Manager managed node. This call doesn't return the IAM role for Amazon Elastic Compute Cloud (Amazon EC2) instances. To retrieve the IAM role for an EC2 instance, use the Amazon EC2 DescribeInstances
operation. For information, see DescribeInstances in the Amazon EC2 API Reference or describe-instances in the Amazon Web Services CLI Command Reference.
",
"UpdateManagedInstanceRoleRequest$IamRole": "The name of the Identity and Access Management (IAM) role that you want to assign to the managed node. This IAM role must provide AssumeRole permissions for the Amazon Web Services Systems Manager service principal ssm.amazonaws.com
. For more information, see Create an IAM service role for a hybrid environment in the Amazon Web Services Systems Manager User Guide.
You can't specify an IAM service-linked role for this parameter. You must create a unique role.
"
}
},
@@ -3238,7 +3238,7 @@
"InstanceInformationStringFilterList": {
"base": null,
"refs": {
- "DescribeInstanceInformationRequest$Filters": "One or more filters. Use a filter to return a more specific list of managed nodes. You can filter based on tags applied to your managed nodes. Use this Filters
data type instead of InstanceInformationFilterList
, which is deprecated.
"
+ "DescribeInstanceInformationRequest$Filters": "One or more filters. Use a filter to return a more specific list of managed nodes. You can filter based on tags applied to your managed nodes. Tag filters can't be combined with other filter types. Use this Filters
data type instead of InstanceInformationFilterList
, which is deprecated.
"
}
},
"InstancePatchState": {
@@ -4781,7 +4781,7 @@
"MaxResultsEC2Compatible": {
"base": null,
"refs": {
- "DescribeInstanceInformationRequest$MaxResults": "The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.
"
+ "DescribeInstanceInformationRequest$MaxResults": "The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. The default value is 10 items.
"
}
},
"MaxSessionDuration": {
@@ -5148,7 +5148,7 @@
"OpsItemAccountId": {
"base": null,
"refs": {
- "CreateOpsItemRequest$AccountId": "The target Amazon Web Services account where you want to create an OpsItem. To make this call, your account must be configured to work with OpsItems across accounts. For more information, see Setting up OpsCenter to work with OpsItems across accounts in the Amazon Web Services Systems Manager User Guide.
"
+ "CreateOpsItemRequest$AccountId": "The target Amazon Web Services account where you want to create an OpsItem. To make this call, your account must be configured to work with OpsItems across accounts. For more information, see Set up OpsCenter in the Amazon Web Services Systems Manager User Guide.
"
}
},
"OpsItemAlreadyExistsException": {
@@ -5293,7 +5293,7 @@
"OpsItemFilters": {
"base": null,
"refs": {
- "DescribeOpsItemsRequest$OpsItemFilters": "One or more filters to limit the response.
-
Key: CreatedTime
Operations: GreaterThan, LessThan
-
Key: LastModifiedBy
Operations: Contains, Equals
-
Key: LastModifiedTime
Operations: GreaterThan, LessThan
-
Key: Priority
Operations: Equals
-
Key: Source
Operations: Contains, Equals
-
Key: Status
Operations: Equals
-
Key: Title*
Operations: Equals,Contains
-
Key: OperationalData**
Operations: Equals
-
Key: OperationalDataKey
Operations: Equals
-
Key: OperationalDataValue
Operations: Equals, Contains
-
Key: OpsItemId
Operations: Equals
-
Key: ResourceId
Operations: Contains
-
Key: AutomationId
Operations: Equals
*The Equals operator for Title matches the first 100 characters. If you specify more than 100 characters, they system returns an error that the filter value exceeds the length limit.
**If you filter the response by using the OperationalData operator, specify a key-value pair by using the following JSON format: {\"key\":\"key_name\",\"value\":\"a_value\"}
"
+ "DescribeOpsItemsRequest$OpsItemFilters": "One or more filters to limit the response.
-
Key: CreatedTime
Operations: GreaterThan, LessThan
-
Key: LastModifiedBy
Operations: Contains, Equals
-
Key: LastModifiedTime
Operations: GreaterThan, LessThan
-
Key: Priority
Operations: Equals
-
Key: Source
Operations: Contains, Equals
-
Key: Status
Operations: Equals
-
Key: Title*
Operations: Equals,Contains
-
Key: OperationalData**
Operations: Equals
-
Key: OperationalDataKey
Operations: Equals
-
Key: OperationalDataValue
Operations: Equals, Contains
-
Key: OpsItemId
Operations: Equals
-
Key: ResourceId
Operations: Contains
-
Key: AutomationId
Operations: Equals
-
Key: AccountId
Operations: Equals
*The Equals operator for Title matches the first 100 characters. If you specify more than 100 characters, they system returns an error that the filter value exceeds the length limit.
**If you filter the response by using the OperationalData operator, specify a key-value pair by using the following JSON format: {\"key\":\"key_name\",\"value\":\"a_value\"}
"
}
},
"OpsItemId": {
@@ -5324,7 +5324,7 @@
}
},
"OpsItemLimitExceededException": {
- "base": "The request caused OpsItems to exceed one or more quotas. For information about OpsItem quotas, see What are the resource limits for OpsCenter?.
",
+ "base": "The request caused OpsItems to exceed one or more quotas.
",
"refs": {
}
},
@@ -5356,10 +5356,10 @@
"OpsItemOperationalData": {
"base": null,
"refs": {
- "CreateOpsItemRequest$OperationalData": "Operational data is custom data that provides useful reference details about the OpsItem. For example, you can specify log files, error strings, license keys, troubleshooting tips, or other relevant data. You enter operational data as key-value pairs. The key has a maximum length of 128 characters. The value has a maximum size of 20 KB.
Operational data keys can't begin with the following: amazon
, aws
, amzn
, ssm
, /amazon
, /aws
, /amzn
, /ssm
.
You can choose to make the data searchable by other users in the account or you can restrict search access. Searchable data means that all users with access to the OpsItem Overview page (as provided by the DescribeOpsItems API operation) can view and search on the specified data. Operational data that isn't searchable is only viewable by users who have access to the OpsItem (as provided by the GetOpsItem API operation).
Use the /aws/resources
key in OperationalData to specify a related resource in the request. Use the /aws/automations
key in OperationalData to associate an Automation runbook with the OpsItem. To view Amazon Web Services CLI example commands that use these keys, see Creating OpsItems manually in the Amazon Web Services Systems Manager User Guide.
",
- "OpsItem$OperationalData": "Operational data is custom data that provides useful reference details about the OpsItem. For example, you can specify log files, error strings, license keys, troubleshooting tips, or other relevant data. You enter operational data as key-value pairs. The key has a maximum length of 128 characters. The value has a maximum size of 20 KB.
Operational data keys can't begin with the following: amazon
, aws
, amzn
, ssm
, /amazon
, /aws
, /amzn
, /ssm
.
You can choose to make the data searchable by other users in the account or you can restrict search access. Searchable data means that all users with access to the OpsItem Overview page (as provided by the DescribeOpsItems API operation) can view and search on the specified data. Operational data that isn't searchable is only viewable by users who have access to the OpsItem (as provided by the GetOpsItem API operation).
Use the /aws/resources
key in OperationalData to specify a related resource in the request. Use the /aws/automations
key in OperationalData to associate an Automation runbook with the OpsItem. To view Amazon Web Services CLI example commands that use these keys, see Creating OpsItems manually in the Amazon Web Services Systems Manager User Guide.
",
+ "CreateOpsItemRequest$OperationalData": "Operational data is custom data that provides useful reference details about the OpsItem. For example, you can specify log files, error strings, license keys, troubleshooting tips, or other relevant data. You enter operational data as key-value pairs. The key has a maximum length of 128 characters. The value has a maximum size of 20 KB.
Operational data keys can't begin with the following: amazon
, aws
, amzn
, ssm
, /amazon
, /aws
, /amzn
, /ssm
.
You can choose to make the data searchable by other users in the account or you can restrict search access. Searchable data means that all users with access to the OpsItem Overview page (as provided by the DescribeOpsItems API operation) can view and search on the specified data. Operational data that isn't searchable is only viewable by users who have access to the OpsItem (as provided by the GetOpsItem API operation).
Use the /aws/resources
key in OperationalData to specify a related resource in the request. Use the /aws/automations
key in OperationalData to associate an Automation runbook with the OpsItem. To view Amazon Web Services CLI example commands that use these keys, see Creating OpsItems manually in the Amazon Web Services Systems Manager User Guide.
",
+ "OpsItem$OperationalData": "Operational data is custom data that provides useful reference details about the OpsItem. For example, you can specify log files, error strings, license keys, troubleshooting tips, or other relevant data. You enter operational data as key-value pairs. The key has a maximum length of 128 characters. The value has a maximum size of 20 KB.
Operational data keys can't begin with the following: amazon
, aws
, amzn
, ssm
, /amazon
, /aws
, /amzn
, /ssm
.
You can choose to make the data searchable by other users in the account or you can restrict search access. Searchable data means that all users with access to the OpsItem Overview page (as provided by the DescribeOpsItems API operation) can view and search on the specified data. Operational data that isn't searchable is only viewable by users who have access to the OpsItem (as provided by the GetOpsItem API operation).
Use the /aws/resources
key in OperationalData to specify a related resource in the request. Use the /aws/automations
key in OperationalData to associate an Automation runbook with the OpsItem. To view Amazon Web Services CLI example commands that use these keys, see Creating OpsItems manually in the Amazon Web Services Systems Manager User Guide.
",
"OpsItemSummary$OperationalData": "Operational data is custom data that provides useful reference details about the OpsItem.
",
- "UpdateOpsItemRequest$OperationalData": "Add new keys or edit existing key-value pairs of the OperationalData map in the OpsItem object.
Operational data is custom data that provides useful reference details about the OpsItem. For example, you can specify log files, error strings, license keys, troubleshooting tips, or other relevant data. You enter operational data as key-value pairs. The key has a maximum length of 128 characters. The value has a maximum size of 20 KB.
Operational data keys can't begin with the following: amazon
, aws
, amzn
, ssm
, /amazon
, /aws
, /amzn
, /ssm
.
You can choose to make the data searchable by other users in the account or you can restrict search access. Searchable data means that all users with access to the OpsItem Overview page (as provided by the DescribeOpsItems API operation) can view and search on the specified data. Operational data that isn't searchable is only viewable by users who have access to the OpsItem (as provided by the GetOpsItem API operation).
Use the /aws/resources
key in OperationalData to specify a related resource in the request. Use the /aws/automations
key in OperationalData to associate an Automation runbook with the OpsItem. To view Amazon Web Services CLI example commands that use these keys, see Creating OpsItems manually in the Amazon Web Services Systems Manager User Guide.
"
+ "UpdateOpsItemRequest$OperationalData": "Add new keys or edit existing key-value pairs of the OperationalData map in the OpsItem object.
Operational data is custom data that provides useful reference details about the OpsItem. For example, you can specify log files, error strings, license keys, troubleshooting tips, or other relevant data. You enter operational data as key-value pairs. The key has a maximum length of 128 characters. The value has a maximum size of 20 KB.
Operational data keys can't begin with the following: amazon
, aws
, amzn
, ssm
, /amazon
, /aws
, /amzn
, /ssm
.
You can choose to make the data searchable by other users in the account or you can restrict search access. Searchable data means that all users with access to the OpsItem Overview page (as provided by the DescribeOpsItems API operation) can view and search on the specified data. Operational data that isn't searchable is only viewable by users who have access to the OpsItem (as provided by the GetOpsItem API operation).
Use the /aws/resources
key in OperationalData to specify a related resource in the request. Use the /aws/automations
key in OperationalData to associate an Automation runbook with the OpsItem. To view Amazon Web Services CLI example commands that use these keys, see Creating OpsItems manually in the Amazon Web Services Systems Manager User Guide.
"
}
},
"OpsItemOpsDataKeysList": {
@@ -5500,7 +5500,7 @@
"refs": {
"OpsItem$Status": "The OpsItem status. Status can be Open
, In Progress
, or Resolved
. For more information, see Editing OpsItem details in the Amazon Web Services Systems Manager User Guide.
",
"OpsItemSummary$Status": "The OpsItem status. Status can be Open
, In Progress
, or Resolved
.
",
- "UpdateOpsItemRequest$Status": "The OpsItem status. Status can be Open
, In Progress
, or Resolved
. For more information, see Editing OpsItem details in the Amazon Web Services Systems Manager User Guide.
"
+ "UpdateOpsItemRequest$Status": "The OpsItem status. Status can be Open
, In Progress
, or Resolved
. For more information, see Editing OpsItem details in the Amazon Web Services Systems Manager User Guide.
"
}
},
"OpsItemSummaries": {
@@ -7009,7 +7009,7 @@
"ResourceId": {
"base": null,
"refs": {
- "AddTagsToResourceRequest$ResourceId": "The resource ID you want to tag.
Use the ID of the resource. Here are some examples:
MaintenanceWindow
: mw-012345abcde
PatchBaseline
: pb-012345abcde
Automation
: example-c160-4567-8519-012345abcde
OpsMetadata
object: ResourceID
for tagging is created from the Amazon Resource Name (ARN) for the object. Specifically, ResourceID
is created from the strings that come after the word opsmetadata
in the ARN. For example, an OpsMetadata object with an ARN of arn:aws:ssm:us-east-2:1234567890:opsmetadata/aws/ssm/MyGroup/appmanager
has a ResourceID
of either aws/ssm/MyGroup/appmanager
or /aws/ssm/MyGroup/appmanager
.
For the Document
and Parameter
values, use the name of the resource.
ManagedInstance
: mi-012345abcde
The ManagedInstance
type for this API operation is only for on-premises managed nodes. You must specify the name of the managed node in the following format: mi-ID_number
. For example, mi-1a2b3c4d5e6f
.
",
+ "AddTagsToResourceRequest$ResourceId": "The resource ID you want to tag.
Use the ID of the resource. Here are some examples:
MaintenanceWindow
: mw-012345abcde
PatchBaseline
: pb-012345abcde
Automation
: example-c160-4567-8519-012345abcde
OpsMetadata
object: ResourceID
for tagging is created from the Amazon Resource Name (ARN) for the object. Specifically, ResourceID
is created from the strings that come after the word opsmetadata
in the ARN. For example, an OpsMetadata object with an ARN of arn:aws:ssm:us-east-2:1234567890:opsmetadata/aws/ssm/MyGroup/appmanager
has a ResourceID
of either aws/ssm/MyGroup/appmanager
or /aws/ssm/MyGroup/appmanager
.
For the Document
and Parameter
values, use the name of the resource. If you're tagging a shared document, you must use the full ARN of the document.
ManagedInstance
: mi-012345abcde
The ManagedInstance
type for this API operation is only for on-premises managed nodes. You must specify the name of the managed node in the following format: mi-ID_number
. For example, mi-1a2b3c4d5e6f
.
",
"ListTagsForResourceRequest$ResourceId": "The resource ID for which you want to see a list of tags.
",
"RemoveTagsFromResourceRequest$ResourceId": "The ID of the resource from which you want to remove tags. For example:
ManagedInstance: mi-012345abcde
MaintenanceWindow: mw-012345abcde
Automation
: example-c160-4567-8519-012345abcde
PatchBaseline: pb-012345abcde
OpsMetadata object: ResourceID
for tagging is created from the Amazon Resource Name (ARN) for the object. Specifically, ResourceID
is created from the strings that come after the word opsmetadata
in the ARN. For example, an OpsMetadata object with an ARN of arn:aws:ssm:us-east-2:1234567890:opsmetadata/aws/ssm/MyGroup/appmanager
has a ResourceID
of either aws/ssm/MyGroup/appmanager
or /aws/ssm/MyGroup/appmanager
.
For the Document and Parameter values, use the name of the resource.
The ManagedInstance
type for this API operation is only for on-premises managed nodes. Specify the name of the managed node in the following format: mi-ID_number. For example, mi-1a2b3c4d5e6f.
"
}
@@ -7672,7 +7672,7 @@
"IncompatiblePolicyException$message": null,
"InstanceInformation$PlatformName": "The name of the operating system platform running on your managed node.
",
"InstanceInformation$PlatformVersion": "The version of the OS platform running on your managed node.
",
- "InstanceInformation$Name": "The name assigned to an on-premises server, edge device, or virtual machine (VM) when it is activated as a Systems Manager managed node. The name is specified as the DefaultInstanceName
property using the CreateActivation command. It is applied to the managed node by specifying the Activation Code and Activation ID when you install SSM Agent on the node, as explained in Install SSM Agent for a hybrid environment (Linux) and Install SSM Agent for a hybrid environment (Windows). To retrieve the Name
tag of an EC2 instance, use the Amazon EC2 DescribeInstances
operation. For information, see DescribeInstances in the Amazon EC2 API Reference or describe-instances in the Amazon Web Services CLI Command Reference.
",
+ "InstanceInformation$Name": "The name assigned to an on-premises server, edge device, or virtual machine (VM) when it is activated as a Systems Manager managed node. The name is specified as the DefaultInstanceName
property using the CreateActivation command. It is applied to the managed node by specifying the Activation Code and Activation ID when you install SSM Agent on the node, as explained in Install SSM Agent for a hybrid environment (Linux) and Install SSM Agent for a hybrid environment (Windows). To retrieve the Name
tag of an EC2 instance, use the Amazon EC2 DescribeInstances
operation. For information, see DescribeInstances in the Amazon EC2 API Reference or describe-instances in the Amazon Web Services CLI Command Reference.
",
"InternalServerError$Message": null,
"InvalidActivation$Message": null,
"InvalidActivationId$Message": null,
@@ -7849,7 +7849,7 @@
"CreateAssociationRequest$Tags": "Adds or overwrites one or more tags for a State Manager association. Tags are metadata that you can assign to your Amazon Web Services resources. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define.
",
"CreateDocumentRequest$Tags": "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 an SSM document to identify the types of targets or the environment where it will run. In this case, you could specify the following key-value pairs:
To add tags to an existing SSM document, use the AddTagsToResource operation.
",
"CreateMaintenanceWindowRequest$Tags": "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.
",
- "CreateOpsItemRequest$Tags": "Optional metadata that you assign to a resource. You can restrict access to OpsItems by using an inline IAM policy that specifies tags. For more information, see Getting started with OpsCenter in the Amazon Web Services Systems Manager User Guide.
Tags use a key-value pair. For example:
Key=Department,Value=Finance
To add tags to a new OpsItem, a user must have IAM permissions for both the ssm:CreateOpsItems
operation and the ssm:AddTagsToResource
operation. To add tags to an existing OpsItem, use the AddTagsToResource operation.
",
+ "CreateOpsItemRequest$Tags": "Optional metadata that you assign to a resource.
Tags use a key-value pair. For example:
Key=Department,Value=Finance
To add tags to a new OpsItem, a user must have IAM permissions for both the ssm:CreateOpsItems
operation and the ssm:AddTagsToResource
operation. To add tags to an existing OpsItem, use the AddTagsToResource operation.
",
"CreateOpsMetadataRequest$Tags": "Optional metadata that you assign to a resource. You can specify a maximum of five tags for an OpsMetadata object. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag an OpsMetadata object to identify an environment or target Amazon Web Services Region. In this case, you could specify the following key-value pairs:
-
Key=Environment,Value=Production
-
Key=Region,Value=us-east-2
",
"CreatePatchBaselineRequest$Tags": "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 patch baseline to identify the severity level of patches it specifies and the operating system family it applies to. In this case, you could specify the following key-value pairs:
To add tags to an existing patch baseline, use the AddTagsToResource operation.
",
"DocumentDescription$Tags": "The tags, or metadata, that have been applied to the document.
",
diff --git a/apis/ssm/2014-11-06/endpoint-tests-1.json b/apis/ssm/2014-11-06/endpoint-tests-1.json
index e8f36753017..4a35068991c 100644
--- a/apis/ssm/2014-11-06/endpoint-tests-1.json
+++ b/apis/ssm/2014-11-06/endpoint-tests-1.json
@@ -8,9 +8,9 @@
}
},
"params": {
+ "Region": "af-south-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "af-south-1"
+ "UseDualStack": false
}
},
{
@@ -21,9 +21,9 @@
}
},
"params": {
+ "Region": "ap-east-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "ap-east-1"
+ "UseDualStack": false
}
},
{
@@ -34,9 +34,9 @@
}
},
"params": {
+ "Region": "ap-northeast-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "ap-northeast-1"
+ "UseDualStack": false
}
},
{
@@ -47,9 +47,9 @@
}
},
"params": {
+ "Region": "ap-northeast-2",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "ap-northeast-2"
+ "UseDualStack": false
}
},
{
@@ -60,9 +60,9 @@
}
},
"params": {
+ "Region": "ap-northeast-3",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "ap-northeast-3"
+ "UseDualStack": false
}
},
{
@@ -73,9 +73,9 @@
}
},
"params": {
+ "Region": "ap-south-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "ap-south-1"
+ "UseDualStack": false
}
},
{
@@ -86,9 +86,9 @@
}
},
"params": {
+ "Region": "ap-southeast-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "ap-southeast-1"
+ "UseDualStack": false
}
},
{
@@ -99,9 +99,9 @@
}
},
"params": {
+ "Region": "ap-southeast-2",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "ap-southeast-2"
+ "UseDualStack": false
}
},
{
@@ -112,9 +112,9 @@
}
},
"params": {
+ "Region": "ap-southeast-3",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "ap-southeast-3"
+ "UseDualStack": false
}
},
{
@@ -125,9 +125,9 @@
}
},
"params": {
+ "Region": "ca-central-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "ca-central-1"
+ "UseDualStack": false
}
},
{
@@ -138,9 +138,9 @@
}
},
"params": {
+ "Region": "ca-central-1",
"UseFIPS": true,
- "UseDualStack": false,
- "Region": "ca-central-1"
+ "UseDualStack": false
}
},
{
@@ -151,9 +151,9 @@
}
},
"params": {
+ "Region": "eu-central-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "eu-central-1"
+ "UseDualStack": false
}
},
{
@@ -164,9 +164,9 @@
}
},
"params": {
+ "Region": "eu-north-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "eu-north-1"
+ "UseDualStack": false
}
},
{
@@ -177,9 +177,9 @@
}
},
"params": {
+ "Region": "eu-south-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "eu-south-1"
+ "UseDualStack": false
}
},
{
@@ -190,9 +190,9 @@
}
},
"params": {
+ "Region": "eu-west-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "eu-west-1"
+ "UseDualStack": false
}
},
{
@@ -203,9 +203,9 @@
}
},
"params": {
+ "Region": "eu-west-2",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "eu-west-2"
+ "UseDualStack": false
}
},
{
@@ -216,9 +216,9 @@
}
},
"params": {
+ "Region": "eu-west-3",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "eu-west-3"
+ "UseDualStack": false
}
},
{
@@ -229,9 +229,9 @@
}
},
"params": {
+ "Region": "me-south-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "me-south-1"
+ "UseDualStack": false
}
},
{
@@ -242,9 +242,9 @@
}
},
"params": {
+ "Region": "sa-east-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "sa-east-1"
+ "UseDualStack": false
}
},
{
@@ -255,9 +255,9 @@
}
},
"params": {
+ "Region": "us-east-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "us-east-1"
+ "UseDualStack": false
}
},
{
@@ -268,9 +268,9 @@
}
},
"params": {
+ "Region": "us-east-1",
"UseFIPS": true,
- "UseDualStack": false,
- "Region": "us-east-1"
+ "UseDualStack": false
}
},
{
@@ -281,9 +281,9 @@
}
},
"params": {
+ "Region": "us-east-2",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "us-east-2"
+ "UseDualStack": false
}
},
{
@@ -294,9 +294,9 @@
}
},
"params": {
+ "Region": "us-east-2",
"UseFIPS": true,
- "UseDualStack": false,
- "Region": "us-east-2"
+ "UseDualStack": false
}
},
{
@@ -307,9 +307,9 @@
}
},
"params": {
+ "Region": "us-west-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "us-west-1"
+ "UseDualStack": false
}
},
{
@@ -320,9 +320,9 @@
}
},
"params": {
+ "Region": "us-west-1",
"UseFIPS": true,
- "UseDualStack": false,
- "Region": "us-west-1"
+ "UseDualStack": false
}
},
{
@@ -333,9 +333,9 @@
}
},
"params": {
+ "Region": "us-west-2",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "us-west-2"
+ "UseDualStack": false
}
},
{
@@ -346,9 +346,9 @@
}
},
"params": {
+ "Region": "us-west-2",
"UseFIPS": true,
- "UseDualStack": false,
- "Region": "us-west-2"
+ "UseDualStack": false
}
},
{
@@ -359,9 +359,9 @@
}
},
"params": {
+ "Region": "us-east-1",
"UseFIPS": true,
- "UseDualStack": true,
- "Region": "us-east-1"
+ "UseDualStack": true
}
},
{
@@ -372,9 +372,9 @@
}
},
"params": {
+ "Region": "us-east-1",
"UseFIPS": false,
- "UseDualStack": true,
- "Region": "us-east-1"
+ "UseDualStack": true
}
},
{
@@ -385,9 +385,9 @@
}
},
"params": {
+ "Region": "cn-north-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "cn-north-1"
+ "UseDualStack": false
}
},
{
@@ -398,9 +398,9 @@
}
},
"params": {
+ "Region": "cn-northwest-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "cn-northwest-1"
+ "UseDualStack": false
}
},
{
@@ -411,9 +411,9 @@
}
},
"params": {
+ "Region": "cn-north-1",
"UseFIPS": true,
- "UseDualStack": true,
- "Region": "cn-north-1"
+ "UseDualStack": true
}
},
{
@@ -424,9 +424,9 @@
}
},
"params": {
+ "Region": "cn-north-1",
"UseFIPS": true,
- "UseDualStack": false,
- "Region": "cn-north-1"
+ "UseDualStack": false
}
},
{
@@ -437,9 +437,9 @@
}
},
"params": {
+ "Region": "cn-north-1",
"UseFIPS": false,
- "UseDualStack": true,
- "Region": "cn-north-1"
+ "UseDualStack": true
}
},
{
@@ -450,9 +450,9 @@
}
},
"params": {
+ "Region": "us-gov-east-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "us-gov-east-1"
+ "UseDualStack": false
}
},
{
@@ -463,9 +463,9 @@
}
},
"params": {
+ "Region": "us-gov-east-1",
"UseFIPS": true,
- "UseDualStack": false,
- "Region": "us-gov-east-1"
+ "UseDualStack": false
}
},
{
@@ -476,9 +476,9 @@
}
},
"params": {
+ "Region": "us-gov-west-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "us-gov-west-1"
+ "UseDualStack": false
}
},
{
@@ -489,9 +489,9 @@
}
},
"params": {
+ "Region": "us-gov-west-1",
"UseFIPS": true,
- "UseDualStack": false,
- "Region": "us-gov-west-1"
+ "UseDualStack": false
}
},
{
@@ -502,9 +502,9 @@
}
},
"params": {
+ "Region": "us-gov-east-1",
"UseFIPS": true,
- "UseDualStack": true,
- "Region": "us-gov-east-1"
+ "UseDualStack": true
}
},
{
@@ -515,9 +515,9 @@
}
},
"params": {
+ "Region": "us-gov-east-1",
"UseFIPS": false,
- "UseDualStack": true,
- "Region": "us-gov-east-1"
+ "UseDualStack": true
}
},
{
@@ -528,9 +528,20 @@
}
},
"params": {
+ "Region": "us-iso-east-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "us-iso-east-1"
+ "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
}
},
{
@@ -541,9 +552,20 @@
}
},
"params": {
+ "Region": "us-iso-east-1",
"UseFIPS": true,
- "UseDualStack": false,
- "Region": "us-iso-east-1"
+ "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
}
},
{
@@ -554,9 +576,20 @@
}
},
"params": {
+ "Region": "us-isob-east-1",
"UseFIPS": false,
- "UseDualStack": false,
- "Region": "us-isob-east-1"
+ "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
}
},
{
@@ -567,9 +600,20 @@
}
},
"params": {
+ "Region": "us-isob-east-1",
"UseFIPS": true,
- "UseDualStack": false,
- "Region": "us-isob-east-1"
+ "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
}
},
{
@@ -580,9 +624,9 @@
}
},
"params": {
+ "Region": "us-east-1",
"UseFIPS": false,
"UseDualStack": false,
- "Region": "us-east-1",
"Endpoint": "https://example.com"
}
},
@@ -605,9 +649,9 @@
"error": "Invalid Configuration: FIPS and custom endpoint are not supported"
},
"params": {
+ "Region": "us-east-1",
"UseFIPS": true,
"UseDualStack": false,
- "Region": "us-east-1",
"Endpoint": "https://example.com"
}
},
@@ -617,11 +661,17 @@
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported"
},
"params": {
+ "Region": "us-east-1",
"UseFIPS": false,
"UseDualStack": true,
- "Region": "us-east-1",
"Endpoint": "https://example.com"
}
+ },
+ {
+ "documentation": "Missing region",
+ "expect": {
+ "error": "Invalid Configuration: Missing Region"
+ }
}
],
"version": "1.0"
diff --git a/apis/verifiedpermissions/2021-12-01/docs-2.json b/apis/verifiedpermissions/2021-12-01/docs-2.json
index ce9a55484a6..9d52f3a2e6e 100644
--- a/apis/verifiedpermissions/2021-12-01/docs-2.json
+++ b/apis/verifiedpermissions/2021-12-01/docs-2.json
@@ -1,6 +1,6 @@
{
"version": "2.0",
- "service": "Amazon Verified Permissions is a permissions management service from Amazon Web Services. You can use Verified Permissions to manage permissions for your application, and authorize user access based on those permissions. Using Verified Permissions, application developers can grant access based on information about the users, resources, and requested actions. You can also evaluate additional information like group membership, attributes of the resources, and session context, such as time of request and IP addresses. Verified Permissions manages these permissions by letting you create and store authorization policies for your applications, such as consumer-facing web sites and enterprise business systems.
Verified Permissions uses Cedar as the policy language to express your permission requirements. Cedar supports both role-based access control (RBAC) and attribute-based access control (ABAC) authorization models.
For more information about configuring, administering, and using Amazon Verified Permissions in your applications, see the Amazon Verified Permissions User Guide.
For more information about the Cedar policy language, see the Cedar Policy Language Guide.
When you write Cedar policies that reference principals, resources and actions, you can define the unique identifiers used for each of those elements. We strongly recommend that you follow these best practices:
-
Use values like universally unique identifiers (UUIDs) for all principal and resource identifiers.
For example, if user jane
leaves the company, and you later let someone else use the name jane
, then that new user automatically gets access to everything granted by policies that still reference User::\"jane\"
. Cedar can’t distinguish between the new user and the old. This applies to both principal and resource identifiers. Always use identifiers that are guaranteed unique and never reused to ensure that you don’t unintentionally grant access because of the presence of an old identifier in a policy.
Where you use a UUID for an entity, we recommend that you follow it with the // comment specifier and the ‘friendly’ name of your entity. This helps to make your policies easier to understand. For example: principal == User::\"a1b2c3d4-e5f6-a1b2-c3d4-EXAMPLE11111\", // alice
-
Do not include personally identifying, confidential, or sensitive information as part of the unique identifier for your principals or resources. These identifiers are included in log entries shared in CloudTrail trails.
Several operations return structures that appear similar, but have different purposes. As new functionality is added to the product, the structure used in a parameter of one operation might need to change in a way that wouldn't make sense for the same parameter in a different operation. To help you understand the purpose of each, the following naming convention is used for the structures:
-
Parameter type structures that end in Detail
are used in Get
operations.
-
Parameter type structures that end in Item
are used in List
operations.
-
Parameter type structures that use neither suffix are used in the mutating (create and update) operations.
",
+ "service": "Amazon Verified Permissions is a permissions management service from Amazon Web Services. You can use Verified Permissions to manage permissions for your application, and authorize user access based on those permissions. Using Verified Permissions, application developers can grant access based on information about the users, resources, and requested actions. You can also evaluate additional information like group membership, attributes of the resources, and session context, such as time of request and IP addresses. Verified Permissions manages these permissions by letting you create and store authorization policies for your applications, such as consumer-facing web sites and enterprise business systems.
Verified Permissions uses Cedar as the policy language to express your permission requirements. Cedar supports both role-based access control (RBAC) and attribute-based access control (ABAC) authorization models.
For more information about configuring, administering, and using Amazon Verified Permissions in your applications, see the Amazon Verified Permissions User Guide.
For more information about the Cedar policy language, see the Cedar Policy Language Guide.
When you write Cedar policies that reference principals, resources and actions, you can define the unique identifiers used for each of those elements. We strongly recommend that you follow these best practices:
-
Use values like universally unique identifiers (UUIDs) for all principal and resource identifiers.
For example, if user jane
leaves the company, and you later let someone else use the name jane
, then that new user automatically gets access to everything granted by policies that still reference User::\"jane\"
. Cedar can’t distinguish between the new user and the old. This applies to both principal and resource identifiers. Always use identifiers that are guaranteed unique and never reused to ensure that you don’t unintentionally grant access because of the presence of an old identifier in a policy.
Where you use a UUID for an entity, we recommend that you follow it with the // comment specifier and the ‘friendly’ name of your entity. This helps to make your policies easier to understand. For example: principal == User::\"a1b2c3d4-e5f6-a1b2-c3d4-EXAMPLE11111\", // alice
-
Do not include personally identifying, confidential, or sensitive information as part of the unique identifier for your principals or resources. These identifiers are included in log entries shared in CloudTrail trails.
Several operations return structures that appear similar, but have different purposes. As new functionality is added to the product, the structure used in a parameter of one operation might need to change in a way that wouldn't make sense for the same parameter in a different operation. To help you understand the purpose of each, the following naming convention is used for the structures:
-
Parameter type structures that end in Detail
are used in Get
operations.
-
Parameter type structures that end in Item
are used in List
operations.
-
Parameter type structures that use neither suffix are used in the mutating (create and update) operations.
",
"operations": {
"CreateIdentitySource": "Creates a reference to an Amazon Cognito user pool as an external identity provider (IdP).
After you create an identity source, you can use the identities provided by the IdP as proxies for the principal in authorization queries that use the IsAuthorizedWithToken operation. These identities take the form of tokens that contain claims about the user, such as IDs, attributes and group memberships. Amazon Cognito provides both identity tokens and access tokens, and Verified Permissions can use either or both. Any combination of identity and access tokens results in the same Cedar principal. Verified Permissions automatically translates the information about the identities into the standard Cedar attributes that can be evaluated by your policies. Because the Amazon Cognito identity and access tokens can contain different information, the tokens you choose to use determine which principal attributes are available to access when evaluating Cedar policies.
If you delete a Amazon Cognito user pool or user, tokens from that deleted pool or that deleted user continue to be usable until they expire.
To reference a user from this identity source in your Cedar policies, use the following syntax.
IdentityType::\"<CognitoUserPoolIdentifier>|<CognitoClientId>
Where IdentityType
is the string that you provide to the PrincipalEntityType
parameter for this operation. The CognitoUserPoolId
and CognitoClientId
are defined by the Amazon Cognito user pool.
",
"CreatePolicy": "Creates a Cedar policy and saves it in the specified policy store. You can create either a static policy or a policy linked to a policy template.
-
To create a static policy, provide the Cedar policy text in the StaticPolicy
section of the PolicyDefinition
.
-
To create a policy that is dynamically linked to a policy template, specify the policy template ID and the principal and resource to associate with this policy in the templateLinked
section of the PolicyDefinition
. If the policy template is ever updated, any policies linked to the policy template automatically use the updated template.
Creating a policy causes it to be validated against the schema in the policy store. If the policy doesn't pass validation, the operation fails and the policy isn't stored.
",
@@ -70,7 +70,7 @@
"BooleanAttribute": {
"base": null,
"refs": {
- "AttributeValue$boolean": "An attribute value of Boolean type.
Example: {\"boolean\": true}
"
+ "AttributeValue$boolean": "An attribute value of Boolean type.
Example: {\"boolean\": true}
"
}
},
"ClientId": {
@@ -489,7 +489,7 @@
"LongAttribute": {
"base": null,
"refs": {
- "AttributeValue$long": "An attribute value of Long type.
Example: {\"long\": 0}
"
+ "AttributeValue$long": "An attribute value of Long type.
Example: {\"long\": 0}
"
}
},
"MaxResults": {
@@ -725,7 +725,7 @@
"RecordAttribute": {
"base": null,
"refs": {
- "AttributeValue$record": "An attribute value of Record type.
Example: {\"record\": { \"keyName\": {} } }
"
+ "AttributeValue$record": "An attribute value of Record type.
Example: {\"record\": { \"keyName\": {} } }
"
}
},
"ResourceArn": {
@@ -783,7 +783,7 @@
"SetAttribute": {
"base": null,
"refs": {
- "AttributeValue$set": "An attribute value of Set type.
Example: {\"set\": [ {} ] }
"
+ "AttributeValue$set": "An attribute value of Set type.
Example: {\"set\": [ {} ] }
"
}
},
"StaticPolicyDefinition": {
@@ -841,7 +841,7 @@
"StringAttribute": {
"base": null,
"refs": {
- "AttributeValue$string": "An attribute value of String type.
Example: {\"string\": \"abc\"}
"
+ "AttributeValue$string": "An attribute value of String type.
Example: {\"string\": \"abc\"}
"
}
},
"TemplateLinkedPolicyDefinition": {
@@ -988,7 +988,7 @@
}
},
"ValidationException": {
- "base": "The request failed because one or more input parameters don't satisfy their constraint requirements. The output is provided as a list of fields and a reason for each field that isn't valid.
The possible reasons include the following:
-
UnrecognizedEntityType
The policy includes an entity type that isn't found in the schema.
-
UnrecognizedActionId
The policy includes an action id that isn't found in the schema.
-
InvalidActionApplication
The policy includes an action that, according to the schema, doesn't support the specified principal and resource.
-
UnexpectedType
The policy included an operand that isn't a valid type for the specified operation.
-
IncompatibleTypes
The types of elements included in a set
, or the types of expressions used in an if...then...else
clause aren't compatible in this context.
-
MissingAttribute
The policy attempts to access a record or entity attribute that isn't specified in the schema. Test for the existence of the attribute first before attempting to access its value. For more information, see the has (presence of attribute test) operator in the Cedar Policy Language Guide.
-
UnsafeOptionalAttributeAccess
The policy attempts to access a record or entity attribute that is optional and isn't guaranteed to be present. Test for the existence of the attribute first before attempting to access its value. For more information, see the has (presence of attribute test) operator in the Cedar Policy Language Guide.
-
ImpossiblePolicy
Cedar has determined that a policy condition always evaluates to false. If the policy is always false, it can never apply to any query, and so it can never affect an authorization decision.
-
WrongNumberArguments
The policy references an extension type with the wrong number of arguments.
-
FunctionArgumentValidationError
Cedar couldn't parse the argument passed to an extension type. For example, a string that is to be parsed as an IPv4 address can contain only digits and the period character.
",
+ "base": "The request failed because one or more input parameters don't satisfy their constraint requirements. The output is provided as a list of fields and a reason for each field that isn't valid.
The possible reasons include the following:
-
UnrecognizedEntityType
The policy includes an entity type that isn't found in the schema.
-
UnrecognizedActionId
The policy includes an action id that isn't found in the schema.
-
InvalidActionApplication
The policy includes an action that, according to the schema, doesn't support the specified principal and resource.
-
UnexpectedType
The policy included an operand that isn't a valid type for the specified operation.
-
IncompatibleTypes
The types of elements included in a set
, or the types of expressions used in an if...then...else
clause aren't compatible in this context.
-
MissingAttribute
The policy attempts to access a record or entity attribute that isn't specified in the schema. Test for the existence of the attribute first before attempting to access its value. For more information, see the has (presence of attribute test) operator in the Cedar Policy Language Guide.
-
UnsafeOptionalAttributeAccess
The policy attempts to access a record or entity attribute that is optional and isn't guaranteed to be present. Test for the existence of the attribute first before attempting to access its value. For more information, see the has (presence of attribute test) operator in the Cedar Policy Language Guide.
-
ImpossiblePolicy
Cedar has determined that a policy condition always evaluates to false. If the policy is always false, it can never apply to any query, and so it can never affect an authorization decision.
-
WrongNumberArguments
The policy references an extension type with the wrong number of arguments.
-
FunctionArgumentValidationError
Cedar couldn't parse the argument passed to an extension type. For example, a string that is to be parsed as an IPv4 address can contain only digits and the period character.
",
"refs": {
}
},
diff --git a/gems/aws-partitions/CHANGELOG.md b/gems/aws-partitions/CHANGELOG.md
index 77145b76a69..b5ba09bd70b 100644
--- a/gems/aws-partitions/CHANGELOG.md
+++ b/gems/aws-partitions/CHANGELOG.md
@@ -1,6 +1,11 @@
Unreleased Changes
------------------
+1.782.0 (2023-06-27)
+------------------
+
+* Feature - Added support for enumerating regions for `Aws::AppFabric`.
+
1.781.0 (2023-06-20)
------------------
diff --git a/gems/aws-partitions/VERSION b/gems/aws-partitions/VERSION
index 1134eddefed..5adb3228feb 100644
--- a/gems/aws-partitions/VERSION
+++ b/gems/aws-partitions/VERSION
@@ -1 +1 @@
-1.781.0
+1.782.0
diff --git a/gems/aws-partitions/lib/aws-partitions.rb b/gems/aws-partitions/lib/aws-partitions.rb
index e4367ffeb02..eb49529f866 100644
--- a/gems/aws-partitions/lib/aws-partitions.rb
+++ b/gems/aws-partitions/lib/aws-partitions.rb
@@ -258,6 +258,7 @@ def service_ids
'ApiGatewayV2' => 'apigateway',
'AppConfig' => 'appconfig',
'AppConfigData' => 'appconfigdata',
+ 'AppFabric' => 'appfabric',
'AppIntegrationsService' => 'app-integrations',
'AppMesh' => 'appmesh',
'AppRegistry' => 'servicecatalog-appregistry',
diff --git a/gems/aws-sdk-appfabric/CHANGELOG.md b/gems/aws-sdk-appfabric/CHANGELOG.md
new file mode 100644
index 00000000000..64a1fca4754
--- /dev/null
+++ b/gems/aws-sdk-appfabric/CHANGELOG.md
@@ -0,0 +1,8 @@
+Unreleased Changes
+------------------
+
+1.0.0 (2023-06-27)
+------------------
+
+* Feature - Initial release of `aws-sdk-appfabric`.
+
diff --git a/gems/aws-sdk-appfabric/LICENSE.txt b/gems/aws-sdk-appfabric/LICENSE.txt
new file mode 100644
index 00000000000..d6456956733
--- /dev/null
+++ b/gems/aws-sdk-appfabric/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/gems/aws-sdk-appfabric/VERSION b/gems/aws-sdk-appfabric/VERSION
new file mode 100644
index 00000000000..3eefcb9dd5b
--- /dev/null
+++ b/gems/aws-sdk-appfabric/VERSION
@@ -0,0 +1 @@
+1.0.0
diff --git a/gems/aws-sdk-appfabric/aws-sdk-appfabric.gemspec b/gems/aws-sdk-appfabric/aws-sdk-appfabric.gemspec
new file mode 100644
index 00000000000..7be8f4a331f
--- /dev/null
+++ b/gems/aws-sdk-appfabric/aws-sdk-appfabric.gemspec
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+Gem::Specification.new do |spec|
+
+ spec.name = 'aws-sdk-appfabric'
+ spec.version = File.read(File.expand_path('../VERSION', __FILE__)).strip
+ spec.summary = 'AWS SDK for Ruby - AppFabric'
+ spec.description = 'Official AWS Ruby gem for AppFabric. This gem is part of the AWS SDK for Ruby.'
+ spec.author = 'Amazon Web Services'
+ spec.homepage = 'https://github.com/aws/aws-sdk-ruby'
+ spec.license = 'Apache-2.0'
+ spec.email = ['aws-dr-rubygems@amazon.com']
+ spec.require_paths = ['lib']
+ spec.files = Dir["LICENSE.txt", "CHANGELOG.md", "VERSION", "lib/**/*.rb"]
+
+ spec.metadata = {
+ 'source_code_uri' => 'https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-appfabric',
+ 'changelog_uri' => 'https://github.com/aws/aws-sdk-ruby/tree/version-3/gems/aws-sdk-appfabric/CHANGELOG.md'
+ }
+
+ spec.add_dependency('aws-sdk-core', '~> 3', '>= 3.174.0')
+ spec.add_dependency('aws-sigv4', '~> 1.1')
+
+ spec.required_ruby_version = '>= 2.3'
+end
diff --git a/gems/aws-sdk-appfabric/features/env.rb b/gems/aws-sdk-appfabric/features/env.rb
new file mode 100644
index 00000000000..421012dc30a
--- /dev/null
+++ b/gems/aws-sdk-appfabric/features/env.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+$:.unshift(File.expand_path('../../lib', __FILE__))
+$:.unshift(File.expand_path('../../../aws-sdk-core/features', __FILE__))
+$:.unshift(File.expand_path('../../../aws-sdk-core/lib', __FILE__))
+$:.unshift(File.expand_path('../../../aws-sigv4/lib', __FILE__))
+
+require 'features_helper'
+require 'aws-sdk-appfabric'
+
+Aws::AppFabric::Client.add_plugin(ApiCallTracker)
diff --git a/gems/aws-sdk-appfabric/features/smoke.feature b/gems/aws-sdk-appfabric/features/smoke.feature
new file mode 100644
index 00000000000..948b7e5de69
--- /dev/null
+++ b/gems/aws-sdk-appfabric/features/smoke.feature
@@ -0,0 +1,11 @@
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+Feature: Smoke tests for AppFabric
+
+Background:
+ Given I create a client in region 'us-west-2'
diff --git a/gems/aws-sdk-appfabric/features/smoke_step_definitions.rb b/gems/aws-sdk-appfabric/features/smoke_step_definitions.rb
new file mode 100644
index 00000000000..8de7b11b39c
--- /dev/null
+++ b/gems/aws-sdk-appfabric/features/smoke_step_definitions.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+# Shared Smoke Test Definitions
+Given(/I create a client in region '(.*?)'/) do |region|
+ @regional_client = Aws::AppFabric::Client.new(region: region)
+end
+
+Given(/I create a client with endpoint '(.*?)'/) do |endpoint|
+ @regional_client = Aws::AppFabric::Client.new(endpoint: endpoint)
+end
+
+When(/I call the operation '(.*?)' with params:/) do |operation, params|
+ opts = JSON.parse(params, symbolize_names: true)
+ begin
+ @regional_client.send(operation.to_sym, opts)
+ @operation_raised_error = false
+ rescue StandardError
+ @operation_raised_error = true
+ end
+end
+
+Then(/I expect an error was raised/) do
+ expect(@operation_raised_error).to be_truthy
+end
+
+Then(/I expect an error was not raised/) do
+ expect(@operation_raised_error).not_to be_truthy
+end
diff --git a/gems/aws-sdk-appfabric/features/step_definitions.rb b/gems/aws-sdk-appfabric/features/step_definitions.rb
new file mode 100644
index 00000000000..da97bd5661c
--- /dev/null
+++ b/gems/aws-sdk-appfabric/features/step_definitions.rb
@@ -0,0 +1,8 @@
+Before("@appfabric") do
+ @service = Aws::AppFabric::Resource.new
+ @client = @service.client
+end
+
+After("@appfabric") do
+ # shared cleanup logic
+end
diff --git a/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric.rb b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric.rb
new file mode 100644
index 00000000000..64e7495f16e
--- /dev/null
+++ b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric.rb
@@ -0,0 +1,58 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+
+require 'aws-sdk-core'
+require 'aws-sigv4'
+
+require_relative 'aws-sdk-appfabric/types'
+require_relative 'aws-sdk-appfabric/client_api'
+require_relative 'aws-sdk-appfabric/plugins/endpoints.rb'
+require_relative 'aws-sdk-appfabric/client'
+require_relative 'aws-sdk-appfabric/errors'
+require_relative 'aws-sdk-appfabric/waiters'
+require_relative 'aws-sdk-appfabric/resource'
+require_relative 'aws-sdk-appfabric/endpoint_parameters'
+require_relative 'aws-sdk-appfabric/endpoint_provider'
+require_relative 'aws-sdk-appfabric/endpoints'
+require_relative 'aws-sdk-appfabric/customizations'
+
+# This module provides support for AppFabric. This module is available in the
+# `aws-sdk-appfabric` gem.
+#
+# # Client
+#
+# The {Client} class provides one method for each API operation. Operation
+# methods each accept a hash of request parameters and return a response
+# structure.
+#
+# app_fabric = Aws::AppFabric::Client.new
+# resp = app_fabric.batch_get_user_access_tasks(params)
+#
+# See {Client} for more information.
+#
+# # Errors
+#
+# Errors returned from AppFabric are defined in the
+# {Errors} module and all extend {Errors::ServiceError}.
+#
+# begin
+# # do stuff
+# rescue Aws::AppFabric::Errors::ServiceError
+# # rescues all AppFabric API errors
+# end
+#
+# See {Errors} for more information.
+#
+# @!group service
+module Aws::AppFabric
+
+ GEM_VERSION = '1.0.0'
+
+end
diff --git a/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/client.rb b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/client.rb
new file mode 100644
index 00000000000..bfce8350975
--- /dev/null
+++ b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/client.rb
@@ -0,0 +1,1753 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+require 'seahorse/client/plugins/content_length.rb'
+require 'aws-sdk-core/plugins/credentials_configuration.rb'
+require 'aws-sdk-core/plugins/logging.rb'
+require 'aws-sdk-core/plugins/param_converter.rb'
+require 'aws-sdk-core/plugins/param_validator.rb'
+require 'aws-sdk-core/plugins/user_agent.rb'
+require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
+require 'aws-sdk-core/plugins/retry_errors.rb'
+require 'aws-sdk-core/plugins/global_configuration.rb'
+require 'aws-sdk-core/plugins/regional_endpoint.rb'
+require 'aws-sdk-core/plugins/endpoint_discovery.rb'
+require 'aws-sdk-core/plugins/endpoint_pattern.rb'
+require 'aws-sdk-core/plugins/response_paging.rb'
+require 'aws-sdk-core/plugins/stub_responses.rb'
+require 'aws-sdk-core/plugins/idempotency_token.rb'
+require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
+require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
+require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
+require 'aws-sdk-core/plugins/transfer_encoding.rb'
+require 'aws-sdk-core/plugins/http_checksum.rb'
+require 'aws-sdk-core/plugins/checksum_algorithm.rb'
+require 'aws-sdk-core/plugins/defaults_mode.rb'
+require 'aws-sdk-core/plugins/recursion_detection.rb'
+require 'aws-sdk-core/plugins/sign.rb'
+require 'aws-sdk-core/plugins/protocols/rest_json.rb'
+
+Aws::Plugins::GlobalConfiguration.add_identifier(:appfabric)
+
+module Aws::AppFabric
+ # An API client for AppFabric. To construct a client, you need to configure a `:region` and `:credentials`.
+ #
+ # client = Aws::AppFabric::Client.new(
+ # region: region_name,
+ # credentials: credentials,
+ # # ...
+ # )
+ #
+ # For details on configuring region and credentials see
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
+ #
+ # See {#initialize} for a full list of supported configuration options.
+ class Client < Seahorse::Client::Base
+
+ include Aws::ClientStubs
+
+ @identifier = :appfabric
+
+ set_api(ClientApi::API)
+
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
+ add_plugin(Aws::Plugins::Logging)
+ add_plugin(Aws::Plugins::ParamConverter)
+ add_plugin(Aws::Plugins::ParamValidator)
+ add_plugin(Aws::Plugins::UserAgent)
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
+ add_plugin(Aws::Plugins::RetryErrors)
+ add_plugin(Aws::Plugins::GlobalConfiguration)
+ add_plugin(Aws::Plugins::RegionalEndpoint)
+ add_plugin(Aws::Plugins::EndpointDiscovery)
+ add_plugin(Aws::Plugins::EndpointPattern)
+ add_plugin(Aws::Plugins::ResponsePaging)
+ add_plugin(Aws::Plugins::StubResponses)
+ add_plugin(Aws::Plugins::IdempotencyToken)
+ add_plugin(Aws::Plugins::JsonvalueConverter)
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
+ add_plugin(Aws::Plugins::TransferEncoding)
+ add_plugin(Aws::Plugins::HttpChecksum)
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
+ add_plugin(Aws::Plugins::DefaultsMode)
+ add_plugin(Aws::Plugins::RecursionDetection)
+ add_plugin(Aws::Plugins::Sign)
+ add_plugin(Aws::Plugins::Protocols::RestJson)
+ add_plugin(Aws::AppFabric::Plugins::Endpoints)
+
+ # @overload initialize(options)
+ # @param [Hash] options
+ # @option options [required, Aws::CredentialProvider] :credentials
+ # Your AWS credentials. This can be an instance of any one of the
+ # following classes:
+ #
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
+ # credentials.
+ #
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
+ # shared file, such as `~/.aws/config`.
+ #
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
+ #
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
+ # assume a role after providing credentials via the web.
+ #
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
+ # access token generated from `aws login`.
+ #
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
+ # process that outputs to stdout.
+ #
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
+ # from an EC2 IMDS on an EC2 instance.
+ #
+ # * `Aws::ECSCredentials` - Used for loading credentials from
+ # instances running in ECS.
+ #
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
+ # from the Cognito Identity service.
+ #
+ # When `:credentials` are not configured directly, the following
+ # locations will be searched for credentials:
+ #
+ # * `Aws.config[:credentials]`
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
+ # * `~/.aws/credentials`
+ # * `~/.aws/config`
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
+ # are very aggressive. Construct and pass an instance of
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
+ # enable retries and extended timeouts. Instance profile credential
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
+ # to true.
+ #
+ # @option options [required, String] :region
+ # The AWS region to connect to. The configured `:region` is
+ # used to determine the service `:endpoint`. When not passed,
+ # a default `:region` is searched for in the following locations:
+ #
+ # * `Aws.config[:region]`
+ # * `ENV['AWS_REGION']`
+ # * `ENV['AMAZON_REGION']`
+ # * `ENV['AWS_DEFAULT_REGION']`
+ # * `~/.aws/credentials`
+ # * `~/.aws/config`
+ #
+ # @option options [String] :access_key_id
+ #
+ # @option options [Boolean] :active_endpoint_cache (false)
+ # When set to `true`, a thread polling for endpoints will be running in
+ # the background every 60 secs (default). Defaults to `false`.
+ #
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
+ # Used only in `adaptive` retry mode. When true, the request will sleep
+ # until there is sufficent client side capacity to retry the request.
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
+ # not retry instead of sleeping.
+ #
+ # @option options [Boolean] :client_side_monitoring (false)
+ # When `true`, client-side metrics will be collected for all API requests from
+ # this client.
+ #
+ # @option options [String] :client_side_monitoring_client_id ("")
+ # Allows you to provide an identifier for this client which will be attached to
+ # all generated client side metrics. Defaults to an empty string.
+ #
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
+ # side monitoring agent is running on, where client metrics will be published via UDP.
+ #
+ # @option options [Integer] :client_side_monitoring_port (31000)
+ # Required for publishing client metrics. The port that the client side monitoring
+ # agent is running on, where client metrics will be published via UDP.
+ #
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
+ # will use the Client Side Monitoring Agent Publisher.
+ #
+ # @option options [Boolean] :convert_params (true)
+ # When `true`, an attempt is made to coerce request parameters into
+ # the required types.
+ #
+ # @option options [Boolean] :correct_clock_skew (true)
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
+ # a clock skew correction and retry requests with skewed client clocks.
+ #
+ # @option options [String] :defaults_mode ("legacy")
+ # See {Aws::DefaultsModeConfiguration} for a list of the
+ # accepted modes and the configuration defaults that are included.
+ #
+ # @option options [Boolean] :disable_host_prefix_injection (false)
+ # Set to true to disable SDK automatically adding host prefix
+ # to default service endpoint when available.
+ #
+ # @option options [String] :endpoint
+ # The client endpoint is normally constructed from the `:region`
+ # option. You should only configure an `:endpoint` when connecting
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
+ #
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
+ # Used for the maximum size limit of the LRU cache storing endpoints data
+ # for endpoint discovery enabled operations. Defaults to 1000.
+ #
+ # @option options [Integer] :endpoint_cache_max_threads (10)
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
+ #
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
+ # Use this option to config the time interval in seconds for making
+ # requests fetching endpoints information. Defaults to 60 sec.
+ #
+ # @option options [Boolean] :endpoint_discovery (false)
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
+ #
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
+ # The log formatter.
+ #
+ # @option options [Symbol] :log_level (:info)
+ # The log level to send messages to the `:logger` at.
+ #
+ # @option options [Logger] :logger
+ # The Logger instance to send log messages to. If this option
+ # is not set, logging will be disabled.
+ #
+ # @option options [Integer] :max_attempts (3)
+ # An integer representing the maximum number attempts that will be made for
+ # a single request, including the initial attempt. For example,
+ # setting this value to 5 will result in a request being retried up to
+ # 4 times. Used in `standard` and `adaptive` retry modes.
+ #
+ # @option options [String] :profile ("default")
+ # Used when loading credentials from the shared credentials file
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
+ #
+ # @option options [Proc] :retry_backoff
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
+ # This option is only used in the `legacy` retry mode.
+ #
+ # @option options [Float] :retry_base_delay (0.3)
+ # The base delay in seconds used by the default backoff function. This option
+ # is only used in the `legacy` retry mode.
+ #
+ # @option options [Symbol] :retry_jitter (:none)
+ # A delay randomiser function used by the default backoff function.
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
+ # otherwise a Proc that takes and returns a number. This option is only used
+ # in the `legacy` retry mode.
+ #
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
+ #
+ # @option options [Integer] :retry_limit (3)
+ # The maximum number of times to retry failed requests. Only
+ # ~ 500 level server errors and certain ~ 400 level client errors
+ # are retried. Generally, these are throttling errors, data
+ # checksum errors, networking errors, timeout errors, auth errors,
+ # endpoint discovery, and errors from expired credentials.
+ # This option is only used in the `legacy` retry mode.
+ #
+ # @option options [Integer] :retry_max_delay (0)
+ # The maximum number of seconds to delay between retries (0 for no limit)
+ # used by the default backoff function. This option is only used in the
+ # `legacy` retry mode.
+ #
+ # @option options [String] :retry_mode ("legacy")
+ # Specifies which retry algorithm to use. Values are:
+ #
+ # * `legacy` - The pre-existing retry behavior. This is default value if
+ # no retry mode is provided.
+ #
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
+ # This includes support for retry quotas, which limit the number of
+ # unsuccessful retries a client can make.
+ #
+ # * `adaptive` - An experimental retry mode that includes all the
+ # functionality of `standard` mode along with automatic client side
+ # throttling. This is a provisional mode that may change behavior
+ # in the future.
+ #
+ #
+ # @option options [String] :sdk_ua_app_id
+ # A unique and opaque application ID that is appended to the
+ # User-Agent header as app/. It should have a
+ # maximum length of 50.
+ #
+ # @option options [String] :secret_access_key
+ #
+ # @option options [String] :session_token
+ #
+ # @option options [Boolean] :stub_responses (false)
+ # Causes the client to return stubbed responses. By default
+ # fake responses are generated and returned. You can specify
+ # the response data to return or errors to raise by calling
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
+ #
+ # ** Please note ** When response stubbing is enabled, no HTTP
+ # requests are made, and retries are disabled.
+ #
+ # @option options [Aws::TokenProvider] :token_provider
+ # A Bearer Token Provider. This can be an instance of any one of the
+ # following classes:
+ #
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
+ # tokens.
+ #
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
+ # access token generated from `aws login`.
+ #
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
+ # will be used to search for tokens configured for your profile in shared configuration files.
+ #
+ # @option options [Boolean] :use_dualstack_endpoint
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
+ # will be used if available.
+ #
+ # @option options [Boolean] :use_fips_endpoint
+ # When set to `true`, fips compatible endpoints will be used if available.
+ # When a `fips` region is used, the region is normalized and this config
+ # is set to `true`.
+ #
+ # @option options [Boolean] :validate_params (true)
+ # When `true`, request parameters are validated before
+ # sending the request.
+ #
+ # @option options [Aws::AppFabric::EndpointProvider] :endpoint_provider
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::AppFabric::EndpointParameters`
+ #
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
+ # requests through. Formatted like 'http://proxy.com:123'.
+ #
+ # @option options [Float] :http_open_timeout (15) The number of
+ # seconds to wait when opening a HTTP session before raising a
+ # `Timeout::Error`.
+ #
+ # @option options [Float] :http_read_timeout (60) The default
+ # number of seconds to wait for response data. This value can
+ # safely be set per-request on the session.
+ #
+ # @option options [Float] :http_idle_timeout (5) The number of
+ # seconds a connection is allowed to sit idle before it is
+ # considered stale. Stale connections are closed and removed
+ # from the pool before making a request.
+ #
+ # @option options [Float] :http_continue_timeout (1) The number of
+ # seconds to wait for a 100-continue response before sending the
+ # request body. This option has no effect unless the request has
+ # "Expect" header set to "100-continue". Defaults to `nil` which
+ # disables this behaviour. This value can safely be set per
+ # request on the session.
+ #
+ # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
+ # in seconds.
+ #
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
+ # HTTP debug output will be sent to the `:logger`.
+ #
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
+ # SSL peer certificates are verified when establishing a
+ # connection.
+ #
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
+ # certificate authority bundle file that should be used when
+ # verifying peer certificates. If you do not pass
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
+ # will be used if available.
+ #
+ # @option options [String] :ssl_ca_directory Full path of the
+ # directory that contains the unbundled SSL certificate
+ # authority files for verifying peer certificates. If you do
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
+ # system default will be used if available.
+ #
+ def initialize(*args)
+ super
+ end
+
+ # @!group API Operations
+
+ # Gets user access details in a batch request.
+ #
+ # This action polls data from the tasks that are kicked off by the
+ # `StartUserAccessTasks` action.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [required, Array] :task_id_list
+ # The tasks IDs to use for the request.
+ #
+ # @return [Types::BatchGetUserAccessTasksResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::BatchGetUserAccessTasksResponse#user_access_results_list #user_access_results_list} => Array<Types::UserAccessResultItem>
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.batch_get_user_access_tasks({
+ # app_bundle_identifier: "Identifier", # required
+ # task_id_list: ["UUID"], # required
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.user_access_results_list #=> Array
+ # resp.user_access_results_list[0].app #=> String
+ # resp.user_access_results_list[0].tenant_id #=> String
+ # resp.user_access_results_list[0].tenant_display_name #=> String
+ # resp.user_access_results_list[0].task_id #=> String
+ # resp.user_access_results_list[0].result_status #=> String, one of "IN_PROGRESS", "COMPLETED", "FAILED", "EXPIRED"
+ # resp.user_access_results_list[0].email #=> String
+ # resp.user_access_results_list[0].user_id #=> String
+ # resp.user_access_results_list[0].user_full_name #=> String
+ # resp.user_access_results_list[0].user_first_name #=> String
+ # resp.user_access_results_list[0].user_last_name #=> String
+ # resp.user_access_results_list[0].user_status #=> String
+ # resp.user_access_results_list[0].task_error.error_code #=> String
+ # resp.user_access_results_list[0].task_error.error_message #=> String
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/BatchGetUserAccessTasks AWS API Documentation
+ #
+ # @overload batch_get_user_access_tasks(params = {})
+ # @param [Hash] params ({})
+ def batch_get_user_access_tasks(params = {}, options = {})
+ req = build_request(:batch_get_user_access_tasks, params)
+ req.send_request(options)
+ end
+
+ # Establishes a connection between Amazon Web Services AppFabric and an
+ # application, which allows AppFabric to call the APIs of the
+ # application.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle that contains the app authorization to use for the
+ # request.
+ #
+ # @option params [required, String] :app_authorization_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app authorization to use for the request.
+ #
+ # @option params [Types::AuthRequest] :auth_request
+ # Contains OAuth2 authorization information.
+ #
+ # This is required if the app authorization for the request is
+ # configured with an OAuth2 (`oauth2`) authorization type.
+ #
+ # @return [Types::ConnectAppAuthorizationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::ConnectAppAuthorizationResponse#app_authorization_summary #app_authorization_summary} => Types::AppAuthorizationSummary
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.connect_app_authorization({
+ # app_bundle_identifier: "Identifier", # required
+ # app_authorization_identifier: "Identifier", # required
+ # auth_request: {
+ # redirect_uri: "RedirectUri", # required
+ # code: "SensitiveString2048", # required
+ # },
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.app_authorization_summary.app_authorization_arn #=> String
+ # resp.app_authorization_summary.app_bundle_arn #=> String
+ # resp.app_authorization_summary.app #=> String
+ # resp.app_authorization_summary.tenant.tenant_identifier #=> String
+ # resp.app_authorization_summary.tenant.tenant_display_name #=> String
+ # resp.app_authorization_summary.status #=> String, one of "PendingConnect", "Connected", "ConnectionValidationFailed", "TokenAutoRotationFailed"
+ # resp.app_authorization_summary.updated_at #=> Time
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ConnectAppAuthorization AWS API Documentation
+ #
+ # @overload connect_app_authorization(params = {})
+ # @param [Hash] params ({})
+ def connect_app_authorization(params = {}, options = {})
+ req = build_request(:connect_app_authorization, params)
+ req.send_request(options)
+ end
+
+ # Creates an app authorization within an app bundle, which allows
+ # AppFabric to connect to an application.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [required, String] :app
+ # The name of the application.
+ #
+ # Valid values are:
+ #
+ # * `SLACK`
+ #
+ # * `ASANA`
+ #
+ # * `JIRA`
+ #
+ # * `M365`
+ #
+ # * `M365AUDITLOGS`
+ #
+ # * `ZOOM`
+ #
+ # * `ZENDESK`
+ #
+ # * `OKTA`
+ #
+ # * `GOOGLE`
+ #
+ # * `DROPBOX`
+ #
+ # * `SMARTSHEET`
+ #
+ # * `CISCO`
+ #
+ # @option params [required, Types::Credential] :credential
+ # Contains credentials for the application, such as an API key or OAuth2
+ # client ID and secret.
+ #
+ # Specify credentials that match the authorization type for your
+ # request. For example, if the authorization type for your request is
+ # OAuth2 (`oauth2`), then you should provide only the OAuth2
+ # credentials.
+ #
+ # @option params [required, Types::Tenant] :tenant
+ # Contains information about an application tenant, such as the
+ # application display name and identifier.
+ #
+ # @option params [required, String] :auth_type
+ # The authorization type for the app authorization.
+ #
+ # @option params [String] :client_token
+ # Specifies a unique, case-sensitive identifier that you provide to
+ # ensure the idempotency of the request. This lets you safely retry the
+ # request without accidentally performing the same operation a second
+ # time. Passing the same value to a later call to an operation requires
+ # that you also pass the same value for all other parameters. We
+ # recommend that you use a [UUID type of value][1].
+ #
+ # If you don't provide this value, then Amazon Web Services generates a
+ # random one for you.
+ #
+ # If you retry the operation with the same `ClientToken`, but with
+ # different parameters, the retry fails with an
+ # `IdempotentParameterMismatch` error.
+ #
+ # **A suitable default value is auto-generated.** You should normally
+ # not need to pass this option.**
+ #
+ #
+ #
+ # [1]: https://wikipedia.org/wiki/Universally_unique_identifier
+ #
+ # @option params [Array] :tags
+ # A map of the key-value pairs of the tag or tags to assign to the
+ # resource.
+ #
+ # @return [Types::CreateAppAuthorizationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::CreateAppAuthorizationResponse#app_authorization #app_authorization} => Types::AppAuthorization
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.create_app_authorization({
+ # app_bundle_identifier: "Identifier", # required
+ # app: "String255", # required
+ # credential: { # required
+ # oauth2_credential: {
+ # client_id: "String2048", # required
+ # client_secret: "SensitiveString2048", # required
+ # },
+ # api_key_credential: {
+ # api_key: "SensitiveString2048", # required
+ # },
+ # },
+ # tenant: { # required
+ # tenant_identifier: "TenantIdentifier", # required
+ # tenant_display_name: "String2048", # required
+ # },
+ # auth_type: "oauth2", # required, accepts oauth2, apiKey
+ # client_token: "UUID",
+ # tags: [
+ # {
+ # key: "TagKey", # required
+ # value: "TagValue", # required
+ # },
+ # ],
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.app_authorization.app_authorization_arn #=> String
+ # resp.app_authorization.app_bundle_arn #=> String
+ # resp.app_authorization.app #=> String
+ # resp.app_authorization.tenant.tenant_identifier #=> String
+ # resp.app_authorization.tenant.tenant_display_name #=> String
+ # resp.app_authorization.auth_type #=> String, one of "oauth2", "apiKey"
+ # resp.app_authorization.status #=> String, one of "PendingConnect", "Connected", "ConnectionValidationFailed", "TokenAutoRotationFailed"
+ # resp.app_authorization.created_at #=> Time
+ # resp.app_authorization.updated_at #=> Time
+ # resp.app_authorization.persona #=> String, one of "admin", "endUser"
+ # resp.app_authorization.auth_url #=> String
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/CreateAppAuthorization AWS API Documentation
+ #
+ # @overload create_app_authorization(params = {})
+ # @param [Hash] params ({})
+ def create_app_authorization(params = {}, options = {})
+ req = build_request(:create_app_authorization, params)
+ req.send_request(options)
+ end
+
+ # Creates an app bundle to collect data from an application using
+ # AppFabric.
+ #
+ # @option params [String] :client_token
+ # Specifies a unique, case-sensitive identifier that you provide to
+ # ensure the idempotency of the request. This lets you safely retry the
+ # request without accidentally performing the same operation a second
+ # time. Passing the same value to a later call to an operation requires
+ # that you also pass the same value for all other parameters. We
+ # recommend that you use a [UUID type of value][1].
+ #
+ # If you don't provide this value, then Amazon Web Services generates a
+ # random one for you.
+ #
+ # If you retry the operation with the same `ClientToken`, but with
+ # different parameters, the retry fails with an
+ # `IdempotentParameterMismatch` error.
+ #
+ # **A suitable default value is auto-generated.** You should normally
+ # not need to pass this option.**
+ #
+ #
+ #
+ # [1]: https://wikipedia.org/wiki/Universally_unique_identifier
+ #
+ # @option params [String] :customer_managed_key_identifier
+ # The Amazon Resource Name (ARN) of the Key Management Service (KMS) key
+ # to use to encrypt the application data. If this is not specified, an
+ # Amazon Web Services owned key is used for encryption.
+ #
+ # @option params [Array] :tags
+ # A map of the key-value pairs of the tag or tags to assign to the
+ # resource.
+ #
+ # @return [Types::CreateAppBundleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::CreateAppBundleResponse#app_bundle #app_bundle} => Types::AppBundle
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.create_app_bundle({
+ # client_token: "UUID",
+ # customer_managed_key_identifier: "Identifier",
+ # tags: [
+ # {
+ # key: "TagKey", # required
+ # value: "TagValue", # required
+ # },
+ # ],
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.app_bundle.arn #=> String
+ # resp.app_bundle.customer_managed_key_arn #=> String
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/CreateAppBundle AWS API Documentation
+ #
+ # @overload create_app_bundle(params = {})
+ # @param [Hash] params ({})
+ def create_app_bundle(params = {}, options = {})
+ req = build_request(:create_app_bundle, params)
+ req.send_request(options)
+ end
+
+ # Creates a data ingestion for an application.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [required, String] :app
+ # The name of the application.
+ #
+ # Valid values are:
+ #
+ # * `SLACK`
+ #
+ # * `ASANA`
+ #
+ # * `JIRA`
+ #
+ # * `M365`
+ #
+ # * `M365AUDITLOGS`
+ #
+ # * `ZOOM`
+ #
+ # * `ZENDESK`
+ #
+ # * `OKTA`
+ #
+ # * `GOOGLE`
+ #
+ # * `DROPBOX`
+ #
+ # * `SMARTSHEET`
+ #
+ # * `CISCO`
+ #
+ # @option params [required, String] :tenant_id
+ # The ID of the application tenant.
+ #
+ # @option params [required, String] :ingestion_type
+ # The ingestion type.
+ #
+ # @option params [String] :client_token
+ # Specifies a unique, case-sensitive identifier that you provide to
+ # ensure the idempotency of the request. This lets you safely retry the
+ # request without accidentally performing the same operation a second
+ # time. Passing the same value to a later call to an operation requires
+ # that you also pass the same value for all other parameters. We
+ # recommend that you use a [UUID type of value][1].
+ #
+ # If you don't provide this value, then Amazon Web Services generates a
+ # random one for you.
+ #
+ # If you retry the operation with the same `ClientToken`, but with
+ # different parameters, the retry fails with an
+ # `IdempotentParameterMismatch` error.
+ #
+ # **A suitable default value is auto-generated.** You should normally
+ # not need to pass this option.**
+ #
+ #
+ #
+ # [1]: https://wikipedia.org/wiki/Universally_unique_identifier
+ #
+ # @option params [Array] :tags
+ # A map of the key-value pairs of the tag or tags to assign to the
+ # resource.
+ #
+ # @return [Types::CreateIngestionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::CreateIngestionResponse#ingestion #ingestion} => Types::Ingestion
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.create_ingestion({
+ # app_bundle_identifier: "Identifier", # required
+ # app: "String255", # required
+ # tenant_id: "TenantIdentifier", # required
+ # ingestion_type: "auditLog", # required, accepts auditLog
+ # client_token: "UUID",
+ # tags: [
+ # {
+ # key: "TagKey", # required
+ # value: "TagValue", # required
+ # },
+ # ],
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.ingestion.arn #=> String
+ # resp.ingestion.app_bundle_arn #=> String
+ # resp.ingestion.app #=> String
+ # resp.ingestion.tenant_id #=> String
+ # resp.ingestion.created_at #=> Time
+ # resp.ingestion.updated_at #=> Time
+ # resp.ingestion.state #=> String, one of "enabled", "disabled"
+ # resp.ingestion.ingestion_type #=> String, one of "auditLog"
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/CreateIngestion AWS API Documentation
+ #
+ # @overload create_ingestion(params = {})
+ # @param [Hash] params ({})
+ def create_ingestion(params = {}, options = {})
+ req = build_request(:create_ingestion, params)
+ req.send_request(options)
+ end
+
+ # Creates an ingestion destination, which specifies how an
+ # application's ingested data is processed by Amazon Web Services
+ # AppFabric and where it's delivered.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [required, String] :ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ #
+ # @option params [required, Types::ProcessingConfiguration] :processing_configuration
+ # Contains information about how ingested data is processed.
+ #
+ # @option params [required, Types::DestinationConfiguration] :destination_configuration
+ # Contains information about the destination of ingested data.
+ #
+ # @option params [String] :client_token
+ # Specifies a unique, case-sensitive identifier that you provide to
+ # ensure the idempotency of the request. This lets you safely retry the
+ # request without accidentally performing the same operation a second
+ # time. Passing the same value to a later call to an operation requires
+ # that you also pass the same value for all other parameters. We
+ # recommend that you use a [UUID type of value][1].
+ #
+ # If you don't provide this value, then Amazon Web Services generates a
+ # random one for you.
+ #
+ # If you retry the operation with the same `ClientToken`, but with
+ # different parameters, the retry fails with an
+ # `IdempotentParameterMismatch` error.
+ #
+ # **A suitable default value is auto-generated.** You should normally
+ # not need to pass this option.**
+ #
+ #
+ #
+ # [1]: https://wikipedia.org/wiki/Universally_unique_identifier
+ #
+ # @option params [Array] :tags
+ # A map of the key-value pairs of the tag or tags to assign to the
+ # resource.
+ #
+ # @return [Types::CreateIngestionDestinationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::CreateIngestionDestinationResponse#ingestion_destination #ingestion_destination} => Types::IngestionDestination
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.create_ingestion_destination({
+ # app_bundle_identifier: "Identifier", # required
+ # ingestion_identifier: "Identifier", # required
+ # processing_configuration: { # required
+ # audit_log: {
+ # schema: "ocsf", # required, accepts ocsf, raw
+ # format: "json", # required, accepts json, parquet
+ # },
+ # },
+ # destination_configuration: { # required
+ # audit_log: {
+ # destination: { # required
+ # s3_bucket: {
+ # bucket_name: "String63", # required
+ # prefix: "String120",
+ # },
+ # firehose_stream: {
+ # stream_name: "String64", # required
+ # },
+ # },
+ # },
+ # },
+ # client_token: "UUID",
+ # tags: [
+ # {
+ # key: "TagKey", # required
+ # value: "TagValue", # required
+ # },
+ # ],
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.ingestion_destination.arn #=> String
+ # resp.ingestion_destination.ingestion_arn #=> String
+ # resp.ingestion_destination.processing_configuration.audit_log.schema #=> String, one of "ocsf", "raw"
+ # resp.ingestion_destination.processing_configuration.audit_log.format #=> String, one of "json", "parquet"
+ # resp.ingestion_destination.destination_configuration.audit_log.destination.s3_bucket.bucket_name #=> String
+ # resp.ingestion_destination.destination_configuration.audit_log.destination.s3_bucket.prefix #=> String
+ # resp.ingestion_destination.destination_configuration.audit_log.destination.firehose_stream.stream_name #=> String
+ # resp.ingestion_destination.status #=> String, one of "Active", "Failed"
+ # resp.ingestion_destination.status_reason #=> String
+ # resp.ingestion_destination.created_at #=> Time
+ # resp.ingestion_destination.updated_at #=> Time
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/CreateIngestionDestination AWS API Documentation
+ #
+ # @overload create_ingestion_destination(params = {})
+ # @param [Hash] params ({})
+ def create_ingestion_destination(params = {}, options = {})
+ req = build_request(:create_ingestion_destination, params)
+ req.send_request(options)
+ end
+
+ # Deletes an app authorization. You must delete the associated ingestion
+ # before you can delete an app authorization.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [required, String] :app_authorization_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app authorization to use for the request.
+ #
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.delete_app_authorization({
+ # app_bundle_identifier: "Identifier", # required
+ # app_authorization_identifier: "Identifier", # required
+ # })
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/DeleteAppAuthorization AWS API Documentation
+ #
+ # @overload delete_app_authorization(params = {})
+ # @param [Hash] params ({})
+ def delete_app_authorization(params = {}, options = {})
+ req = build_request(:delete_app_authorization, params)
+ req.send_request(options)
+ end
+
+ # Deletes an app bundle. You must delete all associated app
+ # authorizations before you can delete an app bundle.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The ID or Amazon Resource Name (ARN) of the app bundle that needs to
+ # be deleted.
+ #
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.delete_app_bundle({
+ # app_bundle_identifier: "Identifier", # required
+ # })
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/DeleteAppBundle AWS API Documentation
+ #
+ # @overload delete_app_bundle(params = {})
+ # @param [Hash] params ({})
+ def delete_app_bundle(params = {}, options = {})
+ req = build_request(:delete_app_bundle, params)
+ req.send_request(options)
+ end
+
+ # Deletes an ingestion. You must stop (disable) the ingestion and you
+ # must delete all associated ingestion destinations before you can
+ # delete an app ingestion.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [required, String] :ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ #
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.delete_ingestion({
+ # app_bundle_identifier: "Identifier", # required
+ # ingestion_identifier: "Identifier", # required
+ # })
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/DeleteIngestion AWS API Documentation
+ #
+ # @overload delete_ingestion(params = {})
+ # @param [Hash] params ({})
+ def delete_ingestion(params = {}, options = {})
+ req = build_request(:delete_ingestion, params)
+ req.send_request(options)
+ end
+
+ # Deletes an ingestion destination.
+ #
+ # This deletes the association between an ingestion and it's
+ # destination. It doesn't delete previously ingested data or the
+ # storage destination, such as the Amazon S3 bucket where the data is
+ # delivered. If the ingestion destination is deleted while the
+ # associated ingestion is enabled, the ingestion will fail and is
+ # eventually disabled.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [required, String] :ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ #
+ # @option params [required, String] :ingestion_destination_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion destination to use for the request.
+ #
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.delete_ingestion_destination({
+ # app_bundle_identifier: "Identifier", # required
+ # ingestion_identifier: "Identifier", # required
+ # ingestion_destination_identifier: "Identifier", # required
+ # })
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/DeleteIngestionDestination AWS API Documentation
+ #
+ # @overload delete_ingestion_destination(params = {})
+ # @param [Hash] params ({})
+ def delete_ingestion_destination(params = {}, options = {})
+ req = build_request(:delete_ingestion_destination, params)
+ req.send_request(options)
+ end
+
+ # Returns information about an app authorization.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [required, String] :app_authorization_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app authorization to use for the request.
+ #
+ # @return [Types::GetAppAuthorizationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::GetAppAuthorizationResponse#app_authorization #app_authorization} => Types::AppAuthorization
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.get_app_authorization({
+ # app_bundle_identifier: "Identifier", # required
+ # app_authorization_identifier: "Identifier", # required
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.app_authorization.app_authorization_arn #=> String
+ # resp.app_authorization.app_bundle_arn #=> String
+ # resp.app_authorization.app #=> String
+ # resp.app_authorization.tenant.tenant_identifier #=> String
+ # resp.app_authorization.tenant.tenant_display_name #=> String
+ # resp.app_authorization.auth_type #=> String, one of "oauth2", "apiKey"
+ # resp.app_authorization.status #=> String, one of "PendingConnect", "Connected", "ConnectionValidationFailed", "TokenAutoRotationFailed"
+ # resp.app_authorization.created_at #=> Time
+ # resp.app_authorization.updated_at #=> Time
+ # resp.app_authorization.persona #=> String, one of "admin", "endUser"
+ # resp.app_authorization.auth_url #=> String
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/GetAppAuthorization AWS API Documentation
+ #
+ # @overload get_app_authorization(params = {})
+ # @param [Hash] params ({})
+ def get_app_authorization(params = {}, options = {})
+ req = build_request(:get_app_authorization, params)
+ req.send_request(options)
+ end
+
+ # Returns information about an app bundle.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @return [Types::GetAppBundleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::GetAppBundleResponse#app_bundle #app_bundle} => Types::AppBundle
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.get_app_bundle({
+ # app_bundle_identifier: "Identifier", # required
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.app_bundle.arn #=> String
+ # resp.app_bundle.customer_managed_key_arn #=> String
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/GetAppBundle AWS API Documentation
+ #
+ # @overload get_app_bundle(params = {})
+ # @param [Hash] params ({})
+ def get_app_bundle(params = {}, options = {})
+ req = build_request(:get_app_bundle, params)
+ req.send_request(options)
+ end
+
+ # Returns information about an ingestion.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [required, String] :ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ #
+ # @return [Types::GetIngestionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::GetIngestionResponse#ingestion #ingestion} => Types::Ingestion
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.get_ingestion({
+ # app_bundle_identifier: "Identifier", # required
+ # ingestion_identifier: "Identifier", # required
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.ingestion.arn #=> String
+ # resp.ingestion.app_bundle_arn #=> String
+ # resp.ingestion.app #=> String
+ # resp.ingestion.tenant_id #=> String
+ # resp.ingestion.created_at #=> Time
+ # resp.ingestion.updated_at #=> Time
+ # resp.ingestion.state #=> String, one of "enabled", "disabled"
+ # resp.ingestion.ingestion_type #=> String, one of "auditLog"
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/GetIngestion AWS API Documentation
+ #
+ # @overload get_ingestion(params = {})
+ # @param [Hash] params ({})
+ def get_ingestion(params = {}, options = {})
+ req = build_request(:get_ingestion, params)
+ req.send_request(options)
+ end
+
+ # Returns information about an ingestion destination.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [required, String] :ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ #
+ # @option params [required, String] :ingestion_destination_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion destination to use for the request.
+ #
+ # @return [Types::GetIngestionDestinationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::GetIngestionDestinationResponse#ingestion_destination #ingestion_destination} => Types::IngestionDestination
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.get_ingestion_destination({
+ # app_bundle_identifier: "Identifier", # required
+ # ingestion_identifier: "Identifier", # required
+ # ingestion_destination_identifier: "Identifier", # required
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.ingestion_destination.arn #=> String
+ # resp.ingestion_destination.ingestion_arn #=> String
+ # resp.ingestion_destination.processing_configuration.audit_log.schema #=> String, one of "ocsf", "raw"
+ # resp.ingestion_destination.processing_configuration.audit_log.format #=> String, one of "json", "parquet"
+ # resp.ingestion_destination.destination_configuration.audit_log.destination.s3_bucket.bucket_name #=> String
+ # resp.ingestion_destination.destination_configuration.audit_log.destination.s3_bucket.prefix #=> String
+ # resp.ingestion_destination.destination_configuration.audit_log.destination.firehose_stream.stream_name #=> String
+ # resp.ingestion_destination.status #=> String, one of "Active", "Failed"
+ # resp.ingestion_destination.status_reason #=> String
+ # resp.ingestion_destination.created_at #=> Time
+ # resp.ingestion_destination.updated_at #=> Time
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/GetIngestionDestination AWS API Documentation
+ #
+ # @overload get_ingestion_destination(params = {})
+ # @param [Hash] params ({})
+ def get_ingestion_destination(params = {}, options = {})
+ req = build_request(:get_ingestion_destination, params)
+ req.send_request(options)
+ end
+
+ # Returns a list of all app authorizations configured for an app bundle.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [Integer] :max_results
+ # The maximum number of results that are returned per call. You can use
+ # `nextToken` to obtain further pages of results.
+ #
+ # This is only an upper limit. The actual number of results returned per
+ # call might be fewer than the specified maximum.
+ #
+ # @option params [String] :next_token
+ # 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.
+ # Keep all other arguments unchanged. Each pagination token expires
+ # after 24 hours. Using an expired pagination token will return an *HTTP
+ # 400 InvalidToken error*.
+ #
+ # @return [Types::ListAppAuthorizationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::ListAppAuthorizationsResponse#app_authorization_summary_list #app_authorization_summary_list} => Array<Types::AppAuthorizationSummary>
+ # * {Types::ListAppAuthorizationsResponse#next_token #next_token} => String
+ #
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.list_app_authorizations({
+ # app_bundle_identifier: "Identifier", # required
+ # max_results: 1,
+ # next_token: "String2048",
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.app_authorization_summary_list #=> Array
+ # resp.app_authorization_summary_list[0].app_authorization_arn #=> String
+ # resp.app_authorization_summary_list[0].app_bundle_arn #=> String
+ # resp.app_authorization_summary_list[0].app #=> String
+ # resp.app_authorization_summary_list[0].tenant.tenant_identifier #=> String
+ # resp.app_authorization_summary_list[0].tenant.tenant_display_name #=> String
+ # resp.app_authorization_summary_list[0].status #=> String, one of "PendingConnect", "Connected", "ConnectionValidationFailed", "TokenAutoRotationFailed"
+ # resp.app_authorization_summary_list[0].updated_at #=> Time
+ # resp.next_token #=> String
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ListAppAuthorizations AWS API Documentation
+ #
+ # @overload list_app_authorizations(params = {})
+ # @param [Hash] params ({})
+ def list_app_authorizations(params = {}, options = {})
+ req = build_request(:list_app_authorizations, params)
+ req.send_request(options)
+ end
+
+ # Returns a list of app bundles.
+ #
+ # @option params [Integer] :max_results
+ # The maximum number of results that are returned per call. You can use
+ # `nextToken` to obtain further pages of results.
+ #
+ # This is only an upper limit. The actual number of results returned per
+ # call might be fewer than the specified maximum.
+ #
+ # @option params [String] :next_token
+ # 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.
+ # Keep all other arguments unchanged. Each pagination token expires
+ # after 24 hours. Using an expired pagination token will return an *HTTP
+ # 400 InvalidToken error*.
+ #
+ # @return [Types::ListAppBundlesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::ListAppBundlesResponse#app_bundle_summary_list #app_bundle_summary_list} => Array<Types::AppBundleSummary>
+ # * {Types::ListAppBundlesResponse#next_token #next_token} => String
+ #
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.list_app_bundles({
+ # max_results: 1,
+ # next_token: "String2048",
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.app_bundle_summary_list #=> Array
+ # resp.app_bundle_summary_list[0].arn #=> String
+ # resp.next_token #=> String
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ListAppBundles AWS API Documentation
+ #
+ # @overload list_app_bundles(params = {})
+ # @param [Hash] params ({})
+ def list_app_bundles(params = {}, options = {})
+ req = build_request(:list_app_bundles, params)
+ req.send_request(options)
+ end
+
+ # Returns a list of all ingestion destinations configured for an
+ # ingestion.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [required, String] :ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ #
+ # @option params [Integer] :max_results
+ # The maximum number of results that are returned per call. You can use
+ # `nextToken` to obtain further pages of results.
+ #
+ # This is only an upper limit. The actual number of results returned per
+ # call might be fewer than the specified maximum.
+ #
+ # @option params [String] :next_token
+ # 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.
+ # Keep all other arguments unchanged. Each pagination token expires
+ # after 24 hours. Using an expired pagination token will return an *HTTP
+ # 400 InvalidToken error*.
+ #
+ # @return [Types::ListIngestionDestinationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::ListIngestionDestinationsResponse#ingestion_destinations #ingestion_destinations} => Array<Types::IngestionDestinationSummary>
+ # * {Types::ListIngestionDestinationsResponse#next_token #next_token} => String
+ #
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.list_ingestion_destinations({
+ # app_bundle_identifier: "Identifier", # required
+ # ingestion_identifier: "Identifier", # required
+ # max_results: 1,
+ # next_token: "String",
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.ingestion_destinations #=> Array
+ # resp.ingestion_destinations[0].arn #=> String
+ # resp.next_token #=> String
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ListIngestionDestinations AWS API Documentation
+ #
+ # @overload list_ingestion_destinations(params = {})
+ # @param [Hash] params ({})
+ def list_ingestion_destinations(params = {}, options = {})
+ req = build_request(:list_ingestion_destinations, params)
+ req.send_request(options)
+ end
+
+ # Returns a list of all ingestions configured for an app bundle.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [Integer] :max_results
+ # The maximum number of results that are returned per call. You can use
+ # `nextToken` to obtain further pages of results.
+ #
+ # This is only an upper limit. The actual number of results returned per
+ # call might be fewer than the specified maximum.
+ #
+ # @option params [String] :next_token
+ # 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.
+ # Keep all other arguments unchanged. Each pagination token expires
+ # after 24 hours. Using an expired pagination token will return an *HTTP
+ # 400 InvalidToken error*.
+ #
+ # @return [Types::ListIngestionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::ListIngestionsResponse#ingestions #ingestions} => Array<Types::IngestionSummary>
+ # * {Types::ListIngestionsResponse#next_token #next_token} => String
+ #
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.list_ingestions({
+ # app_bundle_identifier: "Identifier", # required
+ # max_results: 1,
+ # next_token: "String",
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.ingestions #=> Array
+ # resp.ingestions[0].arn #=> String
+ # resp.ingestions[0].app #=> String
+ # resp.ingestions[0].tenant_id #=> String
+ # resp.ingestions[0].state #=> String, one of "enabled", "disabled"
+ # resp.next_token #=> String
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ListIngestions AWS API Documentation
+ #
+ # @overload list_ingestions(params = {})
+ # @param [Hash] params ({})
+ def list_ingestions(params = {}, options = {})
+ req = build_request(:list_ingestions, params)
+ req.send_request(options)
+ end
+
+ # Returns a list of tags for a resource.
+ #
+ # @option params [required, String] :resource_arn
+ # The Amazon Resource Name (ARN) of the resource for which you want to
+ # retrieve tags.
+ #
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Array<Types::Tag>
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.list_tags_for_resource({
+ # resource_arn: "Arn", # required
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.tags #=> Array
+ # resp.tags[0].key #=> String
+ # resp.tags[0].value #=> String
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ListTagsForResource AWS API Documentation
+ #
+ # @overload list_tags_for_resource(params = {})
+ # @param [Hash] params ({})
+ def list_tags_for_resource(params = {}, options = {})
+ req = build_request(:list_tags_for_resource, params)
+ req.send_request(options)
+ end
+
+ # Starts (enables) an ingestion, which collects data from an
+ # application.
+ #
+ # @option params [required, String] :ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.start_ingestion({
+ # ingestion_identifier: "Identifier", # required
+ # app_bundle_identifier: "Identifier", # required
+ # })
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/StartIngestion AWS API Documentation
+ #
+ # @overload start_ingestion(params = {})
+ # @param [Hash] params ({})
+ def start_ingestion(params = {}, options = {})
+ req = build_request(:start_ingestion, params)
+ req.send_request(options)
+ end
+
+ # Starts the tasks to search user access status for a specific email
+ # address.
+ #
+ # The tasks are stopped when the user access status data is found. The
+ # tasks are terminated when the API calls to the application time out.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [required, String] :email
+ # The email address of the target user.
+ #
+ # @return [Types::StartUserAccessTasksResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::StartUserAccessTasksResponse#user_access_tasks_list #user_access_tasks_list} => Array<Types::UserAccessTaskItem>
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.start_user_access_tasks({
+ # app_bundle_identifier: "Identifier", # required
+ # email: "Email", # required
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.user_access_tasks_list #=> Array
+ # resp.user_access_tasks_list[0].app #=> String
+ # resp.user_access_tasks_list[0].tenant_id #=> String
+ # resp.user_access_tasks_list[0].task_id #=> String
+ # resp.user_access_tasks_list[0].error.error_code #=> String
+ # resp.user_access_tasks_list[0].error.error_message #=> String
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/StartUserAccessTasks AWS API Documentation
+ #
+ # @overload start_user_access_tasks(params = {})
+ # @param [Hash] params ({})
+ def start_user_access_tasks(params = {}, options = {})
+ req = build_request(:start_user_access_tasks, params)
+ req.send_request(options)
+ end
+
+ # Stops (disables) an ingestion.
+ #
+ # @option params [required, String] :ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.stop_ingestion({
+ # ingestion_identifier: "Identifier", # required
+ # app_bundle_identifier: "Identifier", # required
+ # })
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/StopIngestion AWS API Documentation
+ #
+ # @overload stop_ingestion(params = {})
+ # @param [Hash] params ({})
+ def stop_ingestion(params = {}, options = {})
+ req = build_request(:stop_ingestion, params)
+ req.send_request(options)
+ end
+
+ # Assigns one or more tags (key-value pairs) to the specified resource.
+ #
+ # @option params [required, String] :resource_arn
+ # The Amazon Resource Name (ARN) of the resource that you want to tag.
+ #
+ # @option params [required, Array] :tags
+ # A map of the key-value pairs of the tag or tags to assign to the
+ # resource.
+ #
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.tag_resource({
+ # resource_arn: "Arn", # required
+ # tags: [ # required
+ # {
+ # key: "TagKey", # required
+ # value: "TagValue", # required
+ # },
+ # ],
+ # })
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/TagResource AWS API Documentation
+ #
+ # @overload tag_resource(params = {})
+ # @param [Hash] params ({})
+ def tag_resource(params = {}, options = {})
+ req = build_request(:tag_resource, params)
+ req.send_request(options)
+ end
+
+ # Removes a tag or tags from a resource.
+ #
+ # @option params [required, String] :resource_arn
+ # The Amazon Resource Name (ARN) of the resource that you want to untag.
+ #
+ # @option params [required, Array] :tag_keys
+ # The keys of the key-value pairs for the tag or tags you want to remove
+ # from the specified resource.
+ #
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.untag_resource({
+ # resource_arn: "Arn", # required
+ # tag_keys: ["TagKey"], # required
+ # })
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/UntagResource AWS API Documentation
+ #
+ # @overload untag_resource(params = {})
+ # @param [Hash] params ({})
+ def untag_resource(params = {}, options = {})
+ req = build_request(:untag_resource, params)
+ req.send_request(options)
+ end
+
+ # Updates an app authorization within an app bundle, which allows
+ # AppFabric to connect to an application.
+ #
+ # If the app authorization was in a `connected` state, updating the app
+ # authorization will set it back to a `PendingConnect` state.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [required, String] :app_authorization_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app authorization to use for the request.
+ #
+ # @option params [Types::Credential] :credential
+ # Contains credentials for the application, such as an API key or OAuth2
+ # client ID and secret.
+ #
+ # Specify credentials that match the authorization type of the app
+ # authorization to update. For example, if the authorization type of the
+ # app authorization is OAuth2 (`oauth2`), then you should provide only
+ # the OAuth2 credentials.
+ #
+ # @option params [Types::Tenant] :tenant
+ # Contains information about an application tenant, such as the
+ # application display name and identifier.
+ #
+ # @return [Types::UpdateAppAuthorizationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::UpdateAppAuthorizationResponse#app_authorization #app_authorization} => Types::AppAuthorization
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.update_app_authorization({
+ # app_bundle_identifier: "Identifier", # required
+ # app_authorization_identifier: "Identifier", # required
+ # credential: {
+ # oauth2_credential: {
+ # client_id: "String2048", # required
+ # client_secret: "SensitiveString2048", # required
+ # },
+ # api_key_credential: {
+ # api_key: "SensitiveString2048", # required
+ # },
+ # },
+ # tenant: {
+ # tenant_identifier: "TenantIdentifier", # required
+ # tenant_display_name: "String2048", # required
+ # },
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.app_authorization.app_authorization_arn #=> String
+ # resp.app_authorization.app_bundle_arn #=> String
+ # resp.app_authorization.app #=> String
+ # resp.app_authorization.tenant.tenant_identifier #=> String
+ # resp.app_authorization.tenant.tenant_display_name #=> String
+ # resp.app_authorization.auth_type #=> String, one of "oauth2", "apiKey"
+ # resp.app_authorization.status #=> String, one of "PendingConnect", "Connected", "ConnectionValidationFailed", "TokenAutoRotationFailed"
+ # resp.app_authorization.created_at #=> Time
+ # resp.app_authorization.updated_at #=> Time
+ # resp.app_authorization.persona #=> String, one of "admin", "endUser"
+ # resp.app_authorization.auth_url #=> String
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/UpdateAppAuthorization AWS API Documentation
+ #
+ # @overload update_app_authorization(params = {})
+ # @param [Hash] params ({})
+ def update_app_authorization(params = {}, options = {})
+ req = build_request(:update_app_authorization, params)
+ req.send_request(options)
+ end
+
+ # Updates an ingestion destination, which specifies how an
+ # application's ingested data is processed by Amazon Web Services
+ # AppFabric and where it's delivered.
+ #
+ # @option params [required, String] :app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ #
+ # @option params [required, String] :ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ #
+ # @option params [required, String] :ingestion_destination_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion destination to use for the request.
+ #
+ # @option params [required, Types::DestinationConfiguration] :destination_configuration
+ # Contains information about the destination of ingested data.
+ #
+ # @return [Types::UpdateIngestionDestinationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::UpdateIngestionDestinationResponse#ingestion_destination #ingestion_destination} => Types::IngestionDestination
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.update_ingestion_destination({
+ # app_bundle_identifier: "Identifier", # required
+ # ingestion_identifier: "Identifier", # required
+ # ingestion_destination_identifier: "Identifier", # required
+ # destination_configuration: { # required
+ # audit_log: {
+ # destination: { # required
+ # s3_bucket: {
+ # bucket_name: "String63", # required
+ # prefix: "String120",
+ # },
+ # firehose_stream: {
+ # stream_name: "String64", # required
+ # },
+ # },
+ # },
+ # },
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.ingestion_destination.arn #=> String
+ # resp.ingestion_destination.ingestion_arn #=> String
+ # resp.ingestion_destination.processing_configuration.audit_log.schema #=> String, one of "ocsf", "raw"
+ # resp.ingestion_destination.processing_configuration.audit_log.format #=> String, one of "json", "parquet"
+ # resp.ingestion_destination.destination_configuration.audit_log.destination.s3_bucket.bucket_name #=> String
+ # resp.ingestion_destination.destination_configuration.audit_log.destination.s3_bucket.prefix #=> String
+ # resp.ingestion_destination.destination_configuration.audit_log.destination.firehose_stream.stream_name #=> String
+ # resp.ingestion_destination.status #=> String, one of "Active", "Failed"
+ # resp.ingestion_destination.status_reason #=> String
+ # resp.ingestion_destination.created_at #=> Time
+ # resp.ingestion_destination.updated_at #=> Time
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/UpdateIngestionDestination AWS API Documentation
+ #
+ # @overload update_ingestion_destination(params = {})
+ # @param [Hash] params ({})
+ def update_ingestion_destination(params = {}, options = {})
+ req = build_request(:update_ingestion_destination, params)
+ req.send_request(options)
+ end
+
+ # @!endgroup
+
+ # @param params ({})
+ # @api private
+ def build_request(operation_name, params = {})
+ handlers = @handlers.for(operation_name)
+ context = Seahorse::Client::RequestContext.new(
+ operation_name: operation_name,
+ operation: config.api.operation(operation_name),
+ client: self,
+ params: params,
+ config: config)
+ context[:gem_name] = 'aws-sdk-appfabric'
+ context[:gem_version] = '1.0.0'
+ Seahorse::Client::Request.new(handlers, context)
+ end
+
+ # @api private
+ # @deprecated
+ def waiter_names
+ []
+ end
+
+ class << self
+
+ # @api private
+ attr_reader :identifier
+
+ # @api private
+ def errors_module
+ Errors
+ end
+
+ end
+ end
+end
diff --git a/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/client_api.rb b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/client_api.rb
new file mode 100644
index 00000000000..382c58e447b
--- /dev/null
+++ b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/client_api.rb
@@ -0,0 +1,929 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+module Aws::AppFabric
+ # @api private
+ module ClientApi
+
+ include Seahorse::Model
+
+ AccessDeniedException = Shapes::StructureShape.new(name: 'AccessDeniedException')
+ ApiKeyCredential = Shapes::StructureShape.new(name: 'ApiKeyCredential')
+ AppAuthorization = Shapes::StructureShape.new(name: 'AppAuthorization')
+ AppAuthorizationStatus = Shapes::StringShape.new(name: 'AppAuthorizationStatus')
+ AppAuthorizationSummary = Shapes::StructureShape.new(name: 'AppAuthorizationSummary')
+ AppAuthorizationSummaryList = Shapes::ListShape.new(name: 'AppAuthorizationSummaryList')
+ AppBundle = Shapes::StructureShape.new(name: 'AppBundle')
+ AppBundleSummary = Shapes::StructureShape.new(name: 'AppBundleSummary')
+ AppBundleSummaryList = Shapes::ListShape.new(name: 'AppBundleSummaryList')
+ Arn = Shapes::StringShape.new(name: 'Arn')
+ AuditLogDestinationConfiguration = Shapes::StructureShape.new(name: 'AuditLogDestinationConfiguration')
+ AuditLogProcessingConfiguration = Shapes::StructureShape.new(name: 'AuditLogProcessingConfiguration')
+ AuthRequest = Shapes::StructureShape.new(name: 'AuthRequest')
+ AuthType = Shapes::StringShape.new(name: 'AuthType')
+ BatchGetUserAccessTasksRequest = Shapes::StructureShape.new(name: 'BatchGetUserAccessTasksRequest')
+ BatchGetUserAccessTasksResponse = Shapes::StructureShape.new(name: 'BatchGetUserAccessTasksResponse')
+ ConflictException = Shapes::StructureShape.new(name: 'ConflictException')
+ ConnectAppAuthorizationRequest = Shapes::StructureShape.new(name: 'ConnectAppAuthorizationRequest')
+ ConnectAppAuthorizationResponse = Shapes::StructureShape.new(name: 'ConnectAppAuthorizationResponse')
+ CreateAppAuthorizationRequest = Shapes::StructureShape.new(name: 'CreateAppAuthorizationRequest')
+ CreateAppAuthorizationResponse = Shapes::StructureShape.new(name: 'CreateAppAuthorizationResponse')
+ CreateAppBundleRequest = Shapes::StructureShape.new(name: 'CreateAppBundleRequest')
+ CreateAppBundleResponse = Shapes::StructureShape.new(name: 'CreateAppBundleResponse')
+ CreateIngestionDestinationRequest = Shapes::StructureShape.new(name: 'CreateIngestionDestinationRequest')
+ CreateIngestionDestinationResponse = Shapes::StructureShape.new(name: 'CreateIngestionDestinationResponse')
+ CreateIngestionRequest = Shapes::StructureShape.new(name: 'CreateIngestionRequest')
+ CreateIngestionResponse = Shapes::StructureShape.new(name: 'CreateIngestionResponse')
+ Credential = Shapes::UnionShape.new(name: 'Credential')
+ DateTime = Shapes::TimestampShape.new(name: 'DateTime', timestampFormat: "iso8601")
+ DeleteAppAuthorizationRequest = Shapes::StructureShape.new(name: 'DeleteAppAuthorizationRequest')
+ DeleteAppAuthorizationResponse = Shapes::StructureShape.new(name: 'DeleteAppAuthorizationResponse')
+ DeleteAppBundleRequest = Shapes::StructureShape.new(name: 'DeleteAppBundleRequest')
+ DeleteAppBundleResponse = Shapes::StructureShape.new(name: 'DeleteAppBundleResponse')
+ DeleteIngestionDestinationRequest = Shapes::StructureShape.new(name: 'DeleteIngestionDestinationRequest')
+ DeleteIngestionDestinationResponse = Shapes::StructureShape.new(name: 'DeleteIngestionDestinationResponse')
+ DeleteIngestionRequest = Shapes::StructureShape.new(name: 'DeleteIngestionRequest')
+ DeleteIngestionResponse = Shapes::StructureShape.new(name: 'DeleteIngestionResponse')
+ Destination = Shapes::UnionShape.new(name: 'Destination')
+ DestinationConfiguration = Shapes::UnionShape.new(name: 'DestinationConfiguration')
+ Email = Shapes::StringShape.new(name: 'Email')
+ FirehoseStream = Shapes::StructureShape.new(name: 'FirehoseStream')
+ Format = Shapes::StringShape.new(name: 'Format')
+ GetAppAuthorizationRequest = Shapes::StructureShape.new(name: 'GetAppAuthorizationRequest')
+ GetAppAuthorizationResponse = Shapes::StructureShape.new(name: 'GetAppAuthorizationResponse')
+ GetAppBundleRequest = Shapes::StructureShape.new(name: 'GetAppBundleRequest')
+ GetAppBundleResponse = Shapes::StructureShape.new(name: 'GetAppBundleResponse')
+ GetIngestionDestinationRequest = Shapes::StructureShape.new(name: 'GetIngestionDestinationRequest')
+ GetIngestionDestinationResponse = Shapes::StructureShape.new(name: 'GetIngestionDestinationResponse')
+ GetIngestionRequest = Shapes::StructureShape.new(name: 'GetIngestionRequest')
+ GetIngestionResponse = Shapes::StructureShape.new(name: 'GetIngestionResponse')
+ Identifier = Shapes::StringShape.new(name: 'Identifier')
+ Ingestion = Shapes::StructureShape.new(name: 'Ingestion')
+ IngestionDestination = Shapes::StructureShape.new(name: 'IngestionDestination')
+ IngestionDestinationList = Shapes::ListShape.new(name: 'IngestionDestinationList')
+ IngestionDestinationStatus = Shapes::StringShape.new(name: 'IngestionDestinationStatus')
+ IngestionDestinationSummary = Shapes::StructureShape.new(name: 'IngestionDestinationSummary')
+ IngestionList = Shapes::ListShape.new(name: 'IngestionList')
+ IngestionState = Shapes::StringShape.new(name: 'IngestionState')
+ IngestionSummary = Shapes::StructureShape.new(name: 'IngestionSummary')
+ IngestionType = Shapes::StringShape.new(name: 'IngestionType')
+ Integer = Shapes::IntegerShape.new(name: 'Integer')
+ InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException')
+ ListAppAuthorizationsRequest = Shapes::StructureShape.new(name: 'ListAppAuthorizationsRequest')
+ ListAppAuthorizationsResponse = Shapes::StructureShape.new(name: 'ListAppAuthorizationsResponse')
+ ListAppBundlesRequest = Shapes::StructureShape.new(name: 'ListAppBundlesRequest')
+ ListAppBundlesResponse = Shapes::StructureShape.new(name: 'ListAppBundlesResponse')
+ ListIngestionDestinationsRequest = Shapes::StructureShape.new(name: 'ListIngestionDestinationsRequest')
+ ListIngestionDestinationsResponse = Shapes::StructureShape.new(name: 'ListIngestionDestinationsResponse')
+ ListIngestionsRequest = Shapes::StructureShape.new(name: 'ListIngestionsRequest')
+ ListIngestionsResponse = Shapes::StructureShape.new(name: 'ListIngestionsResponse')
+ ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
+ ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
+ MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
+ Oauth2Credential = Shapes::StructureShape.new(name: 'Oauth2Credential')
+ Persona = Shapes::StringShape.new(name: 'Persona')
+ ProcessingConfiguration = Shapes::UnionShape.new(name: 'ProcessingConfiguration')
+ RedirectUri = Shapes::StringShape.new(name: 'RedirectUri')
+ ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
+ ResultStatus = Shapes::StringShape.new(name: 'ResultStatus')
+ S3Bucket = Shapes::StructureShape.new(name: 'S3Bucket')
+ Schema = Shapes::StringShape.new(name: 'Schema')
+ SensitiveString2048 = Shapes::StringShape.new(name: 'SensitiveString2048')
+ ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException')
+ StartIngestionRequest = Shapes::StructureShape.new(name: 'StartIngestionRequest')
+ StartIngestionResponse = Shapes::StructureShape.new(name: 'StartIngestionResponse')
+ StartUserAccessTasksRequest = Shapes::StructureShape.new(name: 'StartUserAccessTasksRequest')
+ StartUserAccessTasksResponse = Shapes::StructureShape.new(name: 'StartUserAccessTasksResponse')
+ StopIngestionRequest = Shapes::StructureShape.new(name: 'StopIngestionRequest')
+ StopIngestionResponse = Shapes::StructureShape.new(name: 'StopIngestionResponse')
+ String = Shapes::StringShape.new(name: 'String')
+ String120 = Shapes::StringShape.new(name: 'String120')
+ String2048 = Shapes::StringShape.new(name: 'String2048')
+ String255 = Shapes::StringShape.new(name: 'String255')
+ String63 = Shapes::StringShape.new(name: 'String63')
+ String64 = Shapes::StringShape.new(name: 'String64')
+ Tag = Shapes::StructureShape.new(name: 'Tag')
+ TagKey = Shapes::StringShape.new(name: 'TagKey')
+ TagKeyList = Shapes::ListShape.new(name: 'TagKeyList')
+ TagList = Shapes::ListShape.new(name: 'TagList')
+ TagResourceRequest = Shapes::StructureShape.new(name: 'TagResourceRequest')
+ TagResourceResponse = Shapes::StructureShape.new(name: 'TagResourceResponse')
+ TagValue = Shapes::StringShape.new(name: 'TagValue')
+ TaskError = Shapes::StructureShape.new(name: 'TaskError')
+ TaskIdList = Shapes::ListShape.new(name: 'TaskIdList')
+ Tenant = Shapes::StructureShape.new(name: 'Tenant')
+ TenantIdentifier = Shapes::StringShape.new(name: 'TenantIdentifier')
+ ThrottlingException = Shapes::StructureShape.new(name: 'ThrottlingException')
+ UUID = Shapes::StringShape.new(name: 'UUID')
+ UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest')
+ UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse')
+ UpdateAppAuthorizationRequest = Shapes::StructureShape.new(name: 'UpdateAppAuthorizationRequest')
+ UpdateAppAuthorizationResponse = Shapes::StructureShape.new(name: 'UpdateAppAuthorizationResponse')
+ UpdateIngestionDestinationRequest = Shapes::StructureShape.new(name: 'UpdateIngestionDestinationRequest')
+ UpdateIngestionDestinationResponse = Shapes::StructureShape.new(name: 'UpdateIngestionDestinationResponse')
+ UserAccessResultItem = Shapes::StructureShape.new(name: 'UserAccessResultItem')
+ UserAccessResultsList = Shapes::ListShape.new(name: 'UserAccessResultsList')
+ UserAccessTaskItem = Shapes::StructureShape.new(name: 'UserAccessTaskItem')
+ UserAccessTasksList = Shapes::ListShape.new(name: 'UserAccessTasksList')
+ ValidationException = Shapes::StructureShape.new(name: 'ValidationException')
+ ValidationExceptionField = Shapes::StructureShape.new(name: 'ValidationExceptionField')
+ ValidationExceptionFieldList = Shapes::ListShape.new(name: 'ValidationExceptionFieldList')
+ ValidationExceptionReason = Shapes::StringShape.new(name: 'ValidationExceptionReason')
+
+ AccessDeniedException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message"))
+ AccessDeniedException.struct_class = Types::AccessDeniedException
+
+ ApiKeyCredential.add_member(:api_key, Shapes::ShapeRef.new(shape: SensitiveString2048, required: true, location_name: "apiKey"))
+ ApiKeyCredential.struct_class = Types::ApiKeyCredential
+
+ AppAuthorization.add_member(:app_authorization_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "appAuthorizationArn"))
+ AppAuthorization.add_member(:app_bundle_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "appBundleArn"))
+ AppAuthorization.add_member(:app, Shapes::ShapeRef.new(shape: String255, required: true, location_name: "app"))
+ AppAuthorization.add_member(:tenant, Shapes::ShapeRef.new(shape: Tenant, required: true, location_name: "tenant"))
+ AppAuthorization.add_member(:auth_type, Shapes::ShapeRef.new(shape: AuthType, required: true, location_name: "authType"))
+ AppAuthorization.add_member(:status, Shapes::ShapeRef.new(shape: AppAuthorizationStatus, required: true, location_name: "status"))
+ AppAuthorization.add_member(:created_at, Shapes::ShapeRef.new(shape: DateTime, required: true, location_name: "createdAt"))
+ AppAuthorization.add_member(:updated_at, Shapes::ShapeRef.new(shape: DateTime, required: true, location_name: "updatedAt"))
+ AppAuthorization.add_member(:persona, Shapes::ShapeRef.new(shape: Persona, location_name: "persona"))
+ AppAuthorization.add_member(:auth_url, Shapes::ShapeRef.new(shape: String, location_name: "authUrl"))
+ AppAuthorization.struct_class = Types::AppAuthorization
+
+ AppAuthorizationSummary.add_member(:app_authorization_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "appAuthorizationArn"))
+ AppAuthorizationSummary.add_member(:app_bundle_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "appBundleArn"))
+ AppAuthorizationSummary.add_member(:app, Shapes::ShapeRef.new(shape: String255, required: true, location_name: "app"))
+ AppAuthorizationSummary.add_member(:tenant, Shapes::ShapeRef.new(shape: Tenant, required: true, location_name: "tenant"))
+ AppAuthorizationSummary.add_member(:status, Shapes::ShapeRef.new(shape: AppAuthorizationStatus, required: true, location_name: "status"))
+ AppAuthorizationSummary.add_member(:updated_at, Shapes::ShapeRef.new(shape: DateTime, required: true, location_name: "updatedAt"))
+ AppAuthorizationSummary.struct_class = Types::AppAuthorizationSummary
+
+ AppAuthorizationSummaryList.member = Shapes::ShapeRef.new(shape: AppAuthorizationSummary)
+
+ AppBundle.add_member(:arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "arn"))
+ AppBundle.add_member(:customer_managed_key_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "customerManagedKeyArn"))
+ AppBundle.struct_class = Types::AppBundle
+
+ AppBundleSummary.add_member(:arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "arn"))
+ AppBundleSummary.struct_class = Types::AppBundleSummary
+
+ AppBundleSummaryList.member = Shapes::ShapeRef.new(shape: AppBundleSummary)
+
+ AuditLogDestinationConfiguration.add_member(:destination, Shapes::ShapeRef.new(shape: Destination, required: true, location_name: "destination"))
+ AuditLogDestinationConfiguration.struct_class = Types::AuditLogDestinationConfiguration
+
+ AuditLogProcessingConfiguration.add_member(:schema, Shapes::ShapeRef.new(shape: Schema, required: true, location_name: "schema"))
+ AuditLogProcessingConfiguration.add_member(:format, Shapes::ShapeRef.new(shape: Format, required: true, location_name: "format"))
+ AuditLogProcessingConfiguration.struct_class = Types::AuditLogProcessingConfiguration
+
+ AuthRequest.add_member(:redirect_uri, Shapes::ShapeRef.new(shape: RedirectUri, required: true, location_name: "redirectUri"))
+ AuthRequest.add_member(:code, Shapes::ShapeRef.new(shape: SensitiveString2048, required: true, location_name: "code"))
+ AuthRequest.struct_class = Types::AuthRequest
+
+ BatchGetUserAccessTasksRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location_name: "appBundleIdentifier"))
+ BatchGetUserAccessTasksRequest.add_member(:task_id_list, Shapes::ShapeRef.new(shape: TaskIdList, required: true, location_name: "taskIdList"))
+ BatchGetUserAccessTasksRequest.struct_class = Types::BatchGetUserAccessTasksRequest
+
+ BatchGetUserAccessTasksResponse.add_member(:user_access_results_list, Shapes::ShapeRef.new(shape: UserAccessResultsList, location_name: "userAccessResultsList"))
+ BatchGetUserAccessTasksResponse.struct_class = Types::BatchGetUserAccessTasksResponse
+
+ ConflictException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message"))
+ ConflictException.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceId"))
+ ConflictException.add_member(:resource_type, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceType"))
+ ConflictException.struct_class = Types::ConflictException
+
+ ConnectAppAuthorizationRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ ConnectAppAuthorizationRequest.add_member(:app_authorization_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appAuthorizationIdentifier"))
+ ConnectAppAuthorizationRequest.add_member(:auth_request, Shapes::ShapeRef.new(shape: AuthRequest, location_name: "authRequest"))
+ ConnectAppAuthorizationRequest.struct_class = Types::ConnectAppAuthorizationRequest
+
+ ConnectAppAuthorizationResponse.add_member(:app_authorization_summary, Shapes::ShapeRef.new(shape: AppAuthorizationSummary, required: true, location_name: "appAuthorizationSummary"))
+ ConnectAppAuthorizationResponse.struct_class = Types::ConnectAppAuthorizationResponse
+
+ CreateAppAuthorizationRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ CreateAppAuthorizationRequest.add_member(:app, Shapes::ShapeRef.new(shape: String255, required: true, location_name: "app"))
+ CreateAppAuthorizationRequest.add_member(:credential, Shapes::ShapeRef.new(shape: Credential, required: true, location_name: "credential"))
+ CreateAppAuthorizationRequest.add_member(:tenant, Shapes::ShapeRef.new(shape: Tenant, required: true, location_name: "tenant"))
+ CreateAppAuthorizationRequest.add_member(:auth_type, Shapes::ShapeRef.new(shape: AuthType, required: true, location_name: "authType"))
+ CreateAppAuthorizationRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: UUID, location_name: "clientToken", metadata: {"idempotencyToken"=>true}))
+ CreateAppAuthorizationRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
+ CreateAppAuthorizationRequest.struct_class = Types::CreateAppAuthorizationRequest
+
+ CreateAppAuthorizationResponse.add_member(:app_authorization, Shapes::ShapeRef.new(shape: AppAuthorization, required: true, location_name: "appAuthorization"))
+ CreateAppAuthorizationResponse.struct_class = Types::CreateAppAuthorizationResponse
+
+ CreateAppBundleRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: UUID, location_name: "clientToken", metadata: {"idempotencyToken"=>true}))
+ CreateAppBundleRequest.add_member(:customer_managed_key_identifier, Shapes::ShapeRef.new(shape: Identifier, location_name: "customerManagedKeyIdentifier"))
+ CreateAppBundleRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
+ CreateAppBundleRequest.struct_class = Types::CreateAppBundleRequest
+
+ CreateAppBundleResponse.add_member(:app_bundle, Shapes::ShapeRef.new(shape: AppBundle, required: true, location_name: "appBundle"))
+ CreateAppBundleResponse.struct_class = Types::CreateAppBundleResponse
+
+ CreateIngestionDestinationRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ CreateIngestionDestinationRequest.add_member(:ingestion_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "ingestionIdentifier"))
+ CreateIngestionDestinationRequest.add_member(:processing_configuration, Shapes::ShapeRef.new(shape: ProcessingConfiguration, required: true, location_name: "processingConfiguration"))
+ CreateIngestionDestinationRequest.add_member(:destination_configuration, Shapes::ShapeRef.new(shape: DestinationConfiguration, required: true, location_name: "destinationConfiguration"))
+ CreateIngestionDestinationRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: UUID, location_name: "clientToken", metadata: {"idempotencyToken"=>true}))
+ CreateIngestionDestinationRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
+ CreateIngestionDestinationRequest.struct_class = Types::CreateIngestionDestinationRequest
+
+ CreateIngestionDestinationResponse.add_member(:ingestion_destination, Shapes::ShapeRef.new(shape: IngestionDestination, required: true, location_name: "ingestionDestination"))
+ CreateIngestionDestinationResponse.struct_class = Types::CreateIngestionDestinationResponse
+
+ CreateIngestionRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ CreateIngestionRequest.add_member(:app, Shapes::ShapeRef.new(shape: String255, required: true, location_name: "app"))
+ CreateIngestionRequest.add_member(:tenant_id, Shapes::ShapeRef.new(shape: TenantIdentifier, required: true, location_name: "tenantId"))
+ CreateIngestionRequest.add_member(:ingestion_type, Shapes::ShapeRef.new(shape: IngestionType, required: true, location_name: "ingestionType"))
+ CreateIngestionRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: UUID, location_name: "clientToken", metadata: {"idempotencyToken"=>true}))
+ CreateIngestionRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
+ CreateIngestionRequest.struct_class = Types::CreateIngestionRequest
+
+ CreateIngestionResponse.add_member(:ingestion, Shapes::ShapeRef.new(shape: Ingestion, required: true, location_name: "ingestion"))
+ CreateIngestionResponse.struct_class = Types::CreateIngestionResponse
+
+ Credential.add_member(:oauth2_credential, Shapes::ShapeRef.new(shape: Oauth2Credential, location_name: "oauth2Credential"))
+ Credential.add_member(:api_key_credential, Shapes::ShapeRef.new(shape: ApiKeyCredential, location_name: "apiKeyCredential"))
+ Credential.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
+ Credential.add_member_subclass(:oauth2_credential, Types::Credential::Oauth2Credential)
+ Credential.add_member_subclass(:api_key_credential, Types::Credential::ApiKeyCredential)
+ Credential.add_member_subclass(:unknown, Types::Credential::Unknown)
+ Credential.struct_class = Types::Credential
+
+ DeleteAppAuthorizationRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ DeleteAppAuthorizationRequest.add_member(:app_authorization_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appAuthorizationIdentifier"))
+ DeleteAppAuthorizationRequest.struct_class = Types::DeleteAppAuthorizationRequest
+
+ DeleteAppAuthorizationResponse.struct_class = Types::DeleteAppAuthorizationResponse
+
+ DeleteAppBundleRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ DeleteAppBundleRequest.struct_class = Types::DeleteAppBundleRequest
+
+ DeleteAppBundleResponse.struct_class = Types::DeleteAppBundleResponse
+
+ DeleteIngestionDestinationRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ DeleteIngestionDestinationRequest.add_member(:ingestion_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "ingestionIdentifier"))
+ DeleteIngestionDestinationRequest.add_member(:ingestion_destination_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "ingestionDestinationIdentifier"))
+ DeleteIngestionDestinationRequest.struct_class = Types::DeleteIngestionDestinationRequest
+
+ DeleteIngestionDestinationResponse.struct_class = Types::DeleteIngestionDestinationResponse
+
+ DeleteIngestionRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ DeleteIngestionRequest.add_member(:ingestion_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "ingestionIdentifier"))
+ DeleteIngestionRequest.struct_class = Types::DeleteIngestionRequest
+
+ DeleteIngestionResponse.struct_class = Types::DeleteIngestionResponse
+
+ Destination.add_member(:s3_bucket, Shapes::ShapeRef.new(shape: S3Bucket, location_name: "s3Bucket"))
+ Destination.add_member(:firehose_stream, Shapes::ShapeRef.new(shape: FirehoseStream, location_name: "firehoseStream"))
+ Destination.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
+ Destination.add_member_subclass(:s3_bucket, Types::Destination::S3Bucket)
+ Destination.add_member_subclass(:firehose_stream, Types::Destination::FirehoseStream)
+ Destination.add_member_subclass(:unknown, Types::Destination::Unknown)
+ Destination.struct_class = Types::Destination
+
+ DestinationConfiguration.add_member(:audit_log, Shapes::ShapeRef.new(shape: AuditLogDestinationConfiguration, location_name: "auditLog"))
+ DestinationConfiguration.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
+ DestinationConfiguration.add_member_subclass(:audit_log, Types::DestinationConfiguration::AuditLog)
+ DestinationConfiguration.add_member_subclass(:unknown, Types::DestinationConfiguration::Unknown)
+ DestinationConfiguration.struct_class = Types::DestinationConfiguration
+
+ FirehoseStream.add_member(:stream_name, Shapes::ShapeRef.new(shape: String64, required: true, location_name: "streamName"))
+ FirehoseStream.struct_class = Types::FirehoseStream
+
+ GetAppAuthorizationRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ GetAppAuthorizationRequest.add_member(:app_authorization_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appAuthorizationIdentifier"))
+ GetAppAuthorizationRequest.struct_class = Types::GetAppAuthorizationRequest
+
+ GetAppAuthorizationResponse.add_member(:app_authorization, Shapes::ShapeRef.new(shape: AppAuthorization, required: true, location_name: "appAuthorization"))
+ GetAppAuthorizationResponse.struct_class = Types::GetAppAuthorizationResponse
+
+ GetAppBundleRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ GetAppBundleRequest.struct_class = Types::GetAppBundleRequest
+
+ GetAppBundleResponse.add_member(:app_bundle, Shapes::ShapeRef.new(shape: AppBundle, required: true, location_name: "appBundle"))
+ GetAppBundleResponse.struct_class = Types::GetAppBundleResponse
+
+ GetIngestionDestinationRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ GetIngestionDestinationRequest.add_member(:ingestion_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "ingestionIdentifier"))
+ GetIngestionDestinationRequest.add_member(:ingestion_destination_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "ingestionDestinationIdentifier"))
+ GetIngestionDestinationRequest.struct_class = Types::GetIngestionDestinationRequest
+
+ GetIngestionDestinationResponse.add_member(:ingestion_destination, Shapes::ShapeRef.new(shape: IngestionDestination, required: true, location_name: "ingestionDestination"))
+ GetIngestionDestinationResponse.struct_class = Types::GetIngestionDestinationResponse
+
+ GetIngestionRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ GetIngestionRequest.add_member(:ingestion_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "ingestionIdentifier"))
+ GetIngestionRequest.struct_class = Types::GetIngestionRequest
+
+ GetIngestionResponse.add_member(:ingestion, Shapes::ShapeRef.new(shape: Ingestion, required: true, location_name: "ingestion"))
+ GetIngestionResponse.struct_class = Types::GetIngestionResponse
+
+ Ingestion.add_member(:arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "arn"))
+ Ingestion.add_member(:app_bundle_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "appBundleArn"))
+ Ingestion.add_member(:app, Shapes::ShapeRef.new(shape: String255, required: true, location_name: "app"))
+ Ingestion.add_member(:tenant_id, Shapes::ShapeRef.new(shape: TenantIdentifier, required: true, location_name: "tenantId"))
+ Ingestion.add_member(:created_at, Shapes::ShapeRef.new(shape: DateTime, required: true, location_name: "createdAt"))
+ Ingestion.add_member(:updated_at, Shapes::ShapeRef.new(shape: DateTime, required: true, location_name: "updatedAt"))
+ Ingestion.add_member(:state, Shapes::ShapeRef.new(shape: IngestionState, required: true, location_name: "state"))
+ Ingestion.add_member(:ingestion_type, Shapes::ShapeRef.new(shape: IngestionType, required: true, location_name: "ingestionType"))
+ Ingestion.struct_class = Types::Ingestion
+
+ IngestionDestination.add_member(:arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "arn"))
+ IngestionDestination.add_member(:ingestion_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "ingestionArn"))
+ IngestionDestination.add_member(:processing_configuration, Shapes::ShapeRef.new(shape: ProcessingConfiguration, required: true, location_name: "processingConfiguration"))
+ IngestionDestination.add_member(:destination_configuration, Shapes::ShapeRef.new(shape: DestinationConfiguration, required: true, location_name: "destinationConfiguration"))
+ IngestionDestination.add_member(:status, Shapes::ShapeRef.new(shape: IngestionDestinationStatus, location_name: "status"))
+ IngestionDestination.add_member(:status_reason, Shapes::ShapeRef.new(shape: String, location_name: "statusReason"))
+ IngestionDestination.add_member(:created_at, Shapes::ShapeRef.new(shape: DateTime, location_name: "createdAt"))
+ IngestionDestination.add_member(:updated_at, Shapes::ShapeRef.new(shape: DateTime, location_name: "updatedAt"))
+ IngestionDestination.struct_class = Types::IngestionDestination
+
+ IngestionDestinationList.member = Shapes::ShapeRef.new(shape: IngestionDestinationSummary)
+
+ IngestionDestinationSummary.add_member(:arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "arn"))
+ IngestionDestinationSummary.struct_class = Types::IngestionDestinationSummary
+
+ IngestionList.member = Shapes::ShapeRef.new(shape: IngestionSummary)
+
+ IngestionSummary.add_member(:arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "arn"))
+ IngestionSummary.add_member(:app, Shapes::ShapeRef.new(shape: String255, required: true, location_name: "app"))
+ IngestionSummary.add_member(:tenant_id, Shapes::ShapeRef.new(shape: TenantIdentifier, required: true, location_name: "tenantId"))
+ IngestionSummary.add_member(:state, Shapes::ShapeRef.new(shape: IngestionState, required: true, location_name: "state"))
+ IngestionSummary.struct_class = Types::IngestionSummary
+
+ InternalServerException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message"))
+ InternalServerException.add_member(:retry_after_seconds, Shapes::ShapeRef.new(shape: Integer, location: "header", location_name: "Retry-After"))
+ InternalServerException.struct_class = Types::InternalServerException
+
+ ListAppAuthorizationsRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ ListAppAuthorizationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
+ ListAppAuthorizationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String2048, location: "querystring", location_name: "nextToken"))
+ ListAppAuthorizationsRequest.struct_class = Types::ListAppAuthorizationsRequest
+
+ ListAppAuthorizationsResponse.add_member(:app_authorization_summary_list, Shapes::ShapeRef.new(shape: AppAuthorizationSummaryList, required: true, location_name: "appAuthorizationSummaryList"))
+ ListAppAuthorizationsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: String2048, location_name: "nextToken"))
+ ListAppAuthorizationsResponse.struct_class = Types::ListAppAuthorizationsResponse
+
+ ListAppBundlesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
+ ListAppBundlesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String2048, location: "querystring", location_name: "nextToken"))
+ ListAppBundlesRequest.struct_class = Types::ListAppBundlesRequest
+
+ ListAppBundlesResponse.add_member(:app_bundle_summary_list, Shapes::ShapeRef.new(shape: AppBundleSummaryList, required: true, location_name: "appBundleSummaryList"))
+ ListAppBundlesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: String2048, location_name: "nextToken"))
+ ListAppBundlesResponse.struct_class = Types::ListAppBundlesResponse
+
+ ListIngestionDestinationsRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ ListIngestionDestinationsRequest.add_member(:ingestion_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "ingestionIdentifier"))
+ ListIngestionDestinationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
+ ListIngestionDestinationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location: "querystring", location_name: "nextToken"))
+ ListIngestionDestinationsRequest.struct_class = Types::ListIngestionDestinationsRequest
+
+ ListIngestionDestinationsResponse.add_member(:ingestion_destinations, Shapes::ShapeRef.new(shape: IngestionDestinationList, required: true, location_name: "ingestionDestinations"))
+ ListIngestionDestinationsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
+ ListIngestionDestinationsResponse.struct_class = Types::ListIngestionDestinationsResponse
+
+ ListIngestionsRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ ListIngestionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
+ ListIngestionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location: "querystring", location_name: "nextToken"))
+ ListIngestionsRequest.struct_class = Types::ListIngestionsRequest
+
+ ListIngestionsResponse.add_member(:ingestions, Shapes::ShapeRef.new(shape: IngestionList, required: true, location_name: "ingestions"))
+ ListIngestionsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
+ ListIngestionsResponse.struct_class = Types::ListIngestionsResponse
+
+ ListTagsForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location: "uri", location_name: "resourceArn"))
+ ListTagsForResourceRequest.struct_class = Types::ListTagsForResourceRequest
+
+ ListTagsForResourceResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
+ ListTagsForResourceResponse.struct_class = Types::ListTagsForResourceResponse
+
+ Oauth2Credential.add_member(:client_id, Shapes::ShapeRef.new(shape: String2048, required: true, location_name: "clientId"))
+ Oauth2Credential.add_member(:client_secret, Shapes::ShapeRef.new(shape: SensitiveString2048, required: true, location_name: "clientSecret"))
+ Oauth2Credential.struct_class = Types::Oauth2Credential
+
+ ProcessingConfiguration.add_member(:audit_log, Shapes::ShapeRef.new(shape: AuditLogProcessingConfiguration, location_name: "auditLog"))
+ ProcessingConfiguration.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
+ ProcessingConfiguration.add_member_subclass(:audit_log, Types::ProcessingConfiguration::AuditLog)
+ ProcessingConfiguration.add_member_subclass(:unknown, Types::ProcessingConfiguration::Unknown)
+ ProcessingConfiguration.struct_class = Types::ProcessingConfiguration
+
+ ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message"))
+ ResourceNotFoundException.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceId"))
+ ResourceNotFoundException.add_member(:resource_type, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceType"))
+ ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
+
+ S3Bucket.add_member(:bucket_name, Shapes::ShapeRef.new(shape: String63, required: true, location_name: "bucketName"))
+ S3Bucket.add_member(:prefix, Shapes::ShapeRef.new(shape: String120, location_name: "prefix"))
+ S3Bucket.struct_class = Types::S3Bucket
+
+ ServiceQuotaExceededException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message"))
+ ServiceQuotaExceededException.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceId"))
+ ServiceQuotaExceededException.add_member(:resource_type, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceType"))
+ ServiceQuotaExceededException.add_member(:service_code, Shapes::ShapeRef.new(shape: String, required: true, location_name: "serviceCode"))
+ ServiceQuotaExceededException.add_member(:quota_code, Shapes::ShapeRef.new(shape: String, required: true, location_name: "quotaCode"))
+ ServiceQuotaExceededException.struct_class = Types::ServiceQuotaExceededException
+
+ StartIngestionRequest.add_member(:ingestion_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "ingestionIdentifier"))
+ StartIngestionRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ StartIngestionRequest.struct_class = Types::StartIngestionRequest
+
+ StartIngestionResponse.struct_class = Types::StartIngestionResponse
+
+ StartUserAccessTasksRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location_name: "appBundleIdentifier"))
+ StartUserAccessTasksRequest.add_member(:email, Shapes::ShapeRef.new(shape: Email, required: true, location_name: "email"))
+ StartUserAccessTasksRequest.struct_class = Types::StartUserAccessTasksRequest
+
+ StartUserAccessTasksResponse.add_member(:user_access_tasks_list, Shapes::ShapeRef.new(shape: UserAccessTasksList, location_name: "userAccessTasksList"))
+ StartUserAccessTasksResponse.struct_class = Types::StartUserAccessTasksResponse
+
+ StopIngestionRequest.add_member(:ingestion_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "ingestionIdentifier"))
+ StopIngestionRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ StopIngestionRequest.struct_class = Types::StopIngestionRequest
+
+ StopIngestionResponse.struct_class = Types::StopIngestionResponse
+
+ Tag.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, required: true, location_name: "key"))
+ Tag.add_member(:value, Shapes::ShapeRef.new(shape: TagValue, required: true, location_name: "value"))
+ Tag.struct_class = Types::Tag
+
+ TagKeyList.member = Shapes::ShapeRef.new(shape: TagKey)
+
+ TagList.member = Shapes::ShapeRef.new(shape: Tag)
+
+ TagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location: "uri", location_name: "resourceArn"))
+ TagResourceRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, required: true, location_name: "tags"))
+ TagResourceRequest.struct_class = Types::TagResourceRequest
+
+ TagResourceResponse.struct_class = Types::TagResourceResponse
+
+ TaskError.add_member(:error_code, Shapes::ShapeRef.new(shape: String, location_name: "errorCode"))
+ TaskError.add_member(:error_message, Shapes::ShapeRef.new(shape: String, location_name: "errorMessage"))
+ TaskError.struct_class = Types::TaskError
+
+ TaskIdList.member = Shapes::ShapeRef.new(shape: UUID)
+
+ Tenant.add_member(:tenant_identifier, Shapes::ShapeRef.new(shape: TenantIdentifier, required: true, location_name: "tenantIdentifier"))
+ Tenant.add_member(:tenant_display_name, Shapes::ShapeRef.new(shape: String2048, required: true, location_name: "tenantDisplayName"))
+ Tenant.struct_class = Types::Tenant
+
+ ThrottlingException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message"))
+ ThrottlingException.add_member(:service_code, Shapes::ShapeRef.new(shape: String, location_name: "serviceCode"))
+ ThrottlingException.add_member(:quota_code, Shapes::ShapeRef.new(shape: String, location_name: "quotaCode"))
+ ThrottlingException.add_member(:retry_after_seconds, Shapes::ShapeRef.new(shape: Integer, location: "header", location_name: "Retry-After"))
+ ThrottlingException.struct_class = Types::ThrottlingException
+
+ UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location: "uri", location_name: "resourceArn"))
+ UntagResourceRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, required: true, location: "querystring", location_name: "tagKeys"))
+ UntagResourceRequest.struct_class = Types::UntagResourceRequest
+
+ UntagResourceResponse.struct_class = Types::UntagResourceResponse
+
+ UpdateAppAuthorizationRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ UpdateAppAuthorizationRequest.add_member(:app_authorization_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appAuthorizationIdentifier"))
+ UpdateAppAuthorizationRequest.add_member(:credential, Shapes::ShapeRef.new(shape: Credential, location_name: "credential"))
+ UpdateAppAuthorizationRequest.add_member(:tenant, Shapes::ShapeRef.new(shape: Tenant, location_name: "tenant"))
+ UpdateAppAuthorizationRequest.struct_class = Types::UpdateAppAuthorizationRequest
+
+ UpdateAppAuthorizationResponse.add_member(:app_authorization, Shapes::ShapeRef.new(shape: AppAuthorization, required: true, location_name: "appAuthorization"))
+ UpdateAppAuthorizationResponse.struct_class = Types::UpdateAppAuthorizationResponse
+
+ UpdateIngestionDestinationRequest.add_member(:app_bundle_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "appBundleIdentifier"))
+ UpdateIngestionDestinationRequest.add_member(:ingestion_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "ingestionIdentifier"))
+ UpdateIngestionDestinationRequest.add_member(:ingestion_destination_identifier, Shapes::ShapeRef.new(shape: Identifier, required: true, location: "uri", location_name: "ingestionDestinationIdentifier"))
+ UpdateIngestionDestinationRequest.add_member(:destination_configuration, Shapes::ShapeRef.new(shape: DestinationConfiguration, required: true, location_name: "destinationConfiguration"))
+ UpdateIngestionDestinationRequest.struct_class = Types::UpdateIngestionDestinationRequest
+
+ UpdateIngestionDestinationResponse.add_member(:ingestion_destination, Shapes::ShapeRef.new(shape: IngestionDestination, required: true, location_name: "ingestionDestination"))
+ UpdateIngestionDestinationResponse.struct_class = Types::UpdateIngestionDestinationResponse
+
+ UserAccessResultItem.add_member(:app, Shapes::ShapeRef.new(shape: String255, location_name: "app"))
+ UserAccessResultItem.add_member(:tenant_id, Shapes::ShapeRef.new(shape: TenantIdentifier, location_name: "tenantId"))
+ UserAccessResultItem.add_member(:tenant_display_name, Shapes::ShapeRef.new(shape: String2048, location_name: "tenantDisplayName"))
+ UserAccessResultItem.add_member(:task_id, Shapes::ShapeRef.new(shape: UUID, location_name: "taskId"))
+ UserAccessResultItem.add_member(:result_status, Shapes::ShapeRef.new(shape: ResultStatus, location_name: "resultStatus"))
+ UserAccessResultItem.add_member(:email, Shapes::ShapeRef.new(shape: Email, location_name: "email"))
+ UserAccessResultItem.add_member(:user_id, Shapes::ShapeRef.new(shape: SensitiveString2048, location_name: "userId"))
+ UserAccessResultItem.add_member(:user_full_name, Shapes::ShapeRef.new(shape: SensitiveString2048, location_name: "userFullName"))
+ UserAccessResultItem.add_member(:user_first_name, Shapes::ShapeRef.new(shape: SensitiveString2048, location_name: "userFirstName"))
+ UserAccessResultItem.add_member(:user_last_name, Shapes::ShapeRef.new(shape: SensitiveString2048, location_name: "userLastName"))
+ UserAccessResultItem.add_member(:user_status, Shapes::ShapeRef.new(shape: String, location_name: "userStatus"))
+ UserAccessResultItem.add_member(:task_error, Shapes::ShapeRef.new(shape: TaskError, location_name: "taskError"))
+ UserAccessResultItem.struct_class = Types::UserAccessResultItem
+
+ UserAccessResultsList.member = Shapes::ShapeRef.new(shape: UserAccessResultItem)
+
+ UserAccessTaskItem.add_member(:app, Shapes::ShapeRef.new(shape: String255, required: true, location_name: "app"))
+ UserAccessTaskItem.add_member(:tenant_id, Shapes::ShapeRef.new(shape: TenantIdentifier, required: true, location_name: "tenantId"))
+ UserAccessTaskItem.add_member(:task_id, Shapes::ShapeRef.new(shape: UUID, location_name: "taskId"))
+ UserAccessTaskItem.add_member(:error, Shapes::ShapeRef.new(shape: TaskError, location_name: "error"))
+ UserAccessTaskItem.struct_class = Types::UserAccessTaskItem
+
+ UserAccessTasksList.member = Shapes::ShapeRef.new(shape: UserAccessTaskItem)
+
+ ValidationException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message"))
+ ValidationException.add_member(:reason, Shapes::ShapeRef.new(shape: ValidationExceptionReason, required: true, location_name: "reason"))
+ ValidationException.add_member(:field_list, Shapes::ShapeRef.new(shape: ValidationExceptionFieldList, location_name: "fieldList"))
+ ValidationException.struct_class = Types::ValidationException
+
+ ValidationExceptionField.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "name"))
+ ValidationExceptionField.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message"))
+ ValidationExceptionField.struct_class = Types::ValidationExceptionField
+
+ ValidationExceptionFieldList.member = Shapes::ShapeRef.new(shape: ValidationExceptionField)
+
+
+ # @api private
+ API = Seahorse::Model::Api.new.tap do |api|
+
+ api.version = "2023-05-19"
+
+ api.metadata = {
+ "apiVersion" => "2023-05-19",
+ "endpointPrefix" => "appfabric",
+ "jsonVersion" => "1.1",
+ "protocol" => "rest-json",
+ "serviceFullName" => "AppFabric",
+ "serviceId" => "AppFabric",
+ "signatureVersion" => "v4",
+ "signingName" => "appfabric",
+ "uid" => "appfabric-2023-05-19",
+ }
+
+ api.add_operation(:batch_get_user_access_tasks, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "BatchGetUserAccessTasks"
+ o.http_method = "POST"
+ o.http_request_uri = "/useraccess/batchget"
+ o.input = Shapes::ShapeRef.new(shape: BatchGetUserAccessTasksRequest)
+ o.output = Shapes::ShapeRef.new(shape: BatchGetUserAccessTasksResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:connect_app_authorization, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "ConnectAppAuthorization"
+ o.http_method = "POST"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/appauthorizations/{appAuthorizationIdentifier}/connect"
+ o.input = Shapes::ShapeRef.new(shape: ConnectAppAuthorizationRequest)
+ o.output = Shapes::ShapeRef.new(shape: ConnectAppAuthorizationResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:create_app_authorization, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "CreateAppAuthorization"
+ o.http_method = "POST"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/appauthorizations"
+ o.input = Shapes::ShapeRef.new(shape: CreateAppAuthorizationRequest)
+ o.output = Shapes::ShapeRef.new(shape: CreateAppAuthorizationResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:create_app_bundle, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "CreateAppBundle"
+ o.http_method = "POST"
+ o.http_request_uri = "/appbundles"
+ o.input = Shapes::ShapeRef.new(shape: CreateAppBundleRequest)
+ o.output = Shapes::ShapeRef.new(shape: CreateAppBundleResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:create_ingestion, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "CreateIngestion"
+ o.http_method = "POST"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/ingestions"
+ o.input = Shapes::ShapeRef.new(shape: CreateIngestionRequest)
+ o.output = Shapes::ShapeRef.new(shape: CreateIngestionResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:create_ingestion_destination, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "CreateIngestionDestination"
+ o.http_method = "POST"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}/ingestiondestinations"
+ o.input = Shapes::ShapeRef.new(shape: CreateIngestionDestinationRequest)
+ o.output = Shapes::ShapeRef.new(shape: CreateIngestionDestinationResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:delete_app_authorization, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "DeleteAppAuthorization"
+ o.http_method = "DELETE"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/appauthorizations/{appAuthorizationIdentifier}"
+ o.input = Shapes::ShapeRef.new(shape: DeleteAppAuthorizationRequest)
+ o.output = Shapes::ShapeRef.new(shape: DeleteAppAuthorizationResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:delete_app_bundle, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "DeleteAppBundle"
+ o.http_method = "DELETE"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}"
+ o.input = Shapes::ShapeRef.new(shape: DeleteAppBundleRequest)
+ o.output = Shapes::ShapeRef.new(shape: DeleteAppBundleResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:delete_ingestion, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "DeleteIngestion"
+ o.http_method = "DELETE"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}"
+ o.input = Shapes::ShapeRef.new(shape: DeleteIngestionRequest)
+ o.output = Shapes::ShapeRef.new(shape: DeleteIngestionResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:delete_ingestion_destination, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "DeleteIngestionDestination"
+ o.http_method = "DELETE"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}/ingestiondestinations/{ingestionDestinationIdentifier}"
+ o.input = Shapes::ShapeRef.new(shape: DeleteIngestionDestinationRequest)
+ o.output = Shapes::ShapeRef.new(shape: DeleteIngestionDestinationResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:get_app_authorization, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "GetAppAuthorization"
+ o.http_method = "GET"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/appauthorizations/{appAuthorizationIdentifier}"
+ o.input = Shapes::ShapeRef.new(shape: GetAppAuthorizationRequest)
+ o.output = Shapes::ShapeRef.new(shape: GetAppAuthorizationResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:get_app_bundle, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "GetAppBundle"
+ o.http_method = "GET"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}"
+ o.input = Shapes::ShapeRef.new(shape: GetAppBundleRequest)
+ o.output = Shapes::ShapeRef.new(shape: GetAppBundleResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:get_ingestion, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "GetIngestion"
+ o.http_method = "GET"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}"
+ o.input = Shapes::ShapeRef.new(shape: GetIngestionRequest)
+ o.output = Shapes::ShapeRef.new(shape: GetIngestionResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:get_ingestion_destination, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "GetIngestionDestination"
+ o.http_method = "GET"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}/ingestiondestinations/{ingestionDestinationIdentifier}"
+ o.input = Shapes::ShapeRef.new(shape: GetIngestionDestinationRequest)
+ o.output = Shapes::ShapeRef.new(shape: GetIngestionDestinationResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:list_app_authorizations, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "ListAppAuthorizations"
+ o.http_method = "GET"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/appauthorizations"
+ o.input = Shapes::ShapeRef.new(shape: ListAppAuthorizationsRequest)
+ o.output = Shapes::ShapeRef.new(shape: ListAppAuthorizationsResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ o[:pager] = Aws::Pager.new(
+ limit_key: "max_results",
+ tokens: {
+ "next_token" => "next_token"
+ }
+ )
+ end)
+
+ api.add_operation(:list_app_bundles, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "ListAppBundles"
+ o.http_method = "GET"
+ o.http_request_uri = "/appbundles"
+ o.input = Shapes::ShapeRef.new(shape: ListAppBundlesRequest)
+ o.output = Shapes::ShapeRef.new(shape: ListAppBundlesResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ o[:pager] = Aws::Pager.new(
+ limit_key: "max_results",
+ tokens: {
+ "next_token" => "next_token"
+ }
+ )
+ end)
+
+ api.add_operation(:list_ingestion_destinations, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "ListIngestionDestinations"
+ o.http_method = "GET"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}/ingestiondestinations"
+ o.input = Shapes::ShapeRef.new(shape: ListIngestionDestinationsRequest)
+ o.output = Shapes::ShapeRef.new(shape: ListIngestionDestinationsResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ o[:pager] = Aws::Pager.new(
+ limit_key: "max_results",
+ tokens: {
+ "next_token" => "next_token"
+ }
+ )
+ end)
+
+ api.add_operation(:list_ingestions, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "ListIngestions"
+ o.http_method = "GET"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/ingestions"
+ o.input = Shapes::ShapeRef.new(shape: ListIngestionsRequest)
+ o.output = Shapes::ShapeRef.new(shape: ListIngestionsResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ o[:pager] = Aws::Pager.new(
+ limit_key: "max_results",
+ tokens: {
+ "next_token" => "next_token"
+ }
+ )
+ end)
+
+ api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "ListTagsForResource"
+ o.http_method = "GET"
+ o.http_request_uri = "/tags/{resourceArn}"
+ o.input = Shapes::ShapeRef.new(shape: ListTagsForResourceRequest)
+ o.output = Shapes::ShapeRef.new(shape: ListTagsForResourceResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:start_ingestion, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "StartIngestion"
+ o.http_method = "POST"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}/start"
+ o.input = Shapes::ShapeRef.new(shape: StartIngestionRequest)
+ o.output = Shapes::ShapeRef.new(shape: StartIngestionResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:start_user_access_tasks, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "StartUserAccessTasks"
+ o.http_method = "POST"
+ o.http_request_uri = "/useraccess/start"
+ o.input = Shapes::ShapeRef.new(shape: StartUserAccessTasksRequest)
+ o.output = Shapes::ShapeRef.new(shape: StartUserAccessTasksResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:stop_ingestion, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "StopIngestion"
+ o.http_method = "POST"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}/stop"
+ o.input = Shapes::ShapeRef.new(shape: StopIngestionRequest)
+ o.output = Shapes::ShapeRef.new(shape: StopIngestionResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "TagResource"
+ o.http_method = "POST"
+ o.http_request_uri = "/tags/{resourceArn}"
+ o.input = Shapes::ShapeRef.new(shape: TagResourceRequest)
+ o.output = Shapes::ShapeRef.new(shape: TagResourceResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:untag_resource, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "UntagResource"
+ o.http_method = "DELETE"
+ o.http_request_uri = "/tags/{resourceArn}"
+ o.input = Shapes::ShapeRef.new(shape: UntagResourceRequest)
+ o.output = Shapes::ShapeRef.new(shape: UntagResourceResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:update_app_authorization, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "UpdateAppAuthorization"
+ o.http_method = "PATCH"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/appauthorizations/{appAuthorizationIdentifier}"
+ o.input = Shapes::ShapeRef.new(shape: UpdateAppAuthorizationRequest)
+ o.output = Shapes::ShapeRef.new(shape: UpdateAppAuthorizationResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+
+ api.add_operation(:update_ingestion_destination, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "UpdateIngestionDestination"
+ o.http_method = "PATCH"
+ o.http_request_uri = "/appbundles/{appBundleIdentifier}/ingestions/{ingestionIdentifier}/ingestiondestinations/{ingestionDestinationIdentifier}"
+ o.input = Shapes::ShapeRef.new(shape: UpdateIngestionDestinationRequest)
+ o.output = Shapes::ShapeRef.new(shape: UpdateIngestionDestinationResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ end)
+ end
+
+ end
+end
diff --git a/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/customizations.rb b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/customizations.rb
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/endpoint_parameters.rb b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/endpoint_parameters.rb
new file mode 100644
index 00000000000..06bad429654
--- /dev/null
+++ b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/endpoint_parameters.rb
@@ -0,0 +1,66 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+module Aws::AppFabric
+ # Endpoint parameters used to influence endpoints per request.
+ #
+ # @!attribute region
+ # The AWS region used to dispatch the request.
+ #
+ # @return [String]
+ #
+ # @!attribute use_dual_stack
+ # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
+ #
+ # @return [Boolean]
+ #
+ # @!attribute use_fips
+ # 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.
+ #
+ # @return [Boolean]
+ #
+ # @!attribute endpoint
+ # Override the endpoint used to send this request
+ #
+ # @return [String]
+ #
+ EndpointParameters = Struct.new(
+ :region,
+ :use_dual_stack,
+ :use_fips,
+ :endpoint,
+ ) do
+ include Aws::Structure
+
+ # @api private
+ class << self
+ PARAM_MAP = {
+ 'Region' => :region,
+ 'UseDualStack' => :use_dual_stack,
+ 'UseFIPS' => :use_fips,
+ 'Endpoint' => :endpoint,
+ }.freeze
+ end
+
+ def initialize(options = {})
+ self[:region] = options[:region]
+ self[:use_dual_stack] = options[:use_dual_stack]
+ self[:use_dual_stack] = false if self[:use_dual_stack].nil?
+ if self[:use_dual_stack].nil?
+ raise ArgumentError, "Missing required EndpointParameter: :use_dual_stack"
+ end
+ self[:use_fips] = options[:use_fips]
+ self[:use_fips] = false if self[:use_fips].nil?
+ if self[:use_fips].nil?
+ raise ArgumentError, "Missing required EndpointParameter: :use_fips"
+ end
+ self[:endpoint] = options[:endpoint]
+ end
+ end
+end
diff --git a/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/endpoint_provider.rb b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/endpoint_provider.rb
new file mode 100644
index 00000000000..c14318f408b
--- /dev/null
+++ b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/endpoint_provider.rb
@@ -0,0 +1,54 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+module Aws::AppFabric
+ class EndpointProvider
+ def resolve_endpoint(parameters)
+ region = parameters.region
+ use_dual_stack = parameters.use_dual_stack
+ use_fips = parameters.use_fips
+ endpoint = parameters.endpoint
+ if Aws::Endpoints::Matchers.set?(endpoint)
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
+ raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
+ end
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
+ raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
+ end
+ return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
+ end
+ if Aws::Endpoints::Matchers.set?(region)
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
+ return Aws::Endpoints::Endpoint.new(url: "https://appfabric-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
+ end
+ raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
+ end
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
+ return Aws::Endpoints::Endpoint.new(url: "https://appfabric-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
+ end
+ raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
+ end
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
+ return Aws::Endpoints::Endpoint.new(url: "https://appfabric.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
+ end
+ raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
+ end
+ return Aws::Endpoints::Endpoint.new(url: "https://appfabric.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
+ end
+ end
+ raise ArgumentError, "Invalid Configuration: Missing Region"
+ raise ArgumentError, 'No endpoint could be resolved'
+
+ end
+ end
+end
diff --git a/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/endpoints.rb b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/endpoints.rb
new file mode 100644
index 00000000000..409675812a0
--- /dev/null
+++ b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/endpoints.rb
@@ -0,0 +1,380 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+
+module Aws::AppFabric
+ # @api private
+ module Endpoints
+
+ class BatchGetUserAccessTasks
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class ConnectAppAuthorization
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class CreateAppAuthorization
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class CreateAppBundle
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class CreateIngestion
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class CreateIngestionDestination
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class DeleteAppAuthorization
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class DeleteAppBundle
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class DeleteIngestion
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class DeleteIngestionDestination
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class GetAppAuthorization
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class GetAppBundle
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class GetIngestion
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class GetIngestionDestination
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class ListAppAuthorizations
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class ListAppBundles
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class ListIngestionDestinations
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class ListIngestions
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class ListTagsForResource
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class StartIngestion
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class StartUserAccessTasks
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class StopIngestion
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class TagResource
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class UntagResource
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class UpdateAppAuthorization
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ class UpdateIngestionDestination
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::AppFabric::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
+ end
+end
diff --git a/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/errors.rb b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/errors.rb
new file mode 100644
index 00000000000..8b78dbac28f
--- /dev/null
+++ b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/errors.rb
@@ -0,0 +1,232 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+module Aws::AppFabric
+
+ # When AppFabric returns an error response, the Ruby SDK constructs and raises an error.
+ # These errors all extend Aws::AppFabric::Errors::ServiceError < {Aws::Errors::ServiceError}
+ #
+ # You can rescue all AppFabric errors using ServiceError:
+ #
+ # begin
+ # # do stuff
+ # rescue Aws::AppFabric::Errors::ServiceError
+ # # rescues all AppFabric API errors
+ # end
+ #
+ #
+ # ## Request Context
+ # ServiceError objects have a {Aws::Errors::ServiceError#context #context} method that returns
+ # information about the request that generated the error.
+ # See {Seahorse::Client::RequestContext} for more information.
+ #
+ # ## Error Classes
+ # * {AccessDeniedException}
+ # * {ConflictException}
+ # * {InternalServerException}
+ # * {ResourceNotFoundException}
+ # * {ServiceQuotaExceededException}
+ # * {ThrottlingException}
+ # * {ValidationException}
+ #
+ # Additionally, error classes are dynamically generated for service errors based on the error code
+ # if they are not defined above.
+ module Errors
+
+ extend Aws::Errors::DynamicErrors
+
+ class AccessDeniedException < ServiceError
+
+ # @param [Seahorse::Client::RequestContext] context
+ # @param [String] message
+ # @param [Aws::AppFabric::Types::AccessDeniedException] data
+ def initialize(context, message, data = Aws::EmptyStructure.new)
+ super(context, message, data)
+ end
+
+ # @return [String]
+ def message
+ @message || @data[:message]
+ end
+ end
+
+ class ConflictException < ServiceError
+
+ # @param [Seahorse::Client::RequestContext] context
+ # @param [String] message
+ # @param [Aws::AppFabric::Types::ConflictException] data
+ def initialize(context, message, data = Aws::EmptyStructure.new)
+ super(context, message, data)
+ end
+
+ # @return [String]
+ def message
+ @message || @data[:message]
+ end
+
+ # @return [String]
+ def resource_id
+ @data[:resource_id]
+ end
+
+ # @return [String]
+ def resource_type
+ @data[:resource_type]
+ end
+ end
+
+ class InternalServerException < ServiceError
+
+ # @param [Seahorse::Client::RequestContext] context
+ # @param [String] message
+ # @param [Aws::AppFabric::Types::InternalServerException] data
+ def initialize(context, message, data = Aws::EmptyStructure.new)
+ super(context, message, data)
+ end
+
+ # @return [String]
+ def message
+ @message || @data[:message]
+ end
+
+ # @return [String]
+ def retry_after_seconds
+ @data[:retry_after_seconds]
+ end
+
+ def retryable?
+ true
+ end
+ end
+
+ class ResourceNotFoundException < ServiceError
+
+ # @param [Seahorse::Client::RequestContext] context
+ # @param [String] message
+ # @param [Aws::AppFabric::Types::ResourceNotFoundException] data
+ def initialize(context, message, data = Aws::EmptyStructure.new)
+ super(context, message, data)
+ end
+
+ # @return [String]
+ def message
+ @message || @data[:message]
+ end
+
+ # @return [String]
+ def resource_id
+ @data[:resource_id]
+ end
+
+ # @return [String]
+ def resource_type
+ @data[:resource_type]
+ end
+ end
+
+ class ServiceQuotaExceededException < ServiceError
+
+ # @param [Seahorse::Client::RequestContext] context
+ # @param [String] message
+ # @param [Aws::AppFabric::Types::ServiceQuotaExceededException] data
+ def initialize(context, message, data = Aws::EmptyStructure.new)
+ super(context, message, data)
+ end
+
+ # @return [String]
+ def message
+ @message || @data[:message]
+ end
+
+ # @return [String]
+ def resource_id
+ @data[:resource_id]
+ end
+
+ # @return [String]
+ def resource_type
+ @data[:resource_type]
+ end
+
+ # @return [String]
+ def service_code
+ @data[:service_code]
+ end
+
+ # @return [String]
+ def quota_code
+ @data[:quota_code]
+ end
+ end
+
+ class ThrottlingException < ServiceError
+
+ # @param [Seahorse::Client::RequestContext] context
+ # @param [String] message
+ # @param [Aws::AppFabric::Types::ThrottlingException] data
+ def initialize(context, message, data = Aws::EmptyStructure.new)
+ super(context, message, data)
+ end
+
+ # @return [String]
+ def message
+ @message || @data[:message]
+ end
+
+ # @return [String]
+ def service_code
+ @data[:service_code]
+ end
+
+ # @return [String]
+ def quota_code
+ @data[:quota_code]
+ end
+
+ # @return [String]
+ def retry_after_seconds
+ @data[:retry_after_seconds]
+ end
+
+ def retryable?
+ true
+ end
+
+ def throttling?
+ true
+ end
+ end
+
+ class ValidationException < ServiceError
+
+ # @param [Seahorse::Client::RequestContext] context
+ # @param [String] message
+ # @param [Aws::AppFabric::Types::ValidationException] data
+ def initialize(context, message, data = Aws::EmptyStructure.new)
+ super(context, message, data)
+ end
+
+ # @return [String]
+ def message
+ @message || @data[:message]
+ end
+
+ # @return [String]
+ def reason
+ @data[:reason]
+ end
+
+ # @return [String]
+ def field_list
+ @data[:field_list]
+ end
+ end
+
+ end
+end
diff --git a/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/plugins/endpoints.rb b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/plugins/endpoints.rb
new file mode 100644
index 00000000000..3d992d189a6
--- /dev/null
+++ b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/plugins/endpoints.rb
@@ -0,0 +1,120 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+
+module Aws::AppFabric
+ module Plugins
+ class Endpoints < Seahorse::Client::Plugin
+ option(
+ :endpoint_provider,
+ doc_type: 'Aws::AppFabric::EndpointProvider',
+ docstring: 'The endpoint provider used to resolve endpoints. Any '\
+ 'object that responds to `#resolve_endpoint(parameters)` '\
+ 'where `parameters` is a Struct similar to '\
+ '`Aws::AppFabric::EndpointParameters`'
+ ) do |cfg|
+ Aws::AppFabric::EndpointProvider.new
+ end
+
+ # @api private
+ class Handler < Seahorse::Client::Handler
+ def call(context)
+ # If endpoint was discovered, do not resolve or apply the endpoint.
+ unless context[:discovered_endpoint]
+ params = parameters_for_operation(context)
+ endpoint = context.config.endpoint_provider.resolve_endpoint(params)
+
+ context.http_request.endpoint = endpoint.url
+ apply_endpoint_headers(context, endpoint.headers)
+ end
+
+ context[:endpoint_params] = params
+ context[:auth_scheme] =
+ Aws::Endpoints.resolve_auth_scheme(context, endpoint)
+
+ @handler.call(context)
+ end
+
+ private
+
+ def apply_endpoint_headers(context, headers)
+ headers.each do |key, values|
+ value = values
+ .compact
+ .map { |s| Seahorse::Util.escape_header_list_string(s.to_s) }
+ .join(',')
+
+ context.http_request.headers[key] = value
+ end
+ end
+
+ def parameters_for_operation(context)
+ case context.operation_name
+ when :batch_get_user_access_tasks
+ Aws::AppFabric::Endpoints::BatchGetUserAccessTasks.build(context)
+ when :connect_app_authorization
+ Aws::AppFabric::Endpoints::ConnectAppAuthorization.build(context)
+ when :create_app_authorization
+ Aws::AppFabric::Endpoints::CreateAppAuthorization.build(context)
+ when :create_app_bundle
+ Aws::AppFabric::Endpoints::CreateAppBundle.build(context)
+ when :create_ingestion
+ Aws::AppFabric::Endpoints::CreateIngestion.build(context)
+ when :create_ingestion_destination
+ Aws::AppFabric::Endpoints::CreateIngestionDestination.build(context)
+ when :delete_app_authorization
+ Aws::AppFabric::Endpoints::DeleteAppAuthorization.build(context)
+ when :delete_app_bundle
+ Aws::AppFabric::Endpoints::DeleteAppBundle.build(context)
+ when :delete_ingestion
+ Aws::AppFabric::Endpoints::DeleteIngestion.build(context)
+ when :delete_ingestion_destination
+ Aws::AppFabric::Endpoints::DeleteIngestionDestination.build(context)
+ when :get_app_authorization
+ Aws::AppFabric::Endpoints::GetAppAuthorization.build(context)
+ when :get_app_bundle
+ Aws::AppFabric::Endpoints::GetAppBundle.build(context)
+ when :get_ingestion
+ Aws::AppFabric::Endpoints::GetIngestion.build(context)
+ when :get_ingestion_destination
+ Aws::AppFabric::Endpoints::GetIngestionDestination.build(context)
+ when :list_app_authorizations
+ Aws::AppFabric::Endpoints::ListAppAuthorizations.build(context)
+ when :list_app_bundles
+ Aws::AppFabric::Endpoints::ListAppBundles.build(context)
+ when :list_ingestion_destinations
+ Aws::AppFabric::Endpoints::ListIngestionDestinations.build(context)
+ when :list_ingestions
+ Aws::AppFabric::Endpoints::ListIngestions.build(context)
+ when :list_tags_for_resource
+ Aws::AppFabric::Endpoints::ListTagsForResource.build(context)
+ when :start_ingestion
+ Aws::AppFabric::Endpoints::StartIngestion.build(context)
+ when :start_user_access_tasks
+ Aws::AppFabric::Endpoints::StartUserAccessTasks.build(context)
+ when :stop_ingestion
+ Aws::AppFabric::Endpoints::StopIngestion.build(context)
+ when :tag_resource
+ Aws::AppFabric::Endpoints::TagResource.build(context)
+ when :untag_resource
+ Aws::AppFabric::Endpoints::UntagResource.build(context)
+ when :update_app_authorization
+ Aws::AppFabric::Endpoints::UpdateAppAuthorization.build(context)
+ when :update_ingestion_destination
+ Aws::AppFabric::Endpoints::UpdateIngestionDestination.build(context)
+ end
+ end
+ end
+
+ def add_handlers(handlers, _config)
+ handlers.add(Handler, step: :build, priority: 75)
+ end
+ end
+ end
+end
diff --git a/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/resource.rb b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/resource.rb
new file mode 100644
index 00000000000..75bf788b0d8
--- /dev/null
+++ b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/resource.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+module Aws::AppFabric
+
+ class Resource
+
+ # @param options ({})
+ # @option options [Client] :client
+ def initialize(options = {})
+ @client = options[:client] || Client.new(options)
+ end
+
+ # @return [Client]
+ def client
+ @client
+ end
+
+ end
+end
diff --git a/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/types.rb b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/types.rb
new file mode 100644
index 00000000000..076b45b0cea
--- /dev/null
+++ b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/types.rb
@@ -0,0 +1,1987 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+module Aws::AppFabric
+ module Types
+
+ # You are not authorized to perform this operation.
+ #
+ # @!attribute [rw] message
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/AccessDeniedException AWS API Documentation
+ #
+ class AccessDeniedException < Struct.new(
+ :message)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains API key credential information.
+ #
+ # @!attribute [rw] api_key
+ # An API key for an application.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ApiKeyCredential AWS API Documentation
+ #
+ class ApiKeyCredential < Struct.new(
+ :api_key)
+ SENSITIVE = [:api_key]
+ include Aws::Structure
+ end
+
+ # Contains information about an app authorization.
+ #
+ # @!attribute [rw] app_authorization_arn
+ # The Amazon Resource Name (ARN) of the app authorization.
+ # @return [String]
+ #
+ # @!attribute [rw] app_bundle_arn
+ # The Amazon Resource Name (ARN) of the app bundle for the app
+ # authorization.
+ # @return [String]
+ #
+ # @!attribute [rw] app
+ # The name of the application.
+ # @return [String]
+ #
+ # @!attribute [rw] tenant
+ # Contains information about an application tenant, such as the
+ # application display name and identifier.
+ # @return [Types::Tenant]
+ #
+ # @!attribute [rw] auth_type
+ # The authorization type.
+ # @return [String]
+ #
+ # @!attribute [rw] status
+ # The state of the app authorization.
+ #
+ # The following states are possible:
+ #
+ # * `PendingConnect`: The initial state of the app authorization. The
+ # app authorization is created but not yet connected.
+ #
+ # * `Connected`: The app authorization is connected to the
+ # application, and is ready to be used.
+ #
+ # * `ConnectionValidationFailed`: The app authorization received a
+ # validation exception when trying to connect to the application. If
+ # the app authorization is in this state, you should verify the
+ # configured credentials and try to connect the app authorization
+ # again.
+ #
+ # * `TokenAutoRotationFailed`: AppFabric failed to refresh the access
+ # token. If the app authorization is in this state, you should try
+ # to reconnect the app authorization.
+ # @return [String]
+ #
+ # @!attribute [rw] created_at
+ # The timestamp of when the app authorization was created.
+ # @return [Time]
+ #
+ # @!attribute [rw] updated_at
+ # The timestamp of when the app authorization was last updated.
+ # @return [Time]
+ #
+ # @!attribute [rw] persona
+ # The user persona of the app authorization.
+ #
+ # This field should always be `admin`.
+ # @return [String]
+ #
+ # @!attribute [rw] auth_url
+ # The application URL for the OAuth flow.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/AppAuthorization AWS API Documentation
+ #
+ class AppAuthorization < Struct.new(
+ :app_authorization_arn,
+ :app_bundle_arn,
+ :app,
+ :tenant,
+ :auth_type,
+ :status,
+ :created_at,
+ :updated_at,
+ :persona,
+ :auth_url)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains a summary of an app authorization.
+ #
+ # @!attribute [rw] app_authorization_arn
+ # The Amazon Resource Name (ARN) of the app authorization.
+ # @return [String]
+ #
+ # @!attribute [rw] app_bundle_arn
+ # The Amazon Resource Name (ARN) of the app bundle for the app
+ # authorization.
+ # @return [String]
+ #
+ # @!attribute [rw] app
+ # The name of the application.
+ # @return [String]
+ #
+ # @!attribute [rw] tenant
+ # Contains information about an application tenant, such as the
+ # application display name and identifier.
+ # @return [Types::Tenant]
+ #
+ # @!attribute [rw] status
+ # The state of the app authorization.
+ #
+ # The following states are possible:
+ #
+ # * `PendingConnect`: The initial state of the app authorization. The
+ # app authorization is created but not yet connected.
+ #
+ # * `Connected`: The app authorization is connected to the
+ # application, and is ready to be used.
+ #
+ # * `ConnectionValidationFailed`: The app authorization received a
+ # validation exception when trying to connect to the application. If
+ # the app authorization is in this state, you should verify the
+ # configured credentials and try to connect the app authorization
+ # again.
+ #
+ # * `TokenAutoRotationFailed`: AppFabric failed to refresh the access
+ # token. If the app authorization is in this state, you should try
+ # to reconnect the app authorization.
+ # @return [String]
+ #
+ # @!attribute [rw] updated_at
+ # Timestamp for when the app authorization was last updated.
+ # @return [Time]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/AppAuthorizationSummary AWS API Documentation
+ #
+ class AppAuthorizationSummary < Struct.new(
+ :app_authorization_arn,
+ :app_bundle_arn,
+ :app,
+ :tenant,
+ :status,
+ :updated_at)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains information about an app bundle.
+ #
+ # @!attribute [rw] arn
+ # The Amazon Resource Name (ARN) of the app bundle.
+ # @return [String]
+ #
+ # @!attribute [rw] customer_managed_key_arn
+ # The Amazon Resource Name (ARN) of the Key Management Service (KMS)
+ # key used to encrypt the application data.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/AppBundle AWS API Documentation
+ #
+ class AppBundle < Struct.new(
+ :arn,
+ :customer_managed_key_arn)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains a summary of an app bundle.
+ #
+ # @!attribute [rw] arn
+ # The Amazon Resource Name (ARN) of the app bundle.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/AppBundleSummary AWS API Documentation
+ #
+ class AppBundleSummary < Struct.new(
+ :arn)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains information about an audit log destination configuration.
+ #
+ # @!attribute [rw] destination
+ # Contains information about an audit log destination.
+ # @return [Types::Destination]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/AuditLogDestinationConfiguration AWS API Documentation
+ #
+ class AuditLogDestinationConfiguration < Struct.new(
+ :destination)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains information about an audit log processing configuration.
+ #
+ # @!attribute [rw] schema
+ # The event schema in which the audit logs need to be formatted.
+ # @return [String]
+ #
+ # @!attribute [rw] format
+ # The format in which the audit logs need to be formatted.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/AuditLogProcessingConfiguration AWS API Documentation
+ #
+ class AuditLogProcessingConfiguration < Struct.new(
+ :schema,
+ :format)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains authorization request information, which is required for
+ # Amazon Web Services AppFabric to get the OAuth2 access token for an
+ # application.
+ #
+ # @!attribute [rw] redirect_uri
+ # The redirect URL that is specified in the AuthURL and the
+ # application client.
+ # @return [String]
+ #
+ # @!attribute [rw] code
+ # The authorization code returned by the application after permission
+ # is granted in the application OAuth page (after clicking on the
+ # AuthURL).
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/AuthRequest AWS API Documentation
+ #
+ class AuthRequest < Struct.new(
+ :redirect_uri,
+ :code)
+ SENSITIVE = [:code]
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] task_id_list
+ # The tasks IDs to use for the request.
+ # @return [Array]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/BatchGetUserAccessTasksRequest AWS API Documentation
+ #
+ class BatchGetUserAccessTasksRequest < Struct.new(
+ :app_bundle_identifier,
+ :task_id_list)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] user_access_results_list
+ # Contains a list of user access results.
+ # @return [Array]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/BatchGetUserAccessTasksResponse AWS API Documentation
+ #
+ class BatchGetUserAccessTasksResponse < Struct.new(
+ :user_access_results_list)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # The request has created a conflict. Check the request parameters and
+ # try again.
+ #
+ # @!attribute [rw] message
+ # @return [String]
+ #
+ # @!attribute [rw] resource_id
+ # The resource ID.
+ # @return [String]
+ #
+ # @!attribute [rw] resource_type
+ # The resource type.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ConflictException AWS API Documentation
+ #
+ class ConflictException < Struct.new(
+ :message,
+ :resource_id,
+ :resource_type)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle that contains the app authorization to use for the
+ # request.
+ # @return [String]
+ #
+ # @!attribute [rw] app_authorization_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app authorization to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] auth_request
+ # Contains OAuth2 authorization information.
+ #
+ # This is required if the app authorization for the request is
+ # configured with an OAuth2 (`oauth2`) authorization type.
+ # @return [Types::AuthRequest]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ConnectAppAuthorizationRequest AWS API Documentation
+ #
+ class ConnectAppAuthorizationRequest < Struct.new(
+ :app_bundle_identifier,
+ :app_authorization_identifier,
+ :auth_request)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_authorization_summary
+ # Contains a summary of the app authorization.
+ # @return [Types::AppAuthorizationSummary]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ConnectAppAuthorizationResponse AWS API Documentation
+ #
+ class ConnectAppAuthorizationResponse < Struct.new(
+ :app_authorization_summary)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] app
+ # The name of the application.
+ #
+ # Valid values are:
+ #
+ # * `SLACK`
+ #
+ # * `ASANA`
+ #
+ # * `JIRA`
+ #
+ # * `M365`
+ #
+ # * `M365AUDITLOGS`
+ #
+ # * `ZOOM`
+ #
+ # * `ZENDESK`
+ #
+ # * `OKTA`
+ #
+ # * `GOOGLE`
+ #
+ # * `DROPBOX`
+ #
+ # * `SMARTSHEET`
+ #
+ # * `CISCO`
+ # @return [String]
+ #
+ # @!attribute [rw] credential
+ # Contains credentials for the application, such as an API key or
+ # OAuth2 client ID and secret.
+ #
+ # Specify credentials that match the authorization type for your
+ # request. For example, if the authorization type for your request is
+ # OAuth2 (`oauth2`), then you should provide only the OAuth2
+ # credentials.
+ # @return [Types::Credential]
+ #
+ # @!attribute [rw] tenant
+ # Contains information about an application tenant, such as the
+ # application display name and identifier.
+ # @return [Types::Tenant]
+ #
+ # @!attribute [rw] auth_type
+ # The authorization type for the app authorization.
+ # @return [String]
+ #
+ # @!attribute [rw] client_token
+ # Specifies a unique, case-sensitive identifier that you provide to
+ # ensure the idempotency of the request. This lets you safely retry
+ # the request without accidentally performing the same operation a
+ # second time. Passing the same value to a later call to an operation
+ # requires that you also pass the same value for all other parameters.
+ # We recommend that you use a [UUID type of value][1].
+ #
+ # If you don't provide this value, then Amazon Web Services generates
+ # a random one for you.
+ #
+ # If you retry the operation with the same `ClientToken`, but with
+ # different parameters, the retry fails with an
+ # `IdempotentParameterMismatch` error.
+ #
+ # **A suitable default value is auto-generated.** You should normally
+ # not need to pass this option.
+ #
+ #
+ #
+ # [1]: https://wikipedia.org/wiki/Universally_unique_identifier
+ # @return [String]
+ #
+ # @!attribute [rw] tags
+ # A map of the key-value pairs of the tag or tags to assign to the
+ # resource.
+ # @return [Array]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/CreateAppAuthorizationRequest AWS API Documentation
+ #
+ class CreateAppAuthorizationRequest < Struct.new(
+ :app_bundle_identifier,
+ :app,
+ :credential,
+ :tenant,
+ :auth_type,
+ :client_token,
+ :tags)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_authorization
+ # Contains information about an app authorization.
+ # @return [Types::AppAuthorization]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/CreateAppAuthorizationResponse AWS API Documentation
+ #
+ class CreateAppAuthorizationResponse < Struct.new(
+ :app_authorization)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] client_token
+ # Specifies a unique, case-sensitive identifier that you provide to
+ # ensure the idempotency of the request. This lets you safely retry
+ # the request without accidentally performing the same operation a
+ # second time. Passing the same value to a later call to an operation
+ # requires that you also pass the same value for all other parameters.
+ # We recommend that you use a [UUID type of value][1].
+ #
+ # If you don't provide this value, then Amazon Web Services generates
+ # a random one for you.
+ #
+ # If you retry the operation with the same `ClientToken`, but with
+ # different parameters, the retry fails with an
+ # `IdempotentParameterMismatch` error.
+ #
+ # **A suitable default value is auto-generated.** You should normally
+ # not need to pass this option.
+ #
+ #
+ #
+ # [1]: https://wikipedia.org/wiki/Universally_unique_identifier
+ # @return [String]
+ #
+ # @!attribute [rw] customer_managed_key_identifier
+ # The Amazon Resource Name (ARN) of the Key Management Service (KMS)
+ # key to use to encrypt the application data. If this is not
+ # specified, an Amazon Web Services owned key is used for encryption.
+ # @return [String]
+ #
+ # @!attribute [rw] tags
+ # A map of the key-value pairs of the tag or tags to assign to the
+ # resource.
+ # @return [Array]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/CreateAppBundleRequest AWS API Documentation
+ #
+ class CreateAppBundleRequest < Struct.new(
+ :client_token,
+ :customer_managed_key_identifier,
+ :tags)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle
+ # Contains information about an app bundle.
+ # @return [Types::AppBundle]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/CreateAppBundleResponse AWS API Documentation
+ #
+ class CreateAppBundleResponse < Struct.new(
+ :app_bundle)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] processing_configuration
+ # Contains information about how ingested data is processed.
+ # @return [Types::ProcessingConfiguration]
+ #
+ # @!attribute [rw] destination_configuration
+ # Contains information about the destination of ingested data.
+ # @return [Types::DestinationConfiguration]
+ #
+ # @!attribute [rw] client_token
+ # Specifies a unique, case-sensitive identifier that you provide to
+ # ensure the idempotency of the request. This lets you safely retry
+ # the request without accidentally performing the same operation a
+ # second time. Passing the same value to a later call to an operation
+ # requires that you also pass the same value for all other parameters.
+ # We recommend that you use a [UUID type of value][1].
+ #
+ # If you don't provide this value, then Amazon Web Services generates
+ # a random one for you.
+ #
+ # If you retry the operation with the same `ClientToken`, but with
+ # different parameters, the retry fails with an
+ # `IdempotentParameterMismatch` error.
+ #
+ # **A suitable default value is auto-generated.** You should normally
+ # not need to pass this option.
+ #
+ #
+ #
+ # [1]: https://wikipedia.org/wiki/Universally_unique_identifier
+ # @return [String]
+ #
+ # @!attribute [rw] tags
+ # A map of the key-value pairs of the tag or tags to assign to the
+ # resource.
+ # @return [Array]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/CreateIngestionDestinationRequest AWS API Documentation
+ #
+ class CreateIngestionDestinationRequest < Struct.new(
+ :app_bundle_identifier,
+ :ingestion_identifier,
+ :processing_configuration,
+ :destination_configuration,
+ :client_token,
+ :tags)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] ingestion_destination
+ # Contains information about an ingestion destination.
+ # @return [Types::IngestionDestination]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/CreateIngestionDestinationResponse AWS API Documentation
+ #
+ class CreateIngestionDestinationResponse < Struct.new(
+ :ingestion_destination)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] app
+ # The name of the application.
+ #
+ # Valid values are:
+ #
+ # * `SLACK`
+ #
+ # * `ASANA`
+ #
+ # * `JIRA`
+ #
+ # * `M365`
+ #
+ # * `M365AUDITLOGS`
+ #
+ # * `ZOOM`
+ #
+ # * `ZENDESK`
+ #
+ # * `OKTA`
+ #
+ # * `GOOGLE`
+ #
+ # * `DROPBOX`
+ #
+ # * `SMARTSHEET`
+ #
+ # * `CISCO`
+ # @return [String]
+ #
+ # @!attribute [rw] tenant_id
+ # The ID of the application tenant.
+ # @return [String]
+ #
+ # @!attribute [rw] ingestion_type
+ # The ingestion type.
+ # @return [String]
+ #
+ # @!attribute [rw] client_token
+ # Specifies a unique, case-sensitive identifier that you provide to
+ # ensure the idempotency of the request. This lets you safely retry
+ # the request without accidentally performing the same operation a
+ # second time. Passing the same value to a later call to an operation
+ # requires that you also pass the same value for all other parameters.
+ # We recommend that you use a [UUID type of value][1].
+ #
+ # If you don't provide this value, then Amazon Web Services generates
+ # a random one for you.
+ #
+ # If you retry the operation with the same `ClientToken`, but with
+ # different parameters, the retry fails with an
+ # `IdempotentParameterMismatch` error.
+ #
+ # **A suitable default value is auto-generated.** You should normally
+ # not need to pass this option.
+ #
+ #
+ #
+ # [1]: https://wikipedia.org/wiki/Universally_unique_identifier
+ # @return [String]
+ #
+ # @!attribute [rw] tags
+ # A map of the key-value pairs of the tag or tags to assign to the
+ # resource.
+ # @return [Array]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/CreateIngestionRequest AWS API Documentation
+ #
+ class CreateIngestionRequest < Struct.new(
+ :app_bundle_identifier,
+ :app,
+ :tenant_id,
+ :ingestion_type,
+ :client_token,
+ :tags)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] ingestion
+ # Contains information about an ingestion.
+ # @return [Types::Ingestion]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/CreateIngestionResponse AWS API Documentation
+ #
+ class CreateIngestionResponse < Struct.new(
+ :ingestion)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains credential information for an application.
+ #
+ # @note Credential is a union - when making an API calls you must set exactly one of the members.
+ #
+ # @!attribute [rw] oauth2_credential
+ # Contains OAuth2 client credential information.
+ # @return [Types::Oauth2Credential]
+ #
+ # @!attribute [rw] api_key_credential
+ # Contains API key credential information.
+ # @return [Types::ApiKeyCredential]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/Credential AWS API Documentation
+ #
+ class Credential < Struct.new(
+ :oauth2_credential,
+ :api_key_credential,
+ :unknown)
+ SENSITIVE = []
+ include Aws::Structure
+ include Aws::Structure::Union
+
+ class Oauth2Credential < Credential; end
+ class ApiKeyCredential < Credential; end
+ class Unknown < Credential; end
+ end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] app_authorization_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app authorization to use for the request.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/DeleteAppAuthorizationRequest AWS API Documentation
+ #
+ class DeleteAppAuthorizationRequest < Struct.new(
+ :app_bundle_identifier,
+ :app_authorization_identifier)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/DeleteAppAuthorizationResponse AWS API Documentation
+ #
+ class DeleteAppAuthorizationResponse < Aws::EmptyStructure; end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The ID or Amazon Resource Name (ARN) of the app bundle that needs to
+ # be deleted.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/DeleteAppBundleRequest AWS API Documentation
+ #
+ class DeleteAppBundleRequest < Struct.new(
+ :app_bundle_identifier)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/DeleteAppBundleResponse AWS API Documentation
+ #
+ class DeleteAppBundleResponse < Aws::EmptyStructure; end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] ingestion_destination_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion destination to use for the request.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/DeleteIngestionDestinationRequest AWS API Documentation
+ #
+ class DeleteIngestionDestinationRequest < Struct.new(
+ :app_bundle_identifier,
+ :ingestion_identifier,
+ :ingestion_destination_identifier)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/DeleteIngestionDestinationResponse AWS API Documentation
+ #
+ class DeleteIngestionDestinationResponse < Aws::EmptyStructure; end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/DeleteIngestionRequest AWS API Documentation
+ #
+ class DeleteIngestionRequest < Struct.new(
+ :app_bundle_identifier,
+ :ingestion_identifier)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/DeleteIngestionResponse AWS API Documentation
+ #
+ class DeleteIngestionResponse < Aws::EmptyStructure; end
+
+ # Contains information about an audit log destination.
+ #
+ # @note Destination is a union - when making an API calls you must set exactly one of the members.
+ #
+ # @note Destination is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of Destination corresponding to the set member.
+ #
+ # @!attribute [rw] s3_bucket
+ # Contains information about an Amazon S3 bucket.
+ # @return [Types::S3Bucket]
+ #
+ # @!attribute [rw] firehose_stream
+ # Contains information about an Amazon Kinesis Data Firehose delivery
+ # stream.
+ # @return [Types::FirehoseStream]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/Destination AWS API Documentation
+ #
+ class Destination < Struct.new(
+ :s3_bucket,
+ :firehose_stream,
+ :unknown)
+ SENSITIVE = []
+ include Aws::Structure
+ include Aws::Structure::Union
+
+ class S3Bucket < Destination; end
+ class FirehoseStream < Destination; end
+ class Unknown < Destination; end
+ end
+
+ # Contains information about the destination of ingested data.
+ #
+ # @note DestinationConfiguration is a union - when making an API calls you must set exactly one of the members.
+ #
+ # @note DestinationConfiguration is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of DestinationConfiguration corresponding to the set member.
+ #
+ # @!attribute [rw] audit_log
+ # Contains information about an audit log destination configuration.
+ # @return [Types::AuditLogDestinationConfiguration]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/DestinationConfiguration AWS API Documentation
+ #
+ class DestinationConfiguration < Struct.new(
+ :audit_log,
+ :unknown)
+ SENSITIVE = []
+ include Aws::Structure
+ include Aws::Structure::Union
+
+ class AuditLog < DestinationConfiguration; end
+ class Unknown < DestinationConfiguration; end
+ end
+
+ # Contains information about an Amazon Kinesis Data Firehose delivery
+ # stream.
+ #
+ # @!attribute [rw] stream_name
+ # The name of the Amazon Kinesis Data Firehose delivery stream.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/FirehoseStream AWS API Documentation
+ #
+ class FirehoseStream < Struct.new(
+ :stream_name)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] app_authorization_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app authorization to use for the request.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/GetAppAuthorizationRequest AWS API Documentation
+ #
+ class GetAppAuthorizationRequest < Struct.new(
+ :app_bundle_identifier,
+ :app_authorization_identifier)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_authorization
+ # Contains information about an app authorization.
+ # @return [Types::AppAuthorization]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/GetAppAuthorizationResponse AWS API Documentation
+ #
+ class GetAppAuthorizationResponse < Struct.new(
+ :app_authorization)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/GetAppBundleRequest AWS API Documentation
+ #
+ class GetAppBundleRequest < Struct.new(
+ :app_bundle_identifier)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle
+ # Contains information about an app bundle.
+ # @return [Types::AppBundle]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/GetAppBundleResponse AWS API Documentation
+ #
+ class GetAppBundleResponse < Struct.new(
+ :app_bundle)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] ingestion_destination_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion destination to use for the request.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/GetIngestionDestinationRequest AWS API Documentation
+ #
+ class GetIngestionDestinationRequest < Struct.new(
+ :app_bundle_identifier,
+ :ingestion_identifier,
+ :ingestion_destination_identifier)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] ingestion_destination
+ # Contains information about an ingestion destination.
+ # @return [Types::IngestionDestination]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/GetIngestionDestinationResponse AWS API Documentation
+ #
+ class GetIngestionDestinationResponse < Struct.new(
+ :ingestion_destination)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/GetIngestionRequest AWS API Documentation
+ #
+ class GetIngestionRequest < Struct.new(
+ :app_bundle_identifier,
+ :ingestion_identifier)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] ingestion
+ # Contains information about an ingestion.
+ # @return [Types::Ingestion]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/GetIngestionResponse AWS API Documentation
+ #
+ class GetIngestionResponse < Struct.new(
+ :ingestion)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains information about an ingestion.
+ #
+ # @!attribute [rw] arn
+ # The Amazon Resource Name (ARN) of the ingestion.
+ # @return [String]
+ #
+ # @!attribute [rw] app_bundle_arn
+ # The Amazon Resource Name (ARN) of the app bundle for the ingestion.
+ # @return [String]
+ #
+ # @!attribute [rw] app
+ # The name of the application.
+ # @return [String]
+ #
+ # @!attribute [rw] tenant_id
+ # The ID of the application tenant.
+ # @return [String]
+ #
+ # @!attribute [rw] created_at
+ # The timestamp of when the ingestion was created.
+ # @return [Time]
+ #
+ # @!attribute [rw] updated_at
+ # The timestamp of when the ingestion was last updated.
+ # @return [Time]
+ #
+ # @!attribute [rw] state
+ # The status of the ingestion.
+ # @return [String]
+ #
+ # @!attribute [rw] ingestion_type
+ # The type of the ingestion.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/Ingestion AWS API Documentation
+ #
+ class Ingestion < Struct.new(
+ :arn,
+ :app_bundle_arn,
+ :app,
+ :tenant_id,
+ :created_at,
+ :updated_at,
+ :state,
+ :ingestion_type)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains information about an ingestion destination.
+ #
+ # @!attribute [rw] arn
+ # The Amazon Resource Name (ARN) of the ingestion destination.
+ # @return [String]
+ #
+ # @!attribute [rw] ingestion_arn
+ # The Amazon Resource Name (ARN) of the ingestion.
+ # @return [String]
+ #
+ # @!attribute [rw] processing_configuration
+ # Contains information about how ingested data is processed.
+ # @return [Types::ProcessingConfiguration]
+ #
+ # @!attribute [rw] destination_configuration
+ # Contains information about the destination of ingested data.
+ # @return [Types::DestinationConfiguration]
+ #
+ # @!attribute [rw] status
+ # The state of the ingestion destination.
+ #
+ # The following states are possible:
+ #
+ # * `Active`: The ingestion destination is active and is ready to be
+ # used.
+ #
+ # * `Failed`: The ingestion destination has failed. If the ingestion
+ # destination is in this state, you should verify the ingestion
+ # destination configuration and try again.
+ # @return [String]
+ #
+ # @!attribute [rw] status_reason
+ # The reason for the current status of the ingestion destination.
+ #
+ # Only present when the `status` of ingestion destination is `Failed`.
+ # @return [String]
+ #
+ # @!attribute [rw] created_at
+ # The timestamp of when the ingestion destination was created.
+ # @return [Time]
+ #
+ # @!attribute [rw] updated_at
+ # The timestamp of when the ingestion destination was last updated.
+ # @return [Time]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/IngestionDestination AWS API Documentation
+ #
+ class IngestionDestination < Struct.new(
+ :arn,
+ :ingestion_arn,
+ :processing_configuration,
+ :destination_configuration,
+ :status,
+ :status_reason,
+ :created_at,
+ :updated_at)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains a summary of an ingestion destination.
+ #
+ # @!attribute [rw] arn
+ # The Amazon Resource Name (ARN) of the ingestion destination.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/IngestionDestinationSummary AWS API Documentation
+ #
+ class IngestionDestinationSummary < Struct.new(
+ :arn)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains a summary of an ingestion.
+ #
+ # @!attribute [rw] arn
+ # The Amazon Resource Name (ARN) of the ingestion.
+ # @return [String]
+ #
+ # @!attribute [rw] app
+ # The name of the application.
+ # @return [String]
+ #
+ # @!attribute [rw] tenant_id
+ # The ID of the application tenant.
+ # @return [String]
+ #
+ # @!attribute [rw] state
+ # The status of the ingestion.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/IngestionSummary AWS API Documentation
+ #
+ class IngestionSummary < Struct.new(
+ :arn,
+ :app,
+ :tenant_id,
+ :state)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # The request processing has failed because of an unknown error,
+ # exception, or failure with an internal server.
+ #
+ # @!attribute [rw] message
+ # @return [String]
+ #
+ # @!attribute [rw] retry_after_seconds
+ # The period of time after which you should retry your request.
+ # @return [Integer]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/InternalServerException AWS API Documentation
+ #
+ class InternalServerException < Struct.new(
+ :message,
+ :retry_after_seconds)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] max_results
+ # The maximum number of results that are returned per call. You can
+ # use `nextToken` to obtain further pages of results.
+ #
+ # This is only an upper limit. The actual number of results returned
+ # per call might be fewer than the specified maximum.
+ # @return [Integer]
+ #
+ # @!attribute [rw] next_token
+ # 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. Keep all other arguments unchanged. Each pagination token
+ # expires after 24 hours. Using an expired pagination token will
+ # return an *HTTP 400 InvalidToken error*.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ListAppAuthorizationsRequest AWS API Documentation
+ #
+ class ListAppAuthorizationsRequest < Struct.new(
+ :app_bundle_identifier,
+ :max_results,
+ :next_token)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_authorization_summary_list
+ # Contains a list of app authorization summaries.
+ # @return [Array]
+ #
+ # @!attribute [rw] next_token
+ # 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. Keep all other arguments unchanged. Each pagination token
+ # expires after 24 hours. Using an expired pagination token will
+ # return an *HTTP 400 InvalidToken error*.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ListAppAuthorizationsResponse AWS API Documentation
+ #
+ class ListAppAuthorizationsResponse < Struct.new(
+ :app_authorization_summary_list,
+ :next_token)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] max_results
+ # The maximum number of results that are returned per call. You can
+ # use `nextToken` to obtain further pages of results.
+ #
+ # This is only an upper limit. The actual number of results returned
+ # per call might be fewer than the specified maximum.
+ # @return [Integer]
+ #
+ # @!attribute [rw] next_token
+ # 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. Keep all other arguments unchanged. Each pagination token
+ # expires after 24 hours. Using an expired pagination token will
+ # return an *HTTP 400 InvalidToken error*.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ListAppBundlesRequest AWS API Documentation
+ #
+ class ListAppBundlesRequest < Struct.new(
+ :max_results,
+ :next_token)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle_summary_list
+ # Contains a list of app bundle summaries.
+ # @return [Array]
+ #
+ # @!attribute [rw] next_token
+ # 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. Keep all other arguments unchanged. Each pagination token
+ # expires after 24 hours. Using an expired pagination token will
+ # return an *HTTP 400 InvalidToken error*.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ListAppBundlesResponse AWS API Documentation
+ #
+ class ListAppBundlesResponse < Struct.new(
+ :app_bundle_summary_list,
+ :next_token)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] max_results
+ # The maximum number of results that are returned per call. You can
+ # use `nextToken` to obtain further pages of results.
+ #
+ # This is only an upper limit. The actual number of results returned
+ # per call might be fewer than the specified maximum.
+ # @return [Integer]
+ #
+ # @!attribute [rw] next_token
+ # 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. Keep all other arguments unchanged. Each pagination token
+ # expires after 24 hours. Using an expired pagination token will
+ # return an *HTTP 400 InvalidToken error*.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ListIngestionDestinationsRequest AWS API Documentation
+ #
+ class ListIngestionDestinationsRequest < Struct.new(
+ :app_bundle_identifier,
+ :ingestion_identifier,
+ :max_results,
+ :next_token)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] ingestion_destinations
+ # Contains a list of ingestion destination summaries.
+ # @return [Array]
+ #
+ # @!attribute [rw] next_token
+ # 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. Keep all other arguments unchanged. Each pagination token
+ # expires after 24 hours. Using an expired pagination token will
+ # return an *HTTP 400 InvalidToken error*.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ListIngestionDestinationsResponse AWS API Documentation
+ #
+ class ListIngestionDestinationsResponse < Struct.new(
+ :ingestion_destinations,
+ :next_token)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] max_results
+ # The maximum number of results that are returned per call. You can
+ # use `nextToken` to obtain further pages of results.
+ #
+ # This is only an upper limit. The actual number of results returned
+ # per call might be fewer than the specified maximum.
+ # @return [Integer]
+ #
+ # @!attribute [rw] next_token
+ # 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. Keep all other arguments unchanged. Each pagination token
+ # expires after 24 hours. Using an expired pagination token will
+ # return an *HTTP 400 InvalidToken error*.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ListIngestionsRequest AWS API Documentation
+ #
+ class ListIngestionsRequest < Struct.new(
+ :app_bundle_identifier,
+ :max_results,
+ :next_token)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] ingestions
+ # Contains a list of ingestion summaries.
+ # @return [Array]
+ #
+ # @!attribute [rw] next_token
+ # 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. Keep all other arguments unchanged. Each pagination token
+ # expires after 24 hours. Using an expired pagination token will
+ # return an *HTTP 400 InvalidToken error*.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ListIngestionsResponse AWS API Documentation
+ #
+ class ListIngestionsResponse < Struct.new(
+ :ingestions,
+ :next_token)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] resource_arn
+ # The Amazon Resource Name (ARN) of the resource for which you want to
+ # retrieve tags.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ListTagsForResourceRequest AWS API Documentation
+ #
+ class ListTagsForResourceRequest < Struct.new(
+ :resource_arn)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] tags
+ # A map of the key-value pairs for the tag or tags assigned to the
+ # specified resource.
+ # @return [Array]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ListTagsForResourceResponse AWS API Documentation
+ #
+ class ListTagsForResourceResponse < Struct.new(
+ :tags)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains OAuth2 client credential information.
+ #
+ # @!attribute [rw] client_id
+ # The client ID of the client application.
+ # @return [String]
+ #
+ # @!attribute [rw] client_secret
+ # The client secret of the client application.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/Oauth2Credential AWS API Documentation
+ #
+ class Oauth2Credential < Struct.new(
+ :client_id,
+ :client_secret)
+ SENSITIVE = [:client_secret]
+ include Aws::Structure
+ end
+
+ # Contains information about how ingested data is processed.
+ #
+ # @note ProcessingConfiguration is a union - when making an API calls you must set exactly one of the members.
+ #
+ # @note ProcessingConfiguration is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of ProcessingConfiguration corresponding to the set member.
+ #
+ # @!attribute [rw] audit_log
+ # Contains information about an audit log processing configuration.
+ # @return [Types::AuditLogProcessingConfiguration]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ProcessingConfiguration AWS API Documentation
+ #
+ class ProcessingConfiguration < Struct.new(
+ :audit_log,
+ :unknown)
+ SENSITIVE = []
+ include Aws::Structure
+ include Aws::Structure::Union
+
+ class AuditLog < ProcessingConfiguration; end
+ class Unknown < ProcessingConfiguration; end
+ end
+
+ # The specified resource does not exist.
+ #
+ # @!attribute [rw] message
+ # @return [String]
+ #
+ # @!attribute [rw] resource_id
+ # The resource ID.
+ # @return [String]
+ #
+ # @!attribute [rw] resource_type
+ # The resource type.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ResourceNotFoundException AWS API Documentation
+ #
+ class ResourceNotFoundException < Struct.new(
+ :message,
+ :resource_id,
+ :resource_type)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains information about an Amazon S3 bucket.
+ #
+ # @!attribute [rw] bucket_name
+ # The name of the Amazon S3 bucket.
+ # @return [String]
+ #
+ # @!attribute [rw] prefix
+ # The object key to use.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/S3Bucket AWS API Documentation
+ #
+ class S3Bucket < Struct.new(
+ :bucket_name,
+ :prefix)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # The request exceeds a service quota.
+ #
+ # @!attribute [rw] message
+ # @return [String]
+ #
+ # @!attribute [rw] resource_id
+ # The resource ID.
+ # @return [String]
+ #
+ # @!attribute [rw] resource_type
+ # The resource type.
+ # @return [String]
+ #
+ # @!attribute [rw] service_code
+ # The code of the service.
+ # @return [String]
+ #
+ # @!attribute [rw] quota_code
+ # The code for the quota exceeded.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ServiceQuotaExceededException AWS API Documentation
+ #
+ class ServiceQuotaExceededException < Struct.new(
+ :message,
+ :resource_id,
+ :resource_type,
+ :service_code,
+ :quota_code)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/StartIngestionRequest AWS API Documentation
+ #
+ class StartIngestionRequest < Struct.new(
+ :ingestion_identifier,
+ :app_bundle_identifier)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/StartIngestionResponse AWS API Documentation
+ #
+ class StartIngestionResponse < Aws::EmptyStructure; end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] email
+ # The email address of the target user.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/StartUserAccessTasksRequest AWS API Documentation
+ #
+ class StartUserAccessTasksRequest < Struct.new(
+ :app_bundle_identifier,
+ :email)
+ SENSITIVE = [:email]
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] user_access_tasks_list
+ # Contains a list of user access task information.
+ # @return [Array]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/StartUserAccessTasksResponse AWS API Documentation
+ #
+ class StartUserAccessTasksResponse < Struct.new(
+ :user_access_tasks_list)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/StopIngestionRequest AWS API Documentation
+ #
+ class StopIngestionRequest < Struct.new(
+ :ingestion_identifier,
+ :app_bundle_identifier)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/StopIngestionResponse AWS API Documentation
+ #
+ class StopIngestionResponse < Aws::EmptyStructure; end
+
+ # The key or keys of the key-value pairs for the tag or tags assigned to
+ # a resource.
+ #
+ # @!attribute [rw] key
+ # Tag key.
+ # @return [String]
+ #
+ # @!attribute [rw] value
+ # Tag value.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/Tag AWS API Documentation
+ #
+ class Tag < Struct.new(
+ :key,
+ :value)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] resource_arn
+ # The Amazon Resource Name (ARN) of the resource that you want to tag.
+ # @return [String]
+ #
+ # @!attribute [rw] tags
+ # A map of the key-value pairs of the tag or tags to assign to the
+ # resource.
+ # @return [Array]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/TagResourceRequest AWS API Documentation
+ #
+ class TagResourceRequest < Struct.new(
+ :resource_arn,
+ :tags)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/TagResourceResponse AWS API Documentation
+ #
+ class TagResourceResponse < Aws::EmptyStructure; end
+
+ # Contains information about an error returned from a user access task.
+ #
+ # @!attribute [rw] error_code
+ # The code of the error.
+ # @return [String]
+ #
+ # @!attribute [rw] error_message
+ # The message of the error.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/TaskError AWS API Documentation
+ #
+ class TaskError < Struct.new(
+ :error_code,
+ :error_message)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains information about an application tenant.
+ #
+ # @!attribute [rw] tenant_identifier
+ # The ID of the application tenant.
+ # @return [String]
+ #
+ # @!attribute [rw] tenant_display_name
+ # The display name of the tenant.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/Tenant AWS API Documentation
+ #
+ class Tenant < Struct.new(
+ :tenant_identifier,
+ :tenant_display_name)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # The request rate exceeds the limit.
+ #
+ # @!attribute [rw] message
+ # @return [String]
+ #
+ # @!attribute [rw] service_code
+ # The code of the service.
+ # @return [String]
+ #
+ # @!attribute [rw] quota_code
+ # The code for the quota exceeded.
+ # @return [String]
+ #
+ # @!attribute [rw] retry_after_seconds
+ # The period of time after which you should retry your request.
+ # @return [Integer]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ThrottlingException AWS API Documentation
+ #
+ class ThrottlingException < Struct.new(
+ :message,
+ :service_code,
+ :quota_code,
+ :retry_after_seconds)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] resource_arn
+ # The Amazon Resource Name (ARN) of the resource that you want to
+ # untag.
+ # @return [String]
+ #
+ # @!attribute [rw] tag_keys
+ # The keys of the key-value pairs for the tag or tags you want to
+ # remove from the specified resource.
+ # @return [Array]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/UntagResourceRequest AWS API Documentation
+ #
+ class UntagResourceRequest < Struct.new(
+ :resource_arn,
+ :tag_keys)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/UntagResourceResponse AWS API Documentation
+ #
+ class UntagResourceResponse < Aws::EmptyStructure; end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] app_authorization_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app authorization to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] credential
+ # Contains credentials for the application, such as an API key or
+ # OAuth2 client ID and secret.
+ #
+ # Specify credentials that match the authorization type of the app
+ # authorization to update. For example, if the authorization type of
+ # the app authorization is OAuth2 (`oauth2`), then you should provide
+ # only the OAuth2 credentials.
+ # @return [Types::Credential]
+ #
+ # @!attribute [rw] tenant
+ # Contains information about an application tenant, such as the
+ # application display name and identifier.
+ # @return [Types::Tenant]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/UpdateAppAuthorizationRequest AWS API Documentation
+ #
+ class UpdateAppAuthorizationRequest < Struct.new(
+ :app_bundle_identifier,
+ :app_authorization_identifier,
+ :credential,
+ :tenant)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_authorization
+ # Contains information about an app authorization.
+ # @return [Types::AppAuthorization]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/UpdateAppAuthorizationResponse AWS API Documentation
+ #
+ class UpdateAppAuthorizationResponse < Struct.new(
+ :app_authorization)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] app_bundle_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the app bundle to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] ingestion_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] ingestion_destination_identifier
+ # The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID)
+ # of the ingestion destination to use for the request.
+ # @return [String]
+ #
+ # @!attribute [rw] destination_configuration
+ # Contains information about the destination of ingested data.
+ # @return [Types::DestinationConfiguration]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/UpdateIngestionDestinationRequest AWS API Documentation
+ #
+ class UpdateIngestionDestinationRequest < Struct.new(
+ :app_bundle_identifier,
+ :ingestion_identifier,
+ :ingestion_destination_identifier,
+ :destination_configuration)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] ingestion_destination
+ # Contains information about an ingestion destination.
+ # @return [Types::IngestionDestination]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/UpdateIngestionDestinationResponse AWS API Documentation
+ #
+ class UpdateIngestionDestinationResponse < Struct.new(
+ :ingestion_destination)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Contains information about a user's access to an application.
+ #
+ # @!attribute [rw] app
+ # The name of the application.
+ # @return [String]
+ #
+ # @!attribute [rw] tenant_id
+ # The ID of the application tenant.
+ # @return [String]
+ #
+ # @!attribute [rw] tenant_display_name
+ # The display name of the tenant.
+ # @return [String]
+ #
+ # @!attribute [rw] task_id
+ # The unique ID of the task.
+ # @return [String]
+ #
+ # @!attribute [rw] result_status
+ # The status of the user access result item.
+ #
+ # The following states are possible:
+ #
+ # * `IN_PROGRESS`: The user access task is in progress.
+ #
+ # * `COMPLETED`: The user access task completed successfully.
+ #
+ # * `FAILED`: The user access task failed.
+ #
+ # * `EXPIRED`: The user access task expired.
+ # @return [String]
+ #
+ # @!attribute [rw] email
+ # The email address of the target user.
+ # @return [String]
+ #
+ # @!attribute [rw] user_id
+ # The unique ID of user.
+ # @return [String]
+ #
+ # @!attribute [rw] user_full_name
+ # The full name of the user.
+ # @return [String]
+ #
+ # @!attribute [rw] user_first_name
+ # The first name of the user.
+ # @return [String]
+ #
+ # @!attribute [rw] user_last_name
+ # The last name of the user.
+ # @return [String]
+ #
+ # @!attribute [rw] user_status
+ # The status of the user returned by the application.
+ # @return [String]
+ #
+ # @!attribute [rw] task_error
+ # Contains information about an error returned from a user access
+ # task.
+ # @return [Types::TaskError]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/UserAccessResultItem AWS API Documentation
+ #
+ class UserAccessResultItem < Struct.new(
+ :app,
+ :tenant_id,
+ :tenant_display_name,
+ :task_id,
+ :result_status,
+ :email,
+ :user_id,
+ :user_full_name,
+ :user_first_name,
+ :user_last_name,
+ :user_status,
+ :task_error)
+ SENSITIVE = [:email, :user_id, :user_full_name, :user_first_name, :user_last_name]
+ include Aws::Structure
+ end
+
+ # Contains information about a user access task.
+ #
+ # @!attribute [rw] app
+ # The name of the application.
+ # @return [String]
+ #
+ # @!attribute [rw] tenant_id
+ # The ID of the application tenant.
+ # @return [String]
+ #
+ # @!attribute [rw] task_id
+ # The unique ID of the task.
+ # @return [String]
+ #
+ # @!attribute [rw] error
+ # Error from the task, if any.
+ # @return [Types::TaskError]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/UserAccessTaskItem AWS API Documentation
+ #
+ class UserAccessTaskItem < Struct.new(
+ :app,
+ :tenant_id,
+ :task_id,
+ :error)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # The request has invalid or missing parameters.
+ #
+ # @!attribute [rw] message
+ # @return [String]
+ #
+ # @!attribute [rw] reason
+ # The reason for the exception.
+ # @return [String]
+ #
+ # @!attribute [rw] field_list
+ # The field list.
+ # @return [Array]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ValidationException AWS API Documentation
+ #
+ class ValidationException < Struct.new(
+ :message,
+ :reason,
+ :field_list)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # The input failed to meet the constraints specified by the Amazon Web
+ # Services service in a specified field.
+ #
+ # @!attribute [rw] name
+ # The field name where the invalid entry was detected.
+ # @return [String]
+ #
+ # @!attribute [rw] message
+ # A message about the validation exception.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/ValidationExceptionField AWS API Documentation
+ #
+ class ValidationExceptionField < Struct.new(
+ :name,
+ :message)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ end
+end
diff --git a/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/waiters.rb b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/waiters.rb
new file mode 100644
index 00000000000..b9b031a990c
--- /dev/null
+++ b/gems/aws-sdk-appfabric/lib/aws-sdk-appfabric/waiters.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+require 'aws-sdk-core/waiters'
+
+module Aws::AppFabric
+ module Waiters
+ end
+end
diff --git a/gems/aws-sdk-appfabric/spec/endpoint_provider_spec.rb b/gems/aws-sdk-appfabric/spec/endpoint_provider_spec.rb
new file mode 100644
index 00000000000..466b68bdc74
--- /dev/null
+++ b/gems/aws-sdk-appfabric/spec/endpoint_provider_spec.rb
@@ -0,0 +1,334 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+
+require_relative 'spec_helper'
+
+module Aws::AppFabric
+ describe EndpointProvider do
+ subject { Aws::AppFabric::EndpointProvider.new }
+
+ context 'For region us-gov-east-1 with FIPS enabled and DualStack enabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric-fips.us-gov-east-1.api.aws"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-gov-east-1", :use_dual_stack=>true})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For region us-gov-east-1 with FIPS enabled and DualStack disabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric-fips.us-gov-east-1.amazonaws.com"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-gov-east-1", :use_dual_stack=>false})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For region us-gov-east-1 with FIPS disabled and DualStack enabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric.us-gov-east-1.api.aws"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-gov-east-1", :use_dual_stack=>true})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For region us-gov-east-1 with FIPS disabled and DualStack disabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric.us-gov-east-1.amazonaws.com"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-gov-east-1", :use_dual_stack=>false})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For region cn-north-1 with FIPS enabled and DualStack enabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric-fips.cn-north-1.api.amazonwebservices.com.cn"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>true, :region=>"cn-north-1", :use_dual_stack=>true})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For region cn-north-1 with FIPS enabled and DualStack disabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric-fips.cn-north-1.amazonaws.com.cn"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>true, :region=>"cn-north-1", :use_dual_stack=>false})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For region cn-north-1 with FIPS disabled and DualStack enabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric.cn-north-1.api.amazonwebservices.com.cn"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>false, :region=>"cn-north-1", :use_dual_stack=>true})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For region cn-north-1 with FIPS disabled and DualStack disabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric.cn-north-1.amazonaws.com.cn"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>false, :region=>"cn-north-1", :use_dual_stack=>false})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For region us-iso-east-1 with FIPS enabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"FIPS and DualStack are enabled, but this partition does not support one or both"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-iso-east-1", :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
+ context 'For region us-iso-east-1 with FIPS enabled and DualStack disabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric-fips.us-iso-east-1.c2s.ic.gov"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-iso-east-1", :use_dual_stack=>false})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For region us-iso-east-1 with FIPS disabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"DualStack is enabled but this partition does not support DualStack"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-iso-east-1", :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
+ context 'For region us-iso-east-1 with FIPS disabled and DualStack disabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric.us-iso-east-1.c2s.ic.gov"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-iso-east-1", :use_dual_stack=>false})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For region us-east-1 with FIPS enabled and DualStack enabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric-fips.us-east-1.api.aws"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-east-1", :use_dual_stack=>true})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For region us-east-1 with FIPS enabled and DualStack disabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric-fips.us-east-1.amazonaws.com"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-east-1", :use_dual_stack=>false})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For region us-east-1 with FIPS disabled and DualStack enabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric.us-east-1.api.aws"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-east-1", :use_dual_stack=>true})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For region us-east-1 with FIPS disabled and DualStack disabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric.us-east-1.amazonaws.com"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-east-1", :use_dual_stack=>false})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For region us-isob-east-1 with FIPS enabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"FIPS and DualStack are enabled, but this partition does not support one or both"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-isob-east-1", :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
+ context 'For region us-isob-east-1 with FIPS enabled and DualStack disabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric-fips.us-isob-east-1.sc2s.sgov.gov"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-isob-east-1", :use_dual_stack=>false})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For region us-isob-east-1 with FIPS disabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"DualStack is enabled but this partition does not support DualStack"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-isob-east-1", :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
+ context 'For region us-isob-east-1 with FIPS disabled and DualStack disabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://appfabric.us-isob-east-1.sc2s.sgov.gov"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-isob-east-1", :use_dual_stack=>false})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For custom endpoint with fips disabled and dualstack disabled' do
+ let(:expected) do
+ {"endpoint"=>{"url"=>"https://example.com"}}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-east-1", :use_dual_stack=>false, :endpoint=>"https://example.com"})
+ endpoint = subject.resolve_endpoint(params)
+ expect(endpoint.url).to eq(expected['endpoint']['url'])
+ expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
+ expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ end
+ end
+
+ context 'For custom endpoint with fips enabled and dualstack disabled' do
+ let(:expected) do
+ {"error"=>"Invalid Configuration: FIPS and custom endpoint are not supported"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-east-1", :use_dual_stack=>false, :endpoint=>"https://example.com"})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
+ context 'For custom endpoint with fips disabled and dualstack enabled' do
+ let(:expected) do
+ {"error"=>"Invalid Configuration: Dualstack and custom endpoint are not supported"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-east-1", :use_dual_stack=>true, :endpoint=>"https://example.com"})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
+ end
+end
diff --git a/gems/aws-sdk-appfabric/spec/spec_helper.rb b/gems/aws-sdk-appfabric/spec/spec_helper.rb
new file mode 100644
index 00000000000..e414b874350
--- /dev/null
+++ b/gems/aws-sdk-appfabric/spec/spec_helper.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+# WARNING ABOUT GENERATED CODE
+#
+# This file is generated. See the contributing guide for more information:
+# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
+#
+# WARNING ABOUT GENERATED CODE
+
+require_relative '../../aws-sdk-core/spec/shared_spec_helper'
+
+$:.unshift(File.expand_path('../../lib', __FILE__))
+$:.unshift(File.expand_path('../../../aws-sdk-core/lib', __FILE__))
+$:.unshift(File.expand_path('../../../aws-sigv4/lib', __FILE__))
+
+require 'rspec'
+require 'webmock/rspec'
+require 'aws-sdk-appfabric'
diff --git a/gems/aws-sdk-appflow/CHANGELOG.md b/gems/aws-sdk-appflow/CHANGELOG.md
index ba9a59af0d5..085677a5760 100644
--- a/gems/aws-sdk-appflow/CHANGELOG.md
+++ b/gems/aws-sdk-appflow/CHANGELOG.md
@@ -1,6 +1,11 @@
Unreleased Changes
------------------
+1.45.0 (2023-06-27)
+------------------
+
+* Feature - This release adds support to bypass SSO with the SAPOData connector when connecting to an SAP instance.
+
1.44.0 (2023-06-20)
------------------
diff --git a/gems/aws-sdk-appflow/VERSION b/gems/aws-sdk-appflow/VERSION
index 372cf402c73..50aceaa7b71 100644
--- a/gems/aws-sdk-appflow/VERSION
+++ b/gems/aws-sdk-appflow/VERSION
@@ -1 +1 @@
-1.44.0
+1.45.0
diff --git a/gems/aws-sdk-appflow/lib/aws-sdk-appflow.rb b/gems/aws-sdk-appflow/lib/aws-sdk-appflow.rb
index 86e3652b0b3..7fd271edeeb 100644
--- a/gems/aws-sdk-appflow/lib/aws-sdk-appflow.rb
+++ b/gems/aws-sdk-appflow/lib/aws-sdk-appflow.rb
@@ -52,6 +52,6 @@
# @!group service
module Aws::Appflow
- GEM_VERSION = '1.44.0'
+ GEM_VERSION = '1.45.0'
end
diff --git a/gems/aws-sdk-appflow/lib/aws-sdk-appflow/client.rb b/gems/aws-sdk-appflow/lib/aws-sdk-appflow/client.rb
index 797d8aa6ff6..ae569b9d00f 100644
--- a/gems/aws-sdk-appflow/lib/aws-sdk-appflow/client.rb
+++ b/gems/aws-sdk-appflow/lib/aws-sdk-appflow/client.rb
@@ -580,6 +580,7 @@ def cancel_flow_executions(params = {}, options = {})
# auth_code_url: "AuthCodeUrl", # required
# o_auth_scopes: ["OAuthScope"], # required
# },
+ # disable_sso: false,
# },
# custom_connector: {
# profile_properties: {
@@ -1479,6 +1480,7 @@ def describe_connector_entity(params = {}, options = {})
# resp.connector_profile_details[0].connector_profile_properties.sapo_data.o_auth_properties.auth_code_url #=> String
# resp.connector_profile_details[0].connector_profile_properties.sapo_data.o_auth_properties.o_auth_scopes #=> Array
# resp.connector_profile_details[0].connector_profile_properties.sapo_data.o_auth_properties.o_auth_scopes[0] #=> String
+ # resp.connector_profile_details[0].connector_profile_properties.sapo_data.disable_sso #=> Boolean
# resp.connector_profile_details[0].connector_profile_properties.custom_connector.profile_properties #=> Hash
# resp.connector_profile_details[0].connector_profile_properties.custom_connector.profile_properties["ProfilePropertyKey"] #=> String
# resp.connector_profile_details[0].connector_profile_properties.custom_connector.o_auth_2_properties.token_url #=> String
@@ -2602,6 +2604,7 @@ def untag_resource(params = {}, options = {})
# auth_code_url: "AuthCodeUrl", # required
# o_auth_scopes: ["OAuthScope"], # required
# },
+ # disable_sso: false,
# },
# custom_connector: {
# profile_properties: {
@@ -3214,7 +3217,7 @@ def build_request(operation_name, params = {})
params: params,
config: config)
context[:gem_name] = 'aws-sdk-appflow'
- context[:gem_version] = '1.44.0'
+ context[:gem_version] = '1.45.0'
Seahorse::Client::Request.new(handlers, context)
end
diff --git a/gems/aws-sdk-appflow/lib/aws-sdk-appflow/client_api.rb b/gems/aws-sdk-appflow/lib/aws-sdk-appflow/client_api.rb
index 5d2582e77f8..28b55b07c7c 100644
--- a/gems/aws-sdk-appflow/lib/aws-sdk-appflow/client_api.rb
+++ b/gems/aws-sdk-appflow/lib/aws-sdk-appflow/client_api.rb
@@ -1264,6 +1264,7 @@ module ClientApi
SAPODataConnectorProfileProperties.add_member(:logon_language, Shapes::ShapeRef.new(shape: LogonLanguage, location_name: "logonLanguage"))
SAPODataConnectorProfileProperties.add_member(:private_link_service_name, Shapes::ShapeRef.new(shape: PrivateLinkServiceName, location_name: "privateLinkServiceName"))
SAPODataConnectorProfileProperties.add_member(:o_auth_properties, Shapes::ShapeRef.new(shape: OAuthProperties, location_name: "oAuthProperties"))
+ SAPODataConnectorProfileProperties.add_member(:disable_sso, Shapes::ShapeRef.new(shape: Boolean, location_name: "disableSSO"))
SAPODataConnectorProfileProperties.struct_class = Types::SAPODataConnectorProfileProperties
SAPODataDestinationProperties.add_member(:object_path, Shapes::ShapeRef.new(shape: Object, required: true, location_name: "objectPath"))
diff --git a/gems/aws-sdk-appflow/lib/aws-sdk-appflow/types.rb b/gems/aws-sdk-appflow/lib/aws-sdk-appflow/types.rb
index ae806554cff..1592109c4fe 100644
--- a/gems/aws-sdk-appflow/lib/aws-sdk-appflow/types.rb
+++ b/gems/aws-sdk-appflow/lib/aws-sdk-appflow/types.rb
@@ -4162,6 +4162,20 @@ class SAPODataConnectorProfileCredentials < Struct.new(
# authentication.
# @return [Types::OAuthProperties]
#
+ # @!attribute [rw] disable_sso
+ # If you set this parameter to `true`, Amazon AppFlow bypasses the
+ # single sign-on (SSO) settings in your SAP account when it accesses
+ # your SAP OData instance.
+ #
+ # Whether you need this option depends on the types of credentials
+ # that you applied to your SAP OData connection profile. If your
+ # profile uses basic authentication credentials, SAP SSO can prevent
+ # Amazon AppFlow from connecting to your account with your username
+ # and password. In this case, bypassing SSO makes it possible for
+ # Amazon AppFlow to connect successfully. However, if your profile
+ # uses OAuth credentials, this parameter has no affect.
+ # @return [Boolean]
+ #
# @see http://docs.aws.amazon.com/goto/WebAPI/appflow-2020-08-23/SAPODataConnectorProfileProperties AWS API Documentation
#
class SAPODataConnectorProfileProperties < Struct.new(
@@ -4171,7 +4185,8 @@ class SAPODataConnectorProfileProperties < Struct.new(
:client_number,
:logon_language,
:private_link_service_name,
- :o_auth_properties)
+ :o_auth_properties,
+ :disable_sso)
SENSITIVE = []
include Aws::Structure
end
diff --git a/gems/aws-sdk-emrserverless/CHANGELOG.md b/gems/aws-sdk-emrserverless/CHANGELOG.md
index 407653611e8..3d022e63b99 100644
--- a/gems/aws-sdk-emrserverless/CHANGELOG.md
+++ b/gems/aws-sdk-emrserverless/CHANGELOG.md
@@ -1,6 +1,11 @@
Unreleased Changes
------------------
+1.10.0 (2023-06-27)
+------------------
+
+* Feature - This release adds support to update the release label of an EMR Serverless application to upgrade it to a different version of Amazon EMR via UpdateApplication API.
+
1.9.0 (2023-06-15)
------------------
diff --git a/gems/aws-sdk-emrserverless/VERSION b/gems/aws-sdk-emrserverless/VERSION
index f8e233b2733..81c871de46b 100644
--- a/gems/aws-sdk-emrserverless/VERSION
+++ b/gems/aws-sdk-emrserverless/VERSION
@@ -1 +1 @@
-1.9.0
+1.10.0
diff --git a/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless.rb b/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless.rb
index 1b3c0345441..1994d45eca9 100644
--- a/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless.rb
+++ b/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless.rb
@@ -52,6 +52,6 @@
# @!group service
module Aws::EMRServerless
- GEM_VERSION = '1.9.0'
+ GEM_VERSION = '1.10.0'
end
diff --git a/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless/client.rb b/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless/client.rb
index e00a2cbcaa5..d5fe10589cf 100644
--- a/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless/client.rb
+++ b/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless/client.rb
@@ -413,7 +413,7 @@ def cancel_job_run(params = {}, options = {})
# The name of the application.
#
# @option params [required, String] :release_label
- # The EMR release associated with the application.
+ # The Amazon EMR release associated with the application.
#
# @option params [required, String] :type
# The type of application you want to start, such as Spark or Hive.
@@ -1133,6 +1133,10 @@ def untag_resource(params = {}, options = {})
# image details in this parameter for each worker type, or in
# `imageConfiguration` for all worker types.
#
+ # @option params [String] :release_label
+ # The Amazon EMR release label for the application. You can change the
+ # release label to use a different release of Amazon EMR.
+ #
# @return [Types::UpdateApplicationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::UpdateApplicationResponse#application #application} => Types::Application
@@ -1179,6 +1183,7 @@ def untag_resource(params = {}, options = {})
# },
# },
# },
+ # release_label: "ReleaseLabel",
# })
#
# @example Response structure
@@ -1238,7 +1243,7 @@ def build_request(operation_name, params = {})
params: params,
config: config)
context[:gem_name] = 'aws-sdk-emrserverless'
- context[:gem_version] = '1.9.0'
+ context[:gem_version] = '1.10.0'
Seahorse::Client::Request.new(handlers, context)
end
diff --git a/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless/client_api.rb b/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless/client_api.rb
index 486b586bee7..982f911fb52 100644
--- a/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless/client_api.rb
+++ b/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless/client_api.rb
@@ -442,6 +442,7 @@ module ClientApi
UpdateApplicationRequest.add_member(:architecture, Shapes::ShapeRef.new(shape: Architecture, location_name: "architecture"))
UpdateApplicationRequest.add_member(:image_configuration, Shapes::ShapeRef.new(shape: ImageConfigurationInput, location_name: "imageConfiguration"))
UpdateApplicationRequest.add_member(:worker_type_specifications, Shapes::ShapeRef.new(shape: WorkerTypeSpecificationInputMap, location_name: "workerTypeSpecifications"))
+ UpdateApplicationRequest.add_member(:release_label, Shapes::ShapeRef.new(shape: ReleaseLabel, location_name: "releaseLabel"))
UpdateApplicationRequest.struct_class = Types::UpdateApplicationRequest
UpdateApplicationResponse.add_member(:application, Shapes::ShapeRef.new(shape: Application, required: true, location_name: "application"))
diff --git a/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless/types.rb b/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless/types.rb
index 31244e02d62..d452fa3848a 100644
--- a/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless/types.rb
+++ b/gems/aws-sdk-emrserverless/lib/aws-sdk-emrserverless/types.rb
@@ -10,8 +10,8 @@
module Aws::EMRServerless
module Types
- # Information about an application. EMR Serverless uses applications to
- # run jobs.
+ # Information about an application. Amazon EMR Serverless uses
+ # applications to run jobs.
#
# @!attribute [rw] application_id
# The ID of the application.
@@ -26,7 +26,7 @@ module Types
# @return [String]
#
# @!attribute [rw] release_label
- # The EMR release associated with the application.
+ # The Amazon EMR release associated with the application.
# @return [String]
#
# @!attribute [rw] type
@@ -131,7 +131,7 @@ class Application < Struct.new(
# @return [String]
#
# @!attribute [rw] release_label
- # The EMR release associated with the application.
+ # The Amazon EMR release associated with the application.
# @return [String]
#
# @!attribute [rw] type
@@ -316,7 +316,7 @@ class ConflictException < Struct.new(
# @return [String]
#
# @!attribute [rw] release_label
- # The EMR release associated with the application.
+ # The Amazon EMR release associated with the application.
# @return [String]
#
# @!attribute [rw] type
@@ -644,8 +644,8 @@ class Unknown < JobDriver; end
end
# Information about a job run. A job run is a unit of work, such as a
- # Spark JAR, Hive query, or SparkSQL query, that you submit to an EMR
- # Serverless application.
+ # Spark JAR, Hive query, or SparkSQL query, that you submit to an Amazon
+ # EMR Serverless application.
#
# @!attribute [rw] application_id
# The ID of the application the job is running on.
@@ -688,8 +688,8 @@ class Unknown < JobDriver; end
# @return [String]
#
# @!attribute [rw] release_label
- # The EMR release associated with the application your job is running
- # on.
+ # The Amazon EMR release associated with the application your job is
+ # running on.
# @return [String]
#
# @!attribute [rw] configuration_overrides
@@ -728,11 +728,11 @@ class Unknown < JobDriver; end
# @return [Integer]
#
# @!attribute [rw] billed_resource_utilization
- # The aggregate vCPU, memory, and storage that AWS has billed for the
- # job run. The billed resources include a 1-minute minimum usage for
- # workers, plus additional storage over 20 GB per worker. Note that
- # billed resources do not include usage for idle pre-initialized
- # workers.
+ # The aggregate vCPU, memory, and storage that Amazon Web Services has
+ # billed for the job run. The billed resources include a 1-minute
+ # minimum usage for workers, plus additional storage over 20 GB per
+ # worker. Note that billed resources do not include usage for idle
+ # pre-initialized workers.
# @return [Types::ResourceUtilization]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/emr-serverless-2021-07-13/JobRun AWS API Documentation
@@ -804,8 +804,8 @@ class JobRun < Struct.new(
# @return [String]
#
# @!attribute [rw] release_label
- # The EMR release associated with the application your job is running
- # on.
+ # The Amazon EMR release associated with the application your job is
+ # running on.
# @return [String]
#
# @!attribute [rw] type
@@ -1380,6 +1380,11 @@ class UntagResourceResponse < Aws::EmptyStructure; end
# `imageConfiguration` for all worker types.
# @return [Hash]
#
+ # @!attribute [rw] release_label
+ # The Amazon EMR release label for the application. You can change the
+ # release label to use a different release of Amazon EMR.
+ # @return [String]
+ #
# @see http://docs.aws.amazon.com/goto/WebAPI/emr-serverless-2021-07-13/UpdateApplicationRequest AWS API Documentation
#
class UpdateApplicationRequest < Struct.new(
@@ -1392,7 +1397,8 @@ class UpdateApplicationRequest < Struct.new(
:network_configuration,
:architecture,
:image_configuration,
- :worker_type_specifications)
+ :worker_type_specifications,
+ :release_label)
SENSITIVE = []
include Aws::Structure
end
diff --git a/gems/aws-sdk-ivs/CHANGELOG.md b/gems/aws-sdk-ivs/CHANGELOG.md
index 7cda83cb162..ebb300aea98 100644
--- a/gems/aws-sdk-ivs/CHANGELOG.md
+++ b/gems/aws-sdk-ivs/CHANGELOG.md
@@ -1,6 +1,11 @@
Unreleased Changes
------------------
+1.33.0 (2023-06-27)
+------------------
+
+* Feature - IVS customers can now revoke the viewer session associated with an auth token, to prevent and stop playback using that token.
+
1.32.0 (2023-06-15)
------------------
diff --git a/gems/aws-sdk-ivs/VERSION b/gems/aws-sdk-ivs/VERSION
index 359c41089a4..7aa332e4163 100644
--- a/gems/aws-sdk-ivs/VERSION
+++ b/gems/aws-sdk-ivs/VERSION
@@ -1 +1 @@
-1.32.0
+1.33.0
diff --git a/gems/aws-sdk-ivs/lib/aws-sdk-ivs.rb b/gems/aws-sdk-ivs/lib/aws-sdk-ivs.rb
index 63153ab817d..b130d9b4ad2 100644
--- a/gems/aws-sdk-ivs/lib/aws-sdk-ivs.rb
+++ b/gems/aws-sdk-ivs/lib/aws-sdk-ivs.rb
@@ -52,6 +52,6 @@
# @!group service
module Aws::IVS
- GEM_VERSION = '1.32.0'
+ GEM_VERSION = '1.33.0'
end
diff --git a/gems/aws-sdk-ivs/lib/aws-sdk-ivs/client.rb b/gems/aws-sdk-ivs/lib/aws-sdk-ivs/client.rb
index 153ec9e6229..9e30c67a196 100644
--- a/gems/aws-sdk-ivs/lib/aws-sdk-ivs/client.rb
+++ b/gems/aws-sdk-ivs/lib/aws-sdk-ivs/client.rb
@@ -456,6 +456,45 @@ def batch_get_stream_key(params = {}, options = {})
req.send_request(options)
end
+ # Performs StartViewerSessionRevocation on multiple channel ARN and
+ # viewer ID pairs simultaneously.
+ #
+ # @option params [required, Array] :viewer_sessions
+ # Array of viewer sessions, one per channel-ARN and viewer-ID pair.
+ #
+ # @return [Types::BatchStartViewerSessionRevocationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::BatchStartViewerSessionRevocationResponse#errors #errors} => Array<Types::BatchStartViewerSessionRevocationError>
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.batch_start_viewer_session_revocation({
+ # viewer_sessions: [ # required
+ # {
+ # channel_arn: "ChannelArn", # required
+ # viewer_id: "ViewerId", # required
+ # viewer_session_versions_less_than_or_equal_to: 1,
+ # },
+ # ],
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.errors #=> Array
+ # resp.errors[0].channel_arn #=> String
+ # resp.errors[0].code #=> String
+ # resp.errors[0].message #=> String
+ # resp.errors[0].viewer_id #=> String
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/BatchStartViewerSessionRevocation AWS API Documentation
+ #
+ # @overload batch_start_viewer_session_revocation(params = {})
+ # @param [Hash] params ({})
+ def batch_start_viewer_session_revocation(params = {}, options = {})
+ req = build_request(:batch_start_viewer_session_revocation, params)
+ req.send_request(options)
+ end
+
# Creates a new channel and an associated stream key to start streaming.
#
# @option params [Boolean] :authorized
@@ -1526,6 +1565,48 @@ def put_metadata(params = {}, options = {})
req.send_request(options)
end
+ # Starts the process of revoking the viewer session associated with a
+ # specified channel ARN and viewer ID. Optionally, you can provide a
+ # version to revoke viewer sessions less than and including that
+ # version. For instructions on associating a viewer ID with a viewer
+ # session, see [Setting Up Private Channels][1].
+ #
+ #
+ #
+ # [1]: https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html
+ #
+ # @option params [required, String] :channel_arn
+ # The ARN of the channel associated with the viewer session to revoke.
+ #
+ # @option params [required, String] :viewer_id
+ # The ID of the viewer associated with the viewer session to revoke. Do
+ # not use this field for personally identifying, confidential, or
+ # sensitive information.
+ #
+ # @option params [Integer] :viewer_session_versions_less_than_or_equal_to
+ # An optional filter on which versions of the viewer session to revoke.
+ # All versions less than or equal to the specified version will be
+ # revoked. Default: 0.
+ #
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.start_viewer_session_revocation({
+ # channel_arn: "ChannelArn", # required
+ # viewer_id: "ViewerId", # required
+ # viewer_session_versions_less_than_or_equal_to: 1,
+ # })
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/StartViewerSessionRevocation AWS API Documentation
+ #
+ # @overload start_viewer_session_revocation(params = {})
+ # @param [Hash] params ({})
+ def start_viewer_session_revocation(params = {}, options = {})
+ req = build_request(:start_viewer_session_revocation, params)
+ req.send_request(options)
+ end
+
# Disconnects the incoming RTMPS stream for the specified channel. Can
# be used in conjunction with DeleteStreamKey to prevent further
# streaming to a channel.
@@ -1770,7 +1851,7 @@ def build_request(operation_name, params = {})
params: params,
config: config)
context[:gem_name] = 'aws-sdk-ivs'
- context[:gem_version] = '1.32.0'
+ context[:gem_version] = '1.33.0'
Seahorse::Client::Request.new(handlers, context)
end
diff --git a/gems/aws-sdk-ivs/lib/aws-sdk-ivs/client_api.rb b/gems/aws-sdk-ivs/lib/aws-sdk-ivs/client_api.rb
index ca225d10c90..9da52ddf44f 100644
--- a/gems/aws-sdk-ivs/lib/aws-sdk-ivs/client_api.rb
+++ b/gems/aws-sdk-ivs/lib/aws-sdk-ivs/client_api.rb
@@ -21,6 +21,12 @@ module ClientApi
BatchGetChannelResponse = Shapes::StructureShape.new(name: 'BatchGetChannelResponse')
BatchGetStreamKeyRequest = Shapes::StructureShape.new(name: 'BatchGetStreamKeyRequest')
BatchGetStreamKeyResponse = Shapes::StructureShape.new(name: 'BatchGetStreamKeyResponse')
+ BatchStartViewerSessionRevocationError = Shapes::StructureShape.new(name: 'BatchStartViewerSessionRevocationError')
+ BatchStartViewerSessionRevocationErrors = Shapes::ListShape.new(name: 'BatchStartViewerSessionRevocationErrors')
+ BatchStartViewerSessionRevocationRequest = Shapes::StructureShape.new(name: 'BatchStartViewerSessionRevocationRequest')
+ BatchStartViewerSessionRevocationResponse = Shapes::StructureShape.new(name: 'BatchStartViewerSessionRevocationResponse')
+ BatchStartViewerSessionRevocationViewerSession = Shapes::StructureShape.new(name: 'BatchStartViewerSessionRevocationViewerSession')
+ BatchStartViewerSessionRevocationViewerSessionList = Shapes::ListShape.new(name: 'BatchStartViewerSessionRevocationViewerSessionList')
Boolean = Shapes::BooleanShape.new(name: 'Boolean')
Channel = Shapes::StructureShape.new(name: 'Channel')
ChannelArn = Shapes::StringShape.new(name: 'ChannelArn')
@@ -109,6 +115,8 @@ module ClientApi
S3DestinationBucketName = Shapes::StringShape.new(name: 'S3DestinationBucketName')
S3DestinationConfiguration = Shapes::StructureShape.new(name: 'S3DestinationConfiguration')
ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException')
+ StartViewerSessionRevocationRequest = Shapes::StructureShape.new(name: 'StartViewerSessionRevocationRequest')
+ StartViewerSessionRevocationResponse = Shapes::StructureShape.new(name: 'StartViewerSessionRevocationResponse')
StopStreamRequest = Shapes::StructureShape.new(name: 'StopStreamRequest')
StopStreamResponse = Shapes::StructureShape.new(name: 'StopStreamResponse')
Stream = Shapes::StructureShape.new(name: 'Stream')
@@ -152,6 +160,8 @@ module ClientApi
UpdateChannelResponse = Shapes::StructureShape.new(name: 'UpdateChannelResponse')
ValidationException = Shapes::StructureShape.new(name: 'ValidationException')
VideoConfiguration = Shapes::StructureShape.new(name: 'VideoConfiguration')
+ ViewerId = Shapes::StringShape.new(name: 'ViewerId')
+ ViewerSessionVersion = Shapes::IntegerShape.new(name: 'ViewerSessionVersion')
errorCode = Shapes::StringShape.new(name: 'errorCode')
errorMessage = Shapes::StringShape.new(name: 'errorMessage')
@@ -185,6 +195,27 @@ module ClientApi
BatchGetStreamKeyResponse.add_member(:stream_keys, Shapes::ShapeRef.new(shape: StreamKeys, location_name: "streamKeys"))
BatchGetStreamKeyResponse.struct_class = Types::BatchGetStreamKeyResponse
+ BatchStartViewerSessionRevocationError.add_member(:channel_arn, Shapes::ShapeRef.new(shape: ChannelArn, required: true, location_name: "channelArn"))
+ BatchStartViewerSessionRevocationError.add_member(:code, Shapes::ShapeRef.new(shape: errorCode, location_name: "code"))
+ BatchStartViewerSessionRevocationError.add_member(:message, Shapes::ShapeRef.new(shape: errorMessage, location_name: "message"))
+ BatchStartViewerSessionRevocationError.add_member(:viewer_id, Shapes::ShapeRef.new(shape: ViewerId, required: true, location_name: "viewerId"))
+ BatchStartViewerSessionRevocationError.struct_class = Types::BatchStartViewerSessionRevocationError
+
+ BatchStartViewerSessionRevocationErrors.member = Shapes::ShapeRef.new(shape: BatchStartViewerSessionRevocationError)
+
+ BatchStartViewerSessionRevocationRequest.add_member(:viewer_sessions, Shapes::ShapeRef.new(shape: BatchStartViewerSessionRevocationViewerSessionList, required: true, location_name: "viewerSessions"))
+ BatchStartViewerSessionRevocationRequest.struct_class = Types::BatchStartViewerSessionRevocationRequest
+
+ BatchStartViewerSessionRevocationResponse.add_member(:errors, Shapes::ShapeRef.new(shape: BatchStartViewerSessionRevocationErrors, location_name: "errors"))
+ BatchStartViewerSessionRevocationResponse.struct_class = Types::BatchStartViewerSessionRevocationResponse
+
+ BatchStartViewerSessionRevocationViewerSession.add_member(:channel_arn, Shapes::ShapeRef.new(shape: ChannelArn, required: true, location_name: "channelArn"))
+ BatchStartViewerSessionRevocationViewerSession.add_member(:viewer_id, Shapes::ShapeRef.new(shape: ViewerId, required: true, location_name: "viewerId"))
+ BatchStartViewerSessionRevocationViewerSession.add_member(:viewer_session_versions_less_than_or_equal_to, Shapes::ShapeRef.new(shape: ViewerSessionVersion, location_name: "viewerSessionVersionsLessThanOrEqualTo"))
+ BatchStartViewerSessionRevocationViewerSession.struct_class = Types::BatchStartViewerSessionRevocationViewerSession
+
+ BatchStartViewerSessionRevocationViewerSessionList.member = Shapes::ShapeRef.new(shape: BatchStartViewerSessionRevocationViewerSession)
+
Channel.add_member(:arn, Shapes::ShapeRef.new(shape: ChannelArn, location_name: "arn"))
Channel.add_member(:authorized, Shapes::ShapeRef.new(shape: IsAuthorized, location_name: "authorized"))
Channel.add_member(:ingest_endpoint, Shapes::ShapeRef.new(shape: IngestEndpoint, location_name: "ingestEndpoint"))
@@ -427,6 +458,13 @@ module ClientApi
ServiceQuotaExceededException.add_member(:exception_message, Shapes::ShapeRef.new(shape: errorMessage, location_name: "exceptionMessage"))
ServiceQuotaExceededException.struct_class = Types::ServiceQuotaExceededException
+ StartViewerSessionRevocationRequest.add_member(:channel_arn, Shapes::ShapeRef.new(shape: ChannelArn, required: true, location_name: "channelArn"))
+ StartViewerSessionRevocationRequest.add_member(:viewer_id, Shapes::ShapeRef.new(shape: ViewerId, required: true, location_name: "viewerId"))
+ StartViewerSessionRevocationRequest.add_member(:viewer_session_versions_less_than_or_equal_to, Shapes::ShapeRef.new(shape: ViewerSessionVersion, location_name: "viewerSessionVersionsLessThanOrEqualTo"))
+ StartViewerSessionRevocationRequest.struct_class = Types::StartViewerSessionRevocationRequest
+
+ StartViewerSessionRevocationResponse.struct_class = Types::StartViewerSessionRevocationResponse
+
StopStreamRequest.add_member(:channel_arn, Shapes::ShapeRef.new(shape: ChannelArn, required: true, location_name: "channelArn"))
StopStreamRequest.struct_class = Types::StopStreamRequest
@@ -583,6 +621,15 @@ module ClientApi
o.output = Shapes::ShapeRef.new(shape: BatchGetStreamKeyResponse)
end)
+ api.add_operation(:batch_start_viewer_session_revocation, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "BatchStartViewerSessionRevocation"
+ o.http_method = "POST"
+ o.http_request_uri = "/BatchStartViewerSessionRevocation"
+ o.input = Shapes::ShapeRef.new(shape: BatchStartViewerSessionRevocationRequest)
+ o.output = Shapes::ShapeRef.new(shape: BatchStartViewerSessionRevocationResponse)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ end)
+
api.add_operation(:create_channel, Seahorse::Model::Operation.new.tap do |o|
o.name = "CreateChannel"
o.http_method = "POST"
@@ -878,6 +925,18 @@ module ClientApi
o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
end)
+ api.add_operation(:start_viewer_session_revocation, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "StartViewerSessionRevocation"
+ o.http_method = "POST"
+ o.http_request_uri = "/StartViewerSessionRevocation"
+ o.input = Shapes::ShapeRef.new(shape: StartViewerSessionRevocationRequest)
+ o.output = Shapes::ShapeRef.new(shape: StartViewerSessionRevocationResponse)
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
+ end)
+
api.add_operation(:stop_stream, Seahorse::Model::Operation.new.tap do |o|
o.name = "StopStream"
o.http_method = "POST"
diff --git a/gems/aws-sdk-ivs/lib/aws-sdk-ivs/endpoints.rb b/gems/aws-sdk-ivs/lib/aws-sdk-ivs/endpoints.rb
index 60098f401fd..0aef785cbd9 100644
--- a/gems/aws-sdk-ivs/lib/aws-sdk-ivs/endpoints.rb
+++ b/gems/aws-sdk-ivs/lib/aws-sdk-ivs/endpoints.rb
@@ -40,6 +40,20 @@ def self.build(context)
end
end
+ class BatchStartViewerSessionRevocation
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::IVS::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
class CreateChannel
def self.build(context)
unless context.config.regional_endpoint
@@ -348,6 +362,20 @@ def self.build(context)
end
end
+ class StartViewerSessionRevocation
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::IVS::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
class StopStream
def self.build(context)
unless context.config.regional_endpoint
diff --git a/gems/aws-sdk-ivs/lib/aws-sdk-ivs/plugins/endpoints.rb b/gems/aws-sdk-ivs/lib/aws-sdk-ivs/plugins/endpoints.rb
index 585ea39a708..2772d2a63ac 100644
--- a/gems/aws-sdk-ivs/lib/aws-sdk-ivs/plugins/endpoints.rb
+++ b/gems/aws-sdk-ivs/lib/aws-sdk-ivs/plugins/endpoints.rb
@@ -60,6 +60,8 @@ def parameters_for_operation(context)
Aws::IVS::Endpoints::BatchGetChannel.build(context)
when :batch_get_stream_key
Aws::IVS::Endpoints::BatchGetStreamKey.build(context)
+ when :batch_start_viewer_session_revocation
+ Aws::IVS::Endpoints::BatchStartViewerSessionRevocation.build(context)
when :create_channel
Aws::IVS::Endpoints::CreateChannel.build(context)
when :create_recording_configuration
@@ -104,6 +106,8 @@ def parameters_for_operation(context)
Aws::IVS::Endpoints::ListTagsForResource.build(context)
when :put_metadata
Aws::IVS::Endpoints::PutMetadata.build(context)
+ when :start_viewer_session_revocation
+ Aws::IVS::Endpoints::StartViewerSessionRevocation.build(context)
when :stop_stream
Aws::IVS::Endpoints::StopStream.build(context)
when :tag_resource
diff --git a/gems/aws-sdk-ivs/lib/aws-sdk-ivs/types.rb b/gems/aws-sdk-ivs/lib/aws-sdk-ivs/types.rb
index 775a9932572..2e00158d2b0 100644
--- a/gems/aws-sdk-ivs/lib/aws-sdk-ivs/types.rb
+++ b/gems/aws-sdk-ivs/lib/aws-sdk-ivs/types.rb
@@ -133,6 +133,91 @@ class BatchGetStreamKeyResponse < Struct.new(
include Aws::Structure
end
+ # Error for a request in the batch for
+ # BatchStartViewerSessionRevocation. Each error is related to a specific
+ # channel-ARN and viewer-ID pair.
+ #
+ # @!attribute [rw] channel_arn
+ # Channel ARN.
+ # @return [String]
+ #
+ # @!attribute [rw] code
+ # Error code.
+ # @return [String]
+ #
+ # @!attribute [rw] message
+ # Error message, determined by the application.
+ # @return [String]
+ #
+ # @!attribute [rw] viewer_id
+ # The ID of the viewer session to revoke.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/BatchStartViewerSessionRevocationError AWS API Documentation
+ #
+ class BatchStartViewerSessionRevocationError < Struct.new(
+ :channel_arn,
+ :code,
+ :message,
+ :viewer_id)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] viewer_sessions
+ # Array of viewer sessions, one per channel-ARN and viewer-ID pair.
+ # @return [Array]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/BatchStartViewerSessionRevocationRequest AWS API Documentation
+ #
+ class BatchStartViewerSessionRevocationRequest < Struct.new(
+ :viewer_sessions)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] errors
+ # Each error object is related to a specific `channelArn` and
+ # `viewerId` pair in the request.
+ # @return [Array]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/BatchStartViewerSessionRevocationResponse AWS API Documentation
+ #
+ class BatchStartViewerSessionRevocationResponse < Struct.new(
+ :errors)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # A viewer session to revoke in the call to
+ # BatchStartViewerSessionRevocation.
+ #
+ # @!attribute [rw] channel_arn
+ # The ARN of the channel associated with the viewer session to revoke.
+ # @return [String]
+ #
+ # @!attribute [rw] viewer_id
+ # The ID of the viewer associated with the viewer session to revoke.
+ # Do not use this field for personally identifying, confidential, or
+ # sensitive information.
+ # @return [String]
+ #
+ # @!attribute [rw] viewer_session_versions_less_than_or_equal_to
+ # An optional filter on which versions of the viewer session to
+ # revoke. All versions less than or equal to the specified version
+ # will be revoked. Default: 0.
+ # @return [Integer]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/BatchStartViewerSessionRevocationViewerSession AWS API Documentation
+ #
+ class BatchStartViewerSessionRevocationViewerSession < Struct.new(
+ :channel_arn,
+ :viewer_id,
+ :viewer_session_versions_less_than_or_equal_to)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
# Object specifying a channel.
#
# @!attribute [rw] arn
@@ -1450,6 +1535,36 @@ class ServiceQuotaExceededException < Struct.new(
include Aws::Structure
end
+ # @!attribute [rw] channel_arn
+ # The ARN of the channel associated with the viewer session to revoke.
+ # @return [String]
+ #
+ # @!attribute [rw] viewer_id
+ # The ID of the viewer associated with the viewer session to revoke.
+ # Do not use this field for personally identifying, confidential, or
+ # sensitive information.
+ # @return [String]
+ #
+ # @!attribute [rw] viewer_session_versions_less_than_or_equal_to
+ # An optional filter on which versions of the viewer session to
+ # revoke. All versions less than or equal to the specified version
+ # will be revoked. Default: 0.
+ # @return [Integer]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/StartViewerSessionRevocationRequest AWS API Documentation
+ #
+ class StartViewerSessionRevocationRequest < Struct.new(
+ :channel_arn,
+ :viewer_id,
+ :viewer_session_versions_less_than_or_equal_to)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/StartViewerSessionRevocationResponse AWS API Documentation
+ #
+ class StartViewerSessionRevocationResponse < Aws::EmptyStructure; end
+
# @!attribute [rw] channel_arn
# ARN of the channel for which the stream is to be stopped.
# @return [String]
diff --git a/gems/aws-sdk-kinesisvideo/CHANGELOG.md b/gems/aws-sdk-kinesisvideo/CHANGELOG.md
index 66634017a12..5d1f160774c 100644
--- a/gems/aws-sdk-kinesisvideo/CHANGELOG.md
+++ b/gems/aws-sdk-kinesisvideo/CHANGELOG.md
@@ -1,6 +1,11 @@
Unreleased Changes
------------------
+1.49.0 (2023-06-27)
+------------------
+
+* Feature - General Availability (GA) release of Kinesis Video Streams at Edge, enabling customers to provide a configuration for the Kinesis Video Streams EdgeAgent running on an on-premise IoT device. Customers can now locally record from cameras and stream videos to the cloud on a configured schedule.
+
1.48.0 (2023-06-15)
------------------
diff --git a/gems/aws-sdk-kinesisvideo/VERSION b/gems/aws-sdk-kinesisvideo/VERSION
index 9db5ea12f52..7f3a46a841e 100644
--- a/gems/aws-sdk-kinesisvideo/VERSION
+++ b/gems/aws-sdk-kinesisvideo/VERSION
@@ -1 +1 @@
-1.48.0
+1.49.0
diff --git a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo.rb b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo.rb
index aee3c6b59a9..42cf78ce921 100644
--- a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo.rb
+++ b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo.rb
@@ -52,6 +52,6 @@
# @!group service
module Aws::KinesisVideo
- GEM_VERSION = '1.48.0'
+ GEM_VERSION = '1.49.0'
end
diff --git a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/client.rb b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/client.rb
index c5c51febf70..424010b503a 100644
--- a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/client.rb
+++ b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/client.rb
@@ -479,7 +479,7 @@ def create_signaling_channel(params = {}, options = {})
# Video Streams to use to encrypt stream data.
#
# If no key ID is specified, the default, Kinesis Video-managed key
- # (`aws/kinesisvideo`) is used.
+ # (`Amazon Web Services/kinesisvideo`) is used.
#
# For more information, see [DescribeKey][1].
#
@@ -535,6 +535,45 @@ def create_stream(params = {}, options = {})
req.send_request(options)
end
+ # An asynchronous API that deletes a stream’s existing edge
+ # configuration, as well as the corresponding media from the Edge Agent.
+ #
+ # When you invoke this API, the sync status is set to `DELETING`. A
+ # deletion process starts, in which active edge jobs are stopped and all
+ # media is deleted from the edge device. The time to delete varies,
+ # depending on the total amount of stored media. If the deletion process
+ # fails, the sync status changes to `DELETE_FAILED`. You will need to
+ # re-try the deletion.
+ #
+ # When the deletion process has completed successfully, the edge
+ # configuration is no longer accessible.
+ #
+ # @option params [String] :stream_name
+ # The name of the stream from which to delete the edge configuration.
+ # Specify either the `StreamName` or the `StreamARN`.
+ #
+ # @option params [String] :stream_arn
+ # The Amazon Resource Name (ARN) of the stream. Specify either the
+ # `StreamName` or the `StreamARN`.
+ #
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.delete_edge_configuration({
+ # stream_name: "StreamName",
+ # stream_arn: "ResourceARN",
+ # })
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DeleteEdgeConfiguration AWS API Documentation
+ #
+ # @overload delete_edge_configuration(params = {})
+ # @param [Hash] params ({})
+ def delete_edge_configuration(params = {}, options = {})
+ req = build_request(:delete_edge_configuration, params)
+ req.send_request(options)
+ end
+
# Deletes a specified signaling channel. `DeleteSignalingChannel` is an
# asynchronous operation. If you don't specify the channel's current
# version, the most recent version is deleted.
@@ -614,8 +653,10 @@ def delete_stream(params = {}, options = {})
end
# Describes a stream’s edge configuration that was set using the
- # `StartEdgeConfigurationUpdate` API. Use this API to get the status of
- # the configuration if the configuration is in sync with the Edge Agent.
+ # `StartEdgeConfigurationUpdate` API and the latest status of the edge
+ # agent's recorder and uploader jobs. Use this API to get the status of
+ # the configuration to determine if the configuration is in sync with
+ # the Edge Agent. Use this API to evaluate the health of the Edge Agent.
#
# @option params [String] :stream_name
# The name of the stream whose edge configuration you want to update.
@@ -634,6 +675,7 @@ def delete_stream(params = {}, options = {})
# * {Types::DescribeEdgeConfigurationOutput#sync_status #sync_status} => String
# * {Types::DescribeEdgeConfigurationOutput#failed_status_details #failed_status_details} => String
# * {Types::DescribeEdgeConfigurationOutput#edge_config #edge_config} => Types::EdgeConfig
+ # * {Types::DescribeEdgeConfigurationOutput#edge_agent_status #edge_agent_status} => Types::EdgeAgentStatus
#
# @example Request syntax with placeholder values
#
@@ -648,7 +690,7 @@ def delete_stream(params = {}, options = {})
# resp.stream_arn #=> String
# resp.creation_time #=> Time
# resp.last_updated_time #=> Time
- # resp.sync_status #=> String, one of "SYNCING", "ACKNOWLEDGED", "IN_SYNC", "SYNC_FAILED", "DELETING", "DELETE_FAILED"
+ # resp.sync_status #=> String, one of "SYNCING", "ACKNOWLEDGED", "IN_SYNC", "SYNC_FAILED", "DELETING", "DELETE_FAILED", "DELETING_ACKNOWLEDGED"
# resp.failed_status_details #=> String
# resp.edge_config.hub_device_arn #=> String
# resp.edge_config.recorder_config.media_source_config.media_uri_secret_arn #=> String
@@ -661,6 +703,14 @@ def delete_stream(params = {}, options = {})
# resp.edge_config.deletion_config.local_size_config.max_local_media_size_in_mb #=> Integer
# resp.edge_config.deletion_config.local_size_config.strategy_on_full_size #=> String, one of "DELETE_OLDEST_MEDIA", "DENY_NEW_MEDIA"
# resp.edge_config.deletion_config.delete_after_upload #=> Boolean
+ # resp.edge_agent_status.last_recorder_status.job_status_details #=> String
+ # resp.edge_agent_status.last_recorder_status.last_collected_time #=> Time
+ # resp.edge_agent_status.last_recorder_status.last_updated_time #=> Time
+ # resp.edge_agent_status.last_recorder_status.recorder_status #=> String, one of "SUCCESS", "USER_ERROR", "SYSTEM_ERROR"
+ # resp.edge_agent_status.last_uploader_status.job_status_details #=> String
+ # resp.edge_agent_status.last_uploader_status.last_collected_time #=> Time
+ # resp.edge_agent_status.last_uploader_status.last_updated_time #=> Time
+ # resp.edge_agent_status.last_uploader_status.uploader_status #=> String, one of "SUCCESS", "USER_ERROR", "SYSTEM_ERROR"
#
# @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DescribeEdgeConfiguration AWS API Documentation
#
@@ -717,9 +767,6 @@ def describe_image_generation_configuration(params = {}, options = {})
req.send_request(options)
end
- # Returns the most current information about the stream. Either
- # streamName or streamARN should be provided in the input.
- #
# Returns the most current information about the stream. The
# `streamName` or `streamARN` should be provided in the input.
#
@@ -1023,6 +1070,70 @@ def get_signaling_channel_endpoint(params = {}, options = {})
req.send_request(options)
end
+ # Returns an array of edge configurations associated with the specified
+ # Edge Agent.
+ #
+ # In the request, you must specify the Edge Agent `HubDeviceArn`.
+ #
+ # @option params [required, String] :hub_device_arn
+ # The "Internet of Things (IoT) Thing" Arn of the edge agent.
+ #
+ # @option params [Integer] :max_results
+ # The maximum number of edge configurations to return in the response.
+ # The default is 5.
+ #
+ # @option params [String] :next_token
+ # If you specify this parameter, when the result of a
+ # `ListEdgeAgentConfigurations` operation is truncated, the call returns
+ # the `NextToken` in the response. To get another batch of edge
+ # configurations, provide this token in your next request.
+ #
+ # @return [Types::ListEdgeAgentConfigurationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::ListEdgeAgentConfigurationsOutput#edge_configs #edge_configs} => Array<Types::ListEdgeAgentConfigurationsEdgeConfig>
+ # * {Types::ListEdgeAgentConfigurationsOutput#next_token #next_token} => String
+ #
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.list_edge_agent_configurations({
+ # hub_device_arn: "HubDeviceArn", # required
+ # max_results: 1,
+ # next_token: "NextToken",
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.edge_configs #=> Array
+ # resp.edge_configs[0].stream_name #=> String
+ # resp.edge_configs[0].stream_arn #=> String
+ # resp.edge_configs[0].creation_time #=> Time
+ # resp.edge_configs[0].last_updated_time #=> Time
+ # resp.edge_configs[0].sync_status #=> String, one of "SYNCING", "ACKNOWLEDGED", "IN_SYNC", "SYNC_FAILED", "DELETING", "DELETE_FAILED", "DELETING_ACKNOWLEDGED"
+ # resp.edge_configs[0].failed_status_details #=> String
+ # resp.edge_configs[0].edge_config.hub_device_arn #=> String
+ # resp.edge_configs[0].edge_config.recorder_config.media_source_config.media_uri_secret_arn #=> String
+ # resp.edge_configs[0].edge_config.recorder_config.media_source_config.media_uri_type #=> String, one of "RTSP_URI", "FILE_URI"
+ # resp.edge_configs[0].edge_config.recorder_config.schedule_config.schedule_expression #=> String
+ # resp.edge_configs[0].edge_config.recorder_config.schedule_config.duration_in_seconds #=> Integer
+ # resp.edge_configs[0].edge_config.uploader_config.schedule_config.schedule_expression #=> String
+ # resp.edge_configs[0].edge_config.uploader_config.schedule_config.duration_in_seconds #=> Integer
+ # resp.edge_configs[0].edge_config.deletion_config.edge_retention_in_hours #=> Integer
+ # resp.edge_configs[0].edge_config.deletion_config.local_size_config.max_local_media_size_in_mb #=> Integer
+ # resp.edge_configs[0].edge_config.deletion_config.local_size_config.strategy_on_full_size #=> String, one of "DELETE_OLDEST_MEDIA", "DENY_NEW_MEDIA"
+ # resp.edge_configs[0].edge_config.deletion_config.delete_after_upload #=> Boolean
+ # resp.next_token #=> String
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListEdgeAgentConfigurations AWS API Documentation
+ #
+ # @overload list_edge_agent_configurations(params = {})
+ # @param [Hash] params ({})
+ def list_edge_agent_configurations(params = {}, options = {})
+ req = build_request(:list_edge_agent_configurations, params)
+ req.send_request(options)
+ end
+
# Returns an array of `ChannelInfo` objects. Each object describes a
# signaling channel. To retrieve only those channels that satisfy a
# specific condition, you can specify a `ChannelNameCondition`.
@@ -1302,7 +1413,7 @@ def list_tags_for_stream(params = {}, options = {})
# resp.stream_arn #=> String
# resp.creation_time #=> Time
# resp.last_updated_time #=> Time
- # resp.sync_status #=> String, one of "SYNCING", "ACKNOWLEDGED", "IN_SYNC", "SYNC_FAILED", "DELETING", "DELETE_FAILED"
+ # resp.sync_status #=> String, one of "SYNCING", "ACKNOWLEDGED", "IN_SYNC", "SYNC_FAILED", "DELETING", "DELETE_FAILED", "DELETING_ACKNOWLEDGED"
# resp.failed_status_details #=> String
# resp.edge_config.hub_device_arn #=> String
# resp.edge_config.recorder_config.media_source_config.media_uri_secret_arn #=> String
@@ -1801,7 +1912,7 @@ def build_request(operation_name, params = {})
params: params,
config: config)
context[:gem_name] = 'aws-sdk-kinesisvideo'
- context[:gem_version] = '1.48.0'
+ context[:gem_version] = '1.49.0'
Seahorse::Client::Request.new(handlers, context)
end
diff --git a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/client_api.rb b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/client_api.rb
index 0484549827b..a074f1b53a6 100644
--- a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/client_api.rb
+++ b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/client_api.rb
@@ -35,6 +35,8 @@ module ClientApi
DataRetentionChangeInHours = Shapes::IntegerShape.new(name: 'DataRetentionChangeInHours')
DataRetentionInHours = Shapes::IntegerShape.new(name: 'DataRetentionInHours')
DeleteAfterUpload = Shapes::BooleanShape.new(name: 'DeleteAfterUpload')
+ DeleteEdgeConfigurationInput = Shapes::StructureShape.new(name: 'DeleteEdgeConfigurationInput')
+ DeleteEdgeConfigurationOutput = Shapes::StructureShape.new(name: 'DeleteEdgeConfigurationOutput')
DeleteSignalingChannelInput = Shapes::StructureShape.new(name: 'DeleteSignalingChannelInput')
DeleteSignalingChannelOutput = Shapes::StructureShape.new(name: 'DeleteSignalingChannelOutput')
DeleteStreamInput = Shapes::StructureShape.new(name: 'DeleteStreamInput')
@@ -59,6 +61,7 @@ module ClientApi
DeviceName = Shapes::StringShape.new(name: 'DeviceName')
DeviceStreamLimitExceededException = Shapes::StructureShape.new(name: 'DeviceStreamLimitExceededException')
DurationInSeconds = Shapes::IntegerShape.new(name: 'DurationInSeconds')
+ EdgeAgentStatus = Shapes::StructureShape.new(name: 'EdgeAgentStatus')
EdgeConfig = Shapes::StructureShape.new(name: 'EdgeConfig')
EdgeRetentionInHours = Shapes::IntegerShape.new(name: 'EdgeRetentionInHours')
ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage')
@@ -79,7 +82,15 @@ module ClientApi
InvalidArgumentException = Shapes::StructureShape.new(name: 'InvalidArgumentException')
InvalidDeviceException = Shapes::StructureShape.new(name: 'InvalidDeviceException')
InvalidResourceFormatException = Shapes::StructureShape.new(name: 'InvalidResourceFormatException')
+ JobStatusDetails = Shapes::StringShape.new(name: 'JobStatusDetails')
KmsKeyId = Shapes::StringShape.new(name: 'KmsKeyId')
+ LastRecorderStatus = Shapes::StructureShape.new(name: 'LastRecorderStatus')
+ LastUploaderStatus = Shapes::StructureShape.new(name: 'LastUploaderStatus')
+ ListEdgeAgentConfigurationsEdgeConfig = Shapes::StructureShape.new(name: 'ListEdgeAgentConfigurationsEdgeConfig')
+ ListEdgeAgentConfigurationsEdgeConfigList = Shapes::ListShape.new(name: 'ListEdgeAgentConfigurationsEdgeConfigList')
+ ListEdgeAgentConfigurationsInput = Shapes::StructureShape.new(name: 'ListEdgeAgentConfigurationsInput')
+ ListEdgeAgentConfigurationsInputLimit = Shapes::IntegerShape.new(name: 'ListEdgeAgentConfigurationsInputLimit')
+ ListEdgeAgentConfigurationsOutput = Shapes::StructureShape.new(name: 'ListEdgeAgentConfigurationsOutput')
ListOfProtocols = Shapes::ListShape.new(name: 'ListOfProtocols')
ListSignalingChannelsInput = Shapes::StructureShape.new(name: 'ListSignalingChannelsInput')
ListSignalingChannelsOutput = Shapes::StructureShape.new(name: 'ListSignalingChannelsOutput')
@@ -108,6 +119,7 @@ module ClientApi
NotificationConfiguration = Shapes::StructureShape.new(name: 'NotificationConfiguration')
NotificationDestinationConfig = Shapes::StructureShape.new(name: 'NotificationDestinationConfig')
RecorderConfig = Shapes::StructureShape.new(name: 'RecorderConfig')
+ RecorderStatus = Shapes::StringShape.new(name: 'RecorderStatus')
ResourceARN = Shapes::StringShape.new(name: 'ResourceARN')
ResourceEndpoint = Shapes::StringShape.new(name: 'ResourceEndpoint')
ResourceEndpointList = Shapes::ListShape.new(name: 'ResourceEndpointList')
@@ -161,6 +173,7 @@ module ClientApi
UpdateStreamInput = Shapes::StructureShape.new(name: 'UpdateStreamInput')
UpdateStreamOutput = Shapes::StructureShape.new(name: 'UpdateStreamOutput')
UploaderConfig = Shapes::StructureShape.new(name: 'UploaderConfig')
+ UploaderStatus = Shapes::StringShape.new(name: 'UploaderStatus')
Version = Shapes::StringShape.new(name: 'Version')
VersionMismatchException = Shapes::StructureShape.new(name: 'VersionMismatchException')
WidthPixels = Shapes::IntegerShape.new(name: 'WidthPixels')
@@ -212,6 +225,12 @@ module ClientApi
CreateStreamOutput.add_member(:stream_arn, Shapes::ShapeRef.new(shape: ResourceARN, location_name: "StreamARN"))
CreateStreamOutput.struct_class = Types::CreateStreamOutput
+ DeleteEdgeConfigurationInput.add_member(:stream_name, Shapes::ShapeRef.new(shape: StreamName, location_name: "StreamName"))
+ DeleteEdgeConfigurationInput.add_member(:stream_arn, Shapes::ShapeRef.new(shape: ResourceARN, location_name: "StreamARN"))
+ DeleteEdgeConfigurationInput.struct_class = Types::DeleteEdgeConfigurationInput
+
+ DeleteEdgeConfigurationOutput.struct_class = Types::DeleteEdgeConfigurationOutput
+
DeleteSignalingChannelInput.add_member(:channel_arn, Shapes::ShapeRef.new(shape: ResourceARN, required: true, location_name: "ChannelARN"))
DeleteSignalingChannelInput.add_member(:current_version, Shapes::ShapeRef.new(shape: Version, location_name: "CurrentVersion"))
DeleteSignalingChannelInput.struct_class = Types::DeleteSignalingChannelInput
@@ -240,6 +259,7 @@ module ClientApi
DescribeEdgeConfigurationOutput.add_member(:sync_status, Shapes::ShapeRef.new(shape: SyncStatus, location_name: "SyncStatus"))
DescribeEdgeConfigurationOutput.add_member(:failed_status_details, Shapes::ShapeRef.new(shape: FailedStatusDetails, location_name: "FailedStatusDetails"))
DescribeEdgeConfigurationOutput.add_member(:edge_config, Shapes::ShapeRef.new(shape: EdgeConfig, location_name: "EdgeConfig"))
+ DescribeEdgeConfigurationOutput.add_member(:edge_agent_status, Shapes::ShapeRef.new(shape: EdgeAgentStatus, location_name: "EdgeAgentStatus"))
DescribeEdgeConfigurationOutput.struct_class = Types::DescribeEdgeConfigurationOutput
DescribeImageGenerationConfigurationInput.add_member(:stream_name, Shapes::ShapeRef.new(shape: StreamName, location_name: "StreamName"))
@@ -290,6 +310,10 @@ module ClientApi
DeviceStreamLimitExceededException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
DeviceStreamLimitExceededException.struct_class = Types::DeviceStreamLimitExceededException
+ EdgeAgentStatus.add_member(:last_recorder_status, Shapes::ShapeRef.new(shape: LastRecorderStatus, location_name: "LastRecorderStatus"))
+ EdgeAgentStatus.add_member(:last_uploader_status, Shapes::ShapeRef.new(shape: LastUploaderStatus, location_name: "LastUploaderStatus"))
+ EdgeAgentStatus.struct_class = Types::EdgeAgentStatus
+
EdgeConfig.add_member(:hub_device_arn, Shapes::ShapeRef.new(shape: HubDeviceArn, required: true, location_name: "HubDeviceArn"))
EdgeConfig.add_member(:recorder_config, Shapes::ShapeRef.new(shape: RecorderConfig, required: true, location_name: "RecorderConfig"))
EdgeConfig.add_member(:uploader_config, Shapes::ShapeRef.new(shape: UploaderConfig, location_name: "UploaderConfig"))
@@ -337,6 +361,38 @@ module ClientApi
InvalidResourceFormatException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
InvalidResourceFormatException.struct_class = Types::InvalidResourceFormatException
+ LastRecorderStatus.add_member(:job_status_details, Shapes::ShapeRef.new(shape: JobStatusDetails, location_name: "JobStatusDetails"))
+ LastRecorderStatus.add_member(:last_collected_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastCollectedTime"))
+ LastRecorderStatus.add_member(:last_updated_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastUpdatedTime"))
+ LastRecorderStatus.add_member(:recorder_status, Shapes::ShapeRef.new(shape: RecorderStatus, location_name: "RecorderStatus"))
+ LastRecorderStatus.struct_class = Types::LastRecorderStatus
+
+ LastUploaderStatus.add_member(:job_status_details, Shapes::ShapeRef.new(shape: JobStatusDetails, location_name: "JobStatusDetails"))
+ LastUploaderStatus.add_member(:last_collected_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastCollectedTime"))
+ LastUploaderStatus.add_member(:last_updated_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastUpdatedTime"))
+ LastUploaderStatus.add_member(:uploader_status, Shapes::ShapeRef.new(shape: UploaderStatus, location_name: "UploaderStatus"))
+ LastUploaderStatus.struct_class = Types::LastUploaderStatus
+
+ ListEdgeAgentConfigurationsEdgeConfig.add_member(:stream_name, Shapes::ShapeRef.new(shape: StreamName, location_name: "StreamName"))
+ ListEdgeAgentConfigurationsEdgeConfig.add_member(:stream_arn, Shapes::ShapeRef.new(shape: ResourceARN, location_name: "StreamARN"))
+ ListEdgeAgentConfigurationsEdgeConfig.add_member(:creation_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreationTime"))
+ ListEdgeAgentConfigurationsEdgeConfig.add_member(:last_updated_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastUpdatedTime"))
+ ListEdgeAgentConfigurationsEdgeConfig.add_member(:sync_status, Shapes::ShapeRef.new(shape: SyncStatus, location_name: "SyncStatus"))
+ ListEdgeAgentConfigurationsEdgeConfig.add_member(:failed_status_details, Shapes::ShapeRef.new(shape: FailedStatusDetails, location_name: "FailedStatusDetails"))
+ ListEdgeAgentConfigurationsEdgeConfig.add_member(:edge_config, Shapes::ShapeRef.new(shape: EdgeConfig, location_name: "EdgeConfig"))
+ ListEdgeAgentConfigurationsEdgeConfig.struct_class = Types::ListEdgeAgentConfigurationsEdgeConfig
+
+ ListEdgeAgentConfigurationsEdgeConfigList.member = Shapes::ShapeRef.new(shape: ListEdgeAgentConfigurationsEdgeConfig)
+
+ ListEdgeAgentConfigurationsInput.add_member(:hub_device_arn, Shapes::ShapeRef.new(shape: HubDeviceArn, required: true, location_name: "HubDeviceArn"))
+ ListEdgeAgentConfigurationsInput.add_member(:max_results, Shapes::ShapeRef.new(shape: ListEdgeAgentConfigurationsInputLimit, location_name: "MaxResults"))
+ ListEdgeAgentConfigurationsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
+ ListEdgeAgentConfigurationsInput.struct_class = Types::ListEdgeAgentConfigurationsInput
+
+ ListEdgeAgentConfigurationsOutput.add_member(:edge_configs, Shapes::ShapeRef.new(shape: ListEdgeAgentConfigurationsEdgeConfigList, location_name: "EdgeConfigs"))
+ ListEdgeAgentConfigurationsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
+ ListEdgeAgentConfigurationsOutput.struct_class = Types::ListEdgeAgentConfigurationsOutput
+
ListOfProtocols.member = Shapes::ShapeRef.new(shape: ChannelProtocol)
ListSignalingChannelsInput.add_member(:max_results, Shapes::ShapeRef.new(shape: ListStreamsInputLimit, location_name: "MaxResults"))
@@ -605,6 +661,19 @@ module ClientApi
o.errors << Shapes::ShapeRef.new(shape: TagsPerResourceExceededLimitException)
end)
+ api.add_operation(:delete_edge_configuration, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "DeleteEdgeConfiguration"
+ o.http_method = "POST"
+ o.http_request_uri = "/deleteEdgeConfiguration"
+ o.input = Shapes::ShapeRef.new(shape: DeleteEdgeConfigurationInput)
+ o.output = Shapes::ShapeRef.new(shape: DeleteEdgeConfigurationOutput)
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
+ o.errors << Shapes::ShapeRef.new(shape: ClientLimitExceededException)
+ o.errors << Shapes::ShapeRef.new(shape: InvalidArgumentException)
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
+ o.errors << Shapes::ShapeRef.new(shape: StreamEdgeConfigurationNotFoundException)
+ end)
+
api.add_operation(:delete_signaling_channel, Seahorse::Model::Operation.new.tap do |o|
o.name = "DeleteSignalingChannel"
o.http_method = "POST"
@@ -749,6 +818,23 @@ module ClientApi
o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
end)
+ api.add_operation(:list_edge_agent_configurations, Seahorse::Model::Operation.new.tap do |o|
+ o.name = "ListEdgeAgentConfigurations"
+ o.http_method = "POST"
+ o.http_request_uri = "/listEdgeAgentConfigurations"
+ o.input = Shapes::ShapeRef.new(shape: ListEdgeAgentConfigurationsInput)
+ o.output = Shapes::ShapeRef.new(shape: ListEdgeAgentConfigurationsOutput)
+ o.errors << Shapes::ShapeRef.new(shape: NotAuthorizedException)
+ o.errors << Shapes::ShapeRef.new(shape: ClientLimitExceededException)
+ o.errors << Shapes::ShapeRef.new(shape: InvalidArgumentException)
+ o[:pager] = Aws::Pager.new(
+ limit_key: "max_results",
+ tokens: {
+ "next_token" => "next_token"
+ }
+ )
+ end)
+
api.add_operation(:list_signaling_channels, Seahorse::Model::Operation.new.tap do |o|
o.name = "ListSignalingChannels"
o.http_method = "POST"
diff --git a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/endpoint_parameters.rb b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/endpoint_parameters.rb
index 6de9b547580..cde09df6bd5 100644
--- a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/endpoint_parameters.rb
+++ b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/endpoint_parameters.rb
@@ -50,9 +50,6 @@ class << self
def initialize(options = {})
self[:region] = options[:region]
- if self[:region].nil?
- raise ArgumentError, "Missing required EndpointParameter: :region"
- end
self[:use_dual_stack] = options[:use_dual_stack]
self[:use_dual_stack] = false if self[:use_dual_stack].nil?
if self[:use_dual_stack].nil?
diff --git a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/endpoint_provider.rb b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/endpoint_provider.rb
index 8302559dfe9..7342504f58c 100644
--- a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/endpoint_provider.rb
+++ b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/endpoint_provider.rb
@@ -14,36 +14,39 @@ def resolve_endpoint(parameters)
use_dual_stack = parameters.use_dual_stack
use_fips = parameters.use_fips
endpoint = parameters.endpoint
- if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
- if Aws::Endpoints::Matchers.set?(endpoint)
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
- raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
- end
- if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
- raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
- end
- return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
- end
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
- if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
- return Aws::Endpoints::Endpoint.new(url: "https://kinesisvideo-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
- end
- raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
- end
+ if Aws::Endpoints::Matchers.set?(endpoint)
if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
- if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
- return Aws::Endpoints::Endpoint.new(url: "https://kinesisvideo-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
- end
- raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
+ raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
end
if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
- if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
- return Aws::Endpoints::Endpoint.new(url: "https://kinesisvideo.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
+ raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
+ end
+ return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
+ end
+ if Aws::Endpoints::Matchers.set?(region)
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
+ return Aws::Endpoints::Endpoint.new(url: "https://kinesisvideo-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
+ end
+ raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
+ end
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
+ return Aws::Endpoints::Endpoint.new(url: "https://kinesisvideo-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
+ end
+ raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
+ end
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
+ return Aws::Endpoints::Endpoint.new(url: "https://kinesisvideo.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
+ end
+ raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
end
- raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
+ return Aws::Endpoints::Endpoint.new(url: "https://kinesisvideo.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
end
- return Aws::Endpoints::Endpoint.new(url: "https://kinesisvideo.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
end
+ raise ArgumentError, "Invalid Configuration: Missing Region"
raise ArgumentError, 'No endpoint could be resolved'
end
diff --git a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/endpoints.rb b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/endpoints.rb
index b2fed1ffdb9..50cb88d21e4 100644
--- a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/endpoints.rb
+++ b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/endpoints.rb
@@ -40,6 +40,20 @@ def self.build(context)
end
end
+ class DeleteEdgeConfiguration
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::KinesisVideo::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
class DeleteSignalingChannel
def self.build(context)
unless context.config.regional_endpoint
@@ -194,6 +208,20 @@ def self.build(context)
end
end
+ class ListEdgeAgentConfigurations
+ def self.build(context)
+ unless context.config.regional_endpoint
+ endpoint = context.config.endpoint.to_s
+ end
+ Aws::KinesisVideo::EndpointParameters.new(
+ region: context.config.region,
+ use_dual_stack: context.config.use_dualstack_endpoint,
+ use_fips: context.config.use_fips_endpoint,
+ endpoint: endpoint,
+ )
+ end
+ end
+
class ListSignalingChannels
def self.build(context)
unless context.config.regional_endpoint
diff --git a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/plugins/endpoints.rb b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/plugins/endpoints.rb
index 0b42a50b5db..873aa3de954 100644
--- a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/plugins/endpoints.rb
+++ b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/plugins/endpoints.rb
@@ -60,6 +60,8 @@ def parameters_for_operation(context)
Aws::KinesisVideo::Endpoints::CreateSignalingChannel.build(context)
when :create_stream
Aws::KinesisVideo::Endpoints::CreateStream.build(context)
+ when :delete_edge_configuration
+ Aws::KinesisVideo::Endpoints::DeleteEdgeConfiguration.build(context)
when :delete_signaling_channel
Aws::KinesisVideo::Endpoints::DeleteSignalingChannel.build(context)
when :delete_stream
@@ -82,6 +84,8 @@ def parameters_for_operation(context)
Aws::KinesisVideo::Endpoints::GetDataEndpoint.build(context)
when :get_signaling_channel_endpoint
Aws::KinesisVideo::Endpoints::GetSignalingChannelEndpoint.build(context)
+ when :list_edge_agent_configurations
+ Aws::KinesisVideo::Endpoints::ListEdgeAgentConfigurations.build(context)
when :list_signaling_channels
Aws::KinesisVideo::Endpoints::ListSignalingChannels.build(context)
when :list_streams
diff --git a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/types.rb b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/types.rb
index a932a5f3b22..1084d037a42 100644
--- a/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/types.rb
+++ b/gems/aws-sdk-kinesisvideo/lib/aws-sdk-kinesisvideo/types.rb
@@ -217,7 +217,7 @@ class CreateSignalingChannelOutput < Struct.new(
# Video Streams to use to encrypt stream data.
#
# If no key ID is specified, the default, Kinesis Video-managed key
- # (`aws/kinesisvideo`) is used.
+ # (`Amazon Web Services/kinesisvideo`) is used.
#
# For more information, see [DescribeKey][1].
#
@@ -271,6 +271,29 @@ class CreateStreamOutput < Struct.new(
include Aws::Structure
end
+ # @!attribute [rw] stream_name
+ # The name of the stream from which to delete the edge configuration.
+ # Specify either the `StreamName` or the `StreamARN`.
+ # @return [String]
+ #
+ # @!attribute [rw] stream_arn
+ # The Amazon Resource Name (ARN) of the stream. Specify either the
+ # `StreamName` or the `StreamARN`.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DeleteEdgeConfigurationInput AWS API Documentation
+ #
+ class DeleteEdgeConfigurationInput < Struct.new(
+ :stream_name,
+ :stream_arn)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DeleteEdgeConfigurationOutput AWS API Documentation
+ #
+ class DeleteEdgeConfigurationOutput < Aws::EmptyStructure; end
+
# @!attribute [rw] channel_arn
# The Amazon Resource Name (ARN) of the signaling channel that you
# want to delete.
@@ -349,7 +372,7 @@ class DeleteStreamOutput < Aws::EmptyStructure; end
#
# Since the default value is set to `true`, configure the uploader
# schedule such that the media files are not being deleted before they
- # are initially uploaded to AWS cloud.
+ # are initially uploaded to the Amazon Web Services cloud.
# @return [Boolean]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DeletionConfig AWS API Documentation
@@ -414,6 +437,12 @@ class DescribeEdgeConfigurationInput < Struct.new(
# component will run on an IoT Hub Device setup at your premise.
# @return [Types::EdgeConfig]
#
+ # @!attribute [rw] edge_agent_status
+ # An object that contains the latest status details for an edge
+ # agent's recorder and uploader jobs. Use this information to
+ # determine the current health of an edge agent.
+ # @return [Types::EdgeAgentStatus]
+ #
# @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DescribeEdgeConfigurationOutput AWS API Documentation
#
class DescribeEdgeConfigurationOutput < Struct.new(
@@ -423,7 +452,8 @@ class DescribeEdgeConfigurationOutput < Struct.new(
:last_updated_time,
:sync_status,
:failed_status_details,
- :edge_config)
+ :edge_config,
+ :edge_agent_status)
SENSITIVE = []
include Aws::Structure
end
@@ -647,6 +677,27 @@ class DeviceStreamLimitExceededException < Struct.new(
include Aws::Structure
end
+ # An object that contains the latest status details for an edge agent's
+ # recorder and uploader jobs. Use this information to determine the
+ # current health of an edge agent.
+ #
+ # @!attribute [rw] last_recorder_status
+ # The latest status of a stream’s edge recording job.
+ # @return [Types::LastRecorderStatus]
+ #
+ # @!attribute [rw] last_uploader_status
+ # The latest status of a stream’s edge to cloud uploader job.
+ # @return [Types::LastUploaderStatus]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/EdgeAgentStatus AWS API Documentation
+ #
+ class EdgeAgentStatus < Struct.new(
+ :last_recorder_status,
+ :last_uploader_status)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
# A description of the stream's edge configuration that will be used to
# sync with the Edge Agent IoT Greengrass component. The Edge Agent
# component will run on an IoT Hub Device setup at your premise.
@@ -841,9 +892,9 @@ class ImageGenerationConfiguration < Struct.new(
# @return [String]
#
# @!attribute [rw] destination_region
- # The AWS Region of the S3 bucket where images will be delivered. This
- # `DestinationRegion` must match the Region where the stream is
- # located.
+ # The Amazon Web Services Region of the S3 bucket where images will be
+ # delivered. This `DestinationRegion` must match the Region where the
+ # stream is located.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ImageGenerationDestinationConfig AWS API Documentation
@@ -894,6 +945,157 @@ class InvalidResourceFormatException < Struct.new(
include Aws::Structure
end
+ # The latest status of a stream's edge recording job.
+ #
+ # @!attribute [rw] job_status_details
+ # A description of a recorder job’s latest status.
+ # @return [String]
+ #
+ # @!attribute [rw] last_collected_time
+ # The timestamp at which the recorder job was last executed and media
+ # stored to local disk.
+ # @return [Time]
+ #
+ # @!attribute [rw] last_updated_time
+ # The timestamp at which the recorder status was last updated.
+ # @return [Time]
+ #
+ # @!attribute [rw] recorder_status
+ # The status of the latest recorder job.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/LastRecorderStatus AWS API Documentation
+ #
+ class LastRecorderStatus < Struct.new(
+ :job_status_details,
+ :last_collected_time,
+ :last_updated_time,
+ :recorder_status)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # The latest status of a stream’s edge to cloud uploader job.
+ #
+ # @!attribute [rw] job_status_details
+ # A description of an uploader job’s latest status.
+ # @return [String]
+ #
+ # @!attribute [rw] last_collected_time
+ # The timestamp at which the uploader job was last executed and media
+ # collected to the cloud.
+ # @return [Time]
+ #
+ # @!attribute [rw] last_updated_time
+ # The timestamp at which the uploader status was last updated.
+ # @return [Time]
+ #
+ # @!attribute [rw] uploader_status
+ # The status of the latest uploader job.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/LastUploaderStatus AWS API Documentation
+ #
+ class LastUploaderStatus < Struct.new(
+ :job_status_details,
+ :last_collected_time,
+ :last_updated_time,
+ :uploader_status)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # A description of a single stream's edge configuration.
+ #
+ # @!attribute [rw] stream_name
+ # The name of the stream.
+ # @return [String]
+ #
+ # @!attribute [rw] stream_arn
+ # The Amazon Resource Name (ARN) of the stream.
+ # @return [String]
+ #
+ # @!attribute [rw] creation_time
+ # The timestamp when the stream first created the edge config.
+ # @return [Time]
+ #
+ # @!attribute [rw] last_updated_time
+ # The timestamp when the stream last updated the edge config.
+ # @return [Time]
+ #
+ # @!attribute [rw] sync_status
+ # The current sync status of the stream's edge configuration.
+ # @return [String]
+ #
+ # @!attribute [rw] failed_status_details
+ # A description of the generated failure status.
+ # @return [String]
+ #
+ # @!attribute [rw] edge_config
+ # A description of the stream's edge configuration that will be used
+ # to sync with the Edge Agent IoT Greengrass component. The Edge Agent
+ # component will run on an IoT Hub Device setup at your premise.
+ # @return [Types::EdgeConfig]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListEdgeAgentConfigurationsEdgeConfig AWS API Documentation
+ #
+ class ListEdgeAgentConfigurationsEdgeConfig < Struct.new(
+ :stream_name,
+ :stream_arn,
+ :creation_time,
+ :last_updated_time,
+ :sync_status,
+ :failed_status_details,
+ :edge_config)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] hub_device_arn
+ # The "Internet of Things (IoT) Thing" Arn of the edge agent.
+ # @return [String]
+ #
+ # @!attribute [rw] max_results
+ # The maximum number of edge configurations to return in the response.
+ # The default is 5.
+ # @return [Integer]
+ #
+ # @!attribute [rw] next_token
+ # If you specify this parameter, when the result of a
+ # `ListEdgeAgentConfigurations` operation is truncated, the call
+ # returns the `NextToken` in the response. To get another batch of
+ # edge configurations, provide this token in your next request.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListEdgeAgentConfigurationsInput AWS API Documentation
+ #
+ class ListEdgeAgentConfigurationsInput < Struct.new(
+ :hub_device_arn,
+ :max_results,
+ :next_token)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # @!attribute [rw] edge_configs
+ # A description of a single stream's edge configuration.
+ # @return [Array]
+ #
+ # @!attribute [rw] next_token
+ # If the response is truncated, the call returns this element with a
+ # given token. To get the next batch of edge configurations, use this
+ # token in your next request.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListEdgeAgentConfigurationsOutput AWS API Documentation
+ #
+ class ListEdgeAgentConfigurationsOutput < Struct.new(
+ :edge_configs,
+ :next_token)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
# @!attribute [rw] max_results
# The maximum number of channels to return in the response. The
# default is 500.
@@ -1124,8 +1326,8 @@ class MappedResourceConfigurationListItem < Struct.new(
# that are streamed to the camera.
#
# @!attribute [rw] media_uri_secret_arn
- # The AWS Secrets Manager ARN for the username and password of the
- # camera, or a local media file location.
+ # The Amazon Web Services Secrets Manager ARN for the username and
+ # password of the camera, or a local media file location.
# @return [String]
#
# @!attribute [rw] media_uri_type
@@ -1260,6 +1462,8 @@ class RecorderConfig < Struct.new(
# An object that describes the endpoint of the signaling channel
# returned by the `GetSignalingChannelEndpoint` API.
#
+ # The media server endpoint will correspond to the `WEBRTC` Protocol.
+ #
# @!attribute [rw] protocol
# The protocol of the signaling channel returned by the
# `GetSignalingChannelEndpoint` API.
@@ -1323,8 +1527,11 @@ class ResourceNotFoundException < Struct.new(
# consists of the `ScheduleExpression` and the `DurationInMinutes`
# attributes.
#
- # If the `ScheduleExpression` is not provided, then the Edge Agent will
- # always be set to recording mode.
+ # If the `ScheduleConfig` is not provided in the `RecorderConfig`, then
+ # the Edge Agent will always be set to recording mode.
+ #
+ # If the `ScheduleConfig` is not provided in the `UploaderConfig`, then
+ # the Edge Agent will upload at regular intervals (every 1 hour).
#
# @!attribute [rw] schedule_expression
# The Quartz cron expression that takes care of scheduling jobs to
@@ -1919,17 +2126,17 @@ class UpdateStreamInput < Struct.new(
class UpdateStreamOutput < Aws::EmptyStructure; end
# The configuration that consists of the `ScheduleExpression` and the
- # `DurationInMinutesdetails`, that specify the scheduling to record from
+ # `DurationInMinutes` details that specify the scheduling to record from
# a camera, or local media file, onto the Edge Agent. If the
- # `ScheduleExpression` is not provided, then the Edge Agent will always
- # be in upload mode.
+ # `ScheduleConfig` is not provided in the `UploaderConfig`, then the
+ # Edge Agent will upload at regular intervals (every 1 hour).
#
# @!attribute [rw] schedule_config
# The configuration that consists of the `ScheduleExpression` and the
- # `DurationInMinutes`details that specify the scheduling to record
+ # `DurationInMinutes` details that specify the scheduling to record
# from a camera, or local media file, onto the Edge Agent. If the
- # `ScheduleExpression` is not provided, then the Edge Agent will
- # always be in recording mode.
+ # `ScheduleConfig` is not provided in this `UploaderConfig`, then the
+ # Edge Agent will upload at regular intervals (every 1 hour).
# @return [Types::ScheduleConfig]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UploaderConfig AWS API Documentation
diff --git a/gems/aws-sdk-kinesisvideo/spec/endpoint_provider_spec.rb b/gems/aws-sdk-kinesisvideo/spec/endpoint_provider_spec.rb
index 93117f4da9b..eb8221b6902 100644
--- a/gems/aws-sdk-kinesisvideo/spec/endpoint_provider_spec.rb
+++ b/gems/aws-sdk-kinesisvideo/spec/endpoint_provider_spec.rb
@@ -14,641 +14,13 @@ module Aws::KinesisVideo
describe EndpointProvider do
subject { Aws::KinesisVideo::EndpointProvider.new }
- context 'For region ap-south-1 with FIPS enabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.ap-south-1.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"ap-south-1", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region ap-south-1 with FIPS enabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.ap-south-1.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"ap-south-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region ap-south-1 with FIPS disabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.ap-south-1.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"ap-south-1", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region ap-south-1 with FIPS disabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.ap-south-1.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"ap-south-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region us-gov-east-1 with FIPS enabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-gov-east-1.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-gov-east-1", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region us-gov-east-1 with FIPS enabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-gov-east-1.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-gov-east-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region us-gov-east-1 with FIPS disabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.us-gov-east-1.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-gov-east-1", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region us-gov-east-1 with FIPS disabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.us-gov-east-1.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-gov-east-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region ca-central-1 with FIPS enabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.ca-central-1.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"ca-central-1", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region ca-central-1 with FIPS enabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.ca-central-1.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"ca-central-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region ca-central-1 with FIPS disabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.ca-central-1.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"ca-central-1", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region ca-central-1 with FIPS disabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.ca-central-1.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"ca-central-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-central-1 with FIPS enabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.eu-central-1.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"eu-central-1", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-central-1 with FIPS enabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.eu-central-1.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"eu-central-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-central-1 with FIPS disabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.eu-central-1.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"eu-central-1", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-central-1 with FIPS disabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.eu-central-1.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"eu-central-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region us-iso-west-1 with FIPS enabled and DualStack enabled' do
- let(:expected) do
- {"error"=>"FIPS and DualStack are enabled, but this partition does not support one or both"}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-iso-west-1", :use_dual_stack=>true})
- expect do
- subject.resolve_endpoint(params)
- end.to raise_error(ArgumentError, expected['error'])
- end
- end
-
- context 'For region us-iso-west-1 with FIPS enabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-iso-west-1.c2s.ic.gov"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-iso-west-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region us-iso-west-1 with FIPS disabled and DualStack enabled' do
- let(:expected) do
- {"error"=>"DualStack is enabled but this partition does not support DualStack"}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-iso-west-1", :use_dual_stack=>true})
- expect do
- subject.resolve_endpoint(params)
- end.to raise_error(ArgumentError, expected['error'])
- end
- end
-
- context 'For region us-iso-west-1 with FIPS disabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.us-iso-west-1.c2s.ic.gov"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-iso-west-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region us-west-2 with FIPS enabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-west-2.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-west-2", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region us-west-2 with FIPS enabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-west-2.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-west-2", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region us-west-2 with FIPS disabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.us-west-2.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-west-2", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region us-west-2 with FIPS disabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.us-west-2.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-west-2", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region af-south-1 with FIPS enabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.af-south-1.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"af-south-1", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region af-south-1 with FIPS enabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.af-south-1.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"af-south-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region af-south-1 with FIPS disabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.af-south-1.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"af-south-1", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region af-south-1 with FIPS disabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.af-south-1.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"af-south-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-west-3 with FIPS enabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.eu-west-3.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"eu-west-3", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-west-3 with FIPS enabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.eu-west-3.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"eu-west-3", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-west-3 with FIPS disabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.eu-west-3.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"eu-west-3", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-west-3 with FIPS disabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.eu-west-3.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"eu-west-3", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-west-2 with FIPS enabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.eu-west-2.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"eu-west-2", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-west-2 with FIPS enabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.eu-west-2.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"eu-west-2", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-west-2 with FIPS disabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.eu-west-2.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"eu-west-2", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-west-2 with FIPS disabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.eu-west-2.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"eu-west-2", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-west-1 with FIPS enabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.eu-west-1.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"eu-west-1", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-west-1 with FIPS enabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.eu-west-1.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"eu-west-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-west-1 with FIPS disabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.eu-west-1.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"eu-west-1", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region eu-west-1 with FIPS disabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.eu-west-1.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"eu-west-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region ap-northeast-2 with FIPS enabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.ap-northeast-2.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"ap-northeast-2", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region ap-northeast-2 with FIPS enabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.ap-northeast-2.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"ap-northeast-2", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region ap-northeast-2 with FIPS disabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.ap-northeast-2.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"ap-northeast-2", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region ap-northeast-2 with FIPS disabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.ap-northeast-2.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"ap-northeast-2", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region ap-northeast-1 with FIPS enabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.ap-northeast-1.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"ap-northeast-1", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region ap-northeast-1 with FIPS enabled and DualStack disabled' do
+ context 'For region af-south-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.ap-northeast-1.amazonaws.com"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.af-south-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"ap-northeast-1", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"af-south-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -656,13 +28,13 @@ module Aws::KinesisVideo
end
end
- context 'For region ap-northeast-1 with FIPS disabled and DualStack enabled' do
+ context 'For region ap-east-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.ap-northeast-1.api.aws"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.ap-east-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"ap-northeast-1", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"ap-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -676,7 +48,7 @@ module Aws::KinesisVideo
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"ap-northeast-1", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"ap-northeast-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -684,13 +56,13 @@ module Aws::KinesisVideo
end
end
- context 'For region sa-east-1 with FIPS enabled and DualStack enabled' do
+ context 'For region ap-northeast-2 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.sa-east-1.api.aws"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.ap-northeast-2.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"sa-east-1", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"ap-northeast-2", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -698,13 +70,13 @@ module Aws::KinesisVideo
end
end
- context 'For region sa-east-1 with FIPS enabled and DualStack disabled' do
+ context 'For region ap-south-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.sa-east-1.amazonaws.com"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.ap-south-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"sa-east-1", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"ap-south-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -712,13 +84,13 @@ module Aws::KinesisVideo
end
end
- context 'For region sa-east-1 with FIPS disabled and DualStack enabled' do
+ context 'For region ap-southeast-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.sa-east-1.api.aws"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.ap-southeast-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"sa-east-1", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"ap-southeast-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -726,13 +98,13 @@ module Aws::KinesisVideo
end
end
- context 'For region sa-east-1 with FIPS disabled and DualStack disabled' do
+ context 'For region ap-southeast-2 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.sa-east-1.amazonaws.com"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.ap-southeast-2.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"sa-east-1", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"ap-southeast-2", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -740,13 +112,13 @@ module Aws::KinesisVideo
end
end
- context 'For region ap-east-1 with FIPS enabled and DualStack enabled' do
+ context 'For region ca-central-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.ap-east-1.api.aws"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.ca-central-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"ap-east-1", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"ca-central-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -754,13 +126,13 @@ module Aws::KinesisVideo
end
end
- context 'For region ap-east-1 with FIPS enabled and DualStack disabled' do
+ context 'For region eu-central-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.ap-east-1.amazonaws.com"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.eu-central-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"ap-east-1", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"eu-central-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -768,13 +140,13 @@ module Aws::KinesisVideo
end
end
- context 'For region ap-east-1 with FIPS disabled and DualStack enabled' do
+ context 'For region eu-west-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.ap-east-1.api.aws"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.eu-west-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"ap-east-1", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"eu-west-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -782,13 +154,13 @@ module Aws::KinesisVideo
end
end
- context 'For region ap-east-1 with FIPS disabled and DualStack disabled' do
+ context 'For region eu-west-2 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.ap-east-1.amazonaws.com"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.eu-west-2.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"ap-east-1", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"eu-west-2", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -796,13 +168,13 @@ module Aws::KinesisVideo
end
end
- context 'For region cn-north-1 with FIPS enabled and DualStack enabled' do
+ context 'For region eu-west-3 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.cn-north-1.api.amazonwebservices.com.cn"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.eu-west-3.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"cn-north-1", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"eu-west-3", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -810,13 +182,13 @@ module Aws::KinesisVideo
end
end
- context 'For region cn-north-1 with FIPS enabled and DualStack disabled' do
+ context 'For region sa-east-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.cn-north-1.amazonaws.com.cn"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.sa-east-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"cn-north-1", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"sa-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -824,13 +196,13 @@ module Aws::KinesisVideo
end
end
- context 'For region cn-north-1 with FIPS disabled and DualStack enabled' do
+ context 'For region us-east-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.cn-north-1.api.amazonwebservices.com.cn"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.us-east-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"cn-north-1", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -838,13 +210,13 @@ module Aws::KinesisVideo
end
end
- context 'For region cn-north-1 with FIPS disabled and DualStack disabled' do
+ context 'For region us-east-2 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.cn-north-1.amazonaws.com.cn"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.us-east-2.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"cn-north-1", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"us-east-2", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -852,13 +224,13 @@ module Aws::KinesisVideo
end
end
- context 'For region us-gov-west-1 with FIPS enabled and DualStack enabled' do
+ context 'For region us-west-2 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-gov-west-1.api.aws"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.us-west-2.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-gov-west-1", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"us-west-2", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -866,13 +238,13 @@ module Aws::KinesisVideo
end
end
- context 'For region us-gov-west-1 with FIPS enabled and DualStack disabled' do
+ context 'For region us-east-1 with FIPS enabled and DualStack enabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-gov-west-1.amazonaws.com"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-east-1.api.aws"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-gov-west-1", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -880,13 +252,13 @@ module Aws::KinesisVideo
end
end
- context 'For region us-gov-west-1 with FIPS disabled and DualStack enabled' do
+ context 'For region us-east-1 with FIPS enabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.us-gov-west-1.api.aws"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-east-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-gov-west-1", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -894,13 +266,13 @@ module Aws::KinesisVideo
end
end
- context 'For region us-gov-west-1 with FIPS disabled and DualStack disabled' do
+ context 'For region us-east-1 with FIPS disabled and DualStack enabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.us-gov-west-1.amazonaws.com"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.us-east-1.api.aws"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-gov-west-1", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -908,13 +280,13 @@ module Aws::KinesisVideo
end
end
- context 'For region ap-southeast-1 with FIPS enabled and DualStack enabled' do
+ context 'For region cn-north-1 with FIPS enabled and DualStack enabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.ap-southeast-1.api.aws"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo-fips.cn-north-1.api.amazonwebservices.com.cn"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"ap-southeast-1", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>true, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -922,13 +294,13 @@ module Aws::KinesisVideo
end
end
- context 'For region ap-southeast-1 with FIPS enabled and DualStack disabled' do
+ context 'For region cn-north-1 with FIPS enabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.ap-southeast-1.amazonaws.com"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo-fips.cn-north-1.amazonaws.com.cn"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"ap-southeast-1", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -936,13 +308,13 @@ module Aws::KinesisVideo
end
end
- context 'For region ap-southeast-1 with FIPS disabled and DualStack enabled' do
+ context 'For region cn-north-1 with FIPS disabled and DualStack enabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.ap-southeast-1.api.aws"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.cn-north-1.api.amazonwebservices.com.cn"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"ap-southeast-1", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>false, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -950,13 +322,13 @@ module Aws::KinesisVideo
end
end
- context 'For region ap-southeast-1 with FIPS disabled and DualStack disabled' do
+ context 'For region cn-north-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.ap-southeast-1.amazonaws.com"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.cn-north-1.amazonaws.com.cn"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"ap-southeast-1", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -964,13 +336,13 @@ module Aws::KinesisVideo
end
end
- context 'For region ap-southeast-2 with FIPS enabled and DualStack enabled' do
+ context 'For region us-gov-east-1 with FIPS enabled and DualStack enabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.ap-southeast-2.api.aws"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-gov-east-1.api.aws"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"ap-southeast-2", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>true, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -978,13 +350,13 @@ module Aws::KinesisVideo
end
end
- context 'For region ap-southeast-2 with FIPS enabled and DualStack disabled' do
+ context 'For region us-gov-east-1 with FIPS enabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.ap-southeast-2.amazonaws.com"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-gov-east-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"ap-southeast-2", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -992,13 +364,13 @@ module Aws::KinesisVideo
end
end
- context 'For region ap-southeast-2 with FIPS disabled and DualStack enabled' do
+ context 'For region us-gov-east-1 with FIPS disabled and DualStack enabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.ap-southeast-2.api.aws"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.us-gov-east-1.api.aws"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"ap-southeast-2", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>false, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -1006,13 +378,13 @@ module Aws::KinesisVideo
end
end
- context 'For region ap-southeast-2 with FIPS disabled and DualStack disabled' do
+ context 'For region us-gov-east-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.ap-southeast-2.amazonaws.com"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.us-gov-east-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"ap-southeast-2", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -1026,7 +398,7 @@ module Aws::KinesisVideo
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-iso-east-1", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>true, :use_dual_stack=>true})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
@@ -1039,7 +411,7 @@ module Aws::KinesisVideo
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-iso-east-1", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -1053,7 +425,7 @@ module Aws::KinesisVideo
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-iso-east-1", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>false, :use_dual_stack=>true})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
@@ -1066,49 +438,7 @@ module Aws::KinesisVideo
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-iso-east-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region us-east-1 with FIPS enabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-east-1.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-east-1", :use_dual_stack=>true})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region us-east-1 with FIPS enabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-east-1.amazonaws.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-east-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For region us-east-1 with FIPS disabled and DualStack enabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.us-east-1.api.aws"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-east-1", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -1116,27 +446,26 @@ module Aws::KinesisVideo
end
end
- context 'For region us-east-1 with FIPS disabled and DualStack disabled' do
+ context 'For region us-isob-east-1 with FIPS enabled and DualStack enabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.us-east-1.amazonaws.com"}}
+ {"error"=>"FIPS and DualStack are enabled, but this partition does not support one or both"}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-east-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>true, :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
end
end
- context 'For region us-east-2 with FIPS enabled and DualStack enabled' do
+ context 'For region us-isob-east-1 with FIPS enabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-east-2.api.aws"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-isob-east-1.sc2s.sgov.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-east-2", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -1144,27 +473,26 @@ module Aws::KinesisVideo
end
end
- context 'For region us-east-2 with FIPS enabled and DualStack disabled' do
+ context 'For region us-isob-east-1 with FIPS disabled and DualStack enabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-east-2.amazonaws.com"}}
+ {"error"=>"DualStack is enabled but this partition does not support DualStack"}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-east-2", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>false, :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
end
end
- context 'For region us-east-2 with FIPS disabled and DualStack enabled' do
+ context 'For region us-isob-east-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.us-east-2.api.aws"}}
+ {"endpoint"=>{"url"=>"https://kinesisvideo.us-isob-east-1.sc2s.sgov.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-east-2", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -1172,13 +500,13 @@ module Aws::KinesisVideo
end
end
- context 'For region us-east-2 with FIPS disabled and DualStack disabled' do
+ context 'For custom endpoint with region set and fips disabled and dualstack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.us-east-2.amazonaws.com"}}
+ {"endpoint"=>{"url"=>"https://example.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-east-2", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>false, :endpoint=>"https://example.com"})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -1186,26 +514,13 @@ module Aws::KinesisVideo
end
end
- context 'For region us-isob-east-1 with FIPS enabled and DualStack enabled' do
- let(:expected) do
- {"error"=>"FIPS and DualStack are enabled, but this partition does not support one or both"}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-isob-east-1", :use_dual_stack=>true})
- expect do
- subject.resolve_endpoint(params)
- end.to raise_error(ArgumentError, expected['error'])
- end
- end
-
- context 'For region us-isob-east-1 with FIPS enabled and DualStack disabled' do
+ context 'For custom endpoint with region not set and fips disabled and dualstack disabled' do
let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo-fips.us-isob-east-1.sc2s.sgov.gov"}}
+ {"endpoint"=>{"url"=>"https://example.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-isob-east-1", :use_dual_stack=>false})
+ params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :endpoint=>"https://example.com"})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -1213,67 +528,39 @@ module Aws::KinesisVideo
end
end
- context 'For region us-isob-east-1 with FIPS disabled and DualStack enabled' do
+ context 'For custom endpoint with fips enabled and dualstack disabled' do
let(:expected) do
- {"error"=>"DualStack is enabled but this partition does not support DualStack"}
+ {"error"=>"Invalid Configuration: FIPS and custom endpoint are not supported"}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-isob-east-1", :use_dual_stack=>true})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>false, :endpoint=>"https://example.com"})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
end
end
- context 'For region us-isob-east-1 with FIPS disabled and DualStack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://kinesisvideo.us-isob-east-1.sc2s.sgov.gov"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-isob-east-1", :use_dual_stack=>false})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For custom endpoint with fips disabled and dualstack disabled' do
- let(:expected) do
- {"endpoint"=>{"url"=>"https://example.com"}}
- end
-
- it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-east-1", :use_dual_stack=>false, :endpoint=>"https://example.com"})
- endpoint = subject.resolve_endpoint(params)
- expect(endpoint.url).to eq(expected['endpoint']['url'])
- expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
- expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
- end
- end
-
- context 'For custom endpoint with fips enabled and dualstack disabled' do
+ context 'For custom endpoint with fips disabled and dualstack enabled' do
let(:expected) do
- {"error"=>"Invalid Configuration: FIPS and custom endpoint are not supported"}
+ {"error"=>"Invalid Configuration: Dualstack and custom endpoint are not supported"}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :region=>"us-east-1", :use_dual_stack=>false, :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>true, :endpoint=>"https://example.com"})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
end
end
- context 'For custom endpoint with fips disabled and dualstack enabled' do
+ context 'Missing region' do
let(:expected) do
- {"error"=>"Invalid Configuration: Dualstack and custom endpoint are not supported"}
+ {"error"=>"Invalid Configuration: Missing Region"}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :region=>"us-east-1", :use_dual_stack=>true, :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
diff --git a/gems/aws-sdk-macie2/CHANGELOG.md b/gems/aws-sdk-macie2/CHANGELOG.md
index 55dfc3a32fd..162d2ceb3ae 100644
--- a/gems/aws-sdk-macie2/CHANGELOG.md
+++ b/gems/aws-sdk-macie2/CHANGELOG.md
@@ -1,6 +1,11 @@
Unreleased Changes
------------------
+1.56.0 (2023-06-27)
+------------------
+
+* Feature - This release adds support for configuring new classification jobs to use the set of managed data identifiers that we recommend for jobs. For the managed data identifier selection type (managedDataIdentifierSelector), specify RECOMMENDED.
+
1.55.0 (2023-06-15)
------------------
diff --git a/gems/aws-sdk-macie2/VERSION b/gems/aws-sdk-macie2/VERSION
index 094d6ad00ce..3ebf789f5a8 100644
--- a/gems/aws-sdk-macie2/VERSION
+++ b/gems/aws-sdk-macie2/VERSION
@@ -1 +1 @@
-1.55.0
+1.56.0
diff --git a/gems/aws-sdk-macie2/lib/aws-sdk-macie2.rb b/gems/aws-sdk-macie2/lib/aws-sdk-macie2.rb
index e8279c9a846..16ba5bf9b2f 100644
--- a/gems/aws-sdk-macie2/lib/aws-sdk-macie2.rb
+++ b/gems/aws-sdk-macie2/lib/aws-sdk-macie2.rb
@@ -53,6 +53,6 @@
# @!group service
module Aws::Macie2
- GEM_VERSION = '1.55.0'
+ GEM_VERSION = '1.56.0'
end
diff --git a/gems/aws-sdk-macie2/lib/aws-sdk-macie2/client.rb b/gems/aws-sdk-macie2/lib/aws-sdk-macie2/client.rb
index 15a7e721d8b..dcc9c610141 100644
--- a/gems/aws-sdk-macie2/lib/aws-sdk-macie2/client.rb
+++ b/gems/aws-sdk-macie2/lib/aws-sdk-macie2/client.rb
@@ -551,7 +551,7 @@ def create_allow_list(params = {}, options = {})
# initial_run: false,
# job_type: "ONE_TIME", # required, accepts ONE_TIME, SCHEDULED
# managed_data_identifier_ids: ["__string"],
- # managed_data_identifier_selector: "ALL", # accepts ALL, EXCLUDE, INCLUDE, NONE
+ # managed_data_identifier_selector: "ALL", # accepts ALL, EXCLUDE, INCLUDE, NONE, RECOMMENDED
# name: "__string", # required
# s3_job_definition: { # required
# bucket_criteria: {
@@ -1239,7 +1239,7 @@ def describe_buckets(params = {}, options = {})
# resp.last_run_time #=> Time
# resp.managed_data_identifier_ids #=> Array
# resp.managed_data_identifier_ids[0] #=> String
- # resp.managed_data_identifier_selector #=> String, one of "ALL", "EXCLUDE", "INCLUDE", "NONE"
+ # resp.managed_data_identifier_selector #=> String, one of "ALL", "EXCLUDE", "INCLUDE", "NONE", "RECOMMENDED"
# resp.name #=> String
# resp.s3_job_definition.bucket_criteria.excludes.and #=> Array
# resp.s3_job_definition.bucket_criteria.excludes.and[0].simple_criterion.comparator #=> String, one of "EQ", "GT", "GTE", "LT", "LTE", "NE", "CONTAINS", "STARTS_WITH"
@@ -3847,7 +3847,7 @@ def build_request(operation_name, params = {})
params: params,
config: config)
context[:gem_name] = 'aws-sdk-macie2'
- context[:gem_version] = '1.55.0'
+ context[:gem_version] = '1.56.0'
Seahorse::Client::Request.new(handlers, context)
end
diff --git a/gems/aws-sdk-macie2/lib/aws-sdk-macie2/types.rb b/gems/aws-sdk-macie2/lib/aws-sdk-macie2/types.rb
index e6e97154a30..e01877a309c 100644
--- a/gems/aws-sdk-macie2/lib/aws-sdk-macie2/types.rb
+++ b/gems/aws-sdk-macie2/lib/aws-sdk-macie2/types.rb
@@ -1145,7 +1145,7 @@ class CreateAllowListResponse < Struct.new(
# Specifies the scope, schedule, and other settings for a classification
# job. You can't change any settings for a classification job after you
- # create it. This helps ensure that you have an immutable history of
+ # create it. This helps to ensure that you have an immutable history of
# sensitive data findings and discovery results for data privacy and
# protection audits or investigations.
#
@@ -1243,7 +1243,7 @@ class CreateClassificationJobResponse < Struct.new(
# Specifies the detection criteria and other settings for a custom data
# identifier. You can't change a custom data identifier after you
- # create it. This helps ensure that you have an immutable history of
+ # create it. This helps to ensure that you have an immutable history of
# sensitive data findings and discovery results for data privacy and
# protection audits or investigations.
#
@@ -5944,7 +5944,7 @@ class Severity < Struct.new(
# Specifies a severity level for findings that a custom data identifier
# produces. A severity level determines which severity is assigned to
- # the findings, based on the number of occurrences of text that matches
+ # the findings, based on the number of occurrences of text that match
# the custom data identifier's detection criteria.
#
# @!attribute [rw] occurrences_threshold
diff --git a/gems/aws-sdk-macie2/spec/endpoint_provider_spec.rb b/gems/aws-sdk-macie2/spec/endpoint_provider_spec.rb
index 265bfadbbdd..269fb3e252d 100644
--- a/gems/aws-sdk-macie2/spec/endpoint_provider_spec.rb
+++ b/gems/aws-sdk-macie2/spec/endpoint_provider_spec.rb
@@ -20,7 +20,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"af-south-1"})
+ params = EndpointParameters.new(**{:region=>"af-south-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -34,7 +34,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"ap-east-1"})
+ params = EndpointParameters.new(**{:region=>"ap-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -48,7 +48,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"ap-northeast-1"})
+ params = EndpointParameters.new(**{:region=>"ap-northeast-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -62,7 +62,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"ap-northeast-2"})
+ params = EndpointParameters.new(**{:region=>"ap-northeast-2", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -76,7 +76,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"ap-northeast-3"})
+ params = EndpointParameters.new(**{:region=>"ap-northeast-3", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -90,7 +90,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"ap-south-1"})
+ params = EndpointParameters.new(**{:region=>"ap-south-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -104,7 +104,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"ap-southeast-1"})
+ params = EndpointParameters.new(**{:region=>"ap-southeast-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -118,7 +118,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"ap-southeast-2"})
+ params = EndpointParameters.new(**{:region=>"ap-southeast-2", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -132,7 +132,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"ca-central-1"})
+ params = EndpointParameters.new(**{:region=>"ca-central-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -146,7 +146,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"eu-central-1"})
+ params = EndpointParameters.new(**{:region=>"eu-central-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -160,7 +160,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"eu-north-1"})
+ params = EndpointParameters.new(**{:region=>"eu-north-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -174,7 +174,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"eu-south-1"})
+ params = EndpointParameters.new(**{:region=>"eu-south-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -188,7 +188,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"eu-west-1"})
+ params = EndpointParameters.new(**{:region=>"eu-west-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -202,7 +202,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"eu-west-2"})
+ params = EndpointParameters.new(**{:region=>"eu-west-2", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -216,7 +216,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"eu-west-3"})
+ params = EndpointParameters.new(**{:region=>"eu-west-3", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -230,7 +230,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"me-south-1"})
+ params = EndpointParameters.new(**{:region=>"me-south-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -244,7 +244,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"sa-east-1"})
+ params = EndpointParameters.new(**{:region=>"sa-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -258,7 +258,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"us-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -272,7 +272,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>true, :region=>"us-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -286,7 +286,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"us-east-2"})
+ params = EndpointParameters.new(**{:region=>"us-east-2", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -300,7 +300,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>true, :region=>"us-east-2"})
+ params = EndpointParameters.new(**{:region=>"us-east-2", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -314,7 +314,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"us-west-1"})
+ params = EndpointParameters.new(**{:region=>"us-west-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -328,7 +328,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>true, :region=>"us-west-1"})
+ params = EndpointParameters.new(**{:region=>"us-west-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -342,7 +342,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"us-west-2"})
+ params = EndpointParameters.new(**{:region=>"us-west-2", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -356,7 +356,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>true, :region=>"us-west-2"})
+ params = EndpointParameters.new(**{:region=>"us-west-2", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -370,7 +370,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :use_fips=>true, :region=>"us-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -384,7 +384,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :use_fips=>false, :region=>"us-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -398,7 +398,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :use_fips=>true, :region=>"cn-north-1"})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>true, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -412,7 +412,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>true, :region=>"cn-north-1"})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -426,7 +426,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :use_fips=>false, :region=>"cn-north-1"})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>false, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -440,7 +440,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"cn-north-1"})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -454,7 +454,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :use_fips=>true, :region=>"us-gov-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>true, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -468,7 +468,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>true, :region=>"us-gov-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -482,7 +482,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :use_fips=>false, :region=>"us-gov-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>false, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -496,7 +496,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"us-gov-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -504,13 +504,26 @@ module Aws::Macie2
end
end
+ context 'For region us-iso-east-1 with FIPS enabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"FIPS and DualStack are enabled, but this partition does not support one or both"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>true, :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
context 'For region us-iso-east-1 with FIPS enabled and DualStack disabled' do
let(:expected) do
{"endpoint"=>{"url"=>"https://macie2-fips.us-iso-east-1.c2s.ic.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>true, :region=>"us-iso-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -518,13 +531,26 @@ module Aws::Macie2
end
end
+ context 'For region us-iso-east-1 with FIPS disabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"DualStack is enabled but this partition does not support DualStack"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>false, :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
context 'For region us-iso-east-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
{"endpoint"=>{"url"=>"https://macie2.us-iso-east-1.c2s.ic.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"us-iso-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -532,13 +558,26 @@ module Aws::Macie2
end
end
+ context 'For region us-isob-east-1 with FIPS enabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"FIPS and DualStack are enabled, but this partition does not support one or both"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>true, :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
context 'For region us-isob-east-1 with FIPS enabled and DualStack disabled' do
let(:expected) do
{"endpoint"=>{"url"=>"https://macie2-fips.us-isob-east-1.sc2s.sgov.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>true, :region=>"us-isob-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -546,13 +585,26 @@ module Aws::Macie2
end
end
+ context 'For region us-isob-east-1 with FIPS disabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"DualStack is enabled but this partition does not support DualStack"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>false, :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
context 'For region us-isob-east-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
{"endpoint"=>{"url"=>"https://macie2.us-isob-east-1.sc2s.sgov.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"us-isob-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -566,7 +618,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :region=>"us-east-1", :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>false, :endpoint=>"https://example.com"})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -580,7 +632,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :endpoint=>"https://example.com"})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -594,7 +646,7 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>true, :region=>"us-east-1", :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>false, :endpoint=>"https://example.com"})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
@@ -607,7 +659,20 @@ module Aws::Macie2
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :use_fips=>false, :region=>"us-east-1", :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>true, :endpoint=>"https://example.com"})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
+ context 'Missing region' do
+ let(:expected) do
+ {"error"=>"Invalid Configuration: Missing Region"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
diff --git a/gems/aws-sdk-privatenetworks/CHANGELOG.md b/gems/aws-sdk-privatenetworks/CHANGELOG.md
index c2b0e57e41c..53cf38d7a9d 100644
--- a/gems/aws-sdk-privatenetworks/CHANGELOG.md
+++ b/gems/aws-sdk-privatenetworks/CHANGELOG.md
@@ -1,6 +1,11 @@
Unreleased Changes
------------------
+1.7.0 (2023-06-27)
+------------------
+
+* Feature - This release allows Private5G customers to choose different commitment plans (60-days, 1-year, 3-years) when placing new orders, enables automatic renewal option for 1-year and 3-years commitments. It also allows customers to update the commitment plan of an existing radio unit.
+
1.6.0 (2023-06-15)
------------------
diff --git a/gems/aws-sdk-privatenetworks/VERSION b/gems/aws-sdk-privatenetworks/VERSION
index dc1e644a101..bd8bf882d06 100644
--- a/gems/aws-sdk-privatenetworks/VERSION
+++ b/gems/aws-sdk-privatenetworks/VERSION
@@ -1 +1 @@
-1.6.0
+1.7.0
diff --git a/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks.rb b/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks.rb
index 46682ef2d02..59504b52d76 100644
--- a/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks.rb
+++ b/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks.rb
@@ -52,6 +52,6 @@
# @!group service
module Aws::PrivateNetworks
- GEM_VERSION = '1.6.0'
+ GEM_VERSION = '1.7.0'
end
diff --git a/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks/client.rb b/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks/client.rb
index 0fda7f43c7b..aa96d4202da 100644
--- a/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks/client.rb
+++ b/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks/client.rb
@@ -395,9 +395,15 @@ def initialize(*args)
# resp.order.network_arn #=> String
# resp.order.network_site_arn #=> String
# resp.order.order_arn #=> String
+ # resp.order.ordered_resources #=> Array
+ # resp.order.ordered_resources[0].commitment_configuration.automatic_renewal #=> Boolean
+ # resp.order.ordered_resources[0].commitment_configuration.commitment_length #=> String, one of "SIXTY_DAYS", "ONE_YEAR", "THREE_YEARS"
+ # resp.order.ordered_resources[0].count #=> Integer
+ # resp.order.ordered_resources[0].type #=> String, one of "RADIO_UNIT", "DEVICE_IDENTIFIER"
# resp.order.shipping_address.city #=> String
# resp.order.shipping_address.company #=> String
# resp.order.shipping_address.country #=> String
+ # resp.order.shipping_address.email_address #=> String
# resp.order.shipping_address.name #=> String
# resp.order.shipping_address.phone_number #=> String
# resp.order.shipping_address.postal_code #=> String
@@ -477,6 +483,29 @@ def activate_device_identifier(params = {}, options = {})
#
# [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html
#
+ # @option params [Types::CommitmentConfiguration] :commitment_configuration
+ # Determines the duration and renewal status of the commitment period
+ # for all pending radio units.
+ #
+ # If you include `commitmentConfiguration` in the
+ # `ActivateNetworkSiteRequest` action, you must specify the following:
+ #
+ # * The commitment period for the radio unit. You can choose a 60-day,
+ # 1-year, or 3-year period.
+ #
+ # * Whether you want your commitment period to automatically renew for
+ # one more year after your current commitment period expires.
+ #
+ # For pricing, see [Amazon Web Services Private 5G Pricing][1].
+ #
+ # If you do not include `commitmentConfiguration` in the
+ # `ActivateNetworkSiteRequest` action, the commitment period is set to
+ # 60-days.
+ #
+ #
+ #
+ # [1]: http://aws.amazon.com/private5g/pricing
+ #
# @option params [required, String] :network_site_arn
# The Amazon Resource Name (ARN) of the network site.
#
@@ -491,11 +520,16 @@ def activate_device_identifier(params = {}, options = {})
#
# resp = client.activate_network_site({
# client_token: "ClientToken",
+ # commitment_configuration: {
+ # automatic_renewal: false, # required
+ # commitment_length: "SIXTY_DAYS", # required, accepts SIXTY_DAYS, ONE_YEAR, THREE_YEARS
+ # },
# network_site_arn: "Arn", # required
# shipping_address: { # required
# city: "AddressContent", # required
# company: "AddressContent",
# country: "AddressContent", # required
+ # email_address: "AddressContent",
# name: "AddressContent", # required
# phone_number: "AddressContent",
# postal_code: "AddressContent", # required
@@ -605,6 +639,10 @@ def activate_network_site(params = {}, options = {})
# resp.access_point.attributes #=> Array
# resp.access_point.attributes[0].name #=> String
# resp.access_point.attributes[0].value #=> String
+ # resp.access_point.commitment_information.commitment_configuration.automatic_renewal #=> Boolean
+ # resp.access_point.commitment_information.commitment_configuration.commitment_length #=> String, one of "SIXTY_DAYS", "ONE_YEAR", "THREE_YEARS"
+ # resp.access_point.commitment_information.expires_on #=> Time
+ # resp.access_point.commitment_information.start_at #=> Time
# resp.access_point.created_at #=> Time
# resp.access_point.description #=> String
# resp.access_point.health #=> String, one of "INITIAL", "HEALTHY", "UNHEALTHY"
@@ -623,6 +661,7 @@ def activate_network_site(params = {}, options = {})
# resp.access_point.return_information.shipping_address.city #=> String
# resp.access_point.return_information.shipping_address.company #=> String
# resp.access_point.return_information.shipping_address.country #=> String
+ # resp.access_point.return_information.shipping_address.email_address #=> String
# resp.access_point.return_information.shipping_address.name #=> String
# resp.access_point.return_information.shipping_address.phone_number #=> String
# resp.access_point.return_information.shipping_address.postal_code #=> String
@@ -1081,6 +1120,10 @@ def get_network(params = {}, options = {})
# resp.network_resource.attributes #=> Array
# resp.network_resource.attributes[0].name #=> String
# resp.network_resource.attributes[0].value #=> String
+ # resp.network_resource.commitment_information.commitment_configuration.automatic_renewal #=> Boolean
+ # resp.network_resource.commitment_information.commitment_configuration.commitment_length #=> String, one of "SIXTY_DAYS", "ONE_YEAR", "THREE_YEARS"
+ # resp.network_resource.commitment_information.expires_on #=> Time
+ # resp.network_resource.commitment_information.start_at #=> Time
# resp.network_resource.created_at #=> Time
# resp.network_resource.description #=> String
# resp.network_resource.health #=> String, one of "INITIAL", "HEALTHY", "UNHEALTHY"
@@ -1099,6 +1142,7 @@ def get_network(params = {}, options = {})
# resp.network_resource.return_information.shipping_address.city #=> String
# resp.network_resource.return_information.shipping_address.company #=> String
# resp.network_resource.return_information.shipping_address.country #=> String
+ # resp.network_resource.return_information.shipping_address.email_address #=> String
# resp.network_resource.return_information.shipping_address.name #=> String
# resp.network_resource.return_information.shipping_address.phone_number #=> String
# resp.network_resource.return_information.shipping_address.postal_code #=> String
@@ -1204,9 +1248,15 @@ def get_network_site(params = {}, options = {})
# resp.order.network_arn #=> String
# resp.order.network_site_arn #=> String
# resp.order.order_arn #=> String
+ # resp.order.ordered_resources #=> Array
+ # resp.order.ordered_resources[0].commitment_configuration.automatic_renewal #=> Boolean
+ # resp.order.ordered_resources[0].commitment_configuration.commitment_length #=> String, one of "SIXTY_DAYS", "ONE_YEAR", "THREE_YEARS"
+ # resp.order.ordered_resources[0].count #=> Integer
+ # resp.order.ordered_resources[0].type #=> String, one of "RADIO_UNIT", "DEVICE_IDENTIFIER"
# resp.order.shipping_address.city #=> String
# resp.order.shipping_address.company #=> String
# resp.order.shipping_address.country #=> String
+ # resp.order.shipping_address.email_address #=> String
# resp.order.shipping_address.name #=> String
# resp.order.shipping_address.phone_number #=> String
# resp.order.shipping_address.postal_code #=> String
@@ -1352,6 +1402,10 @@ def list_device_identifiers(params = {}, options = {})
# resp.network_resources[0].attributes #=> Array
# resp.network_resources[0].attributes[0].name #=> String
# resp.network_resources[0].attributes[0].value #=> String
+ # resp.network_resources[0].commitment_information.commitment_configuration.automatic_renewal #=> Boolean
+ # resp.network_resources[0].commitment_information.commitment_configuration.commitment_length #=> String, one of "SIXTY_DAYS", "ONE_YEAR", "THREE_YEARS"
+ # resp.network_resources[0].commitment_information.expires_on #=> Time
+ # resp.network_resources[0].commitment_information.start_at #=> Time
# resp.network_resources[0].created_at #=> Time
# resp.network_resources[0].description #=> String
# resp.network_resources[0].health #=> String, one of "INITIAL", "HEALTHY", "UNHEALTHY"
@@ -1370,6 +1424,7 @@ def list_device_identifiers(params = {}, options = {})
# resp.network_resources[0].return_information.shipping_address.city #=> String
# resp.network_resources[0].return_information.shipping_address.company #=> String
# resp.network_resources[0].return_information.shipping_address.country #=> String
+ # resp.network_resources[0].return_information.shipping_address.email_address #=> String
# resp.network_resources[0].return_information.shipping_address.name #=> String
# resp.network_resources[0].return_information.shipping_address.phone_number #=> String
# resp.network_resources[0].return_information.shipping_address.postal_code #=> String
@@ -1592,9 +1647,15 @@ def list_networks(params = {}, options = {})
# resp.orders[0].network_arn #=> String
# resp.orders[0].network_site_arn #=> String
# resp.orders[0].order_arn #=> String
+ # resp.orders[0].ordered_resources #=> Array
+ # resp.orders[0].ordered_resources[0].commitment_configuration.automatic_renewal #=> Boolean
+ # resp.orders[0].ordered_resources[0].commitment_configuration.commitment_length #=> String, one of "SIXTY_DAYS", "ONE_YEAR", "THREE_YEARS"
+ # resp.orders[0].ordered_resources[0].count #=> Integer
+ # resp.orders[0].ordered_resources[0].type #=> String, one of "RADIO_UNIT", "DEVICE_IDENTIFIER"
# resp.orders[0].shipping_address.city #=> String
# resp.orders[0].shipping_address.company #=> String
# resp.orders[0].shipping_address.country #=> String
+ # resp.orders[0].shipping_address.email_address #=> String
# resp.orders[0].shipping_address.name #=> String
# resp.orders[0].shipping_address.phone_number #=> String
# resp.orders[0].shipping_address.postal_code #=> String
@@ -1662,19 +1723,56 @@ def ping(params = {}, options = {})
req.send_request(options)
end
- # Starts an update of the specified network resource.
+ # Use this action to do the following tasks:
+ #
+ # * Update the duration and renewal status of the commitment period for
+ # a radio unit. The update goes into effect immediately.
+ #
+ # * Request a replacement for a network resource.
+ #
+ # * Request that you return a network resource.
#
# After you submit a request to replace or return a network resource,
- # the status of the network resource is `CREATING_SHIPPING_LABEL`. The
- # shipping label is available when the status of the network resource is
- # `PENDING_RETURN`. After the network resource is successfully returned,
- # its status is `DELETED`. For more information, see [Return a radio
- # unit][1].
+ # the status of the network resource changes to
+ # `CREATING_SHIPPING_LABEL`. The shipping label is available when the
+ # status of the network resource is `PENDING_RETURN`. After the network
+ # resource is successfully returned, its status changes to `DELETED`.
+ # For more information, see [Return a radio unit][1].
#
#
#
# [1]: https://docs.aws.amazon.com/private-networks/latest/userguide/radio-units.html#return-radio-unit
#
+ # @option params [Types::CommitmentConfiguration] :commitment_configuration
+ # Use this action to extend and automatically renew the commitment
+ # period for the radio unit. You can do the following:
+ #
+ # * Change a 60-day commitment to a 1-year or 3-year commitment. The
+ # change is immediate and the hourly rate decreases to the rate for
+ # the new commitment period.
+ #
+ # * Change a 1-year commitment to a 3-year commitment. The change is
+ # immediate and the hourly rate decreases to the rate for the 3-year
+ # commitment period.
+ #
+ # * Set a 1-year commitment to automatically renew for an additional 1
+ # year. The hourly rate for the additional year will continue to be
+ # the same as your existing 1-year rate.
+ #
+ # * Set a 3-year commitment to automatically renew for an additional 1
+ # year. The hourly rate for the additional year will continue to be
+ # the same as your existing 3-year rate.
+ #
+ # * Turn off a previously-enabled automatic renewal on a 1-year or
+ # 3-year commitment. You cannot use the automatic-renewal option for a
+ # 60-day commitment.
+ #
+ # For pricing, see [Amazon Web Services Private 5G Pricing][1].
+ #
+ #
+ #
+ # [1]: http://aws.amazon.com/private5g/pricing
+ #
# @option params [required, String] :network_resource_arn
# The Amazon Resource Name (ARN) of the network resource.
#
@@ -1694,10 +1792,18 @@ def ping(params = {}, options = {})
# provide a shipping label that you can use for the return process and
# we ship a replacement radio unit to you.
#
- # * `RETURN` - Submits a request to replace a radio unit that you no
+ # * `RETURN` - Submits a request to return a radio unit that you no
# longer need. We provide a shipping label that you can use for the
# return process.
#
+ # * `COMMITMENT` - Submits a request to change or renew the commitment
+ # period. If you choose this value, then you must set [
+ # `commitmentConfiguration` ][1].
+ #
+ #
+ #
+ # [1]: https://docs.aws.amazon.com/private-networks/latest/APIReference/API_StartNetworkResourceUpdate.html#privatenetworks-StartNetworkResourceUpdate-request-commitmentConfiguration
+ #
# @return [Types::StartNetworkResourceUpdateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::StartNetworkResourceUpdateResponse#network_resource #network_resource} => Types::NetworkResource
@@ -1705,12 +1811,17 @@ def ping(params = {}, options = {})
# @example Request syntax with placeholder values
#
# resp = client.start_network_resource_update({
+ # commitment_configuration: {
+ # automatic_renewal: false, # required
+ # commitment_length: "SIXTY_DAYS", # required, accepts SIXTY_DAYS, ONE_YEAR, THREE_YEARS
+ # },
# network_resource_arn: "Arn", # required
# return_reason: "StartNetworkResourceUpdateRequestReturnReasonString",
# shipping_address: {
# city: "AddressContent", # required
# company: "AddressContent",
# country: "AddressContent", # required
+ # email_address: "AddressContent",
# name: "AddressContent", # required
# phone_number: "AddressContent",
# postal_code: "AddressContent", # required
@@ -1719,7 +1830,7 @@ def ping(params = {}, options = {})
# street2: "AddressContent",
# street3: "AddressContent",
# },
- # update_type: "REPLACE", # required, accepts REPLACE, RETURN
+ # update_type: "REPLACE", # required, accepts REPLACE, RETURN, COMMITMENT
# })
#
# @example Response structure
@@ -1727,6 +1838,10 @@ def ping(params = {}, options = {})
# resp.network_resource.attributes #=> Array
# resp.network_resource.attributes[0].name #=> String
# resp.network_resource.attributes[0].value #=> String
+ # resp.network_resource.commitment_information.commitment_configuration.automatic_renewal #=> Boolean
+ # resp.network_resource.commitment_information.commitment_configuration.commitment_length #=> String, one of "SIXTY_DAYS", "ONE_YEAR", "THREE_YEARS"
+ # resp.network_resource.commitment_information.expires_on #=> Time
+ # resp.network_resource.commitment_information.start_at #=> Time
# resp.network_resource.created_at #=> Time
# resp.network_resource.description #=> String
# resp.network_resource.health #=> String, one of "INITIAL", "HEALTHY", "UNHEALTHY"
@@ -1745,6 +1860,7 @@ def ping(params = {}, options = {})
# resp.network_resource.return_information.shipping_address.city #=> String
# resp.network_resource.return_information.shipping_address.company #=> String
# resp.network_resource.return_information.shipping_address.country #=> String
+ # resp.network_resource.return_information.shipping_address.email_address #=> String
# resp.network_resource.return_information.shipping_address.name #=> String
# resp.network_resource.return_information.shipping_address.phone_number #=> String
# resp.network_resource.return_information.shipping_address.postal_code #=> String
@@ -1996,7 +2112,7 @@ def build_request(operation_name, params = {})
params: params,
config: config)
context[:gem_name] = 'aws-sdk-privatenetworks'
- context[:gem_version] = '1.6.0'
+ context[:gem_version] = '1.7.0'
Seahorse::Client::Request.new(handlers, context)
end
diff --git a/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks/client_api.rb b/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks/client_api.rb
index dacdd761bee..4c58258bf06 100644
--- a/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks/client_api.rb
+++ b/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks/client_api.rb
@@ -24,7 +24,11 @@ module ClientApi
Address = Shapes::StructureShape.new(name: 'Address')
AddressContent = Shapes::StringShape.new(name: 'AddressContent')
Arn = Shapes::StringShape.new(name: 'Arn')
+ Boolean = Shapes::BooleanShape.new(name: 'Boolean')
ClientToken = Shapes::StringShape.new(name: 'ClientToken')
+ CommitmentConfiguration = Shapes::StructureShape.new(name: 'CommitmentConfiguration')
+ CommitmentInformation = Shapes::StructureShape.new(name: 'CommitmentInformation')
+ CommitmentLength = Shapes::StringShape.new(name: 'CommitmentLength')
ConfigureAccessPointRequest = Shapes::StructureShape.new(name: 'ConfigureAccessPointRequest')
ConfigureAccessPointRequestCpiSecretKeyString = Shapes::StringShape.new(name: 'ConfigureAccessPointRequestCpiSecretKeyString')
ConfigureAccessPointRequestCpiUserIdString = Shapes::StringShape.new(name: 'ConfigureAccessPointRequestCpiUserIdString')
@@ -115,6 +119,9 @@ module ClientApi
OrderFilterValues = Shapes::ListShape.new(name: 'OrderFilterValues')
OrderFilters = Shapes::MapShape.new(name: 'OrderFilters')
OrderList = Shapes::ListShape.new(name: 'OrderList')
+ OrderedResourceDefinition = Shapes::StructureShape.new(name: 'OrderedResourceDefinition')
+ OrderedResourceDefinitionCountInteger = Shapes::IntegerShape.new(name: 'OrderedResourceDefinitionCountInteger')
+ OrderedResourceDefinitions = Shapes::ListShape.new(name: 'OrderedResourceDefinitions')
PaginationToken = Shapes::StringShape.new(name: 'PaginationToken')
PingResponse = Shapes::StructureShape.new(name: 'PingResponse')
Position = Shapes::StructureShape.new(name: 'Position')
@@ -164,6 +171,7 @@ module ClientApi
ActivateDeviceIdentifierResponse.struct_class = Types::ActivateDeviceIdentifierResponse
ActivateNetworkSiteRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location_name: "clientToken"))
+ ActivateNetworkSiteRequest.add_member(:commitment_configuration, Shapes::ShapeRef.new(shape: CommitmentConfiguration, location_name: "commitmentConfiguration"))
ActivateNetworkSiteRequest.add_member(:network_site_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "networkSiteArn"))
ActivateNetworkSiteRequest.add_member(:shipping_address, Shapes::ShapeRef.new(shape: Address, required: true, location_name: "shippingAddress"))
ActivateNetworkSiteRequest.struct_class = Types::ActivateNetworkSiteRequest
@@ -174,6 +182,7 @@ module ClientApi
Address.add_member(:city, Shapes::ShapeRef.new(shape: AddressContent, required: true, location_name: "city"))
Address.add_member(:company, Shapes::ShapeRef.new(shape: AddressContent, location_name: "company"))
Address.add_member(:country, Shapes::ShapeRef.new(shape: AddressContent, required: true, location_name: "country"))
+ Address.add_member(:email_address, Shapes::ShapeRef.new(shape: AddressContent, location_name: "emailAddress"))
Address.add_member(:name, Shapes::ShapeRef.new(shape: AddressContent, required: true, location_name: "name"))
Address.add_member(:phone_number, Shapes::ShapeRef.new(shape: AddressContent, location_name: "phoneNumber"))
Address.add_member(:postal_code, Shapes::ShapeRef.new(shape: AddressContent, required: true, location_name: "postalCode"))
@@ -183,6 +192,15 @@ module ClientApi
Address.add_member(:street3, Shapes::ShapeRef.new(shape: AddressContent, location_name: "street3"))
Address.struct_class = Types::Address
+ CommitmentConfiguration.add_member(:automatic_renewal, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "automaticRenewal"))
+ CommitmentConfiguration.add_member(:commitment_length, Shapes::ShapeRef.new(shape: CommitmentLength, required: true, location_name: "commitmentLength"))
+ CommitmentConfiguration.struct_class = Types::CommitmentConfiguration
+
+ CommitmentInformation.add_member(:commitment_configuration, Shapes::ShapeRef.new(shape: CommitmentConfiguration, required: true, location_name: "commitmentConfiguration"))
+ CommitmentInformation.add_member(:expires_on, Shapes::ShapeRef.new(shape: Timestamp, location_name: "expiresOn"))
+ CommitmentInformation.add_member(:start_at, Shapes::ShapeRef.new(shape: Timestamp, location_name: "startAt"))
+ CommitmentInformation.struct_class = Types::CommitmentInformation
+
ConfigureAccessPointRequest.add_member(:access_point_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "accessPointArn"))
ConfigureAccessPointRequest.add_member(:cpi_secret_key, Shapes::ShapeRef.new(shape: ConfigureAccessPointRequestCpiSecretKeyString, location_name: "cpiSecretKey"))
ConfigureAccessPointRequest.add_member(:cpi_user_id, Shapes::ShapeRef.new(shape: ConfigureAccessPointRequestCpiUserIdString, location_name: "cpiUserId"))
@@ -376,6 +394,7 @@ module ClientApi
NetworkList.member = Shapes::ShapeRef.new(shape: Network)
NetworkResource.add_member(:attributes, Shapes::ShapeRef.new(shape: NameValuePairs, location_name: "attributes"))
+ NetworkResource.add_member(:commitment_information, Shapes::ShapeRef.new(shape: CommitmentInformation, location_name: "commitmentInformation"))
NetworkResource.add_member(:created_at, Shapes::ShapeRef.new(shape: Timestamp, location_name: "createdAt"))
NetworkResource.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "description"))
NetworkResource.add_member(:health, Shapes::ShapeRef.new(shape: HealthStatus, location_name: "health"))
@@ -434,6 +453,7 @@ module ClientApi
Order.add_member(:network_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "networkArn"))
Order.add_member(:network_site_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "networkSiteArn"))
Order.add_member(:order_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "orderArn"))
+ Order.add_member(:ordered_resources, Shapes::ShapeRef.new(shape: OrderedResourceDefinitions, location_name: "orderedResources"))
Order.add_member(:shipping_address, Shapes::ShapeRef.new(shape: Address, location_name: "shippingAddress"))
Order.add_member(:tracking_information, Shapes::ShapeRef.new(shape: TrackingInformationList, location_name: "trackingInformation"))
Order.struct_class = Types::Order
@@ -445,6 +465,13 @@ module ClientApi
OrderList.member = Shapes::ShapeRef.new(shape: Order)
+ OrderedResourceDefinition.add_member(:commitment_configuration, Shapes::ShapeRef.new(shape: CommitmentConfiguration, location_name: "commitmentConfiguration"))
+ OrderedResourceDefinition.add_member(:count, Shapes::ShapeRef.new(shape: OrderedResourceDefinitionCountInteger, required: true, location_name: "count"))
+ OrderedResourceDefinition.add_member(:type, Shapes::ShapeRef.new(shape: NetworkResourceDefinitionType, required: true, location_name: "type"))
+ OrderedResourceDefinition.struct_class = Types::OrderedResourceDefinition
+
+ OrderedResourceDefinitions.member = Shapes::ShapeRef.new(shape: OrderedResourceDefinition)
+
PingResponse.add_member(:status, Shapes::ShapeRef.new(shape: String, location_name: "status"))
PingResponse.struct_class = Types::PingResponse
@@ -470,6 +497,7 @@ module ClientApi
SitePlan.add_member(:resource_definitions, Shapes::ShapeRef.new(shape: NetworkResourceDefinitions, location_name: "resourceDefinitions"))
SitePlan.struct_class = Types::SitePlan
+ StartNetworkResourceUpdateRequest.add_member(:commitment_configuration, Shapes::ShapeRef.new(shape: CommitmentConfiguration, location_name: "commitmentConfiguration"))
StartNetworkResourceUpdateRequest.add_member(:network_resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "networkResourceArn"))
StartNetworkResourceUpdateRequest.add_member(:return_reason, Shapes::ShapeRef.new(shape: StartNetworkResourceUpdateRequestReturnReasonString, location_name: "returnReason"))
StartNetworkResourceUpdateRequest.add_member(:shipping_address, Shapes::ShapeRef.new(shape: Address, location_name: "shippingAddress"))
diff --git a/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks/types.rb b/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks/types.rb
index 7be855d6f84..d1cbc0440c8 100644
--- a/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks/types.rb
+++ b/gems/aws-sdk-privatenetworks/lib/aws-sdk-privatenetworks/types.rb
@@ -97,6 +97,30 @@ class ActivateDeviceIdentifierResponse < Struct.new(
# [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html
# @return [String]
#
+ # @!attribute [rw] commitment_configuration
+ # Determines the duration and renewal status of the commitment period
+ # for all pending radio units.
+ #
+ # If you include `commitmentConfiguration` in the
+ # `ActivateNetworkSiteRequest` action, you must specify the following:
+ #
+ # * The commitment period for the radio unit. You can choose a 60-day,
+ # 1-year, or 3-year period.
+ #
+ # * Whether you want your commitment period to automatically renew for
+ # one more year after your current commitment period expires.
+ #
+ # For pricing, see [Amazon Web Services Private 5G Pricing][1].
+ #
+ # If you do not include `commitmentConfiguration` in the
+ # `ActivateNetworkSiteRequest` action, the commitment period is set to
+ # 60-days.
+ #
+ #
+ #
+ # [1]: http://aws.amazon.com/private5g/pricing
+ # @return [Types::CommitmentConfiguration]
+ #
# @!attribute [rw] network_site_arn
# The Amazon Resource Name (ARN) of the network site.
# @return [String]
@@ -109,6 +133,7 @@ class ActivateDeviceIdentifierResponse < Struct.new(
#
class ActivateNetworkSiteRequest < Struct.new(
:client_token,
+ :commitment_configuration,
:network_site_arn,
:shipping_address)
SENSITIVE = []
@@ -141,12 +166,16 @@ class ActivateNetworkSiteResponse < Struct.new(
# The country for this address.
# @return [String]
#
+ # @!attribute [rw] email_address
+ # The recipient's email address.
+ # @return [String]
+ #
# @!attribute [rw] name
# The recipient's name for this address.
# @return [String]
#
# @!attribute [rw] phone_number
- # The phone number for this address.
+ # The recipient's phone number.
# @return [String]
#
# @!attribute [rw] postal_code
@@ -175,6 +204,7 @@ class Address < Struct.new(
:city,
:company,
:country,
+ :email_address,
:name,
:phone_number,
:postal_code,
@@ -182,7 +212,84 @@ class Address < Struct.new(
:street1,
:street2,
:street3)
- SENSITIVE = [:city, :company, :country, :name, :phone_number, :postal_code, :state_or_province, :street1, :street2, :street3]
+ SENSITIVE = [:city, :company, :country, :email_address, :name, :phone_number, :postal_code, :state_or_province, :street1, :street2, :street3]
+ include Aws::Structure
+ end
+
+ # Determines the duration and renewal status of the commitment period
+ # for a radio unit.
+ #
+ # For pricing, see [Amazon Web Services Private 5G Pricing][1].
+ #
+ #
+ #
+ # [1]: http://aws.amazon.com/private5g/pricing
+ #
+ # @!attribute [rw] automatic_renewal
+ # Determines whether the commitment period for a radio unit is set to
+ # automatically renew for an additional 1 year after your current
+ # commitment period expires.
+ #
+ # Set to `True`, if you want your commitment period to automatically
+ # renew. Set to `False` if you do not want your commitment to
+ # automatically renew.
+ #
+ # You can do the following:
+ #
+ # * Set a 1-year commitment to automatically renew for an additional 1
+ # year. The hourly rate for the additional year will continue to be
+ # the same as your existing 1-year rate.
+ #
+ # * Set a 3-year commitment to automatically renew for an additional 1
+ # year. The hourly rate for the additional year will continue to be
+ # the same as your existing 3-year rate.
+ #
+ # * Turn off a previously-enabled automatic renewal on a 1-year or
+ # 3-year commitment.
+ #
+ # You cannot use the automatic-renewal option for a 60-day commitment.
+ # @return [Boolean]
+ #
+ # @!attribute [rw] commitment_length
+ # The duration of the commitment period for the radio unit. You can
+ # choose a 60-day, 1-year, or 3-year period.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/privatenetworks-2021-12-03/CommitmentConfiguration AWS API Documentation
+ #
+ class CommitmentConfiguration < Struct.new(
+ :automatic_renewal,
+ :commitment_length)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Shows the duration, the date and time that the contract started and
+ # ends, and the renewal status of the commitment period for the radio
+ # unit.
+ #
+ # @!attribute [rw] commitment_configuration
+ # The duration and renewal status of the commitment period for the
+ # radio unit.
+ # @return [Types::CommitmentConfiguration]
+ #
+ # @!attribute [rw] expires_on
+ # The date and time that the commitment period ends. If you do not
+ # cancel or renew the commitment before the expiration date, you will
+ # be billed at the 60-day-commitment rate.
+ # @return [Time]
+ #
+ # @!attribute [rw] start_at
+ # The date and time that the commitment period started.
+ # @return [Time]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/privatenetworks-2021-12-03/CommitmentInformation AWS API Documentation
+ #
+ class CommitmentInformation < Struct.new(
+ :commitment_configuration,
+ :expires_on,
+ :start_at)
+ SENSITIVE = []
include Aws::Structure
end
@@ -1056,6 +1163,12 @@ class Network < Struct.new(
# The attributes of the network resource.
# @return [Array]
#
+ # @!attribute [rw] commitment_information
+ # Information about the commitment period for the radio unit. Shows
+ # the duration, the date and time that the contract started and ends,
+ # and the renewal status of the commitment period.
+ # @return [Types::CommitmentInformation]
+ #
# @!attribute [rw] created_at
# The creation time of the network resource.
# @return [Time]
@@ -1123,6 +1236,7 @@ class Network < Struct.new(
#
class NetworkResource < Struct.new(
:attributes,
+ :commitment_information,
:created_at,
:description,
:health,
@@ -1255,6 +1369,10 @@ class NetworkSite < Struct.new(
# The Amazon Resource Name (ARN) of the order.
# @return [String]
#
+ # @!attribute [rw] ordered_resources
+ # A list of the network resources placed in the order.
+ # @return [Array]
+ #
# @!attribute [rw] shipping_address
# The shipping address of the order.
# @return [Types::Address]
@@ -1271,12 +1389,39 @@ class Order < Struct.new(
:network_arn,
:network_site_arn,
:order_arn,
+ :ordered_resources,
:shipping_address,
:tracking_information)
SENSITIVE = []
include Aws::Structure
end
+ # Details of the network resources in the order.
+ #
+ # @!attribute [rw] commitment_configuration
+ # The duration and renewal status of the commitment period for each
+ # radio unit in the order. Does not show details if the resource type
+ # is DEVICE\_IDENTIFIER.
+ # @return [Types::CommitmentConfiguration]
+ #
+ # @!attribute [rw] count
+ # The number of network resources in the order.
+ # @return [Integer]
+ #
+ # @!attribute [rw] type
+ # The type of network resource in the order.
+ # @return [String]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/privatenetworks-2021-12-03/OrderedResourceDefinition AWS API Documentation
+ #
+ class OrderedResourceDefinition < Struct.new(
+ :commitment_configuration,
+ :count,
+ :type)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
# @!attribute [rw] status
# Information about the health of the service.
# @return [String]
@@ -1403,6 +1548,37 @@ class SitePlan < Struct.new(
include Aws::Structure
end
+ # @!attribute [rw] commitment_configuration
+ # Use this action to extend and automatically renew the commitment
+ # period for the radio unit. You can do the following:
+ #
+ # * Change a 60-day commitment to a 1-year or 3-year commitment. The
+ # change is immediate and the hourly rate decreases to the rate for
+ # the new commitment period.
+ #
+ # * Change a 1-year commitment to a 3-year commitment. The change is
+ # immediate and the hourly rate decreases to the rate for the 3-year
+ # commitment period.
+ #
+ # * Set a 1-year commitment to automatically renew for an additional 1
+ # year. The hourly rate for the additional year will continue to be
+ # the same as your existing 1-year rate.
+ #
+ # * Set a 3-year commitment to automatically renew for an additional 1
+ # year. The hourly rate for the additional year will continue to be
+ # the same as your existing 3-year rate.
+ #
+ # * Turn off a previously-enabled automatic renewal on a 1-year or
+ # 3-year commitment. You cannot use the automatic-renewal option for
+ # a 60-day commitment.
+ #
+ # For pricing, see [Amazon Web Services Private 5G Pricing][1].
+ #
+ #
+ #
+ # [1]: http://aws.amazon.com/private5g/pricing
+ # @return [Types::CommitmentConfiguration]
+ #
# @!attribute [rw] network_resource_arn
# The Amazon Resource Name (ARN) of the network resource.
# @return [String]
@@ -1425,14 +1601,23 @@ class SitePlan < Struct.new(
# We provide a shipping label that you can use for the return
# process and we ship a replacement radio unit to you.
#
- # * `RETURN` - Submits a request to replace a radio unit that you no
+ # * `RETURN` - Submits a request to return a radio unit that you no
# longer need. We provide a shipping label that you can use for the
# return process.
+ #
+ # * `COMMITMENT` - Submits a request to change or renew the commitment
+ # period. If you choose this value, then you must set [
+ # `commitmentConfiguration` ][1].
+ #
+ #
+ #
+ # [1]: https://docs.aws.amazon.com/private-networks/latest/APIReference/API_StartNetworkResourceUpdate.html#privatenetworks-StartNetworkResourceUpdate-request-commitmentConfiguration
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/privatenetworks-2021-12-03/StartNetworkResourceUpdateRequest AWS API Documentation
#
class StartNetworkResourceUpdateRequest < Struct.new(
+ :commitment_configuration,
:network_resource_arn,
:return_reason,
:shipping_address,
diff --git a/gems/aws-sdk-privatenetworks/spec/endpoint_provider_spec.rb b/gems/aws-sdk-privatenetworks/spec/endpoint_provider_spec.rb
index 01e6af1c512..aa8b4ea3901 100644
--- a/gems/aws-sdk-privatenetworks/spec/endpoint_provider_spec.rb
+++ b/gems/aws-sdk-privatenetworks/spec/endpoint_provider_spec.rb
@@ -20,7 +20,7 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"us-east-1", :use_dual_stack=>true, :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -34,7 +34,7 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"us-east-1", :use_dual_stack=>false, :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -48,7 +48,7 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"us-east-1", :use_dual_stack=>true, :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -62,7 +62,7 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"us-east-1", :use_dual_stack=>false, :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -76,7 +76,7 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"cn-north-1", :use_dual_stack=>true, :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>true, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -90,7 +90,7 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"cn-north-1", :use_dual_stack=>false, :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -104,7 +104,7 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"cn-north-1", :use_dual_stack=>true, :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>false, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -118,7 +118,7 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"cn-north-1", :use_dual_stack=>false, :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -132,7 +132,7 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_dual_stack=>true, :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>true, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -146,7 +146,7 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_dual_stack=>false, :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -160,7 +160,7 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_dual_stack=>true, :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>false, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -174,7 +174,7 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_dual_stack=>false, :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -182,13 +182,26 @@ module Aws::PrivateNetworks
end
end
+ context 'For region us-iso-east-1 with FIPS enabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"FIPS and DualStack are enabled, but this partition does not support one or both"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>true, :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
context 'For region us-iso-east-1 with FIPS enabled and DualStack disabled' do
let(:expected) do
{"endpoint"=>{"url"=>"https://private-networks-fips.us-iso-east-1.c2s.ic.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_dual_stack=>false, :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -196,13 +209,26 @@ module Aws::PrivateNetworks
end
end
+ context 'For region us-iso-east-1 with FIPS disabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"DualStack is enabled but this partition does not support DualStack"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>false, :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
context 'For region us-iso-east-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
{"endpoint"=>{"url"=>"https://private-networks.us-iso-east-1.c2s.ic.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_dual_stack=>false, :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -210,13 +236,26 @@ module Aws::PrivateNetworks
end
end
+ context 'For region us-isob-east-1 with FIPS enabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"FIPS and DualStack are enabled, but this partition does not support one or both"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>true, :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
context 'For region us-isob-east-1 with FIPS enabled and DualStack disabled' do
let(:expected) do
{"endpoint"=>{"url"=>"https://private-networks-fips.us-isob-east-1.sc2s.sgov.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_dual_stack=>false, :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -224,13 +263,26 @@ module Aws::PrivateNetworks
end
end
+ context 'For region us-isob-east-1 with FIPS disabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"DualStack is enabled but this partition does not support DualStack"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>false, :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
context 'For region us-isob-east-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
{"endpoint"=>{"url"=>"https://private-networks.us-isob-east-1.sc2s.sgov.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_dual_stack=>false, :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -244,7 +296,7 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"us-east-1", :use_dual_stack=>false, :use_fips=>false, :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>false, :endpoint=>"https://example.com"})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -258,7 +310,7 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :endpoint=>"https://example.com"})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -272,7 +324,7 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"us-east-1", :use_dual_stack=>false, :use_fips=>true, :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>false, :endpoint=>"https://example.com"})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
@@ -285,7 +337,20 @@ module Aws::PrivateNetworks
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:region=>"us-east-1", :use_dual_stack=>true, :use_fips=>false, :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>true, :endpoint=>"https://example.com"})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
+ context 'Missing region' do
+ let(:expected) do
+ {"error"=>"Invalid Configuration: Missing Region"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
diff --git a/gems/aws-sdk-resources/CHANGELOG.md b/gems/aws-sdk-resources/CHANGELOG.md
index 7e372633614..d6b1cafe8c3 100644
--- a/gems/aws-sdk-resources/CHANGELOG.md
+++ b/gems/aws-sdk-resources/CHANGELOG.md
@@ -1,6 +1,11 @@
Unreleased Changes
------------------
+3.167.0 (2023-06-27)
+------------------
+
+* Feature - Added a dependency on the new `aws-sdk-appfabric` gem.
+
3.166.0 (2023-06-13)
------------------
diff --git a/gems/aws-sdk-resources/VERSION b/gems/aws-sdk-resources/VERSION
index e70d2ab0ef4..c657fddd40d 100644
--- a/gems/aws-sdk-resources/VERSION
+++ b/gems/aws-sdk-resources/VERSION
@@ -1 +1 @@
-3.166.0
+3.167.0
diff --git a/gems/aws-sdk-resources/aws-sdk-resources.gemspec b/gems/aws-sdk-resources/aws-sdk-resources.gemspec
index 547d7b1e4b3..467e94c3c52 100644
--- a/gems/aws-sdk-resources/aws-sdk-resources.gemspec
+++ b/gems/aws-sdk-resources/aws-sdk-resources.gemspec
@@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
spec.add_dependency('aws-sdk-apigatewayv2', '~> 1')
spec.add_dependency('aws-sdk-appconfig', '~> 1')
spec.add_dependency('aws-sdk-appconfigdata', '~> 1')
+ spec.add_dependency('aws-sdk-appfabric', '~> 1')
spec.add_dependency('aws-sdk-appintegrationsservice', '~> 1')
spec.add_dependency('aws-sdk-appmesh', '~> 1')
spec.add_dependency('aws-sdk-appregistry', '~> 1')
diff --git a/gems/aws-sdk-resources/lib/aws-sdk-resources.rb b/gems/aws-sdk-resources/lib/aws-sdk-resources.rb
index 39cbed30aa2..f97ec942642 100644
--- a/gems/aws-sdk-resources/lib/aws-sdk-resources.rb
+++ b/gems/aws-sdk-resources/lib/aws-sdk-resources.rb
@@ -19,6 +19,7 @@ module Aws
autoload :ApiGatewayV2, 'aws-sdk-apigatewayv2'
autoload :AppConfig, 'aws-sdk-appconfig'
autoload :AppConfigData, 'aws-sdk-appconfigdata'
+ autoload :AppFabric, 'aws-sdk-appfabric'
autoload :AppIntegrationsService, 'aws-sdk-appintegrationsservice'
autoload :AppMesh, 'aws-sdk-appmesh'
autoload :AppRegistry, 'aws-sdk-appregistry'
diff --git a/gems/aws-sdk-sagemaker/CHANGELOG.md b/gems/aws-sdk-sagemaker/CHANGELOG.md
index a7c6fe6cdc7..7597f54a70e 100644
--- a/gems/aws-sdk-sagemaker/CHANGELOG.md
+++ b/gems/aws-sdk-sagemaker/CHANGELOG.md
@@ -1,6 +1,11 @@
Unreleased Changes
------------------
+1.190.0 (2023-06-27)
+------------------
+
+* Feature - Introducing TTL for online store records in feature groups.
+
1.189.0 (2023-06-21)
------------------
diff --git a/gems/aws-sdk-sagemaker/VERSION b/gems/aws-sdk-sagemaker/VERSION
index 5367967643e..8d5d795d9e2 100644
--- a/gems/aws-sdk-sagemaker/VERSION
+++ b/gems/aws-sdk-sagemaker/VERSION
@@ -1 +1 @@
-1.189.0
+1.190.0
diff --git a/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker.rb b/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker.rb
index da4e7fde801..93bd7241fd8 100644
--- a/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker.rb
+++ b/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker.rb
@@ -53,6 +53,6 @@
# @!group service
module Aws::SageMaker
- GEM_VERSION = '1.189.0'
+ GEM_VERSION = '1.190.0'
end
diff --git a/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/client.rb b/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/client.rb
index a4c35da8421..a9a00069568 100644
--- a/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/client.rb
+++ b/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/client.rb
@@ -3240,6 +3240,10 @@ def create_experiment(params = {}, options = {})
# kms_key_id: "KmsKeyId",
# },
# enable_online_store: false,
+ # ttl_duration: {
+ # unit: "Seconds", # accepts Seconds, Minutes, Hours, Days, Weeks
+ # value: 1,
+ # },
# },
# offline_store_config: {
# s3_storage_config: { # required
@@ -11361,6 +11365,8 @@ def describe_experiment(params = {}, options = {})
# resp.last_modified_time #=> Time
# resp.online_store_config.security_config.kms_key_id #=> String
# resp.online_store_config.enable_online_store #=> Boolean
+ # resp.online_store_config.ttl_duration.unit #=> String, one of "Seconds", "Minutes", "Hours", "Days", "Weeks"
+ # resp.online_store_config.ttl_duration.value #=> Integer
# resp.offline_store_config.s3_storage_config.s3_uri #=> String
# resp.offline_store_config.s3_storage_config.kms_key_id #=> String
# resp.offline_store_config.s3_storage_config.resolved_output_s3_uri #=> String
@@ -22069,6 +22075,9 @@ def update_experiment(params = {}, options = {})
# request. It takes some time after you've made a valid request for
# Feature Store to update the feature group.
#
+ # @option params [Types::OnlineStoreConfigUpdate] :online_store_config
+ # Updates the feature group online store configuration.
+ #
# @return [Types::UpdateFeatureGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::UpdateFeatureGroupResponse#feature_group_arn #feature_group_arn} => String
@@ -22083,6 +22092,12 @@ def update_experiment(params = {}, options = {})
# feature_type: "Integral", # accepts Integral, Fractional, String
# },
# ],
+ # online_store_config: {
+ # ttl_duration: {
+ # unit: "Seconds", # accepts Seconds, Minutes, Hours, Days, Weeks
+ # value: 1,
+ # },
+ # },
# })
#
# @example Response structure
@@ -23743,7 +23758,7 @@ def build_request(operation_name, params = {})
params: params,
config: config)
context[:gem_name] = 'aws-sdk-sagemaker'
- context[:gem_version] = '1.189.0'
+ context[:gem_version] = '1.190.0'
Seahorse::Client::Request.new(handlers, context)
end
diff --git a/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/client_api.rb b/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/client_api.rb
index 4a54e4414a1..926ec2042f8 100644
--- a/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/client_api.rb
+++ b/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/client_api.rb
@@ -1423,6 +1423,7 @@ module ClientApi
OidcEndpoint = Shapes::StringShape.new(name: 'OidcEndpoint')
OidcMemberDefinition = Shapes::StructureShape.new(name: 'OidcMemberDefinition')
OnlineStoreConfig = Shapes::StructureShape.new(name: 'OnlineStoreConfig')
+ OnlineStoreConfigUpdate = Shapes::StructureShape.new(name: 'OnlineStoreConfigUpdate')
OnlineStoreSecurityConfig = Shapes::StructureShape.new(name: 'OnlineStoreSecurityConfig')
OnlineStoreTotalSizeBytes = Shapes::IntegerShape.new(name: 'OnlineStoreTotalSizeBytes')
Operator = Shapes::StringShape.new(name: 'Operator')
@@ -1911,6 +1912,9 @@ module ClientApi
TrialSourceArn = Shapes::StringShape.new(name: 'TrialSourceArn')
TrialSummaries = Shapes::ListShape.new(name: 'TrialSummaries')
TrialSummary = Shapes::StructureShape.new(name: 'TrialSummary')
+ TtlDuration = Shapes::StructureShape.new(name: 'TtlDuration')
+ TtlDurationUnit = Shapes::StringShape.new(name: 'TtlDurationUnit')
+ TtlDurationValue = Shapes::IntegerShape.new(name: 'TtlDurationValue')
TuningJobCompletionCriteria = Shapes::StructureShape.new(name: 'TuningJobCompletionCriteria')
TuningJobStepMetaData = Shapes::StructureShape.new(name: 'TuningJobStepMetaData')
USD = Shapes::StructureShape.new(name: 'USD')
@@ -7332,8 +7336,12 @@ module ClientApi
OnlineStoreConfig.add_member(:security_config, Shapes::ShapeRef.new(shape: OnlineStoreSecurityConfig, location_name: "SecurityConfig"))
OnlineStoreConfig.add_member(:enable_online_store, Shapes::ShapeRef.new(shape: Boolean, location_name: "EnableOnlineStore"))
+ OnlineStoreConfig.add_member(:ttl_duration, Shapes::ShapeRef.new(shape: TtlDuration, location_name: "TtlDuration"))
OnlineStoreConfig.struct_class = Types::OnlineStoreConfig
+ OnlineStoreConfigUpdate.add_member(:ttl_duration, Shapes::ShapeRef.new(shape: TtlDuration, location_name: "TtlDuration"))
+ OnlineStoreConfigUpdate.struct_class = Types::OnlineStoreConfigUpdate
+
OnlineStoreSecurityConfig.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "KmsKeyId"))
OnlineStoreSecurityConfig.struct_class = Types::OnlineStoreSecurityConfig
@@ -8582,6 +8590,10 @@ module ClientApi
TrialSummary.add_member(:last_modified_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastModifiedTime"))
TrialSummary.struct_class = Types::TrialSummary
+ TtlDuration.add_member(:unit, Shapes::ShapeRef.new(shape: TtlDurationUnit, location_name: "Unit"))
+ TtlDuration.add_member(:value, Shapes::ShapeRef.new(shape: TtlDurationValue, location_name: "Value"))
+ TtlDuration.struct_class = Types::TtlDuration
+
TuningJobCompletionCriteria.add_member(:target_objective_metric_value, Shapes::ShapeRef.new(shape: TargetObjectiveMetricValue, location_name: "TargetObjectiveMetricValue"))
TuningJobCompletionCriteria.add_member(:best_objective_not_improving, Shapes::ShapeRef.new(shape: BestObjectiveNotImproving, location_name: "BestObjectiveNotImproving"))
TuningJobCompletionCriteria.add_member(:convergence_detected, Shapes::ShapeRef.new(shape: ConvergenceDetected, location_name: "ConvergenceDetected"))
@@ -8697,6 +8709,7 @@ module ClientApi
UpdateFeatureGroupRequest.add_member(:feature_group_name, Shapes::ShapeRef.new(shape: FeatureGroupName, required: true, location_name: "FeatureGroupName"))
UpdateFeatureGroupRequest.add_member(:feature_additions, Shapes::ShapeRef.new(shape: FeatureAdditions, location_name: "FeatureAdditions"))
+ UpdateFeatureGroupRequest.add_member(:online_store_config, Shapes::ShapeRef.new(shape: OnlineStoreConfigUpdate, location_name: "OnlineStoreConfig"))
UpdateFeatureGroupRequest.struct_class = Types::UpdateFeatureGroupRequest
UpdateFeatureGroupResponse.add_member(:feature_group_arn, Shapes::ShapeRef.new(shape: FeatureGroupArn, required: true, location_name: "FeatureGroupArn"))
diff --git a/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb b/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb
index cbf86d2b722..0833aed4f48 100644
--- a/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb
+++ b/gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb
@@ -4102,7 +4102,7 @@ class ConflictException < Struct.new(
# @!attribute [rw] model_data_source
# Specifies the location of ML model data to deploy.
#
- # Currently you cannot use `ModelDataSource` in conjuction with
+ # Currently you cannot use `ModelDataSource` in conjunction with
# SageMaker batch transform, SageMaker serverless endpoints, SageMaker
# multi-model endpoints, and SageMaker Marketplace.
#
@@ -30896,11 +30896,44 @@ class OidcMemberDefinition < Struct.new(
# The default value is `False`.
# @return [Boolean]
#
+ # @!attribute [rw] ttl_duration
+ # Time to live duration, where the record is hard deleted after the
+ # expiration time is reached; `ExpiresAt` = `EventTime` +
+ # `TtlDuration`. For information on HardDelete, see the
+ # [DeleteRecord][1] API in the Amazon SageMaker API Reference guide.
+ #
+ #
+ #
+ # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html
+ # @return [Types::TtlDuration]
+ #
# @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OnlineStoreConfig AWS API Documentation
#
class OnlineStoreConfig < Struct.new(
:security_config,
- :enable_online_store)
+ :enable_online_store,
+ :ttl_duration)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
+ # Updates the feature group online store configuration.
+ #
+ # @!attribute [rw] ttl_duration
+ # Time to live duration, where the record is hard deleted after the
+ # expiration time is reached; `ExpiresAt` = `EventTime` +
+ # `TtlDuration`. For information on HardDelete, see the
+ # [DeleteRecord][1] API in the Amazon SageMaker API Reference guide.
+ #
+ #
+ #
+ # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html
+ # @return [Types::TtlDuration]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/OnlineStoreConfigUpdate AWS API Documentation
+ #
+ class OnlineStoreConfigUpdate < Struct.new(
+ :ttl_duration)
SENSITIVE = []
include Aws::Structure
end
@@ -35048,8 +35081,8 @@ class S3DataSource < Struct.new(
# as part of the ML model data to deploy. A valid key name prefix
# identified by `S3Uri` always ends with a forward slash (/).
#
- # If you choose S3Object, S3Uri identifies an object that is the ML
- # model data to deploy.
+ # If you choose `S3Object`, `S3Uri` identifies an object that is the
+ # ML model data to deploy.
# @return [String]
#
# @!attribute [rw] compression_type
@@ -35103,8 +35136,8 @@ class S3DataSource < Struct.new(
# `s3://mybucket/model/weights` and
# `s3://mybucket/model/weights/part1` and you specify
# `s3://mybucket/model/` as the value of `S3Uri` and `S3Prefix` as
- # the value of S3DataType, then it will result in name clash between
- # `/opt/ml/model/weights` (a regular file) and
+ # the value of `S3DataType`, then it will result in name clash
+ # between `/opt/ml/model/weights` (a regular file) and
# `/opt/ml/model/weights/` (a directory).
#
# * Do not organize the model artifacts in [S3 console using
@@ -38802,6 +38835,32 @@ class TrialSummary < Struct.new(
include Aws::Structure
end
+ # Time to live duration, where the record is hard deleted after the
+ # expiration time is reached; `ExpiresAt` = `EventTime` + `TtlDuration`.
+ # For information on HardDelete, see the [DeleteRecord][1] API in the
+ # Amazon SageMaker API Reference guide.
+ #
+ #
+ #
+ # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html
+ #
+ # @!attribute [rw] unit
+ # `TtlDuration` time unit.
+ # @return [String]
+ #
+ # @!attribute [rw] value
+ # `TtlDuration` time value.
+ # @return [Integer]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/TtlDuration AWS API Documentation
+ #
+ class TtlDuration < Struct.new(
+ :unit,
+ :value)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
# The job completion criteria.
#
# @!attribute [rw] target_objective_metric_value
@@ -39429,11 +39488,16 @@ class UpdateExperimentResponse < Struct.new(
# request for Feature Store to update the feature group.
# @return [Array]
#
+ # @!attribute [rw] online_store_config
+ # Updates the feature group online store configuration.
+ # @return [Types::OnlineStoreConfigUpdate]
+ #
# @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateFeatureGroupRequest AWS API Documentation
#
class UpdateFeatureGroupRequest < Struct.new(
:feature_group_name,
- :feature_additions)
+ :feature_additions,
+ :online_store_config)
SENSITIVE = []
include Aws::Structure
end
diff --git a/gems/aws-sdk-sagemakerfeaturestoreruntime/CHANGELOG.md b/gems/aws-sdk-sagemakerfeaturestoreruntime/CHANGELOG.md
index 1a779a6d19e..da70812aa31 100644
--- a/gems/aws-sdk-sagemakerfeaturestoreruntime/CHANGELOG.md
+++ b/gems/aws-sdk-sagemakerfeaturestoreruntime/CHANGELOG.md
@@ -1,6 +1,11 @@
Unreleased Changes
------------------
+1.19.0 (2023-06-27)
+------------------
+
+* Feature - Introducing TTL for online store records for feature groups.
+
1.18.0 (2023-06-15)
------------------
diff --git a/gems/aws-sdk-sagemakerfeaturestoreruntime/VERSION b/gems/aws-sdk-sagemakerfeaturestoreruntime/VERSION
index 84cc529467b..815d5ca06d5 100644
--- a/gems/aws-sdk-sagemakerfeaturestoreruntime/VERSION
+++ b/gems/aws-sdk-sagemakerfeaturestoreruntime/VERSION
@@ -1 +1 @@
-1.18.0
+1.19.0
diff --git a/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime.rb b/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime.rb
index 6ba0963ed51..711a247cf6d 100644
--- a/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime.rb
+++ b/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime.rb
@@ -52,6 +52,6 @@
# @!group service
module Aws::SageMakerFeatureStoreRuntime
- GEM_VERSION = '1.18.0'
+ GEM_VERSION = '1.19.0'
end
diff --git a/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime/client.rb b/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime/client.rb
index 8cbfb7437fe..ca37b4b4c21 100644
--- a/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime/client.rb
+++ b/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime/client.rb
@@ -380,6 +380,11 @@ def initialize(*args)
# `RecordIdentifier` value, and Feature name that have been requested to
# be retrieved in batch.
#
+ # @option params [String] :expiration_time_response
+ # Parameter to request `ExpiresAt` in response. If `Enabled`,
+ # `BatchGetRecord` will return the value of `ExpiresAt`, if it is not
+ # null. If `Disabled` and null, `BatchGetRecord` will return null.
+ #
# @return [Types::BatchGetRecordResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::BatchGetRecordResponse#records #records} => Array<Types::BatchGetRecordResultDetail>
@@ -396,6 +401,7 @@ def initialize(*args)
# feature_names: ["FeatureName"],
# },
# ],
+ # expiration_time_response: "Enabled", # accepts Enabled, Disabled
# })
#
# @example Response structure
@@ -406,6 +412,7 @@ def initialize(*args)
# resp.records[0].record #=> Array
# resp.records[0].record[0].feature_name #=> String
# resp.records[0].record[0].value_as_string #=> String
+ # resp.records[0].expires_at #=> String
# resp.errors #=> Array
# resp.errors[0].feature_group_name #=> String
# resp.errors[0].record_identifier_value_as_string #=> String
@@ -428,10 +435,10 @@ def batch_get_record(params = {}, options = {})
end
# Deletes a `Record` from a `FeatureGroup` in the `OnlineStore`. Feature
- # Store supports both `SOFT_DELETE` and `HARD_DELETE`. For `SOFT_DELETE`
+ # Store supports both `SoftDelete` and `HardDelete`. For `SoftDelete`
# (default), feature columns are set to `null` and the record is no
- # longer retrievable by `GetRecord` or `BatchGetRecord`. For`
- # HARD_DELETE`, the complete `Record` is removed from the `OnlineStore`.
+ # longer retrievable by `GetRecord` or `BatchGetRecord`. For
+ # `HardDelete`, the complete `Record` is removed from the `OnlineStore`.
# In both cases, Feature Store appends the deleted record marker to the
# `OfflineStore` with feature values set to `null`, `is_deleted` value
# set to `True`, and `EventTime` set to the delete input `EventTime`.
@@ -440,11 +447,11 @@ def batch_get_record(params = {}, options = {})
# later than the `EventTime` of the existing record in the `OnlineStore`
# for that `RecordIdentifer`. If it is not, the deletion does not occur:
#
- # * For `SOFT_DELETE`, the existing (undeleted) record remains in the
+ # * For `SoftDelete`, the existing (undeleted) record remains in the
# `OnlineStore`, though the delete record marker is still written to
# the `OfflineStore`.
#
- # * `HARD_DELETE` returns `EventTime`: `400 ValidationException` to
+ # * `HardDelete` returns `EventTime`: `400 ValidationException` to
# indicate that the delete operation failed. No delete record marker
# is written to the `OfflineStore`.
#
@@ -506,9 +513,15 @@ def delete_record(params = {}, options = {})
# List of names of Features to be retrieved. If not specified, the
# latest value for all the Features are returned.
#
+ # @option params [String] :expiration_time_response
+ # Parameter to request `ExpiresAt` in response. If `Enabled`,
+ # `BatchGetRecord` will return the value of `ExpiresAt`, if it is not
+ # null. If `Disabled` and null, `BatchGetRecord` will return null.
+ #
# @return [Types::GetRecordResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::GetRecordResponse#record #record} => Array<Types::FeatureValue>
+ # * {Types::GetRecordResponse#expires_at #expires_at} => String
#
# @example Request syntax with placeholder values
#
@@ -516,6 +529,7 @@ def delete_record(params = {}, options = {})
# feature_group_name: "FeatureGroupName", # required
# record_identifier_value_as_string: "ValueAsString", # required
# feature_names: ["FeatureName"],
+ # expiration_time_response: "Enabled", # accepts Enabled, Disabled
# })
#
# @example Response structure
@@ -523,6 +537,7 @@ def delete_record(params = {}, options = {})
# resp.record #=> Array
# resp.record[0].feature_name #=> String
# resp.record[0].value_as_string #=> String
+ # resp.expires_at #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-featurestore-runtime-2020-07-01/GetRecord AWS API Documentation
#
@@ -558,6 +573,16 @@ def get_record(params = {}, options = {})
# Feature Store adds the record to all of the stores that you're using
# for the `FeatureGroup`.
#
+ # @option params [Types::TtlDuration] :ttl_duration
+ # Time to live duration, where the record is hard deleted after the
+ # expiration time is reached; `ExpiresAt` = `EventTime` + `TtlDuration`.
+ # For information on HardDelete, see the [DeleteRecord][1] API in the
+ # Amazon SageMaker API Reference guide.
+ #
+ #
+ #
+ # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html
+ #
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
@@ -571,6 +596,10 @@ def get_record(params = {}, options = {})
# },
# ],
# target_stores: ["OnlineStore"], # accepts OnlineStore, OfflineStore
+ # ttl_duration: {
+ # unit: "Seconds", # required, accepts Seconds, Minutes, Hours, Days, Weeks
+ # value: 1, # required
+ # },
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-featurestore-runtime-2020-07-01/PutRecord AWS API Documentation
@@ -595,7 +624,7 @@ def build_request(operation_name, params = {})
params: params,
config: config)
context[:gem_name] = 'aws-sdk-sagemakerfeaturestoreruntime'
- context[:gem_version] = '1.18.0'
+ context[:gem_version] = '1.19.0'
Seahorse::Client::Request.new(handlers, context)
end
diff --git a/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime/client_api.rb b/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime/client_api.rb
index 2cca8633ac8..dfbfffd502d 100644
--- a/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime/client_api.rb
+++ b/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime/client_api.rb
@@ -24,6 +24,8 @@ module ClientApi
BatchGetRecordResultDetails = Shapes::ListShape.new(name: 'BatchGetRecordResultDetails')
DeleteRecordRequest = Shapes::StructureShape.new(name: 'DeleteRecordRequest')
DeletionMode = Shapes::StringShape.new(name: 'DeletionMode')
+ ExpirationTimeResponse = Shapes::StringShape.new(name: 'ExpirationTimeResponse')
+ ExpiresAt = Shapes::StringShape.new(name: 'ExpiresAt')
FeatureGroupName = Shapes::StringShape.new(name: 'FeatureGroupName')
FeatureName = Shapes::StringShape.new(name: 'FeatureName')
FeatureNames = Shapes::ListShape.new(name: 'FeatureNames')
@@ -39,6 +41,9 @@ module ClientApi
ServiceUnavailable = Shapes::StructureShape.new(name: 'ServiceUnavailable')
TargetStore = Shapes::StringShape.new(name: 'TargetStore')
TargetStores = Shapes::ListShape.new(name: 'TargetStores')
+ TtlDuration = Shapes::StructureShape.new(name: 'TtlDuration')
+ TtlDurationUnit = Shapes::StringShape.new(name: 'TtlDurationUnit')
+ TtlDurationValue = Shapes::IntegerShape.new(name: 'TtlDurationValue')
UnprocessedIdentifiers = Shapes::ListShape.new(name: 'UnprocessedIdentifiers')
ValidationError = Shapes::StructureShape.new(name: 'ValidationError')
ValueAsString = Shapes::StringShape.new(name: 'ValueAsString')
@@ -62,6 +67,7 @@ module ClientApi
BatchGetRecordIdentifiers.member = Shapes::ShapeRef.new(shape: BatchGetRecordIdentifier)
BatchGetRecordRequest.add_member(:identifiers, Shapes::ShapeRef.new(shape: BatchGetRecordIdentifiers, required: true, location_name: "Identifiers"))
+ BatchGetRecordRequest.add_member(:expiration_time_response, Shapes::ShapeRef.new(shape: ExpirationTimeResponse, location_name: "ExpirationTimeResponse"))
BatchGetRecordRequest.struct_class = Types::BatchGetRecordRequest
BatchGetRecordResponse.add_member(:records, Shapes::ShapeRef.new(shape: BatchGetRecordResultDetails, required: true, location_name: "Records"))
@@ -72,6 +78,7 @@ module ClientApi
BatchGetRecordResultDetail.add_member(:feature_group_name, Shapes::ShapeRef.new(shape: ValueAsString, required: true, location_name: "FeatureGroupName"))
BatchGetRecordResultDetail.add_member(:record_identifier_value_as_string, Shapes::ShapeRef.new(shape: ValueAsString, required: true, location_name: "RecordIdentifierValueAsString"))
BatchGetRecordResultDetail.add_member(:record, Shapes::ShapeRef.new(shape: Record, required: true, location_name: "Record"))
+ BatchGetRecordResultDetail.add_member(:expires_at, Shapes::ShapeRef.new(shape: ExpiresAt, location_name: "ExpiresAt"))
BatchGetRecordResultDetail.struct_class = Types::BatchGetRecordResultDetail
BatchGetRecordResultDetails.member = Shapes::ShapeRef.new(shape: BatchGetRecordResultDetail)
@@ -92,9 +99,11 @@ module ClientApi
GetRecordRequest.add_member(:feature_group_name, Shapes::ShapeRef.new(shape: FeatureGroupName, required: true, location: "uri", location_name: "FeatureGroupName"))
GetRecordRequest.add_member(:record_identifier_value_as_string, Shapes::ShapeRef.new(shape: ValueAsString, required: true, location: "querystring", location_name: "RecordIdentifierValueAsString"))
GetRecordRequest.add_member(:feature_names, Shapes::ShapeRef.new(shape: FeatureNames, location: "querystring", location_name: "FeatureName"))
+ GetRecordRequest.add_member(:expiration_time_response, Shapes::ShapeRef.new(shape: ExpirationTimeResponse, location: "querystring", location_name: "ExpirationTimeResponse"))
GetRecordRequest.struct_class = Types::GetRecordRequest
GetRecordResponse.add_member(:record, Shapes::ShapeRef.new(shape: Record, location_name: "Record"))
+ GetRecordResponse.add_member(:expires_at, Shapes::ShapeRef.new(shape: ExpiresAt, location_name: "ExpiresAt"))
GetRecordResponse.struct_class = Types::GetRecordResponse
InternalFailure.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "Message"))
@@ -103,6 +112,7 @@ module ClientApi
PutRecordRequest.add_member(:feature_group_name, Shapes::ShapeRef.new(shape: FeatureGroupName, required: true, location: "uri", location_name: "FeatureGroupName"))
PutRecordRequest.add_member(:record, Shapes::ShapeRef.new(shape: Record, required: true, location_name: "Record"))
PutRecordRequest.add_member(:target_stores, Shapes::ShapeRef.new(shape: TargetStores, location_name: "TargetStores"))
+ PutRecordRequest.add_member(:ttl_duration, Shapes::ShapeRef.new(shape: TtlDuration, location_name: "TtlDuration"))
PutRecordRequest.struct_class = Types::PutRecordRequest
Record.member = Shapes::ShapeRef.new(shape: FeatureValue)
@@ -117,6 +127,10 @@ module ClientApi
TargetStores.member = Shapes::ShapeRef.new(shape: TargetStore)
+ TtlDuration.add_member(:unit, Shapes::ShapeRef.new(shape: TtlDurationUnit, required: true, location_name: "Unit"))
+ TtlDuration.add_member(:value, Shapes::ShapeRef.new(shape: TtlDurationValue, required: true, location_name: "Value"))
+ TtlDuration.struct_class = Types::TtlDuration
+
UnprocessedIdentifiers.member = Shapes::ShapeRef.new(shape: BatchGetRecordIdentifier)
ValidationError.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "Message"))
diff --git a/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime/types.rb b/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime/types.rb
index 0de1bdcc246..1cc16f7e244 100644
--- a/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime/types.rb
+++ b/gems/aws-sdk-sagemakerfeaturestoreruntime/lib/aws-sdk-sagemakerfeaturestoreruntime/types.rb
@@ -95,10 +95,17 @@ class BatchGetRecordIdentifier < Struct.new(
# to be retrieved in batch.
# @return [Array]
#
+ # @!attribute [rw] expiration_time_response
+ # Parameter to request `ExpiresAt` in response. If `Enabled`,
+ # `BatchGetRecord` will return the value of `ExpiresAt`, if it is not
+ # null. If `Disabled` and null, `BatchGetRecord` will return null.
+ # @return [String]
+ #
# @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-featurestore-runtime-2020-07-01/BatchGetRecordRequest AWS API Documentation
#
class BatchGetRecordRequest < Struct.new(
- :identifiers)
+ :identifiers,
+ :expiration_time_response)
SENSITIVE = []
include Aws::Structure
end
@@ -141,12 +148,17 @@ class BatchGetRecordResponse < Struct.new(
# The `Record` retrieved.
# @return [Array]
#
+ # @!attribute [rw] expires_at
+ # The `ExpiresAt` ISO string of the requested record.
+ # @return [String]
+ #
# @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-featurestore-runtime-2020-07-01/BatchGetRecordResultDetail AWS API Documentation
#
class BatchGetRecordResultDetail < Struct.new(
:feature_group_name,
:record_identifier_value_as_string,
- :record)
+ :record,
+ :expires_at)
SENSITIVE = []
include Aws::Structure
end
@@ -224,12 +236,19 @@ class FeatureValue < Struct.new(
# latest value for all the Features are returned.
# @return [Array]
#
+ # @!attribute [rw] expiration_time_response
+ # Parameter to request `ExpiresAt` in response. If `Enabled`,
+ # `BatchGetRecord` will return the value of `ExpiresAt`, if it is not
+ # null. If `Disabled` and null, `BatchGetRecord` will return null.
+ # @return [String]
+ #
# @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-featurestore-runtime-2020-07-01/GetRecordRequest AWS API Documentation
#
class GetRecordRequest < Struct.new(
:feature_group_name,
:record_identifier_value_as_string,
- :feature_names)
+ :feature_names,
+ :expiration_time_response)
SENSITIVE = []
include Aws::Structure
end
@@ -238,10 +257,15 @@ class GetRecordRequest < Struct.new(
# The record you requested. A list of `FeatureValues`.
# @return [Array]
#
+ # @!attribute [rw] expires_at
+ # The `ExpiresAt` ISO string of the requested record.
+ # @return [String]
+ #
# @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-featurestore-runtime-2020-07-01/GetRecordResponse AWS API Documentation
#
class GetRecordResponse < Struct.new(
- :record)
+ :record,
+ :expires_at)
SENSITIVE = []
include Aws::Structure
end
@@ -283,12 +307,24 @@ class InternalFailure < Struct.new(
# using for the `FeatureGroup`.
# @return [Array]
#
+ # @!attribute [rw] ttl_duration
+ # Time to live duration, where the record is hard deleted after the
+ # expiration time is reached; `ExpiresAt` = `EventTime` +
+ # `TtlDuration`. For information on HardDelete, see the
+ # [DeleteRecord][1] API in the Amazon SageMaker API Reference guide.
+ #
+ #
+ #
+ # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html
+ # @return [Types::TtlDuration]
+ #
# @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-featurestore-runtime-2020-07-01/PutRecordRequest AWS API Documentation
#
class PutRecordRequest < Struct.new(
:feature_group_name,
:record,
- :target_stores)
+ :target_stores,
+ :ttl_duration)
SENSITIVE = []
include Aws::Structure
end
@@ -319,6 +355,32 @@ class ServiceUnavailable < Struct.new(
include Aws::Structure
end
+ # Time to live duration, where the record is hard deleted after the
+ # expiration time is reached; `ExpiresAt` = `EventTime` + `TtlDuration`.
+ # For information on HardDelete, see the [DeleteRecord][1] API in the
+ # Amazon SageMaker API Reference guide.
+ #
+ #
+ #
+ # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html
+ #
+ # @!attribute [rw] unit
+ # `TtlDuration` time unit.
+ # @return [String]
+ #
+ # @!attribute [rw] value
+ # `TtlDuration` time value.
+ # @return [Integer]
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-featurestore-runtime-2020-07-01/TtlDuration AWS API Documentation
+ #
+ class TtlDuration < Struct.new(
+ :unit,
+ :value)
+ SENSITIVE = []
+ include Aws::Structure
+ end
+
# There was an error validating your request.
#
# @!attribute [rw] message
diff --git a/gems/aws-sdk-sagemakerfeaturestoreruntime/spec/endpoint_provider_spec.rb b/gems/aws-sdk-sagemakerfeaturestoreruntime/spec/endpoint_provider_spec.rb
index a899b7f30d1..1ad100a77fa 100644
--- a/gems/aws-sdk-sagemakerfeaturestoreruntime/spec/endpoint_provider_spec.rb
+++ b/gems/aws-sdk-sagemakerfeaturestoreruntime/spec/endpoint_provider_spec.rb
@@ -20,7 +20,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :region=>"us-east-1", :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -34,7 +34,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :region=>"us-east-1", :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -48,7 +48,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :region=>"us-east-1", :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -62,7 +62,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :region=>"us-east-1", :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -76,7 +76,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :region=>"cn-north-1", :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>true, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -90,7 +90,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :region=>"cn-north-1", :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -104,7 +104,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :region=>"cn-north-1", :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>false, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -118,7 +118,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :region=>"cn-north-1", :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -132,7 +132,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :region=>"us-gov-east-1", :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>true, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -146,7 +146,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :region=>"us-gov-east-1", :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -160,7 +160,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :region=>"us-gov-east-1", :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>false, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -174,7 +174,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :region=>"us-gov-east-1", :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -188,7 +188,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :region=>"us-iso-east-1", :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>true, :use_dual_stack=>true})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
@@ -201,7 +201,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :region=>"us-iso-east-1", :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -215,7 +215,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :region=>"us-iso-east-1", :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>false, :use_dual_stack=>true})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
@@ -228,7 +228,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :region=>"us-iso-east-1", :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -242,7 +242,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :region=>"us-isob-east-1", :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>true, :use_dual_stack=>true})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
@@ -255,7 +255,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :region=>"us-isob-east-1", :use_fips=>true})
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -269,7 +269,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :region=>"us-isob-east-1", :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>false, :use_dual_stack=>true})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
@@ -282,7 +282,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :region=>"us-isob-east-1", :use_fips=>false})
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -296,7 +296,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :region=>"us-east-1", :use_fips=>false, :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>false, :endpoint=>"https://example.com"})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -310,7 +310,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :use_fips=>false, :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :endpoint=>"https://example.com"})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -324,7 +324,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>false, :region=>"us-east-1", :use_fips=>true, :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>false, :endpoint=>"https://example.com"})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
@@ -337,7 +337,7 @@ module Aws::SageMakerFeatureStoreRuntime
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_dual_stack=>true, :region=>"us-east-1", :use_fips=>false, :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>true, :endpoint=>"https://example.com"})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
diff --git a/gems/aws-sdk-ssm/CHANGELOG.md b/gems/aws-sdk-ssm/CHANGELOG.md
index 48831dbe78a..bd46ea28309 100644
--- a/gems/aws-sdk-ssm/CHANGELOG.md
+++ b/gems/aws-sdk-ssm/CHANGELOG.md
@@ -1,6 +1,11 @@
Unreleased Changes
------------------
+1.153.0 (2023-06-27)
+------------------
+
+* Feature - Systems Manager doc-only update for June 2023.
+
1.152.0 (2023-06-15)
------------------
diff --git a/gems/aws-sdk-ssm/VERSION b/gems/aws-sdk-ssm/VERSION
index 38a0870d3a9..c9650a8f200 100644
--- a/gems/aws-sdk-ssm/VERSION
+++ b/gems/aws-sdk-ssm/VERSION
@@ -1 +1 @@
-1.152.0
+1.153.0
diff --git a/gems/aws-sdk-ssm/lib/aws-sdk-ssm.rb b/gems/aws-sdk-ssm/lib/aws-sdk-ssm.rb
index 0a69f1e1e55..9e4f5ce26fc 100644
--- a/gems/aws-sdk-ssm/lib/aws-sdk-ssm.rb
+++ b/gems/aws-sdk-ssm/lib/aws-sdk-ssm.rb
@@ -53,6 +53,6 @@
# @!group service
module Aws::SSM
- GEM_VERSION = '1.152.0'
+ GEM_VERSION = '1.153.0'
end
diff --git a/gems/aws-sdk-ssm/lib/aws-sdk-ssm/client.rb b/gems/aws-sdk-ssm/lib/aws-sdk-ssm/client.rb
index 92d2d0aac02..03ce548464d 100644
--- a/gems/aws-sdk-ssm/lib/aws-sdk-ssm/client.rb
+++ b/gems/aws-sdk-ssm/lib/aws-sdk-ssm/client.rb
@@ -451,7 +451,8 @@ def initialize(*args)
# `/aws/ssm/MyGroup/appmanager`.
#
# For the `Document` and `Parameter` values, use the name of the
- # resource.
+ # resource. If you're tagging a shared document, you must use the full
+ # ARN of the document.
#
# `ManagedInstance`: `mi-012345abcde`
#
@@ -1637,8 +1638,8 @@ def create_maintenance_window(params = {}, options = {})
# Creates a new OpsItem. You must have permission in Identity and Access
# Management (IAM) to create a new OpsItem. For more information, see
- # [Getting started with OpsCenter][1] in the *Amazon Web Services
- # Systems Manager User Guide*.
+ # [Set up OpsCenter][1] in the *Amazon Web Services Systems Manager User
+ # Guide*.
#
# Operations engineers and IT professionals use Amazon Web Services
# Systems Manager OpsCenter to view, investigate, and remediate
@@ -1649,7 +1650,7 @@ def create_maintenance_window(params = {}, options = {})
#
#
#
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html
+ # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-setup.html
# [2]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html
#
# @option params [required, String] :description
@@ -1701,7 +1702,7 @@ def create_maintenance_window(params = {}, options = {})
#
#
#
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-creating-OpsItems.html#OpsCenter-manually-create-OpsItems
+ # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-manually-create-OpsItems.html
#
# @option params [Array] :notifications
# The Amazon Resource Name (ARN) of an SNS topic where notifications are
@@ -1730,10 +1731,7 @@ def create_maintenance_window(params = {}, options = {})
# impacted resource.
#
# @option params [Array] :tags
- # Optional metadata that you assign to a resource. You can restrict
- # access to OpsItems by using an inline IAM policy that specifies tags.
- # For more information, see [Getting started with OpsCenter][1] in the
- # *Amazon Web Services Systems Manager User Guide*.
+ # Optional metadata that you assign to a resource.
#
# Tags use a key-value pair. For example:
#
@@ -1744,10 +1742,6 @@ def create_maintenance_window(params = {}, options = {})
# `ssm:AddTagsToResource` operation. To add tags to an existing OpsItem,
# use the AddTagsToResource operation.
#
- #
- #
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html#OpsCenter-getting-started-user-permissions
- #
# @option params [String] :category
# Specify a category to assign to an OpsItem.
#
@@ -1774,13 +1768,12 @@ def create_maintenance_window(params = {}, options = {})
# @option params [String] :account_id
# The target Amazon Web Services account where you want to create an
# OpsItem. To make this call, your account must be configured to work
- # with OpsItems across accounts. For more information, see [Setting up
- # OpsCenter to work with OpsItems across accounts][1] in the *Amazon Web
- # Services Systems Manager User Guide*.
+ # with OpsItems across accounts. For more information, see [Set up
+ # OpsCenter][1] in the *Amazon Web Services Systems Manager User Guide*.
#
#
#
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-OpsCenter-multiple-accounts.html
+ # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-setup.html
#
# @return [Types::CreateOpsItemResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
@@ -3718,18 +3711,19 @@ def describe_instance_associations_status(params = {}, options = {})
req.send_request(options)
end
- # Describes one or more of your managed nodes, including information
- # about the operating system platform, the version of SSM Agent
- # installed on the managed node, node status, and so on.
+ # Provides information about one or more of your managed nodes,
+ # including the operating system platform, SSM Agent version,
+ # association status, and IP address. This operation does not return
+ # information for nodes that are either Stopped or Terminated.
#
- # If you specify one or more managed node IDs, it returns information
+ # If you specify one or more node IDs, the operation returns information
# for those managed nodes. If you don't specify node IDs, it returns
# information for all your managed nodes. If you specify a node ID that
# isn't valid or a node that you don't own, you receive an error.
#
- # The `IamRole` field for this API operation is the Identity and Access
- # Management (IAM) role assigned to on-premises managed nodes. This call
- # doesn't return the IAM role for EC2 instances.
+ # The `IamRole` field returned for this API operation is the Identity
+ # and Access Management (IAM) role assigned to on-premises managed
+ # nodes. This operation does not return the IAM role for EC2 instances.
#
#
#
@@ -3746,13 +3740,14 @@ def describe_instance_associations_status(params = {}, options = {})
# @option params [Array] :filters
# One or more filters. Use a filter to return a more specific list of
# managed nodes. You can filter based on tags applied to your managed
- # nodes. Use this `Filters` data type instead of
- # `InstanceInformationFilterList`, which is deprecated.
+ # nodes. Tag filters can't be combined with other filter types. Use
+ # this `Filters` data type instead of `InstanceInformationFilterList`,
+ # which is deprecated.
#
# @option params [Integer] :max_results
# The maximum number of items to return for this call. The call also
# returns a token that you can specify in a subsequent call to get the
- # next set of results.
+ # next set of results. The default value is 10 items.
#
# @option params [String] :next_token
# The token for the next set of items to return. (You received this
@@ -4655,8 +4650,8 @@ def describe_maintenance_windows_for_target(params = {}, options = {})
# Query a set of OpsItems. You must have permission in Identity and
# Access Management (IAM) to query a list of OpsItems. For more
- # information, see [Getting started with OpsCenter][1] in the *Amazon
- # Web Services Systems Manager User Guide*.
+ # information, see [Set up OpsCenter][1] in the *Amazon Web Services
+ # Systems Manager User Guide*.
#
# Operations engineers and IT professionals use Amazon Web Services
# Systems Manager OpsCenter to view, investigate, and remediate
@@ -4667,7 +4662,7 @@ def describe_maintenance_windows_for_target(params = {}, options = {})
#
#
#
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html
+ # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-setup.html
# [2]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html
#
# @option params [Array] :ops_item_filters
@@ -4725,6 +4720,10 @@ def describe_maintenance_windows_for_target(params = {}, options = {})
#
# Operations: Equals
#
+ # * Key: AccountId
+ #
+ # Operations: Equals
+ #
# *The Equals operator for Title matches the first 100 characters. If
# you specify more than 100 characters, they system returns an error
# that the filter value exceeds the length limit.
@@ -6321,8 +6320,8 @@ def get_maintenance_window_task(params = {}, options = {})
# Get information about an OpsItem by using the ID. You must have
# permission in Identity and Access Management (IAM) to view information
- # about an OpsItem. For more information, see [Getting started with
- # OpsCenter][1] in the *Amazon Web Services Systems Manager User Guide*.
+ # about an OpsItem. For more information, see [Set up OpsCenter][1] in
+ # the *Amazon Web Services Systems Manager User Guide*.
#
# Operations engineers and IT professionals use Amazon Web Services
# Systems Manager OpsCenter to view, investigate, and remediate
@@ -6333,7 +6332,7 @@ def get_maintenance_window_task(params = {}, options = {})
#
#
#
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html
+ # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-setup.html
# [2]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html
#
# @option params [required, String] :ops_item_id
@@ -11620,8 +11619,8 @@ def update_managed_instance_role(params = {}, options = {})
# Edit or change an OpsItem. You must have permission in Identity and
# Access Management (IAM) to update an OpsItem. For more information,
- # see [Getting started with OpsCenter][1] in the *Amazon Web Services
- # Systems Manager User Guide*.
+ # see [Set up OpsCenter][1] in the *Amazon Web Services Systems Manager
+ # User Guide*.
#
# Operations engineers and IT professionals use Amazon Web Services
# Systems Manager OpsCenter to view, investigate, and remediate
@@ -11632,7 +11631,7 @@ def update_managed_instance_role(params = {}, options = {})
#
#
#
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html
+ # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-setup.html
# [2]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html
#
# @option params [String] :description
@@ -11670,7 +11669,7 @@ def update_managed_instance_role(params = {}, options = {})
#
#
#
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-creating-OpsItems.html#OpsCenter-manually-create-OpsItems
+ # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-manually-create-OpsItems.html
#
# @option params [Array] :operational_data_to_delete
# Keys that you want to remove from the OperationalData map.
@@ -11696,7 +11695,7 @@ def update_managed_instance_role(params = {}, options = {})
#
#
#
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-working-with-OpsItems.html#OpsCenter-working-with-OpsItems-editing-details
+ # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-working-with-OpsItems-editing-details.html
#
# @option params [required, String] :ops_item_id
# The ID of the OpsItem.
@@ -12165,7 +12164,7 @@ def build_request(operation_name, params = {})
params: params,
config: config)
context[:gem_name] = 'aws-sdk-ssm'
- context[:gem_version] = '1.152.0'
+ context[:gem_version] = '1.153.0'
Seahorse::Client::Request.new(handlers, context)
end
diff --git a/gems/aws-sdk-ssm/lib/aws-sdk-ssm/types.rb b/gems/aws-sdk-ssm/lib/aws-sdk-ssm/types.rb
index 48fdd411b60..ea86f319c38 100644
--- a/gems/aws-sdk-ssm/lib/aws-sdk-ssm/types.rb
+++ b/gems/aws-sdk-ssm/lib/aws-sdk-ssm/types.rb
@@ -128,7 +128,8 @@ class Activation < Struct.new(
# `/aws/ssm/MyGroup/appmanager`.
#
# For the `Document` and `Parameter` values, use the name of the
- # resource.
+ # resource. If you're tagging a shared document, you must use the
+ # full ARN of the document.
#
# `ManagedInstance`: `mi-012345abcde`
#
@@ -3562,7 +3563,7 @@ class CreateMaintenanceWindowResult < Struct.new(
#
#
#
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-creating-OpsItems.html#OpsCenter-manually-create-OpsItems
+ # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-manually-create-OpsItems.html
# @return [Hash]
#
# @!attribute [rw] notifications
@@ -3597,10 +3598,7 @@ class CreateMaintenanceWindowResult < Struct.new(
# @return [String]
#
# @!attribute [rw] tags
- # Optional metadata that you assign to a resource. You can restrict
- # access to OpsItems by using an inline IAM policy that specifies
- # tags. For more information, see [Getting started with OpsCenter][1]
- # in the *Amazon Web Services Systems Manager User Guide*.
+ # Optional metadata that you assign to a resource.
#
# Tags use a key-value pair. For example:
#
@@ -3610,10 +3608,6 @@ class CreateMaintenanceWindowResult < Struct.new(
# both the `ssm:CreateOpsItems` operation and the
# `ssm:AddTagsToResource` operation. To add tags to an existing
# OpsItem, use the AddTagsToResource operation.
- #
- #
- #
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html#OpsCenter-getting-started-user-permissions
# @return [Array]
#
# @!attribute [rw] category
@@ -3649,13 +3643,13 @@ class CreateMaintenanceWindowResult < Struct.new(
# @!attribute [rw] account_id
# The target Amazon Web Services account where you want to create an
# OpsItem. To make this call, your account must be configured to work
- # with OpsItems across accounts. For more information, see [Setting up
- # OpsCenter to work with OpsItems across accounts][1] in the *Amazon
- # Web Services Systems Manager User Guide*.
+ # with OpsItems across accounts. For more information, see [Set up
+ # OpsCenter][1] in the *Amazon Web Services Systems Manager User
+ # Guide*.
#
#
#
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-OpsCenter-multiple-accounts.html
+ # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-setup.html
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateOpsItemRequest AWS API Documentation
@@ -5085,14 +5079,15 @@ class DescribeInstanceAssociationsStatusResult < Struct.new(
# @!attribute [rw] filters
# One or more filters. Use a filter to return a more specific list of
# managed nodes. You can filter based on tags applied to your managed
- # nodes. Use this `Filters` data type instead of
- # `InstanceInformationFilterList`, which is deprecated.
+ # nodes. Tag filters can't be combined with other filter types. Use
+ # this `Filters` data type instead of `InstanceInformationFilterList`,
+ # which is deprecated.
# @return [Array]
#
# @!attribute [rw] max_results
# The maximum number of items to return for this call. The call also
# returns a token that you can specify in a subsequent call to get the
- # next set of results.
+ # next set of results. The default value is 10 items.
# @return [Integer]
#
# @!attribute [rw] next_token
@@ -5827,6 +5822,10 @@ class DescribeMaintenanceWindowsResult < Struct.new(
#
# Operations: Equals
#
+ # * Key: AccountId
+ #
+ # Operations: Equals
+ #
# *The Equals operator for Title matches the first 100 characters. If
# you specify more than 100 characters, they system returns an error
# that the filter value exceeds the length limit.
@@ -9242,7 +9241,7 @@ class InstanceAssociationStatusInfo < Struct.new(
#
#
# [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html
- # [2]: https://docs.aws.amazon.com/cli/latest/ec2/describe-instances.html
+ # [2]: https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html
# @return [String]
#
# @!attribute [rw] registration_date
@@ -9274,7 +9273,7 @@ class InstanceAssociationStatusInfo < Struct.new(
# [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-managed-linux.html
# [2]: https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-managed-win.html
# [3]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html
- # [4]: https://docs.aws.amazon.com/cli/latest/ec2/describe-instances.html
+ # [4]: https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html
# @return [String]
#
# @!attribute [rw] ip_address
@@ -12801,7 +12800,7 @@ class OpsFilter < Struct.new(
#
#
#
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-creating-OpsItems.html#OpsCenter-manually-create-OpsItems
+ # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-manually-create-OpsItems.html
# @return [Hash]
#
# @!attribute [rw] category
@@ -13053,13 +13052,7 @@ class OpsItemInvalidParameterException < Struct.new(
include Aws::Structure
end
- # The request caused OpsItems to exceed one or more quotas. For
- # information about OpsItem quotas, see [What are the resource limits
- # for OpsCenter?][1].
- #
- #
- #
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-learn-more.html#OpsCenter-learn-more-limits
+ # The request caused OpsItems to exceed one or more quotas.
#
# @!attribute [rw] resource_types
# @return [Array]
@@ -18852,7 +18845,7 @@ class UpdateManagedInstanceRoleResult < Aws::EmptyStructure; end
#
#
#
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-creating-OpsItems.html#OpsCenter-manually-create-OpsItems
+ # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-manually-create-OpsItems.html
# @return [Hash]
#
# @!attribute [rw] operational_data_to_delete
@@ -18883,7 +18876,7 @@ class UpdateManagedInstanceRoleResult < Aws::EmptyStructure; end
#
#
#
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-working-with-OpsItems.html#OpsCenter-working-with-OpsItems-editing-details
+ # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-working-with-OpsItems-editing-details.html
# @return [String]
#
# @!attribute [rw] ops_item_id
diff --git a/gems/aws-sdk-ssm/spec/endpoint_provider_spec.rb b/gems/aws-sdk-ssm/spec/endpoint_provider_spec.rb
index b04f51e2a9e..b7a10f75180 100644
--- a/gems/aws-sdk-ssm/spec/endpoint_provider_spec.rb
+++ b/gems/aws-sdk-ssm/spec/endpoint_provider_spec.rb
@@ -20,7 +20,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"af-south-1"})
+ params = EndpointParameters.new(**{:region=>"af-south-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -34,7 +34,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"ap-east-1"})
+ params = EndpointParameters.new(**{:region=>"ap-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -48,7 +48,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"ap-northeast-1"})
+ params = EndpointParameters.new(**{:region=>"ap-northeast-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -62,7 +62,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"ap-northeast-2"})
+ params = EndpointParameters.new(**{:region=>"ap-northeast-2", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -76,7 +76,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"ap-northeast-3"})
+ params = EndpointParameters.new(**{:region=>"ap-northeast-3", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -90,7 +90,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"ap-south-1"})
+ params = EndpointParameters.new(**{:region=>"ap-south-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -104,7 +104,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"ap-southeast-1"})
+ params = EndpointParameters.new(**{:region=>"ap-southeast-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -118,7 +118,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"ap-southeast-2"})
+ params = EndpointParameters.new(**{:region=>"ap-southeast-2", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -132,7 +132,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"ap-southeast-3"})
+ params = EndpointParameters.new(**{:region=>"ap-southeast-3", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -146,7 +146,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"ca-central-1"})
+ params = EndpointParameters.new(**{:region=>"ca-central-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -160,7 +160,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :use_dual_stack=>false, :region=>"ca-central-1"})
+ params = EndpointParameters.new(**{:region=>"ca-central-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -174,7 +174,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"eu-central-1"})
+ params = EndpointParameters.new(**{:region=>"eu-central-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -188,7 +188,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"eu-north-1"})
+ params = EndpointParameters.new(**{:region=>"eu-north-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -202,7 +202,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"eu-south-1"})
+ params = EndpointParameters.new(**{:region=>"eu-south-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -216,7 +216,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"eu-west-1"})
+ params = EndpointParameters.new(**{:region=>"eu-west-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -230,7 +230,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"eu-west-2"})
+ params = EndpointParameters.new(**{:region=>"eu-west-2", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -244,7 +244,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"eu-west-3"})
+ params = EndpointParameters.new(**{:region=>"eu-west-3", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -258,7 +258,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"me-south-1"})
+ params = EndpointParameters.new(**{:region=>"me-south-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -272,7 +272,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"sa-east-1"})
+ params = EndpointParameters.new(**{:region=>"sa-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -286,7 +286,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"us-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -300,7 +300,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :use_dual_stack=>false, :region=>"us-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -314,7 +314,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"us-east-2"})
+ params = EndpointParameters.new(**{:region=>"us-east-2", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -328,7 +328,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :use_dual_stack=>false, :region=>"us-east-2"})
+ params = EndpointParameters.new(**{:region=>"us-east-2", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -342,7 +342,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"us-west-1"})
+ params = EndpointParameters.new(**{:region=>"us-west-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -356,7 +356,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :use_dual_stack=>false, :region=>"us-west-1"})
+ params = EndpointParameters.new(**{:region=>"us-west-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -370,7 +370,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"us-west-2"})
+ params = EndpointParameters.new(**{:region=>"us-west-2", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -384,7 +384,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :use_dual_stack=>false, :region=>"us-west-2"})
+ params = EndpointParameters.new(**{:region=>"us-west-2", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -398,7 +398,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :use_dual_stack=>true, :region=>"us-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -412,7 +412,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>true, :region=>"us-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -426,7 +426,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"cn-north-1"})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -440,7 +440,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"cn-northwest-1"})
+ params = EndpointParameters.new(**{:region=>"cn-northwest-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -454,7 +454,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :use_dual_stack=>true, :region=>"cn-north-1"})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>true, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -468,7 +468,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :use_dual_stack=>false, :region=>"cn-north-1"})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -482,7 +482,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>true, :region=>"cn-north-1"})
+ params = EndpointParameters.new(**{:region=>"cn-north-1", :use_fips=>false, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -496,7 +496,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"us-gov-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -510,7 +510,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :use_dual_stack=>false, :region=>"us-gov-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -524,7 +524,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"us-gov-west-1"})
+ params = EndpointParameters.new(**{:region=>"us-gov-west-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -538,7 +538,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :use_dual_stack=>false, :region=>"us-gov-west-1"})
+ params = EndpointParameters.new(**{:region=>"us-gov-west-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -552,7 +552,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :use_dual_stack=>true, :region=>"us-gov-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>true, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -566,7 +566,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>true, :region=>"us-gov-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-gov-east-1", :use_fips=>false, :use_dual_stack=>true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -580,7 +580,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"us-iso-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -588,13 +588,26 @@ module Aws::SSM
end
end
+ context 'For region us-iso-east-1 with FIPS enabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"FIPS and DualStack are enabled, but this partition does not support one or both"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>true, :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
context 'For region us-iso-east-1 with FIPS enabled and DualStack disabled' do
let(:expected) do
{"endpoint"=>{"url"=>"https://ssm-fips.us-iso-east-1.c2s.ic.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :use_dual_stack=>false, :region=>"us-iso-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -602,13 +615,26 @@ module Aws::SSM
end
end
+ context 'For region us-iso-east-1 with FIPS disabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"DualStack is enabled but this partition does not support DualStack"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:region=>"us-iso-east-1", :use_fips=>false, :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
context 'For region us-isob-east-1 with FIPS disabled and DualStack disabled' do
let(:expected) do
{"endpoint"=>{"url"=>"https://ssm.us-isob-east-1.sc2s.sgov.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"us-isob-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>false, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -616,13 +642,26 @@ module Aws::SSM
end
end
+ context 'For region us-isob-east-1 with FIPS enabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"FIPS and DualStack are enabled, but this partition does not support one or both"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>true, :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
context 'For region us-isob-east-1 with FIPS enabled and DualStack disabled' do
let(:expected) do
{"endpoint"=>{"url"=>"https://ssm-fips.us-isob-east-1.sc2s.sgov.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :use_dual_stack=>false, :region=>"us-isob-east-1"})
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>true, :use_dual_stack=>false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -630,13 +669,26 @@ module Aws::SSM
end
end
+ context 'For region us-isob-east-1 with FIPS disabled and DualStack enabled' do
+ let(:expected) do
+ {"error"=>"DualStack is enabled but this partition does not support DualStack"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{:region=>"us-isob-east-1", :use_fips=>false, :use_dual_stack=>true})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
context 'For custom endpoint with region set and fips disabled and dualstack disabled' do
let(:expected) do
{"endpoint"=>{"url"=>"https://example.com"}}
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>false, :region=>"us-east-1", :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>false, :endpoint=>"https://example.com"})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
@@ -664,7 +716,7 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>true, :use_dual_stack=>false, :region=>"us-east-1", :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>true, :use_dual_stack=>false, :endpoint=>"https://example.com"})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
@@ -677,7 +729,20 @@ module Aws::SSM
end
it 'produces the expected output from the EndpointProvider' do
- params = EndpointParameters.new(**{:use_fips=>false, :use_dual_stack=>true, :region=>"us-east-1", :endpoint=>"https://example.com"})
+ params = EndpointParameters.new(**{:region=>"us-east-1", :use_fips=>false, :use_dual_stack=>true, :endpoint=>"https://example.com"})
+ expect do
+ subject.resolve_endpoint(params)
+ end.to raise_error(ArgumentError, expected['error'])
+ end
+ end
+
+ context 'Missing region' do
+ let(:expected) do
+ {"error"=>"Invalid Configuration: Missing Region"}
+ end
+
+ it 'produces the expected output from the EndpointProvider' do
+ params = EndpointParameters.new(**{})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
diff --git a/gems/aws-sdk-verifiedpermissions/CHANGELOG.md b/gems/aws-sdk-verifiedpermissions/CHANGELOG.md
index 6c5e899e336..d089810e33e 100644
--- a/gems/aws-sdk-verifiedpermissions/CHANGELOG.md
+++ b/gems/aws-sdk-verifiedpermissions/CHANGELOG.md
@@ -1,6 +1,11 @@
Unreleased Changes
------------------
+1.3.0 (2023-06-27)
+------------------
+
+* Feature - This update fixes several broken links to the Cedar documentation.
+
1.2.0 (2023-06-23)
------------------
diff --git a/gems/aws-sdk-verifiedpermissions/VERSION b/gems/aws-sdk-verifiedpermissions/VERSION
index 26aaba0e866..f0bb29e7638 100644
--- a/gems/aws-sdk-verifiedpermissions/VERSION
+++ b/gems/aws-sdk-verifiedpermissions/VERSION
@@ -1 +1 @@
-1.2.0
+1.3.0
diff --git a/gems/aws-sdk-verifiedpermissions/lib/aws-sdk-verifiedpermissions.rb b/gems/aws-sdk-verifiedpermissions/lib/aws-sdk-verifiedpermissions.rb
index 77b50199cb7..c72ca439311 100644
--- a/gems/aws-sdk-verifiedpermissions/lib/aws-sdk-verifiedpermissions.rb
+++ b/gems/aws-sdk-verifiedpermissions/lib/aws-sdk-verifiedpermissions.rb
@@ -53,6 +53,6 @@
# @!group service
module Aws::VerifiedPermissions
- GEM_VERSION = '1.2.0'
+ GEM_VERSION = '1.3.0'
end
diff --git a/gems/aws-sdk-verifiedpermissions/lib/aws-sdk-verifiedpermissions/client.rb b/gems/aws-sdk-verifiedpermissions/lib/aws-sdk-verifiedpermissions/client.rb
index 335c26e8ad4..4dd4c4f9c42 100644
--- a/gems/aws-sdk-verifiedpermissions/lib/aws-sdk-verifiedpermissions/client.rb
+++ b/gems/aws-sdk-verifiedpermissions/lib/aws-sdk-verifiedpermissions/client.rb
@@ -1936,7 +1936,7 @@ def build_request(operation_name, params = {})
params: params,
config: config)
context[:gem_name] = 'aws-sdk-verifiedpermissions'
- context[:gem_version] = '1.2.0'
+ context[:gem_version] = '1.3.0'
Seahorse::Client::Request.new(handlers, context)
end
diff --git a/gems/aws-sdk-verifiedpermissions/lib/aws-sdk-verifiedpermissions/types.rb b/gems/aws-sdk-verifiedpermissions/lib/aws-sdk-verifiedpermissions/types.rb
index 2fe8199f417..38831a425c6 100644
--- a/gems/aws-sdk-verifiedpermissions/lib/aws-sdk-verifiedpermissions/types.rb
+++ b/gems/aws-sdk-verifiedpermissions/lib/aws-sdk-verifiedpermissions/types.rb
@@ -71,11 +71,13 @@ class ActionIdentifier < Struct.new(
# @note AttributeValue is a union - when making an API calls you must set exactly one of the members.
#
# @!attribute [rw] boolean
- # An attribute value of
- # [Boolean](docs.cedarpolicy.comcedar-syntax-datatypes.html#datatype-boolean)
- # type.
+ # An attribute value of [Boolean][1] type.
#
# Example: `\{"boolean": true\}`
+ #
+ #
+ #
+ # [1]: https://docs.cedarpolicy.com/syntax-datatypes.html#boolean
# @return [Boolean]
#
# @!attribute [rw] entity_identifier
@@ -90,35 +92,43 @@ class ActionIdentifier < Struct.new(
# @return [Types::EntityIdentifier]
#
# @!attribute [rw] long
- # An attribute value of
- # [Long](docs.cedarpolicy.comcedar-syntax-datatypes.html#datatype-long)
- # type.
+ # An attribute value of [Long][1] type.
#
# Example: `\{"long": 0\}`
+ #
+ #
+ #
+ # [1]: https://docs.cedarpolicy.com/syntax-datatypes.html#long
# @return [Integer]
#
# @!attribute [rw] string
- # An attribute value of
- # [String](docs.cedarpolicy.comcedar-syntax-datatypes.html#datatype-string)
- # type.
+ # An attribute value of [String][1] type.
#
# Example: `\{"string": "abc"\}`
+ #
+ #
+ #
+ # [1]: https://docs.cedarpolicy.com/syntax-datatypes.html#string
# @return [String]
#
# @!attribute [rw] set
- # An attribute value of
- # [Set](docs.cedarpolicy.comcedar-syntax-datatypes.html#datatype-set)
- # type.
+ # An attribute value of [Set][1] type.
#
# Example: `\{"set": [ \{\} ] \}`
+ #
+ #
+ #
+ # [1]: https://docs.cedarpolicy.com/syntax-datatypes.html#set
# @return [Array]
#
# @!attribute [rw] record
- # An attribute value of
- # [Record](docs.cedarpolicy.comcedar-syntax-datatypes.html#datatype-record)
- # type.
+ # An attribute value of [Record][1] type.
#
# Example: `\{"record": \{ "keyName": \{\} \} \}`
+ #
+ #
+ #
+ # [1]: https://docs.cedarpolicy.com/syntax-datatypes.html#record
# @return [Hash]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/verifiedpermissions-2021-12-01/AttributeValue AWS API Documentation
@@ -2856,8 +2866,7 @@ class UpdateStaticPolicyDefinition < Struct.new(
# The policy attempts to access a record or entity attribute that
# isn't specified in the schema. Test for the existence of the
# attribute first before attempting to access its value. For more
- # information, see the [has (presence of attribute test)
- # operator](docs.cedarpolicy.comsyntax-operators.html#has-presence-of-attribute-test)
+ # information, see the [has (presence of attribute test) operator][1]
# in the *Cedar Policy Language Guide*.
#
# * **UnsafeOptionalAttributeAccess**
@@ -2866,8 +2875,7 @@ class UpdateStaticPolicyDefinition < Struct.new(
# optional and isn't guaranteed to be present. Test for the existence
# of the attribute first before attempting to access its value. For
# more information, see the [has (presence of attribute test)
- # operator](docs.cedarpolicy.comsyntax-operators.html#has-presence-of-attribute-test)
- # in the *Cedar Policy Language Guide*.
+ # operator][1] in the *Cedar Policy Language Guide*.
#
# * **ImpossiblePolicy**
#
@@ -2886,6 +2894,10 @@ class UpdateStaticPolicyDefinition < Struct.new(
# example, a string that is to be parsed as an IPv4 address can
# contain only digits and the period character.
#
+ #
+ #
+ # [1]: https://docs.cedarpolicy.com/syntax-operators.html#has-presence-of-attribute-test
+ #
# @!attribute [rw] message
# @return [String]
#
diff --git a/services.json b/services.json
index bef62db6342..64b83704447 100644
--- a/services.json
+++ b/services.json
@@ -44,6 +44,9 @@
"AppConfigData": {
"models": "appconfigdata/2021-11-11"
},
+ "AppFabric": {
+ "models": "appfabric/2023-05-19"
+ },
"AppIntegrationsService": {
"models": "appintegrations/2020-07-29"
},